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:


Referencia

El ejemplo referencia ilustra cómo un ejemplar de una clase Referenceable, Fruit es almacenado y recuperado desde el directorio. Cuando se busca una referencia en el directorio, Context.lookup() convierte los datos leídos del directorio en un ejemplar de Fruit.

Fruit f2 = (Fruit) ctx.lookup("cn=favorite");

Esto sucede debido a lo siguiente.

  1. El proveedor de servicio que se está usando (LDAP de Sun) llamá a DirectoryManager.getObjectInstance() y suministra al método los datos (una referencia) que el proveedor lee desde el directorio para la entrada  "cn=favorite".
  2. La referencia identifica FruitFactory como el nombre de la clase de la factoría de objetos.
  3. FruitFactory.getObjectInstance() devuelve un ejemplar de Fruit.

FruitFactory.getObjectInstance() es simple. Primero verifica que puede hacer algo con los datos. Es decir, chequea que el dato es una Reference que contiene una dirección del tipo "fruit" y que la referencia es para objetos de la clase Fruit. Si esta verificación falla, la factoría devuelve null para que otras factorías, si las hay, puedan intentarlo. Si tiene éxito, se usa el contenido de la dirección (en este caso "orange") para crear un nuevo ejemplar de Fruit, que luego es devuelto.

Aquí tenemos la definición de FruitFactory.getObjectInstance().

public Object getObjectInstance(Object obj, Name name, Context ctx,
    Hashtable env) throws Exception {
    if (obj instanceof Reference) {
        Reference ref = (Reference)obj;
        if (ref.getClassName().equals(Fruit.class.getClassName())) {
	    RefAddr addr = ref.get("fruit");
	    if (addr != null) {
  	        return new Fruit((String)addr.getContent());
	    }
        }
    }
    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