1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.rdf.simple;
19
20 import org.apache.commons.rdf.api.IRI;
21
22 import java.util.Collections;
23 import java.util.LinkedHashSet;
24 import java.util.Optional;
25 import java.util.Set;
26
27
28
29
30 public final class Types implements IRI, SimpleRDF.SimpleRDFTerm {
31
32
33
34
35 public static final Types RDF_HTML = new Types("http://www.w3.org/1999/02/22-rdf-syntax-ns#HTML");
36
37
38
39
40 public static final Types RDF_LANGSTRING = new Types("http://www.w3.org/1999/02/22-rdf-syntax-ns#langString");
41
42
43
44
45
46
47 @Deprecated
48 public static final Types RDF_PLAINLITERAL = new Types("http://www.w3.org/1999/02/22-rdf-syntax-ns#PlainLiteral");
49
50
51
52
53 public static final Types RDF_XMLLITERAL = new Types("http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral");
54
55
56
57
58 public static final Types XSD_ANYURI = new Types("http://www.w3.org/2001/XMLSchema#anyURI");
59
60
61
62
63 public static final Types XSD_BASE64BINARY = new Types("http://www.w3.org/2001/XMLSchema#base64Binary");
64
65
66
67
68 public static final Types XSD_BOOLEAN = new Types("http://www.w3.org/2001/XMLSchema#boolean");
69
70
71
72
73 public static final Types XSD_BYTE = new Types("http://www.w3.org/2001/XMLSchema#byte");
74
75
76
77
78 public static final Types XSD_DATE = new Types("http://www.w3.org/2001/XMLSchema#date");
79
80
81
82
83 public static final Types XSD_DATETIME = new Types("http://www.w3.org/2001/XMLSchema#dateTime");
84
85
86
87
88 public static final Types XSD_DAYTIMEDURATION = new Types("http://www.w3.org/2001/XMLSchema#dayTimeDuration");
89
90
91
92
93 public static final Types XSD_DECIMAL = new Types("http://www.w3.org/2001/XMLSchema#decimal");
94
95
96
97
98 public static final Types XSD_DOUBLE = new Types("http://www.w3.org/2001/XMLSchema#double");
99
100
101
102
103 public static final Types XSD_DURATION = new Types("http://www.w3.org/2001/XMLSchema#duration");
104
105
106
107
108 public static final Types XSD_FLOAT = new Types("http://www.w3.org/2001/XMLSchema#float");
109
110
111
112
113 public static final Types XSD_GDAY = new Types("http://www.w3.org/2001/XMLSchema#gDay");
114
115
116
117
118 public static final Types XSD_GMONTH = new Types("http://www.w3.org/2001/XMLSchema#gMonth");
119
120
121
122
123 public static final Types XSD_GMONTHDAY = new Types("http://www.w3.org/2001/XMLSchema#gMonthDay");
124
125
126
127
128 public static final Types XSD_GYEAR = new Types("http://www.w3.org/2001/XMLSchema#gYear");
129
130
131
132
133 public static final Types XSD_GYEARMONTH = new Types("http://www.w3.org/2001/XMLSchema#gYearMonth");
134
135
136
137
138 public static final Types XSD_HEXBINARY = new Types("http://www.w3.org/2001/XMLSchema#hexBinary");
139
140
141
142
143 public static final Types XSD_INT = new Types("http://www.w3.org/2001/XMLSchema#int");
144
145
146
147
148 public static final Types XSD_INTEGER = new Types("http://www.w3.org/2001/XMLSchema#integer");
149
150
151
152
153 public static final Types XSD_LANGUAGE = new Types("http://www.w3.org/2001/XMLSchema#language");
154
155
156
157
158 public static final Types XSD_LONG = new Types("http://www.w3.org/2001/XMLSchema#long");
159
160
161
162
163 public static final Types XSD_NAME = new Types("http://www.w3.org/2001/XMLSchema#Name");
164
165
166
167
168 public static final Types XSD_NCNAME = new Types("http://www.w3.org/2001/XMLSchema#NCName");
169
170
171
172
173 public static final Types XSD_NEGATIVEINTEGER = new Types("http://www.w3.org/2001/XMLSchema#negativeInteger");
174
175
176
177
178 public static final Types XSD_NMTOKEN = new Types("http://www.w3.org/2001/XMLSchema#NMTOKEN");
179
180
181
182
183 public static final Types XSD_NONNEGATIVEINTEGER = new Types("http://www.w3.org/2001/XMLSchema#nonNegativeInteger");
184
185
186
187
188 public static final Types XSD_NONPOSITIVEINTEGER = new Types("http://www.w3.org/2001/XMLSchema#nonPositiveInteger");
189
190
191
192
193 public static final Types XSD_NORMALIZEDSTRING = new Types("http://www.w3.org/2001/XMLSchema#normalizedString");
194
195
196
197
198 public static final Types XSD_POSITIVEINTEGER = new Types("http://www.w3.org/2001/XMLSchema#positiveInteger");
199
200
201
202
203 public static final Types XSD_SHORT = new Types("http://www.w3.org/2001/XMLSchema#short");
204
205
206
207
208 public static final Types XSD_STRING = new Types("http://www.w3.org/2001/XMLSchema#string");
209
210
211
212
213 public static final Types XSD_TIME = new Types("http://www.w3.org/2001/XMLSchema#time");
214
215
216
217
218 public static final Types XSD_TOKEN = new Types("http://www.w3.org/2001/XMLSchema#token");
219
220
221
222
223 public static final Types XSD_UNSIGNEDBYTE = new Types("http://www.w3.org/2001/XMLSchema#unsignedByte");
224
225
226
227
228 public static final Types XSD_UNSIGNEDINT = new Types("http://www.w3.org/2001/XMLSchema#unsignedInt");
229
230
231
232
233 public static final Types XSD_UNSIGNEDLONG = new Types("http://www.w3.org/2001/XMLSchema#unsignedLong");
234
235
236
237
238 public static final Types XSD_UNSIGNEDSHORT = new Types("http://www.w3.org/2001/XMLSchema#unsignedShort");
239
240 private static final Set<IRI> ALL_TYPES;
241
242 static {
243 final Set<IRI> tempTypes = new LinkedHashSet<>();
244 tempTypes.add(RDF_HTML);
245 tempTypes.add(RDF_LANGSTRING);
246 tempTypes.add(RDF_PLAINLITERAL);
247 tempTypes.add(RDF_XMLLITERAL);
248 tempTypes.add(XSD_ANYURI);
249 tempTypes.add(XSD_BASE64BINARY);
250 tempTypes.add(XSD_BOOLEAN);
251 tempTypes.add(XSD_BYTE);
252 tempTypes.add(XSD_DATE);
253 tempTypes.add(XSD_DATETIME);
254 tempTypes.add(XSD_DAYTIMEDURATION);
255 tempTypes.add(XSD_DECIMAL);
256 tempTypes.add(XSD_DOUBLE);
257 tempTypes.add(XSD_DURATION);
258 tempTypes.add(XSD_FLOAT);
259 tempTypes.add(XSD_GDAY);
260 tempTypes.add(XSD_GMONTH);
261 tempTypes.add(XSD_GMONTHDAY);
262 tempTypes.add(XSD_GYEAR);
263 tempTypes.add(XSD_GYEARMONTH);
264 tempTypes.add(XSD_HEXBINARY);
265 tempTypes.add(XSD_INT);
266 tempTypes.add(XSD_INTEGER);
267 tempTypes.add(XSD_LANGUAGE);
268 tempTypes.add(XSD_LONG);
269 tempTypes.add(XSD_NAME);
270 tempTypes.add(XSD_NCNAME);
271 tempTypes.add(XSD_NEGATIVEINTEGER);
272 tempTypes.add(XSD_NMTOKEN);
273 tempTypes.add(XSD_NONNEGATIVEINTEGER);
274 tempTypes.add(XSD_NONPOSITIVEINTEGER);
275 tempTypes.add(XSD_NORMALIZEDSTRING);
276 tempTypes.add(XSD_POSITIVEINTEGER);
277 tempTypes.add(XSD_SHORT);
278 tempTypes.add(XSD_STRING);
279 tempTypes.add(XSD_TIME);
280 tempTypes.add(XSD_TOKEN);
281 tempTypes.add(XSD_UNSIGNEDBYTE);
282 tempTypes.add(XSD_UNSIGNEDINT);
283 tempTypes.add(XSD_UNSIGNEDLONG);
284 tempTypes.add(XSD_UNSIGNEDSHORT);
285 ALL_TYPES = Collections.unmodifiableSet(tempTypes);
286 }
287
288 private final IRI field;
289
290 private Types(final String field) {
291 this.field = new IRIImpl(field);
292 }
293
294 @Override
295 public String getIRIString() {
296 return this.field.getIRIString();
297 }
298
299 @Override
300 public String ntriplesString() {
301 return this.field.ntriplesString();
302 }
303
304 @Override
305 public boolean equals(final Object other) {
306 return this.field.equals(other);
307 }
308
309 @Override
310 public int hashCode() {
311 return this.field.hashCode();
312 }
313
314 @Override
315 public String toString() {
316 return this.field.toString();
317 }
318
319
320
321
322
323
324
325 public static Set<IRI> values() {
326 return ALL_TYPES;
327 }
328
329
330
331
332
333
334
335
336
337
338 public static Optional<IRI> get(final IRI nextIRI) {
339 if (ALL_TYPES.contains(nextIRI)) {
340
341
342 for (final IRI nextType : ALL_TYPES) {
343 if (nextType.equals(nextIRI)) {
344 return Optional.of(nextType);
345 }
346 }
347 }
348 return Optional.empty();
349 }
350 }