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