View Javadoc

1   /*
2    *   Copyright 2004 The Apache Software Foundation
3    *
4    *   Licensed under the Apache License, Version 2.0 (the "License");
5    *   you may not use this file except in compliance with the License.
6    *   You may obtain a copy of the License at
7    *
8    *       http://www.apache.org/licenses/LICENSE-2.0
9    *
10   *   Unless required by applicable law or agreed to in writing, software
11   *   distributed under the License is distributed on an "AS IS" BASIS,
12   *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   *   See the License for the specific language governing permissions and
14   *   limitations under the License.
15   *
16   */
17  package org.apache.ldap.server.schema.bootstrap;
18  
19  
20  import javax.naming.NamingException;
21  
22  import org.apache.ldap.server.schema.SyntaxCheckerRegistry;
23  
24  
25  /***
26   * A simple Syntax factory for the core LDAP schema in Section 4.3.2 of
27   * <a href="http://www.faqs.org/rfcs/rfc2252.html">RFC2252</a>.
28   * The following table reproduced from RFC2252 shows the syntaxes included
29   * within this SyntaxFactory:
30   * <pre>
31   * Index   Value being represented   H-R     OBJECT IDENTIFIER
32   * =====================================================================
33   * 0 ACI Item                         N  1.3.6.1.4.1.1466.115.121.1.1
34   * 1 Access Point                     Y  1.3.6.1.4.1.1466.115.121.1.2
35   * 2 Attribute Type Description       Y  1.3.6.1.4.1.1466.115.121.1.3
36   * 3 Audio                            N  1.3.6.1.4.1.1466.115.121.1.4
37   * 4 Binary                           N  1.3.6.1.4.1.1466.115.121.1.5
38   * 5 Bit String                       Y  1.3.6.1.4.1.1466.115.121.1.6
39   * 6 Boolean                          Y  1.3.6.1.4.1.1466.115.121.1.7
40   * 7 Certificate                      N  1.3.6.1.4.1.1466.115.121.1.8
41   * 8 Certificate List                 N  1.3.6.1.4.1.1466.115.121.1.9
42   * 9 Certificate Pair                 N  1.3.6.1.4.1.1466.115.121.1.10
43   * 10 Country String                  Y  1.3.6.1.4.1.1466.115.121.1.11
44   * 11 DN                              Y  1.3.6.1.4.1.1466.115.121.1.12
45   * 12 Data Quality Syntax             Y  1.3.6.1.4.1.1466.115.121.1.13
46   * 13 Delivery Method                 Y  1.3.6.1.4.1.1466.115.121.1.14
47   * 14 Directory String                Y  1.3.6.1.4.1.1466.115.121.1.15
48   * 15 DIT Content Rule Description    Y  1.3.6.1.4.1.1466.115.121.1.16
49   * 16 DIT Structure Rule Description  Y  1.3.6.1.4.1.1466.115.121.1.17
50   * 17 DL Submit Permission            Y  1.3.6.1.4.1.1466.115.121.1.18
51   * 18 DSA Quality Syntax              Y  1.3.6.1.4.1.1466.115.121.1.19
52   * 19 DSE Type                        Y  1.3.6.1.4.1.1466.115.121.1.20
53   * 20 Enhanced Guide                  Y  1.3.6.1.4.1.1466.115.121.1.21
54   * 21 Facsimile Telephone Number      Y  1.3.6.1.4.1.1466.115.121.1.22
55   * 22 Fax                             N  1.3.6.1.4.1.1466.115.121.1.23
56   * 23 Generalized Time                Y  1.3.6.1.4.1.1466.115.121.1.24
57   * 24 Guide                           Y  1.3.6.1.4.1.1466.115.121.1.25
58   * 25 IA5 String                      Y  1.3.6.1.4.1.1466.115.121.1.26
59   * 26 INTEGER                         Y  1.3.6.1.4.1.1466.115.121.1.27
60   * 27 JPEG                            N  1.3.6.1.4.1.1466.115.121.1.28
61   * 28 Master And Shadow Access Points Y  1.3.6.1.4.1.1466.115.121.1.29
62   * 29 Matching Rule Description       Y  1.3.6.1.4.1.1466.115.121.1.30
63   * 30 Matching Rule Use Description   Y  1.3.6.1.4.1.1466.115.121.1.31
64   * 31 Mail Preference                 Y  1.3.6.1.4.1.1466.115.121.1.32
65   * 32 MHS OR Address                  Y  1.3.6.1.4.1.1466.115.121.1.33
66   * 33 Name And Optional UID           Y  1.3.6.1.4.1.1466.115.121.1.34
67   * 34 Name Form Description           Y  1.3.6.1.4.1.1466.115.121.1.35
68   * 35 Numeric String                  Y  1.3.6.1.4.1.1466.115.121.1.36
69   * 36 Object Class Description        Y  1.3.6.1.4.1.1466.115.121.1.37
70   * 37 OID                             Y  1.3.6.1.4.1.1466.115.121.1.38
71   * 38 Other Mailbox                   Y  1.3.6.1.4.1.1466.115.121.1.39
72   * 39 Octet String                    Y  1.3.6.1.4.1.1466.115.121.1.40
73   * 40 Postal Address                  Y  1.3.6.1.4.1.1466.115.121.1.41
74   * 41 Protocol Information            Y  1.3.6.1.4.1.1466.115.121.1.42
75   * 42 Presentation Address            Y  1.3.6.1.4.1.1466.115.121.1.43
76   * 43 Printable String                Y  1.3.6.1.4.1.1466.115.121.1.44
77   * 44 Subtree Specification           Y  1.3.6.1.4.1.1466.115.121.1.45
78   * 45 Supplier Information            Y  1.3.6.1.4.1.1466.115.121.1.46
79   * 46 Supplier Or Consumer            Y  1.3.6.1.4.1.1466.115.121.1.47
80   * 47 Supplier And Consumer           Y  1.3.6.1.4.1.1466.115.121.1.48
81   * 48 Supported Algorithm             N  1.3.6.1.4.1.1466.115.121.1.49
82   * 49 Telephone Number                Y  1.3.6.1.4.1.1466.115.121.1.50
83   * 50 Teletex Terminal Identifier     Y  1.3.6.1.4.1.1466.115.121.1.51
84   * 51 Telex Number                    Y  1.3.6.1.4.1.1466.115.121.1.52
85   * 52 UTC Time                        Y  1.3.6.1.4.1.1466.115.121.1.53
86   * 53 LDAP Syntax Description         Y  1.3.6.1.4.1.1466.115.121.1.54
87   * 54 Modify Rights                   Y  1.3.6.1.4.1.1466.115.121.1.55
88   * 55 LDAP Schema Definition          Y  1.3.6.1.4.1.1466.115.121.1.56
89   * 56 LDAP Schema Description         Y  1.3.6.1.4.1.1466.115.121.1.57
90   * 57 Substring Assertion             Y  1.3.6.1.4.1.1466.115.121.1.58
91   * </pre>
92   *
93   *
94   * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
95   * @version $Rev: 289953 $
96   */
97  public class SystemSyntaxProducer extends AbstractBootstrapProducer
98  {
99      public SystemSyntaxProducer()
100     {
101         super( ProducerTypeEnum.SYNTAX_PRODUCER );
102     }
103 
104 
105     // ------------------------------------------------------------------------
106     // BootstrapProducer Methods
107     // ------------------------------------------------------------------------
108 
109 
110     public void produce( BootstrapRegistries registries, ProducerCallback cb )
111         throws NamingException
112     {
113         BootstrapSyntax syntax;
114         SyntaxCheckerRegistry syntaxCheckerRegistry = registries.getSyntaxCheckerRegistry();
115 
116         /*
117          * From RFC 2252 Section 4.3.2. on Syntax Object Identifiers
118          */
119 
120         /*
121          * Value being represented        H-R OBJECT IDENTIFIER
122          * ==================================================================
123          * 0 ACI Item                        N  1.3.6.1.4.1.1466.115.121.1.1
124          * 1 Access Point                    Y  1.3.6.1.4.1.1466.115.121.1.2
125          * 2 Attribute Type Description      Y  1.3.6.1.4.1.1466.115.121.1.3
126          * 3 Audio                           N  1.3.6.1.4.1.1466.115.121.1.4
127          * 4 Binary                          N  1.3.6.1.4.1.1466.115.121.1.5
128          * 5 Bit String                      Y  1.3.6.1.4.1.1466.115.121.1.6
129          * 6 Boolean                         Y  1.3.6.1.4.1.1466.115.121.1.7
130          * 7 Certificate                     N  1.3.6.1.4.1.1466.115.121.1.8
131          * 8 Certificate List                N  1.3.6.1.4.1.1466.115.121.1.9
132          * 9 Certificate Pair                N  1.3.6.1.4.1.1466.115.121.1.10
133          */
134         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.1", syntaxCheckerRegistry );
135         syntax.setNames( new String[] { "ACI Item" } );
136         // This is in direct conflict with RFC 2252 but for us ACI Item is human readable
137         syntax.setHumanReadible( true );
138         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
139 
140         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.2", syntaxCheckerRegistry );
141         syntax.setNames( new String[] { "Access Point" } );
142         syntax.setHumanReadible( true );
143         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
144 
145         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.3", syntaxCheckerRegistry );
146         syntax.setNames( new String[] { "Attribute Type Description" } );
147         syntax.setHumanReadible( true );
148         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
149 
150         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.4", syntaxCheckerRegistry );
151         syntax.setNames( new String[] { "Audio" } );
152         syntax.setHumanReadible( false );
153         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
154 
155         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.5", syntaxCheckerRegistry );
156         syntax.setNames( new String[] { "Binary" } );
157         syntax.setHumanReadible( false );
158         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
159 
160         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.6", syntaxCheckerRegistry );
161         syntax.setNames( new String[] { "Bit String" } );
162         syntax.setHumanReadible( true );
163         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
164 
165         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.7", syntaxCheckerRegistry );
166         syntax.setNames( new String[] { "Boolean" } );
167         syntax.setHumanReadible( true );
168         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
169 
170         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.8", syntaxCheckerRegistry );
171         syntax.setNames( new String[] { "Certificate" } );
172         syntax.setHumanReadible( false );
173         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
174 
175         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.9", syntaxCheckerRegistry );
176         syntax.setNames( new String[] { "Certificate List" } );
177         syntax.setHumanReadible( false );
178         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
179 
180         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.10", syntaxCheckerRegistry );
181         syntax.setNames( new String[] { "Certificate Pair" } );
182         syntax.setHumanReadible( false );
183         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
184 
185         /*
186          * Value being represented        H-R OBJECT IDENTIFIER
187          * ===================================================================
188          * 10 Country String                  Y  1.3.6.1.4.1.1466.115.121.1.11
189          * 11 DN                              Y  1.3.6.1.4.1.1466.115.121.1.12
190          * 12 Data Quality Syntax             Y  1.3.6.1.4.1.1466.115.121.1.13
191          * 13 Delivery Method                 Y  1.3.6.1.4.1.1466.115.121.1.14
192          * 14 Directory String                Y  1.3.6.1.4.1.1466.115.121.1.15
193          * 15 DIT Content Rule Description    Y  1.3.6.1.4.1.1466.115.121.1.16
194          * 16 DIT Structure Rule Description  Y  1.3.6.1.4.1.1466.115.121.1.17
195          * 17 DL Submit Permission            Y  1.3.6.1.4.1.1466.115.121.1.18
196          * 18 DSA Quality Syntax              Y  1.3.6.1.4.1.1466.115.121.1.19
197          * 19 DSE Type                        Y  1.3.6.1.4.1.1466.115.121.1.20
198          */
199         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.11", syntaxCheckerRegistry );
200         syntax.setNames( new String[] { "Country String" } );
201         syntax.setHumanReadible( true );
202         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
203 
204         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.12", syntaxCheckerRegistry );
205         syntax.setNames( new String[] { "DN" } );
206         syntax.setHumanReadible( true );
207         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
208 
209         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.13", syntaxCheckerRegistry );
210         syntax.setNames( new String[] { "Data Quality Syntax" } );
211         syntax.setHumanReadible( true );
212         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
213 
214         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.14", syntaxCheckerRegistry );
215         syntax.setNames( new String[] { "Delivery Method" } );
216         syntax.setHumanReadible( true );
217         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
218 
219         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.15", syntaxCheckerRegistry );
220         syntax.setNames( new String[] { "Directory String" } );
221         syntax.setHumanReadible( true );
222         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
223 
224         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.16", syntaxCheckerRegistry );
225         syntax.setNames( new String[] { "DIT Content Rule Description" } );
226         syntax.setHumanReadible( true );
227         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
228 
229         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.17", syntaxCheckerRegistry );
230         syntax.setNames( new String[] { "DIT Structure Rule Description" } );
231         syntax.setHumanReadible( true );
232         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
233 
234         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.18", syntaxCheckerRegistry );
235         syntax.setNames( new String[] { "DL Submit Permission" } );
236         syntax.setHumanReadible( true );
237         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
238 
239         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.19", syntaxCheckerRegistry );
240         syntax.setNames( new String[] { "DSA Quality Syntax" } );
241         syntax.setHumanReadible( true );
242         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
243 
244         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.20", syntaxCheckerRegistry );
245         syntax.setNames( new String[] { "DSE Type" } );
246         syntax.setHumanReadible( true );
247         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
248 
249         /*
250          * Value being represented        H-R OBJECT IDENTIFIER
251          * ===================================================================
252          * 20 Enhanced Guide                  Y  1.3.6.1.4.1.1466.115.121.1.21
253          * 21 Facsimile Telephone Number      Y  1.3.6.1.4.1.1466.115.121.1.22
254          * 22 Fax                             N  1.3.6.1.4.1.1466.115.121.1.23
255          * 23 Generalized Time                Y  1.3.6.1.4.1.1466.115.121.1.24
256          * 24 Guide                           Y  1.3.6.1.4.1.1466.115.121.1.25
257          * 25 IA5 String                      Y  1.3.6.1.4.1.1466.115.121.1.26
258          * 26 INTEGER                         Y  1.3.6.1.4.1.1466.115.121.1.27
259          * 27 JPEG                            N  1.3.6.1.4.1.1466.115.121.1.28
260          * 28 Master And Shadow Access Points Y  1.3.6.1.4.1.1466.115.121.1.29
261          * 29 Matching Rule Description       Y  1.3.6.1.4.1.1466.115.121.1.30
262          */
263         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.21", syntaxCheckerRegistry );
264         syntax.setNames( new String[] { "Enhanced Guide" } );
265         syntax.setHumanReadible( true );
266         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
267 
268         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.22", syntaxCheckerRegistry );
269         syntax.setNames( new String[] { "Facsimile Telephone Number" } );
270         syntax.setHumanReadible( true );
271         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
272 
273         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.23", syntaxCheckerRegistry );
274         syntax.setNames( new String[] { "Fax" } );
275         syntax.setHumanReadible( false );
276         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
277 
278         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.24", syntaxCheckerRegistry );
279         syntax.setNames( new String[] { "Generalized Time" } );
280         syntax.setHumanReadible( true );
281         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
282 
283         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.25", syntaxCheckerRegistry );
284         syntax.setNames( new String[] { "Guide" } );
285         syntax.setHumanReadible( true );
286         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
287 
288         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.26", syntaxCheckerRegistry );
289         syntax.setNames( new String[] { "IA5 String" } );
290         syntax.setHumanReadible( true );
291         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
292 
293         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.27", syntaxCheckerRegistry );
294         syntax.setNames( new String[] { "INTEGER" } );
295         syntax.setHumanReadible( true );
296         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
297 
298         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.28", syntaxCheckerRegistry );
299         syntax.setNames( new String[] { "JPEG" } );
300         syntax.setHumanReadible( false );
301         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
302 
303         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.29", syntaxCheckerRegistry );
304         syntax.setNames( new String[] { "Master And Shadow Access Points" } );
305         syntax.setHumanReadible( true );
306         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
307 
308         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.30", syntaxCheckerRegistry );
309         syntax.setNames( new String[] { "Matching Rule Description" } );
310         syntax.setHumanReadible( true );
311         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
312 
313         /*
314          * Value being represented        H-R OBJECT IDENTIFIER
315          * ==================================================================
316          * 30 Matching Rule Use Description   Y  1.3.6.1.4.1.1466.115.121.1.31
317          * 31 Mail Preference                 Y  1.3.6.1.4.1.1466.115.121.1.32
318          * 32 MHS OR Address                  Y  1.3.6.1.4.1.1466.115.121.1.33
319          * 33 Name And Optional UID           Y  1.3.6.1.4.1.1466.115.121.1.34
320          * 34 Name Form Description           Y  1.3.6.1.4.1.1466.115.121.1.35
321          * 35 Numeric String                  Y  1.3.6.1.4.1.1466.115.121.1.36
322          * 36 Object Class Description        Y  1.3.6.1.4.1.1466.115.121.1.37
323          * 37 OID                             Y  1.3.6.1.4.1.1466.115.121.1.38
324          * 38 Other Mailbox                   Y  1.3.6.1.4.1.1466.115.121.1.39
325          * 39 Octet String                    Y  1.3.6.1.4.1.1466.115.121.1.40
326          */
327         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.31", syntaxCheckerRegistry );
328         syntax.setNames( new String[] { "Matching Rule Use Description" } );
329         syntax.setHumanReadible( true );
330         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
331 
332         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.32", syntaxCheckerRegistry );
333         syntax.setNames( new String[] { "Mail Preference" } );
334         syntax.setHumanReadible( true );
335         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
336 
337         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.33", syntaxCheckerRegistry );
338         syntax.setNames( new String[] { "MHS OR Address" } );
339         syntax.setHumanReadible( true );
340         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
341 
342         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.34", syntaxCheckerRegistry );
343         syntax.setNames( new String[] { "Name And Optional UID" } );
344         syntax.setHumanReadible( true );
345         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
346 
347         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.35", syntaxCheckerRegistry );
348         syntax.setNames( new String[] { "Name Form Description" } );
349         syntax.setHumanReadible( true );
350         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
351 
352         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.36", syntaxCheckerRegistry );
353         syntax.setNames( new String[] { "Numeric String" } );
354         syntax.setHumanReadible( true );
355         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
356 
357         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.37", syntaxCheckerRegistry );
358         syntax.setNames( new String[] { "Object Class Description" } );
359         syntax.setHumanReadible( true );
360         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
361 
362         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.38", syntaxCheckerRegistry );
363         syntax.setNames( new String[] { "OID" } );
364         syntax.setHumanReadible( true );
365         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
366 
367         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.39", syntaxCheckerRegistry );
368         syntax.setNames( new String[] { "Other Mailbox" } );
369         syntax.setHumanReadible( true );
370         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
371 
372         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.40", syntaxCheckerRegistry );
373         syntax.setNames( new String[] { "Octet String" } );
374         syntax.setHumanReadible( true );
375         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
376 
377         /*
378          * Value being represented        H-R OBJECT IDENTIFIER
379          * ===================================================================
380          * 40 Postal Address                  Y  1.3.6.1.4.1.1466.115.121.1.41
381          * 41 Protocol Information            Y  1.3.6.1.4.1.1466.115.121.1.42
382          * 42 Presentation Address            Y  1.3.6.1.4.1.1466.115.121.1.43
383          * 43 Printable String                Y  1.3.6.1.4.1.1466.115.121.1.44
384          * 44 Subtree Specification           Y  1.3.6.1.4.1.1466.115.121.1.45
385          * 45 Supplier Information            Y  1.3.6.1.4.1.1466.115.121.1.46
386          * 46 Supplier Or Consumer            Y  1.3.6.1.4.1.1466.115.121.1.47
387          * 47 Supplier And Consumer           Y  1.3.6.1.4.1.1466.115.121.1.48
388          * 48 Supported Algorithm             N  1.3.6.1.4.1.1466.115.121.1.49
389          * 49 Telephone Number                Y  1.3.6.1.4.1.1466.115.121.1.50
390          */
391         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.41", syntaxCheckerRegistry );
392         syntax.setNames( new String[] { "Postal Address" } );
393         syntax.setHumanReadible( true );
394         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
395 
396         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.42", syntaxCheckerRegistry );
397         syntax.setNames( new String[] { "Protocol Information" } );
398         syntax.setHumanReadible( true );
399         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
400 
401         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.43", syntaxCheckerRegistry );
402         syntax.setNames( new String[] { "Presentation Address" } );
403         syntax.setHumanReadible( true );
404         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
405 
406         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.44", syntaxCheckerRegistry );
407         syntax.setNames( new String[] { "Printable String" } );
408         syntax.setHumanReadible( true );
409         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
410 
411         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.45", syntaxCheckerRegistry );
412         syntax.setNames( new String[] { "Subtree Specification" } );
413         syntax.setHumanReadible( true );
414         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
415 
416         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.46", syntaxCheckerRegistry );
417         syntax.setNames( new String[] { "Supplier Information" } );
418         syntax.setHumanReadible( true );
419         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
420 
421         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.47", syntaxCheckerRegistry );
422         syntax.setNames( new String[] { "Supplier Or Consumer" } );
423         syntax.setHumanReadible( true );
424         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
425 
426         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.48", syntaxCheckerRegistry );
427         syntax.setNames( new String[] { "Supplier And Consumer" } );
428         syntax.setHumanReadible( true );
429         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
430 
431         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.49", syntaxCheckerRegistry );
432         syntax.setNames( new String[] { "Supported Algorithm" } );
433         syntax.setHumanReadible( false );
434         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
435 
436         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.50", syntaxCheckerRegistry );
437         syntax.setNames( new String[] { "Telephone Number" } );
438         syntax.setHumanReadible( true );
439         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
440 
441         /*
442          * Value being represented        H-R OBJECT IDENTIFIER
443          * ==================================================================
444          * 50 Teletex Terminal Identifier     Y  1.3.6.1.4.1.1466.115.121.1.51
445          * 51 Telex Number                    Y  1.3.6.1.4.1.1466.115.121.1.52
446          * 52 UTC Time                        Y  1.3.6.1.4.1.1466.115.121.1.53
447          * 53 LDAP Syntax Description         Y  1.3.6.1.4.1.1466.115.121.1.54
448          * 54 Modify Rights                   Y  1.3.6.1.4.1.1466.115.121.1.55
449          * 55 LDAP BootstrapSchema Definition          Y  1.3.6.1.4.1.1466.115.121.1.56
450          * 56 LDAP BootstrapSchema Description         Y  1.3.6.1.4.1.1466.115.121.1.57
451          * 57 Substring Assertion             Y  1.3.6.1.4.1.1466.115.121.1.58
452          */
453         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.51", syntaxCheckerRegistry );
454         syntax.setNames( new String[] { "Teletex Terminal Identifier" } );
455         syntax.setHumanReadible( true );
456         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
457 
458         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.52", syntaxCheckerRegistry );
459         syntax.setNames( new String[] { "Telex Number" } );
460         syntax.setHumanReadible( true );
461         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
462 
463         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.53", syntaxCheckerRegistry );
464         syntax.setNames( new String[] { "UTC Time" } );
465         syntax.setHumanReadible( true );
466         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
467 
468         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.54", syntaxCheckerRegistry );
469         syntax.setNames( new String[] { "LDAP Syntax Description" } );
470         syntax.setHumanReadible( true );
471         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
472 
473         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.55", syntaxCheckerRegistry );
474         syntax.setNames( new String[] { "Modify Rights" } );
475         syntax.setHumanReadible( true );
476         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
477 
478         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.56", syntaxCheckerRegistry );
479         syntax.setNames( new String[] { "LDAP BootstrapSchema Definition" } );
480         syntax.setHumanReadible( true );
481         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
482 
483         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.57", syntaxCheckerRegistry );
484         syntax.setNames( new String[] { "LDAP BootstrapSchema Description" } );
485         syntax.setHumanReadible( true );
486         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
487 
488         syntax = new BootstrapSyntax( "1.3.6.1.4.1.1466.115.121.1.58", syntaxCheckerRegistry );
489         syntax.setNames( new String[] { "Substring Assertion" } );
490         syntax.setHumanReadible( true );
491         cb.schemaObjectProduced( this, syntax.getOid(), syntax );
492     }
493 }