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
18
19 package org.uddi.api_v3;
20
21 import java.io.Serializable;
22 import java.util.ArrayList;
23 import java.util.List;
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.XmlTransient;
29 import javax.xml.bind.annotation.XmlType;
30
31
32 /**
33 * · authInfo: This optional argument is an element that contains an
34 * authentication token. Registries that wish to restrict who can perform an
35 * inquiry in them typically require authInfo for this call.<br><br>
36 *
37 * · businessKey: This optional uddi_key is used to specify a particular
38 * businessEntity instance to search. When supplied, this argument is used to
39 * specify an existing businessEntity within which services should be found.
40 * Projected services are included unless the "suppressProjectedServices"
41 * findQualifier is used. If businessKey it is either omitted or specified as
42 * empty (i.e., businessKey=""), this indicates that all businessEntities are to
43 * be searched for services that meet the other criteria supplied without regard
44 * to the business that provides them and service projections does not apply.<br><br>
45 *
46 * · categoryBag: This is a list of category references. The returned
47 * serviceList contains serviceInfo structures matching all of the categories
48 * passed (logical AND by default). Specifying the appropriate findQualifiers
49 * can override this behavior. Matching rules for the use of keyedReferences and
50 * keyedReferenceGroups are described in Section 5.1.7 Matching Rules for
51 * keyedReferences and keyedReferenceGroups.<br><br>
52 *
53 * · findQualifiers: This optional collection of findQualifier elements can be
54 * used to alter the default behavior of search functionality. See Section 5.1.4
55 * Find Qualifiers, for more information.<br><br>
56 *
57 * · find_tModel: This argument provides an alternative or additional way of
58 * specifying tModelKeys that are used to find services which have service
59 * bindings with specific technical fingerprints, as described above for the
60 * tModelBag element. When specified, the find_tModel argument is treated as an
61 * embedded inquiry that is performed prior to searching for services. The
62 * tModelKeys found are those whose tModels match the criteria contained within
63 * the find_tModel element. The tModelKeys found are added to the (possibly
64 * empty) collection specified by the tModelBag prior to finding qualified
65 * services. Note that the authInfo argument to this embedded find_tModel
66 * argument is always ignored. Large result set behavior involving the return of
67 * a listDescription does not apply within an embedded argument. If an
68 * E_unsupported error occurs as part of processing this embedded argument, it
69 * is propagated up to the containing (calling) API.<br><br>
70 *
71 * · listHead: This optional integer value is used to indicate which item SHOULD
72 * be returned as the head of the list. The client may request a subset of the
73 * matching data by indicating which item in the resultant set constitutes the
74 * beginning of the returned data. The use of the listDescription element is
75 * mutually exclusive to the use of the truncated attribute that simply
76 * indicates a truncated result list in the Inquiry APIs. See Section 5.1.5 Use
77 * of listDescription, for a detailed description of the listHead argument.<br><br>
78 *
79 * · maxRows: This optional integer value allows the requesting program to limit
80 * the number of results returned. This argument can be used in conjunction with
81 * the listHead argument.<br><br>
82 *
83 * · name: This optional collection of string values represents one or more
84 * names potentially qualified with xml:lang attributes. Since "exactMatch" is
85 * the default behavior, the value supplied for the name argument must be an
86 * exact match. If the "approximateMatch" findQualifier is used together with an
87 * appropriate wildcard character in the name, then any businessService data
88 * contained in the specified businessEntity (or across all businesses if the
89 * businessKey is omitted or specified as empty) with matching name value will
90 * be returned. Matching occurs using wildcard matching rules. See Section 5.1.6
91 * About Wildcards. If multiple name values are passed, the match occurs on a
92 * logical OR basis within any names supplied. Each name MAY be marked with an
93 * xml:lang adornment. If a language markup is specified, the search results
94 * report a match only on those entries that match both the name value and
95 * language criteria. The match on language is a leftmost case-insensitive
96 * comparison of the characters supplied. This allows one to find all services
97 * whose name begins with an "A" and are expressed in any dialect of French, for
98 * example. Values which can be passed in the language criteria adornment MUST
99 * obey the rules governing the xml:lang data type as defined in Section 3.3.2.3
100 * name.<br><br>
101 *
102 * · tModelBag: Every Web service instance is represented in UDDI by a
103 * bindingTemplate contained within some businessService. A bindingTemplate
104 * contains a collection of tModel references called its "technical fingerprint"
105 * that specifies its type. The tModelBag argument is a collection of tModelKey
106 * values specifying that the search results are to be limited to
107 * businessServices containing bindingTemplates with technical fingerprints that
108 * match.<br><br>
109 *
110 * If a find_tModel argument is specified (see below), it is treated as an
111 * embedded inquiry. The tModelKeys returned as a result of this embedded
112 * find_tModel argument are used as if they had been supplied in a tModelBag
113 * argument. Changing the order of the keys in the collection or specifying the
114 * same tModelKey more than once does not change the behavior of the find. *
115 * By default, only bindingTemplates that contain all of the tModelKeys in the
116 * technical fingerprint match (logical AND). Specifying appropriate
117 * findQualifiers can override this behavior so that bindingTemplates containing
118 * any of the specified tModelKeys match (logical OR).<br><br>
119 * <p>Java class for find_service complex type.
120 *
121 * <p>The following schema fragment specifies the expected content contained within this class.
122 *
123 * <pre>
124 * <complexType name="find_service">
125 * <complexContent>
126 * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
127 * <sequence>
128 * <element ref="{urn:uddi-org:api_v3}authInfo" minOccurs="0"/>
129 * <element ref="{urn:uddi-org:api_v3}findQualifiers" minOccurs="0"/>
130 * <element ref="{urn:uddi-org:api_v3}name" maxOccurs="unbounded" minOccurs="0"/>
131 * <element ref="{urn:uddi-org:api_v3}categoryBag" minOccurs="0"/>
132 * <element ref="{urn:uddi-org:api_v3}tModelBag" minOccurs="0"/>
133 * <element ref="{urn:uddi-org:api_v3}find_tModel" minOccurs="0"/>
134 * </sequence>
135 * <attribute name="maxRows" type="{http://www.w3.org/2001/XMLSchema}int" />
136 * <attribute name="businessKey" type="{urn:uddi-org:api_v3}businessKey" />
137 * <attribute name="listHead" type="{http://www.w3.org/2001/XMLSchema}int" />
138 * </restriction>
139 * </complexContent>
140 * </complexType>
141 * </pre>
142 *
143 *
144 */
145 @XmlAccessorType(XmlAccessType.FIELD)
146 @XmlType(name = "find_service", propOrder = {
147 "authInfo",
148 "findQualifiers",
149 "name",
150 "categoryBag",
151 "tModelBag",
152 "findTModel"
153 })
154 public class FindService implements Serializable{
155 @XmlTransient
156 private static final long serialVersionUID = -3908869734136713799L;
157 protected String authInfo;
158 protected FindQualifiers findQualifiers;
159 protected List<Name> name;
160 protected CategoryBag categoryBag;
161 protected TModelBag tModelBag;
162 @XmlElement(name = "find_tModel")
163 protected FindTModel findTModel;
164 @XmlAttribute
165 protected Integer maxRows;
166 @XmlAttribute
167 protected String businessKey;
168 @XmlAttribute
169 protected Integer listHead;
170
171 /**
172 * Gets the value of the authInfo property.
173 *
174 * @return
175 * possible object is
176 * {@link String }
177 *
178 */
179 public String getAuthInfo() {
180 return authInfo;
181 }
182
183 /**
184 * Sets the value of the authInfo property.
185 *
186 * @param value
187 * allowed object is
188 * {@link String }
189 *
190 */
191 public void setAuthInfo(String value) {
192 this.authInfo = value;
193 }
194
195 /**
196 * Gets the value of the findQualifiers property.
197 *
198 * @return
199 * possible object is
200 * {@link FindQualifiers }
201 *
202 */
203 public FindQualifiers getFindQualifiers() {
204 return findQualifiers;
205 }
206
207 /**
208 * Sets the value of the findQualifiers property.
209 *
210 * @param value
211 * allowed object is
212 * {@link FindQualifiers }
213 *
214 */
215 public void setFindQualifiers(FindQualifiers value) {
216 this.findQualifiers = value;
217 }
218
219 /**
220 * Gets the value of the name property.
221 *
222 * <p>
223 * This accessor method returns a reference to the live list,
224 * not a snapshot. Therefore any modification you make to the
225 * returned list will be present inside the JAXB object.
226 * This is why there is not a <CODE>set</CODE> method for the name property.
227 *
228 * <p>
229 * For example, to add a new item, do as follows:
230 * <pre>
231 * getName().add(newItem);
232 * </pre>
233 *
234 *
235 * <p>
236 * Objects of the following type(s) are allowed in the list
237 * {@link Name }
238 *
239 *
240 */
241 public List<Name> getName() {
242 if (name == null) {
243 name = new ArrayList<Name>();
244 }
245 return this.name;
246 }
247
248 /**
249 * Gets the value of the categoryBag property.
250 *
251 * @return
252 * possible object is
253 * {@link CategoryBag }
254 *
255 */
256 public CategoryBag getCategoryBag() {
257 return categoryBag;
258 }
259
260 /**
261 * Sets the value of the categoryBag property.
262 *
263 * @param value
264 * allowed object is
265 * {@link CategoryBag }
266 *
267 */
268 public void setCategoryBag(CategoryBag value) {
269 this.categoryBag = value;
270 }
271
272 /**
273 * Gets the value of the tModelBag property.
274 *
275 * @return
276 * possible object is
277 * {@link TModelBag }
278 *
279 */
280 public TModelBag getTModelBag() {
281 return tModelBag;
282 }
283
284 /**
285 * Sets the value of the tModelBag property.
286 *
287 * @param value
288 * allowed object is
289 * {@link TModelBag }
290 *
291 */
292 public void setTModelBag(TModelBag value) {
293 this.tModelBag = value;
294 }
295
296 /**
297 * Gets the value of the findTModel property.
298 *
299 * @return
300 * possible object is
301 * {@link FindTModel }
302 *
303 */
304 public FindTModel getFindTModel() {
305 return findTModel;
306 }
307
308 /**
309 * Sets the value of the findTModel property.
310 *
311 * @param value
312 * allowed object is
313 * {@link FindTModel }
314 *
315 */
316 public void setFindTModel(FindTModel value) {
317 this.findTModel = value;
318 }
319
320 /**
321 * Gets the value of the maxRows property.
322 *
323 * @return
324 * possible object is
325 * {@link Integer }
326 *
327 */
328 public Integer getMaxRows() {
329 return maxRows;
330 }
331
332 /**
333 * Sets the value of the maxRows property.
334 *
335 * @param value
336 * allowed object is
337 * {@link Integer }
338 *
339 */
340 public void setMaxRows(Integer value) {
341 this.maxRows = value;
342 }
343
344 /**
345 * Gets the value of the businessKey property.
346 *
347 * @return
348 * possible object is
349 * {@link String }
350 *
351 */
352 public String getBusinessKey() {
353 return businessKey;
354 }
355
356 /**
357 * Sets the value of the businessKey property.
358 *
359 * @param value
360 * allowed object is
361 * {@link String }
362 *
363 */
364 public void setBusinessKey(String value) {
365 this.businessKey = value;
366 }
367
368 /**
369 * Gets the value of the listHead property.
370 *
371 * @return
372 * possible object is
373 * {@link Integer }
374 *
375 */
376 public Integer getListHead() {
377 return listHead;
378 }
379
380 /**
381 * Sets the value of the listHead property.
382 *
383 * @param value
384 * allowed object is
385 * {@link Integer }
386 *
387 */
388 public void setListHead(Integer value) {
389 this.listHead = value;
390 }
391
392 }