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.types.EntityViolationType;
23 import org.apache.syncope.common.lib.types.ExecStatus;
24 import org.apache.syncope.core.persistence.api.entity.task.PropagationTask;
25 import org.apache.syncope.core.persistence.api.entity.task.TaskExec;
26
27 public class PropagationTaskValidator extends AbstractValidator<PropagationTaskCheck, PropagationTask> {
28
29 @Override
30 public boolean isValid(final PropagationTask task, final ConstraintValidatorContext context) {
31 boolean isValid = task.getOperation() != null
32 && task.getPropagationData() != null
33 && task.getResource() != null;
34
35 if (isValid) {
36 for (TaskExec<PropagationTask> execution : task.getExecs()) {
37 try {
38 ExecStatus.valueOf(execution.getStatus());
39 } catch (IllegalArgumentException e) {
40 LOG.error("Invalid execution status '" + execution.getStatus() + '\'', e);
41 isValid = false;
42 }
43 }
44 }
45
46 if (!isValid) {
47 context.disableDefaultConstraintViolation();
48 context.buildConstraintViolationWithTemplate(
49 getTemplate(EntityViolationType.InvalidPropagationTask, "Invalid task")).
50 addPropertyNode(task.getClass().getSimpleName()).addConstraintViolation();
51 }
52
53 return isValid;
54 }
55 }