Sistema de Nombrado en Java (JNDI) y II

El interface Context contiene dos m�todos relacionados con los nombres: Context.getNameInNamespace() y Context.composeName(). Estos m�todos permiten al usuario del API manipular los nombres con respecto a un contexto.

.�Nombres Totalmente Cualificados

El usuario del API usa Context.getNameInNamespace() para obtener un nombre totalmente cualificado de un ejemplar Context dentro de su espacio de nombres. La definici�n de este m�todo depende del servicio de nombres/directorio subyacente. En una implementaci�n real, este m�todo podr�a acceder al servicio subyacente o usar la informaci�n almacenada en el ejemplar Context para generar una respuesta.

El ejemplo en forma de �rbol mantiene un puntero para determinar el nombre totalmente cualificado de un contexto. Aqu� tenemos la definici�n de su getNameInNamespace():

public String getNameInNamespace() throws NamingException {
    HierCtx ancestor = parent;

    // No ancestor; at root of namespace
    if (ancestor == null) {
        return "";
    }

    Name name = myParser.parse("");
    name.add(myAtomicName);

    // Get the parent's names
    while (ancestor != null && ancestor.myAtomicName != null) {
        name.add(0, ancestor.myAtomicName);
	ancestor = ancestor.parent;
    }
	    
    return name.toString();
}

.�Componer Nombres

El usuario del API usa Context.composeName() para componer nombres que posiblemente expandan m�ltiples espacios de nombres. La lecci�n �Qu� es un nombre? describe esto con m�s detalles.

Como el ejemplo del espacio de nombres en forma de �rbol no soporta federaci�n, su nombre composeName() s�lo trata con nombres compuestos. Aqu� est� su definici�n:

public Name composeName(Name name, Name prefix) throws NamingException {
    Name result;

    // Both are compound names; compose using compound name rules
    if (!(name instanceof CompositeName) &&
        !(prefix instanceof CompositeName)) {
        result = (Name)(prefix.clone());
	result.addAll(name);
	return new CompositeName().add(result.toString());
    }

    // Simplistic implementation; do not support federation
    throw new OperationNotSupportedException(
	"Do not support composing composite names");
}

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR