package org.apache.struts2.portlet.result;
import javax.portlet.*;
import java.io.IOException;
/**
* PortletResultHelperJSR168 implements PortletResultHelper for Portlet 1.0 API (JSR168).
*
* @author Rene Gielen
*/
public class PortletResultHelperJSR168 implements PortletResultHelper {
/**
* Set a render parameter, abstracted from the used Portlet API version. This implementation assumes that the given
* response must be a {@link javax.portlet.ActionResponse}, as JSR168 implies.
*
* @param response The response to set the parameter on.
* @param key The parameter key to set.
* @param value The parameter value to set.
*/
public void setRenderParameter( PortletResponse response, String key, String value ) {
((ActionResponse) response).setRenderParameter(key, value);
}
/**
* Set a portlet mode, abstracted from the used Portlet API version. This implementation assumes that the given
* response must be a {@link javax.portlet.ActionResponse}, as JSR168 implies.
*
* @param response The response to set the portlet mode on.
* @param portletMode The portlet mode to set.
*/
public void setPortletMode( PortletResponse response, PortletMode portletMode ) throws PortletModeException {
((ActionResponse) response).setPortletMode(portletMode);
}
/**
* Call a dispatcher's include method, abstracted from the used Portlet API version. This implementation assumes
* that the given the request must be a {@link javax.portlet.RenderRequest} and the response must be a {@link
* javax.portlet.RenderResponse}, as JSR168 implies.
*
* @param dispatcher The dispatcher to call the include method on.
* @param contentType The content type to set for the response.
* @param request The request to use for including
* @param response The response to use for including
*/
public void include( PortletRequestDispatcher dispatcher, String contentType, PortletRequest request,
PortletResponse response ) throws IOException, PortletException {
RenderRequest req = (RenderRequest) request;
RenderResponse res = (RenderResponse) response;
res.setContentType(contentType);
dispatcher.include(req, res);
}
}