You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pluto-scm@portals.apache.org by cd...@apache.org on 2007/09/01 13:19:53 UTC

svn commit: r571763 - in /portals/pluto/branches/1.1-286-trunk-merge/pluto-container/src/main/java/org/apache/pluto/internal/impl: ActionResponseImpl.java EventResponseImpl.java StateAwareResponseImpl.java

Author: cdoremus
Date: Sat Sep  1 04:19:52 2007
New Revision: 571763

URL: http://svn.apache.org/viewvc?rev=571763&view=rev
Log:
Applied Refactor_ResponseImpl_083107.patch from PLUTO-428.

Modified:
    portals/pluto/branches/1.1-286-trunk-merge/pluto-container/src/main/java/org/apache/pluto/internal/impl/ActionResponseImpl.java
    portals/pluto/branches/1.1-286-trunk-merge/pluto-container/src/main/java/org/apache/pluto/internal/impl/EventResponseImpl.java
    portals/pluto/branches/1.1-286-trunk-merge/pluto-container/src/main/java/org/apache/pluto/internal/impl/StateAwareResponseImpl.java

Modified: portals/pluto/branches/1.1-286-trunk-merge/pluto-container/src/main/java/org/apache/pluto/internal/impl/ActionResponseImpl.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-trunk-merge/pluto-container/src/main/java/org/apache/pluto/internal/impl/ActionResponseImpl.java?rev=571763&r1=571762&r2=571763&view=diff
==============================================================================
--- portals/pluto/branches/1.1-286-trunk-merge/pluto-container/src/main/java/org/apache/pluto/internal/impl/ActionResponseImpl.java (original)
+++ portals/pluto/branches/1.1-286-trunk-merge/pluto-container/src/main/java/org/apache/pluto/internal/impl/ActionResponseImpl.java Sat Sep  1 04:19:52 2007
@@ -19,6 +19,7 @@
 import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 
 import javax.portlet.ActionResponse;
@@ -47,21 +48,7 @@
     /**
      * Is it still allowed to invoke the method sendRedirect() ?
      */
-    boolean redirectAllowed = true;
 
-    private boolean redirected;
-    private String redirectLocation;
-
-    private InternalPortletWindow internalPortletWindow;
-    private PortletContainer container;
-    private Map<String, String[]> publicRenderParameter = new HashMap<String, String[]>();
-    
-    private Map renderParameters = new HashMap();
-    private WindowState windowState = null;
-    private PortletMode portletMode = null;
-
-    private PortalCallbackService callback;
-    private PortalContext context;
 
 
     public ActionResponseImpl(PortletContainer container,
@@ -75,237 +62,4 @@
         context = container.getRequiredContainerServices().getPortalContext();
         callback = container.getRequiredContainerServices().getPortalCallbackService();
     }
-
-//
-// javax.portlet.ActionResponse
-//
-    public void setWindowState(WindowState windowState)
-        throws WindowStateException {
-        if (redirected) {
-            throw new IllegalStateException(
-                "it is not allowed to invoke setWindowState after sendRedirect has been called");
-        }
-
-        if (isWindowStateAllowed(windowState)) {
-            this.windowState = windowState;
-        } else {
-            throw new WindowStateException("Can't set this WindowState",
-                                           windowState);
-        }
-        redirectAllowed = false;
-    }
-
-    public void setPortletMode(PortletMode portletMode)
-        throws PortletModeException {
-        if (redirected) {
-            throw new IllegalStateException(
-                "it is not allowed to invoke setPortletMode after sendRedirect has been called");
-        }
-
-        // check if portal supports portlet mode
-        boolean supported = isPortletModeAllowed(portletMode);
-
-
-        // if porlet mode is allowed
-        if (supported) {
-            this.portletMode = portletMode;
-        } else {
-            throw new PortletModeException("Can't set this PortletMode",
-                                           portletMode);
-        }
-
-        redirectAllowed = false;
-
-    }
-
-    public void sendRedirect(String location) throws java.io.IOException {
-        if (redirectAllowed) {
-            if (location != null) {
-                HttpServletResponse redirectResponse = getHttpServletResponse();
-                while (redirectResponse instanceof HttpServletResponseWrapper) {
-                    redirectResponse = (HttpServletResponse)
-                        ((HttpServletResponseWrapper)redirectResponse).getResponse();
-                }
-
-                ResourceURLProvider provider = callback.getResourceURLProvider(
-                                getHttpServletRequest(),
-                                getInternalPortletWindow()
-                );
-
-                if (location.indexOf("://") != -1) {
-                    provider.setAbsoluteURL(location);
-                } else {
-                    provider.setFullPath(location);
-                }
-                location =
-                redirectResponse.encodeRedirectURL(provider.toString());
-                //redirectResponse.sendRedirect(location);
-                redirectLocation = location;
-                redirected = true;
-            }
-        } else {
-            throw new java.lang.IllegalStateException(
-                "Can't invoke sendRedirect() after certain methods have been called");
-        }
-
-    }
-
-    public void setRenderParameters(Map parameters) {
-    	if (redirected) {
-            throw new IllegalStateException(
-                "Can't invoke setRenderParameters() after sendRedirect() has been called");
-        }
-        if (parameters == null) {
-            throw new IllegalArgumentException(
-                "Render parameters must not be null.");
-        }
-        for (Iterator iter = parameters.entrySet().iterator(); iter.hasNext();) {
-            Map.Entry entry = (Map.Entry) iter.next();
-            if (!(entry.getKey() instanceof String)) {
-                throw new IllegalArgumentException(
-                    "Key must not be null and of type java.lang.String.");
-            }
-            if (!(entry.getValue() instanceof String[])) {
-                throw new IllegalArgumentException(
-                    "Value must not be null and of type java.lang.String[].");
-            }
-        }
-        
-        renderParameters.clear();
-        publicRenderParameter.clear();
-        if (parameters.keySet()!= null){
-        	for (Object key : parameters.keySet()) {
-        		this.setRenderParameter((String)key, (String[])parameters.get(key));
-    		}
-        }
-        
-        redirectAllowed = false;
-    }
-
-    public void setRenderParameter(String key, String value) {
-    	if (redirected) {
-            throw new IllegalStateException(
-                "Can't invoke setRenderParameter() after sendRedirect() has been called");
-        }
-
-        if ((key == null)) {
-            throw new IllegalArgumentException(
-                "Render parameter key must not be null.");
-        }
-        PublicRenderParameterProvider provider = container.getRequiredContainerServices().getPortalCallbackService().getPublicRenderParameterProvider();
-        //only if the value is null, if it is a public parameter will deleted from list.
-        if (value == null){
-        	//test if this is a public render parameter
-        	if (provider.isPublicRenderParameter(internalPortletWindow.getId().getStringId(), key)){
-        		publicRenderParameter.put(key, new String[] {null});
-        	}
-        	else{
-        		throw new IllegalArgumentException(
-                	"Render parameter value must not be null.");
-        	}
-        }
-        else if (provider.isPublicRenderParameter(internalPortletWindow.getId().getStringId(), key)){
-        	publicRenderParameter.put(key, new String[] {value});
-        }
-        else{
-        	renderParameters.put(key, new String[]{value});
-        }
-        redirectAllowed = false;
-    }
-
-    public void setRenderParameter(String key, String[] values) {
-    	if (redirected) {
-            throw new IllegalStateException(
-                "Can't invoke setRenderParameter() after sendRedirect() has been called");
-        }        
-        
-        if (key == null) {
-	        throw new IllegalArgumentException(
-	        	"name and values must not be null or values be an empty array");
-	    }
-	    PublicRenderParameterProvider provider = container.getRequiredContainerServices().getPortalCallbackService().getPublicRenderParameterProvider();
-	    if (values == null){
-	    	if (provider.isPublicRenderParameter(internalPortletWindow.getId().getStringId(), key)){
-	    		publicRenderParameter.put(key,new String[] {null});
-		    }
-	    	else{
-	    		throw new IllegalArgumentException(
-	    			"name and values must not be null or values be an empty array");
-	    	}
-	    }
-	    
-	    if (provider.isPublicRenderParameter(internalPortletWindow.getId().getStringId(), key)){
-	    	publicRenderParameter.put(key,StringUtils.copy(values));
-	    }
-	    else{
-	    	renderParameters.put(key, StringUtils.copy(values));
-	    }
-    }
-    // --------------------------------------------------------------------------------------------
-    
-    // org.apache.pluto.core.InternalActionResponse implementation --------------------------------
-    public Map getRenderParameters() {
-        return renderParameters;
-    }
-    
-    public Map<String, String[]> getPublicRenderParameter(){
-    	return publicRenderParameter;
-    }
-
-    public PortletMode getChangedPortletMode() {
-        return this.portletMode;
-    }
-
-    public WindowState getChangedWindowState() {
-        return this.windowState;
-    }
-
-    public String getRedirectLocation() {
-        return redirectLocation;
-    }
-
-    private boolean isPortletModeAllowed(PortletMode mode) {
-        return isPortletModeAllowedByPortlet(mode)
-               && isPortletModeAllowedByPortal(mode);
-    }
-
-    private boolean isPortletModeAllowedByPortlet(PortletMode mode) {
-        PortletDD dd = getInternalPortletWindow().getPortletEntity()
-            .getPortletDefinition();
-
-        Iterator supports = dd.getSupports().iterator();
-        while(supports.hasNext()) {
-            SupportsDD sup = (SupportsDD)supports.next();
-            Iterator modes = sup.getPortletModes().iterator();
-            while(modes.hasNext()) {
-                if (modes.next().toString().equalsIgnoreCase(mode.toString())) {
-                    return true;
-                }
-            }
-        }
-        return false;
-    }
-
-    private boolean isPortletModeAllowedByPortal(PortletMode mode) {
-        Enumeration supportedModes = context.getSupportedPortletModes();
-        while (supportedModes.hasMoreElements()) {
-            if (supportedModes.nextElement().toString().equalsIgnoreCase(
-                (mode.toString()))) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    private boolean isWindowStateAllowed(WindowState state) {
-        Enumeration supportedStates = context.getSupportedWindowStates();
-        while (supportedStates.hasMoreElements()) {
-            if (supportedStates.nextElement().toString().equalsIgnoreCase(
-                (state.toString()))) {
-                return true;
-            }
-        }
-        return false;
-    }
-
 }

Modified: portals/pluto/branches/1.1-286-trunk-merge/pluto-container/src/main/java/org/apache/pluto/internal/impl/EventResponseImpl.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-trunk-merge/pluto-container/src/main/java/org/apache/pluto/internal/impl/EventResponseImpl.java?rev=571763&r1=571762&r2=571763&view=diff
==============================================================================
--- portals/pluto/branches/1.1-286-trunk-merge/pluto-container/src/main/java/org/apache/pluto/internal/impl/EventResponseImpl.java (original)
+++ portals/pluto/branches/1.1-286-trunk-merge/pluto-container/src/main/java/org/apache/pluto/internal/impl/EventResponseImpl.java Sat Sep  1 04:19:52 2007
@@ -46,22 +46,6 @@
               servletResponse);
     }
 
-	
-
-//	public ServletOutputStream getOutputStream() throws IOException {
-//		// TODO Auto-generated method stub
-////		return null;
-//		throw new UnsupportedOperationException("This method needs to be implemented.");
-//	}
-
-//	public PrintWriter getWriter() throws IOException {
-//		// TODO Auto-generated method stub
-////		return null;
-//		throw new UnsupportedOperationException();
-//	}
-
-
-
 	public void setRenderParameters(EventRequest request) {
 		// TODO Auto-generated method stub
 		throw new UnsupportedOperationException("This method needs to be implemented.");

Modified: portals/pluto/branches/1.1-286-trunk-merge/pluto-container/src/main/java/org/apache/pluto/internal/impl/StateAwareResponseImpl.java
URL: http://svn.apache.org/viewvc/portals/pluto/branches/1.1-286-trunk-merge/pluto-container/src/main/java/org/apache/pluto/internal/impl/StateAwareResponseImpl.java?rev=571763&r1=571762&r2=571763&view=diff
==============================================================================
--- portals/pluto/branches/1.1-286-trunk-merge/pluto-container/src/main/java/org/apache/pluto/internal/impl/StateAwareResponseImpl.java (original)
+++ portals/pluto/branches/1.1-286-trunk-merge/pluto-container/src/main/java/org/apache/pluto/internal/impl/StateAwareResponseImpl.java Sat Sep  1 04:19:52 2007
@@ -79,15 +79,15 @@
 	private String redirectLocation;
     
 
-	private InternalPortletWindow internalPortletWindow;
-	private PortletContainer container;
+	protected InternalPortletWindow internalPortletWindow;
+	protected PortletContainer container;
 	private Map<String, String[]> publicRenderParameter = new HashMap<String, String[]>();
 	
     private Map renderParameters = new HashMap();
     private WindowState windowState = null;
     private PortletMode portletMode = null;
-	private PortalCallbackService callback;
-    private PortalContext context;
+	protected PortalCallbackService callback;
+    protected PortalContext context;
     
 	public StateAwareResponseImpl(PortletContainer container,
 			            InternalPortletWindow internalPortletWindow,
@@ -410,19 +410,22 @@
 		return getChangedWindowState();
 	}
     
-    private boolean isPortletModeAllowed(PortletMode mode) {
+    protected boolean isPortletModeAllowed(PortletMode mode) {
         return isPortletModeAllowedByPortlet(mode)
                && isPortletModeAllowedByPortal(mode);
     }
 
-    private boolean isPortletModeAllowedByPortlet(PortletMode mode) {
+    protected boolean isPortletModeAllowedByPortlet(PortletMode mode) {
         PortletDD dd = getInternalPortletWindow().getPortletEntity()
             .getPortletDefinition();
 
         Iterator supports = dd.getSupports().iterator();
         while(supports.hasNext()) {
             SupportsDD sup = (SupportsDD)supports.next();
-            Iterator modes = sup.getPortletModes().iterator();
+            List<String> portletModes = sup.getPortletModes();
+            if (portletModes == null)
+            	return false;
+            Iterator modes = portletModes.iterator();
             while(modes.hasNext()) {
                 if (modes.next().toString().equalsIgnoreCase(mode.toString())) {
                     return true;
@@ -432,7 +435,7 @@
         return false;
     }
 
-    private boolean isPortletModeAllowedByPortal(PortletMode mode) {
+    protected boolean isPortletModeAllowedByPortal(PortletMode mode) {
         Enumeration supportedModes = context.getSupportedPortletModes();
         while (supportedModes.hasMoreElements()) {
             if (supportedModes.nextElement().toString().equalsIgnoreCase(
@@ -443,7 +446,7 @@
         return false;
     }
 
-    private boolean isWindowStateAllowed(WindowState state) {
+    protected boolean isWindowStateAllowed(WindowState state) {
         Enumeration supportedStates = context.getSupportedWindowStates();
         while (supportedStates.hasMoreElements()) {
             if (supportedStates.nextElement().toString().equalsIgnoreCase(