public void moveAndRename( MoveAndRenameOperationContext moveAndRenameContext, Entry entry, boolean cascade )
throws LdapException
{
Attribute oc = entry.get( objectClassAT );
for ( Value value : oc )
{
String oid = schemaManager.getObjectClassRegistry().getOidByName( value.getValue() );
if ( objectClass2synchronizerMap.containsKey( oid ) )
{
RegistrySynchronizer synchronizer = objectClass2synchronizerMap.get( oid );
synchronizer.moveAndRename( moveAndRenameContext.getDn(), moveAndRenameContext.getNewSuperiorDn(),
moveAndRenameContext.getNewRdn(),
moveAndRenameContext.getDeleteOldRdn(), entry, cascade );
return;
}
}
if ( oc.contains( MetaSchemaConstants.META_SCHEMA_OC ) )
{
schemaSynchronizer.moveAndRename( moveAndRenameContext.getDn(), moveAndRenameContext.getNewSuperiorDn(),
moveAndRenameContext.getNewRdn(),
moveAndRenameContext.getDeleteOldRdn(), entry, cascade );
return;
}
throw new LdapUnwillingToPerformException( ResultCodeEnum.UNWILLING_TO_PERFORM );
}
}