This project has retired. For details please refer to its
Attic page.
AbstractSimpleValidator xref
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.juddi.validation.vsv;
17
18 import java.util.ArrayList;
19 import java.util.List;
20 import org.apache.juddi.v3.error.ErrorMessage;
21 import org.apache.juddi.v3.error.InvalidValueException;
22 import org.uddi.api_v3.BindingTemplate;
23 import org.uddi.api_v3.BusinessEntity;
24 import org.uddi.api_v3.BusinessService;
25 import org.uddi.api_v3.KeyedReference;
26 import org.uddi.api_v3.KeyedReferenceGroup;
27 import org.uddi.api_v3.PublisherAssertion;
28 import org.uddi.api_v3.TModel;
29 import org.uddi.api_v3.TModelInstanceInfo;
30 import org.uddi.v3_service.DispositionReportFaultMessage;
31
32
33
34
35
36
37
38
39
40
41 public abstract class AbstractSimpleValidator implements ValueSetValidator {
42
43 public abstract String getMyKey();
44
45 @Override
46 public void validateValuesBindingTemplate(List<BindingTemplate> items, String xpath) throws DispositionReportFaultMessage {
47 if (items == null) {
48 return;
49 }
50 for (int i = 0; i < items.size(); i++) {
51 if (items.get(i).getCategoryBag() != null) {
52 validatedValuesKeyRef(items.get(i).getCategoryBag().getKeyedReference(), xpath + "bindingTemplate(" + i + ").categoryBag.");
53 validatedValuesKeyRefGrp(items.get(i).getCategoryBag().getKeyedReferenceGroup(), xpath + "bindingTemplate(" + i + ").categoryBag.");
54 }
55 if (items.get(i).getTModelInstanceDetails() != null) {
56
57 validateTmodelInstanceDetails(items.get(i).getTModelInstanceDetails().getTModelInstanceInfo(), xpath + "bindingTemplate(" + i + ").tModelInstanceDetails.");
58 }
59 }
60 }
61
62 @Override
63 public void validateValuesBusinessEntity(List<BusinessEntity> items) throws DispositionReportFaultMessage {
64 if (items == null) {
65 return;
66 }
67 for (int i = 0; i < items.size(); i++) {
68 if (items.get(i).getCategoryBag() != null) {
69 validatedValuesKeyRef(items.get(i).getCategoryBag().getKeyedReference(), "businessEntity(" + i + ").categoryBag.");
70 validatedValuesKeyRefGrp(items.get(i).getCategoryBag().getKeyedReferenceGroup(), "businessEntity(" + i + ").categoryBagGroup.");
71 }
72 if (items.get(i).getIdentifierBag() != null) {
73 validatedValuesKeyRef(items.get(i).getIdentifierBag().getKeyedReference(), "businessEntity(" + i + ").identifierBag.");
74 }
75 if (items.get(i).getBusinessServices() != null) {
76 validateValuesBusinessService(items.get(i).getBusinessServices().getBusinessService(), "businessEntity(" + i + ").");
77 }
78 }
79 }
80
81 @Override
82 public void validateValuesBusinessService(List<BusinessService> items, String xpath) throws DispositionReportFaultMessage {
83 if (items == null) {
84 return;
85 }
86 for (int i = 0; i < items.size(); i++) {
87 if (items.get(i).getCategoryBag() != null) {
88 validatedValuesKeyRef(items.get(i).getCategoryBag().getKeyedReference(), xpath + "businessService(" + i + ").categoryBag.");
89 validatedValuesKeyRefGrp(items.get(i).getCategoryBag().getKeyedReferenceGroup(), xpath + "businessService(" + i + ").categoryBag.");
90 }
91 if (items.get(i).getBindingTemplates() != null) {
92 validateValuesBindingTemplate(items.get(i).getBindingTemplates().getBindingTemplate(), xpath + xpath + "businessService(" + i + ").");
93 }
94 }
95 }
96
97 @Override
98 public void validateValuesPublisherAssertion(List<PublisherAssertion> items) throws DispositionReportFaultMessage {
99 if (items == null) {
100 return;
101 }
102 for (int i = 0; i < items.size(); i++) {
103 if (items.get(i).getKeyedReference() != null) {
104 List<KeyedReference> temp = new ArrayList<KeyedReference>();
105 temp.add(items.get(i).getKeyedReference());
106 validatedValuesKeyRef(temp, "publisherAssertion(" + i + ").");
107 }
108 }
109 }
110
111 private void validatedValuesKeyRef(List<KeyedReference> items, String xpath) throws DispositionReportFaultMessage {
112 if (items == null) {
113 return;
114 }
115
116 StringBuilder err = new StringBuilder();
117 for (int i = 0; i < items.size(); i++) {
118 if (items.get(i).getTModelKey().equalsIgnoreCase(getMyKey())) {
119 List<String> validValues = getValidValues();
120 if (validValues != null) {
121
122
123 boolean localfound = false;
124 for (int k = 0; k < validValues.size(); k++) {
125 if (validValues.get(k).equals(items.get(i).getKeyValue())) {
126
127 localfound = true;
128 }
129 }
130 if (!localfound) {
131
132 err.append(xpath).append("keyedReference(").append(i).append(")=").append(items.get(i).getKeyValue()).append(" ");
133 }
134 }
135 }
136 }
137 if (err.length() > 0) {
138 throw new InvalidValueException(new ErrorMessage("errors.valuesetvalidation.invalidcontent", err.toString() + getPrintableValidValues()));
139 }
140 }
141
142 private void validatedValuesKeyRefGrp(List<KeyedReferenceGroup> items, String xpath) throws DispositionReportFaultMessage {
143 if (items == null) {
144 return;
145 }
146 for (int i = 0; i < items.size(); i++) {
147 validatedValuesKeyRef(items.get(i).getKeyedReference(), xpath + "keyReferenceGroup(" + i + ").");
148 }
149 }
150
151 @Override
152 public void validateTmodelInstanceDetails(List<TModelInstanceInfo> tModelInstanceInfo, String xpath) throws DispositionReportFaultMessage {
153
154 }
155
156 @Override
157 public abstract List<String> getValidValues();
158
159 @Override
160 public void validateValuesTModel(List<TModel> items) throws DispositionReportFaultMessage {
161 if (items == null) {
162 return;
163 }
164 for (int i = 0; i < items.size(); i++) {
165 if (items.get(i).getCategoryBag() != null) {
166 validatedValuesKeyRef(items.get(i).getCategoryBag().getKeyedReference(), "tModel(" + i + ").categoryBag.");
167 validatedValuesKeyRefGrp(items.get(i).getCategoryBag().getKeyedReferenceGroup(), "tModel(" + i + ").categoryBag.");
168 }
169 if (items.get(i).getIdentifierBag() != null) {
170 validatedValuesKeyRef(items.get(i).getIdentifierBag().getKeyedReference(), "tModel(" + i + ").identifierBag.");
171 }
172 }
173 }
174
175 public static void validateKeyNotPresentKeyRef(List<KeyedReference> items, String key, String itemtype) throws DispositionReportFaultMessage {
176 if (items == null) {
177 return;
178 }
179 for (int i = 0; i < items.size(); i++) {
180 validateKeyNotPresentKeyRef(items.get(i), key, itemtype);
181 }
182 }
183
184 public static void validateKeyNotPresentKeyRef(KeyedReference item, String key, String itemtype) throws DispositionReportFaultMessage {
185 if (item == null) {
186 return;
187 }
188 if (key.equalsIgnoreCase(item.getTModelKey())) {
189 throw new InvalidValueException(new ErrorMessage("errors.valuesetvalidation.invalidcontent", "key " + key + " not allowed on " + itemtype));
190 }
191 }
192
193 public static void validateKeyNotPresentKeyRefGrp(List<KeyedReferenceGroup> items, String key, String itemtype) throws DispositionReportFaultMessage {
194 if (items == null) {
195 return;
196 }
197 for (int i = 0; i < items.size(); i++) {
198 if (key.equalsIgnoreCase(items.get(i).getTModelKey())) {
199 throw new InvalidValueException(new ErrorMessage("errors.valuesetvalidation.invalidcontent", "key " + key + " not allowed on " + itemtype));
200 }
201 validateKeyNotPresentKeyRef(items.get(i).getKeyedReference(), key, itemtype);
202 }
203 }
204
205 private String getPrintableValidValues() {
206 StringBuilder sb = new StringBuilder();
207 sb.append(" Valid Values:[");
208 List<String> validValues = getValidValues();
209 for (int i = 0; i < validValues.size(); i++) {
210 sb.append(validValues.get(i));
211 if (i + 1 < validValues.size()) {
212 sb.append(",");
213 }
214 }
215 sb.append("]");
216 return sb.toString();
217 }
218
219 }