You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@velocity.apache.org by cb...@apache.org on 2018/03/23 15:13:53 UTC

svn commit: r1827576 - in /velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools: ConversionUtils.java generic/ConversionTool.java

Author: cbrisson
Date: Fri Mar 23 15:13:52 2018
New Revision: 1827576

URL: http://svn.apache.org/viewvc?rev=1827576&view=rev
Log:
[tools] add new $conv.toList(obj) conversion method

Modified:
    velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/ConversionUtils.java
    velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/generic/ConversionTool.java

Modified: velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/ConversionUtils.java
URL: http://svn.apache.org/viewvc/velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/ConversionUtils.java?rev=1827576&r1=1827575&r2=1827576&view=diff
==============================================================================
--- velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/ConversionUtils.java (original)
+++ velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/ConversionUtils.java Fri Mar 23 15:13:52 2018
@@ -31,10 +31,13 @@ import java.text.FieldPosition;
 import java.text.NumberFormat;
 import java.text.ParsePosition;
 import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Date;
 import java.util.Calendar;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 import java.util.TimeZone;
@@ -841,4 +844,16 @@ public class ConversionUtils
         catch (Exception e) {}
         return null;
     }
+
+    public static List asList(Object value)
+    {
+        if (value instanceof List) return (List)value;
+        else if (value.getClass().isArray()) return Arrays.asList(value);
+        else
+        {
+            List ret = new ArrayList();
+            ret.add(value);
+            return ret;
+        }
+    }
 }

Modified: velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/generic/ConversionTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/generic/ConversionTool.java?rev=1827576&r1=1827575&r2=1827576&view=diff
==============================================================================
--- velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/generic/ConversionTool.java (original)
+++ velocity/tools/trunk/velocity-tools-generic/src/main/java/org/apache/velocity/tools/generic/ConversionTool.java Fri Mar 23 15:13:52 2018
@@ -25,6 +25,7 @@ import java.util.Collection;
 import java.util.Date;
 import java.util.Calendar;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Locale;
 import java.util.TimeZone;
 import org.apache.velocity.tools.ConversionUtils;
@@ -657,6 +658,19 @@ public class ConversionTool extends Loca
         return calendars;
     }
 
+    /**
+     * Convert a singleton or an array as List  
+     * @param value Object to be converted
+     * @return either the object itself if it's already a list,
+     *         the object converted to a list if it's an array,
+     *         or a new singleton list.
+     */
+    public List toList(Object value)
+    {
+        if (value == null) return null;
+        else return ConversionUtils.asList(value);
+    }
+    
 
     // --------------------- basic string parsing methods --------------