001    /**
002     * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
003     *
004     * The contents of this file are subject to the terms of the Liferay Enterprise
005     * Subscription License ("License"). You may not use this file except in
006     * compliance with the License. You can obtain a copy of the License by
007     * contacting Liferay, Inc. See the License for the specific language governing
008     * permissions and limitations under the License, including but not limited to
009     * distribution rights of the Software.
010     *
011     *
012     *
013     */
014    
015    package com.liferay.taglib.portlet;
016    
017    import com.liferay.portal.kernel.util.JavaConstants;
018    
019    import javax.portlet.PortletConfig;
020    import javax.portlet.PortletPreferences;
021    import javax.portlet.PortletRequest;
022    import javax.portlet.PortletResponse;
023    import javax.portlet.PortletSession;
024    
025    import javax.servlet.http.HttpServletRequest;
026    import javax.servlet.jsp.tagext.TagSupport;
027    
028    /**
029     * @author Brian Wing Shun Chan
030     */
031    public class DefineObjectsTag extends TagSupport {
032    
033            public int doStartTag() {
034                    HttpServletRequest request =
035                            (HttpServletRequest)pageContext.getRequest();
036    
037                    String lifecycle = (String)request.getAttribute(
038                            PortletRequest.LIFECYCLE_PHASE);
039    
040                    PortletConfig portletConfig = (PortletConfig)request.getAttribute(
041                            JavaConstants.JAVAX_PORTLET_CONFIG);
042    
043                    if (portletConfig != null) {
044                            pageContext.setAttribute("portletConfig", portletConfig);
045                            pageContext.setAttribute(
046                                    "portletName", portletConfig.getPortletName());
047                    }
048    
049                    PortletRequest portletRequest = (PortletRequest)request.getAttribute(
050                            JavaConstants.JAVAX_PORTLET_REQUEST);
051    
052                    if (portletRequest != null) {
053                            String portletRequestAttrName = null;
054    
055                            if (lifecycle.equals(PortletRequest.ACTION_PHASE)) {
056                                    portletRequestAttrName = "actionRequest";
057                            }
058                            else if (lifecycle.equals(PortletRequest.EVENT_PHASE)) {
059                                    portletRequestAttrName = "eventRequest";
060                            }
061                            else if (lifecycle.equals(PortletRequest.RENDER_PHASE)) {
062                                    portletRequestAttrName = "renderRequest";
063                            }
064                            else if (lifecycle.equals(PortletRequest.RESOURCE_PHASE)) {
065                                    portletRequestAttrName = "resourceRequest";
066                            }
067    
068                            pageContext.setAttribute(portletRequestAttrName, portletRequest);
069    
070                            PortletPreferences portletPreferences =
071                                    portletRequest.getPreferences();
072    
073                            pageContext.setAttribute("portletPreferences", portletPreferences);
074                            pageContext.setAttribute(
075                                    "portletPreferencesValues", portletPreferences.getMap());
076    
077                            PortletSession portletSession = portletRequest.getPortletSession();
078    
079                            pageContext.setAttribute("portletSession", portletSession);
080    
081                            try {
082                                    pageContext.setAttribute(
083                                            "portletSessionScope", portletSession.getAttributeMap());
084                            }
085                            catch (IllegalStateException ise) {
086                            }
087                    }
088    
089                    PortletResponse portletResponse = (PortletResponse)request.getAttribute(
090                            JavaConstants.JAVAX_PORTLET_RESPONSE);
091    
092                    if (portletResponse != null) {
093                            String portletResponseAttrName = null;
094    
095                            if (lifecycle.equals(PortletRequest.ACTION_PHASE)) {
096                                    portletResponseAttrName = "actionResponse";
097                            }
098                            else if (lifecycle.equals(PortletRequest.EVENT_PHASE)) {
099                                    portletResponseAttrName = "eventResponse";
100                            }
101                            else if (lifecycle.equals(PortletRequest.RENDER_PHASE)) {
102                                    portletResponseAttrName = "renderResponse";
103                            }
104                            else if (lifecycle.equals(PortletRequest.RESOURCE_PHASE)) {
105                                    portletResponseAttrName = "resourceResponse";
106                            }
107    
108                            pageContext.setAttribute(portletResponseAttrName, portletResponse);
109                    }
110    
111                    return SKIP_BODY;
112            }
113    
114    }