En esta página: 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"); }
|