| Producer.java |
1 /*
2 * Copyright 2000-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
17 /*
18
19 */
20
21 package org.apache.wsrp4j.consumer;
22
23 import oasis.names.tc.wsrp.v1.intf.WSRP_v1_PortletManagement_PortType;
24 import oasis.names.tc.wsrp.v1.intf.WSRP_v1_Registration_PortType;
25 import oasis.names.tc.wsrp.v1.intf.WSRP_v1_ServiceDescription_PortType;
26 import oasis.names.tc.wsrp.v1.types.PortletDescription;
27 import oasis.names.tc.wsrp.v1.types.RegistrationContext;
28 import oasis.names.tc.wsrp.v1.types.RegistrationData;
29 import oasis.names.tc.wsrp.v1.types.RegistrationState;
30 import oasis.names.tc.wsrp.v1.types.ReturnAny;
31 import oasis.names.tc.wsrp.v1.types.ServiceDescription;
32
33 import org.apache.wsrp4j.exception.WSRPException;
34
35 /**
36 * A consumer representation of a WSRP-producer providing WSRP-portlets.
37 * Generally a producer can expose up to four WSRP-Interfaces. These interfaces are
38 * Markup-, Service Description-,Registration- and Portlet Management Interface. Whereas
39 * the Registration- and Portlet Management Interface are optional.
40 *
41 * @author Stephan Laertz
42 **/
43 public interface Producer {
44
45 /**
46 * Get the name of the producer.
47 *
48 * @return The name of the producer
49 **/
50 public String getName();
51
52 /**
53 * Set the name of the producer.
54 *
55 * @param name The name of the producer
56 **/
57 public void setName(String name);
58
59 /**
60 * Get the ID of the producer.
61 *
62 * @return The ID of the producer
63 **/
64 public String getID();
65
66 /**
67 * Set the ID of the producer to he given value.
68 *
69 * @param id ID of the producer.
70 **/
71 public void setID(String id);
72
73 /**
74 * Get a description of the producer.
75 *
76 * @return A description of the producer
77 **/
78 public String getDescription();
79
80 /**
81 * Set a description of the producer.
82 *
83 * @param description Some descriptive information about the producer
84 **/
85 public void setDescription(String description);
86
87 /**
88 * Get the URL of the producers service description interface.
89 *
90 * @return URL of the service description interface.
91 **/
92 public String getServiceDescriptionInterfaceEndpoint();
93
94 /**
95 * Set the URL of the producers service description interface.
96 *
97 * @param url of the service description interface.
98 **/
99 public void setServiceDescriptionInterfaceEndpoint(String url);
100
101 /**
102 * Get the producers service description interface.
103 *
104 * @return service description interface.
105 **/
106 public WSRP_v1_ServiceDescription_PortType getServiceDescriptionInterface();
107
108 /**
109 * Get the URL of the producers markup interface.
110 *
111 * @return URL of the markup interface.
112 **/
113 public String getMarkupInterfaceEndpoint();
114
115 /**
116 * Set the URL of the producers markup interface.
117 *
118 * @param url of the markup interface.
119 **/
120 public void setMarkupInterfaceEndpoint(String url);
121
122 /**
123 * Get the URL of the producers portlet management interface.
124 *
125 * @return URL of the portlet management interface.
126 **/
127 public String getPortletManagementInterfaceEndpoint();
128
129 /**
130 * Set the URL of the producers portlet management interface.
131 *
132 * @param url of the portlet management interface.
133 **/
134 public void setPortletManagementInterfaceEndpoint(String url);
135
136 /**
137 * Get the producers portlet management interface.
138 *
139 * @return portlet management interface.
140 **/
141 public WSRP_v1_PortletManagement_PortType getPortletManagementInterface();
142
143 /**
144 * Get the URL of the producers registration interface.
145 *
146 * @return URL of the registration interface.
147 **/
148 public String getRegistrationInterfaceEndpoint();
149
150 /**
151 * Set the URL of the producers registration interface.
152 *
153 * @param url of the registration interface.
154 **/
155 public void setRegistrationInterfaceEndpoint(String url);
156
157 /**
158 * Get the producers registration interface.
159 *
160 * @return registration interface.
161 **/
162 public WSRP_v1_Registration_PortType getRegistrationInterface();
163
164 /**
165 * Indicates wether or not the producer requires consumer registration.
166 *
167 * @return True if consumer registration is required.
168 **/
169 public boolean isRegistrationRequired();
170
171 /**
172 * Define if the producer requires in-band registration or not.
173 *
174 * @param registrationRequired True if the producer requires in-band registration
175 **/
176 public void setIsRegistrationRequired(boolean registrationRequired);
177
178 /**
179 * Get the registration data the consumer uses to register at this producer.
180 *
181 * @return The consumer registration data
182 **/
183 public RegistrationData getRegistrationData();
184
185 /**
186 * Set the registration the consumer uses the register at this producer.
187 *
188 * @param regData The registration data which is used to register at this producer
189 **/
190 public void setRegistrationData(RegistrationData regData);
191
192 /**
193 * Get the service description of the producer
194 *
195 * @param newRequest If set to true a new request is send to the producer otherwise a cached service description
196 * is used if available
197 *
198 * @return Service description of the producer
199 **/
200 public ServiceDescription getServiceDescription(boolean newRequest)
201 throws WSRPException;
202
203 /**
204 * Same as getServiceDescription(false)
205 **/
206 public ServiceDescription getServiceDescription() throws WSRPException;
207
208 /**
209 * Get the portlet description of the portlet with the given handle or
210 * null if the producer doesn't know an portlet with this handle.
211 *
212 * @param portletHandle The portlet handle of the portlet
213 *
214 * @return The portlet description of the portlet with the given handle
215 **/
216 public PortletDescription getPortletDescription(String portletHandle)
217 throws WSRPException;
218
219 /**
220 * Add an portlet description to the producer. This portlet description is
221 * accessable through the portlet handle in the portlet description. If the
222 * producer has already an portlet description with this portlet handle than
223 * the old description will be overwritten.
224 *
225 * @param portletDescription New portlet description
226 **/
227 public void addPortletDescription(PortletDescription portletDescription);
228
229 /**
230 * Get the current registration context of the consumer registered at this producer or null
231 * if no registration is required or happend so far.
232 *
233 * @return The current registration context of the consumer at this producer or null.
234 **/
235 public RegistrationContext getRegistrationContext();
236
237 /**
238 * Set the registration context.
239 *
240 * @param registrationContext The registration context of a consumer registered at the producer.
241 **/
242 public void setRegistrationContext(RegistrationContext registrationContext);
243
244 /**
245 * Method establishes a relationship between consumer and producer.
246 *
247 * Note: A additional call of setRegistrationContext() is not neccesary
248 *
249 * @param registrationData Data which is used to register the consumer
250 *
251 * @return The registration context received by the producer
252 **/
253 public RegistrationContext register(RegistrationData registrationData)
254 throws WSRPException;
255
256 /**
257 * Can be used to modify the relationship between consumer and producer.
258 *
259 * Note: A additional call of setRegistrationContext() is not neccesary
260 *
261 * @param registrationData The new registration data
262 *
263 * @return New registration context
264 **/
265 public RegistrationState modifyRegistration(
266 RegistrationData registrationData) throws WSRPException;
267
268 /**
269 * End an existing consumer producer relationship and remove the registration context
270 *
271 * @return Can be anything
272 **/
273 public ReturnAny deregister() throws WSRPException;
274
275 /**
276 * Check wether the optional registration interface is supported
277 *
278 * @return true if a registration interface endpoint URL is set
279 */
280 public boolean isRegistrationInterfaceSupported();
281
282 /**
283 * Check wether the optional portlet management interface is supported
284 *
285 * @return true if a portlet management interface endpoint URL is set
286 */
287 public boolean isPortletManagementInferfaceSupported();
288
289 }