1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.directory.api.ldap.model.schema.parsers;
21
22
23 import java.text.ParseException;
24
25 import org.apache.directory.api.i18n.I18n;
26 import org.apache.directory.api.ldap.model.schema.LdapSyntax;
27 import org.slf4j.Logger;
28 import org.slf4j.LoggerFactory;
29
30 import antlr.RecognitionException;
31 import antlr.TokenStreamException;
32
33
34
35
36
37
38
39 public class LdapSyntaxDescriptionSchemaParser extends AbstractSchemaParser
40 {
41
42 protected static final Logger LOG = LoggerFactory.getLogger( LdapSyntaxDescriptionSchemaParser.class );
43
44
45
46
47
48 public LdapSyntaxDescriptionSchemaParser()
49 {
50 }
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 public synchronized LdapSyntax parseLdapSyntaxDescription( String ldapSyntaxDescription )
68 throws ParseException
69 {
70 LOG.debug( "Parsing a LdapSyntax : {}", ldapSyntaxDescription );
71
72 if ( ldapSyntaxDescription == null )
73 {
74 LOG.error( I18n.err( I18n.ERR_04239 ) );
75 throw new ParseException( "Null", 0 );
76 }
77
78 reset( ldapSyntaxDescription );
79
80 try
81 {
82 LdapSyntax ldapSyntax = parser.ldapSyntaxDescription();
83 ldapSyntax.setSpecification( ldapSyntaxDescription );
84
85
86 updateSchemaName( ldapSyntax );
87
88 return ldapSyntax;
89 }
90 catch ( RecognitionException re )
91 {
92 String msg = I18n.err( I18n.ERR_04240, ldapSyntaxDescription, re.getMessage(), re.getColumn() );
93 LOG.error( msg );
94 throw new ParseException( msg, re.getColumn() );
95 }
96 catch ( TokenStreamException tse )
97 {
98 String msg = I18n.err( I18n.ERR_04241, ldapSyntaxDescription, tse.getMessage() );
99 LOG.error( msg );
100 throw new ParseException( msg, 0 );
101 }
102 }
103
104
105
106
107
108
109
110
111
112 public LdapSyntax parse( String schemaDescription ) throws ParseException
113 {
114 return parseLdapSyntaxDescription( schemaDescription );
115 }
116 }