當前位置: 首頁>>代碼示例>>Java>>正文


Java ModificationItem.getModificationOp方法代碼示例

本文整理匯總了Java中javax.naming.directory.ModificationItem.getModificationOp方法的典型用法代碼示例。如果您正苦於以下問題:Java ModificationItem.getModificationOp方法的具體用法?Java ModificationItem.getModificationOp怎麽用?Java ModificationItem.getModificationOp使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在javax.naming.directory.ModificationItem的用法示例。


在下文中一共展示了ModificationItem.getModificationOp方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: toServerModification

import javax.naming.directory.ModificationItem; //導入方法依賴的package包/類
/**
 * Convert a ModificationItem to an instance of a ServerModification object
 *
 * @param modificationImpl the modification instance to convert
 * @param attributeType the associated attributeType
 * @return a instance of a ServerModification object
 */
private static Modification toServerModification( ModificationItem modificationImpl, AttributeType attributeType )
    throws LdapException
{
    ModificationOperation operation;

    switch ( modificationImpl.getModificationOp() )
    {
        case DirContext.REMOVE_ATTRIBUTE:
            operation = ModificationOperation.REMOVE_ATTRIBUTE;
            break;

        case DirContext.REPLACE_ATTRIBUTE:
            operation = ModificationOperation.REPLACE_ATTRIBUTE;
            break;

        case DirContext.ADD_ATTRIBUTE:
        default:
            operation = ModificationOperation.ADD_ATTRIBUTE;
            break;

    }

    Modification modification = new DefaultModification(
        operation,
        ServerEntryUtils.toServerAttribute( modificationImpl.getAttribute(), attributeType ) );

    return modification;

}
 
開發者ID:TremoloSecurity,項目名稱:MyVirtualDirectory,代碼行數:37,代碼來源:ServerEntryUtils.java

示例2: dumpModificationItems

import javax.naming.directory.ModificationItem; //導入方法依賴的package包/類
/**
 * Dumps the modifications
 */
private String dumpModificationItems()
{
    StringBuffer sb = new StringBuffer();

    for (ModificationItem modif : modificationList) {
        sb.append("            Operation: ");

        switch (modif.getModificationOp()) {
            case DirContext.ADD_ATTRIBUTE :
                sb.append("ADD\n");
                break;

            case DirContext.REMOVE_ATTRIBUTE :
                sb.append("REMOVE\n");
                break;

            case DirContext.REPLACE_ATTRIBUTE :
                sb.append("REPLACE \n");
                break;
        }

        Attribute attribute = modif.getAttribute();

        sb.append("                Attribute: ").append(attribute.getID()).append('\n');

        if (attribute.size() != 0) {
            try {
                for (NamingEnumeration values = attribute.getAll(); values.hasMoreElements();) {
                    Object value = values.nextElement();

                    if (value instanceof String) {
                        sb.append("                ").append((String) value).append('\n');
                    } else {
                        sb.append("                ").append(Utils.dumpBytes((byte[]) value)).append('\n');
                    }
                }
            }
            catch (NamingException ne) {
                return "";
            }
        }
    }

    return sb.toString();
}
 
開發者ID:scriptella,項目名稱:scriptella-etl,代碼行數:49,代碼來源:Entry.java

示例3: modifyAttributes

import javax.naming.directory.ModificationItem; //導入方法依賴的package包/類
public void modifyAttributes(Name name, ModificationItem[] modificationItems)
        throws NamingException {
    checkName(name);

    if (modificationItems == null) {
        // FIXME: spec say ModificationItem may not be null, but ri
        // silence in this case
        throw new NullPointerException(Messages.getString("ldap.27")); //$NON-NLS-1$
    }

    if (hasMultiNamingSpace(name)) {
        /*
         * multi ns, find next ns context, delegate operation to the next
         * context
         */
        DirContext nns = (DirContext) findNnsContext(name);
        Name remainingName = name.getSuffix(1);
        nns.modifyAttributes(remainingName, modificationItems);
        return;
    }

    if (modificationItems.length == 0) {
        return;
    }

    /*
     * there is only one ldap ns
     */
    // get absolute dn name
    String targetDN = getTargetDN(name, contextDn);
    ModifyOp op = new ModifyOp(targetDN);
    for (ModificationItem item : modificationItems) {
        switch (item.getModificationOp()) {
        case DirContext.ADD_ATTRIBUTE:
            op.addModification(0, new LdapAttribute(item.getAttribute(),
                    this));
            break;
        case DirContext.REMOVE_ATTRIBUTE:
            op.addModification(1, new LdapAttribute(item.getAttribute(),
                    this));
            break;
        case DirContext.REPLACE_ATTRIBUTE:
            op.addModification(2, new LdapAttribute(item.getAttribute(),
                    this));
            break;
        default:
            throw new IllegalArgumentException(Messages.getString(
                    "jndi.14", item.getModificationOp())); //$NON-NLS-1$
        }
    }

    try {
        doBasicOperation(op);
    } catch (ReferralException e) {
        if (isFollowReferral(e)) {
            DirContext referralContext = getReferralContext(e);
            referralContext.modifyAttributes(name, modificationItems);
            return;
        }
        throw e;
    }
}
 
開發者ID:shannah,項目名稱:cn1,代碼行數:63,代碼來源:LdapContextImpl.java

示例4: getCompensatingModificationItem

import javax.naming.directory.ModificationItem; //導入方法依賴的package包/類
/**
 * Get a ModificationItem to use for rollback of the supplied modification.
 * 
 * @param originalAttributes
 *            All Attributes of the target DN that are affected of any of
 *            the ModificationItems.
 * @param modificationItem
 *            the ModificationItem to create a rollback item for.
 * @return A ModificationItem to use for rollback of the supplied
 *         ModificationItem.
 */
protected ModificationItem getCompensatingModificationItem(
        Attributes originalAttributes, ModificationItem modificationItem) {
    Attribute modificationAttribute = modificationItem.getAttribute();
    Attribute originalAttribute = originalAttributes
            .get(modificationAttribute.getID());

    if (modificationItem.getModificationOp() == DirContext.REMOVE_ATTRIBUTE) {
        if (modificationAttribute.size() == 0) {
            // If the modification attribute size it means that the
            // Attribute should be removed entirely - we should store a
            // ModificationItem to restore all present values for rollback.
            return new ModificationItem(DirContext.ADD_ATTRIBUTE,
                    (Attribute) originalAttribute.clone());
        } else {
            // The rollback modification will be to re-add the removed
            // attribute values.
            return new ModificationItem(DirContext.ADD_ATTRIBUTE,
                    (Attribute) modificationAttribute.clone());
        }
    } else if (modificationItem.getModificationOp() == DirContext.REPLACE_ATTRIBUTE) {
        if (originalAttribute != null) {
            return new ModificationItem(DirContext.REPLACE_ATTRIBUTE,
                    (Attribute) originalAttribute.clone());
        } else {
            // The attribute doesn't previously exist - the rollback
            // operation will be to remove the attribute.
            return new ModificationItem(DirContext.REMOVE_ATTRIBUTE,
                    new BasicAttribute(modificationAttribute.getID()));
        }
    } else {
        // An ADD_ATTRIBUTE operation
        if (originalAttribute == null) {
            // The attribute doesn't previously exist - the rollback
            // operation will be to remove the attribute.
            return new ModificationItem(DirContext.REMOVE_ATTRIBUTE,
                    new BasicAttribute(modificationAttribute.getID()));
        } else {
            // The attribute does exist before - we should store the
            // previous value and it should be used for replacing in
            // rollback.
            return new ModificationItem(DirContext.REPLACE_ATTRIBUTE,
                    (Attribute) originalAttribute.clone());
        }
    }
}
 
開發者ID:spring-projects,項目名稱:spring-ldap,代碼行數:57,代碼來源:ModifyAttributesOperationRecorder.java


注:本文中的javax.naming.directory.ModificationItem.getModificationOp方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。