package cib412.poo.delegacion;
public class SerVivo {
    private Ojo ojo1,ojo2;
    private Oreja oreja1; private Oreja oreja2;
    private Mano mano1; private Mano mano2;
    private Nariz nariz;  private Lengua gusto;
    /**Crea una instancia de ser vivo y via composicion
     * genera cada una de sus partes*/
    public SerVivo() {
        ojo1 = new Ojo();ojo2= new Ojo();
        oreja1= new Oreja(); oreja2= new Oreja();
        mano1 = new Mano(); mano2 = new Mano();
        nariz = new Nariz(); gusto = new Lengua();
    }
    /**Crea una instancia, agregando los objetos que lo componen*/
    public SerVivo(Ojo o1,Ojo o2,Oreja or1,Oreja or2,Mano m1,Mano m2,
    Nariz n, Lengua g) {
        ojo1=o1;ojo2=o2;oreja1=or1;oreja2=or2;mano1=m1;mano2=m2;
        nariz=n; gusto = g;
    }
    public void ver(Object o) throws Exception{
        if (ojo1!=null && ojo2!=null) {
            ojo1.ver(o);ojo2.ver(o);
        } else { throw new Exception("Problemas en ojos"); }
    }
    public void escuchar(Object o) throws Exception{
        if (oreja1!=null && oreja2!=null) {
            oreja1.escuchar(o);oreja2.escuchar(o);
        } else { throw new Exception("Problemas en orejas"); }
    }
    public void oler(Object o) throws Exception{
        if (nariz!=null) nariz.oler(o);
        else throw new Exception("Problemas en nariz");
    }
    public void tocar(Object o) throws  Exception {
        if (mano1!=null && mano2!=null) {
          mano1.tocar(o); mano2.tocar(o);
        } else { throw new Exception("Problemas en manos"); }
    }
    public void saborear(Object o) throws Exception{
        if (gusto!=null) gusto.saborear(o);
        else throw new Exception("Problemas en lengua");
    }
}
