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; }
|