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 }