Método retorna List<Object>

En este ejemplo contamos con un Services que nos devolverá un List<Object> con varios valores en este ejemplo un objeto de tipo Solicitud y uno de tipo Boolean para indicar si debemos continuar o no.


@Stateless
public class ViajeServices {
public List<Object> asignarListViajesASolicitud(Viaje viaje, Solicitud solicitud, ResourceBundle mrb, ResourceBundle arb) {
        List<Object> list = new ArrayList<>();
        List<Viaje> viajeList = new ArrayList<>();
        Boolean valid = false;
        try {
            switch (viaje.getEstatusViaje().getIdestatusviaje()) {
                case "IDA/REGRESO":
                    viajeList.add(viaje);
                    viajeList.add(viaje);
                    valid = true;
                    break;
            
                case "IDA PENDIENTE REGRESO":
                    viajeList.add(viaje);
                    break;
                case "SOLO IDA":
                    viajeList.add(viaje);
                    break;
                    
                    
                case "SOLO REGRESO":
                    if (solicitud.getViaje() == null || solicitud.getViaje().size() == 0) {
                        JmoordbUtil.warningMessage(mrb.getString("warning.solicitudnotieneviajeida"));

                    } else {
                        viajeList = solicitud.getViaje();
                        viajeList.add(viaje);
                        valid = true;
                    }

                    break;
                case "NO ASIGNADO":
                    if (viajeList.size() == 0) {
                        JmoordbUtil.warningMessage(mrb.getString("warning.seleccioneunestatusviaje"));
                    }

                    break;
                default:
                    JmoordbUtil.warningMessage(mrb.getString("warning.indiquetipoviaje"));
            }

        } catch (Exception e) {
            errorServices.errorMessage(JmoordbUtil.nameOfClass(), JmoordbUtil.nameOfMethod(), e.getLocalizedMessage(), e);
        }
        solicitud.setViaje(viajeList);
        list.add(valid);
        list.add(solicitud);

        return list;
    }
    
}

En el Controller

Procesamos el List<Object> e identificamos el tipo de datos.

public class ViajeController implements Serializable, IController {
    List<Object> objectList= viajeServices.asignarListViajesASolicitud(viaje,solicitud, rf.getMrb(), rf.getArb());
            
            for (Object o : list) {
                if (o instanceof Solicitud) {
                    solicitud =(Solicitud)o;
                }else{
                    if(o instanceof Boolean){
                        if( !(Boolean)o){
                           return""; 
                        }
                    }
                }
                
            }
            
}

Last updated