2 * Copyright 2015 Samsung Electronics All Rights Reserved.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package org.oic.simulator;
19 class ArrayValueValidator implements
20 AttributeValueVisitor.VisitingMethods<Boolean> {
22 private ArrayProperty mProperty = null;
24 ArrayValueValidator(ArrayProperty property) {
28 public boolean validate(AttributeValue value) {
29 AttributeValueVisitor visitor = new AttributeValueVisitor(value, this);
30 return (Boolean) visitor.visit();
34 public Boolean visitingValue(Integer value) {
39 public Boolean visitingValue(Double value) {
44 public Boolean visitingValue(Boolean value) {
49 public Boolean visitingValue(String value) {
54 public Boolean visitingValue(SimulatorResourceModel value) {
59 public Boolean visitingValue(Integer[] values) {
60 if (null == mProperty)
63 // Validating length of array
64 if (mProperty.hasRange()) {
65 if (values.length < mProperty.minItems()
66 || (values.length > mProperty.maxItems() && !mProperty
72 // Validating elements of array
73 AttributeProperty elementProperty = mProperty.getElementProperty();
74 if (!elementProperty.isInteger()) {
78 for (Integer value : values) {
79 if (false == elementProperty.asInteger().validate(value))
87 public Boolean visitingValue(Double[] values) {
88 if (null == mProperty)
91 // Validating length of array
92 if (mProperty.hasRange()) {
93 if (values.length < mProperty.minItems()
94 || (values.length > mProperty.maxItems() && !mProperty
100 // Validating elements of array
101 AttributeProperty elementProperty = mProperty.getElementProperty();
102 if (!elementProperty.isDouble()) {
106 for (Double value : values) {
107 if (false == elementProperty.asDouble().validate(value))
115 public Boolean visitingValue(Boolean[] values) {
116 if (null == mProperty)
119 // Validating length of array
120 if (mProperty.hasRange()) {
121 if (values.length < mProperty.minItems()
122 || (values.length > mProperty.maxItems() && !mProperty
128 // Validating elements of array
129 AttributeProperty elementProperty = mProperty.getElementProperty();
130 if (!elementProperty.isBoolean()) {
134 for (Boolean value : values) {
135 if (false == elementProperty.asBoolean().validate(value))
143 public Boolean visitingValue(String[] values) {
144 if (null == mProperty)
147 // Validating length of array
148 if (mProperty.hasRange()) {
149 if (values.length < mProperty.minItems()
150 || (values.length > mProperty.maxItems() && !mProperty
156 // Validating elements of array
157 AttributeProperty elementProperty = mProperty.getElementProperty();
158 if (!elementProperty.isInteger()) {
162 for (String value : values) {
163 if (false == elementProperty.asString().validate(value))
171 public Boolean visitingValue(SimulatorResourceModel[] values) {
172 if (null == mProperty)
175 // Validating length of array
176 if (mProperty.hasRange()) {
177 if (values.length < mProperty.minItems()
178 || (values.length > mProperty.maxItems() && !mProperty
184 // Validating elements of array
185 AttributeProperty elementProperty = mProperty.getElementProperty();
186 if (!elementProperty.isInteger()) {
190 for (SimulatorResourceModel value : values) {
191 if (false == elementProperty.asModel().validate(value))
199 public Boolean visitingValue(Integer[][] values) {
200 if (null == mProperty)
203 // Validating length of array
204 if (mProperty.hasRange()) {
205 if (values.length < mProperty.minItems()
206 || (values.length > mProperty.maxItems() && !mProperty
212 // Validating elements of array
213 AttributeProperty elementProperty = mProperty.getElementProperty();
214 if (!elementProperty.isArray()) {
218 ArrayValueValidator validator = new ArrayValueValidator(
219 elementProperty.asArray());
220 for (Integer[] value : values) {
221 if (false == validator.visitingValue(value))
229 public Boolean visitingValue(Double[][] values) {
230 if (null == mProperty)
233 // Validating length of array
234 if (mProperty.hasRange()) {
235 if (values.length < mProperty.minItems()
236 || (values.length > mProperty.maxItems() && !mProperty
242 // Validating elements of array
243 AttributeProperty elementProperty = mProperty.getElementProperty();
244 if (!elementProperty.isArray()) {
248 ArrayValueValidator validator = new ArrayValueValidator(
249 elementProperty.asArray());
250 for (Double[] value : values) {
251 if (false == validator.visitingValue(value))
259 public Boolean visitingValue(Boolean[][] values) {
260 if (null == mProperty)
263 // Validating length of array
264 if (mProperty.hasRange()) {
265 if (values.length < mProperty.minItems()
266 || (values.length > mProperty.maxItems() && !mProperty
272 // Validating elements of array
273 AttributeProperty elementProperty = mProperty.getElementProperty();
274 if (!elementProperty.isArray()) {
278 ArrayValueValidator validator = new ArrayValueValidator(
279 elementProperty.asArray());
280 for (Boolean[] value : values) {
281 if (false == validator.visitingValue(value))
289 public Boolean visitingValue(String[][] values) {
290 if (null == mProperty)
293 // Validating length of array
294 if (mProperty.hasRange()) {
295 if (values.length < mProperty.minItems()
296 || (values.length > mProperty.maxItems() && !mProperty
302 // Validating elements of array
303 AttributeProperty elementProperty = mProperty.getElementProperty();
304 if (!elementProperty.isArray()) {
308 ArrayValueValidator validator = new ArrayValueValidator(
309 elementProperty.asArray());
310 for (String[] value : values) {
311 if (false == validator.visitingValue(value))
319 public Boolean visitingValue(SimulatorResourceModel[][] values) {
320 if (null == mProperty)
323 // Validating length of array
324 if (mProperty.hasRange()) {
325 if (values.length < mProperty.minItems()
326 || (values.length > mProperty.maxItems() && !mProperty
332 // Validating elements of array
333 AttributeProperty elementProperty = mProperty.getElementProperty();
334 if (!elementProperty.isArray()) {
338 ArrayValueValidator validator = new ArrayValueValidator(
339 elementProperty.asArray());
340 for (SimulatorResourceModel[] value : values) {
341 if (false == validator.visitingValue(value))
349 public Boolean visitingValue(Integer[][][] values) {
350 if (null == mProperty)
353 // Validating length of array
354 if (mProperty.hasRange()) {
355 if (values.length < mProperty.minItems()
356 || (values.length > mProperty.maxItems() && !mProperty
362 // Validating elements of array
363 AttributeProperty elementProperty = mProperty.getElementProperty();
364 if (!elementProperty.isArray()) {
368 ArrayValueValidator validator = new ArrayValueValidator(
369 elementProperty.asArray());
370 for (Integer[][] value : values) {
371 if (false == validator.visitingValue(value))
379 public Boolean visitingValue(Double[][][] values) {
380 if (null == mProperty)
383 // Validating length of array
384 if (mProperty.hasRange()) {
385 if (values.length < mProperty.minItems()
386 || (values.length > mProperty.maxItems() && !mProperty
392 // Validating elements of array
393 AttributeProperty elementProperty = mProperty.getElementProperty();
394 if (!elementProperty.isArray()) {
398 ArrayValueValidator validator = new ArrayValueValidator(
399 elementProperty.asArray());
400 for (Double[][] value : values) {
401 if (false == validator.visitingValue(value))
409 public Boolean visitingValue(Boolean[][][] values) {
410 if (null == mProperty)
413 // Validating length of array
414 if (mProperty.hasRange()) {
415 if (values.length < mProperty.minItems()
416 || (values.length > mProperty.maxItems() && !mProperty
422 // Validating elements of array
423 AttributeProperty elementProperty = mProperty.getElementProperty();
424 if (!elementProperty.isArray()) {
428 ArrayValueValidator validator = new ArrayValueValidator(
429 elementProperty.asArray());
430 for (Boolean[][] value : values) {
431 if (false == validator.visitingValue(value))
439 public Boolean visitingValue(String[][][] values) {
440 if (null == mProperty)
443 // Validating length of array
444 if (mProperty.hasRange()) {
445 if (values.length < mProperty.minItems()
446 || (values.length > mProperty.maxItems() && !mProperty
452 // Validating elements of array
453 AttributeProperty elementProperty = mProperty.getElementProperty();
454 if (!elementProperty.isArray()) {
458 ArrayValueValidator validator = new ArrayValueValidator(
459 elementProperty.asArray());
460 for (String[][] value : values) {
461 if (false == validator.visitingValue(value))
469 public Boolean visitingValue(SimulatorResourceModel[][][] values) {
470 if (null == mProperty)
473 // Validating length of array
474 if (mProperty.hasRange()) {
475 if (values.length < mProperty.minItems()
476 || (values.length > mProperty.maxItems() && !mProperty
482 // Validating elements of array
483 AttributeProperty elementProperty = mProperty.getElementProperty();
484 if (!elementProperty.isArray()) {
488 ArrayValueValidator validator = new ArrayValueValidator(
489 elementProperty.asArray());
490 for (SimulatorResourceModel[][] value : values) {
491 if (false == validator.visitingValue(value))