1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.krad.datadictionary;
17
18 import org.kuali.rice.krad.datadictionary.parse.BeanTag;
19 import org.kuali.rice.krad.datadictionary.parse.BeanTagAttribute;
20 import org.kuali.rice.krad.datadictionary.validator.ValidationTrace;
21 import org.kuali.rice.krad.util.ExternalizableBusinessObjectUtils;
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 @BeanTag(name = "supportAttributeDefinition-bean")
38 public class SupportAttributeDefinition extends PrimitiveAttributeDefinition {
39 private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(SupportAttributeDefinition.class);
40 private static final long serialVersionUID = -1719022365280776405L;
41
42 protected boolean identifier;
43
44 public SupportAttributeDefinition() {}
45
46 @BeanTagAttribute(name = "identifier")
47 public boolean isIdentifier() {
48 return identifier;
49 }
50
51
52
53
54
55 public void setIdentifier(boolean identifier) {
56 this.identifier = identifier;
57 }
58
59
60
61
62
63
64 @Override
65 public void completeValidation(Class rootBusinessObjectClass, Class otherBusinessObjectClass) {
66 completeValidation(rootBusinessObjectClass, otherBusinessObjectClass, new ValidationTrace());
67 }
68
69
70
71
72
73
74 @Override
75 public void completeValidation(Class rootBusinessObjectClass, Class otherBusinessObjectClass,
76 ValidationTrace tracer) {
77 tracer.addBean(this.getClass().getSimpleName(), ValidationTrace.NO_BEAN_ID);
78 try {
79 if (!DataDictionary.isPropertyOf(rootBusinessObjectClass, getSourceName())) {
80 String currentValues[] = {"attribute = " + getSourceName(), "class = " + rootBusinessObjectClass};
81 tracer.createError("Unable to find attribute in class", currentValues);
82 }
83 if (!DataDictionary.isPropertyOf(otherBusinessObjectClass, getTargetName())
84 && !ExternalizableBusinessObjectUtils.isExternalizableBusinessObjectInterface(
85 otherBusinessObjectClass)) {
86
87 String currentValues[] = {"attribute = " + getTargetName(), "class = " + otherBusinessObjectClass};
88 tracer.createError("Unable to find attribute in class", currentValues);
89 }
90 } catch (RuntimeException ex) {
91 String currentValues[] = {"Exception = " + ex.getMessage()};
92 tracer.createError("Unable to validate attribute", currentValues);
93 LOG.error( "Exception while validating SupportAttributeDefintion on " + rootBusinessObjectClass + ": " + this, ex);
94 }
95 }
96
97 @Override
98 public String toString() {
99 StringBuilder builder = new StringBuilder();
100 builder.append("SupportAttributeDefinition [identifier=").append(this.identifier).append(", sourceName=")
101 .append(this.sourceName).append(", targetName=").append(this.targetName).append("]");
102 return builder.toString();
103 }
104
105 }
106