1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.krad.datadictionary.validation.processor;
17
18 import org.apache.commons.lang.StringUtils;
19 import org.kuali.rice.krad.datadictionary.exception.AttributeValidationException;
20 import org.kuali.rice.krad.datadictionary.validation.AttributeValueReader;
21 import org.kuali.rice.krad.datadictionary.validation.ValidationUtils;
22 import org.kuali.rice.krad.datadictionary.validation.constraint.Constraint;
23 import org.kuali.rice.krad.datadictionary.validation.constraint.PrerequisiteConstraint;
24 import org.kuali.rice.krad.datadictionary.validation.result.ConstraintValidationResult;
25 import org.kuali.rice.krad.datadictionary.validation.result.DictionaryValidationResult;
26 import org.kuali.rice.krad.datadictionary.validation.result.ProcessorResult;
27 import org.kuali.rice.krad.uif.UifConstants;
28
29
30
31
32 public class PrerequisiteConstraintProcessor extends BasePrerequisiteConstraintProcessor<PrerequisiteConstraint> {
33
34 private static final String CONSTRAINT_NAME = "prerequisite constraint";
35 private static final String FALLBACK_KEY = "prerequisiteFallback";
36
37
38
39
40
41
42 @Override
43 public ProcessorResult process(DictionaryValidationResult result, Object value, PrerequisiteConstraint constraint,
44 AttributeValueReader attributeValueReader) throws AttributeValidationException {
45
46 if (ValidationUtils.isNullOrEmpty(value)) {
47 return new ProcessorResult(result.addSkipped(attributeValueReader, CONSTRAINT_NAME));
48 }
49
50 ConstraintValidationResult constraintValidationResult = processPrerequisiteConstraint(constraint,
51 attributeValueReader);
52
53 if (constraint != null) {
54 if (StringUtils.isNotBlank(constraint.getMessageKey())) {
55 constraintValidationResult.setConstraintLabelKey(constraint.getMessageKey());
56 } else {
57 constraintValidationResult.setConstraintLabelKey(
58 UifConstants.Messages.VALIDATION_MSG_KEY_PREFIX + FALLBACK_KEY);
59 }
60 constraintValidationResult.setErrorParameters(constraint.getValidationMessageParamsArray());
61 }
62
63 result.addConstraintValidationResult(attributeValueReader, constraintValidationResult);
64
65 return new ProcessorResult(constraintValidationResult);
66 }
67
68 @Override
69 public String getName() {
70 return CONSTRAINT_NAME;
71 }
72
73
74
75
76 @Override
77 public Class<? extends Constraint> getConstraintType() {
78 return PrerequisiteConstraint.class;
79 }
80
81 }