View Javadoc

1   /*
2    * Copyright 2001-2004 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  package org.apache.juddi;
17  
18  import java.util.Vector;
19  
20  import org.apache.juddi.datatype.CategoryBag;
21  import org.apache.juddi.datatype.DiscoveryURLs;
22  import org.apache.juddi.datatype.IdentifierBag;
23  import org.apache.juddi.datatype.KeyedReference;
24  import org.apache.juddi.datatype.RegistryObject;
25  import org.apache.juddi.datatype.TModelBag;
26  import org.apache.juddi.datatype.request.AuthInfo;
27  import org.apache.juddi.datatype.request.FindQualifiers;
28  import org.apache.juddi.datatype.response.AssertionStatusReport;
29  import org.apache.juddi.datatype.response.AuthToken;
30  import org.apache.juddi.datatype.response.BindingDetail;
31  import org.apache.juddi.datatype.response.BusinessDetail;
32  import org.apache.juddi.datatype.response.BusinessDetailExt;
33  import org.apache.juddi.datatype.response.BusinessList;
34  import org.apache.juddi.datatype.response.DispositionReport;
35  import org.apache.juddi.datatype.response.PublisherAssertions;
36  import org.apache.juddi.datatype.response.PublisherDetail;
37  import org.apache.juddi.datatype.response.PublisherList;
38  import org.apache.juddi.datatype.response.RegisteredInfo;
39  import org.apache.juddi.datatype.response.RegistryInfo;
40  import org.apache.juddi.datatype.response.RelatedBusinessesList;
41  import org.apache.juddi.datatype.response.ServiceDetail;
42  import org.apache.juddi.datatype.response.ServiceList;
43  import org.apache.juddi.datatype.response.TModelDetail;
44  import org.apache.juddi.datatype.response.TModelList;
45  import org.apache.juddi.error.RegistryException;
46  
47  /***
48   * Represents a vesion 2.0 UDDI registry and implements all
49   * services as specified in the UDDI version 2.0 specification.
50   *
51   * @author Steve Viens (sviens@apache.org)
52   */
53  public interface IRegistry
54  {
55    String UDDI_V1_GENERIC = "1.0";
56    String UDDI_V2_GENERIC = "2.0";
57    String UDDI_V3_GENERIC = "3.0";
58    String JUDDI_V1_GENERIC = "1.0";
59  
60    String UDDI_V1_NAMESPACE = "urn:uddi-org:api";
61    String UDDI_V2_NAMESPACE = "urn:uddi-org:api_v2";
62    String UDDI_V3_NAMESPACE = "urn:uddi-org:api_v3";
63    String JUDDI_V1_NAMESPACE = "urn:juddi-org:api_v1";
64  
65    /***
66     * "Used to locate specific bindings within a registered
67     *  businessService. Returns a bindingDetail message."
68     *
69     * @exception RegistryException
70     */
71    BindingDetail findBinding(String serviceKey,CategoryBag categoryBag,TModelBag tModelBag,FindQualifiers findQualifiers,int maxRows)
72      throws RegistryException;
73  
74    /***
75     * Used to locate information about one or more businesses. Returns a
76     * businessList message that matches the conditions specified.
77     *
78     * @exception RegistryException;
79     */
80    BusinessList findBusiness(Vector nameVector,DiscoveryURLs discoveryURLs,IdentifierBag identifierBag,CategoryBag categoryBag,TModelBag tModelBag,FindQualifiers findQualifiers,int maxRows)
81      throws RegistryException;
82  
83    /***
84     * @exception RegistryException;
85     */
86    RelatedBusinessesList findRelatedBusinesses(String businessKey,KeyedReference keyedReference,FindQualifiers findQualifiers,int maxRows)
87      throws RegistryException;
88  
89    /***
90     * "Used to locate specific services within a registered
91     *  businessEntity. Return a serviceList message." From the
92     *  XML spec (API, p18) it appears that the name, categoryBag,
93     *  and tModelBag arguments are mutually exclusive.
94     *
95     * @exception RegistryException;
96     */
97    ServiceList findService(String businessKey,Vector nameVector,CategoryBag categoryBag,TModelBag tModelBag,FindQualifiers findQualifiers,int maxRows)
98      throws RegistryException;
99  
100   /***
101    * "Used to locate one or more tModel information structures. Returns a
102    *  tModelList structure."
103    *
104    * @exception RegistryException;
105    */
106   TModelList findTModel(String name,CategoryBag categoryBag,IdentifierBag identifierBag,FindQualifiers findQualifiers,int maxRows)
107     throws RegistryException;
108 
109   /***
110    * "Used to get full bindingTemplate information suitable for make one
111    *  or more service requests. Returns a bindingDetail message."
112    *
113    * @exception RegistryException;
114    */
115   BindingDetail getBindingDetail(String bindingKey)
116     throws RegistryException;
117 
118   /***
119    * "Used to get full bindingTemplate information suitable for make one
120    *  or more service requests. Returns a bindingDetail message."
121    *
122    * @exception RegistryException;
123    */
124   BindingDetail getBindingDetail(Vector bindingKeys)
125     throws RegistryException;
126 
127   /***
128    * "Used to get the full businessEntity information for one or more
129    *  businesses. Returns a businessDetail message."
130    *
131    * @exception RegistryException;
132    */
133   BusinessDetail getBusinessDetail(String businessKey)
134     throws RegistryException;
135 
136   /***
137    * "Used to get the full businessEntity information for one or more
138    *  businesses. Returns a businessDetail message."
139    *
140    * @exception RegistryException;
141    */
142   BusinessDetail getBusinessDetail(Vector businessKeyVector)
143     throws RegistryException;
144 
145   /***
146    * "Used to get extended businessEntity information. Returns a
147    *  businessDetailExt message."
148    *
149    * @exception RegistryException;
150    */
151   BusinessDetailExt getBusinessDetailExt(String businessKey)
152     throws RegistryException;
153 
154   /***
155    * "Used to get extended businessEntity information. Returns a
156    *  businessDetailExt message."
157    *
158    * @exception RegistryException;
159    */
160   BusinessDetailExt getBusinessDetailExt(Vector businessKeyVector)
161     throws RegistryException;
162   
163   /***
164    * "Used to get full details for a given set of registered
165    *  businessService data. Returns a serviceDetail message."
166    *
167    * @exception RegistryException;
168    */
169   ServiceDetail getServiceDetail(String serviceKey)
170     throws RegistryException;
171 
172   /***
173    * "Used to get full details for a given set of registered
174    *  businessService data. Returns a serviceDetail message."
175    *
176    * @exception RegistryException;
177    */
178   ServiceDetail getServiceDetail(Vector serviceKeyVector)
179     throws RegistryException;
180   
181   /***
182    * "Used to get full details for a given set of registered tModel
183    *  data. Returns a tModelDetail message."
184    *
185    * @exception RegistryException;
186    */
187   TModelDetail getTModelDetail(String tModelKey)
188     throws RegistryException;
189 
190   /***
191    * "Used to get full details for a given set of registered tModel
192    *  data. Returns a tModelDetail message."
193    *
194    * @exception RegistryException;
195    */
196   TModelDetail getTModelDetail(Vector tModelKeyVector)
197     throws RegistryException;
198 
199   /***
200    * @exception RegistryException;
201    */
202   DispositionReport addPublisherAssertions(AuthInfo authInfo,Vector assertionVector)
203     throws RegistryException;
204 
205   /***
206    * @exception RegistryException;
207    */
208   AssertionStatusReport getAssertionStatusReport(AuthInfo authInfo,String completionStatus)
209     throws RegistryException;
210 
211   /***
212    * @exception RegistryException;
213    */
214   PublisherAssertions getPublisherAssertions(AuthInfo authInfo)
215     throws RegistryException;
216 
217   /***
218    * "Used to remove an existing bindingTemplate from the bindingTemplates
219    *  collection that is part of a specified businessService structure."
220    *
221    * @exception RegistryException;
222    */
223   DispositionReport deleteBinding(AuthInfo authInfo,Vector bindingKeyVector)
224     throws RegistryException;
225 
226   /***
227    * "Used to delete registered businessEntity information from the registry."
228    *
229    * @exception RegistryException;
230    */
231   DispositionReport deleteBusiness(AuthInfo authInfo,Vector businessKeyVector)
232     throws RegistryException;
233 
234   /***
235    * "Used to delete an existing businessService from the businessServices
236    *  collection that is part of a specified businessEntity."
237    *
238    * @exception RegistryException;
239    */
240   DispositionReport deleteService(AuthInfo authInfo,Vector serviceKeyVector)
241     throws RegistryException;
242 
243   /***
244    * "Used to delete registered information about a tModel.  If there
245    *  are any references to a tModel when this call is made, the tModel
246    *  will be marked deleted instead of being physically removed."
247    *
248    * @exception RegistryException;
249    */
250   DispositionReport deleteTModel(AuthInfo authInfo,Vector tModelKeyVector)
251     throws RegistryException;
252 
253   /***
254    * @exception RegistryException;
255    */
256   DispositionReport deletePublisherAssertions(AuthInfo authInfo,Vector assertionVector)
257     throws RegistryException;
258 
259   /***
260    * "Used to inform an Operator Site that a previously provided
261    *  authentication token is no longer valid.  See get_authToken."
262    *
263    * @exception RegistryException;
264    */
265   DispositionReport discardAuthToken(AuthInfo authInfo)
266     throws RegistryException;
267 
268   /***
269    * "Used to request an authentication token from an Operator Site.
270    *  Authentication tokens are required to use all other APIs defined
271    *  in the publishers API.  This server serves as the program's
272    *  equivalent of a login request."
273    *
274    * @exception RegistryException;
275    */
276   AuthToken getAuthToken(String userID,String cred)
277     throws RegistryException;
278 
279   /***
280    * "Used to request an abbreviated synopsis of all information currently
281    *  managed by a given individual."
282    *
283    * @exception RegistryException;
284    */
285   RegisteredInfo getRegisteredInfo(AuthInfo authInfo)
286     throws RegistryException;
287 
288   /***
289    * Used to request public property values from the UDDI registry. This
290    * is a proprietary jUDDI/Viens.net API call.
291    *
292    * @exception RegistryException;
293    */
294   RegistryInfo getRegistryInfo()
295     throws RegistryException;
296 
297   /***
298    * "Used to register new bindingTemplate information or update existing
299    *  bindingTemplate information.  Use this to control information about
300    *  technical capabilities exposed by a registered business."
301    *
302    * @exception RegistryException;
303    */
304   BindingDetail saveBinding(AuthInfo authInfo,Vector bindingVector)
305     throws RegistryException;
306 
307   /***
308    * "Used to register new businessEntity information or update existing
309    *  businessEntity information.  Use this to control the overall
310    *  information about the entire business.  Of the save_x APIs this one
311    *  has the broadest effect."
312    *
313    * @exception RegistryException;
314    */
315   BusinessDetail saveBusiness(AuthInfo authInfo,Vector businessVector)
316     throws RegistryException;
317 
318   /***
319    * "Used to register or update complete information about a businessService
320    *  exposed by a specified businessEntity."
321    *
322    * @exception RegistryException;
323    */
324   ServiceDetail saveService(AuthInfo authInfo,Vector serviceVector)
325     throws RegistryException;
326 
327   /***
328    * "Used to register or update complete information about a tModel."
329    *
330    * @exception RegistryException;
331    */
332   TModelDetail saveTModel(AuthInfo authInfo,Vector tModelVector)
333     throws RegistryException;;
334 
335   /***
336    * @exception RegistryException;
337    */
338   PublisherAssertions setPublisherAssertions(AuthInfo authInfo,Vector assertionVector)
339     throws RegistryException;
340 
341   /***
342    * "Used to delete an existing publisher accounts."
343    *
344    * @exception RegistryException;
345    */
346   DispositionReport deletePublisher(AuthInfo authInfo,Vector publisherIDVector)
347     throws RegistryException;
348 
349   /***
350    * @exception RegistryException;
351    */
352   PublisherDetail getPublisherDetail(Vector publisherIDVector)
353     throws RegistryException;
354 
355   /***
356    * @exception RegistryException;
357    */
358   PublisherList findPublisher(String publisherID,String name,FindQualifiers findQualifiers,int maxRows)
359     throws RegistryException;
360 
361   /***
362    * @exception RegistryException;
363    */
364   PublisherDetail savePublisher(AuthInfo authInfo,Vector publisherVector)
365     throws RegistryException;
366 
367   /***
368    * @exception RegistryException;
369    */
370   DispositionReport validateValues(Vector businessVector,Vector serviceVector,Vector tModelVector)
371     throws RegistryException;
372 
373   /***
374    * @exception RegistryException
375    */
376   RegistryObject execute(RegistryObject request)
377     throws RegistryException;
378 }