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 samba 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 SambaObjectClassProducer extends AbstractBootstrapProducer
039    {
040    
041        public SambaObjectClassProducer()
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.7165.2.2.6 
063            // --------------------------------------------------------------------
064    
065            objectClass = newObjectClass( "1.3.6.1.4.1.7165.2.2.6", registries );
066            objectClass.setObsolete( false );
067    
068            objectClass.setDescription( "Samba 3.0 Auxilary SAM Account" );
069            // set the objectclass type
070            objectClass.setType( ObjectClassTypeEnum.AUXILIARY );
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( "uid" );
080            array.add( "sambaSID" );
081            objectClass.setMustListIds( array.toArray( EMPTY ) );
082    
083            // set may list
084            array.clear();
085            array.add( "cn" );
086            array.add( "sambaLMPassword" );
087            array.add( "sambaNTPassword" );
088            array.add( "sambaPwdLastSet" );
089            array.add( "sambaLogonTime" );
090            array.add( "sambaLogoffTime" );
091            array.add( "sambaKickoffTime" );
092            array.add( "sambaPwdCanChange" );
093            array.add( "sambaPwdMustChange" );
094            array.add( "sambaAcctFlags" );
095            array.add( "displayName" );
096            array.add( "sambaHomePath" );
097            array.add( "sambaHomeDrive" );
098            array.add( "sambaLogonScript" );
099            array.add( "sambaProfilePath" );
100            array.add( "description" );
101            array.add( "sambaUserWorkstations" );
102            array.add( "sambaPrimaryGroupSID" );
103            array.add( "sambaDomainName" );
104            array.add( "sambaMungedDial" );
105            array.add( "sambaBadPasswordCount" );
106            array.add( "sambaBadPasswordTime" );
107            array.add( "sambaPasswordHistory" );
108            array.add( "sambaLogonHours" );
109            objectClass.setMayListIds( array.toArray( EMPTY ) );
110    
111            // set names
112            array.clear();
113            array.add( "sambaSamAccount" );
114            objectClass.setNames( array.toArray( EMPTY ) );
115            cb.schemaObjectProduced( this, "1.3.6.1.4.1.7165.2.2.6", objectClass );
116            // --------------------------------------------------------------------
117            // ObjectClass 1.3.6.1.4.1.7165.2.2.4 
118            // --------------------------------------------------------------------
119    
120            objectClass = newObjectClass( "1.3.6.1.4.1.7165.2.2.4", registries );
121            objectClass.setObsolete( false );
122    
123            objectClass.setDescription( "Samba Group Mapping" );
124            // set the objectclass type
125            objectClass.setType( ObjectClassTypeEnum.AUXILIARY );
126    
127            // set superior objectClasses
128            array.clear();
129            array.add( "top" );
130            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
131    
132            // set must list
133            array.clear();
134            array.add( "gidNumber" );
135            array.add( "sambaSID" );
136            array.add( "sambaGroupType" );
137            objectClass.setMustListIds( array.toArray( EMPTY ) );
138    
139            // set may list
140            array.clear();
141            array.add( "displayName" );
142            array.add( "description" );
143            array.add( "sambaSIDList" );
144            objectClass.setMayListIds( array.toArray( EMPTY ) );
145    
146            // set names
147            array.clear();
148            array.add( "sambaGroupMapping" );
149            objectClass.setNames( array.toArray( EMPTY ) );
150            cb.schemaObjectProduced( this, "1.3.6.1.4.1.7165.2.2.4", objectClass );
151            // --------------------------------------------------------------------
152            // ObjectClass 1.3.6.1.4.1.7165.2.2.14 
153            // --------------------------------------------------------------------
154    
155            objectClass = newObjectClass( "1.3.6.1.4.1.7165.2.2.14", registries );
156            objectClass.setObsolete( false );
157    
158            objectClass.setDescription( "Samba Trust Password" );
159            // set the objectclass type
160            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
161    
162            // set superior objectClasses
163            array.clear();
164            array.add( "top" );
165            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
166    
167            // set must list
168            array.clear();
169            array.add( "sambaDomainName" );
170            array.add( "sambaNTPassword" );
171            array.add( "sambaTrustFlags" );
172            objectClass.setMustListIds( array.toArray( EMPTY ) );
173    
174            // set may list
175            array.clear();
176            array.add( "sambaSID" );
177            array.add( "sambaPwdLastSet" );
178            objectClass.setMayListIds( array.toArray( EMPTY ) );
179    
180            // set names
181            array.clear();
182            array.add( "sambaTrustPassword" );
183            objectClass.setNames( array.toArray( EMPTY ) );
184            cb.schemaObjectProduced( this, "1.3.6.1.4.1.7165.2.2.14", objectClass );
185            // --------------------------------------------------------------------
186            // ObjectClass 1.3.6.1.4.1.7165.2.2.5 
187            // --------------------------------------------------------------------
188    
189            objectClass = newObjectClass( "1.3.6.1.4.1.7165.2.2.5", registries );
190            objectClass.setObsolete( false );
191    
192            objectClass.setDescription( "Samba Domain Information" );
193            // set the objectclass type
194            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
195    
196            // set superior objectClasses
197            array.clear();
198            array.add( "top" );
199            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
200    
201            // set must list
202            array.clear();
203            array.add( "sambaDomainName" );
204            array.add( "sambaSID" );
205            objectClass.setMustListIds( array.toArray( EMPTY ) );
206    
207            // set may list
208            array.clear();
209            array.add( "sambaNextRid" );
210            array.add( "sambaNextGroupRid" );
211            array.add( "sambaNextUserRid" );
212            array.add( "sambaAlgorithmicRidBase" );
213            objectClass.setMayListIds( array.toArray( EMPTY ) );
214    
215            // set names
216            array.clear();
217            array.add( "sambaDomain" );
218            objectClass.setNames( array.toArray( EMPTY ) );
219            cb.schemaObjectProduced( this, "1.3.6.1.4.1.7165.2.2.5", objectClass );
220            // --------------------------------------------------------------------
221            // ObjectClass 1.3.6.1.4.1.7165.2.2.7 
222            // --------------------------------------------------------------------
223    
224            objectClass = newObjectClass( "1.3.6.1.4.1.7165.2.2.7", registries );
225            objectClass.setObsolete( false );
226    
227            objectClass.setDescription( "Pool for allocating UNIX uids/gids" );
228            // set the objectclass type
229            objectClass.setType( ObjectClassTypeEnum.AUXILIARY );
230    
231            // set superior objectClasses
232            array.clear();
233            array.add( "top" );
234            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
235    
236            // set must list
237            array.clear();
238            array.add( "uidNumber" );
239            array.add( "gidNumber" );
240            objectClass.setMustListIds( array.toArray( EMPTY ) );
241    
242            // set may list
243            array.clear();
244            objectClass.setMayListIds( array.toArray( EMPTY ) );
245    
246            // set names
247            array.clear();
248            array.add( "sambaUnixIdPool" );
249            objectClass.setNames( array.toArray( EMPTY ) );
250            cb.schemaObjectProduced( this, "1.3.6.1.4.1.7165.2.2.7", objectClass );
251            // --------------------------------------------------------------------
252            // ObjectClass 1.3.6.1.4.1.7165.2.2.8 
253            // --------------------------------------------------------------------
254    
255            objectClass = newObjectClass( "1.3.6.1.4.1.7165.2.2.8", registries );
256            objectClass.setObsolete( false );
257    
258            objectClass.setDescription( "Mapping from a SID to an ID" );
259            // set the objectclass type
260            objectClass.setType( ObjectClassTypeEnum.AUXILIARY );
261    
262            // set superior objectClasses
263            array.clear();
264            array.add( "top" );
265            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
266    
267            // set must list
268            array.clear();
269            array.add( "sambaSID" );
270            objectClass.setMustListIds( array.toArray( EMPTY ) );
271    
272            // set may list
273            array.clear();
274            array.add( "uidNumber" );
275            array.add( "gidNumber" );
276            objectClass.setMayListIds( array.toArray( EMPTY ) );
277    
278            // set names
279            array.clear();
280            array.add( "sambaIdmapEntry" );
281            objectClass.setNames( array.toArray( EMPTY ) );
282            cb.schemaObjectProduced( this, "1.3.6.1.4.1.7165.2.2.8", objectClass );
283            // --------------------------------------------------------------------
284            // ObjectClass 1.3.6.1.4.1.7165.2.2.9 
285            // --------------------------------------------------------------------
286    
287            objectClass = newObjectClass( "1.3.6.1.4.1.7165.2.2.9", registries );
288            objectClass.setObsolete( false );
289    
290            objectClass.setDescription( "Structural Class for a SID" );
291            // set the objectclass type
292            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
293    
294            // set superior objectClasses
295            array.clear();
296            array.add( "top" );
297            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
298    
299            // set must list
300            array.clear();
301            array.add( "sambaSID" );
302            objectClass.setMustListIds( array.toArray( EMPTY ) );
303    
304            // set may list
305            array.clear();
306            objectClass.setMayListIds( array.toArray( EMPTY ) );
307    
308            // set names
309            array.clear();
310            array.add( "sambaSidEntry" );
311            objectClass.setNames( array.toArray( EMPTY ) );
312            cb.schemaObjectProduced( this, "1.3.6.1.4.1.7165.2.2.9", objectClass );
313            // --------------------------------------------------------------------
314            // ObjectClass 1.3.6.1.4.1.7165.1.2.2.10 
315            // --------------------------------------------------------------------
316    
317            objectClass = newObjectClass( "1.3.6.1.4.1.7165.1.2.2.10", registries );
318            objectClass.setObsolete( false );
319    
320            objectClass.setDescription( "Samba Configuration Section" );
321            // set the objectclass type
322            objectClass.setType( ObjectClassTypeEnum.AUXILIARY );
323    
324            // set superior objectClasses
325            array.clear();
326            array.add( "top" );
327            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
328    
329            // set must list
330            array.clear();
331            objectClass.setMustListIds( array.toArray( EMPTY ) );
332    
333            // set may list
334            array.clear();
335            array.add( "description" );
336            objectClass.setMayListIds( array.toArray( EMPTY ) );
337    
338            // set names
339            array.clear();
340            array.add( "sambaConfig" );
341            objectClass.setNames( array.toArray( EMPTY ) );
342            cb.schemaObjectProduced( this, "1.3.6.1.4.1.7165.1.2.2.10", objectClass );
343            // --------------------------------------------------------------------
344            // ObjectClass 1.3.6.1.4.1.7165.2.2.11 
345            // --------------------------------------------------------------------
346    
347            objectClass = newObjectClass( "1.3.6.1.4.1.7165.2.2.11", registries );
348            objectClass.setObsolete( false );
349    
350            objectClass.setDescription( "Samba Share Section" );
351            // set the objectclass type
352            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
353    
354            // set superior objectClasses
355            array.clear();
356            array.add( "top" );
357            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
358    
359            // set must list
360            array.clear();
361            array.add( "sambaShareName" );
362            objectClass.setMustListIds( array.toArray( EMPTY ) );
363    
364            // set may list
365            array.clear();
366            array.add( "description" );
367            objectClass.setMayListIds( array.toArray( EMPTY ) );
368    
369            // set names
370            array.clear();
371            array.add( "sambaShare" );
372            objectClass.setNames( array.toArray( EMPTY ) );
373            cb.schemaObjectProduced( this, "1.3.6.1.4.1.7165.2.2.11", objectClass );
374            // --------------------------------------------------------------------
375            // ObjectClass 1.3.6.1.4.1.7165.2.2.12 
376            // --------------------------------------------------------------------
377    
378            objectClass = newObjectClass( "1.3.6.1.4.1.7165.2.2.12", registries );
379            objectClass.setObsolete( false );
380    
381            objectClass.setDescription( "Samba Configuration Option" );
382            // set the objectclass type
383            objectClass.setType( ObjectClassTypeEnum.STRUCTURAL );
384    
385            // set superior objectClasses
386            array.clear();
387            array.add( "top" );
388            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
389    
390            // set must list
391            array.clear();
392            array.add( "sambaOptionName" );
393            objectClass.setMustListIds( array.toArray( EMPTY ) );
394    
395            // set may list
396            array.clear();
397            array.add( "sambaBoolOption" );
398            array.add( "sambaIntegerOption" );
399            array.add( "sambaStringOption" );
400            array.add( "sambaStringListoption" );
401            array.add( "description" );
402            objectClass.setMayListIds( array.toArray( EMPTY ) );
403    
404            // set names
405            array.clear();
406            array.add( "sambaConfigOption" );
407            objectClass.setNames( array.toArray( EMPTY ) );
408            cb.schemaObjectProduced( this, "1.3.6.1.4.1.7165.2.2.12", objectClass );
409            // --------------------------------------------------------------------
410            // ObjectClass 1.3.6.1.4.1.7165.2.2.13 
411            // --------------------------------------------------------------------
412    
413            objectClass = newObjectClass( "1.3.6.1.4.1.7165.2.2.13", registries );
414            objectClass.setObsolete( false );
415    
416            objectClass.setDescription( "Samba Privilege" );
417            // set the objectclass type
418            objectClass.setType( ObjectClassTypeEnum.AUXILIARY );
419    
420            // set superior objectClasses
421            array.clear();
422            array.add( "top" );
423            objectClass.setSuperClassIds( array.toArray( EMPTY ) );
424    
425            // set must list
426            array.clear();
427            array.add( "sambaSID" );
428            objectClass.setMustListIds( array.toArray( EMPTY ) );
429    
430            // set may list
431            array.clear();
432            array.add( "sambaPrivilegeList" );
433            objectClass.setMayListIds( array.toArray( EMPTY ) );
434    
435            // set names
436            array.clear();
437            array.add( "sambaPrivilege" );
438            objectClass.setNames( array.toArray( EMPTY ) );
439            cb.schemaObjectProduced( this, "1.3.6.1.4.1.7165.2.2.13", objectClass );
440        }
441    }