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 ComparatorSyntaxChecker extends SyntaxChecker
36 {
37
38
39
40 public static final ComparatorSyntaxChecker INSTANCE = new ComparatorSyntaxChecker( SchemaConstants.COMPARATOR_SYNTAX );
41
42
43
44
45 public static final class Builder extends SCBuilder<ComparatorSyntaxChecker>
46 {
47
48
49
50 private Builder()
51 {
52 super( SchemaConstants.COMPARATOR_SYNTAX );
53 }
54
55
56
57
58
59
60 @Override
61 public ComparatorSyntaxChecker build()
62 {
63 return new ComparatorSyntaxChecker( oid );
64 }
65 }
66
67
68
69
70
71
72
73 private ComparatorSyntaxChecker( 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 }