Código:
Trato de probarlo y me tira el error de NullPointerException, creería que sería en el retorno de dtoTrabajadorYRol? hace muy poco que estoy con Java y no logro ver bien en donde está el problema.public DTOTrabajadorYRol ingresarVigencia(Date fechaInicioRol, Date fechaFinRol){ //inicio metodo ingresarVigencia DTOTrabajadorYRol dtoTrabajadorYRol = new DTOTrabajadorYRol(); boolean valor = false; Calendar cal = new GregorianCalendar(); //FECHA INICIO MENOR FECHA HOY if(valor == false){ int year = cal.get(Calendar.YEAR); //devuelve el anio corriente del sistema int month = cal.get(Calendar.MONTH); //devuelve el mes actual cooriende del sistema int day = cal.get(Calendar.DAY_OF_MONTH); //devuelve el dia actual corriente del sistema if(fechaInicioRol.getYear() <= year){ //inicio if1 if(fechaInicioRol.getMonth() < month){ //inicio if2 dtoTrabajadorYRol.setHayError("FIFH"); valor = true; } //fin if2 if((fechaInicioRol.getMonth() == month) && (fechaInicioRol.getDate() < day)){ //inicio if3 dtoTrabajadorYRol.setHayError("FIFH"); valor = true; } // fin if3 } // fin if1 } //FECHA INICIO MENOR FECHA HOY //FECHA INICIO MAYOR FECHA FIN if(valor == false){ //inicio if if(fechaInicioRol.after(fechaFinRol)){ //inicio if dtoTrabajadorYRol.setHayError("FIFF"); valor = true; } //fin if } //fin if //FECHA INICIO MAYOR FECHA FIN ArrayList<Object> trabajadoresDisponibles = new ArrayList<Object>(); //MENOS DE 3 TRABAJADORES if(valor == false){ Expresion criterioVigencia = FachadaPersistencia.getInstance().crearCriterio("fechaFinRol", "<", fechaInicioRol); ArrayList<Object> trabajadoresRol1 = new ArrayList<Object>(); trabajadoresRol1 = FachadaPersistencia.getInstance().buscar("TrabajadorRol", criterioVigencia); for( int m = 0; m < trabajadoresRol1.size(); m++){ //inicio for trabajadoresDisponibles.add(((TrabajadorRol)trabajadoresRol1.get(m)).getTrabajador()); } //fin for if(trabajadoresDisponibles.size() < 3){ //inicio if dtoTrabajadorYRol.setHayError("TM3"); // no hay por lo menos 3 trabajadores disponibles valor = true; } //fin if } //fin if //MENOS DE 3 TRABAJADORES //RETORNA LOS TRABAJADORES if(valor == false){ Expresion criterio = (Criterio) FachadaPersistencia.getInstance().crearCriterio("codigoRol", ">", 0); ArrayList<Object> roles = new ArrayList<Object>(); roles = FachadaPersistencia.getInstance().buscar("Rol", criterio); for(Object rol : roles){ //inicio for1 DTORol dtoRol = new DTORol(); dtoRol.setCodigoRol(((Rol)rol).getCodigoRol()); dtoRol.setNombreRol(((Rol)rol).getNombreRol()); dtoTrabajadorYRol.setDTORol(dtoRol); } // fin for1 for(int i = 0; i < trabajadoresDisponibles.size(); i++){ //inicio for2 String nombre = ((Trabajador)trabajadoresDisponibles.get(i)).getNombre(); String apellido = ((Trabajador)trabajadoresDisponibles.get(i)).getApellido(); int legajo = ((Trabajador)trabajadoresDisponibles.get(i)).getLegajo(); ArrayList<Trabajo> trabajos = ((Trabajador)trabajadoresDisponibles.get(i)).getTrabajo(); DTOTrabajador dtoTrabajador = new DTOTrabajador(); dtoTrabajador.setApellido(apellido); dtoTrabajador.setLegajo(legajo); dtoTrabajador.setNombre(nombre); for(int k = 0; i < trabajos.size(); k++){ dtoTrabajador.setNombreTrabajo(trabajos.get(i).getNombreTrabajo()); } dtoTrabajadorYRol.setDTOTrabajador(dtoTrabajador); } //fin for 2 this.fechaFinRol = fechaFinRol; this.fechaInicioRol = fechaInicioRol; dtoTrabajadorYRol.setFechaInicioRol(this.fechaInicioRol); dtoTrabajadorYRol.setFechaFinRol(this.fechaFinRol); this.dtoTrabajadorYRol1 = dtoTrabajadorYRol; } //RETORNA LOS TRABAJADORES return dtoTrabajadorYRol; } //fin metodo ingresarVigencia
Muchas gracias.
Saludos.