You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@velocity.apache.org by nb...@apache.org on 2007/11/14 19:13:13 UTC
svn commit: r594996 -
/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ParameterTool.java
Author: nbubna
Date: Wed Nov 14 10:13:13 2007
New Revision: 594996
URL: http://svn.apache.org/viewvc?rev=594996&view=rev
Log:
refactor singleton array stuff for code reuse and add override annotations
Modified:
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ParameterTool.java
Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ParameterTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ParameterTool.java?rev=594996&r1=594995&r2=594996&view=diff
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ParameterTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ParameterTool.java Wed Nov 14 10:13:13 2007
@@ -112,6 +112,7 @@
* <code>null</code> if there is no matching
* parameter
*/
+ @Override
public Object getValue(String key)
{
Object value = getRequest().getParameter(key);
@@ -132,6 +133,7 @@
* the given request parameter has, or <code>null</code>
* if the parameter does not exist
*/
+ @Override
public Object[] getValues(String key)
{
String[] strings = getRequest().getParameterValues(key);
@@ -151,6 +153,7 @@
* UnsupportedOperationException, because this class uses
* a servlet request as its source, not a Map.
*/
+ @Override
protected void setSource(Map source)
{
throw new UnsupportedOperationException();
@@ -160,6 +163,7 @@
* Overrides ValueParser.getSource() to return the result
* of getRequest().getParameterMap().
*/
+ @Override
protected Map getSource()
{
return getRequest().getParameterMap();
@@ -180,21 +184,13 @@
* @param subkey subkey to search for
* @return the map of found values
*/
+ @Override
protected ValueParser getSubkey(String subkey) {
ValueParser submap = super.getSubkey(subkey);
- /* expand singleton arrays to reflect request.getParameter behaviour */
if (submap != null)
{
- Map<String,Object> expanded = new HashMap<String,Object>(submap);
- for(Map.Entry<String,Object> entry:expanded.entrySet())
- {
- Object value = entry.getValue();
- if (value.getClass().isArray() && Array.getLength(value)==1)
- {
- entry.setValue(Array.get(value,0));
- }
- }
- submap = new ValueParser(expanded);
+ /* expand singleton arrays to reflect request.getParameter behaviour */
+ submap = new ValueParser(expandSingletonArrays(submap));
}
return submap;
}
@@ -203,17 +199,19 @@
to expand singleton array values
*/
+ @Override
public boolean containsValue(Object value) {
return values().contains(value);
}
+ @Override
public Collection values() {
Set result = new HashSet();
- for(Object value:super.values())
+ for (Object value : super.values())
{
- if(value.getClass().isArray() && Array.getLength(value)==1)
+ if (isSingletonArray(value))
{
- result.add(Array.get(value,0));
+ result.add(Array.get(value, 0));
}
else
{
@@ -223,16 +221,30 @@
return result;
}
+ @Override
public Set<Entry<String,Object>> entrySet() {
- Map<String,Object> expanded = new HashMap<String,Object>(getSource());
- for(Entry<String,Object> entry:expanded.entrySet())
+ return expandSingletonArrays(getSource()).entrySet();
+ }
+
+ private boolean isSingletonArray(Object value)
+ {
+ return (value != null &&
+ value.getClass().isArray() &&
+ Array.getLength(value) == 1);
+ }
+
+ private Map<String,Object> expandSingletonArrays(Map<String,Object> original)
+ {
+ Map<String,Object> expanded = new HashMap<String,Object>(original);
+ for (Map.Entry<String,Object> entry : expanded.entrySet())
{
Object value = entry.getValue();
- if(value.getClass().isArray() && Array.getLength(value)==1)
+ if (isSingletonArray(value))
{
- entry.setValue(Array.get(value,0));
+ entry.setValue(Array.get(value, 0));
}
}
- return expanded.entrySet();
+ return expanded;
}
+
}