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