001    
002    /*
003     *  Licensed to the Apache Software Foundation (ASF) under one
004     *  or more contributor license agreements.  See the NOTICE file
005     *  distributed with this work for additional information
006     *  regarding copyright ownership.  The ASF licenses this file
007     *  to you under the Apache License, Version 2.0 (the
008     *  "License"); you may not use this file except in compliance
009     *  with the License.  You may obtain a copy of the License at
010     *  
011     *    http://www.apache.org/licenses/LICENSE-2.0
012     *  
013     *  Unless required by applicable law or agreed to in writing,
014     *  software distributed under the License is distributed on an
015     *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
016     *  KIND, either express or implied.  See the License for the
017     *  specific language governing permissions and limitations
018     *  under the License. 
019     *  
020     */
021    package org.apache.directory.server.schema.bootstrap;
022    
023    
024    import java.util.ArrayList;
025    import javax.naming.NamingException;
026    import org.apache.directory.shared.ldap.schema.ObjectClassTypeEnum;
027    import org.apache.directory.server.schema.registries.Registries;
028    
029    
030    /**
031     * A producer of schema objectClass definations for the core schema.  This
032     * code has been automatically generated using schema files in the OpenLDAP
033     * format along with the directory plugin for maven.  This has been done
034     * to facilitate OpenLDAP schema interoperability.
035     *
036     * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
037     */
038    public class CoreObjectClassProducer extends AbstractBootstrapProducer
039    {
040    
041        public CoreObjectClassProducer()
042        {
043            super( ProducerTypeEnum.OBJECT_CLASS_PRODUCER );
044        }
045    
046    
047        // ------------------------------------------------------------------------
048        // BootstrapProducer Methods
049        // ------------------------------------------------------------------------
050    
051    
052        /**
053         * @see BootstrapProducer#produce(Registries, ProducerCallback)
054         */
055        public void produce( Registries registries, ProducerCallback cb )
056            throws NamingException
057        {
058            ArrayList<String> array = new ArrayList<String>();
059            BootstrapObjectClass objectClass;
060    
061            // --------------------------------------------------------------------
062            // ObjectClass 2.5.6.2 
063            // --------------------------------------------------------------------
064    
065            objectClass = newObjectClass( "2.5.6.2", registries );
066            objectClass.setObsolete( false );
067    
068            objectClass.setDescription( "RFC2256: a country" );
069            // set the objectclass type
070            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
071    
072            // set superior objectClasses
073            array.clear();
074            array.add( "top" );
075            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
076    
077            // set must list
078            array.clear();
079            array.add( "c" );
080            objectClass.setMustListIds( array.toArray( EMPTY ) );
081    
082            // set may list
083            array.clear();
084            array.add( "searchGuide" );
085            array.add( "description" );
086            objectClass.setMayListIds( array.toArray( EMPTY ) );
087    
088            // set names
089            array.clear();
090            array.add( "country" );
091            objectClass.setNames( array.toArray( EMPTY ) );
092            cb.schemaObjectProduced( this, "2.5.6.2", objectClass );
093            // --------------------------------------------------------------------
094            // ObjectClass 2.5.6.3 
095            // --------------------------------------------------------------------
096    
097            objectClass = newObjectClass( "2.5.6.3", registries );
098            objectClass.setObsolete( false );
099    
100            objectClass.setDescription( "RFC2256: a locality" );
101            // set the objectclass type
102            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
103    
104            // set superior objectClasses
105            array.clear();
106            array.add( "top" );
107            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
108    
109            // set must list
110            array.clear();
111            objectClass.setMustListIds( array.toArray( EMPTY ) );
112    
113            // set may list
114            array.clear();
115            array.add( "street" );
116            array.add( "seeAlso" );
117            array.add( "searchGuide" );
118            array.add( "st" );
119            array.add( "l" );
120            array.add( "description" );
121            objectClass.setMayListIds( array.toArray( EMPTY ) );
122    
123            // set names
124            array.clear();
125            array.add( "locality" );
126            objectClass.setNames( array.toArray( EMPTY ) );
127            cb.schemaObjectProduced( this, "2.5.6.3", objectClass );
128            // --------------------------------------------------------------------
129            // ObjectClass 2.5.6.4 
130            // --------------------------------------------------------------------
131    
132            objectClass = newObjectClass( "2.5.6.4", registries );
133            objectClass.setObsolete( false );
134    
135            objectClass.setDescription( "RFC2256: an organization" );
136            // set the objectclass type
137            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
138    
139            // set superior objectClasses
140            array.clear();
141            array.add( "top" );
142            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
143    
144            // set must list
145            array.clear();
146            array.add( "o" );
147            objectClass.setMustListIds( array.toArray( EMPTY ) );
148    
149            // set may list
150            array.clear();
151            array.add( "userPassword" );
152            array.add( "searchGuide" );
153            array.add( "seeAlso" );
154            array.add( "businessCategory" );
155            array.add( "x121Address" );
156            array.add( "registeredAddress" );
157            array.add( "destinationIndicator" );
158            array.add( "preferredDeliveryMethod" );
159            array.add( "telexNumber" );
160            array.add( "teletexTerminalIdentifier" );
161            array.add( "telephoneNumber" );
162            array.add( "internationaliSDNNumber" );
163            array.add( "facsimileTelephoneNumber" );
164            array.add( "street" );
165            array.add( "postOfficeBox" );
166            array.add( "postalCode" );
167            array.add( "postalAddress" );
168            array.add( "physicalDeliveryOfficeName" );
169            array.add( "st" );
170            array.add( "l" );
171            array.add( "description" );
172            objectClass.setMayListIds( array.toArray( EMPTY ) );
173    
174            // set names
175            array.clear();
176            array.add( "organization" );
177            objectClass.setNames( array.toArray( EMPTY ) );
178            cb.schemaObjectProduced( this, "2.5.6.4", objectClass );
179            // --------------------------------------------------------------------
180            // ObjectClass 2.5.6.5 
181            // --------------------------------------------------------------------
182    
183            objectClass = newObjectClass( "2.5.6.5", registries );
184            objectClass.setObsolete( false );
185    
186            objectClass.setDescription( "RFC2256: an organizational unit" );
187            // set the objectclass type
188            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
189    
190            // set superior objectClasses
191            array.clear();
192            array.add( "top" );
193            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
194    
195            // set must list
196            array.clear();
197            array.add( "ou" );
198            objectClass.setMustListIds( array.toArray( EMPTY ) );
199    
200            // set may list
201            array.clear();
202            array.add( "userPassword" );
203            array.add( "searchGuide" );
204            array.add( "seeAlso" );
205            array.add( "businessCategory" );
206            array.add( "x121Address" );
207            array.add( "registeredAddress" );
208            array.add( "destinationIndicator" );
209            array.add( "preferredDeliveryMethod" );
210            array.add( "telexNumber" );
211            array.add( "teletexTerminalIdentifier" );
212            array.add( "telephoneNumber" );
213            array.add( "internationaliSDNNumber" );
214            array.add( "facsimileTelephoneNumber" );
215            array.add( "street" );
216            array.add( "postOfficeBox" );
217            array.add( "postalCode" );
218            array.add( "postalAddress" );
219            array.add( "physicalDeliveryOfficeName" );
220            array.add( "st" );
221            array.add( "l" );
222            array.add( "description" );
223            objectClass.setMayListIds( array.toArray( EMPTY ) );
224    
225            // set names
226            array.clear();
227            array.add( "organizationalUnit" );
228            objectClass.setNames( array.toArray( EMPTY ) );
229            cb.schemaObjectProduced( this, "2.5.6.5", objectClass );
230            // --------------------------------------------------------------------
231            // ObjectClass 2.5.6.6 
232            // --------------------------------------------------------------------
233    
234            objectClass = newObjectClass( "2.5.6.6", registries );
235            objectClass.setObsolete( false );
236    
237            objectClass.setDescription( "RFC2256: a person" );
238            // set the objectclass type
239            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
240    
241            // set superior objectClasses
242            array.clear();
243            array.add( "top" );
244            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
245    
246            // set must list
247            array.clear();
248            array.add( "sn" );
249            array.add( "cn" );
250            objectClass.setMustListIds( array.toArray( EMPTY ) );
251    
252            // set may list
253            array.clear();
254            array.add( "userPassword" );
255            array.add( "telephoneNumber" );
256            array.add( "seeAlso" );
257            array.add( "description" );
258            objectClass.setMayListIds( array.toArray( EMPTY ) );
259    
260            // set names
261            array.clear();
262            array.add( "person" );
263            objectClass.setNames( array.toArray( EMPTY ) );
264            cb.schemaObjectProduced( this, "2.5.6.6", objectClass );
265            // --------------------------------------------------------------------
266            // ObjectClass 2.5.6.7 
267            // --------------------------------------------------------------------
268    
269            objectClass = newObjectClass( "2.5.6.7", registries );
270            objectClass.setObsolete( false );
271    
272            objectClass.setDescription( "RFC2256: an organizational person" );
273            // set the objectclass type
274            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
275    
276            // set superior objectClasses
277            array.clear();
278            array.add( "person" );
279            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
280    
281            // set must list
282            array.clear();
283            objectClass.setMustListIds( array.toArray( EMPTY ) );
284    
285            // set may list
286            array.clear();
287            array.add( "title" );
288            array.add( "x121Address" );
289            array.add( "registeredAddress" );
290            array.add( "destinationIndicator" );
291            array.add( "preferredDeliveryMethod" );
292            array.add( "telexNumber" );
293            array.add( "teletexTerminalIdentifier" );
294            array.add( "telephoneNumber" );
295            array.add( "internationaliSDNNumber" );
296            array.add( "facsimileTelephoneNumber" );
297            array.add( "street" );
298            array.add( "postOfficeBox" );
299            array.add( "postalCode" );
300            array.add( "postalAddress" );
301            array.add( "physicalDeliveryOfficeName" );
302            array.add( "ou" );
303            array.add( "st" );
304            array.add( "l" );
305            objectClass.setMayListIds( array.toArray( EMPTY ) );
306    
307            // set names
308            array.clear();
309            array.add( "organizationalPerson" );
310            objectClass.setNames( array.toArray( EMPTY ) );
311            cb.schemaObjectProduced( this, "2.5.6.7", objectClass );
312            // --------------------------------------------------------------------
313            // ObjectClass 2.5.6.8 
314            // --------------------------------------------------------------------
315    
316            objectClass = newObjectClass( "2.5.6.8", registries );
317            objectClass.setObsolete( false );
318    
319            objectClass.setDescription( "RFC2256: an organizational role" );
320            // set the objectclass type
321            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
322    
323            // set superior objectClasses
324            array.clear();
325            array.add( "top" );
326            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
327    
328            // set must list
329            array.clear();
330            array.add( "cn" );
331            objectClass.setMustListIds( array.toArray( EMPTY ) );
332    
333            // set may list
334            array.clear();
335            array.add( "x121Address" );
336            array.add( "registeredAddress" );
337            array.add( "destinationIndicator" );
338            array.add( "preferredDeliveryMethod" );
339            array.add( "telexNumber" );
340            array.add( "teletexTerminalIdentifier" );
341            array.add( "telephoneNumber" );
342            array.add( "internationaliSDNNumber" );
343            array.add( "facsimileTelephoneNumber" );
344            array.add( "seeAlso" );
345            array.add( "roleOccupant" );
346            array.add( "preferredDeliveryMethod" );
347            array.add( "street" );
348            array.add( "postOfficeBox" );
349            array.add( "postalCode" );
350            array.add( "postalAddress" );
351            array.add( "physicalDeliveryOfficeName" );
352            array.add( "ou" );
353            array.add( "st" );
354            array.add( "l" );
355            array.add( "description" );
356            objectClass.setMayListIds( array.toArray( EMPTY ) );
357    
358            // set names
359            array.clear();
360            array.add( "organizationalRole" );
361            objectClass.setNames( array.toArray( EMPTY ) );
362            cb.schemaObjectProduced( this, "2.5.6.8", objectClass );
363            // --------------------------------------------------------------------
364            // ObjectClass 2.5.6.9 
365            // --------------------------------------------------------------------
366    
367            objectClass = newObjectClass( "2.5.6.9", registries );
368            objectClass.setObsolete( false );
369    
370            objectClass.setDescription( "RFC2256: a group of names (DNs)" );
371            // set the objectclass type
372            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
373    
374            // set superior objectClasses
375            array.clear();
376            array.add( "top" );
377            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
378    
379            // set must list
380            array.clear();
381            array.add( "member" );
382            array.add( "cn" );
383            objectClass.setMustListIds( array.toArray( EMPTY ) );
384    
385            // set may list
386            array.clear();
387            array.add( "businessCategory" );
388            array.add( "seeAlso" );
389            array.add( "owner" );
390            array.add( "ou" );
391            array.add( "o" );
392            array.add( "description" );
393            objectClass.setMayListIds( array.toArray( EMPTY ) );
394    
395            // set names
396            array.clear();
397            array.add( "groupOfNames" );
398            objectClass.setNames( array.toArray( EMPTY ) );
399            cb.schemaObjectProduced( this, "2.5.6.9", objectClass );
400            // --------------------------------------------------------------------
401            // ObjectClass 2.5.6.10 
402            // --------------------------------------------------------------------
403    
404            objectClass = newObjectClass( "2.5.6.10", registries );
405            objectClass.setObsolete( false );
406    
407            objectClass.setDescription( "RFC2256: an residential person" );
408            // set the objectclass type
409            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
410    
411            // set superior objectClasses
412            array.clear();
413            array.add( "person" );
414            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
415    
416            // set must list
417            array.clear();
418            array.add( "l" );
419            objectClass.setMustListIds( array.toArray( EMPTY ) );
420    
421            // set may list
422            array.clear();
423            array.add( "businessCategory" );
424            array.add( "x121Address" );
425            array.add( "registeredAddress" );
426            array.add( "destinationIndicator" );
427            array.add( "preferredDeliveryMethod" );
428            array.add( "telexNumber" );
429            array.add( "teletexTerminalIdentifier" );
430            array.add( "telephoneNumber" );
431            array.add( "internationaliSDNNumber" );
432            array.add( "facsimileTelephoneNumber" );
433            array.add( "preferredDeliveryMethod" );
434            array.add( "street" );
435            array.add( "postOfficeBox" );
436            array.add( "postalCode" );
437            array.add( "postalAddress" );
438            array.add( "physicalDeliveryOfficeName" );
439            array.add( "st" );
440            objectClass.setMayListIds( array.toArray( EMPTY ) );
441    
442            // set names
443            array.clear();
444            array.add( "residentialPerson" );
445            objectClass.setNames( array.toArray( EMPTY ) );
446            cb.schemaObjectProduced( this, "2.5.6.10", objectClass );
447            // --------------------------------------------------------------------
448            // ObjectClass 2.5.6.11 
449            // --------------------------------------------------------------------
450    
451            objectClass = newObjectClass( "2.5.6.11", registries );
452            objectClass.setObsolete( false );
453    
454            objectClass.setDescription( "RFC2256: an application process" );
455            // set the objectclass type
456            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
457    
458            // set superior objectClasses
459            array.clear();
460            array.add( "top" );
461            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
462    
463            // set must list
464            array.clear();
465            array.add( "cn" );
466            objectClass.setMustListIds( array.toArray( EMPTY ) );
467    
468            // set may list
469            array.clear();
470            array.add( "seeAlso" );
471            array.add( "ou" );
472            array.add( "l" );
473            array.add( "description" );
474            objectClass.setMayListIds( array.toArray( EMPTY ) );
475    
476            // set names
477            array.clear();
478            array.add( "applicationProcess" );
479            objectClass.setNames( array.toArray( EMPTY ) );
480            cb.schemaObjectProduced( this, "2.5.6.11", objectClass );
481            // --------------------------------------------------------------------
482            // ObjectClass 2.5.6.12 
483            // --------------------------------------------------------------------
484    
485            objectClass = newObjectClass( "2.5.6.12", registries );
486            objectClass.setObsolete( false );
487    
488            objectClass.setDescription( "RFC2256: an application entity" );
489            // set the objectclass type
490            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
491    
492            // set superior objectClasses
493            array.clear();
494            array.add( "top" );
495            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
496    
497            // set must list
498            array.clear();
499            array.add( "presentationAddress" );
500            array.add( "cn" );
501            objectClass.setMustListIds( array.toArray( EMPTY ) );
502    
503            // set may list
504            array.clear();
505            array.add( "supportedApplicationContext" );
506            array.add( "seeAlso" );
507            array.add( "ou" );
508            array.add( "o" );
509            array.add( "l" );
510            array.add( "description" );
511            objectClass.setMayListIds( array.toArray( EMPTY ) );
512    
513            // set names
514            array.clear();
515            array.add( "applicationEntity" );
516            objectClass.setNames( array.toArray( EMPTY ) );
517            cb.schemaObjectProduced( this, "2.5.6.12", objectClass );
518            // --------------------------------------------------------------------
519            // ObjectClass 2.5.6.13 
520            // --------------------------------------------------------------------
521    
522            objectClass = newObjectClass( "2.5.6.13", registries );
523            objectClass.setObsolete( false );
524    
525            objectClass.setDescription( "RFC2256: a directory system agent (a server)" );
526            // set the objectclass type
527            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
528    
529            // set superior objectClasses
530            array.clear();
531            array.add( "applicationEntity" );
532            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
533    
534            // set must list
535            array.clear();
536            objectClass.setMustListIds( array.toArray( EMPTY ) );
537    
538            // set may list
539            array.clear();
540            array.add( "knowledgeInformation" );
541            objectClass.setMayListIds( array.toArray( EMPTY ) );
542    
543            // set names
544            array.clear();
545            array.add( "dSA" );
546            objectClass.setNames( array.toArray( EMPTY ) );
547            cb.schemaObjectProduced( this, "2.5.6.13", objectClass );
548            // --------------------------------------------------------------------
549            // ObjectClass 2.5.6.14 
550            // --------------------------------------------------------------------
551    
552            objectClass = newObjectClass( "2.5.6.14", registries );
553            objectClass.setObsolete( false );
554    
555            objectClass.setDescription( "RFC2256: a device" );
556            // set the objectclass type
557            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
558    
559            // set superior objectClasses
560            array.clear();
561            array.add( "top" );
562            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
563    
564            // set must list
565            array.clear();
566            array.add( "cn" );
567            objectClass.setMustListIds( array.toArray( EMPTY ) );
568    
569            // set may list
570            array.clear();
571            array.add( "serialNumber" );
572            array.add( "seeAlso" );
573            array.add( "owner" );
574            array.add( "ou" );
575            array.add( "o" );
576            array.add( "l" );
577            array.add( "description" );
578            objectClass.setMayListIds( array.toArray( EMPTY ) );
579    
580            // set names
581            array.clear();
582            array.add( "device" );
583            objectClass.setNames( array.toArray( EMPTY ) );
584            cb.schemaObjectProduced( this, "2.5.6.14", objectClass );
585            // --------------------------------------------------------------------
586            // ObjectClass 2.5.6.15 
587            // --------------------------------------------------------------------
588    
589            objectClass = newObjectClass( "2.5.6.15", registries );
590            objectClass.setObsolete( false );
591    
592            objectClass.setDescription( "RFC2256: a strong authentication user" );
593            // set the objectclass type
594            objectClass.setType( ObjectClassTypeEnum.AUXILIARY );
595    
596            // set superior objectClasses
597            array.clear();
598            array.add( "top" );
599            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
600    
601            // set must list
602            array.clear();
603            array.add( "userCertificate" );
604            objectClass.setMustListIds( array.toArray( EMPTY ) );
605    
606            // set may list
607            array.clear();
608            objectClass.setMayListIds( array.toArray( EMPTY ) );
609    
610            // set names
611            array.clear();
612            array.add( "strongAuthenticationUser" );
613            objectClass.setNames( array.toArray( EMPTY ) );
614            cb.schemaObjectProduced( this, "2.5.6.15", objectClass );
615            // --------------------------------------------------------------------
616            // ObjectClass 2.5.6.16 
617            // --------------------------------------------------------------------
618    
619            objectClass = newObjectClass( "2.5.6.16", registries );
620            objectClass.setObsolete( false );
621    
622            objectClass.setDescription( "RFC2256: a certificate authority" );
623            // set the objectclass type
624            objectClass.setType( ObjectClassTypeEnum.AUXILIARY );
625    
626            // set superior objectClasses
627            array.clear();
628            array.add( "top" );
629            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
630    
631            // set must list
632            array.clear();
633            array.add( "authorityRevocationList" );
634            array.add( "certificateRevocationList" );
635            array.add( "cACertificate" );
636            objectClass.setMustListIds( array.toArray( EMPTY ) );
637    
638            // set may list
639            array.clear();
640            array.add( "crossCertificatePair" );
641            objectClass.setMayListIds( array.toArray( EMPTY ) );
642    
643            // set names
644            array.clear();
645            array.add( "certificationAuthority" );
646            objectClass.setNames( array.toArray( EMPTY ) );
647            cb.schemaObjectProduced( this, "2.5.6.16", objectClass );
648            // --------------------------------------------------------------------
649            // ObjectClass 2.5.6.17 
650            // --------------------------------------------------------------------
651    
652            objectClass = newObjectClass( "2.5.6.17", registries );
653            objectClass.setObsolete( false );
654    
655            objectClass.setDescription( "RFC2256: a group of unique names (DN and Unique Identifier)" );
656            // set the objectclass type
657            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
658    
659            // set superior objectClasses
660            array.clear();
661            array.add( "top" );
662            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
663    
664            // set must list
665            array.clear();
666            array.add( "uniqueMember" );
667            array.add( "cn" );
668            objectClass.setMustListIds( array.toArray( EMPTY ) );
669    
670            // set may list
671            array.clear();
672            array.add( "businessCategory" );
673            array.add( "seeAlso" );
674            array.add( "owner" );
675            array.add( "ou" );
676            array.add( "o" );
677            array.add( "description" );
678            objectClass.setMayListIds( array.toArray( EMPTY ) );
679    
680            // set names
681            array.clear();
682            array.add( "groupOfUniqueNames" );
683            objectClass.setNames( array.toArray( EMPTY ) );
684            cb.schemaObjectProduced( this, "2.5.6.17", objectClass );
685            // --------------------------------------------------------------------
686            // ObjectClass 2.5.6.18 
687            // --------------------------------------------------------------------
688    
689            objectClass = newObjectClass( "2.5.6.18", registries );
690            objectClass.setObsolete( false );
691    
692            objectClass.setDescription( "RFC2256: a user security information" );
693            // set the objectclass type
694            objectClass.setType( ObjectClassTypeEnum.AUXILIARY );
695    
696            // set superior objectClasses
697            array.clear();
698            array.add( "top" );
699            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
700    
701            // set must list
702            array.clear();
703            objectClass.setMustListIds( array.toArray( EMPTY ) );
704    
705            // set may list
706            array.clear();
707            array.add( "supportedAlgorithms" );
708            objectClass.setMayListIds( array.toArray( EMPTY ) );
709    
710            // set names
711            array.clear();
712            array.add( "userSecurityInformation" );
713            objectClass.setNames( array.toArray( EMPTY ) );
714            cb.schemaObjectProduced( this, "2.5.6.18", objectClass );
715            // --------------------------------------------------------------------
716            // ObjectClass 2.5.6.16.2 
717            // --------------------------------------------------------------------
718    
719            objectClass = newObjectClass( "2.5.6.16.2", registries );
720            objectClass.setObsolete( false );
721    
722            // set the objectclass type
723            objectClass.setType( ObjectClassTypeEnum.AUXILIARY );
724    
725            // set superior objectClasses
726            array.clear();
727            array.add( "certificationAuthority" );
728            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
729    
730            // set must list
731            array.clear();
732            objectClass.setMustListIds( array.toArray( EMPTY ) );
733    
734            // set may list
735            array.clear();
736            array.add( "deltaRevocationList" );
737            objectClass.setMayListIds( array.toArray( EMPTY ) );
738    
739            // set names
740            array.clear();
741            array.add( "certificationAuthority-V2" );
742            objectClass.setNames( array.toArray( EMPTY ) );
743            cb.schemaObjectProduced( this, "2.5.6.16.2", objectClass );
744            // --------------------------------------------------------------------
745            // ObjectClass 2.5.6.19 
746            // --------------------------------------------------------------------
747    
748            objectClass = newObjectClass( "2.5.6.19", registries );
749            objectClass.setObsolete( false );
750    
751            // set the objectclass type
752            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
753    
754            // set superior objectClasses
755            array.clear();
756            array.add( "top" );
757            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
758    
759            // set must list
760            array.clear();
761            array.add( "cn" );
762            objectClass.setMustListIds( array.toArray( EMPTY ) );
763    
764            // set may list
765            array.clear();
766            array.add( "certificateRevocationList" );
767            array.add( "authorityRevocationList" );
768            array.add( "deltaRevocationList" );
769            objectClass.setMayListIds( array.toArray( EMPTY ) );
770    
771            // set names
772            array.clear();
773            array.add( "cRLDistributionPoint" );
774            objectClass.setNames( array.toArray( EMPTY ) );
775            cb.schemaObjectProduced( this, "2.5.6.19", objectClass );
776            // --------------------------------------------------------------------
777            // ObjectClass 2.5.6.20 
778            // --------------------------------------------------------------------
779    
780            objectClass = newObjectClass( "2.5.6.20", registries );
781            objectClass.setObsolete( false );
782    
783            // set the objectclass type
784            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
785    
786            // set superior objectClasses
787            array.clear();
788            array.add( "top" );
789            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
790    
791            // set must list
792            array.clear();
793            array.add( "dmdName" );
794            objectClass.setMustListIds( array.toArray( EMPTY ) );
795    
796            // set may list
797            array.clear();
798            array.add( "userPassword" );
799            array.add( "searchGuide" );
800            array.add( "seeAlso" );
801            array.add( "businessCategory" );
802            array.add( "x121Address" );
803            array.add( "registeredAddress" );
804            array.add( "destinationIndicator" );
805            array.add( "preferredDeliveryMethod" );
806            array.add( "telexNumber" );
807            array.add( "teletexTerminalIdentifier" );
808            array.add( "telephoneNumber" );
809            array.add( "internationaliSDNNumber" );
810            array.add( "facsimileTelephoneNumber" );
811            array.add( "street" );
812            array.add( "postOfficeBox" );
813            array.add( "postalCode" );
814            array.add( "postalAddress" );
815            array.add( "physicalDeliveryOfficeName" );
816            array.add( "st" );
817            array.add( "l" );
818            array.add( "description" );
819            objectClass.setMayListIds( array.toArray( EMPTY ) );
820    
821            // set names
822            array.clear();
823            array.add( "dmd" );
824            objectClass.setNames( array.toArray( EMPTY ) );
825            cb.schemaObjectProduced( this, "2.5.6.20", objectClass );
826            // --------------------------------------------------------------------
827            // ObjectClass 2.5.6.21 
828            // --------------------------------------------------------------------
829    
830            objectClass = newObjectClass( "2.5.6.21", registries );
831            objectClass.setObsolete( false );
832    
833            objectClass.setDescription( "RFC2587: a PKI user" );
834            // set the objectclass type
835            objectClass.setType( ObjectClassTypeEnum.AUXILIARY );
836    
837            // set superior objectClasses
838            array.clear();
839            array.add( "top" );
840            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
841    
842            // set must list
843            array.clear();
844            objectClass.setMustListIds( array.toArray( EMPTY ) );
845    
846            // set may list
847            array.clear();
848            array.add( "userCertificate" );
849            objectClass.setMayListIds( array.toArray( EMPTY ) );
850    
851            // set names
852            array.clear();
853            array.add( "pkiUser" );
854            objectClass.setNames( array.toArray( EMPTY ) );
855            cb.schemaObjectProduced( this, "2.5.6.21", objectClass );
856            // --------------------------------------------------------------------
857            // ObjectClass 2.5.6.22 
858            // --------------------------------------------------------------------
859    
860            objectClass = newObjectClass( "2.5.6.22", registries );
861            objectClass.setObsolete( false );
862    
863            objectClass.setDescription( "RFC2587: PKI certificate authority" );
864            // set the objectclass type
865            objectClass.setType( ObjectClassTypeEnum.AUXILIARY );
866    
867            // set superior objectClasses
868            array.clear();
869            array.add( "top" );
870            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
871    
872            // set must list
873            array.clear();
874            objectClass.setMustListIds( array.toArray( EMPTY ) );
875    
876            // set may list
877            array.clear();
878            array.add( "authorityRevocationList" );
879            array.add( "certificateRevocationList" );
880            array.add( "cACertificate" );
881            array.add( "crossCertificatePair" );
882            objectClass.setMayListIds( array.toArray( EMPTY ) );
883    
884            // set names
885            array.clear();
886            array.add( "pkiCA" );
887            objectClass.setNames( array.toArray( EMPTY ) );
888            cb.schemaObjectProduced( this, "2.5.6.22", objectClass );
889            // --------------------------------------------------------------------
890            // ObjectClass 2.5.6.23 
891            // --------------------------------------------------------------------
892    
893            objectClass = newObjectClass( "2.5.6.23", registries );
894            objectClass.setObsolete( false );
895    
896            objectClass.setDescription( "RFC2587: PKI user" );
897            // set the objectclass type
898            objectClass.setType( ObjectClassTypeEnum.AUXILIARY );
899    
900            // set superior objectClasses
901            array.clear();
902            array.add( "top" );
903            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
904    
905            // set must list
906            array.clear();
907            objectClass.setMustListIds( array.toArray( EMPTY ) );
908    
909            // set may list
910            array.clear();
911            array.add( "deltaRevocationList" );
912            objectClass.setMayListIds( array.toArray( EMPTY ) );
913    
914            // set names
915            array.clear();
916            array.add( "deltaCRL" );
917            objectClass.setNames( array.toArray( EMPTY ) );
918            cb.schemaObjectProduced( this, "2.5.6.23", objectClass );
919            // --------------------------------------------------------------------
920            // ObjectClass 1.3.6.1.4.1.250.3.15 
921            // --------------------------------------------------------------------
922    
923            objectClass = newObjectClass( "1.3.6.1.4.1.250.3.15", registries );
924            objectClass.setObsolete( false );
925    
926            objectClass.setDescription( "RFC2079: object that contains the URI attribute type" );
927            // set the objectclass type
928            objectClass.setType( ObjectClassTypeEnum.AUXILIARY );
929    
930            // set superior objectClasses
931            array.clear();
932            array.add( "top" );
933            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
934    
935            // set must list
936            array.clear();
937            objectClass.setMustListIds( array.toArray( EMPTY ) );
938    
939            // set may list
940            array.clear();
941            array.add( "labeledURI" );
942            objectClass.setMayListIds( array.toArray( EMPTY ) );
943    
944            // set names
945            array.clear();
946            array.add( "labeledURIObject" );
947            objectClass.setNames( array.toArray( EMPTY ) );
948            cb.schemaObjectProduced( this, "1.3.6.1.4.1.250.3.15", objectClass );
949            // --------------------------------------------------------------------
950            // ObjectClass 0.9.2342.19200300.100.4.19 
951            // --------------------------------------------------------------------
952    
953            objectClass = newObjectClass( "0.9.2342.19200300.100.4.19", registries );
954            objectClass.setObsolete( false );
955    
956            objectClass.setDescription( "RFC1274: simple security object" );
957            // set the objectclass type
958            objectClass.setType( ObjectClassTypeEnum.AUXILIARY );
959    
960            // set superior objectClasses
961            array.clear();
962            array.add( "top" );
963            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
964    
965            // set must list
966            array.clear();
967            array.add( "userPassword" );
968            objectClass.setMustListIds( array.toArray( EMPTY ) );
969    
970            // set may list
971            array.clear();
972            objectClass.setMayListIds( array.toArray( EMPTY ) );
973    
974            // set names
975            array.clear();
976            array.add( "simpleSecurityObject" );
977            objectClass.setNames( array.toArray( EMPTY ) );
978            cb.schemaObjectProduced( this, "0.9.2342.19200300.100.4.19", objectClass );
979            // --------------------------------------------------------------------
980            // ObjectClass 1.3.6.1.4.1.1466.344 
981            // --------------------------------------------------------------------
982    
983            objectClass = newObjectClass( "1.3.6.1.4.1.1466.344", registries );
984            objectClass.setObsolete( false );
985    
986            objectClass.setDescription( "RFC2247: domain component object" );
987            // set the objectclass type
988            objectClass.setType( ObjectClassTypeEnum.AUXILIARY );
989    
990            // set superior objectClasses
991            array.clear();
992            array.add( "top" );
993            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
994    
995            // set must list
996            array.clear();
997            array.add( "dc" );
998            objectClass.setMustListIds( array.toArray( EMPTY ) );
999    
1000            // set may list
1001            array.clear();
1002            objectClass.setMayListIds( array.toArray( EMPTY ) );
1003    
1004            // set names
1005            array.clear();
1006            array.add( "dcObject" );
1007            objectClass.setNames( array.toArray( EMPTY ) );
1008            cb.schemaObjectProduced( this, "1.3.6.1.4.1.1466.344", objectClass );
1009            // --------------------------------------------------------------------
1010            // ObjectClass 1.3.6.1.1.3.1 
1011            // --------------------------------------------------------------------
1012    
1013            objectClass = newObjectClass( "1.3.6.1.1.3.1", registries );
1014            objectClass.setObsolete( false );
1015    
1016            objectClass.setDescription( "RFC2377: uid object" );
1017            // set the objectclass type
1018            objectClass.setType( ObjectClassTypeEnum.AUXILIARY );
1019    
1020            // set superior objectClasses
1021            array.clear();
1022            array.add( "top" );
1023            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
1024    
1025            // set must list
1026            array.clear();
1027            array.add( "uid" );
1028            objectClass.setMustListIds( array.toArray( EMPTY ) );
1029    
1030            // set may list
1031            array.clear();
1032            objectClass.setMayListIds( array.toArray( EMPTY ) );
1033    
1034            // set names
1035            array.clear();
1036            array.add( "uidObject" );
1037            objectClass.setNames( array.toArray( EMPTY ) );
1038            cb.schemaObjectProduced( this, "1.3.6.1.1.3.1", objectClass );
1039        }
1040    }