001: /*
002: * Copyright 2000-2001,2004 The Apache Software Foundation.
003: *
004: * Licensed under the Apache License, Version 2.0 (the "License");
005: * you may not use this file except in compliance with the License.
006: * You may obtain a copy of the License at
007: *
008: * http://www.apache.org/licenses/LICENSE-2.0
009: *
010: * Unless required by applicable law or agreed to in writing, software
011: * distributed under the License is distributed on an "AS IS" BASIS,
012: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013: * See the License for the specific language governing permissions and
014: * limitations under the License.
015: */
016:
017: package org.apache.wsrp4j.consumer;
018:
019: import oasis.names.tc.wsrp.v1.types.BlockingInteractionResponse;
020: import oasis.names.tc.wsrp.v1.types.DestroyPortletsResponse;
021: import oasis.names.tc.wsrp.v1.types.MarkupResponse;
022: import oasis.names.tc.wsrp.v1.types.PortletContext;
023: import oasis.names.tc.wsrp.v1.types.PortletDescriptionResponse;
024: import oasis.names.tc.wsrp.v1.types.PortletPropertyDescriptionResponse;
025: import oasis.names.tc.wsrp.v1.types.PropertyList;
026: import oasis.names.tc.wsrp.v1.types.ReturnAny;
027:
028: import org.apache.wsrp4j.exception.WSRPException;
029:
030: /**
031: * The portlet driver is a wrapper for all action which can be performed on an
032: * portlet. There is one portlet driver for all instances of an portlet.
033: */
034: public interface PortletDriver {
035:
036: /**
037: * Get the portlet this driver is bound to.
038: *
039: * @return The enity
040: **/
041: public WSRPPortlet getPortlet();
042:
043: /**
044: * This method is used to retrieve the markup generated by the portlet instance.
045: *
046: * @param markupRequest The markup request
047: * @return The markup response generated by portlet
048: **/
049: public MarkupResponse getMarkup(MarkupRequest markupRequest,
050: String userID) throws WSRPException;
051:
052: /**
053: * This method is used to perform a blocking interaction on the portlet instance.
054: *
055: * @param actionRequest The interaction request
056: **/
057: public BlockingInteractionResponse performBlockingInteraction(
058: InteractionRequest actionRequest, String userID)
059: throws WSRPException;
060:
061: /**
062: * Clone the portlet
063: *
064: * @return The new portlet context
065: **/
066: public PortletContext clonePortlet(String userID)
067: throws WSRPException;
068:
069: /**
070: *
071: **/
072: public void initCookie() throws WSRPException;
073:
074: /**
075: * Destroy the producer portlets specified in the entiyHandles array.
076: **/
077: public DestroyPortletsResponse destroyPortlets(
078: String[] portletHandles, String userID)
079: throws WSRPException;
080:
081: /**
082: * Inform the producer that the sessions specified in the sessionIDs array
083: * will no longer be used by the consumer and can therefor be released.
084: **/
085: public ReturnAny releaseSessions(String[] sessionIDs, String userID)
086: throws WSRPException;
087:
088: /**
089: * Fetches information about the portlet from the producer.
090: *
091: * @param userID is used to get the user context of the user from the user registry
092: * @param desiredLocales Array of locales the description should be provided
093: * @return The response to the getPortletDescription call.
094: **/
095: public PortletDescriptionResponse getPortletDescription(
096: String userID, String[] desiredLocales)
097: throws WSRPException;
098:
099: /**
100: * Fetches all published properties of an remote portlet.
101: *
102: * @param userID The ID of the user this request is done for
103: *
104: * @return The portlet property description response from the producer
105: **/
106: public PortletPropertyDescriptionResponse getPortletPropertyDescription(
107: String userID) throws WSRPException;
108:
109: /**
110: * Get the current values of the properties with the given names.
111: *
112: * @param names The names of the properties
113: * @param userID The ID of the user is used to get the user context
114: *
115: * @return A list of properties containing the values and names of the properties.
116: **/
117: public PropertyList getPortletProperties(String[] names,
118: String userID) throws WSRPException;
119:
120: /**
121: * Set the portlet properties specified in the property list
122: *
123: * @param properties List of properties to be set.
124: * @param userID The ID of the user is used to get the user context
125: **/
126: public PortletContext setPortletProperties(PropertyList properties,
127: String userID) throws WSRPException;
128: }
|