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:


Nombres String contra Nombres Estructurados

Cada método de nombrado de los interfaces Context y DirContext tiene dos formas sobrecargadas, una que acepta un nombre string (java.lang.String) y una que acepta un nombre estructurado (Name).

Por ejemplo, lookup() tiene estas dos formas.

lookup(java.lang.String)
lookup(javax.naming.Name)

Nombres String

Las sobrecargas que aceptan nombres java.lang.String son formas de conveniencia que permiten a los métodos ser invocados sin que el llamador tenga que construir un ejemplar de CompositeName.

El argumento java.lang.String pasado a estos métodos sobrecargados representa un nombre mixto y sigue las reglas de síntaxis especificadas en la clase CompositeName.

Por ejemplo, las dos siguientes llamadas a lookup() son equivalentes.

Object obj1 = ctx.lookup("cn=Ted Geisel, ou=People, o=JNDITutorial");

CompositeName cname = new CompositeName(
    "cn=Ted Geisel, ou=People, o=JNDITutorial");
Object obj2 = ctx.lookup(cname);

Nombres Estructurados

Las sobrecargas que aceptan un Name aceptan un ejemplar de CompositeName, CompoundName, o cualquier otra clase que implemente el interface Name.

Si el objeto es un ejemplar de CompositeName, es tratado como un nombre mixto. Un nombre mixto es un nombre que puede expandirse a varios sistemas de nombres, no sólo al sistema de nombres en que se ha llamado al método. Puedes ver la sección Nombres Mixtos de esta lección para ver ejemplos de cómo usarlos. En el peor de los casos, el nombre solo se expande en el sisema de nombres en el que se llamó al método.

En la sección Trucos para usuarios de LDAP, por ejemplo, todos los ejemplos usan nombres string desde el espacio de nombres LDAP. Observa que incluso en el peor de los casos, el nombre todavía es un nombre mixto; es decir, un nombre mixto con un sólo componente.

Si el objeto no es un ejemplar de CompositeName, se le trata como un nombre compuesto -- un nombre que expande sólo un espacio de nombres.

Puedes ver la sección Nombres Compuestos de esta lección para ver ejemplos de uso de nombres compuestos.

Cuándo usar cada uno de ellos

Normalmente, nuestro programa usará un nombre string si el usuario suministró un nombre string. Podría usar un ejemplar de Name si se hubiera compuesto el nombre usando entrada del usuario. Por ejemplo en una aplicación navegador, cuando el usuario atraviesa diferentes partes del espacio de nombres, la aplicación podría necesitar componer nombres que directamente navegaran a través de esas partes del espacio de nombres. Podría hacerlo creando representaciones string de los nombres de aquellas partes del espacio de nombres y siendo consciente y usando la síntaxis de nombres apropiada. O, podría usar ejemplares de Name creados con la ayuda de las utilidades proporcionadas por el JNDI.

Puedes ver la sección Manejar Caracteres Especiales de esta lección para ver cómo acomodar los caracteres especiales en un nombre que tiene conflictos con la síntaxis de nombres mixtos de JNDI.


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