Adiciones de métodos para correcto funcionamiento

parent b3f125b5
......@@ -2,40 +2,53 @@ package com.carpooling.carpoolingaoraha.entidades;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import com.carpooling.carpoolingaoraha.entidades.*;
public class Reserva {
private static int incrementaReserva = 0;
private int idReserva;
private Usuario conductor;
private ArrayList<Usuario> pasajeros;
private ArrayList<String> pasajeros;
private int puntuacion;
private int numPasajeros;
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.pasajeros = pasajeros;
this.puntuacion = puntuacion;
this.viaje = viaje;
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() {
return incrementaReserva;
public void anadirPasajeros(String DNI, int idReserva){
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) {
Reserva.incrementaReserva = incrementaReserva;
public void anadirPuntuacion(int punt){
this.conductor.setPuntuacion(punt);
}
public boolean haySitioDisponible(){
if(this.numPasajeros == pasajeros.size()) return false;
else return true;
}
public int getIdReserva() {
return idReserva;
}
public void setIdReserva(int idReserva) {
this.idReserva = idReserva;
}
public Usuario getConductor() {
return conductor;
}
......@@ -44,14 +57,22 @@ public class Reserva {
this.conductor = conductor;
}
public ArrayList<Usuario> getPasajeros() {
public ArrayList<String> getPasajeros() {
return pasajeros;
}
public void setPasajeros(ArrayList<Usuario> pasajeros) {
public void setPasajeros(ArrayList<String> pasajeros) {
this.pasajeros = pasajeros;
}
public int getNumPasajeros() {
return numPasajeros;
}
public void setNumPasajeros(int numPasajeros) {
this.numPasajeros = numPasajeros;
}
public int getPuntuacion() {
return puntuacion;
}
......@@ -67,4 +88,17 @@ public class Reserva {
public void setViaje(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 {
private String nombre;
private List<Viaje> viajes;
private List<Usuario> usuarios;
private List<Reserva> reservas;
public String getNombre() {
......@@ -31,4 +32,19 @@ public class SistemaCarPooling {
public void setUsuarios(List<Usuario> 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;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.carpooling.carpoolingaoraha.entidades.*;
enum rol{
import static com.carpooling.carpoolingaoraha.entidades.Rol.CONDUCTOR;
import static com.carpooling.carpoolingaoraha.entidades.Rol.PASAJERO;
enum Rol {
CONDUCTOR, PASAJERO
};
public class Usuario {
SistemaCarPooling sistemaCarPooling;
private String nombre;
private String apellidos;
private Date FNac;
......@@ -16,12 +20,13 @@ public class Usuario {
private String email;
private String claveAcceso;
private int puntuacion;
private rol rol;
private Rol rol;
private ArrayList<Integer> viajesOfertados;
private SistemaCarPooling sis;
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.apellidos = apellidos;
this.FNac = FNac;
......@@ -29,8 +34,13 @@ public class Usuario {
this.telefono = telefono;
this.email = email;
this.claveAcceso = claveAcceso;
this.puntuacion = puntuacion;
this.puntuacion = 0;
this.rol = rol;
if(rol == CONDUCTOR){
this.viajesOfertados = new ArrayList<>();
}else{
this.viajesOfertados = null;
}
}
public String getNombre() {
......@@ -94,17 +104,66 @@ public class Usuario {
}
public void setPuntuacion(int puntuacion) {
this.puntuacion = puntuacion;
this.puntuacion += puntuacion;
}
public rol getRol() {
public Rol getRol() {
return rol;
}
public void setRol(rol rol) {
public void setRol(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();
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