/** * {@inheritDoc} */ @Override public void rename( RenameOperationContext renameContext ) throws LdapException { LOG.debug( ">>> Entering into the Administrative Interceptor, renameRequest" ); Entry entry = renameContext.getEntry(); // Check if we are renaming an Administrative Point Attribute adminPoint = entry.get( directoryService.getAtProvider().getAdministrativeRole() ); if ( adminPoint == null ) { // Nope, go on. next( renameContext ); LOG.debug( "Exit from Administrative Interceptor" ); return; } // Else throw an UnwillingToPerform exception ATM String message = "Cannot rename an Administrative Point in the current version"; LOG.error( message ); throw new LdapUnwillingToPerformException( message ); } }
public void entryRenamed( RenameOperationContext renameContext ) { try { if ( listener instanceof NamespaceChangeListener ) { Binding newBinding = new Binding( renameContext.getDn().getName(), ServerEntryUtils.toBasicAttributes( renameContext.getEntry() ), false ); Binding oldBinding = new Binding( renameContext.getDn().getName(), ServerEntryUtils.toBasicAttributes( ( ( ClonedServerEntry ) renameContext.getEntry() ) .getOriginalEntry() ), false ); NamingEvent evt = new NamingEvent( source, NamingEvent.OBJECT_RENAMED, newBinding, oldBinding, null ); ( ( NamespaceChangeListener ) listener ).objectRenamed( evt ); } } catch ( Exception e ) { deliverNamingExceptionEvent( e ); } } }
/** * Rename a Schema Object. * * @param renameContext The contect contaoning the rename informations * @param doCascadeModify unused * @throws LdapException If the rename failed */ public void rename( RenameOperationContext renameContext, boolean doCascadeModify ) throws LdapException { Entry originalEntry = ( ( ClonedServerEntry ) renameContext.getEntry() ).getOriginalEntry(); Attribute oc = originalEntry.get( objectClassAT ); for ( Value value : oc ) { String oid = schemaManager.getObjectClassRegistry().getOidByName( value.getValue() ); if ( objectClass2synchronizerMap.containsKey( oid ) ) { RegistrySynchronizer synchronizer = objectClass2synchronizerMap.get( oid ); synchronizer.rename( originalEntry, renameContext.getNewRdn(), doCascadeModify ); return; } } if ( oc.contains( MetaSchemaConstants.META_SCHEMA_OC ) ) { schemaSynchronizer.rename( originalEntry, renameContext.getNewRdn(), doCascadeModify ); return; } throw new LdapUnwillingToPerformException( ResultCodeEnum.UNWILLING_TO_PERFORM ); }
/** * {@inheritDoc} */ @Override public void rename( RenameOperationContext renameContext ) throws LdapException { Entry serverEntry = null; if ( renameContext.getEntry() != null ) { serverEntry = ( ( ClonedServerEntry ) renameContext.getEntry() ).getOriginalEntry(); } next( renameContext ); // After this point, the entry has been modified. The cloned entry contains // the modified entry, the originalEntry has changed if ( !changeLog.isEnabled() ) { return; } LdifEntry forward = new LdifEntry(); forward.setChangeType( ChangeType.ModRdn ); forward.setDn( renameContext.getDn() ); forward.setNewRdn( renameContext.getNewRdn().getName() ); forward.setDeleteOldRdn( renameContext.getDeleteOldRdn() ); List<LdifEntry> reverses = LdifRevertor.reverseRename( serverEntry, renameContext.getNewRdn(), renameContext.getDeleteOldRdn() ); renameContext.setChangeLogEvent( changeLog.log( getPrincipal( renameContext ), forward, reverses ) ); }
Entry renamedEntry = ( ( ClonedServerEntry ) renameContext.getEntry() ).getClonedEntry();
/** * {@inheritDoc} */ @Override public void rename( RenameOperationContext renameContext ) throws LdapException { Entry entry = ( ( ClonedServerEntry ) renameContext.getEntry() ).getClonedEntry(); entry.put( SchemaConstants.MODIFIERS_NAME_AT, getPrincipal( renameContext ).getName() ); entry.put( SchemaConstants.MODIFY_TIMESTAMP_AT, DateUtils.getGeneralizedTime() ); Entry modifiedEntry = renameContext.getOriginalEntry().clone(); modifiedEntry.put( SchemaConstants.MODIFIERS_NAME_AT, getPrincipal( renameContext ).getName() ); modifiedEntry.put( SchemaConstants.MODIFY_TIMESTAMP_AT, DateUtils.getGeneralizedTime() ); Attribute csnAt = new DefaultAttribute( directoryService.getAtProvider().getEntryCSN(), directoryService .getCSN().toString() ); modifiedEntry.put( csnAt ); renameContext.setModifiedEntry( modifiedEntry ); next( renameContext ); }
Entry entry = ( ( ClonedServerEntry ) renameContext.getEntry() ).getClonedEntry();