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

Sistema de Nombrado en Java (JNDI) y II
Autor: Sun
Traductor: Juan Antonio Palos (Ozito)


En esta página:


El Sistema de Nombres Siguiente

Una vez que hemos procesado el sistema de nombres actual, como se describió en la página anterior, nos queda muy poco trabajo por hacer para completar la operación.

Aquí tenemos una implementación de ejemplo del método bind() de la sección anterior:

public void bind(Name name, Object bindObj) throws NamingException {
    try {
	Name[] nm = parseComponents(name);
	Name mine = nm[0];
	Name rest = nm[1];

	if (rest == null || rest.isEmpty()) {
	    // Terminal; just use head
	    bind_internal(mine, bindObj);
	} else if (rest.get(0).equals("") && rest.size() == 1) {
	    // Terminal nns
	    bind_nns(mine, bindObj);
	} else if (mine.isEmpty() || isAllEmpty(rest)) {
	    // Intermediate; resolve current components as intermediate
	    Object obj = lookup_nns(mine);

	    // Skip the leading forward slash
	    throw fillInCPE(obj, mine, rest.getSuffix(1));
	} else {
	    // Intermediate; resolve current components as intermediate
	    Object obj = resolveIntermediate_nns(mine, rest);

	    throw fillInCPE(obj, mine, rest);
	}
    } catch (CannotProceedException e) {
	Context cctx = NamingManager.getContinuationContext(e);
	cctx.bind(e.getRemainingName(), bindObj);
    }
}

Evaluando el código con la claúsula try puede ocurrir cualquiera de estas tres salidas:

Manejamos esta última salida intentando encontrar un contexto de continuación, usando NamingManager.getContinuationContext() o DirectoryManager.getContinuationDirContext(), basándonos en la información de la CannotProceedException. Luego procedemos a llamar al mismo método sobre el contexto de continuación usando el nombre restante.

La aproximación descrita aquí está fuertemente basada en lanzar y capturar una CannotProceedException. Sin embargo, no es la única aproximación. Podríamos conseguir el mismo resultado usando una aproximación alternativa.


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