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 apachedns 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 ApachednsObjectClassProducer extends AbstractBootstrapProducer
039    {
040    
041        public ApachednsObjectClassProducer()
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.2.3.1 
063            // --------------------------------------------------------------------
064    
065            objectClass = newObjectClass( "1.3.6.1.4.1.18060.0.4.2.3.1", registries );
066            objectClass.setObsolete( false );
067    
068            objectClass.setDescription( "An abstract DNS record objectClass used to build other specific structural objectclasses for different record types" );
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( "cn" );
080            objectClass.setMustListIds( array.toArray( EMPTY ) );
081    
082            // set may list
083            array.clear();
084            array.add( "apacheDnsTtl" );
085            array.add( "description" );
086            objectClass.setMayListIds( array.toArray( EMPTY ) );
087    
088            // set names
089            array.clear();
090            array.add( "apacheDnsAbstractRecord" );
091            objectClass.setNames( array.toArray( EMPTY ) );
092            cb.schemaObjectProduced( this, "1.3.6.1.4.1.18060.0.4.2.3.1", objectClass );
093            // --------------------------------------------------------------------
094            // ObjectClass 1.3.6.1.4.1.18060.0.4.2.3.2 
095            // --------------------------------------------------------------------
096    
097            objectClass = newObjectClass( "1.3.6.1.4.1.18060.0.4.2.3.2", registries );
098            objectClass.setObsolete( false );
099    
100            objectClass.setDescription( "An address A record" );
101            // set the objectclass type
102            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
103    
104            // set superior objectClasses
105            array.clear();
106            array.add( "apacheDnsAbstractRecord" );
107            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
108    
109            // set must list
110            array.clear();
111            array.add( "apacheDnsIpAddress" );
112            objectClass.setMustListIds( array.toArray( EMPTY ) );
113    
114            // set may list
115            array.clear();
116            objectClass.setMayListIds( array.toArray( EMPTY ) );
117    
118            // set names
119            array.clear();
120            array.add( "apacheDnsAddressRecord" );
121            objectClass.setNames( array.toArray( EMPTY ) );
122            cb.schemaObjectProduced( this, "1.3.6.1.4.1.18060.0.4.2.3.2", objectClass );
123            // --------------------------------------------------------------------
124            // ObjectClass 1.3.6.1.4.1.18060.0.4.2.3.3 
125            // --------------------------------------------------------------------
126    
127            objectClass = newObjectClass( "1.3.6.1.4.1.18060.0.4.2.3.3", registries );
128            objectClass.setObsolete( false );
129    
130            objectClass.setDescription( "A pointer PTR record" );
131            // set the objectclass type
132            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
133    
134            // set superior objectClasses
135            array.clear();
136            array.add( "apacheDnsAbstractRecord" );
137            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
138    
139            // set must list
140            array.clear();
141            array.add( "apacheDnsDomainName" );
142            objectClass.setMustListIds( array.toArray( EMPTY ) );
143    
144            // set may list
145            array.clear();
146            objectClass.setMayListIds( array.toArray( EMPTY ) );
147    
148            // set names
149            array.clear();
150            array.add( "apacheDnsPointerRecord" );
151            objectClass.setNames( array.toArray( EMPTY ) );
152            cb.schemaObjectProduced( this, "1.3.6.1.4.1.18060.0.4.2.3.3", objectClass );
153            // --------------------------------------------------------------------
154            // ObjectClass 1.3.6.1.4.1.18060.0.4.2.3.4 
155            // --------------------------------------------------------------------
156    
157            objectClass = newObjectClass( "1.3.6.1.4.1.18060.0.4.2.3.4", registries );
158            objectClass.setObsolete( false );
159    
160            objectClass.setDescription( "A name server NS record" );
161            // set the objectclass type
162            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
163    
164            // set superior objectClasses
165            array.clear();
166            array.add( "apacheDnsAbstractRecord" );
167            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
168    
169            // set must list
170            array.clear();
171            array.add( "apacheDnsDomainName" );
172            objectClass.setMustListIds( array.toArray( EMPTY ) );
173    
174            // set may list
175            array.clear();
176            objectClass.setMayListIds( array.toArray( EMPTY ) );
177    
178            // set names
179            array.clear();
180            array.add( "apacheDnsNameServerRecord" );
181            objectClass.setNames( array.toArray( EMPTY ) );
182            cb.schemaObjectProduced( this, "1.3.6.1.4.1.18060.0.4.2.3.4", objectClass );
183            // --------------------------------------------------------------------
184            // ObjectClass 1.3.6.1.4.1.18060.0.4.2.3.5 
185            // --------------------------------------------------------------------
186    
187            objectClass = newObjectClass( "1.3.6.1.4.1.18060.0.4.2.3.5", registries );
188            objectClass.setObsolete( false );
189    
190            objectClass.setDescription( "A start of authority SOA record" );
191            // set the objectclass type
192            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
193    
194            // set superior objectClasses
195            array.clear();
196            array.add( "apacheDnsAbstractRecord" );
197            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
198    
199            // set must list
200            array.clear();
201            array.add( "apacheDnsSoaMName" );
202            array.add( "apacheDnsSoaRName" );
203            array.add( "apacheDnsSoaMinimum" );
204            objectClass.setMustListIds( array.toArray( EMPTY ) );
205    
206            // set may list
207            array.clear();
208            array.add( "apacheDnsClass" );
209            array.add( "apacheDnsSoaSerial" );
210            array.add( "apacheDnsSoaRefresh" );
211            array.add( "apacheDnsSoaRetry" );
212            array.add( "apacheDnsSoaExpire" );
213            objectClass.setMayListIds( array.toArray( EMPTY ) );
214    
215            // set names
216            array.clear();
217            array.add( "apacheDnsStartOfAuthorityRecord" );
218            objectClass.setNames( array.toArray( EMPTY ) );
219            cb.schemaObjectProduced( this, "1.3.6.1.4.1.18060.0.4.2.3.5", objectClass );
220            // --------------------------------------------------------------------
221            // ObjectClass 1.3.6.1.4.1.18060.0.4.2.3.6 
222            // --------------------------------------------------------------------
223    
224            objectClass = newObjectClass( "1.3.6.1.4.1.18060.0.4.2.3.6", registries );
225            objectClass.setObsolete( false );
226    
227            objectClass.setDescription( "A canonical name CNAME record" );
228            // set the objectclass type
229            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
230    
231            // set superior objectClasses
232            array.clear();
233            array.add( "apacheDnsAbstractRecord" );
234            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
235    
236            // set must list
237            array.clear();
238            array.add( "apacheDnsDomainName" );
239            objectClass.setMustListIds( array.toArray( EMPTY ) );
240    
241            // set may list
242            array.clear();
243            objectClass.setMayListIds( array.toArray( EMPTY ) );
244    
245            // set names
246            array.clear();
247            array.add( "apacheDnsCanonicalNameRecord" );
248            objectClass.setNames( array.toArray( EMPTY ) );
249            cb.schemaObjectProduced( this, "1.3.6.1.4.1.18060.0.4.2.3.6", objectClass );
250            // --------------------------------------------------------------------
251            // ObjectClass 1.3.6.1.4.1.18060.0.4.2.3.7 
252            // --------------------------------------------------------------------
253    
254            objectClass = newObjectClass( "1.3.6.1.4.1.18060.0.4.2.3.7", registries );
255            objectClass.setObsolete( false );
256    
257            objectClass.setDescription( "A mail exchange MX record" );
258            // set the objectclass type
259            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
260    
261            // set superior objectClasses
262            array.clear();
263            array.add( "apacheDnsAbstractRecord" );
264            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
265    
266            // set must list
267            array.clear();
268            array.add( "apacheDnsMxPreference" );
269            array.add( "apacheDnsDomainName" );
270            objectClass.setMustListIds( array.toArray( EMPTY ) );
271    
272            // set may list
273            array.clear();
274            objectClass.setMayListIds( array.toArray( EMPTY ) );
275    
276            // set names
277            array.clear();
278            array.add( "apacheDnsMailExchangeRecord" );
279            objectClass.setNames( array.toArray( EMPTY ) );
280            cb.schemaObjectProduced( this, "1.3.6.1.4.1.18060.0.4.2.3.7", objectClass );
281            // --------------------------------------------------------------------
282            // ObjectClass 1.3.6.1.4.1.18060.0.4.2.3.8 
283            // --------------------------------------------------------------------
284    
285            objectClass = newObjectClass( "1.3.6.1.4.1.18060.0.4.2.3.8", registries );
286            objectClass.setObsolete( false );
287    
288            objectClass.setDescription( "A text TXT record" );
289            // set the objectclass type
290            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
291    
292            // set superior objectClasses
293            array.clear();
294            array.add( "apacheDnsAbstractRecord" );
295            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
296    
297            // set must list
298            array.clear();
299            array.add( "apacheDnsCharacterString" );
300            objectClass.setMustListIds( array.toArray( EMPTY ) );
301    
302            // set may list
303            array.clear();
304            objectClass.setMayListIds( array.toArray( EMPTY ) );
305    
306            // set names
307            array.clear();
308            array.add( "apacheDnsTextRecord" );
309            objectClass.setNames( array.toArray( EMPTY ) );
310            cb.schemaObjectProduced( this, "1.3.6.1.4.1.18060.0.4.2.3.8", objectClass );
311            // --------------------------------------------------------------------
312            // ObjectClass 1.3.6.1.4.1.18060.0.4.2.3.9 
313            // --------------------------------------------------------------------
314    
315            objectClass = newObjectClass( "1.3.6.1.4.1.18060.0.4.2.3.9", registries );
316            objectClass.setObsolete( false );
317    
318            objectClass.setDescription( "A service SRV record" );
319            // set the objectclass type
320            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
321    
322            // set superior objectClasses
323            array.clear();
324            array.add( "apacheDnsAbstractRecord" );
325            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
326    
327            // set must list
328            array.clear();
329            array.add( "apacheDnsServicePriority" );
330            array.add( "apacheDnsServiceWeight" );
331            array.add( "apacheDnsServicePort" );
332            array.add( "apacheDnsDomainName" );
333            objectClass.setMustListIds( array.toArray( EMPTY ) );
334    
335            // set may list
336            array.clear();
337            objectClass.setMayListIds( array.toArray( EMPTY ) );
338    
339            // set names
340            array.clear();
341            array.add( "apacheDnsServiceRecord" );
342            objectClass.setNames( array.toArray( EMPTY ) );
343            cb.schemaObjectProduced( this, "1.3.6.1.4.1.18060.0.4.2.3.9", objectClass );
344            // --------------------------------------------------------------------
345            // ObjectClass 1.3.6.1.4.1.18060.0.4.2.3.10 
346            // --------------------------------------------------------------------
347    
348            objectClass = newObjectClass( "1.3.6.1.4.1.18060.0.4.2.3.10", registries );
349            objectClass.setObsolete( false );
350    
351            objectClass.setDescription( "A non-authoritative referral or delegation name server" );
352            // set the objectclass type
353            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
354    
355            // set superior objectClasses
356            array.clear();
357            array.add( "apacheDnsAbstractRecord" );
358            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
359    
360            // set must list
361            array.clear();
362            array.add( "apacheDnsDomainName" );
363            objectClass.setMustListIds( array.toArray( EMPTY ) );
364    
365            // set may list
366            array.clear();
367            objectClass.setMayListIds( array.toArray( EMPTY ) );
368    
369            // set names
370            array.clear();
371            array.add( "apacheDnsReferralNameServer" );
372            objectClass.setNames( array.toArray( EMPTY ) );
373            cb.schemaObjectProduced( this, "1.3.6.1.4.1.18060.0.4.2.3.10", objectClass );
374            // --------------------------------------------------------------------
375            // ObjectClass 1.3.6.1.4.1.18060.0.4.2.3.11 
376            // --------------------------------------------------------------------
377    
378            objectClass = newObjectClass( "1.3.6.1.4.1.18060.0.4.2.3.11", registries );
379            objectClass.setObsolete( false );
380    
381            objectClass.setDescription( "A non-authoritative referral or glue address record" );
382            // set the objectclass type
383            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
384    
385            // set superior objectClasses
386            array.clear();
387            array.add( "apacheDnsAbstractRecord" );
388            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
389    
390            // set must list
391            array.clear();
392            array.add( "apacheDnsDomainName" );
393            array.add( "apacheDnsIpAddress" );
394            objectClass.setMustListIds( array.toArray( EMPTY ) );
395    
396            // set may list
397            array.clear();
398            objectClass.setMayListIds( array.toArray( EMPTY ) );
399    
400            // set names
401            array.clear();
402            array.add( "apacheDnsReferralAddress" );
403            objectClass.setNames( array.toArray( EMPTY ) );
404            cb.schemaObjectProduced( this, "1.3.6.1.4.1.18060.0.4.2.3.11", objectClass );
405        }
406    }