001: /*
002: * Copyright 2004-2005 Sun Microsystems, Inc. All
003: * rights reserved. Use of this product is subject
004: * to license terms. Federal Acquisitions:
005: * Commercial Software -- Government Users
006: * Subject to Standard License Terms and
007: * Conditions.
008: *
009: * Sun, Sun Microsystems, the Sun logo, and Sun ONE
010: * are trademarks or registered trademarks of Sun Microsystems,
011: * Inc. in the United States and other countries.
012: */
013: package com.sun.portal.portletappengine;
014:
015: import com.sun.portal.portletappengine.ipc.EventRequest;
016: import com.sun.portal.portletappengine.ipc.EventResponse;
017: import com.sun.portal.portletcontainercommon.PortletContainerActionRequest;
018: import com.sun.portal.portletcontainercommon.PortletContainerActionResponse;
019: import com.sun.portal.portletcontainercommon.PortletContainerEventRequest;
020: import com.sun.portal.portletcontainercommon.PortletContainerEventResponse;
021: import com.sun.portal.portletcontainercommon.PortletContainerRenderRequest;
022: import com.sun.portal.portletcontainercommon.PortletContainerRenderResponse;
023: import com.sun.portal.portletcontainercommon.descriptor.PortletDescriptor;
024:
025: import javax.portlet.ActionRequest;
026: import javax.portlet.ActionResponse;
027: import javax.portlet.PortalContext;
028: import javax.portlet.PortletContext;
029: import javax.portlet.RenderRequest;
030: import javax.portlet.RenderResponse;
031: import javax.servlet.http.HttpServletRequest;
032: import javax.servlet.http.HttpServletResponse;
033: import java.io.ByteArrayOutputStream;
034: import java.io.StringWriter;
035:
036: /**
037: * The request response factory provides access to the <code>ActionReqeust</code>,
038: * <code>RenderRequest</code>, <code>ActionResponse</code>, and <code>ActionResponse</code>
039: * objects for the portlet container.
040: * <P>
041: * @see <code>PortletAppEngineService</code>
042: */
043: public interface RequestResponseFactory {
044:
045: // Key for req/res factory object in servlet context
046: public static final String REQUEST_RESPONSE_FACTORY_PREFIX = "request_response_factory";
047:
048: /**
049: * Returns a <code>ActionRequest</code> object based on the passed
050: * servlet request.
051: * <P>
052: * @return a <code>ActionRequest</code> object
053: */
054: public ActionRequest getActionRequest(HttpServletRequest req,
055: HttpServletResponse res,
056: PortletContainerActionRequest pContReq,
057: PortletContainerActionResponse pContRes,
058: PortletContext context, PortalContext portalContext,
059: PortletDescriptor pDescriptor, StringWriter writer);
060:
061: /**
062: * Returns a <code>RenderRequest</code> object based on the passed
063: * servlet request.
064: * <P>
065: * @return a <code>RenderRequest</code> object
066: */
067: public RenderRequest getRenderRequest(HttpServletRequest req,
068: HttpServletResponse res,
069: PortletContainerRenderRequest pContReq,
070: PortletContainerRenderResponse pContRes,
071: PortletContext context, PortalContext portalContext,
072: PortletDescriptor pDescriptor);
073:
074: /**
075: * Returns a <code>ActionResponse</code> object.
076: * <P>
077: * @return a <code>ActionResponse</code> object
078: */
079: public ActionResponse getActionResponse(HttpServletRequest req,
080: HttpServletResponse res, ActionRequest aReq,
081: PortletContainerActionRequest pContReq,
082: PortletContainerActionResponse pContRes);
083:
084: /**
085: * Returns a <code>RenderResponse</code> object.
086: * <P>
087: * @return a <code>RenderResponse</code> object
088: */
089: public RenderResponse getRenderResponse(HttpServletRequest req,
090: HttpServletResponse res, RenderRequest rReq,
091: PortletContainerRenderRequest pContReq,
092: PortletContainerRenderResponse pContRes,
093: StringWriter stringWriter, ByteArrayOutputStream output,
094: PortletDescriptor pDescriptor);
095:
096: /**
097: * Releases the passed in action request.
098: */
099: public void releaseActionRequest(ActionRequest actionReq);
100:
101: /**
102: * Releases the passed in render request.
103: */
104: public void releaseRenderRequest(RenderRequest renderReq);
105:
106: /**
107: * Releases the passed in action response.
108: */
109: public void releaseActionResponse(ActionResponse actionRes);
110:
111: /**
112: * Releases the passed in portlet response.
113: */
114: public void releaseRenderResponse(RenderResponse renderRes);
115:
116: public EventRequest getEventRequest(HttpServletRequest req,
117: HttpServletResponse res,
118: PortletContainerEventRequest pceRequest,
119: PortletContainerEventResponse pceResponse,
120: PortletContext context, PortalContext portalContext,
121: PortletDescriptor pDescriptor);
122:
123: public EventResponse getEventResponse(
124: PortletContainerEventResponse pceResponse);
125:
126: public void releaseEventRequest(EventRequest ereq);
127:
128: public void releaseEventResponse(EventResponse eres);
129: }
|