DN dn = candidate.getDn();
dn.normalize( schemaManager.getNormalizerMapping() );
if ( evaluator.evaluate( ss, apName, dn, candidate ) )
{
nexus.modify( new ModifyOperationContext( opContext.getSession(), dn,
getOperationalModsForReplace( oriChildName, newName, subentry, candidate ) ) );
}
}
}
else
{
if ( hasAdministrativeDescendant( opContext, oriChildName ) )
{
String msg = I18n.err( I18n.ERR_308 );
LOG.warn( msg );
throw new LdapSchemaViolationException( msg, ResultCodeEnum.NOT_ALLOWED_ON_RDN );
}
next.moveAndRename( opContext );
// calculate the new DN now for use below to modify subentry operational
// attributes contained within this regular entry with name changes
DN newName = ( DN ) parent.clone();
newName.add( opContext.getNewRdn() );
newName.normalize( schemaManager.getNormalizerMapping() );
List<Modification> mods = getModsOnEntryRdnChange( oriChildName, newName, entry );
if ( mods.size() > 0 )
{
nexus.modify( new ModifyOperationContext( opContext.getSession(), newName, mods ) );
}
}
}