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;
21
22
23 import java.util.HashSet;
24 import java.util.Set;
25
26 import org.apache.directory.api.util.Strings;
27
28
29
30
31
32
33
34
35
36
37
38 public class AttributeTypeOptions
39 {
40
41 private AttributeType attributeType;
42
43
44 private Set<String> options;
45
46
47
48
49
50
51
52
53 public AttributeTypeOptions( AttributeType attributeType )
54 {
55 this.attributeType = attributeType;
56 }
57
58
59
60
61
62
63
64
65
66 public AttributeTypeOptions( AttributeType attributeType, Set<String> options )
67 {
68 this.attributeType = attributeType;
69 this.options = options;
70 }
71
72
73
74
75
76 public AttributeType getAttributeType()
77 {
78 return attributeType;
79 }
80
81
82
83
84
85 public Set<String> getOptions()
86 {
87 return options;
88 }
89
90
91
92
93
94 public boolean hasOption()
95 {
96 return ( options != null ) && !options.isEmpty();
97 }
98
99
100
101
102
103
104 public boolean hasOption( String option )
105 {
106 if ( hasOption() )
107 {
108 return options.contains( Strings.toLowerCaseAscii( Strings.trim( option ) ) );
109 }
110 else
111 {
112 return false;
113 }
114 }
115
116
117
118
119
120
121
122 public void addOption( String option )
123 {
124 if ( options == null )
125 {
126 options = new HashSet<>();
127 }
128
129 options.add( Strings.toLowerCaseAscii( Strings.trim( option ) ) );
130 }
131
132
133
134
135
136
137
138 public void addOptions( Set<String> optionsToAdd )
139 {
140 if ( this.options == null )
141 {
142 this.options = optionsToAdd;
143 }
144 else
145 {
146 this.options.addAll( optionsToAdd );
147 }
148 }
149
150
151
152
153
154 @Override
155 public int hashCode()
156 {
157 return attributeType.hashCode();
158 }
159
160
161
162
163
164 @Override
165 public boolean equals( Object o )
166 {
167
168 if ( this == o )
169 {
170 return true;
171 }
172
173 if ( !( o instanceof AttributeTypeOptions ) )
174 {
175 return false;
176 }
177
178 AttributeTypeOptions that = ( AttributeTypeOptions ) o;
179
180 return attributeType.equals( that.attributeType );
181 }
182
183
184
185
186 @Override
187 public String toString()
188 {
189 StringBuilder sb = new StringBuilder();
190
191 sb.append( "<" ).append( attributeType.getName() );
192
193 if ( hasOption() )
194 {
195 for ( String option : options )
196 {
197 sb.append( ";" ).append( option );
198 }
199 }
200
201 return sb.append( ">" ).toString();
202 }
203 }