Programación en castellano Añadir una dirección | Buscador | Cursos | Artículos | Foros | Formación

Sistema de Nombrado en Java (JNDI) [Parte I]
Autor: Sun
Traductor: Juan Antonio Palos (Ozito)


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.

  1. El proveedor de servicio usado (el LDAP de Sun) invoca a DirectoryManager.getObjectInstance() y suministra al método los datos (un DirContext) que el proveedor lee desde el directorio de la entrada "cn=favDrink".
  2. El programa cliente identifica la factoría de objetos (DrinkFactory) para usarla cuando crea el contexto inicial.
    // Add property so that object factory can be found
    env.put(Context.OBJECT_FACTORIES, "DrinkFactory");
    
  3. DrinkFactory.getObjectInstance() devuelve un ejemplar de Drink.

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

Principio Página
© 1999-2002, Programación en castellano, s.l.
Contacto - Datos legales

ReD Internet: Hospedaje Web | envio sms gratis | Salvapantallas | Fondos de Escritorio, famosas | melodias moviles gratis| Gratis