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 java.text.ParseException;
24
25 import org.apache.directory.api.ldap.model.constants.SchemaConstants;
26 import org.apache.directory.api.ldap.model.schema.SyntaxChecker;
27 import org.apache.directory.api.ldap.model.schema.parsers.NameFormDescriptionSchemaParser;
28 import org.apache.directory.api.util.Strings;
29 import org.slf4j.Logger;
30 import org.slf4j.LoggerFactory;
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 @SuppressWarnings("serial")
52 public class NameFormDescriptionSyntaxChecker extends SyntaxChecker
53 {
54
55 private static final Logger LOG = LoggerFactory.getLogger( NameFormDescriptionSyntaxChecker.class );
56
57
58 private NameFormDescriptionSchemaParser schemaParser = new NameFormDescriptionSchemaParser();
59
60
61
62
63
64
65
66 public NameFormDescriptionSyntaxChecker()
67 {
68 super( SchemaConstants.NAME_FORM_DESCRIPTION_SYNTAX );
69 }
70
71
72
73
74
75 public boolean isValidSyntax( Object value )
76 {
77 String strValue = null;
78
79 if ( value == null )
80 {
81 LOG.debug( "Syntax invalid for 'null'" );
82 return false;
83 }
84
85 if ( value instanceof String )
86 {
87 strValue = ( String ) value;
88 }
89 else if ( value instanceof byte[] )
90 {
91 strValue = Strings.utf8ToString( ( byte[] ) value );
92 }
93 else
94 {
95 strValue = value.toString();
96 }
97
98 try
99 {
100 schemaParser.parseNameFormDescription( strValue );
101 return true;
102 }
103 catch ( ParseException pe )
104 {
105 LOG.debug( "Syntax invalid for '{}'", value );
106 return false;
107 }
108 }
109 }