1 package org.oic.simulator;
3 public class AttributeValueValidation implements AttributeValueVisitor.VisitingMethods<Boolean> {
4 private AttributeProperty mProperty = null;
6 public AttributeValueValidation(AttributeProperty property) {
10 public boolean validate(AttributeValue value) {
11 AttributeValueVisitor visitor = new AttributeValueVisitor(value, this);
12 Boolean result = (Boolean) visitor.visit();
13 return result.booleanValue();
17 public Boolean visitingValue(Integer value) {
18 if (mProperty == null)
21 if (checkRange(value.doubleValue()) || checkValueSet(value))
27 public Boolean visitingValue(Double value) {
28 if (mProperty == null)
31 if (checkRange(value.doubleValue()) || checkValueSet(value))
37 public Boolean visitingValue(Boolean value) {
38 if (mProperty == null)
41 if (checkValueSet(value))
47 public Boolean visitingValue(String value) {
48 if (mProperty == null)
51 if (checkRange(value.length()) || checkValueSet(value))
57 public Boolean visitingValue(SimulatorResourceModel value) {
62 public Boolean visitingValue(Integer[] values) {
63 if (mProperty == null)
66 if (!checkRange(values.length))
69 if (mProperty.getChildProperty() != null) {
70 AttributeValueValidation rangeValidation = new AttributeValueValidation(mProperty.getChildProperty());
71 for (Integer value : values) {
72 if (rangeValidation.visitingValue(value) == false)
81 public Boolean visitingValue(Double[] values) {
82 if (mProperty == null)
85 if (!checkRange(values.length))
88 if (mProperty.getChildProperty() != null) {
89 AttributeValueValidation rangeValidation = new AttributeValueValidation(mProperty.getChildProperty());
90 for (Double value : values) {
91 if (rangeValidation.visitingValue(value) == false)
100 public Boolean visitingValue(Boolean[] values) {
101 if (mProperty == null)
104 if (!checkRange(values.length))
107 if (mProperty.getChildProperty() != null) {
108 AttributeValueValidation rangeValidation = new AttributeValueValidation(mProperty.getChildProperty());
109 for (Boolean value : values) {
110 if (rangeValidation.visitingValue(value) == false)
119 public Boolean visitingValue(String[] values) {
120 if (mProperty == null)
123 if (!checkRange(values.length))
126 if (mProperty.getChildProperty() != null) {
127 AttributeValueValidation rangeValidation = new AttributeValueValidation(mProperty.getChildProperty());
128 for (String value : values) {
129 if (rangeValidation.visitingValue(value) == false)
138 public Boolean visitingValue(SimulatorResourceModel[] value) {
143 public Boolean visitingValue(Integer[][] values) {
144 if (mProperty == null)
147 if (!checkRange(values.length))
150 if (mProperty.getChildProperty() != null) {
151 AttributeValueValidation rangeValidation = new AttributeValueValidation(mProperty.getChildProperty());
152 for (Integer[] value : values) {
153 if (rangeValidation.visitingValue(value) == false)
162 public Boolean visitingValue(Double[][] values) {
163 if (mProperty == null)
166 if (!checkRange(values.length))
169 if (mProperty.getChildProperty() != null) {
170 AttributeValueValidation rangeValidation = new AttributeValueValidation(mProperty.getChildProperty());
171 for (Double[] value : values) {
172 if (rangeValidation.visitingValue(value) == false)
181 public Boolean visitingValue(Boolean[][] values) {
182 if (mProperty == null)
185 if (!checkRange(values.length))
188 if (mProperty.getChildProperty() != null) {
189 AttributeValueValidation rangeValidation = new AttributeValueValidation(mProperty.getChildProperty());
190 for (Boolean[] value : values) {
191 if (rangeValidation.visitingValue(value) == false)
200 public Boolean visitingValue(String[][] values) {
201 if (mProperty == null)
204 if (!checkRange(values.length))
207 if (mProperty.getChildProperty() != null) {
208 AttributeValueValidation rangeValidation = new AttributeValueValidation(mProperty.getChildProperty());
209 for (String[] value : values) {
210 if (rangeValidation.visitingValue(value) == false)
219 public Boolean visitingValue(SimulatorResourceModel[][] value) {
224 public Boolean visitingValue(Integer[][][] values) {
225 if (mProperty == null)
228 if (!checkRange(values.length))
231 if (mProperty.getChildProperty() != null) {
232 AttributeValueValidation rangeValidation = new AttributeValueValidation(mProperty.getChildProperty());
233 for (Integer[][] value : values) {
234 if (rangeValidation.visitingValue(value) == false)
243 public Boolean visitingValue(Double[][][] values) {
244 if (mProperty == null)
247 if (!checkRange(values.length))
250 if (mProperty.getChildProperty() != null) {
251 AttributeValueValidation rangeValidation = new AttributeValueValidation(mProperty.getChildProperty());
252 for (Double[][] value : values) {
253 if (rangeValidation.visitingValue(value) == false)
262 public Boolean visitingValue(Boolean[][][] values) {
263 if (mProperty == null)
266 if (!checkRange(values.length))
269 if (mProperty.getChildProperty() != null) {
270 AttributeValueValidation rangeValidation = new AttributeValueValidation(mProperty.getChildProperty());
271 for (Boolean[][] value : values) {
272 if (rangeValidation.visitingValue(value) == false)
281 public Boolean visitingValue(String[][][] values) {
282 if (mProperty == null)
285 if (!checkRange(values.length))
288 if (mProperty.getChildProperty() != null) {
289 AttributeValueValidation rangeValidation = new AttributeValueValidation(mProperty.getChildProperty());
290 for (String[][] value : values) {
291 if (rangeValidation.visitingValue(value) == false)
300 public Boolean visitingValue(SimulatorResourceModel[][][] value) {
304 private boolean checkRange(double value) {
305 if (AttributeProperty.Type.RANGE == mProperty.type()
306 && (value >= mProperty.min() && value <= mProperty.max())) {
313 private <T> boolean checkValueSet(T value) {
314 if (AttributeProperty.Type.VALUESET == mProperty.type() && null != mProperty.valueSet()) {
315 for (AttributeValue allowedValue : mProperty.valueSet()) {
316 if (allowedValue.get().equals(value))