本文整理汇总了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;
}
示例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();
}
示例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;
}
}
示例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());
}
}
}