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.ldap.model.constants.SchemaConstants;
24 import org.apache.directory.api.ldap.model.schema.SyntaxChecker;
25 import org.apache.directory.api.util.Strings;
26 import org.slf4j.Logger;
27 import org.slf4j.LoggerFactory;
28
29
30
31
32
33
34
35
36
37
38 @SuppressWarnings("serial")
39 public class Ia5StringSyntaxChecker extends SyntaxChecker
40 {
41
42 private static final Logger LOG = LoggerFactory.getLogger( Ia5StringSyntaxChecker.class );
43
44
45
46
47
48 public Ia5StringSyntaxChecker()
49 {
50 super( SchemaConstants.IA5_STRING_SYNTAX );
51 }
52
53
54
55
56
57 public boolean isValidSyntax( Object value )
58 {
59 String strValue = null;
60
61 if ( value == null )
62 {
63 LOG.debug( "Syntax invalid for 'null'" );
64 return true;
65 }
66
67 if ( value instanceof String )
68 {
69 strValue = ( String ) value;
70 }
71 else if ( value instanceof byte[] )
72 {
73 strValue = Strings.utf8ToString( ( byte[] ) value );
74 }
75 else
76 {
77 strValue = value.toString();
78 }
79
80 boolean result = Strings.isIA5String( strValue );
81
82 if ( result )
83 {
84 LOG.debug( "Syntax valid for '{}'", value );
85 }
86 else
87 {
88 LOG.debug( "Syntax invalid for '{}'", value );
89 }
90
91 return result;
92 }
93 }