public void replace( LdapDN oriChildName, LdapDN newParentName, ServerEntry entry, boolean cascade )
throws Exception
{
checkNewParent( newParentName );
Schema oldSchema = getSchema( oriChildName );
ObjectClass oldAt = factory.getObjectClass( entry, targetRegistries, oldSchema.getSchemaName() );
Set<ServerEntry> dependees = dao.listObjectClassDependents( oldAt );
if ( dependees != null && dependees.size() > 0 )
{
throw new LdapOperationNotSupportedException( "The objectClass with OID " + oldAt.getOid()
+ " cannot be deleted until all entities"
+ " using this objectClass have also been deleted. The following dependees exist: "
+ getOids( dependees ),
ResultCodeEnum.UNWILLING_TO_PERFORM );
}
Schema newSchema = getSchema( newParentName );
ObjectClass oc = factory.getObjectClass( entry, targetRegistries, newSchema.getSchemaName() );
if ( ! oldSchema.isDisabled() )
{
objectClassRegistry.unregister( oldAt.getOid() );
}