1   /**
2    * Copyright (c) 2000-2010 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   *
12   * 
13   */
14  
15  package com.liferay.portlet;
16  
17  import com.liferay.portal.kernel.log.Log;
18  import com.liferay.portal.kernel.log.LogFactoryUtil;
19  
20  import javax.portlet.ActionResponse;
21  import javax.portlet.PortletRequest;
22  
23  /**
24   * <a href="ActionResponseImpl.java.html"><b><i>View Source</i></b></a>
25   *
26   * @author Brian Wing Shun Chan
27   */
28  public class ActionResponseImpl
29      extends StateAwareResponseImpl implements ActionResponse {
30  
31      public String getLifecycle() {
32          return PortletRequest.ACTION_PHASE;
33      }
34  
35      public void sendRedirect(String location) {
36          if ((location == null) ||
37              (!location.startsWith("/") && (location.indexOf("://") == -1) &&
38              (!location.startsWith("wsrp_rewrite?")))) {
39  
40              throw new IllegalArgumentException(
41                  location + " is not a valid redirect");
42          }
43  
44          // This is needed because app servers will try to prepend a host if
45          // they see an invalid URL
46  
47          if (location.startsWith("wsrp_rewrite?")) {
48              location = "http://wsrp-rewrite-holder?" + location;
49          }
50  
51          if (isCalledSetRenderParameter()) {
52              throw new IllegalStateException(
53                  "Set render parameter has already been called");
54          }
55  
56          setRedirectLocation(location);
57      }
58  
59      public void sendRedirect(String location, String renderUrlParamName) {
60      }
61  
62      protected ActionResponseImpl() {
63          if (_log.isDebugEnabled()) {
64              _log.debug("Creating new instance " + hashCode());
65          }
66      }
67  
68      protected void recycle() {
69          if (_log.isDebugEnabled()) {
70              _log.debug("Recycling instance " + hashCode());
71          }
72  
73          super.recycle();
74      }
75  
76      private static Log _log = LogFactoryUtil.getLog(ActionResponseImpl.class);
77  
78  }