Modificar Atributos
El interface DirContext
contiene métodos para modificar los atributos y los valores de los atributos de
objetos en el directorio.
Usar una Lista de Modificación
Una forma de modificar los atributos de un objeto es suministrar una lista de
solicitudes de modificación (ModificationItem).
Cada ModificationItem consiste en una constante numérica
indicando el tipo de modificación a realizar y un Attribute
describiendo la modificación a realizar. Aquí están los tres tipos de
modificaciones:
Las modificaciones se aplican en el orden en que aparecen en la lista. O se
ejecutan todas las modificaciones o ninguna.
El siguiente código crea una lista de modificaciones. Reemplaza el valor del
atributo "mail" con un valor de "geisel@wizards.com",
añade un valor adicional al atributo "telephonenumber"
y elimina el atributo "jpegphoto".
// Specify the changes to make
ModificationItem[] mods = new ModificationItem[3];
// Replace the "mail" attribute with a new value
mods[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE,
new BasicAttribute("mail", "geisel@wizards.com"));
// Add an additional value to "telephonenumber"
mods[1] = new ModificationItem(DirContext.ADD_ATTRIBUTE,
new BasicAttribute("telephonenumber", "+1 555 555 5555"));
// Remove the "jpegphoto" attribute
mods[2] = new ModificationItem(DirContext.REMOVE_ATTRIBUTE,
new BasicAttribute("jpegphoto"));
Después de crear esta lista de modificaciones, podemos suministrarsela a modifyAttributes()
de esta forma.
// Perform the requested modifications on the named object
ctx.modifyAttributes(name, mods);
Usar Atributos
De forma alternativa, podemos realizar modificaciones especificando el tipo de
modificación y los atributos a los que queremos aplicarle esta modificación.
Por ejemplo, la siguiente línea reemplaza los atributos (identificados en orig)
asociados con name con ese orig.
ctx.modifyAttributes(name, DirContext.REPLACE_ATTRIBUTE, orig);
Cualquier otro atributo de name no se modifica.
Estos dos usos de modifyAttributes() se demuestran en el
programa de ejemplo. Este programa modifica los atributos usando una lista
de modificaciones y luego usa la segunda forma de modifyAttributes()
para restaurar los atributos originales.