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 apachemeta 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 ApachemetaObjectClassProducer extends AbstractBootstrapProducer
039    {
040    
041        public ApachemetaObjectClassProducer()
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 1.3.6.1.4.1.18060.0.4.0.3.1 
063            // --------------------------------------------------------------------
064    
065            objectClass = newObjectClass( "1.3.6.1.4.1.18060.0.4.0.3.1", registries );
066            objectClass.setObsolete( false );
067    
068            objectClass.setDescription( "Top level objectclass of all meta objects" );
069            // set the objectclass type
070            objectClass.setType( ObjectClassTypeEnum.ABSTRACT );
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( "m-oid" );
080            objectClass.setMustListIds( array.toArray( EMPTY ) );
081    
082            // set may list
083            array.clear();
084            array.add( "m-description" );
085            objectClass.setMayListIds( array.toArray( EMPTY ) );
086    
087            // set names
088            array.clear();
089            array.add( "metaTop" );
090            objectClass.setNames( array.toArray( EMPTY ) );
091            cb.schemaObjectProduced( this, "1.3.6.1.4.1.18060.0.4.0.3.1", objectClass );
092            // --------------------------------------------------------------------
093            // ObjectClass 1.3.6.1.4.1.18060.0.4.0.3.2 
094            // --------------------------------------------------------------------
095    
096            objectClass = newObjectClass( "1.3.6.1.4.1.18060.0.4.0.3.2", registries );
097            objectClass.setObsolete( false );
098    
099            objectClass.setDescription( "meta definition of the objectclass object" );
100            // set the objectclass type
101            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
102    
103            // set superior objectClasses
104            array.clear();
105            array.add( "metaTop" );
106            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
107    
108            // set must list
109            array.clear();
110            array.add( "m-oid" );
111            objectClass.setMustListIds( array.toArray( EMPTY ) );
112    
113            // set may list
114            array.clear();
115            array.add( "m-name" );
116            array.add( "m-obsolete" );
117            array.add( "m-supObjectClass" );
118            array.add( "m-typeObjectClass" );
119            array.add( "m-must" );
120            array.add( "m-may" );
121            objectClass.setMayListIds( array.toArray( EMPTY ) );
122    
123            // set names
124            array.clear();
125            array.add( "metaObjectClass" );
126            objectClass.setNames( array.toArray( EMPTY ) );
127            cb.schemaObjectProduced( this, "1.3.6.1.4.1.18060.0.4.0.3.2", objectClass );
128            // --------------------------------------------------------------------
129            // ObjectClass 1.3.6.1.4.1.18060.0.4.0.3.3 
130            // --------------------------------------------------------------------
131    
132            objectClass = newObjectClass( "1.3.6.1.4.1.18060.0.4.0.3.3", registries );
133            objectClass.setObsolete( false );
134    
135            objectClass.setDescription( "meta definition of the AttributeType object" );
136            // set the objectclass type
137            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
138    
139            // set superior objectClasses
140            array.clear();
141            array.add( "metaTop" );
142            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
143    
144            // set must list
145            array.clear();
146            objectClass.setMustListIds( array.toArray( EMPTY ) );
147    
148            // set may list
149            array.clear();
150            array.add( "m-name" );
151            array.add( "m-obsolete" );
152            array.add( "m-supAttributeType" );
153            array.add( "m-equality" );
154            array.add( "m-ordering" );
155            array.add( "m-substr" );
156            array.add( "m-syntax" );
157            array.add( "m-singleValue" );
158            array.add( "m-collective" );
159            array.add( "m-noUserModification" );
160            array.add( "m-usage" );
161            array.add( "m-length" );
162            objectClass.setMayListIds( array.toArray( EMPTY ) );
163    
164            // set names
165            array.clear();
166            array.add( "metaAttributeType" );
167            objectClass.setNames( array.toArray( EMPTY ) );
168            cb.schemaObjectProduced( this, "1.3.6.1.4.1.18060.0.4.0.3.3", objectClass );
169            // --------------------------------------------------------------------
170            // ObjectClass 1.3.6.1.4.1.18060.0.4.0.3.4 
171            // --------------------------------------------------------------------
172    
173            objectClass = newObjectClass( "1.3.6.1.4.1.18060.0.4.0.3.4", registries );
174            objectClass.setObsolete( false );
175    
176            objectClass.setDescription( "meta definition of the Syntax object" );
177            // set the objectclass type
178            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
179    
180            // set superior objectClasses
181            array.clear();
182            array.add( "metaTop" );
183            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
184    
185            // set must list
186            array.clear();
187            objectClass.setMustListIds( array.toArray( EMPTY ) );
188    
189            // set may list
190            array.clear();
191            objectClass.setMayListIds( array.toArray( EMPTY ) );
192    
193            // set names
194            array.clear();
195            array.add( "metaSyntax" );
196            objectClass.setNames( array.toArray( EMPTY ) );
197            cb.schemaObjectProduced( this, "1.3.6.1.4.1.18060.0.4.0.3.4", objectClass );
198            // --------------------------------------------------------------------
199            // ObjectClass 1.3.6.1.4.1.18060.0.4.0.3.5 
200            // --------------------------------------------------------------------
201    
202            objectClass = newObjectClass( "1.3.6.1.4.1.18060.0.4.0.3.5", registries );
203            objectClass.setObsolete( false );
204    
205            objectClass.setDescription( "meta definition of the MatchingRule object" );
206            // set the objectclass type
207            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
208    
209            // set superior objectClasses
210            array.clear();
211            array.add( "metaTop" );
212            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
213    
214            // set must list
215            array.clear();
216            array.add( "m-syntax" );
217            objectClass.setMustListIds( array.toArray( EMPTY ) );
218    
219            // set may list
220            array.clear();
221            array.add( "m-name" );
222            array.add( "m-obsolete" );
223            objectClass.setMayListIds( array.toArray( EMPTY ) );
224    
225            // set names
226            array.clear();
227            array.add( "metaMatchingRule" );
228            objectClass.setNames( array.toArray( EMPTY ) );
229            cb.schemaObjectProduced( this, "1.3.6.1.4.1.18060.0.4.0.3.5", objectClass );
230            // --------------------------------------------------------------------
231            // ObjectClass 1.3.6.1.4.1.18060.0.4.0.3.6 
232            // --------------------------------------------------------------------
233    
234            objectClass = newObjectClass( "1.3.6.1.4.1.18060.0.4.0.3.6", registries );
235            objectClass.setObsolete( false );
236    
237            objectClass.setDescription( "meta definition of the DITStructureRule object" );
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( "m-ruleId" );
249            array.add( "m-form" );
250            objectClass.setMustListIds( array.toArray( EMPTY ) );
251    
252            // set may list
253            array.clear();
254            array.add( "m-name" );
255            array.add( "m-obsolete" );
256            array.add( "m-supDITStructureRule" );
257            objectClass.setMayListIds( array.toArray( EMPTY ) );
258    
259            // set names
260            array.clear();
261            array.add( "metaDITStructureRule" );
262            objectClass.setNames( array.toArray( EMPTY ) );
263            cb.schemaObjectProduced( this, "1.3.6.1.4.1.18060.0.4.0.3.6", objectClass );
264            // --------------------------------------------------------------------
265            // ObjectClass 1.3.6.1.4.1.18060.0.4.0.3.7 
266            // --------------------------------------------------------------------
267    
268            objectClass = newObjectClass( "1.3.6.1.4.1.18060.0.4.0.3.7", registries );
269            objectClass.setObsolete( false );
270    
271            objectClass.setDescription( "meta definition of the NameForm object" );
272            // set the objectclass type
273            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
274    
275            // set superior objectClasses
276            array.clear();
277            array.add( "metaTop" );
278            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
279    
280            // set must list
281            array.clear();
282            array.add( "m-oc" );
283            array.add( "m-must" );
284            objectClass.setMustListIds( array.toArray( EMPTY ) );
285    
286            // set may list
287            array.clear();
288            array.add( "m-name" );
289            array.add( "m-obsolete" );
290            array.add( "m-may" );
291            objectClass.setMayListIds( array.toArray( EMPTY ) );
292    
293            // set names
294            array.clear();
295            array.add( "metaNameForm" );
296            objectClass.setNames( array.toArray( EMPTY ) );
297            cb.schemaObjectProduced( this, "1.3.6.1.4.1.18060.0.4.0.3.7", objectClass );
298            // --------------------------------------------------------------------
299            // ObjectClass 1.3.6.1.4.1.18060.0.4.0.3.8 
300            // --------------------------------------------------------------------
301    
302            objectClass = newObjectClass( "1.3.6.1.4.1.18060.0.4.0.3.8", registries );
303            objectClass.setObsolete( false );
304    
305            objectClass.setDescription( "meta definition of the MatchingRuleUse object" );
306            // set the objectclass type
307            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
308    
309            // set superior objectClasses
310            array.clear();
311            array.add( "metaTop" );
312            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
313    
314            // set must list
315            array.clear();
316            array.add( "m-applies" );
317            objectClass.setMustListIds( array.toArray( EMPTY ) );
318    
319            // set may list
320            array.clear();
321            array.add( "m-name" );
322            array.add( "m-obsolete" );
323            objectClass.setMayListIds( array.toArray( EMPTY ) );
324    
325            // set names
326            array.clear();
327            array.add( "metaMatchingRuleUse" );
328            objectClass.setNames( array.toArray( EMPTY ) );
329            cb.schemaObjectProduced( this, "1.3.6.1.4.1.18060.0.4.0.3.8", objectClass );
330            // --------------------------------------------------------------------
331            // ObjectClass 1.3.6.1.4.1.18060.0.4.0.3.9 
332            // --------------------------------------------------------------------
333    
334            objectClass = newObjectClass( "1.3.6.1.4.1.18060.0.4.0.3.9", registries );
335            objectClass.setObsolete( false );
336    
337            objectClass.setDescription( "meta definition of the DITContentRule object" );
338            // set the objectclass type
339            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
340    
341            // set superior objectClasses
342            array.clear();
343            array.add( "metaTop" );
344            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
345    
346            // set must list
347            array.clear();
348            objectClass.setMustListIds( array.toArray( EMPTY ) );
349    
350            // set may list
351            array.clear();
352            array.add( "m-name" );
353            array.add( "m-obsolete" );
354            array.add( "m-aux" );
355            array.add( "m-must" );
356            array.add( "m-may" );
357            array.add( "m-not" );
358            objectClass.setMayListIds( array.toArray( EMPTY ) );
359    
360            // set names
361            array.clear();
362            array.add( "metaDITContentRule" );
363            objectClass.setNames( array.toArray( EMPTY ) );
364            cb.schemaObjectProduced( this, "1.3.6.1.4.1.18060.0.4.0.3.9", objectClass );
365            // --------------------------------------------------------------------
366            // ObjectClass 1.3.6.1.4.1.18060.0.4.0.3.10 
367            // --------------------------------------------------------------------
368    
369            objectClass = newObjectClass( "1.3.6.1.4.1.18060.0.4.0.3.10", registries );
370            objectClass.setObsolete( false );
371    
372            objectClass.setDescription( "meta definition of the SyntaxChecker object" );
373            // set the objectclass type
374            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
375    
376            // set superior objectClasses
377            array.clear();
378            array.add( "metaTop" );
379            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
380    
381            // set must list
382            array.clear();
383            array.add( "m-fqcn" );
384            objectClass.setMustListIds( array.toArray( EMPTY ) );
385    
386            // set may list
387            array.clear();
388            array.add( "m-bytecode" );
389            objectClass.setMayListIds( array.toArray( EMPTY ) );
390    
391            // set names
392            array.clear();
393            array.add( "metaSyntaxChecker" );
394            objectClass.setNames( array.toArray( EMPTY ) );
395            cb.schemaObjectProduced( this, "1.3.6.1.4.1.18060.0.4.0.3.10", objectClass );
396            // --------------------------------------------------------------------
397            // ObjectClass 1.3.6.1.4.1.18060.0.4.0.3.11 
398            // --------------------------------------------------------------------
399    
400            objectClass = newObjectClass( "1.3.6.1.4.1.18060.0.4.0.3.11", registries );
401            objectClass.setObsolete( false );
402    
403            objectClass.setDescription( "A schema object under which meta schema definitions are found" );
404            // set the objectclass type
405            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
406    
407            // set superior objectClasses
408            array.clear();
409            array.add( "top" );
410            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
411    
412            // set must list
413            array.clear();
414            array.add( "cn" );
415            objectClass.setMustListIds( array.toArray( EMPTY ) );
416    
417            // set may list
418            array.clear();
419            array.add( "m-disabled" );
420            array.add( "m-dependencies" );
421            objectClass.setMayListIds( array.toArray( EMPTY ) );
422    
423            // set names
424            array.clear();
425            array.add( "metaSchema" );
426            objectClass.setNames( array.toArray( EMPTY ) );
427            cb.schemaObjectProduced( this, "1.3.6.1.4.1.18060.0.4.0.3.11", objectClass );
428            // --------------------------------------------------------------------
429            // ObjectClass 1.3.6.1.4.1.18060.0.4.0.3.12 
430            // --------------------------------------------------------------------
431    
432            objectClass = newObjectClass( "1.3.6.1.4.1.18060.0.4.0.3.12", registries );
433            objectClass.setObsolete( false );
434    
435            objectClass.setDescription( "meta definition of a Normalizer object" );
436            // set the objectclass type
437            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
438    
439            // set superior objectClasses
440            array.clear();
441            array.add( "metaTop" );
442            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
443    
444            // set must list
445            array.clear();
446            array.add( "m-fqcn" );
447            objectClass.setMustListIds( array.toArray( EMPTY ) );
448    
449            // set may list
450            array.clear();
451            array.add( "m-bytecode" );
452            objectClass.setMayListIds( array.toArray( EMPTY ) );
453    
454            // set names
455            array.clear();
456            array.add( "metaNormalizer" );
457            objectClass.setNames( array.toArray( EMPTY ) );
458            cb.schemaObjectProduced( this, "1.3.6.1.4.1.18060.0.4.0.3.12", objectClass );
459            // --------------------------------------------------------------------
460            // ObjectClass 1.3.6.1.4.1.18060.0.4.0.3.13 
461            // --------------------------------------------------------------------
462    
463            objectClass = newObjectClass( "1.3.6.1.4.1.18060.0.4.0.3.13", registries );
464            objectClass.setObsolete( false );
465    
466            objectClass.setDescription( "meta definition of a Comparator object" );
467            // set the objectclass type
468            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
469    
470            // set superior objectClasses
471            array.clear();
472            array.add( "metaTop" );
473            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
474    
475            // set must list
476            array.clear();
477            array.add( "m-fqcn" );
478            objectClass.setMustListIds( array.toArray( EMPTY ) );
479    
480            // set may list
481            array.clear();
482            array.add( "m-bytecode" );
483            objectClass.setMayListIds( array.toArray( EMPTY ) );
484    
485            // set names
486            array.clear();
487            array.add( "metaComparator" );
488            objectClass.setNames( array.toArray( EMPTY ) );
489            cb.schemaObjectProduced( this, "1.3.6.1.4.1.18060.0.4.0.3.13", objectClass );
490        }
491    }