Añadir Soporte de Directorio
Si una implementación de contexto soporta operaciones de directorio o no, depende en gran
medida del servicio subyacente. Si este servicio es un servicio de directorio LDAP, por
ejemplo, ocurrirá un error si el resultado de la implementación de contexto correspondiente
no soporta operaciones de directorio. En contraste, si el servicio sunbyacente es el registro
RMI, el soporte de operaciones de directorio no tiene sentido porque las entradas del
registro RMI no tienen atributos.
Para soportar operaciones de directorio, una implementación de contexto debe soportar los
métodos definidos en el interface
DirContext además de los del inteface
Context. Esto puede hacerse definiendo una clase que implemente
DirContext o definiendo una subclase que implemente
DirContext y descienda de una clase que implemente
Context. En el
ejemplo de esta lección, se usará el
último, pero no hay una diferencia real entre los dos.
Como con los métodos de Context, una implementación de contexto
no tiene que soportar todos los métodos del interface DirContext.
Para aquellos que no soporte, debería lanzar una
OperationNotSupportedException.
Las operaciones de directorio pueden dividirse en cinco grupos:
Sin embargo, dentro de este marco de trabajo, hay mucha libertad de acción en las
características que soporta la implementación de contexto. Ninguna de las características
descritas en esta sección implica la adicción de nuevos componentes. En vez de eso, implica
embellecer una implementación de contexto, normalmetne haciendo que los métodos existentes
soporten la caracterísitica o añadiendo nuevos métodos.
Esta lección también muestra cómo hacer
extensible una implementación de
contexto en términos de los tipos de objetos que puede aceptar para unir y aquellos que
devuelve al programa de usuario.
El Modelo de Atributos
En algunos servicios de directorio, los atributos están asociados con el
nombre de un objeto, mientras que en otros servicios de directorio, los
atributos están asociados con el propio objeto. El JNDI no especifica
un modelo de atributo particular; ambos modelos son igualmente aceptables. El modelo de
atributo del servicio subyacene podría afectar a la implementación de la implementación de
contexto.