This project has retired. For details please refer to its Attic page.
DispositionReport xref
View Javadoc
1   /*
2    * Copyright 2001-2008 The Apache Software Foundation.
3    * 
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    * 
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    * 
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   *
16   */
17  package org.uddi.api_v2;
18  
19  import java.util.ArrayList;
20  import java.util.List;
21  import javax.xml.bind.JAXBElement;
22  import javax.xml.bind.JAXBException;
23  import javax.xml.bind.Unmarshaller;
24  import javax.xml.bind.annotation.XmlAccessType;
25  import javax.xml.bind.annotation.XmlAccessorType;
26  import javax.xml.bind.annotation.XmlAttribute;
27  import javax.xml.bind.annotation.XmlElement;
28  import javax.xml.bind.annotation.XmlType;
29  import org.uddi.JAXBContextUtil;
30  import org.w3c.dom.Node;
31  
32  /**
33   * <p>
34   * Java class for dispositionReport complex type.
35   *
36   * <p>
37   * The following schema fragment specifies the expected content contained within
38   * this class.
39   *
40   * <pre>
41   * &lt;complexType name="dispositionReport">
42   *   &lt;complexContent>
43   *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
44   *       &lt;sequence>
45   *         &lt;element ref="{urn:uddi-org:api_v2}result" maxOccurs="unbounded"/>
46   *       &lt;/sequence>
47   *       &lt;attribute name="generic" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
48   *       &lt;attribute name="operator" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
49   *       &lt;attribute name="truncated" type="{urn:uddi-org:api_v2}truncated" />
50   *     &lt;/restriction>
51   *   &lt;/complexContent>
52   * &lt;/complexType>
53   * </pre>
54   *
55   *
56   */
57  @XmlAccessorType(XmlAccessType.FIELD)
58  @XmlType(name = "dispositionReport", propOrder = {
59       "result"
60  })
61  public class DispositionReport {
62  
63       
64  
65       @XmlElement(required = true)
66       protected List<Result> result;
67       @XmlAttribute(name = "generic", required = true)
68       protected String generic;
69       @XmlAttribute(name = "operator", required = true)
70       protected String operator;
71       @XmlAttribute(name = "truncated")
72       protected Truncated truncated;
73  
74       /**
75        * (30000) Signifies that a particular publisher assertion (consisting of
76        * two businessKey values, and a keyed reference with three components)
77        * cannot be identified in a save or delete operation.
78        */
79       public final static transient String E_ASSERTION_NOT_FOUND = "E_assertionNotFound";
80       /**
81        * E_authTokenExpired: (10110) Signifies that the authentication token
82        * information has timed out.
83        */
84       public final static transient String E_AUTH_TOKEN_EXPIRED = "E_authTokenExpired";
85       /**
86        * E_authTokenRequired: (10120) Signifies that an invalid authentication
87        * token was passed to an API call that requires authentication.
88        */
89       public final static transient String E_AUTH_TOKEN_REQUIRED = "E_authTokenRequired";
90       /**
91        * E_accountLimitExceeded: (10160) Signifies that a save request exceeded
92        * the quantity limits for a given data type. See "Structure Limits" in
93        * Appendix D for details.
94        */
95       public final static transient String E_ACCOUNT_LIMIT_EXCEEDED = "E_accountLimitExceeded";
96       /**
97        * E_busy: (10400) Signifies that the request cannot be processed at the
98        * current time.
99        */
100      public final static transient String E_BUSY = "E_busy";
101      /**
102       * E_categorizationNotAllowed: (20100) RETIRED. Used for UDDI Version 1.0
103       * compatibility. Replaced by E_valueNotAllowed in 2 and higher.
104       * Restrictions have been placed on the types of information that can be
105       * categorized within a specific taxonomy. The data provided does not
106       * conform to the restrictions placed on the category used. Used with
107       * categorization only.
108       */
109      public final static transient String E_CATEGORIZATION_NOT_ALLOWED = "E_categorizationNotAllowed";
110      /**
111       * E_fatalError: (10500) Signifies that a serious technical error has
112       * occurred while processing the request.
113       */
114      public final static transient String E_FATAL_ERROR = "E_fatalError";
115      /**
116       * E_invalidCategory (20000): RETIRED. Used for UDDI Version 1.0
117       * compatibility only. Replaced by E_invalidValue in version 2 and higher.
118       * Signifies that the given keyValue did not correspond to a category
119       * within the taxonomy identified by the tModelKey. Used with
120       * categorization only.
121       */
122      @Deprecated
123      public final static transient String E_INVALID_CATEGORY = "E_invalidCategory";
124      /**
125       * E_invalidCompletionStatus: (30100) signifies that one of the assertion
126       * status values passed is unrecognized. The completion status that caused
127       * the problem will be clearly indicated in the error text.
128       */
129      public final static transient String E_INVALID_COMPLETION_STATUS = "E_invalidCompletionStatus";
130      /**
131       * E_invalidKeyPassed: (10210) Signifies that the uuid_key value passed did
132       * not match with any known key values. The details on the invalid key will
133       * be included in the dispositionReport element.
134       */
135      public final static transient String E_INVALID_KEY_PASSED = "E_invalidKeyPassed";
136      /**
137       * E_invalidProjection: (20230) Signifies that an attempt was made to save
138       * a businessEntity containing a service projection that does not match the
139       * businessService being projected. The serviceKey of at least one such
140       * businessService will be included in the dispositionReport.
141       */
142      public final static transient String E_INVALID_PROJECTION = "E_invalidProjection";
143      /**
144       * E_invalidURLPassed: (10220) DO NOT USE. Signifies that an error occurred
145       * during processing of a save function involving accessing data from a
146       * remote URL. The details of the HTTP Get report will be included in the
147       * dispositionReport element. Not used in V1 or V2.
148       */
149      public final static transient String E_INVALID_URL_PASSED = "E_invalidURLPassed";
150      /**
151       * E_invalidValue: (20200) A value that was passed in a keyValue attribute
152       * did not pass validation. This applies to checked categorizations,
153       * identifiers and other validated code lists. The error text will clearly
154       * indicate the key and value combination that failed validation.
155       */
156      public final static transient String E_INVALID_VALUE = "E_invalidValue";
157      /**
158       * E_keyRetired: (10310) DO NOT USE. Signifies that a uuid_key value passed
159       * has been removed from the registry. While the key was once valid as an
160       * accessor, and is still possibly valid, the publisher has removed the
161       * information referenced by the uuid_key passed. V1 errata – not used.
162       * Included here for historical code-set completion.
163       */
164      public final static transient String E_KEY_RETIRED = "E_keyRetired";
165      /**
166       * E_languageError: (10060) Signifies that an error was detected while
167       * processing elements that were annotated with xml:lang qualifiers.
168       * Presently, only the description and name elements support xml:lang
169       * qualifications.
170       */
171      public final static transient String E_LANGUAGE_ERROR = "E_languageError";
172      /**
173       * E_messageTooLarge: (30110) Signifies that the message is too large. The
174       * upper limit will be clearly indicated in the error text.
175       */
176      public final static transient String E_MESSAGE_TOO_LARGE = "E_messageTooLarge";
177      /**
178       * E_nameTooLong: (10020) RETIRED. Used for UDDI Version 1.0 compatibility
179       * only. Signifies that the partial name value passed exceeds the maximum
180       * name length designated by the policy of an implementation or Operator
181       * Site.
182       */
183      public final static transient String E_NAME_TOO_LONG = "E_nameTooLong";
184      /**
185       * E_operatorMismatch: (10130) DO NOT USE. Signifies that an attempt was
186       * made to use the publishing API to change data that is mastered at
187       * another Operator Site. This error is only relevant to the public
188       * Operator Sites and does not apply to other UDDI compatible registries.
189       * V1 defined this in error – caused precedence problems with
190       * E_unknownUser. Included here for historical code set completeness.
191       * Retired.
192       */
193      public final static transient String E_OPERATOR_MISMATCH = "E_operatorMismatch";
194      /**
195       * E_publisherCancelled: (30220) The target publisher cancelled the custody
196       * transfer operation.
197       */
198      public final static transient String E_PUBLISHER_CANCELLED = "E_publisherCancelled";
199      /**
200       * E_requestDenied: (30210) A custody transfer request has been refused.
201       */
202      public final static transient String E_REQUEST_DENIED = "E_requestDenied";
203      /**
204       * E_requestTimeout: (20240) Signifies that the request could not be
205       * carried out because a needed web service, such as validate_values, did
206       * not respond in a reasonable amount of time. Details identifying the
207       * failing service will be included in the dispositionReport element.
208       */
209      public final static transient String E_REQUEST_TIMEOUT = "E_requestTimeout";
210      /**
211       * E_secretUnknown: (30230) The target publisher was unable to match the
212       * shared secret and the five (5) attempt limit was exhausted. The target
213       * operator automatically cancelled the transfer operation.
214       */
215      public final static transient String E_SECRET_UNKNOWN = "E_secretUnknown";
216      /**
217       * E_success: (0) Signifies no failure occurred. This return code is used
218       * with the dispositionReport for reporting results from requests with no
219       * natural response document.
220       */
221      public final static transient String E_SUCCESS = "E_success";
222      /**
223       * E_tooManyOptions: (10030) Signifies that too many or incompatible
224       * arguments were passed. The error text will clearly indicate the nature
225       * of the problem.
226       */
227      public final static transient String E_TOO_MANY_OPTIONS = "E_tooManyOptions";
228      /**
229       * E_transferAborted: (30200) Signifies that a custody transfer request
230       * will not succeed.
231       */
232      public final static transient String E_TRANSFER_ABORTED = "E_transferAborted";
233      /**
234       * E_unknownUser: (10150) Signifies that the user ID and password pair
235       * passed in a get_authToken message is not known to the Operator Site or
236       * is not valid.
237       */
238      public final static transient String E_UNKNOWN_USER = "E_unknownUser";
239      /**
240       * E_unrecognizedVersion: (10040) Signifies that the value of the generic
241       * attribute passed is unsupported by the Operator Instance being queried.
242       */
243      public final static transient String E_UNRECOGNIZED_VERSION = "E_unrecognizedVersion";
244      /**
245       * E_unsupported: (10050) Signifies that the implementer does not support a
246       * feature or API.
247       */
248      public final static transient String E_UNSUPPORTED = "E_unsupported";
249      /**
250       * E_unvalidatable: (20220) Signifies that an attempt was made to reference
251       * a taxonomy or identifier system in a keyedReference whose tModel is
252       * categorized with the unvalidatable categorization.
253       */
254      public final static transient String E_UNVALIDATABLE = "E_unvalidatable";
255      /**
256       * E_userMismatch: (10140) Signifies that an attempt was made to use the
257       * publishing API to change data that is controlled by another party.
258       */
259      public final static transient String E_USER_MISMATCH = "E_userMismatch";
260      /**
261       * E_valueNotAllowed: (20210) Signifies that a value did not pass
262       * validation because of contextual issues. The value may be valid in some
263       * contexts, but not in the context used. The error text may contain
264       * information about the contextual problem.
265       */
266      public final static transient String E_VALUE_NOT_ALLOWED = "E_valueNotAllowed";
267 
268      public DispositionReport(Node firstChild) throws JAXBException{
269           super();
270 		JAXBContextUtil.getContext(this.getClass().getPackage().getName());
271 		Unmarshaller u = JAXBContextUtil.getContext(
272 				this.getClass().getPackage().getName()).createUnmarshaller();
273 		JAXBElement<DispositionReport> element =  u.unmarshal(firstChild, DispositionReport.class);
274 		this.result = element.getValue().getResult();
275 		this.truncated = element.getValue().truncated;
276      }
277 
278      public DispositionReport() {
279           
280      }
281 
282      /**
283       * Gets the value of the result property.
284       *
285       * <p>
286       * This accessor method returns a reference to the live list, not a
287       * snapshot. Therefore any modification you make to the returned list will
288       * be present inside the JAXB object. This is why there is not a
289       * <CODE>set</CODE> method for the result property.
290       *
291       * <p>
292       * For example, to add a new item, do as follows:
293       * <pre>
294       *    getResult().add(newItem);
295       * </pre>
296       *
297       *
298       * <p>
299       * Objects of the following type(s) are allowed in the list {@link Result }
300       *
301       *
302       */
303      public List<Result> getResult() {
304           if (result == null) {
305                result = new ArrayList<Result>();
306           }
307           return this.result;
308      }
309 
310      /**
311       * Gets the value of the generic property.
312       *
313       * @return possible object is {@link String }
314       *
315       */
316      public String getGeneric() {
317           return generic;
318      }
319 
320      /**
321       * Sets the value of the generic property.
322       *
323       * @param value allowed object is {@link String }
324       *
325       */
326      public void setGeneric(String value) {
327           this.generic = value;
328      }
329 
330      /**
331       * Gets the value of the operator property.
332       *
333       * @return possible object is {@link String }
334       *
335       */
336      public String getOperator() {
337           return operator;
338      }
339 
340      /**
341       * Sets the value of the operator property.
342       *
343       * @param value allowed object is {@link String }
344       *
345       */
346      public void setOperator(String value) {
347           this.operator = value;
348      }
349 
350      /**
351       * Gets the value of the truncated property.
352       *
353       * @return possible object is {@link Truncated }
354       *
355       */
356      public Truncated getTruncated() {
357           return truncated;
358      }
359 
360      /**
361       * Sets the value of the truncated property.
362       *
363       * @param value allowed object is {@link Truncated }
364       *
365       */
366      public void setTruncated(Truncated value) {
367           this.truncated = value;
368      }
369 
370      /**
371      * Determines if one of the Results in the this DispositionReport has a Error Code
372      * that matches the errCodeKey passed in. The errCodeKey should be one
373      * of the 
374      * 
375      * @param errCodeKey
376      * @return true if the errCodeKey matches with a code in the Results.
377      */
378     public boolean countainsErrorCode(final String errCodeKey) {
379     	boolean isKeyMatch = false;
380 		for (Result result : getResult()) {
381 			String errCode = result.getErrInfo().getErrCode();
382 			if (errCodeKey.equals(errCode)) {
383 				isKeyMatch = true;
384 				break;
385 			}
386 		}
387     	return isKeyMatch;
388     }
389     
390 }