1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.core.persistence.jpa.attrvalue.validation;
20
21 import org.apache.syncope.common.lib.SyncopeConstants;
22 import org.apache.syncope.common.lib.types.AttrSchemaType;
23 import org.apache.syncope.core.persistence.api.attrvalue.validation.InvalidPlainAttrValueException;
24 import org.apache.syncope.core.persistence.api.entity.PlainAttrValue;
25 import org.apache.syncope.core.persistence.api.entity.PlainSchema;
26
27 public class BasicValidator extends AbstractValidator {
28
29 private static final long serialVersionUID = -2606728447694223607L;
30
31 @Override
32 protected void doValidate(final PlainSchema schema, final PlainAttrValue attrValue) {
33 if (AttrSchemaType.Enum == schema.getType()) {
34 final String[] enumeration = schema.getEnumerationValues().split(SyncopeConstants.ENUM_VALUES_SEPARATOR);
35 final String value = attrValue.getStringValue();
36
37 boolean found = false;
38 for (int i = 0; i < enumeration.length && !found; i++) {
39 if (enumeration[i].trim().equals(value)) {
40 found = true;
41 }
42 }
43
44 if (!found) {
45 throw new InvalidPlainAttrValueException(
46 '\'' + value + "' is not one of: " + schema.getEnumerationValues());
47 }
48 }
49 }
50 }