Adiciones de métodos para correcto funcionamiento

parent b3f125b5
...@@ -2,40 +2,53 @@ package com.carpooling.carpoolingaoraha.entidades; ...@@ -2,40 +2,53 @@ package com.carpooling.carpoolingaoraha.entidades;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date;
import java.util.List;
import com.carpooling.carpoolingaoraha.entidades.*; import com.carpooling.carpoolingaoraha.entidades.*;
public class Reserva { public class Reserva {
private static int incrementaReserva = 0; private static int incrementaReserva = 0;
private int idReserva; private int idReserva;
private Usuario conductor; private Usuario conductor;
private ArrayList<Usuario> pasajeros; private ArrayList<String> pasajeros;
private int puntuacion; private int puntuacion;
private int numPasajeros;
private Viaje viaje; private Viaje viaje;
SistemaCarPooling sistema;
public Reserva(Usuario conductor, ArrayList<Usuario> pasajeros, int puntuacion, Viaje viaje) {
public Reserva(Usuario conductor, String origen, String destino, Date fechaSalida, int nAsientos, int precioAsiento) {
this.conductor = conductor; this.conductor = conductor;
this.pasajeros = pasajeros;
this.puntuacion = puntuacion;
this.viaje = viaje;
this.idReserva = ++incrementaReserva; this.idReserva = ++incrementaReserva;
this.numPasajeros = nAsientos;
this.viaje = new Viaje(origen, destino, fechaSalida, nAsientos, precioAsiento);
this.sistema.addViaje(this.viaje);
this.sistema.addReserva(this);
this.puntuacion = 0;
} }
public static int getIncrementaReserva() { public void anadirPasajeros(String DNI, int idReserva){
return incrementaReserva; for(int i=0; i<this.sistema.getReservas().size(); i++){
if(idReserva == this.sistema.getReservas().get(i).getIdReserva()){
this.sistema.getReservas().get(i).addPasajero(DNI);
}
}
} }
public static void setIncrementaReserva(int incrementaReserva) { public void anadirPuntuacion(int punt){
Reserva.incrementaReserva = incrementaReserva; this.conductor.setPuntuacion(punt);
}
public boolean haySitioDisponible(){
if(this.numPasajeros == pasajeros.size()) return false;
else return true;
} }
public int getIdReserva() { public int getIdReserva() {
return idReserva; return idReserva;
} }
public void setIdReserva(int idReserva) {
this.idReserva = idReserva;
}
public Usuario getConductor() { public Usuario getConductor() {
return conductor; return conductor;
} }
...@@ -44,14 +57,22 @@ public class Reserva { ...@@ -44,14 +57,22 @@ public class Reserva {
this.conductor = conductor; this.conductor = conductor;
} }
public ArrayList<Usuario> getPasajeros() { public ArrayList<String> getPasajeros() {
return pasajeros; return pasajeros;
} }
public void setPasajeros(ArrayList<Usuario> pasajeros) { public void setPasajeros(ArrayList<String> pasajeros) {
this.pasajeros = pasajeros; this.pasajeros = pasajeros;
} }
public int getNumPasajeros() {
return numPasajeros;
}
public void setNumPasajeros(int numPasajeros) {
this.numPasajeros = numPasajeros;
}
public int getPuntuacion() { public int getPuntuacion() {
return puntuacion; return puntuacion;
} }
...@@ -67,4 +88,17 @@ public class Reserva { ...@@ -67,4 +88,17 @@ public class Reserva {
public void setViaje(Viaje viaje) { public void setViaje(Viaje viaje) {
this.viaje = viaje; this.viaje = viaje;
} }
public void addPasajero(String DNI){
this.pasajeros.add(DNI);
}
public boolean esViajero(String DNI){
for(int i=0; i<pasajeros.size(); i++){
if(DNI == pasajeros.get(i)){
return true;
}
}
return false;
}
} }
...@@ -6,6 +6,7 @@ public class SistemaCarPooling { ...@@ -6,6 +6,7 @@ public class SistemaCarPooling {
private String nombre; private String nombre;
private List<Viaje> viajes; private List<Viaje> viajes;
private List<Usuario> usuarios; private List<Usuario> usuarios;
private List<Reserva> reservas;
public String getNombre() { public String getNombre() {
...@@ -31,4 +32,19 @@ public class SistemaCarPooling { ...@@ -31,4 +32,19 @@ public class SistemaCarPooling {
public void setUsuarios(List<Usuario> usuarios) { public void setUsuarios(List<Usuario> usuarios) {
this.usuarios = usuarios; this.usuarios = usuarios;
} }
public void addViaje(Viaje viaje){
viajes.add(viaje);
}
public void addReserva(Reserva res){
reservas.add(res);
}
public List<Reserva> getReservas() {
return reservas;
}
public void setReservas(List<Reserva> reservas) {
this.reservas = reservas;
}
} }
package com.carpooling.carpoolingaoraha.entidades; package com.carpooling.carpoolingaoraha.entidades;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import com.carpooling.carpoolingaoraha.entidades.*; import static com.carpooling.carpoolingaoraha.entidades.Rol.CONDUCTOR;
enum rol{ import static com.carpooling.carpoolingaoraha.entidades.Rol.PASAJERO;
enum Rol {
CONDUCTOR, PASAJERO CONDUCTOR, PASAJERO
}; };
public class Usuario { public class Usuario {
SistemaCarPooling sistemaCarPooling;
private String nombre; private String nombre;
private String apellidos; private String apellidos;
private Date FNac; private Date FNac;
...@@ -16,12 +20,13 @@ public class Usuario { ...@@ -16,12 +20,13 @@ public class Usuario {
private String email; private String email;
private String claveAcceso; private String claveAcceso;
private int puntuacion; private int puntuacion;
private rol rol; private Rol rol;
private ArrayList<Integer> viajesOfertados;
private SistemaCarPooling sis; private SistemaCarPooling sis;
public Usuario(String nombre, String apellidos, Date FNac, String DNI, int telefono, String email, public Usuario(String nombre, String apellidos, Date FNac, String DNI, int telefono, String email,
String claveAcceso, int puntuacion, rol rol) { String claveAcceso, Rol rol) {
this.nombre = nombre; this.nombre = nombre;
this.apellidos = apellidos; this.apellidos = apellidos;
this.FNac = FNac; this.FNac = FNac;
...@@ -29,8 +34,13 @@ public class Usuario { ...@@ -29,8 +34,13 @@ public class Usuario {
this.telefono = telefono; this.telefono = telefono;
this.email = email; this.email = email;
this.claveAcceso = claveAcceso; this.claveAcceso = claveAcceso;
this.puntuacion = puntuacion; this.puntuacion = 0;
this.rol = rol; this.rol = rol;
if(rol == CONDUCTOR){
this.viajesOfertados = new ArrayList<>();
}else{
this.viajesOfertados = null;
}
} }
public String getNombre() { public String getNombre() {
...@@ -94,17 +104,66 @@ public class Usuario { ...@@ -94,17 +104,66 @@ public class Usuario {
} }
public void setPuntuacion(int puntuacion) { public void setPuntuacion(int puntuacion) {
this.puntuacion = puntuacion; this.puntuacion += puntuacion;
} }
public rol getRol() { public Rol getRol() {
return rol; return rol;
} }
public void setRol(rol rol) { public void setRol(Rol rol) {
this.rol = rol; this.rol = rol;
} }
public List<Viaje> buscarViaje(String origen, String destino, Date fecha, rol rol)
public void cambiarRol(){
if(this.rol == CONDUCTOR){
rol = PASAJERO;
}else{
rol = CONDUCTOR;
}
}
public boolean ofrecerViaje(String origen, String destino, Date fechaSalida, int nAsientos, int precioAsiento){
if(this.rol == CONDUCTOR) {
//Crea una reserva
Reserva reserva = new Reserva(this, origen, destino, fechaSalida, nAsientos, precioAsiento);
this.viajesOfertados.add(reserva.getIdReserva());
return true;
}
return false;
}
public boolean aceptarPasajero(int idReserva, String DNI, Rol rol){ //Le pasamos el rol del conductor
if(rol == CONDUCTOR){
for(int i=0; i<this.sistemaCarPooling.getReservas().size(); i++){
if(idReserva == this.sistemaCarPooling.getReservas().get(i).getIdReserva() && this.sistemaCarPooling.getReservas().get(i).haySitioDisponible()){
this.sistemaCarPooling.getReservas().get(i).anadirPasajeros(DNI, idReserva);
}
}
return true;
}
return false;
}
public boolean asignarPuntuacion(int idReserva, String DNI, int puntuacion){
if(puntuacion <= 5) {
for (int i = 0; i < this.sistemaCarPooling.getReservas().size(); i++) {
if (idReserva == this.sistemaCarPooling.getReservas().get(i).getIdReserva() && this.sistemaCarPooling.getReservas().get(i).esViajero(DNI)) {
this.sistemaCarPooling.getReservas().get(i).anadirPuntuacion(puntuacion);
}
}
return true;
}
return false;
}
public double puntuacionMedia(){
return this.puntuacion/viajesOfertados.size();
}
public List<Viaje> buscarViaje(String origen, String destino, Date fecha, Rol rol)
{ {
List<Viaje> c = sis.getViajes(); List<Viaje> c = sis.getViajes();
return c; return c;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment