1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.qedeq.kernel.bo.common;
17
18 import java.util.Arrays;
19 import java.util.HashSet;
20 import java.util.Iterator;
21 import java.util.Set;
22
23
24
25
26
27
28
29 public class QedeqBoSet {
30
31
32
33 private final Set elements;
34
35
36
37
38
39 public QedeqBoSet() {
40 this.elements = new HashSet();
41 }
42
43
44
45
46
47
48
49
50 public QedeqBoSet(final QedeqBo[] elements) {
51 if (elements == null) {
52 throw new IllegalArgumentException(
53 "NullPointer as element array is not allowed");
54 }
55 this.elements = new HashSet(Arrays.asList(elements));
56 }
57
58
59
60
61
62
63
64 public QedeqBoSet(final QedeqBo element) {
65 if (element == null) {
66 throw new IllegalArgumentException(
67 "NullPointer as element array is not allowed");
68 }
69 this.elements = new HashSet();
70 elements.add(element);
71 }
72
73
74
75
76
77
78
79
80 public QedeqBoSet(final QedeqBoSet set) {
81 if (set == null) {
82 throw new IllegalArgumentException(
83 "NullPointer as set is not allowed");
84 }
85 this.elements = new HashSet(set.elements);
86 }
87
88
89
90
91
92
93
94
95
96
97 public final boolean contains(final QedeqBo element) {
98 if (element == null) {
99 throw new IllegalArgumentException("NullPointer as element is not allowed");
100 }
101 return this.elements.contains(element);
102 }
103
104
105
106
107
108
109 public final boolean isEmpty() {
110 return elements.isEmpty();
111 }
112
113
114
115
116
117
118
119
120
121
122
123 public final QedeqBoSet add(final QedeqBo element) {
124 if (element == null) {
125 throw new IllegalArgumentException("NullPointer as element is not allowed");
126 }
127 elements.add(element);
128 return this;
129 }
130
131
132
133
134
135
136
137
138
139
140
141 public final QedeqBoSet add(final QedeqBoSet set) {
142 if (set == null) {
143 throw new IllegalArgumentException(
144 "NullPointer as set is not allowed");
145 }
146 elements.addAll(set.elements);
147 return this;
148 }
149
150
151
152
153
154
155
156
157
158
159 public final QedeqBoSet remove(final QedeqBo element) {
160 if (element == null) {
161 throw new IllegalArgumentException(
162 "NullPointer as element is not allowed");
163 }
164 elements.remove(element);
165 return this;
166 }
167
168
169
170
171
172
173
174
175
176
177
178
179 public final QedeqBoSet remove(final QedeqBoSet set) {
180 if (set == null) {
181 throw new IllegalArgumentException(
182 "NullPointer as set is not allowed");
183 }
184 this.elements.removeAll(set.elements);
185 return this;
186 }
187
188
189
190
191
192
193
194
195
196 public final QedeqBoSet intersection(final QedeqBoSet set) {
197 if (set == null) {
198 throw new IllegalArgumentException(
199 "NullPointer as set is not allowed");
200 }
201 this.elements.retainAll(set.elements);
202 return this;
203 }
204
205
206
207
208
209
210
211 public final int size() {
212 return this.elements.size();
213 }
214
215
216
217
218
219
220
221
222 public Iterator iterator() {
223 return this.elements.iterator();
224 }
225
226 public final boolean equals(final Object obj) {
227 if (obj instanceof QedeqBoSet) {
228 return this.elements.equals(((QedeqBoSet) obj).elements);
229 }
230 return false;
231 }
232
233 public final int hashCode() {
234 return elements.hashCode();
235 }
236
237 public final String toString() {
238 final StringBuffer result = new StringBuffer();
239 result.append("{");
240 final Iterator iterator = elements.iterator();
241 while (iterator.hasNext()) {
242 result.append(iterator.next());
243 if (iterator.hasNext()) {
244 result.append(", ");
245 }
246 }
247 result.append("}");
248 return result.toString();
249 }
250
251
252 public String asLongList() {
253 final StringBuffer result = new StringBuffer();
254 final Iterator iterator = elements.iterator();
255 while (iterator.hasNext()) {
256 result.append(((QedeqBo) iterator.next()).getUrl());
257 if (iterator.hasNext()) {
258 result.append(", ");
259 }
260 }
261 return result.toString();
262 }
263
264
265 public String asShortList() {
266 final StringBuffer result = new StringBuffer();
267 final Iterator iterator = elements.iterator();
268 while (iterator.hasNext()) {
269 result.append(((QedeqBo) iterator.next()).getName());
270 if (iterator.hasNext()) {
271 result.append(", ");
272 }
273 }
274 return result.toString();
275 }
276
277
278 }