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.syntaxCheckers;
21
22
23 import org.apache.directory.api.i18n.I18n;
24 import org.apache.directory.api.ldap.model.constants.SchemaConstants;
25 import org.apache.directory.api.ldap.model.schema.SyntaxChecker;
26 import org.apache.directory.api.util.Strings;
27
28
29
30
31
32
33
34 @SuppressWarnings("serial")
35 public final class SyntaxCheckerSyntaxChecker extends SyntaxChecker
36 {
37
38
39
40 public static final SyntaxCheckerSyntaxChecker INSTANCE =
41 new SyntaxCheckerSyntaxChecker( SchemaConstants.SYNTAX_CHECKER_SYNTAX );
42
43
44
45
46 public static final class Builder extends SCBuilder<SyntaxCheckerSyntaxChecker>
47 {
48
49
50
51 private Builder()
52 {
53 super( SchemaConstants.SYNTAX_CHECKER_SYNTAX );
54 }
55
56
57
58
59
60
61 @Override
62 public SyntaxCheckerSyntaxChecker build()
63 {
64 return new SyntaxCheckerSyntaxChecker( oid );
65 }
66 }
67
68
69
70
71
72
73 private SyntaxCheckerSyntaxChecker( String oid )
74 {
75 super( oid );
76 }
77
78
79
80
81
82 public static Builder builder()
83 {
84 return new Builder();
85 }
86
87
88
89
90
91 @Override
92 public boolean isValidSyntax( Object value )
93 {
94 String strValue;
95
96 if ( value == null )
97 {
98 if ( LOG.isDebugEnabled() )
99 {
100 LOG.debug( I18n.err( I18n.ERR_04488_SYNTAX_INVALID, "null" ) );
101 }
102
103 return true;
104 }
105
106 if ( value instanceof String )
107 {
108 strValue = ( String ) value;
109 }
110 else if ( value instanceof byte[] )
111 {
112 strValue = Strings.utf8ToString( ( byte[] ) value );
113 }
114 else
115 {
116 strValue = value.toString();
117 }
118
119 boolean result = Strings.isIA5String( strValue );
120
121 if ( LOG.isDebugEnabled() )
122 {
123 if ( result )
124 {
125 LOG.debug( I18n.msg( I18n.MSG_04489_SYNTAX_VALID, value ) );
126 }
127 else
128 {
129 LOG.debug( I18n.err( I18n.ERR_04488_SYNTAX_INVALID, value ) );
130 }
131 }
132
133 return result;
134 }
135 }