
package datos;

import encapsuladores.Gerente;
import encapsuladores.Persona;
import java.util.ArrayList;
import java.util.List;

public class PersonasDATOS {
    
    public void introducir(List<Persona> listaPersonas, Persona persona) {
        Persona personaRegistrar = persona.getResponsable().instanciarTransferirAtributosObjetoEspecifico(persona);
       
        listaPersonas.add(personaRegistrar);
    }
    
    public Persona buscar(List<Persona> listaPersonas, Persona persona) {
        Persona personaEncontrada = null;
        boolean encontrada = false;
        
        Persona personaExtraidaLista;
        for (int i=0; i<listaPersonas.size() && !encontrada; i++) {
            personaExtraidaLista = listaPersonas.get(i);
            if ((personaExtraidaLista.getDni()).compareTo(persona.getDni()) == 0) {
                personaEncontrada = personaExtraidaLista;
                encontrada = true;
            }                
        }
        
        return personaEncontrada;        
    }    
    
    public List<Persona> visualizarPersonas(List<Persona> listaPersonas, Persona personaAutenticada) {
        
        List<Persona> listaPersonasACargo = new ArrayList();
        
        Persona personaExtraidaLista;
        for (int i=0; i<listaPersonas.size(); i++) {
            personaExtraidaLista = listaPersonas.get(i);  
            if (!(personaExtraidaLista instanceof Gerente))      //   Gerente no tiene persona responsable con lo que el atributo responsable es null                   
                if ((personaExtraidaLista.getResponsable().getDni()).compareTo(personaAutenticada.getDni()) == 0) 
                    listaPersonasACargo.add(personaExtraidaLista);
        }
    
        return listaPersonasACargo;        
    }        
}
