Example usage for javax.naming.directory ModificationItem getModificationOp

List of usage examples for javax.naming.directory ModificationItem getModificationOp

Introduction

In this page you can find the example usage for javax.naming.directory ModificationItem getModificationOp.

Prototype

public int getModificationOp() 

Source Link

Document

Retrieves the modification code of this modification item.

Usage

From source file:com.springsource.insight.plugin.ldap.TestLdapContext.java

public void modifyAttributes(Name name, ModificationItem[] mods) throws NamingException {
    for (ModificationItem item : mods) {
        BasicAttributes attrs = new BasicAttributes();
        attrs.put(item.getAttribute());//from   w w w. ja  v a2 s  .  co  m
        modifyAttributes(name, item.getModificationOp(), attrs);
    }
}

From source file:ca.tnt.ldaputils.impl.LdapEntry.java

/**
 * Please note, the preferred method is to call setXXXX() where XXXX is the
 * attribute name, followed by save().// w w w  .j  av  a2s  .  c o  m
 * <p/>
 * This sets a batch attribute.  This means that it will be added to a queue
 * for changing LDAP.  You can modify the same attribute multiple times,
 * assuming LDAP supports multivalued attributes for that attribute. You are
 * then required to call modifyBatchAttributes(), which will actually do the
 * operations requested.
 * <p/>
 * You should call this one or more times per attribute, followed by
 * modifyBatchAttributes().
 * <p/>
 * Each time you call this method, for the same attribute, you should
 * specify the same operation, otherwise you will get an
 * IllegalArgumentException, with an appropriate error message.
 *
 * @param operation one of ADD_ATTRIBUTE, REPLACE_ATTRIBUTE,
 *                  REMOVE_ATTRIBUTE
 * @param attribute the name of the attribute
 * @param value     the value of the attribute
 *
 * @see #ADD_ATTRIBUTE ADD_ATTRIBUTE
 * @see #REPLACE_ATTRIBUTE REPLACE_ATTRIBUTE
 * @see #REMOVE_ATTRIBUTE REMOVE_ATTRIBUTE
 */
public void modifyBatchAttribute(final int operation, final String attribute, final Object value) {
    final Attribute newAttribute;
    ModificationItem modItem;
    final int mod_op;

    switch (operation) {
    case ADD_ATTRIBUTE:
        mod_op = DirContext.ADD_ATTRIBUTE;
        break;
    case REPLACE_ATTRIBUTE:
        mod_op = DirContext.REPLACE_ATTRIBUTE;
        break;
    case REMOVE_ATTRIBUTE:
        mod_op = DirContext.REMOVE_ATTRIBUTE;
        break;
    default:
        mod_op = DirContext.ADD_ATTRIBUTE;
    }

    modItem = (ModificationItem) modificationItems.get(attribute);
    if (modItem == null) { // first time we are doing something with this attribute
        newAttribute = new BasicAttribute(attribute, value);
        modItem = new ModificationItem(mod_op, newAttribute);
    } else { // we will add it to the attribute values for this attribute
        if (modItem.getModificationOp() != mod_op) { // make sure they aren't changing their mind on which op
            throw new IllegalArgumentException(
                    "error, operation does not match previous batch items for this attribute");
        }

        modItem.getAttribute().add(value);
    }
    modified = true;
    modificationItems.put(attribute, modItem);
}

From source file:org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.java

/**
 * Converts modification items./* ww w . j a va2  s .c  om*/
 *
 * @param modificationItems
 *      an array of modification items
 * @return
 *      an array of converted modifications
 * @throws LdapInvalidAttributeValueException 
 */
private Modification[] convertModificationItems(ModificationItem[] modificationItems)
        throws LdapInvalidAttributeValueException {
    if (modificationItems != null) {
        List<Modification> modifications = new ArrayList<>();

        for (ModificationItem modificationItem : modificationItems) {
            Modification modification = new DefaultModification();

            modification.setAttribute(AttributeUtils.toApiAttribute(modificationItem.getAttribute()));
            modification.setOperation(convertModificationOperation(modificationItem.getModificationOp()));
            modifications.add(modification);
        }

        return modifications.toArray(new Modification[0]);
    } else {
        return null;
    }
}