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 }