1
2
3
4
5
6 package gov.nist.secauto.metaschema.core.metapath;
7
8 import gov.nist.secauto.metaschema.core.datatype.adapter.DecimalAdapter;
9 import gov.nist.secauto.metaschema.core.metapath.item.ICollectionValue;
10 import gov.nist.secauto.metaschema.core.metapath.item.IItem;
11 import gov.nist.secauto.metaschema.core.metapath.item.ISequence;
12 import gov.nist.secauto.metaschema.core.metapath.item.atomic.IAnyAtomicItem;
13 import gov.nist.secauto.metaschema.core.metapath.item.atomic.IAnyUriItem;
14 import gov.nist.secauto.metaschema.core.metapath.item.atomic.IBase64BinaryItem;
15 import gov.nist.secauto.metaschema.core.metapath.item.atomic.IBooleanItem;
16 import gov.nist.secauto.metaschema.core.metapath.item.atomic.IDateItem;
17 import gov.nist.secauto.metaschema.core.metapath.item.atomic.IDateTimeItem;
18 import gov.nist.secauto.metaschema.core.metapath.item.atomic.IDayTimeDurationItem;
19 import gov.nist.secauto.metaschema.core.metapath.item.atomic.IDecimalItem;
20 import gov.nist.secauto.metaschema.core.metapath.item.atomic.IDurationItem;
21 import gov.nist.secauto.metaschema.core.metapath.item.atomic.IIntegerItem;
22 import gov.nist.secauto.metaschema.core.metapath.item.atomic.IQNameItem;
23 import gov.nist.secauto.metaschema.core.metapath.item.atomic.IStringItem;
24 import gov.nist.secauto.metaschema.core.metapath.item.atomic.ITimeItem;
25 import gov.nist.secauto.metaschema.core.metapath.item.atomic.IUuidItem;
26 import gov.nist.secauto.metaschema.core.metapath.item.atomic.IYearMonthDurationItem;
27 import gov.nist.secauto.metaschema.core.metapath.item.function.IArrayItem;
28 import gov.nist.secauto.metaschema.core.metapath.item.function.IMapItem;
29 import gov.nist.secauto.metaschema.core.metapath.item.function.IMapKey;
30 import gov.nist.secauto.metaschema.core.qname.IEnhancedQName;
31 import gov.nist.secauto.metaschema.core.util.ObjectUtils;
32
33 import java.math.BigDecimal;
34 import java.math.BigInteger;
35 import java.util.Map;
36
37 import edu.umd.cs.findbugs.annotations.NonNull;
38
39 public final class TestUtils {
40
41
42
43
44
45
46
47 @NonNull
48 public static <T extends IItem> ISequence<T> sequence() {
49 return ISequence.of();
50 }
51
52
53
54
55
56
57
58
59
60
61 @SafeVarargs
62 @NonNull
63 public static <T extends IItem> ISequence<T> sequence(@NonNull T... items) {
64 return ISequence.of(items);
65 }
66
67
68
69
70
71
72
73
74 @NonNull
75 public static <T extends ICollectionValue> IArrayItem<T> array() {
76 return IArrayItem.of();
77 }
78
79
80
81
82
83
84
85
86
87
88 @SafeVarargs
89 @NonNull
90 public static <T extends ICollectionValue> IArrayItem<T> array(@NonNull T... items) {
91 return IArrayItem.of(items);
92 }
93
94
95
96
97
98
99
100
101
102
103 @SafeVarargs
104 @NonNull
105 public static <T extends ICollectionValue> IMapItem<T> map(@NonNull Map.Entry<IMapKey, T>... entries) {
106 return IMapItem.ofEntries(entries);
107 }
108
109
110
111
112
113
114
115
116
117
118
119
120 @NonNull
121 public static <T extends ICollectionValue> Map.Entry<IMapKey, T> entry(
122 @NonNull IAnyAtomicItem key,
123 @NonNull T value) {
124 return IMapItem.entry(key, value);
125 }
126
127
128
129
130
131
132
133
134 @NonNull
135 public static IBase64BinaryItem base64(@NonNull String value) {
136 return IBase64BinaryItem.valueOf(value);
137 }
138
139
140
141
142
143
144
145
146 @NonNull
147 public static IBooleanItem bool(boolean value) {
148 return IBooleanItem.valueOf(value);
149 }
150
151
152
153
154
155
156
157
158 public static IDecimalItem decimal(@NonNull String value) {
159 return IDecimalItem.valueOf(new BigDecimal(value, DecimalAdapter.mathContext()));
160 }
161
162
163
164
165
166
167
168
169 @NonNull
170 public static IDecimalItem decimal(int value) {
171 return IDecimalItem.valueOf(value);
172 }
173
174
175
176
177
178
179
180
181 @NonNull
182 public static IDecimalItem decimal(double value) {
183 return IDecimalItem.valueOf(value);
184 }
185
186
187
188
189
190
191
192
193 @NonNull
194 public static IIntegerItem integer(int value) {
195 return IIntegerItem.valueOf(ObjectUtils.notNull(BigInteger.valueOf(value)));
196 }
197
198
199
200
201
202
203
204
205 @NonNull
206 public static IStringItem string(@NonNull String value) {
207 return IStringItem.valueOf(value);
208 }
209
210
211
212
213
214
215
216
217 @NonNull
218 public static IUuidItem uuid(@NonNull String value) {
219 return IUuidItem.valueOf(value);
220 }
221
222
223
224
225
226
227
228
229 @NonNull
230 public static IAnyUriItem uri(@NonNull String value) {
231 return IAnyUriItem.valueOf(value);
232 }
233
234
235
236
237
238
239
240
241 @NonNull
242 public static IDateItem date(@NonNull String value) {
243 return IDateItem.valueOf(value);
244 }
245
246
247
248
249
250
251
252
253 @NonNull
254 public static IDateTimeItem dateTime(@NonNull String value) {
255 return IDateTimeItem.valueOf(value);
256 }
257
258
259
260
261
262
263
264
265 @NonNull
266 public static ITimeItem time(@NonNull String value) {
267 return ITimeItem.valueOf(value);
268 }
269
270
271
272
273
274
275
276
277
278 @NonNull
279 public static IDurationItem duration(@NonNull String value) {
280 return IDurationItem.valueOf(value);
281 }
282
283
284
285
286
287
288
289
290
291 @NonNull
292 public static IYearMonthDurationItem yearMonthDuration(@NonNull String value) {
293 return IYearMonthDurationItem.valueOf(value);
294 }
295
296
297
298
299
300
301
302
303
304 @NonNull
305 public static IDayTimeDurationItem dayTimeDuration(@NonNull String value) {
306 return IDayTimeDurationItem.valueOf(value);
307 }
308
309 @NonNull
310 public static IEnhancedQName eqname(@NonNull String namespace, @NonNull String localname) {
311 return IEnhancedQName.of(namespace, localname);
312 }
313
314 @NonNull
315 public static IQNameItem qname(@NonNull String namespace, @NonNull String localname) {
316 return IQNameItem.valueOf(eqname(namespace, localname));
317 }
318
319 private TestUtils() {
320
321 }
322 }