<commit_before>/*
 *  Licensed to the Apache Software Foundation (ASF) under one
 *  or more contributor license agreements.  See the NOTICE file
 *  distributed with this work for additional information
 *  regarding copyright ownership.  The ASF licenses this file
 *  to you under the Apache License, Version 2.0 (the
 *  "License"); you may not use this file except in compliance
 *  with the License.  You may obtain a copy of the License at
 *  
 *    http://www.apache.org/licenses/LICENSE-2.0
 *  
 *  Unless required by applicable law or agreed to in writing,
 *  software distributed under the License is distributed on an
 *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 *  KIND, either express or implied.  See the License for the
 *  specific language governing permissions and limitations
 *  under the License. 
 *  
 */
package org.apache.directory.server.core.schema.bootstrap;


import javax.naming.NamingException;

import org.apache.directory.server.core.schema.bootstrap.ProducerTypeEnum;
import org.apache.directory.shared.ldap.schema.syntax.AcceptAllSyntaxChecker;
import org.apache.directory.shared.ldap.schema.syntax.BinarySyntaxChecker;
import org.apache.directory.shared.ldap.schema.syntax.SyntaxChecker;


/**
 * A producer of SyntaxCheckers for the core schema.
 *
 * @todo now we use do nothing checkers for place holder and will add as we go 
 * @author <a href="mailto:<EMAIL>">Apache Directory Project</a>
 * @version $Rev$
 */
public class SystemSyntaxCheckerProducer extends AbstractBootstrapProducer
{
    /**
     * Creates a producer which produces all 58 of the core schema syntax's
     * SyntaxCheckers.
     */
    public SystemSyntaxCheckerProducer()
    {
        super( ProducerTypeEnum.SYNTAX_CHECKER_PRODUCER );
    }


    public void produce( BootstrapRegistries registries, ProducerCallback cb ) throws NamingException
    {
        SyntaxChecker syntaxChecker;

        /*
         * We are going to need a syntax checker for each and every one of
         * these syntaxes.  However right now we're probably not going to be
         * turning on syntax checking or are not as interested in it.  So we
         * can put in place simple do nothing syntax checkers - which is really
         * the binary syntax checker.
         */

        /*
         * From RFC 2252 Section 4.3.2. on Syntax Object Identifiers
         */

        /*
         * Value being represented        H-R OBJECT IDENTIFIER
         * ==================================================================
         * 0 ACI Item                         N  1.3.6.1.4.1.1466.172.16.17.32
         * 1 Access Point                     Y  1.3.6.1.4.1.1466.172.16.58.3
         * 2 Attribute Type Description       Y  1.3.6.1.4.1.1466.172.16.31.10
         * 3 Audio                            N  1.3.6.1.4.1.1466.172.16.31.10
         * 4 Binary                           N  1.3.6.1.4.1.1466.172.16.58.3
         * 5 Bit String                       Y  1.3.6.1.4.1.1466.192.168.3.11
         * 6 Boolean                          Y  1.3.6.1.4.1.1466.172.16.17.32
         * 7 Certificate                      N  1.3.6.1.4.1.1466.172.16.58.3
         * 8 Certificate List                 N  1.3.6.1.4.1.1466.192.168.3.11
         * 9 Certificate Pair                 N  1.3.6.1.4.1.1466.172.16.58.3
         */
        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.17.32" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.115.121.1.2" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.115.121.1.3" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.10" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = BinarySyntaxChecker.INSTANCE;
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.115.121.1.6" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.115.121.1.7" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.115.121.1.8" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.3.11" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.115.121.1.10" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        /*
         * 10 Country String                  Y  1.3.6.1.4.1.1466.192.168.3.11
         * 11 DN                              Y  1.3.6.1.4.1.1466.172.16.17.322
         * 12 Data Quality Syntax             Y  1.3.6.1.4.1.1466.172.16.31.10
         * 13 Delivery Method                 Y  1.3.6.1.4.1.1466.172.16.58.3
         * 14 Directory String                Y  1.3.6.1.4.1.1466.172.16.31.10
         * 15 DIT Content Rule Description    Y  1.3.6.1.4.1.1466.192.168.127.12
         * 16 DIT Structure Rule Description  Y  1.3.6.1.4.1.1466.192.168.3.11
         * 17 DL Submit Permission            Y  1.3.6.1.4.1.1466.172.16.31.10
         * 18 DSA Quality Syntax              Y  1.3.6.1.4.1.1466.192.168.127.12
         * 19 DSE Type                        Y  1.3.6.1.4.1.1466.172.16.17.32
         */
        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.3.11" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.10" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.10" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.58.3" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.10" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.127.12" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.3.11" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.10" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.127.12" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.17.32" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        /* 20 Enhanced Guide                  Y  1.3.6.1.4.1.1466.192.168.127.12
         * 21 Facsimile Telephone Number      Y  1.3.6.1.4.1.1466.172.16.17.32
         * 22 Fax                             N  1.3.6.1.4.1.1466.192.168.3.11
         * 23 Generalized Time                Y  1.3.6.1.4.1.1466.192.168.3.11
         * 24 Guide                           Y  1.3.6.1.4.1.1466.172.16.58.3
         * 25 IA5 String                      Y  1.3.6.1.4.1.1466.172.16.17.32
         * 26 INTEGER                         Y  1.3.6.1.4.1.1466.172.16.58.3
         * 27 JPEG                            N  1.3.6.1.4.1.1466.192.168.127.12
         * 28 Master And Shadow Access Points Y  1.3.6.1.4.1.1466.172.16.17.32
         * 29 Matching Rule Description       Y  1.3.6.1.4.1.1466.172.16.31.10
         */
        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.127.12" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.17.32" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.3.11" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.3.11" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.58.3" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.17.32" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.58.3" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.127.12" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.17.32" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.10" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        /* 30 Matching Rule Use Description   Y  1.3.6.1.4.1.1466.172.16.31.101
         * 31 Mail Preference                 Y  1.3.6.1.4.1.1466.172.16.31.102
         * 32 MHS OR Address                  Y  1.3.6.1.4.1.1466.172.16.31.103
         * 33 Name And Optional UID           Y  1.3.6.1.4.1.1466.172.16.31.104
         * 34 Name Form Description           Y  1.3.6.1.4.1.1466.172.16.31.10
         * 35 Numeric String                  Y  1.3.6.1.4.1.1466.172.16.31.106
         * 36 Object Class Description        Y  1.3.6.1.4.1.1466.172.16.31.10
         * 37 OID                             Y  1.3.6.1.4.1.1466.172.16.31.108
         * 38 Other Mailbox                   Y  1.3.6.1.4.1.1466.172.16.17.32
         * 39 Octet String                    Y  1.3.6.1.4.1.1466.172.16.31.100
         */
        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.17.32" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.10" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.103" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.127.12" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.10" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.106" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.107" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.108" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.109" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.100" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        /*
         * 40 Postal Address                  Y  1.3.6.1.4.1.1466.172.16.58.3
         * 41 Protocol Information            Y  1.3.6.1.4.1.1466.172.16.58.3
         * 42 Presentation Address            Y  1.3.6.1.4.1.1466.192.168.3.11
         * 43 Printable String                Y  1.3.6.1.4.1.1466.172.16.17.32
         * 44 Subtree Specification           Y  1.3.6.1.4.1.1466.192.168.3.11
         * 45 Supplier Information            Y  1.3.6.1.4.1.1466.172.16.17.32
         * 46 Supplier Or Consumer            Y  1.3.6.1.4.1.1466.172.16.31.10
         * 47 Supplier And Consumer           Y  1.3.6.1.4.1.1466.172.16.31.10
         * 48 Supported Algorithm             N  1.3.6.1.4.1.1466.172.16.58.3
         * 49 Telephone Number                Y  1.3.6.1.4.1.1466.192.168.3.11
         */
        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.58.3" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.58.3" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.3.11" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.17.32" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.3.11" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.17.32" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.10" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.10" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.58.3" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.3.11" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        /*
         * 50 Teletex Terminal Identifier     Y  1.3.6.1.4.1.1466.172.16.58.31
         * 51 Telex Number                    Y  1.3.6.1.4.1.1466.172.16.58.32
         * 52 UTC Time                        Y  1.3.6.1.4.1.1466.192.168.127.12
         * 53 LDAP Syntax Description         Y  1.3.6.1.4.1.1466.172.16.31.10
         * 54 Modify Rights                   Y  1.3.6.1.4.1.1466.192.168.3.11
         * 55 LDAP BootstrapSchema Definition Y  1.3.6.1.4.1.1466.192.168.127.12
         * 56 LDAP BootstrapSchema Description Y  1.3.6.1.4.1.1466.192.168.3.11
         * 57 Substring Assertion             Y  1.3.6.1.4.1.1466.172.16.58.3
         */
        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.17.32" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.58.3" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.127.12" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.58.34" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.58.35" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.58.36" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.58.37" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.58.38" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );
        
        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.58.39" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );
    }
}
<commit_msg>The BinarySyntaxChecker is not anymore a singleton, so removed the INSTANCE call.<commit_after>/*
 *  Licensed to the Apache Software Foundation (ASF) under one
 *  or more contributor license agreements.  See the NOTICE file
 *  distributed with this work for additional information
 *  regarding copyright ownership.  The ASF licenses this file
 *  to you under the Apache License, Version 2.0 (the
 *  "License"); you may not use this file except in compliance
 *  with the License.  You may obtain a copy of the License at
 *  
 *    http://www.apache.org/licenses/LICENSE-2.0
 *  
 *  Unless required by applicable law or agreed to in writing,
 *  software distributed under the License is distributed on an
 *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 *  KIND, either express or implied.  See the License for the
 *  specific language governing permissions and limitations
 *  under the License. 
 *  
 */
package org.apache.directory.server.core.schema.bootstrap;


import javax.naming.NamingException;

import org.apache.directory.server.core.schema.bootstrap.ProducerTypeEnum;
import org.apache.directory.shared.ldap.schema.syntax.AcceptAllSyntaxChecker;
import org.apache.directory.shared.ldap.schema.syntax.BinarySyntaxChecker;
import org.apache.directory.shared.ldap.schema.syntax.SyntaxChecker;


/**
 * A producer of SyntaxCheckers for the core schema.
 *
 * @todo now we use do nothing checkers for place holder and will add as we go 
 * @author <a href="mailto:<EMAIL>">Apache Directory Project</a>
 * @version $Rev$
 */
public class SystemSyntaxCheckerProducer extends AbstractBootstrapProducer
{
    /**
     * Creates a producer which produces all 58 of the core schema syntax's
     * SyntaxCheckers.
     */
    public SystemSyntaxCheckerProducer()
    {
        super( ProducerTypeEnum.SYNTAX_CHECKER_PRODUCER );
    }


    public void produce( BootstrapRegistries registries, ProducerCallback cb ) throws NamingException
    {
        SyntaxChecker syntaxChecker;

        /*
         * We are going to need a syntax checker for each and every one of
         * these syntaxes.  However right now we're probably not going to be
         * turning on syntax checking or are not as interested in it.  So we
         * can put in place simple do nothing syntax checkers - which is really
         * the binary syntax checker.
         */

        /*
         * From RFC 2252 Section 4.3.2. on Syntax Object Identifiers
         */

        /*
         * Value being represented        H-R OBJECT IDENTIFIER
         * ==================================================================
         * 0 ACI Item                         N  1.3.6.1.4.1.1466.172.16.17.32
         * 1 Access Point                     Y  1.3.6.1.4.1.1466.172.16.58.3
         * 2 Attribute Type Description       Y  1.3.6.1.4.1.1466.172.16.31.10
         * 3 Audio                            N  1.3.6.1.4.1.1466.172.16.31.10
         * 4 Binary                           N  1.3.6.1.4.1.1466.172.16.58.3
         * 5 Bit String                       Y  1.3.6.1.4.1.1466.192.168.3.11
         * 6 Boolean                          Y  1.3.6.1.4.1.1466.172.16.17.32
         * 7 Certificate                      N  1.3.6.1.4.1.1466.172.16.58.3
         * 8 Certificate List                 N  1.3.6.1.4.1.1466.192.168.3.11
         * 9 Certificate Pair                 N  1.3.6.1.4.1.1466.172.16.58.3
         */
        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.17.32" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.58.3" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.10" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.10" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new BinarySyntaxChecker();
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.115.121.1.6" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.17.32" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.58.3" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.3.11" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.58.3" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        /*
         * 10 Country String                  Y  1.3.6.1.4.1.1466.192.168.3.11
         * 11 DN                              Y  1.3.6.1.4.1.1466.172.16.31.10
         * 12 Data Quality Syntax             Y  1.3.6.1.4.1.1466.172.16.31.10
         * 13 Delivery Method                 Y  1.3.6.1.4.1.1466.172.16.58.3
         * 14 Directory String                Y  1.3.6.1.4.1.1466.172.16.31.10
         * 15 DIT Content Rule Description    Y  1.3.6.1.4.1.1466.192.168.127.12
         * 16 DIT Structure Rule Description  Y  1.3.6.1.4.1.1466.192.168.3.11
         * 17 DL Submit Permission            Y  1.3.6.1.4.1.1466.172.16.31.10
         * 18 DSA Quality Syntax              Y  1.3.6.1.4.1.1466.192.168.127.12
         * 19 DSE Type                        Y  1.3.6.1.4.1.1466.172.16.17.32
         */
        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.3.11" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.10" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.10" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.115.121.1.14" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.10" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.127.12" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.3.11" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.10" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.127.12" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.17.32" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        /* 20 Enhanced Guide                  Y  1.3.6.1.4.1.1466.192.168.127.12
         * 21 Facsimile Telephone Number      Y  1.3.6.1.4.1.1466.172.16.17.32
         * 22 Fax                             N  1.3.6.1.4.1.1466.11192.168.127.12
         * 23 Generalized Time                Y  1.3.6.1.4.1.1466.192.168.3.11
         * 24 Guide                           Y  1.3.6.1.4.1.1466.172.16.58.3
         * 25 IA5 String                      Y  1.3.6.1.4.1.1466.172.16.17.32
         * 26 INTEGER                         Y  1.3.6.1.4.1.1466.172.16.58.3
         * 27 JPEG                            N  1.3.6.1.4.1.1466.192.168.127.12
         * 28 Master And Shadow Access Points Y  1.3.6.1.4.1.1466.172.16.17.32
         * 29 Matching Rule Description       Y  1.3.6.1.4.1.1466.172.16.31.10
         */
        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.127.12" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.17.32" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.3.11" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.3.11" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.58.3" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.17.32" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.58.3" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.127.12" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.17.32" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.10" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        /* 30 Matching Rule Use Description   Y  1.3.6.1.4.1.1466.172.16.17.32
         * 31 Mail Preference                 Y  1.3.6.1.4.1.1466.172.16.31.10
         * 32 MHS OR Address                  Y  1.3.6.1.4.1.1466.115.121.1.33
         * 33 Name And Optional UID           Y  1.3.6.1.4.1.1466.172.16.31.104
         * 34 Name Form Description           Y  1.3.6.1.4.1.1466.172.16.31.105
         * 35 Numeric String                  Y  1.3.6.1.4.1.1466.172.16.31.106
         * 36 Object Class Description        Y  1.3.6.1.4.1.1466.172.16.31.107
         * 37 OID                             Y  1.3.6.1.4.1.1466.172.16.31.108
         * 38 Other Mailbox                   Y  1.3.6.1.4.1.1466.172.16.31.109
         * 39 Octet String                    Y  1.3.6.1.4.1.1466.172.16.31.100
         */
        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.17.32" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.10" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.127.12" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.104" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.105" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.106" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.10" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.10" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.109" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.127.12" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        /*
         * 40 Postal Address                  Y  1.3.6.1.4.1.1466.172.16.58.3
         * 41 Protocol Information            Y  1.3.6.1.4.1.1466.172.16.58.3
         * 42 Presentation Address            Y  1.3.6.1.4.1.1466.115.121.1.43
         * 43 Printable String                Y  1.3.6.1.4.1.1466.172.16.31.104
         * 44 Subtree Specification           Y  1.3.6.1.4.1.1466.172.16.31.105
         * 45 Supplier Information            Y  1.3.6.1.4.1.1466.172.16.17.32
         * 46 Supplier Or Consumer            Y  1.3.6.1.4.1.1466.172.16.31.107
         * 47 Supplier And Consumer           Y  1.3.6.1.4.1.1466.172.16.31.10
         * 48 Supported Algorithm             N  1.3.6.1.4.1.1466.172.16.58.3
         * 49 Telephone Number                Y  1.3.6.1.4.1.1466.192.168.3.11
         */
        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.58.3" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.58.3" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.3.11" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.17.32" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.3.11" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.17.32" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.10" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.10" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.58.3" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.3.11" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        /*
         * 50 Teletex Terminal Identifier     Y  1.3.6.1.4.1.1466.172.16.17.32
         * 51 Telex Number                    Y  1.3.6.1.4.1.1466.172.16.58.3
         * 52 UTC Time                        Y  1.3.6.1.4.1.1466.115.121.1.53
         * 53 LDAP Syntax Description         Y  1.3.6.1.4.1.1466.172.16.58.34
         * 54 Modify Rights                   Y  1.3.6.1.4.1.1466.115.121.1.55
         * 55 LDAP BootstrapSchema Definition Y  1.3.6.1.4.1.1466.172.16.58.36
         * 56 LDAP BootstrapSchema Description Y  1.3.6.1.4.1.1466.172.16.58.37
         * 57 Substring Assertion             Y  1.3.6.1.4.1.1466.172.16.58.38
         */
        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.17.32" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.58.3" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.127.12" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.172.16.31.10" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.192.168.3.11" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.115.121.1.56" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.115.121.1.57" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );

        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.115.121.1.58" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );
        
        syntaxChecker = new AcceptAllSyntaxChecker( "1.3.6.1.4.1.1466.115.121.1.59" );
        cb.schemaObjectProduced( this, syntaxChecker.getSyntaxOid(), syntaxChecker );
    }
}

{'fraction_non_alphanumeric': 0.1345896171280326, 'fraction_numerical': 0.13347777746101433, 'mean_word_length': 2.205519510189162, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 464, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 14, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3528961', 'n_tokens_mistral': 14038, 'n_tokens_neox': 12400, 'n_words': 2080}