protected void removeSpi( String key ) { Attribute attr = new LockableAttributeImpl( key ); ModificationItemImpl mi = new ModificationItemImpl( DirContext.REMOVE_ATTRIBUTE, attr ); addDelta( mi ); }
private boolean addsAnyCollectiveAttributes( ModificationItemImpl[] mods ) throws NamingException { for ( int i = 0; i < mods.length; i++ ) { Attribute attr = mods[i].getAttribute(); String attrID = attr.getID(); AttributeType attrType = attrTypeRegistry.lookup( attrID ); int modOp = mods[i].getModificationOp(); if ( ( modOp == DirContext.ADD_ATTRIBUTE || modOp == DirContext.REPLACE_ATTRIBUTE ) && attrType.isCollective() ) { return true; } } return false; }
private void addDelta( ModificationItemImpl mi ) { String key = mi.getAttribute().getID(); List deltas = null; changes.add( mi ); if ( keyToChange.containsKey( key ) ) { deltas = ( List ) keyToChange.get( key ); } else { deltas = new ArrayList(); } deltas.add( mi ); keyToChange.put( key, deltas ); }
public void subentryModified( LdapDN normName, ModificationItemImpl[] mods, Attributes entry ) throws NamingException { if ( !hasPrescriptiveACI( entry ) ) { return; } boolean isAciModified = false; for ( int ii = 0; ii < mods.length; ii++ ) { isAciModified |= AttributeUtils.containsValueCaseIgnore( mods[ii].getAttribute(), ACI_ATTR ); } if ( isAciModified ) { subentryDeleted( normName, entry ); subentryAdded( normName.getUpName(), normName, entry ); } }
if ( mi.getModificationOp() == DirContext.REMOVE_ATTRIBUTE ) attr = mi.getAttribute();
/** * This method forwards the request to * {@link Partition#modify(org.apache.directory.shared.ldap.name.LdapDN,javax.naming.directory.ModificationItem[])} after * translating parameters to {@link ModificationItem}<tt>[]</tt> by default. * Please override this method if there is more effactive way for your * implementation. */ public void modify( LdapDN name, int modOp, Attributes mods ) throws NamingException { List items = new ArrayList( mods.size() ); NamingEnumeration e = mods.getAll(); while ( e.hasMore() ) { items.add( new ModificationItemImpl( modOp, ( Attribute ) e.next() ) ); } ModificationItemImpl[] itemsArray = new ModificationItemImpl[items.size()]; itemsArray = ( ModificationItemImpl[] ) items.toArray( itemsArray ); modify( name, itemsArray ); }
if ( "subtreeSpecification".equalsIgnoreCase( mods[ii].getAttribute().getID() ) ) ssNew = ssParser.parse( ( String ) subtreeMod.getAttribute().get() );
for ( int ii = 0; ii < mods.length; ii++ ) if ( mods[ii].getAttribute().getID().equalsIgnoreCase( "objectClass" ) ) switch ( mods[ii].getModificationOp() ) for ( int jj = 0; jj < mods[ii].getAttribute().size(); jj++ ) ocFinalState.add( mods[ii].getAttribute().get( jj ) ); for ( int jj = 0; jj < mods[ii].getAttribute().size(); jj++ ) ocFinalState.remove( mods[ii].getAttribute().get( jj ) ); ocFinalState = mods[ii].getAttribute(); break;
/** * @see javax.naming.directory.DirContext#modifyAttributes(java.lang.String, * javax.naming.directory.ModificationItem[]) */ public void modifyAttributes( String name, ModificationItem[] mods ) throws NamingException { ModificationItemImpl[] newMods = new ModificationItemImpl[ mods.length ]; for ( int i = 0; i < mods.length; i++ ) { newMods[i] = new ModificationItemImpl( mods[i] ); } modifyAttributes( new LdapDN( name ), newMods ); }
if ( memberAttrId.equalsIgnoreCase( mods[ii].getAttribute().getID() ) ) modify( memberSet, mods[ii].getModificationOp(), mods[ii].getAttribute() );
protected void putSpi( String key, String value ) { Attribute attr = new LockableAttributeImpl( key ); attr.add( value ); ModificationItemImpl mi = new ModificationItemImpl( DirContext.REPLACE_ATTRIBUTE, attr ); addDelta( mi ); }
if ( mods[ii].getAttribute().getID().equalsIgnoreCase( OBJCLASS_ATTR ) ) boolean modsOcHasReferral = hasValue( mods[ii].getAttribute(), REFERRAL_OC ); switch ( mods[ii].getModificationOp() )
modList.add( new ModificationItemImpl( DirContext.REMOVE_ATTRIBUTE, attr ) );
/** * Checks to see the entry being modified exists, otherwise throws the appropriate LdapException. */ public void modify( NextInterceptor nextInterceptor, LdapDN name, ModificationItemImpl[] items ) throws NamingException { // check if entry to modify exists String msg = "Attempt to modify non-existant entry: "; assertHasEntry( nextInterceptor, msg, name ); Attributes entry = nexus.lookup( name ); for ( int ii = 0; ii < items.length; ii++ ) { if ( items[ii].getModificationOp() == DirContext.ADD_ATTRIBUTE ) { Attribute modAttr = items[ii].getAttribute(); Attribute entryAttr = entry.get( modAttr.getID() ); if ( entryAttr != null ) { for ( int jj = 0; jj < modAttr.size(); jj++ ) { if ( entryAttr.contains( modAttr.get( jj ) ) ) { throw new LdapAttributeInUseException( "Trying to add existing value '" + modAttr.get( jj ) + "' to attribute " + modAttr.getID() ); } } } } } nextInterceptor.modify( name, items ); }
public void checkModify( LdapDN normName, int modOp, Attributes mods ) throws NamingException { ModificationItemImpl[] modsAsArray = new ModificationItemImpl[ mods.size() ]; NamingEnumeration allAttrs = mods.getAll(); int i = 0; while ( allAttrs.hasMoreElements() ) { Attribute attr = ( Attribute ) allAttrs.nextElement(); modsAsArray[i] = new ModificationItemImpl( modOp, attr ); i++; } checkModify( normName, modsAsArray ); }
public void modify( LdapDN dn, ModificationItemImpl[] mods ) throws NamingException { BigInteger id = getEntryId( dn.toString() ); Attributes entry = master.get( id ); for ( int ii = 0; ii < mods.length; ii++ ) { Attribute attrMods = mods[ii].getAttribute(); switch ( mods[ii].getModificationOp() ) { case ( DirContext.ADD_ATTRIBUTE ): add( id, entry, attrMods ); break; case ( DirContext.REMOVE_ATTRIBUTE ): remove( id, entry, attrMods ); break; case ( DirContext.REPLACE_ATTRIBUTE ): replace( id, entry, attrMods ); break; default: throw new NamingException( "Unidentified modification operation" ); } } master.put( entry, id ); if ( cfg.isSynchOnWrite() ) { sync(); } }
/** * @see javax.naming.directory.DirContext#modifyAttributes( * javax.naming.Name, javax.naming.directory.ModificationItem[]) */ public void modifyAttributes( Name name, ModificationItem[] mods ) throws NamingException { ModificationItemImpl[] newMods = new ModificationItemImpl[ mods.length ]; for ( int i = 0; i < mods.length; i++ ) { newMods[i] = new ModificationItemImpl( mods[i] ); } getNexusProxy().modify( buildTarget( name ), newMods ); }
if ( mods[ii].getAttribute().getID().equalsIgnoreCase( "objectclass" ) ) if ( mods[ii].getAttribute().size() == 0 ) if ( mods[ii].getModificationOp() == DirContext.ADD_ATTRIBUTE ) keybuf.append( mods[ii].getModificationOp() ); keybuf.append( mods[ii].getAttribute().getID() ); for ( int jj = 0; jj < mods[ii].getAttribute().size(); jj++ ) keybuf.append( mods[ii].getAttribute().get( jj ) ); if ( !modset.add( keybuf.toString() ) && mods[ii].getModificationOp() == DirContext.ADD_ATTRIBUTE ) objectClass = getResultantObjectClasses( objectClassMod.getModificationOp(), objectClassMod.getAttribute(), entry.get( "objectClass" ) ); mods[0].getAttribute().size() == 0 && mods[0].getModificationOp() == DirContext.REPLACE_ATTRIBUTE && ! atRegistry.hasAttributeType( mods[0].getAttribute().getID() ) ) int modOp = mods[ii].getModificationOp(); Attribute change = mods[ii].getAttribute(); Attribute ocMods = objectClassMod.getAttribute(); switch ( objectClassMod.getModificationOp() )
modList.add( new ModificationItemImpl( op, result ) );
for ( int ii = 0; ii < mods.length; ii++ ) switch ( mods[ii].getModificationOp() ) Attribute attr = mods[ii].getAttribute(); for ( int jj = 0; jj < attr.size(); jj++ )