1   /**
2    * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
3    *
4    * This library is free software; you can redistribute it and/or modify it under
5    * the terms of the GNU Lesser General Public License as published by the Free
6    * Software Foundation; either version 2.1 of the License, or (at your option)
7    * any later version.
8    *
9    * This library is distributed in the hope that it will be useful, but WITHOUT
10   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11   * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12   * details.
13   */
14  
15  package com.liferay.portal.kernel.servlet;
16  
17  import javax.portlet.PortletConfig;
18  import javax.portlet.PortletRequest;
19  import javax.portlet.PortletResponse;
20  
21  import javax.servlet.ServletConfig;
22  import javax.servlet.http.HttpServletRequest;
23  import javax.servlet.http.HttpServletResponse;
24  
25  /**
26   * <a href="PortletServletObjectsFactory.java.html"><b><i>View Source</i></b>
27   * </a>
28   *
29   * @author Deepak Gothe
30   */
31  public class PortletServletObjectsFactory implements ServletObjectsFactory {
32  
33      public ServletConfig getServletConfig(
34          PortletConfig portletConfig, PortletRequest portletRequest) {
35  
36          Object servletConfig = portletConfig.getPortletContext().getAttribute(
37              _PORTLET_CONTAINER_SERVLET_CONFIG);
38  
39          if (servletConfig == null) {
40              servletConfig = portletRequest.getAttribute(
41                  PortletServlet.PORTLET_SERVLET_CONFIG);
42          }
43  
44          return (ServletConfig)servletConfig;
45      }
46  
47      public HttpServletRequest getServletRequest(PortletRequest portletRequest) {
48          Object request = portletRequest.getAttribute(
49              _PORTLET_CONTAINER_SERVLET_REQUEST);
50  
51          if (request == null) {
52              request = portletRequest.getAttribute(
53                  PortletServlet.PORTLET_SERVLET_REQUEST);
54          }
55  
56          return (HttpServletRequest)request;
57      }
58  
59      public HttpServletResponse getServletResponse(
60          PortletRequest portletRequest, PortletResponse portletResponse) {
61  
62          Object response = portletRequest.getAttribute(
63              _PORTLET_CONTAINER_SERVLET_RESPONSE);
64  
65          if (response == null) {
66              response = portletRequest.getAttribute(
67                  PortletServlet.PORTLET_SERVLET_RESPONSE);
68          }
69  
70          return (HttpServletResponse)response;
71      }
72  
73      private static final String _PORTLET_CONTAINER_SERVLET_CONFIG =
74          "javax.portlet.portletc.servletConfig";
75  
76      private static final String _PORTLET_CONTAINER_SERVLET_REQUEST =
77          "javax.portlet.portletc.httpServletRequest";
78  
79      private static final String _PORTLET_CONTAINER_SERVLET_RESPONSE =
80          "javax.portlet.portletc.httpServletResponse";
81  
82  }