| 
 
 
 
 En esta página: Atributos El ejemplo atributos ilustra cómo un ejemplar de la clase DirContext, Drink es almacenado y recuperado desde el directorio. Cuando se buscan los atributos del objeto Drink desde el directorio, Context.lookup() convierte estos atributos en un ejemplar de Drink. 
Drink d2 = (Drink) ctx.lookup("cn=favDrink");
Esto sucede por. 
 DrinkFactory.getObjectInstance() primero verifica que el objeto está pensado para su factoría. Hace esto chequeando que el objeto es un DirContext y que contiene un atributo "drinkType". Si esta verificación falla, el método devuelve null. De otra forma, obtiene el valor del atributo "drinkType" (en este caso, "water") y lo usa para crear un ejemplar de Drink. Aquí tenemos la definición de DrinkFactory.getObjectInstance(). 
public Object getObjectInstance(Object obj, Name name, Context ctx,
    Hashtable env, Attributes inAttrs) throws Exception {
    if (obj instanceof DirContext) {
	try {
	    Attribute dt;
	    if (inAttrs != null && (dt=inAttrs.get("drinktype")) != null) {
	        String drinkType = (String)dt.get();
		return new Drink(drinkType);
	    }
        } catch (NamingException e) {
	    // Debug
   	    System.err.println(e);
	    e.printStackTrace();
	}
    }
    // Return null to indicate that other factories should be tried
    return null;
}
 
 |