|
Buscador
Secciones
Registro
¡Colabora!
Ganamos
Servicios
|
Inicio > Tutoriales > Lenguajes orientados a objeto > Java > J2EE > Sistema de Nombrado en Java (JNDI) y II
En el ejemplo UseSchema, sólo podemos introducir clases objeto definidas en el esquema. Si introducimos una clase objeto que no existe en el esquema, el programa lanzará una NameNotFoundException. El siguiente ejemplo,AugmentSchema, nos permite crear clases objeto que no se han definido todavía. Ejecutamos el programa suministrando el nombre de la entrada a crear como un argumento de la línea de comandos: # java AugmentSchema "cn=TestPerson, ou=People" Al igual que el programa UseSchema, luego introducimos la lista de clases objeto de la nueva entrada. Con el programa AugmentSchema, podríamos introducir clases objeto que no están definidas. Después de obtener la lista, el programa usa checkDefinition() para comprobar si las clases objeto están definidas. Este método acepta como argumentos la raíz del árbol del esquema, la lista de nombres de clases objeto a comprobar, el tipo de objeto esquema (por ejemplo, "ClassDefinition" o "AttributeDefinition"), y la lista de atributos necesarios para definir un objeto esquema de ese tipo. Aquí está el código del método checkDefinition():
static void checkDefinition(DirContext schema, Vector names,
String schemaType, String[]schemaAttrIDs) throws NamingException, IOException {
DirContext root = (DirContext)schema.lookup(schemaType);
for (int i = 0; i < names.size(); i++) {
String name = (String)names.elementAt(i);
try {
// Check if the definition already exists in the schema
root.lookup(name);
} catch (NameNotFoundException e) {
// Get the definition from the user
Attributes schemaAttrs = getDefinition(schemaType, name, schemaAttrIDs);
// Add the definition to the schema
root.createSubcontext(name, schemaAttrs);
}
}
}
}
Por cada clase objeto que no tenga una definición de esquema, el programa crea una nueva definición preguntándonos los atributos necesarios para definirla en el esquema, como su OID, el nombre y sus lista de atributos obligatorios y opcionales. Entonces el programa crea una definición de clase objeto llamando a createSubcontext() sobre el árbol esquema.
Después de hacer esto para todas las clases de la lista, el programa obtiene la lista de atributos obligatorios y opcionales de la clase objeto desde el esquema. Entonces chequea está lista para asegurarse de que tiene sus definiciones de atributos en el esquema, usando de nuevo checkDefinition(). Por cada atributo que no tiene definición de esquema, el programa la crea preguntándonos por los atributos necesarios para definirlo en el esquema, como su OID, el nombre y la síntaxis. Luego el programa crea una definición de atributo llamando a createSubcontext() sobre el árbol de esquema. El programa solicita los datos para los atributos de la nueva entrada y usa createSubcontext() para crear la nueva entrada.
|
| Utilidades
Patrocinados |
Copyright © 1999-2006
Programación en castellano.
Todos los derechos reservados.
Formulario de Contacto -
Datos legales -
Publicidad
Hospedaje web y servidores dedicados linux por
Ferca Network