private void modifyAddOperation()

in interceptors/schema/src/main/java/org/apache/directory/server/core/schema/SchemaSubentryManager.java [436:562]


    private void modifyAddOperation( Interceptor nextInterceptor, int position, ModifyOperationContext modifyContext,
        String opAttrOid,
        Attribute mods, boolean doCascadeModify ) throws LdapException
    {
        if ( doCascadeModify )
        {
            LOG.error( CASCADING_ERROR );
        }

        int index = opAttr2handlerIndex.get( opAttrOid );

        switch ( index )
        {
            case COMPARATOR_INDEX :
                LdapComparatorDescription[] comparatorDescriptions = parsers.parseComparators( mods );

                for ( LdapComparatorDescription comparatorDescription : comparatorDescriptions )
                {
                    subentryModifier.add( nextInterceptor, position, modifyContext, comparatorDescription );
                }

                break;

            case NORMALIZER_INDEX :
                NormalizerDescription[] normalizerDescriptions = parsers.parseNormalizers( mods );

                for ( NormalizerDescription normalizerDescription : normalizerDescriptions )
                {
                    subentryModifier.add( nextInterceptor, position, modifyContext, normalizerDescription );
                }

                break;

            case SYNTAX_CHECKER_INDEX :
                SyntaxCheckerDescription[] syntaxCheckerDescriptions = parsers.parseSyntaxCheckers( mods );

                for ( SyntaxCheckerDescription syntaxCheckerDescription : syntaxCheckerDescriptions )
                {
                    subentryModifier.add( nextInterceptor, position, modifyContext, syntaxCheckerDescription );
                }

                break;

            case SYNTAX_INDEX :
                LdapSyntax[] syntaxes = parsers.parseLdapSyntaxes( mods );

                for ( LdapSyntax syntax : syntaxes )
                {
                    subentryModifier.addSchemaObject( nextInterceptor, position, modifyContext, syntax );
                }

                break;

            case MATCHING_RULE_INDEX :
                MatchingRule[] mrs = parsers.parseMatchingRules( mods );

                for ( MatchingRule mr : mrs )
                {
                    subentryModifier.addSchemaObject( nextInterceptor, position, modifyContext, mr );
                }

                break;

            case ATTRIBUTE_TYPE_INDEX :
                AttributeType[] ats = parsers.parseAttributeTypes( mods );

                for ( AttributeType at : ats )
                {
                    subentryModifier.addSchemaObject( nextInterceptor, position, modifyContext, at );
                }

                break;

            case OBJECT_CLASS_INDEX :
                ObjectClass[] ocs = parsers.parseObjectClasses( mods );

                for ( ObjectClass oc : ocs )
                {
                    subentryModifier.addSchemaObject( nextInterceptor, position, modifyContext, oc );
                }

                break;

            case MATCHING_RULE_USE_INDEX :
                MatchingRuleUse[] mrus = parsers.parseMatchingRuleUses( mods );

                for ( MatchingRuleUse mru : mrus )
                {
                    subentryModifier.addSchemaObject( nextInterceptor, position, modifyContext, mru );
                }

                break;

            case DIT_STRUCTURE_RULE_INDEX :
                DitStructureRule[] dsrs = parsers.parseDitStructureRules( mods );

                for ( DitStructureRule dsr : dsrs )
                {
                    subentryModifier.addSchemaObject( nextInterceptor, position, modifyContext, dsr );
                }

                break;

            case DIT_CONTENT_RULE_INDEX :
                DitContentRule[] dcrs = parsers.parseDitContentRules( mods );

                for ( DitContentRule dcr : dcrs )
                {
                    subentryModifier.addSchemaObject( nextInterceptor, position, modifyContext, dcr );
                }

                break;

            case NAME_FORM_INDEX :
                NameForm[] nfs = parsers.parseNameForms( mods );

                for ( NameForm nf : nfs )
                {
                    subentryModifier.addSchemaObject( nextInterceptor, position, modifyContext, nf );
                }

                break;

            default:
                throw new IllegalStateException( I18n.err( I18n.ERR_28019_UNKOWN_INDEX, index ) );
        }
    }