in interceptors/schema/src/main/java/org/apache/directory/server/core/schema/SchemaSubentryManager.java [302:423]
private void modifyRemoveOperation( Interceptor nextInterceptor, int position,
ModifyOperationContext modifyContext, String opAttrOid,
Attribute mods ) throws LdapException
{
int index = opAttr2handlerIndex.get( opAttrOid );
switch ( index )
{
case COMPARATOR_INDEX :
LdapComparatorDescription[] comparatorDescriptions = parsers.parseComparators( mods );
for ( LdapComparatorDescription comparatorDescription : comparatorDescriptions )
{
subentryModifier.delete( nextInterceptor, position, modifyContext, comparatorDescription );
}
break;
case NORMALIZER_INDEX :
NormalizerDescription[] normalizerDescriptions = parsers.parseNormalizers( mods );
for ( NormalizerDescription normalizerDescription : normalizerDescriptions )
{
subentryModifier.delete( nextInterceptor, position, modifyContext, normalizerDescription );
}
break;
case SYNTAX_CHECKER_INDEX :
SyntaxCheckerDescription[] syntaxCheckerDescriptions = parsers.parseSyntaxCheckers( mods );
for ( SyntaxCheckerDescription syntaxCheckerDescription : syntaxCheckerDescriptions )
{
subentryModifier.delete( nextInterceptor, position, modifyContext, syntaxCheckerDescription );
}
break;
case SYNTAX_INDEX :
LdapSyntax[] syntaxes = parsers.parseLdapSyntaxes( mods );
for ( LdapSyntax syntax : syntaxes )
{
subentryModifier.deleteSchemaObject( nextInterceptor, position, modifyContext, syntax );
}
break;
case MATCHING_RULE_INDEX :
MatchingRule[] mrs = parsers.parseMatchingRules( mods );
for ( MatchingRule mr : mrs )
{
subentryModifier.deleteSchemaObject( nextInterceptor, position, modifyContext, mr );
}
break;
case ATTRIBUTE_TYPE_INDEX :
AttributeType[] ats = parsers.parseAttributeTypes( mods );
for ( AttributeType at : ats )
{
subentryModifier.deleteSchemaObject( nextInterceptor, position, modifyContext, at );
}
break;
case OBJECT_CLASS_INDEX :
ObjectClass[] ocs = parsers.parseObjectClasses( mods );
for ( ObjectClass oc : ocs )
{
subentryModifier.deleteSchemaObject( nextInterceptor, position, modifyContext, oc );
}
break;
case MATCHING_RULE_USE_INDEX :
MatchingRuleUse[] mrus = parsers.parseMatchingRuleUses( mods );
for ( MatchingRuleUse mru : mrus )
{
subentryModifier.deleteSchemaObject( nextInterceptor, position, modifyContext, mru );
}
break;
case DIT_STRUCTURE_RULE_INDEX :
DitStructureRule[] dsrs = parsers.parseDitStructureRules( mods );
for ( DitStructureRule dsr : dsrs )
{
subentryModifier.deleteSchemaObject( nextInterceptor, position, modifyContext, dsr );
}
break;
case DIT_CONTENT_RULE_INDEX :
DitContentRule[] dcrs = parsers.parseDitContentRules( mods );
for ( DitContentRule dcr : dcrs )
{
subentryModifier.deleteSchemaObject( nextInterceptor, position, modifyContext, dcr );
}
break;
case NAME_FORM_INDEX :
NameForm[] nfs = parsers.parseNameForms( mods );
for ( NameForm nf : nfs )
{
subentryModifier.deleteSchemaObject( nextInterceptor, position, modifyContext, nf );
}
break;
default:
throw new IllegalStateException( I18n.err( I18n.ERR_285, index ) );
}
}