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.validation.entity;
20
21 import javax.validation.ConstraintValidatorContext;
22 import org.apache.syncope.common.lib.form.FormPropertyType;
23 import org.apache.syncope.common.lib.types.EntityViolationType;
24 import org.apache.syncope.core.persistence.api.entity.task.FormPropertyDef;
25
26 public class FormPropertyDefValidator extends AbstractValidator<FormPropertyDefCheck, FormPropertyDef> {
27
28 @Override
29 public boolean isValid(final FormPropertyDef formPropertyDef, final ConstraintValidatorContext context) {
30 context.disableDefaultConstraintViolation();
31
32 if (formPropertyDef.getDatePattern() != null
33 && formPropertyDef.getType() != FormPropertyType.Date) {
34
35 context.buildConstraintViolationWithTemplate(getTemplate(
36 EntityViolationType.InvalidFormPropertyDef, "Date pattern found but type not set to Date")).
37 addPropertyNode("datePattern").addConstraintViolation();
38 return false;
39 }
40
41 if (!formPropertyDef.getEnumValues().isEmpty()
42 && formPropertyDef.getType() != FormPropertyType.Enum) {
43
44 context.buildConstraintViolationWithTemplate(getTemplate(
45 EntityViolationType.InvalidFormPropertyDef, "Enum values found but type not set to Enum")).
46 addPropertyNode("enumValues").addConstraintViolation();
47 return false;
48 }
49
50 if (formPropertyDef.getEnumValues().isEmpty()
51 && formPropertyDef.getType() == FormPropertyType.Enum) {
52
53 context.buildConstraintViolationWithTemplate(getTemplate(
54 EntityViolationType.InvalidFormPropertyDef, "No enum values provided")).
55 addPropertyNode("enumValues").addConstraintViolation();
56 return false;
57 }
58
59 return true;
60 }
61 }