1   /**
2    * Copyright (c) 2000-2009 Liferay, Inc. All rights reserved.
3    *
4    * The contents of this file are subject to the terms of the Liferay Enterprise
5    * Subscription License ("License"). You may not use this file except in
6    * compliance with the License. You can obtain a copy of the License by
7    * contacting Liferay, Inc. See the License for the specific language governing
8    * permissions and limitations under the License, including but not limited to
9    * distribution rights of the Software.
10   *
11   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
12   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
13   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
14   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
15   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
16   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
17   * SOFTWARE.
18   */
19  
20  package com.liferay.portal.servlet.taglib.portlet;
21  
22  import com.liferay.portal.kernel.util.JavaConstants;
23  import com.liferay.portlet.PortletConfigImpl;
24  
25  import javax.portlet.PortletPreferences;
26  import javax.portlet.PortletRequest;
27  import javax.portlet.PortletResponse;
28  import javax.portlet.PortletSession;
29  
30  import javax.servlet.http.HttpServletRequest;
31  import javax.servlet.jsp.PageContext;
32  
33  /**
34   * <a href="DefineObjectsTagUtil.java.html"><b><i>View Source</i></b></a>
35   *
36   * @author Brian Wing Shun Chan
37   *
38   */
39  public class DefineObjectsTagUtil {
40  
41      public static void doStartTag(PageContext pageContext) {
42          HttpServletRequest request =
43              (HttpServletRequest)pageContext.getRequest();
44  
45          String lifecycle = (String)request.getAttribute(
46              PortletRequest.LIFECYCLE_PHASE);
47  
48          PortletConfigImpl portletConfig =
49              (PortletConfigImpl)request.getAttribute(
50                  JavaConstants.JAVAX_PORTLET_CONFIG);
51  
52          if (portletConfig != null) {
53              pageContext.setAttribute("portletConfig", portletConfig);
54              pageContext.setAttribute(
55                  "portletName", portletConfig.getPortletName());
56          }
57  
58          PortletRequest portletRequest = (PortletRequest)request.getAttribute(
59              JavaConstants.JAVAX_PORTLET_REQUEST);
60  
61          if (portletRequest != null) {
62              String portletRequestAttrName = null;
63  
64              if (lifecycle.equals(PortletRequest.ACTION_PHASE)) {
65                  portletRequestAttrName = "actionRequest";
66              }
67              else if (lifecycle.equals(PortletRequest.EVENT_PHASE)) {
68                  portletRequestAttrName = "eventRequest";
69              }
70              else if (lifecycle.equals(PortletRequest.RENDER_PHASE)) {
71                  portletRequestAttrName = "renderRequest";
72              }
73              else if (lifecycle.equals(PortletRequest.RESOURCE_PHASE)) {
74                  portletRequestAttrName = "resourceRequest";
75              }
76  
77              pageContext.setAttribute(portletRequestAttrName, portletRequest);
78  
79              PortletPreferences portletPreferences =
80                  portletRequest.getPreferences();
81  
82              pageContext.setAttribute("portletPreferences", portletPreferences);
83              pageContext.setAttribute(
84                  "portletPreferencesValues", portletPreferences.getMap());
85  
86              PortletSession portletSession = portletRequest.getPortletSession();
87  
88              pageContext.setAttribute("portletSession", portletSession);
89  
90              try {
91                  pageContext.setAttribute(
92                      "portletSessionScope", portletSession.getAttributeMap());
93              }
94              catch (IllegalStateException ise) {
95              }
96          }
97  
98          PortletResponse portletResponse = (PortletResponse)request.getAttribute(
99              JavaConstants.JAVAX_PORTLET_RESPONSE);
100 
101         if (portletResponse != null) {
102             String portletResponseAttrName = null;
103 
104             if (lifecycle.equals(PortletRequest.ACTION_PHASE)) {
105                 portletResponseAttrName = "actionResponse";
106             }
107             else if (lifecycle.equals(PortletRequest.EVENT_PHASE)) {
108                 portletResponseAttrName = "eventResponse";
109             }
110             else if (lifecycle.equals(PortletRequest.RENDER_PHASE)) {
111                 portletResponseAttrName = "renderResponse";
112             }
113             else if (lifecycle.equals(PortletRequest.RESOURCE_PHASE)) {
114                 portletResponseAttrName = "resourceResponse";
115             }
116 
117             pageContext.setAttribute(portletResponseAttrName, portletResponse);
118         }
119     }
120 
121 }