Programación en castellano
Inicio > Tutoriales > J2EE > Sistema de Nombrado en Java (JNDI) y II
-Tutoriales

Sistema de Nombrado en Java (JNDI) y II


Más Nombres

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");
}
 
Patrocinados
 

Copyright © 1999-2007 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: musica mp3 | logos y melodias | hospedaje web linux | registro de dominios | servidores dedicados
más internet: comprar | recursos gratis | posicionamiento en buscadores | tienda virtual | gifs animados