Author: julien(a)jboss.com
Date: 2007-02-09 07:50:04 -0500 (Fri, 09 Feb 2007)
New Revision: 6195
Modified:
trunk/build/ide/intellij/idea60/modules/jems/jems.iml
trunk/core/src/main/org/jboss/portal/core/model/instance/InstanceURLFactory.java
trunk/core/src/main/org/jboss/portal/core/model/portal/PortalObjectURLFactory.java
trunk/portlet/src/main/org/jboss/portal/portlet/impl/PortletRequestEncoder.java
trunk/portlet/src/main/org/jboss/portal/portlet/support/spi/UserContextSupport.java
trunk/server/src/main/org/jboss/portal/server/AbstractServerURL.java
trunk/server/src/main/org/jboss/portal/server/ServerURL.java
Log:
refactored the PortletRequestEncoder to be more flexible
Modified: trunk/build/ide/intellij/idea60/modules/jems/jems.iml
===================================================================
--- trunk/build/ide/intellij/idea60/modules/jems/jems.iml 2007-02-09 10:15:41 UTC (rev
6194)
+++ trunk/build/ide/intellij/idea60/modules/jems/jems.iml 2007-02-09 12:50:04 UTC (rev
6195)
@@ -12,7 +12,7 @@
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="common" />
<orderEntry type="module" module-name="test" />
- <orderEntry type="module-library">
+ <orderEntry type="module-library" exported="">
<library>
<CLASSES>
<root
url="jar://$MODULE_DIR$/../../../../../../thirdparty/jbossas/core-libs/lib/jboss-jmx.jar!/"
/>
@@ -39,7 +39,7 @@
<SOURCES />
</library>
</orderEntry>
- <orderEntry type="module-library">
+ <orderEntry type="module-library" exported="">
<library>
<CLASSES>
<root
url="jar://$MODULE_DIR$/../../../../../../thirdparty/jbossas/core-libs/lib/jboss-system.jar!/"
/>
@@ -120,7 +120,7 @@
<SOURCES />
</library>
</orderEntry>
- <orderEntry type="module-library">
+ <orderEntry type="module-library" exported="">
<library>
<CLASSES>
<root
url="jar://$MODULE_DIR$/../../../../../../thirdparty/jbossas/core-libs/lib/jboss-common.jar!/"
/>
Modified:
trunk/core/src/main/org/jboss/portal/core/model/instance/InstanceURLFactory.java
===================================================================
---
trunk/core/src/main/org/jboss/portal/core/model/instance/InstanceURLFactory.java 2007-02-09
10:15:41 UTC (rev 6194)
+++
trunk/core/src/main/org/jboss/portal/core/model/instance/InstanceURLFactory.java 2007-02-09
12:50:04 UTC (rev 6195)
@@ -78,17 +78,19 @@
InvokePortletInstanceCommand iic = (InvokePortletInstanceCommand)cmd;
if (iic.getInstanceId().equals(instanceId))
{
- ServerURL url = new AbstractServerURL();
+ AbstractServerURL url = new AbstractServerURL();
url.setPortalRequestPath(path);
if (cmd instanceof InvokePortletInstanceRenderCommand)
{
InvokePortletInstanceRenderCommand iprc =
(InvokePortletInstanceRenderCommand)cmd;
- PortletRequestEncoder.encodeRender(url, iprc.getNavigationalState(), null,
null);
+ PortletRequestEncoder encoder = new
PortletRequestEncoder(url.getParameterMap());
+ encoder.encodeRender(iprc.getNavigationalState(), null, null);
}
else
{
InvokePortletInstanceActionCommand iprc =
(InvokePortletInstanceActionCommand)cmd;
- PortletRequestEncoder.encodeAction(url, iprc.getNavigationalState(),
iprc.getInteractionState(), null, null);
+ PortletRequestEncoder encoder = new
PortletRequestEncoder(url.getParameterMap());
+ encoder.encodeAction(iprc.getNavigationalState(),
iprc.getInteractionState(), null, null);
}
return url;
Modified:
trunk/core/src/main/org/jboss/portal/core/model/portal/PortalObjectURLFactory.java
===================================================================
---
trunk/core/src/main/org/jboss/portal/core/model/portal/PortalObjectURLFactory.java 2007-02-09
10:15:41 UTC (rev 6194)
+++
trunk/core/src/main/org/jboss/portal/core/model/portal/PortalObjectURLFactory.java 2007-02-09
12:50:04 UTC (rev 6195)
@@ -96,12 +96,14 @@
{
StateString interactionState =
((InvokePortletWindowActionCommand)iwaCmd).getInteractionState();
StateString navigationalState =
((InvokePortletWindowActionCommand)iwaCmd).getNavigationalState();
- PortletRequestEncoder.encodeAction(url, navigationalState,
interactionState, mode, windowState);
+ PortletRequestEncoder encoder = new
PortletRequestEncoder(url.getParameterMap());
+ encoder.encodeAction(navigationalState, interactionState, mode,
windowState);
}
else
{
StateString navigationalState =
((InvokePortletWindowRenderCommand)iwaCmd).getNavigationalState();
- PortletRequestEncoder.encodeRender(url, navigationalState, mode,
windowState);
+ PortletRequestEncoder encoder = new
PortletRequestEncoder(url.getParameterMap());
+ encoder.encodeRender(navigationalState, mode, windowState);
}
}
else if (cmd instanceof ImportPageToDashboardCommand)
Modified: trunk/portlet/src/main/org/jboss/portal/portlet/impl/PortletRequestEncoder.java
===================================================================
---
trunk/portlet/src/main/org/jboss/portal/portlet/impl/PortletRequestEncoder.java 2007-02-09
10:15:41 UTC (rev 6194)
+++
trunk/portlet/src/main/org/jboss/portal/portlet/impl/PortletRequestEncoder.java 2007-02-09
12:50:04 UTC (rev 6195)
@@ -24,10 +24,13 @@
import org.jboss.portal.Mode;
import org.jboss.portal.WindowState;
+import org.jboss.portal.common.util.ParameterMap;
import org.jboss.portal.portlet.StateString;
import org.jboss.portal.portlet.PortletParametersStateString;
import org.jboss.portal.portlet.PortletParameters;
-import org.jboss.portal.server.ServerURL;
+import org.jboss.portal.portlet.PortletURL;
+import org.jboss.portal.portlet.RenderURL;
+import org.jboss.portal.portlet.ActionURL;
import java.util.Iterator;
import java.util.Map;
@@ -39,13 +42,52 @@
public class PortletRequestEncoder
{
- public static void encodeAction(
- ServerURL url,
+ /** . */
+ private ParameterMap queryParameters;
+
+ public PortletRequestEncoder(ParameterMap queryParameters)
+ {
+ if (queryParameters == null)
+ {
+ throw new IllegalArgumentException();
+ }
+
+ //
+ this.queryParameters = queryParameters;
+ }
+
+ public PortletRequestEncoder()
+ {
+ this(new PortletParameters());
+ }
+
+ public void encode(PortletURL portletURL)
+ {
+ if (portletURL instanceof RenderURL)
+ {
+ RenderURL renderURL = (RenderURL)portletURL;
+ encodeRender(renderURL.getNavigationalState(), renderURL.getMode(),
renderURL.getWindowState());
+ }
+ else if (portletURL instanceof ActionURL)
+ {
+ ActionURL actionURL = (ActionURL)portletURL;
+ encodeAction(actionURL.getNavigationalState(), actionURL.getInteractionState(),
actionURL.getMode(), actionURL.getWindowState());
+ }
+ else
+ {
+ throw new IllegalArgumentException();
+ }
+ }
+
+ public void encodeAction(
StateString navigationalState,
StateString interactionState,
Mode mode,
WindowState windowState)
{
+ queryParameters.clear();
+
+ //
int meta = PortletRequestDecoder.ACTION_MASK;
//
@@ -60,33 +102,35 @@
// Add the parameters
PortletParameters parameters =
((PortletParametersStateString)interactionState).getParameters();
- configure(url, parameters);
+ configure(parameters);
}
else
{
meta |= PortletRequestDecoder.OPAQUE_MASK;
// Set interaction state
- url.setParameterValue(PortletRequestDecoder.INTERACTION_STATE_PARAMETER,
interactionState.getStringValue());
+ queryParameters.setValue(PortletRequestDecoder.INTERACTION_STATE_PARAMETER,
interactionState.getStringValue());
// We may have navigational state
if (navigationalState != null)
{
- url.setParameterValue(PortletRequestDecoder.NAVIGATIONAL_STATE_PARAMETER,
navigationalState.getStringValue());
+
queryParameters.setValue(PortletRequestDecoder.NAVIGATIONAL_STATE_PARAMETER,
navigationalState.getStringValue());
}
}
}
//
- configure(meta, url, mode, windowState);
+ configure(meta, mode, windowState);
}
- public static void encodeRender(
- ServerURL url,
+ public void encodeRender(
StateString navigationalState,
Mode mode,
WindowState windowState)
{
+ queryParameters.clear();
+
+ //
int meta = PortletRequestDecoder.RENDER_MASK;
//
@@ -96,50 +140,55 @@
{
// Add the parameters
PortletParameters parameters =
((PortletParametersStateString)navigationalState).getParameters();
- configure(url, parameters);
+ configure(parameters);
}
else
{
meta |= PortletRequestDecoder.OPAQUE_MASK;
//
- url.setParameterValue(PortletRequestDecoder.NAVIGATIONAL_STATE_PARAMETER,
navigationalState.getStringValue());
+ queryParameters.setValue(PortletRequestDecoder.NAVIGATIONAL_STATE_PARAMETER,
navigationalState.getStringValue());
}
}
//
- configure(meta, url, mode, windowState);
+ configure(meta, mode, windowState);
}
- private static void configure(ServerURL url, PortletParameters parameters)
+ public ParameterMap getQueryParameters()
{
+ return queryParameters;
+ }
+
+ private void configure(PortletParameters parameters)
+ {
for (Iterator i = parameters.entrySet().iterator(); i.hasNext();)
{
Map.Entry entry = (Map.Entry)i.next();
String name = (String)entry.getKey();
String[] values = (String[])entry.getValue();
- url.setParameterValues(name, values);
+ queryParameters.setValues(name, values);
}
}
- private static void configure(int meta, ServerURL url, Mode mode, WindowState
windowState)
+ private void configure(int meta, Mode mode, WindowState windowState)
{
if (mode != null)
{
meta |= PortletRequestDecoder.MODE_MASK;
- setMetaParameter(url, PortletRequestDecoder.MODE_PARAMETER, mode.toString());
+ setMetaParameter(PortletRequestDecoder.MODE_PARAMETER, mode.toString());
}
if (windowState != null)
{
meta |= PortletRequestDecoder.WINDOW_STATE_MASK;
- setMetaParameter(url, PortletRequestDecoder.WINDOW_STATE_PARAMETER,
windowState.toString());
+ setMetaParameter(PortletRequestDecoder.WINDOW_STATE_PARAMETER,
windowState.toString());
}
- setMetaParameter(url, PortletRequestDecoder.META_PARAMETER,
Integer.toHexString(meta));
+ setMetaParameter(PortletRequestDecoder.META_PARAMETER, Integer.toHexString(meta));
}
- private static void setMetaParameter(ServerURL serverURL, String name, String value)
+ private void setMetaParameter(String name, String value)
{
- String[] values = serverURL.getParameterValues(name);
+ String[] values = queryParameters.getValues(name);
if (values == null)
{
values = new String[]{value};
@@ -151,6 +200,6 @@
tmp[0] = value;
values = tmp;
}
- serverURL.setParameterValues(name, values);
+ queryParameters.setValues(name, values);
}
}
Modified:
trunk/portlet/src/main/org/jboss/portal/portlet/support/spi/UserContextSupport.java
===================================================================
---
trunk/portlet/src/main/org/jboss/portal/portlet/support/spi/UserContextSupport.java 2007-02-09
10:15:41 UTC (rev 6194)
+++
trunk/portlet/src/main/org/jboss/portal/portlet/support/spi/UserContextSupport.java 2007-02-09
12:50:04 UTC (rev 6195)
@@ -27,6 +27,7 @@
import java.util.List;
import java.util.Locale;
import java.util.Map;
+import java.util.Collections;
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
@@ -34,23 +35,36 @@
*/
public class UserContextSupport implements UserContext
{
+
+ /**
+ * Returns null.
+ */
public String getId()
{
- throw new UnsupportedOperationException();
+ return null;
}
+ /**
+ * Returns <code>Collections.EMPTY_MAP</code>.
+ */
public Map getInformations()
{
- throw new UnsupportedOperationException();
+ return Collections.EMPTY_MAP;
}
+ /**
+ * Returns <code>Locale.ENGLISH</code>.
+ */
public Locale getLocale()
{
- throw new UnsupportedOperationException();
+ return Locale.ENGLISH;
}
+ /**
+ * Returns <code>Collections.EMPTY_LIST</code>.
+ */
public List getLocales()
{
- throw new UnsupportedOperationException();
+ return Collections.EMPTY_LIST;
}
}
Modified: trunk/server/src/main/org/jboss/portal/server/AbstractServerURL.java
===================================================================
--- trunk/server/src/main/org/jboss/portal/server/AbstractServerURL.java 2007-02-09
10:15:41 UTC (rev 6194)
+++ trunk/server/src/main/org/jboss/portal/server/AbstractServerURL.java 2007-02-09
12:50:04 UTC (rev 6195)
@@ -96,7 +96,7 @@
return (String[])map.get(name);
}
- public Map getParameterMap()
+ public ParameterMap getParameterMap()
{
return map;
}
Modified: trunk/server/src/main/org/jboss/portal/server/ServerURL.java
===================================================================
--- trunk/server/src/main/org/jboss/portal/server/ServerURL.java 2007-02-09 10:15:41 UTC
(rev 6194)
+++ trunk/server/src/main/org/jboss/portal/server/ServerURL.java 2007-02-09 12:50:04 UTC
(rev 6195)
@@ -22,6 +22,8 @@
******************************************************************************/
package org.jboss.portal.server;
+import org.jboss.portal.common.util.ParameterMap;
+
import java.util.Iterator;
import java.util.Map;
@@ -59,5 +61,5 @@
/**
*
*/
- Map getParameterMap();
+ ParameterMap getParameterMap();
}