public class InventarioAlmacen
{

    private String descripcionDelAlmacen;
    private ArbolBB elementosAlmacenados;

    /* Constuctor, proporciona una descripción para el Almacen e
     * inicializa el arbol */
    public InventarioAlmacen(String DescripcionDelAlmacen)
    {
        this.descripcionDelAlmacen = DescripcionDelAlmacen;
        elementosAlmacenados = new ArbolBB();
    }
    
    /* método para insertar un elemento en el Almacen */
    public void insertarElementoEnAlmacen(Elemento elem)
    {
        elementosAlmacenados.insertar(elem.getIdentificador(), elem);
    }
    
    /* mostrar elemento, este metodo busca en el arbol a partir de un identificador,
     * apoyandose en el mecanismo de busqueda de la clase ArbolBB. Una vez localizado
     * imprime por pantalla el atributo descripción de la instancia de la clase Elemento 
     * almacenada en el arbol y el número de unidades almacenadas */
    public void mostrarElemento(Integer identificador)
    {
        Elemento tmp = (Elemento) elementosAlmacenados.buscar(identificador);
        System.out.println("Descripcion: " + tmp.getDescripcion() 
                           + " Numero de Elementos: " + tmp.getNumeroUnidades());
    }
    
    public static void main(String args[])
    {
        /* creamos un nuevo inventario de almacen */
        InventarioAlmacen inv = new InventarioAlmacen("Mi Almacen");

        /* introducimos los datos */
        inv.insertarElementoEnAlmacen(new Elemento(new Integer(10), "i10",12));
        inv.insertarElementoEnAlmacen(new Elemento(new Integer(5), "i05",1));
        inv.insertarElementoEnAlmacen(new Elemento(new Integer(7), "i07",2));
        inv.insertarElementoEnAlmacen(new Elemento(new Integer(3), "i03",6));
        inv.insertarElementoEnAlmacen(new Elemento(new Integer(4), "i04",98));
        inv.insertarElementoEnAlmacen(new Elemento(new Integer(2), "i02",221));
        inv.insertarElementoEnAlmacen(new Elemento(new Integer(1), "i01",21));
        inv.insertarElementoEnAlmacen(new Elemento(new Integer(6), "i06",3));
        inv.insertarElementoEnAlmacen(new Elemento(new Integer(9), "i09",56));
        inv.insertarElementoEnAlmacen(new Elemento(new Integer(8), "i08",33));
        inv.insertarElementoEnAlmacen(new Elemento(new Integer(15), "i15",5));
        inv.insertarElementoEnAlmacen(new Elemento(new Integer(17), "i17",50));
        inv.insertarElementoEnAlmacen(new Elemento(new Integer(13), "i13",2));
        inv.insertarElementoEnAlmacen(new Elemento(new Integer(14), "i14",19));
        inv.insertarElementoEnAlmacen(new Elemento(new Integer(12), "i12",77));
        inv.insertarElementoEnAlmacen(new Elemento(new Integer(11), "i11",82));
        inv.insertarElementoEnAlmacen(new Elemento(new Integer(16), "i16",1));
        inv.insertarElementoEnAlmacen(new Elemento(new Integer(19), "i19",5));
        inv.insertarElementoEnAlmacen(new Elemento(new Integer(18), "i18",99));
        inv.insertarElementoEnAlmacen(new Elemento(new Integer(20), "i20",111));

        /* definimos los identificadores a buscar */
        Integer elem1 = new Integer(10);
        Integer elem2 = new Integer(4);
        Integer elem3 = new Integer(9);
        Integer elem4 = new Integer(19);

        /* llamamos al método mostrar elemento */
        inv.mostrarElemento(elem1);
        inv.mostrarElemento(elem2);
        inv.mostrarElemento(elem3);
        inv.mostrarElemento(elem4);
    }

}

