Author: julien(a)jboss.com
Date: 2008-04-14 06:36:42 -0400 (Mon, 14 Apr 2008)
New Revision: 10572
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/info/ContainerNavigationInfo.java
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/info/NavigationInfo.java
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/portlet/support/info/NavigationInfoSupport.java
Log:
add getPublicParameter(QName name) on NavigationInfo interface
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/info/ContainerNavigationInfo.java
===================================================================
---
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/info/ContainerNavigationInfo.java 2008-04-14
10:27:36 UTC (rev 10571)
+++
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/info/ContainerNavigationInfo.java 2008-04-14
10:36:42 UTC (rev 10572)
@@ -23,10 +23,13 @@
package org.jboss.portal.portlet.impl.info;
import org.jboss.portal.portlet.info.NavigationInfo;
+import org.jboss.portal.portlet.info.ParameterInfo;
+import javax.xml.namespace.QName;
import java.util.Collection;
import java.util.Map;
import java.util.HashMap;
+import java.util.Collections;
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
@@ -36,25 +39,65 @@
{
/** . */
- private Map<String, ContainerParameterInfo> publicParameters;
+ private final Map<String, ContainerParameterInfo> publicParametersById;
+ /** . */
+ private final Map<QName, ContainerParameterInfo> publicParametersByName;
+
+ /** . */
+ private final Collection<ContainerParameterInfo> publicParameters;
+
public ContainerNavigationInfo()
{
- this.publicParameters = new HashMap<String, ContainerParameterInfo>();
+ this.publicParametersById = new HashMap<String, ContainerParameterInfo>();
+ this.publicParametersByName = new HashMap<QName, ContainerParameterInfo>();
+ this.publicParameters =
Collections.unmodifiableCollection(publicParametersById.values());
}
public void addPublicParameter(ContainerParameterInfo publicParameter)
{
- publicParameters.put(publicParameter.getId(), publicParameter);
+ if (publicParameter == null)
+ {
+ throw new IllegalArgumentException("no null public parameter
accepted");
+ }
+ if (publicParametersById.containsKey(publicParameter.getId()))
+ {
+ throw new IllegalArgumentException("duplicate public parameter id " +
publicParameter.getId());
+ }
+ if (publicParametersByName.containsKey(publicParameter.getName()))
+ {
+ throw new IllegalArgumentException("duplicate public parameter id " +
publicParameter.getName());
+ }
+
+ //
+ publicParametersById.put(publicParameter.getId(), publicParameter);
+ publicParametersByName.put(publicParameter.getName(), publicParameter);
}
+ public ParameterInfo getPublicParameter(QName name)
+ {
+ if (name == null)
+ {
+ throw new IllegalArgumentException("No null name accepted");
+ }
+
+ //
+ return publicParametersByName.get(name);
+ }
+
public ContainerParameterInfo getPublicParameter(String id)
{
- return publicParameters.get(id);
+ if (id == null)
+ {
+ throw new IllegalArgumentException("No null id accepted");
+ }
+
+ //
+ return publicParametersById.get(id);
}
public Collection<ContainerParameterInfo> getPublicParameters()
{
- return publicParameters.values();
+ return publicParameters;
}
}
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/info/NavigationInfo.java
===================================================================
---
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/info/NavigationInfo.java 2008-04-14
10:27:36 UTC (rev 10571)
+++
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/info/NavigationInfo.java 2008-04-14
10:36:42 UTC (rev 10572)
@@ -22,6 +22,7 @@
******************************************************************************/
package org.jboss.portal.portlet.info;
+import javax.xml.namespace.QName;
import java.util.Collection;
/**
@@ -31,8 +32,27 @@
public interface NavigationInfo
{
+ /**
+ * Returns a public parameter by using its id or null if it does not exist.
+ *
+ * @param id the parameter id
+ * @return the parameter info object
+ */
ParameterInfo getPublicParameter(String id);
+ /**
+ * Returns a public parameter by using its name or null if it does not exist.
+ *
+ * @param name the parameter name
+ * @return the parameter info object
+ */
+ ParameterInfo getPublicParameter(QName name);
+
+ /**
+ * Returns the collection of known public parameters.
+ *
+ * @return the public parameter collection
+ */
Collection<? extends ParameterInfo> getPublicParameters();
}
Modified:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/portlet/support/info/NavigationInfoSupport.java
===================================================================
---
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/portlet/support/info/NavigationInfoSupport.java 2008-04-14
10:27:36 UTC (rev 10571)
+++
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/portlet/support/info/NavigationInfoSupport.java 2008-04-14
10:36:42 UTC (rev 10572)
@@ -24,10 +24,14 @@
import org.jboss.portal.portlet.info.NavigationInfo;
import org.jboss.portal.portlet.info.ParameterInfo;
+import org.jboss.portal.portlet.impl.info.ContainerParameterInfo;
+import javax.xml.namespace.QName;
import java.util.Collection;
import java.util.Map;
import java.util.LinkedHashMap;
+import java.util.HashMap;
+import java.util.Collections;
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
@@ -37,25 +41,65 @@
{
/** . */
- private final Map<String, ParameterInfoSupport> publicParameters;
+ private final Map<String, ContainerParameterInfo> publicParametersById;
+ /** . */
+ private final Map<QName, ContainerParameterInfo> publicParametersByName;
+
+ /** . */
+ private final Collection<ContainerParameterInfo> publicParameters;
+
public NavigationInfoSupport()
{
- publicParameters = new LinkedHashMap<String, ParameterInfoSupport>();
+ this.publicParametersById = new HashMap<String, ContainerParameterInfo>();
+ this.publicParametersByName = new HashMap<QName, ContainerParameterInfo>();
+ this.publicParameters =
Collections.unmodifiableCollection(publicParametersById.values());
}
- public void addPublicParameter(ParameterInfoSupport parameter)
+ public void addPublicParameter(ContainerParameterInfo publicParameter)
{
- publicParameters.put(parameter.getId(), parameter);
+ if (publicParameter == null)
+ {
+ throw new IllegalArgumentException("no null public parameter
accepted");
+ }
+ if (publicParametersById.containsKey(publicParameter.getId()))
+ {
+ throw new IllegalArgumentException("duplicate public parameter id " +
publicParameter.getId());
+ }
+ if (publicParametersByName.containsKey(publicParameter.getName()))
+ {
+ throw new IllegalArgumentException("duplicate public parameter id " +
publicParameter.getName());
+ }
+
+ //
+ publicParametersById.put(publicParameter.getId(), publicParameter);
+ publicParametersByName.put(publicParameter.getName(), publicParameter);
}
- public ParameterInfo getPublicParameter(String id)
+ public ParameterInfo getPublicParameter(QName name)
{
- return publicParameters.get(id);
+ if (name == null)
+ {
+ throw new IllegalArgumentException("No null name accepted");
+ }
+
+ //
+ return publicParametersByName.get(name);
}
- public Collection<? extends ParameterInfo> getPublicParameters()
+ public ContainerParameterInfo getPublicParameter(String id)
{
- return publicParameters.values();
+ if (id == null)
+ {
+ throw new IllegalArgumentException("No null id accepted");
+ }
+
+ //
+ return publicParametersById.get(id);
}
+
+ public Collection<ContainerParameterInfo> getPublicParameters()
+ {
+ return publicParameters;
+ }
}
Show replies by date