Estoy realizando un programa java mvc de 4 paquetes con las siguientes clases: Menu, Cine, EntradaTeclado, Genero, ListadoPeliculas, ListadoSalas, ListadoSesiones, Pelicula, Sala, Sesion, PeliculaDao, SalaDao, SesionDao y Controlador. Aunque para el programa falta mucho y todo lo demás lo sé estoy estancado creando una sesión para la cual debo asignar una fecha y una película, y además debe haber una sala anteriormente. Me marca nullpointer exception. El controlador solo inicia el menú. Os adjunto la clase SesionDao, donde estoy atascado, y la clase Sala y Cine.
A ver si alguien me echa una mano.
Método de ListadoPeliculas que falla
public Pelicula getPelicula(String titulo){
for(Pelicula pelicula:listadoPeliculas){
if(pelicula.getTitulo().equals(titulo)){
return pelicula;
}
}
return null;
}
Este método no es el que me preocupa. Me preocupa esto: cine.getListadoSalas().getSala(numSala).getListadoSesiones().addSesion(sesion);
En el constructor de Menu tengo:
public Menu(){
opcion=0;
et=new EntradaTeclado();
cine=new Cine();
peliculaDao=new PeliculaDao(cine);
salaDao=new SalaDao(cine);
sesionDao=new SesionDao(cine);
}
Un saludo a todos.
Código
public class SesionDao { private EntradaTeclado et; private Cine cine; private Sesion sesion; private LocalDateTime horaSesion; private Sala sala; private Pelicula pelicula; public SesionDao(Cine cine){ et=new EntradaTeclado(); this.cine=cine; } public LocalDateTime indicarSesion(){ et.pedirEntrada(); et.pedirEntrada(); et.pedirEntrada(); et.pedirEntrada(); et.pedirEntrada(); et.pedirEntrada(); horaSesion=LocalDateTime.of(anyo,mes,dia,hora,min,sec); return horaSesion; } public void createSesion(){ if(cine.getListadoSalas().isEmpty()==true){ }else{ try{ horaSesion=indicarSesion(); et.pedirEntrada(); //pelicula=new Pelicula(); //pelicula.setTitulo(titulo); pelicula=cine.getListadoPeliculas().getPelicula(titulo); et.pedirEntrada(); //sala=new Sala(); //sala.setNumSala(numSala); sala=cine.getListadoSalas().getSala(numSala); sesion=new Sesion(horaSesion,pelicula); //opción 1 //sala.getListadoSesiones().addSesion(sesion); //opción 2 //cine.getListadoSalas().getSala(numSala).getListadoSesiones().addSesion(sesion); } } } public void readSesion(){//sin acabar horaSesion=indicarSesion(); //cine.getListadoSalas().getSala(numSala).mostrarInfoSala(); sesion=new Sesion(horaSesion); //sesion=sala.getListadoSesiones().getSesion(horaSesion); sesion.mostrarInfoSesion(); } public void updateSesion(){ } public void deleteSesion(){ } }
Código
public class Cine { private ListadoPeliculas listadoPeliculas; private ListadoSalas listadoSalas; public Cine(){ nombre="WINDSOR"; direccion="Trinidad 47"; listadoPeliculas=new ListadoPeliculas(); listadoSalas=new ListadoSalas(); } return nombre; } return direccion; } public ListadoPeliculas getListadoPeliculas() { return listadoPeliculas; } public ListadoSalas getListadoSalas() { return listadoSalas; } }
Código
public class Sala { private int numSala; private int butacas; private ListadoSesiones listadoSesiones; public Sala() { listadoSesiones = new ListadoSesiones(); numSala=0; butacas=0; } public Sala(int numSala, int butacas) { this.numSala = numSala; this.butacas = butacas; ListadoSesiones listadoSesiones; } public int getNumSala() { return numSala; } public int getButacas() { return butacas; } public ListadoSesiones getListadoSesiones() { return listadoSesiones; } public void setNumSala(int numSala) { this.numSala = numSala; } public void setButacas(int butacas) { this.butacas = butacas; } @Override return "Número sala: "+numSala+", número butacas: "+butacas; } public void mostrarInfoSala(){ } }