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:


Analizar Nombres

Convertir un nombre significa usar su representación string (java.lang.String) para obtener su representación estructural (Name).

El JNDI proporciona un analizador de nombres para nombres mixtos y un interface genérico para analizar nombres compuestos. Los proveedores de servicios proporcionan las implementaciones reales de los analizadores de nombres para nombres compuestos exportados por sus espacios de nombres.

Convertir Nombres Mixtos

Para convertir un nombre mixto, podemos usar su representación string en el constructor de CompositeName.

Por ejemplo, el siguiente código convierte el nombre string en un nombre estructurado, CompositeName

// Parse the string name into a CompositeName
Name cname = new CompositeName(
    "cn=homedir,cn=Jon Ruiz,ou=people/tutorial/report.txt");

Puedes ver la sección Nombres Mixtos para ver ejemplos de cómo acceder y cambiar los componentes de un CompositeName.

Convertir Nombres Compuestos

Para convertir un nombre compuesto, usamos el interface NameParser.

Este interface contiene un sólo método: Name parse(String name) throws InvalidNameException;

Sin embargo, primero debemos obtener un NameParser desde el proveedor de servicios que soporta el espacio de nombres. Aquí tenemos un ejemplo que obtiene analizadores de nombres para espacios de nombres LDAP y espacios de nombres de ficheros.

// Create the initial context
Context ctx = new InitialContext();

// Get the parser for LDAP
NameParser ldapParser = 
    ctx.getNameParser("ldap://localhost:389/o=jnditutorial");

// Get the parser for filenames
NameParser fsParser = ctx.getNameParser("file:/");

Puedes ver la sección Nombres Compuestos para más ejemplos de cómo obtener un ejemplar de  NameParser.

Una vez que tenemos un ejemplar de un NameParser, podemos usar su método parse() para convertir nombres compuestos. Como una continuación del ejemplo, podemos usar ldapParser para convertir un nombre string LDAP en su forma estructural, de esta forma

// Parse the name using the LDAP parser
Name compoundName = ldapParser.parse("cn=John Smith, ou=People, o=JNDITutorial");

De forma similar, podemos usar fsParser para convertir un nombre de fichero de esta forma.

// Parse the name using the LDAP parser
Name compoundName = fsParser.parse("tmp/tutorial/beyond/names/parse.html");

Observa que cada analizador determina la síntaxis de nombres que aceptará.

Si suministramos un nombre de fichero válido que no es un nombre LDAP legal a un analizador LDAP, obtendremos una InvalidNameException.

Aunque parse() devuelve un Name, NameParser está pensada para ser utilizada sólo con nombres compuestos, no con nombres mixtos. El objeto devuelto por parse() podría o no ser un ejemplar de CompoundName.

El único requerimiento es que implemente el interface Name. El tipo exacto del objeto devuelto depende de la implementación del proveedor de servicios.


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