Categorías destacadas
programacion php    
Artículo
1
¡votar!

 Sistema de Nombrado en Java (JNDI) y II


Nombres

Casi todos los métodos del interface Context deben procesar nombres. Por consistencia, deberíamos usar el mismo patrón en cada método que procese nombres. Una forma de conseguir esta conveniencia es definir y utilizar métodos de utilidad para procesar el nombre de entrada. Aquí damos dos ejemplos, uno para una implementación de contexto de un espacio de nombres plano y otro para una implementación de contexto de un espacio de nombres en forma de árbol. Si una implementación de contexto soporta un espacio de nombre plano o en forma de árbol está determindo por el servicio de nombres/directorio subyacente o por los requerimientos del proveedor de servicio.

Como se recomendó en la lección Las Reglas de Fondo , para ámbos ejemplos, cada método del interface Context que acepta un nombre java.lang.String está definido simplemente para llamar a su compañero que acepta un Name. El resto de esta explicación se enfoca en tratar los nombres estructurados.

. Un Ejemplo de Espacio de Nombres Plano

El primer ejemplo implementa un espacio de nombres plano y no soporta federación. Los métodos que aceptan un Name usan el siguiente método de utilidad para determinar los componentes del nombre que deben ser procesados:

protected String getMyComponents(Name name) throws NamingException {
    if (name instanceof CompositeName) {
        if (name.size() > 1) {
	    throw new InvalidNameException(name.toString() +
		" has more components than namespace can handle");
	}
	return name.get(0);
    } else {
	// A compound name
	return name.toString();
    }
}

Como el contexto no soporta federación, acepta sólo nombres mixtos de un sólo componente o nombres compuestos. Si recibe un nombre mixto multi-componente, lanza una InvalidNameException.

. Un Espacio de Nombres en Forma de Árbol

El segundo ejemplo implementa un espacio de nombres con forma de árbol y no soporta federación. Los métodos que aceptan un Name usan el siguiente método de utilidad para determinar los componentes del nombre que deberían ser procesados:

protected Name getMyComponents(Name name) throws NamingException {
    if (name instanceof CompositeName) {
	if (name.size() > 1) {
	    throw new InvalidNameException(name.toString() +
		" has more components than namespace can handle");
	}

	// Turn component that belongs to you into a compound name
	return myParser.parse(name.get(0));
    } else {
	// Already parsed
	return name;
    }
}

Al contrario que en el ejemplo plano, este método devuelve un Name que representa un nombre compuesto estructurado en lugar de un java.lang.String. Cuando este método obtiene un CompositeName, convierte el primer componente en un nombre compuesto y lo devuelve.

Publicado por:
Ricard Lou Torrijos
Recomendar
a un amigo
Compartir
en redes
 
Comentarios
 
BBDD
Entornos de desarrollo
Entretenimiento
Herramientas
Internet
Lenguajes de script
Lenguajes imperativos
Lenguajes orientados a objeto
Otros lenguajes
Plataformas
Teoría
Varios
Copyright © 1998-2011 Programación en Castellano. Todos los derechos reservados
Datos legales | Politica de privacidad | Contacte con nosotros | Publicidad

Diseño web y desarrollo web. Un proyecto de los hermanos Carrero.

Red internet:
Juegos gratis | Servidores dedicados
Más internet: Password | Directorio de weblogs | Favicon