KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > uddi4j > client > UDDIProxy


1 /*
2  * The source code contained herein is licensed under the IBM Public License
3  * Version 1.0, which has been approved by the Open Source Initiative.
4  * Copyright (C) 2001, International Business Machines Corporation
5  * Copyright (C) 2001, Hewlett-Packard Company
6  * All Rights Reserved.
7  *
8  */

9 package org.uddi4j.client;
10
11
12 import java.net.MalformedURLException JavaDoc;
13 import java.net.URL JavaDoc;
14 import java.util.Arrays JavaDoc;
15 import java.util.Properties JavaDoc;
16 import java.util.Vector JavaDoc;
17
18 import org.uddi4j.UDDIElement;
19 import org.uddi4j.UDDIException;
20 import org.uddi4j.datatype.Name;
21 import org.uddi4j.datatype.assertion.PublisherAssertion;
22 import org.uddi4j.request.AddPublisherAssertions;
23 import org.uddi4j.request.DeleteBinding;
24 import org.uddi4j.request.DeleteBusiness;
25 import org.uddi4j.request.DeletePublisherAssertions;
26 import org.uddi4j.request.DeleteService;
27 import org.uddi4j.request.DeleteTModel;
28 import org.uddi4j.request.DiscardAuthToken;
29 import org.uddi4j.request.FindBinding;
30 import org.uddi4j.request.FindBusiness;
31 import org.uddi4j.request.FindRelatedBusinesses;
32 import org.uddi4j.request.FindService;
33 import org.uddi4j.request.FindTModel;
34 import org.uddi4j.request.GetAssertionStatusReport;
35 import org.uddi4j.request.GetAuthToken;
36 import org.uddi4j.request.GetBindingDetail;
37 import org.uddi4j.request.GetBusinessDetail;
38 import org.uddi4j.request.GetBusinessDetailExt;
39 import org.uddi4j.request.GetPublisherAssertions;
40 import org.uddi4j.request.GetRegisteredInfo;
41 import org.uddi4j.request.GetServiceDetail;
42 import org.uddi4j.request.GetTModelDetail;
43 import org.uddi4j.request.SaveBinding;
44 import org.uddi4j.request.SaveBusiness;
45 import org.uddi4j.request.SaveService;
46 import org.uddi4j.request.SaveTModel;
47 import org.uddi4j.request.SetPublisherAssertions;
48 import org.uddi4j.request.ValidateValues;
49 import org.uddi4j.response.AssertionStatusReport;
50 import org.uddi4j.response.AuthToken;
51 import org.uddi4j.response.BindingDetail;
52 import org.uddi4j.response.BusinessDetail;
53 import org.uddi4j.response.BusinessDetailExt;
54 import org.uddi4j.response.BusinessList;
55 import org.uddi4j.response.CompletionStatus;
56 import org.uddi4j.response.DispositionReport;
57 import org.uddi4j.response.PublisherAssertions;
58 import org.uddi4j.response.RegisteredInfo;
59 import org.uddi4j.response.RelatedBusinessesList;
60 import org.uddi4j.response.ServiceDetail;
61 import org.uddi4j.response.ServiceList;
62 import org.uddi4j.response.TModelDetail;
63 import org.uddi4j.response.TModelList;
64 import org.uddi4j.transport.TransportException;
65 import org.uddi4j.transport.TransportFactory;
66 import org.uddi4j.util.AuthInfo;
67 import org.uddi4j.util.CategoryBag;
68 import org.uddi4j.util.DiscoveryURLs;
69 import org.uddi4j.util.FindQualifiers;
70 import org.uddi4j.util.IdentifierBag;
71 import org.uddi4j.util.KeyedReference;
72 import org.uddi4j.util.TModelBag;
73 import org.uddi4j.util.UploadRegister;
74 import org.w3c.dom.Element JavaDoc;
75
76 /**
77  * Represents a UDDI server and the actions that can be
78  * invoked against it.<P>
79  *
80  * The API is described in the UDDI API specification
81  * available from <A HREF="http://www.uddi.org">
82  * http://www.uddi.org </A>.
83  *
84  * The UDDI API specification is required to understand
85  * and utilize this API. This class attempts to closely
86  * pattern the API document.<P>
87  *
88  * @author David Melgar (dmelgar@us.ibm.com)
89  * @author Ravi Trivedi (ravi_trivedi@hp.com)
90  * @author Vivek Chopra (vivek@soaprpc.com)
91  * @author Ozzy (ozzy@hursley.ibm.com)
92  */

93 public class UDDIProxy {
94
95    // Variables
96
protected URL JavaDoc inquiryURL = null;
97    protected URL JavaDoc publishURL = null;
98    TransportFactory transportFactory = null;
99    Properties JavaDoc config = null;
100
101
102    /**
103     * Default constructor.
104    */

105    public UDDIProxy() {
106       transportFactory = TransportFactory.newInstance();
107    }
108
109    /**
110     * Construct a UDDIProxy object.
111     *
112     * @param inquiryURL URL to be used for inquiry requests.
113     * @param publishURL URL to be used for publish requests.
114     */

115    public UDDIProxy(URL JavaDoc inquiryURL, URL JavaDoc publishURL) {
116       this();
117       this.inquiryURL = inquiryURL;
118       this.publishURL = publishURL;
119    }
120
121    /**
122     * Construct a UDDIProxy object
123     *
124     * @param p Properties object which contains configuration information for
125     * UDDI4J. This properties object overrides settings normally retrieved
126     * from system properties.
127     * <P>
128     * This object may also specify properties affecting UDDIProxy.
129     * Current settings affected by this properties object include:
130     * <DL>
131     * <DT>org.uddi4j.TransportClassName
132     * <DD>Specifies the name of the SOAP transport support class.
133     * Options include, org.uddi4j.transport.ApacheSOAPTransport,
134     * org.uddi4j.transport.ApacheAxisTransport,
135     * org.uddi4j.transport.HPSOAPTransport.
136     * <DT>org.uddi4j.inquiryURL
137     * <DD>The URL to be used by UDDIProxy for inquiry requests.
138     * setInquiryURL method overrides.
139     * <DT>org.uddi4j.publishURL
140     * <DD>The URL to be used by UDDIProxy for publish requests.
141     * setPublishURL methods override.
142     * </DL>
143     * @exception java.net.MalformedURLException In case the publish or
144     * inquiry URLs are malformed.
145     */

146    public UDDIProxy(Properties JavaDoc p) throws MalformedURLException JavaDoc {
147       setConfiguration(p);
148    }
149
150    /**
151     * Set the configuration properties
152     *
153     * @param p Properties object containing configuration information. See
154     * {@link #UDDIProxy(Properties)} for configuration details.
155     * @exception java.net.MalformedURLException In case the publish or
156     * inquiry URLs are malformed.
157     */

158    public void setConfiguration(Properties JavaDoc p) throws MalformedURLException JavaDoc {
159       // Save the property object within the proxy
160
config = p;
161
162       // use it in send to create factory, or create in the proxy
163
transportFactory = TransportFactory.newInstance(p);
164       if (p.getProperty("org.uddi4j.inquiryURL") != null) {
165          setInquiryURL(p.getProperty( "org.uddi4j.inquiryURL"));
166       }
167       if (p.getProperty("org.uddi4j.publishURL") != null) {
168          setPublishURL(p.getProperty("org.uddi4j.publishURL"));
169       }
170    }
171
172    /**
173     * Get the configuration properties
174     * @return The configuration properties
175     */

176    public Properties JavaDoc getConfiguration() {
177       return config;
178    }
179
180    /**
181     * Set the URL to be used for inquiry requests.
182     *
183     * @param url Inquiry URL string
184     * @exception java.net.MalformedURLException In case the Inquiry URL is
185     * malformed.
186     */

187    public void setInquiryURL(String JavaDoc url) throws java.net.MalformedURLException JavaDoc {
188       this.inquiryURL = new java.net.URL JavaDoc(url);
189    }
190
191    /**
192     * Set the URL to be used for inquiry requests.
193     *
194     * @param url Inquiry URL
195     */

196    public void setInquiryURL(URL JavaDoc url) {
197       this.inquiryURL = url;
198    }
199
200    /**
201     * Set the URL to be used for publish requests. If
202     * HTTPS is specified as the procotol, it must be added
203     * as a supported protocol. For Sun's SSL support, this can be done
204     * with the following code fragment:
205     * <PRE>
206     * System.setProperty("java.protocol.handler.pkgs",
207     * "com.sun.net.ssl.internal.www.protocol");
208     * java.security.Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
209     * </PRE>
210     *
211     * @param url
212     * @exception java.net.MalformedURLException
213     * Thrown if HTTPS is not registered as a valid URL protocol.
214     */

215    public void setPublishURL(String JavaDoc url) throws java.net.MalformedURLException JavaDoc {
216       this.publishURL = new java.net.URL JavaDoc(url);
217    }
218
219    /**
220     * Set the URL to be used for publish requests.
221     *
222     * @param url Publish URL
223     */

224    public void setPublishURL(URL JavaDoc url) {
225       this.publishURL = url;
226    }
227
228
229    /**
230     * The find_binding method returns a bindingDetail message that contains
231     * a bindingTemplates structure with zero or more bindingTemplate structures
232     * matching the criteria specified in the argument list.
233     *
234     * @param findQualifiers
235     * This collection of findQualifier elements can be used to alter the default
236     * behavior of search functionality.
237     * @param serviceKey Used to specify a particular instance of a businessService element
238     * in the registered data. Only bindings in the specific businessService
239     * data identified by the serviceKey passed will be searched.
240     * @param tModelBag This is a list of tModel uuid_key values that represent the technical
241     * fingerprint to locate in a bindingTemplate structure contained within
242     * the businessService instance specified by the serviceKey value. If more
243     * than one tModel key is specified in this structure, only bindingTemplate
244     * information that exactly matches all of the tModel keys specified will
245     * be returned (logical AND). The order of the keys in the tModelBag is
246     * not relevant. All tModelKey values begin with a uuid URN qualifier
247     * (e.g. "uuid:" followed by a known tModel UUID value.
248     * @param maxRows This optional integer value allows the requesting program to limit
249     * the number of results returned.
250     * @return This function returns a bindingDetail message on success. In the event that no matches were
251     * located for the specified criteria, the bindingDetail structure returned in the response the will be
252     * empty (e.g. contain no bindingTemplate data.)
253     * In the even of a large number of matches, an Operator Site may truncate the result set. If
254     * this occurs, the response message will contain the truncated attribute with the value of this attribute
255     * set to true.
256     * Searching using tModelBag will also return any bindingTemplate information that matches due to
257     * hostingRedirector references. The resolved bindingTemplate structure will be returned, even if that
258     * bindingTemplate is owned by a different businessService structure.
259     * @exception UDDIException
260     * @exception TransportException
261     */

262    public BindingDetail find_binding(FindQualifiers findQualifiers,
263                                      String JavaDoc serviceKey,
264                                      TModelBag tModelBag,
265                                      int maxRows)
266           throws UDDIException, TransportException {
267       FindBinding request = new FindBinding();
268       request.setFindQualifiers(findQualifiers);
269       request.setServiceKey(serviceKey);
270       request.setTModelBag(tModelBag);
271       if (maxRows>0) request.setMaxRows(maxRows);
272       return new BindingDetail(send(request, true));
273    }
274
275    /**
276     * Find business matching specified criteria.
277     *
278     * @param name Partial business name to match. Leftmost match.
279     * @param findQualifiers
280     * Optional findQualifiers. null indicates no find
281     * qualifiers.
282     * @param maxRows Maximum number of results. 0 indicates no maximum.
283     * @return This function returns a businessList on success. In the event that no
284     * matches were located for the specified criteria, a businessList
285     * structure with zero businessInfo structures is returned.
286     * @exception UDDIException
287     * Contains a DispositionReport that indicates the
288     * error number.
289     * @exception TransportException
290     * Thrown if non-UDDI related communication errors occur.
291     * @deprecated This method has been deprecated. Use
292     * {@link #find_business(Vector, DiscoveryURLs, IdentifierBag, CategoryBag, TModelBag,
293     * FindQualifiers, int)} instead
294     *
295     */

296    public BusinessList find_business(String JavaDoc name,
297                                      FindQualifiers findQualifiers,
298                                      int maxRows)
299           throws UDDIException, TransportException {
300       Vector JavaDoc names = new Vector JavaDoc();
301       names.addElement(new Name(name));
302       return find_business(names, null, null, null, null, findQualifiers, maxRows);
303    }
304    /**
305     * The find_business message returns a businessList message that matches
306     * the conditions specified in the arguments.
307     *
308     * @param identifierBag
309     * This is a list of business identifier references. The returned businessList
310     * contains businessInfo structures matching any of the identifiers passed
311     * (logical OR).
312     * @param findQualifiers
313     * can be used to alter the default behavior of search functionality.
314     * @param maxRows allows the requesting program to limit the number of results returned.
315     * @return This function returns a businessList on success. In the event that no
316     * matches were located for the specified criteria, a businessList
317     * structure with zero businessInfo structures is returned.
318     * @exception UDDIException
319     * @exception TransportException
320     * @deprecated This method has been deprecated. Use
321     * {@link #find_business(Vector, DiscoveryURLs, IdentifierBag, CategoryBag, TModelBag,
322     * FindQualifiers, int)} instead
323     */

324    public BusinessList find_business(IdentifierBag identifierBag,
325                                      FindQualifiers findQualifiers,
326                                      int maxRows)
327           throws UDDIException, TransportException {
328      return find_business(new Vector JavaDoc() , null, identifierBag, null, null, findQualifiers, maxRows);
329    }
330
331    /**
332     * The find_business message returns a businessList message that matches
333     * the conditions specified in the arguments.
334     *
335     * @param categoryBag
336     * This is a list of category references. The returned businessList
337     * contains businessInfo structures matching all of the categories
338     * passed (logical AND).
339     * @param findQualifiers
340     * can be used to alter the default behavior of search functionality.
341     * @param maxRows allows the requesting program to limit the number of results returned.
342     * @return This function returns a businessList on success. In the event that no
343     * matches were located for the specified criteria, a businessList
344     * structure with zero businessInfo structures is returned.
345     * @exception UDDIException
346     * @exception TransportException
347     * @deprecated This method has been deprecated. Use
348     * {@link #find_business(Vector, DiscoveryURLs, IdentifierBag, CategoryBag, TModelBag,
349     * FindQualifiers, int)} instead
350     */

351    public BusinessList find_business(CategoryBag categoryBag,
352                                      FindQualifiers findQualifiers,
353                                      int maxRows)
354           throws UDDIException, TransportException {
355       return find_business(new Vector JavaDoc(), null , null , categoryBag, null , findQualifiers, maxRows);
356    }
357
358    /**
359     * The find_business message returns a businessList message that matches
360     * the conditions specified in the arguments.
361     *
362     * @param tModelBag
363     * The registered businessEntity data contains bindingTemplates that in turn
364     * contain specific tModel references. The tModelBag argument lets you
365     * search for businesses that have bindings that are compatible with a
366     * specific tModel pattern. The returned businessList contains businessInfo
367     * structures that match all of the tModel keys passed (logical AND).
368     * tModelKey values must be formatted as URN qualified UUID values
369     * (e.g. prefixed with "uuid:")
370     * @param findQualifiers
371     * can be used to alter the default behavior of search functionality.
372     * @param maxRows allows the requesting program to limit the number of results returned.
373     * @return This function returns a businessList on success. In the event that no
374     * matches were located for the specified criteria, a businessList
375     * structure with zero businessInfo structures is returned.
376     * @exception UDDIException
377     * @exception TransportException
378     * @deprecated This method has been deprecated.Use
379     * {@link #find_business(Vector, DiscoveryURLs, IdentifierBag, CategoryBag, TModelBag,
380     * FindQualifiers, int)} instead
381     */

382    public BusinessList find_business(TModelBag tModelBag,
383                                      FindQualifiers findQualifiers,
384                                      int maxRows)
385           throws UDDIException, TransportException {
386      return find_business(new Vector JavaDoc(), null , null, null, tModelBag, findQualifiers, maxRows);
387    }
388
389    /**
390     * The find_business message returns a businessList message that matches
391     * the conditions specified in the arguments.
392     *
393     * @param discoveryURLs
394     * This is a list of URL's to be matched against the data associated
395     * with the discoveryURL's contents of registered businessEntity information.
396     * To search for URL without regard to useType attribute values, pass
397     * the useType component of the discoveryURL elements as empty attributes.
398     * If useType values are included, then the match will be made only on
399     * registered information that match both the useType and URL value.
400     * The returned businessList contains businessInfo structures matching
401     * any of the URL's passed (logical OR).
402     * @param findQualifiers
403     * can be used to alter the default behavior of search functionality.
404     * @param maxRows allows the requesting program to limit the number of results returned.
405     * @return This function returns a businessList on success. In the event that no
406     * matches were located for the specified criteria, a businessList
407     * structure with zero businessInfo structures is returned.
408     * @exception UDDIException
409     * @exception TransportException
410     * @deprecated This method has been deprecated. Use
411     * {@link #find_business(Vector, DiscoveryURLs, IdentifierBag, CategoryBag, TModelBag,
412     * FindQualifiers, int)} instead
413     */

414    public BusinessList find_business(DiscoveryURLs discoveryURLs,
415                                      FindQualifiers findQualifiers,
416                                      int maxRows)
417           throws UDDIException, TransportException {
418         return find_business(new Vector JavaDoc(), discoveryURLs , null, null, null, findQualifiers, maxRows);
419     }
420
421    /**
422     * The find_business message returns a businessList message that matches
423     * the conditions specified in the arguments.
424     *
425     * @param names vector of Name objects .
426     * @param discoveryURLs
427     * This is a list of URL's to be matched against the data associated
428     * with the discoveryURL's contents of registered businessEntity information.
429     * To search for URL without regard to useType attribute values, pass
430     * the useType component of the discoveryURL elements as empty attributes.
431     * If useType values are included, then the match will be made only on
432     * registered information that match both the useType and URL value.
433     * The returned businessList contains businessInfo structures matching
434     * any of the URL's passed (logical OR).
435     * @param identifierBag
436     * This is a list of business identifier references. The returned businessList
437     * contains businessInfo structures matching any of the identifiers passed
438     * (logical OR).
439     * @param categoryBag
440     * This is a list of category references. The returned businessList
441     * contains businessInfo structures matching all of the categories
442     * passed (logical AND).
443     * @param tModelBag The registered businessEntity data contains bindingTemplates that in turn
444     * contain specific tModel references. The tModelBag argument lets you
445     * search for businesses that have bindings that are compatible with a
446     * specific tModel pattern. The returned businessList contains businessInfo
447     * structures that match all of the tModel keys passed (logical AND).
448     * tModelKey values must be formatted as URN qualified UUID values
449     * (e.g. prefixed with "uuid:")
450     * @param findQualifiers
451     * can be used to alter the default behavior of search functionality.
452     * @param maxRows allows the requesting program to limit the number of results returned.
453     * @return This function returns a businessList on success. In the event that no
454     * matches were located for the specified criteria, a businessList
455     * structure with zero businessInfo structures is returned.
456     * @exception UDDIException
457     * @exception TransportException
458     */

459    public BusinessList find_business(Vector JavaDoc names,
460                                      DiscoveryURLs discoveryURLs,
461                                      IdentifierBag identifierBag,
462                                      CategoryBag categoryBag,
463                                      TModelBag tModelBag,
464                                      FindQualifiers findQualifiers,
465                                      int maxRows)
466           throws UDDIException, TransportException {
467         FindBusiness request = new FindBusiness();
468         request.setNameVector(names);
469         request.setDiscoveryURLs(discoveryURLs);
470         request.setIdentifierBag(identifierBag);
471         request.setCategoryBag(categoryBag);
472         request.setTModelBag(tModelBag);
473         request.setFindQualifiers(findQualifiers);
474         if (maxRows>0) request.setMaxRows(maxRows);
475         return new BusinessList(send(request, true));
476    }
477
478
479    /**
480     * The find_relatedBusinesses API call is used to locate information about businessEntity
481     * registrations that are related to a specific business entity whose key is passed in the
482     * inquiry. The Related Businesses feature is used to manage registration of business units and
483     * subsequently relate them based on organizational hierarchies or business partner relationships.
484     *
485     * This returns zero or more relatedBusinessInfo structures .For the businessEntity specified in the
486     * the response reports complete business relationships with other businessEntity
487     * registrations. Business relationships are complete between two businessEntity registrations when the
488     * publishers controlling each of the businessEntity structures involved in the relationship set
489     * assertions affirming that relationship.
490     *
491      * @param businessKey
492      * This is used to specify a particular BusinessEntity instance.
493      * @param keyedReference
494      * This is a single, optional keyedReference element that is used to
495      * specify that only businesses that are related to the focal point
496      * in a specific way should be included in the results.
497      * @param findQualifiers
498      * Can be used to alter the default behavior of search functionality.
499      * @return This function returns a RelatedBusinessesList on success.
500      * @exception UDDIException
501      * @exception TransportException
502      * @deprecated UDDI version 2, errata 2 added maxrows as a parameter
503      * to this method. Use
504      * {@link #find_relatedBusinesses(String, KeyedReference, FindQualifiers, int)} instead
505      */

506     public RelatedBusinessesList find_relatedBusinesses(String JavaDoc businessKey,
507                                                        KeyedReference keyedReference,
508                                                        FindQualifiers findQualifiers)
509           throws UDDIException, TransportException {
510        FindRelatedBusinesses request = new FindRelatedBusinesses();
511        request.setBusinessKey(businessKey);
512        request.setKeyedReference(keyedReference);
513        request.setFindQualifiers(findQualifiers);
514        return new RelatedBusinessesList(send(request, true));
515
516    }
517
518    /**
519     * The find_relatedBusinesses API call is used to locate information about businessEntity
520     * registrations that are related to a specific business entity whose key is passed in the
521     * inquiry. The Related Businesses feature is used to manage registration of business units and
522     * subsequently relate them based on organizational hierarchies or business partner relationships.
523     *
524     * This returns zero or more relatedBusinessInfo structures .For the businessEntity specified in the
525     * the response reports complete business relationships with other businessEntity
526     * registrations. Business relationships are complete between two businessEntity registrations when the
527     * publishers controlling each of the businessEntity structures involved in the relationship set
528     * assertions affirming that relationship.
529     *
530     * @param businessKey This is used to specify a particular BusinessEntity instance.
531     *
532     * @param keyedReference This is a single, optional keyedReference element that is used to
533     * specify that only businesses that are related to the focal point
534     * in a specific way should be included in the results.
535     * @param findQualifiers
536     * Can be used to alter the default behavior of search functionality.
537     * @param maxRows allows the requesting program to limit the number of results returned.
538     * @return This function returns a RelatedBusinessesList on success.
539     * @exception UDDIException
540     * @exception TransportException
541     */

542    public RelatedBusinessesList find_relatedBusinesses(String JavaDoc businessKey,
543                                                        KeyedReference keyedReference,
544                                                        FindQualifiers findQualifiers,
545                                                        int maxRows)
546           throws UDDIException, TransportException {
547        FindRelatedBusinesses request = new FindRelatedBusinesses();
548        request.setBusinessKey(businessKey);
549        request.setKeyedReference(keyedReference);
550        request.setFindQualifiers(findQualifiers);
551        if (maxRows>0) request.setMaxRows(maxRows);
552        return new RelatedBusinessesList(send(request, true));
553
554    }
555    /**
556     * This function returns a serviceList on success. In the event that no
557     * matches were located for the specified criteria, the serviceList
558     * structure returned will contain an empty businessServices structure.
559     *
560     * @param businessKey
561     * used to specify a particular BusinessEntity instance.
562     * @param name Represents a partial name. Any businessService data contained in
563     * the specified businessEntity with a matching partial name value gets returned.
564     * @param findQualifiers
565     * Used to alter the default behavior of search functionality.
566     * @param maxRows Allows the requesting program to limit the number of results returned.
567     * A value of 0 indicates no limit.
568     * @return This function returns a serviceList on success. In the event that no
569     * matches were located for the specified criteria, the serviceList
570     * structure returned will contain an empty businessServices structure.
571     * @exception UDDIException
572     * @exception TransportException
573     * @deprecated This method has been deprecated. Use
574     * {@link #find_service(String, Vector, CategoryBag, TModelBag, FindQualifiers, int)} instead
575     *
576     */

577    public ServiceList find_service(String JavaDoc businessKey,
578                                    String JavaDoc name,
579                                    FindQualifiers findQualifiers,
580                                    int maxRows)
581           throws UDDIException, TransportException {
582       Vector JavaDoc names = new Vector JavaDoc();
583       names.addElement(new Name(name));
584       return find_service(businessKey, names, null, null, findQualifiers, maxRows);
585    }
586
587    /**
588     * This function returns a serviceList on success. In the event that no
589     * matches were located for the specified criteria, the serviceList
590     * structure returned will contain an empty businessServices structure.
591     *
592     * @param businessKey
593     * used to specify a particular BusinessEntity instance.
594     * @param categoryBag
595     * This is a list of category references. The returned serviceList contains
596     * businessInfo structures matching all of the categories passed (logical AND).
597     * @param findQualifiers
598     * used to alter the default behavior of search functionality.
599     * @param maxRows allows the requesting program to limit the number of results returned.
600     * @return This function returns a serviceList on success. In the event that no
601     * matches were located for the specified criteria, the serviceList
602     * structure returned will contain an empty businessServices structure.
603     * @exception UDDIException
604     * @exception TransportException
605     * @deprecated This method has been deprecated. Use
606     * {@link #find_service(String, Vector, CategoryBag, TModelBag, FindQualifiers, int)} instead
607     */

608    public ServiceList find_service(String JavaDoc businessKey,
609                                    CategoryBag categoryBag,
610                                    FindQualifiers findQualifiers,
611                                    int maxRows)
612           throws UDDIException, TransportException {
613           return find_service(businessKey, new Vector JavaDoc(), categoryBag, null, findQualifiers, maxRows);
614    }
615
616    /**
617     * This function returns a serviceList on success. In the event that no
618     * matches were located for the specified criteria, the serviceList
619     * structure returned will contain an empty businessServices structure.
620     *
621     * @param businessKey
622     * This uuid_key is used to specify a particular BusinessEntity instance.
623     * @param tModelBag
624     * @param findQualifiers
625     * used to alter the default behavior of search functionality.
626     * @param maxRows allows the requesting program to limit the number of results returned.
627     * @return This function returns a serviceList on success. In the event that no
628     * matches were located for the specified criteria, the serviceList
629     * structure returned will contain an empty businessServices structure.
630     * @exception UDDIException
631     * @exception TransportException
632     * @deprecated This method has been deprecated. Use
633     * {@link #find_service(String, Vector, CategoryBag, TModelBag, FindQualifiers, int)} instead
634     */

635    public ServiceList find_service(String JavaDoc businessKey,
636                                    TModelBag tModelBag,
637                                    FindQualifiers findQualifiers,
638                                    int maxRows)
639           throws UDDIException, TransportException {
640       return find_service(businessKey, new Vector JavaDoc(), null, tModelBag, findQualifiers, maxRows);
641    }
642
643   /**
644     * This function returns a serviceList on success. In the event that no
645     * matches were located for the specified criteria, the serviceList
646     * structure returned will contain an empty businessServices structure.
647     *
648     * @param businessKey
649     * This optional uuid_key is used to specify a particular
650     * BusinessEntity instance. This argument may be used to
651     * specify an existing businessEntity in the registry or
652     * may be specified as null or "" (empty string) to indicate
653     * that all businessEntities are to be searched.
654     * @param names This optional Vector of Name objects represents one or more partial names qualified
655     * with xml:lang attributes. Any businessService data contained in the specified
656     * businessEntity with a matching partial name value gets returned. A wildcard character %
657     * may be used to signify any number of any characters. Up to 5 name values may be
658     * specified. If multiple name values are passed, the match occurs on a logical OR basis
659     * within any names supplied (e.g. any match on name/language pairs will cause a
660     * registered service to be included in the final result set).
661     * @param categoryBag
662     * : This is a list of category references. The returned serviceList contains
663     * businessInfo structures matching all of the categories passed (logical AND by
664     * default).
665     * @param tModelBag
666     * This is a list of tModel uuid_key values that represent the technical fingerprint of
667     * a bindingTemplate structure to find. Version 2.0 defines a way to associate
668     * businessService structures with more than one businessEntity. All bindingTemplate
669     * structures within any businessService associated with the businessEntity specified by
670     * the businessKey argument will be searched. If more than one tModel key is specified
671     * in this structure, only businessService structures that contain bindingTemplate
672     * structures with fingerprint information that matches all of the tModel keys specified
673     * will be returned (logical AND only).
674     * @param findQualifiers
675     * used to alter the default behavior of search functionality.
676     * @param maxRows allows the requesting program to limit the number of results returned.
677     * @return This function returns a serviceList on success. In the event that no
678     * matches were located for the specified criteria, the serviceList
679     * structure returned will contain an empty businessServices structure.
680     * @exception UDDIException
681     * @exception TransportException
682     */

683    public ServiceList find_service (String JavaDoc businessKey,
684                                     Vector JavaDoc names,
685                                     CategoryBag categoryBag,
686                                     TModelBag tModelBag,
687                                     FindQualifiers findQualifiers,
688                                     int maxRows)
689           throws UDDIException, TransportException {
690       FindService request = new FindService();
691       request.setBusinessKey(businessKey);
692       request.setNameVector(names);
693       request.setCategoryBag(categoryBag);
694       request.setTModelBag(tModelBag);
695       request.setFindQualifiers(findQualifiers);
696       if (maxRows>0) request.setMaxRows(maxRows);
697       return new ServiceList(send(request, true));
698    }
699
700    /**
701     * This find_tModel message is for locating a list of tModel entries
702     * that match a set of specific criteria. The response will be a list
703     * of abbreviated information about tModels that match the criteria (tModelList).
704     *
705     * @param name This string value represents a partial name. The returned tModelList
706     * contains tModelInfo structures for businesses whose name matches the
707     * value passed (leftmost match).
708     * @param findQualifiers
709     * used to alter the default behavior of search functionality.
710     * @param maxRows allows the requesting program to limit the number of results returned.
711     * @return This function returns a tModelList on success. In the event that no
712     * matches were located for the specified criteria, an empty tModelList
713     * object will be returned (e.g. will contain zero tModelInfo objects).
714     * This signifies zero matches
715     * @exception UDDIException
716     * @exception TransportException
717     * @deprecated This method has been deprecated. Use
718     * {@link #find_tModel(String, CategoryBag, IdentifierBag, FindQualifiers, int)} instead
719     */

720    public TModelList find_tModel(String JavaDoc name,
721                                  FindQualifiers findQualifiers,
722                                  int maxRows)
723           throws UDDIException, TransportException {
724       return find_tModel(name, null, null, findQualifiers, maxRows);
725    }
726
727    /**
728     * This find_tModel message is for locating a list of tModel entries
729     * that match a set of specific criteria. The response will be a list
730     * of abbreviated information about tModels that match the criteria (tModelList).
731     *
732     * @param categoryBag
733     * This is a list of category references. The returned tModelList contains
734     * tModelInfo structures matching all of the categories passed (logical AND).
735     * @param findQualifiers
736     * used to alter the default behavior of search functionality.
737     * @param maxRows allows the requesting program to limit the number of results returned.
738     * @return This function returns a tModelList on success. In the event that no
739     * matches were located for the specified criteria, an empty tModelList
740     * object will be returned (e.g. will contain zero tModelInfo objects).
741     * This signifies zero matches
742     * @exception UDDIException
743     * @exception TransportException
744     * @deprecated This method has been deprecated. Use
745     * {@link #find_tModel(String, CategoryBag, IdentifierBag, FindQualifiers, int)} instead
746     */

747    public TModelList find_tModel(CategoryBag categoryBag,
748                                  FindQualifiers findQualifiers,
749                                  int maxRows)
750           throws UDDIException, TransportException {
751       return find_tModel(null, categoryBag, null, findQualifiers, maxRows);
752    }
753
754    /**
755     * This find_tModel message is for locating a list of tModel entries
756     * that match a set of specific criteria. The response will be a list
757     * of abbreviated information about tModels that match the criteria (tModelList).
758     *
759     * @param identifierBag
760     * This is a list of business identifier references. The returned tModelList
761     * contains tModelInfo structures matching any of the identifiers
762     * passed (logical OR).
763     * @param findQualifiers
764     * used to alter the default behavior of search functionality.
765     * @param maxRows allows the requesting program to limit the number of results returned.
766     * @return This function returns a tModelList on success. In the event that no
767     * matches were located for the specified criteria, an empty tModelList
768     * object will be returned (e.g. will contain zero tModelInfo objects).
769     * This signifies zero matches.
770     * @exception UDDIException
771     * @exception TransportException
772     * @deprecated This method has been deprecated. Use
773     * {@link #find_tModel(String, CategoryBag, IdentifierBag, FindQualifiers, int)} instead
774     */

775    public TModelList find_tModel(IdentifierBag identifierBag,
776                                  FindQualifiers findQualifiers,
777                                  int maxRows)
778           throws UDDIException, TransportException {
779       return find_tModel(null, null, identifierBag, findQualifiers, maxRows);
780    }
781
782   /**
783     * This find_tModel message is for locating a list of tModel entries
784     * that match a set of specific criteria. The response will be a list
785     * of abbreviated information about tModels that match the criteria (tModelList).
786     *
787     * @param name This string value represents a partial name. Since tModel data only has a single name,
788     * only a single name may be passed. A wildcard character % may be used to signify any
789     * number of any characters. The returned tModelList contains tModelInfo elements for
790     * tModels whose name matches the value passed (via lexical-order - i.e., leftmost in
791     * left-to-right languages - partial match or wild card treatment).
792     *
793     * @param categoryBag
794     * This is a list of category references. The returned tModelList contains tModelInfo
795     * elements matching all of the categories passed (logical AND by default). FindQualifier
796     * can be used to alter this logical AND behavior.
797     * @param identifierBag
798     * This is a list of business identifier references. The returned tModelList
799     * contains tModelInfo structures matching any of the identifiers
800     * passed (logical OR).
801     * @param findQualifiers
802     * used to alter the default behavior of search functionality.
803     * @param maxRows allows the requesting program to limit the number of results returned.
804     * @return This function returns a tModelList on success. In the event that no
805     * matches were located for the specified criteria, an empty tModelList
806     * object will be returned (e.g. will contain zero tModelInfo objects).
807     * This signifies zero matches.
808     * @exception UDDIException
809     * @exception TransportException
810     */

811    public TModelList find_tModel (String JavaDoc name,
812                                    CategoryBag categoryBag,
813                                    IdentifierBag identifierBag,
814                                    FindQualifiers findQualifiers,
815                                    int maxRows)
816           throws UDDIException, TransportException {
817 <