svn commit: r908713 - in /ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion: CollectionConverters.java test/MiscTests.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r908713 - in /ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion: CollectionConverters.java test/MiscTests.java

doogie-3
Author: doogie
Date: Wed Feb 10 22:48:07 2010
New Revision: 908713

URL: http://svn.apache.org/viewvc?rev=908713&view=rev
Log:
Switch the collection/string converters to the json parser.

Modified:
    ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/CollectionConverters.java
    ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/test/MiscTests.java

Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/CollectionConverters.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/CollectionConverters.java?rev=908713&r1=908712&r2=908713&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/CollectionConverters.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/CollectionConverters.java Wed Feb 10 22:48:07 2010
@@ -18,13 +18,17 @@
  *******************************************************************************/
 package org.ofbiz.base.conversion;
 
+import java.io.IOException;
+import java.io.StringReader;
+import java.io.StringWriter;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
 import org.ofbiz.base.util.ObjectType;
-import org.ofbiz.base.util.StringUtil;
+import org.ofbiz.base.json.JSON;
+import org.ofbiz.base.json.JSONWriter;
 
 import javolution.util.FastList;
 import javolution.util.FastSet;
@@ -52,7 +56,13 @@
         }
 
         public String convert(List<T> obj) throws ConversionException {
-            return obj.toString();
+            StringWriter sw = new StringWriter();
+            try {
+                new JSONWriter(sw).write(obj);
+            } catch (IOException e) {
+                throw new ConversionException(e);
+            }
+            return sw.toString();
         }
     }
 
@@ -86,51 +96,62 @@
         }
 
         public String convert(Map<K, V> obj) throws ConversionException {
-            return obj.toString();
+            StringWriter sw = new StringWriter();
+            try {
+                new JSONWriter(sw).write(obj);
+            } catch (IOException e) {
+                throw new ConversionException(e);
+            }
+            return sw.toString();
         }
     }
 
-    public static class StringToList extends AbstractConverter<String, List<String>> {
+    public static class StringToList extends AbstractConverter<String, List<Object>> {
         public StringToList() {
             super(String.class, List.class);
         }
 
-        public List<String> convert(String obj) throws ConversionException {
-            if (obj.startsWith("[") && obj.endsWith("]")) {
-                return StringUtil.toList(obj);
-            } else {
-                List<String> tempList = FastList.newInstance();
-                tempList.add(obj);
-                return tempList;
+        public List<Object> convert(String obj) throws ConversionException {
+            try {
+                return new JSON(new StringReader(obj)).JSONArray();
+            } catch (RuntimeException e) {
+                throw e;
+            } catch (Exception e) {
+                throw new ConversionException(e);
             }
         }
     }
 
-    public static class StringToMap extends AbstractConverter<String, Map<String, String>> {
+    public static class StringToMap extends AbstractConverter<String, Map<String, Object>> {
         public StringToMap() {
             super(String.class, Map.class);
         }
 
-        public Map<String, String> convert(String obj) throws ConversionException {
-            if (obj.startsWith("{") && obj.endsWith("}")) {
-                return StringUtil.toMap(obj);
+        public Map<String, Object> convert(String obj) throws ConversionException {
+            try {
+                return new JSON(new StringReader(obj)).JSONObject();
+            } catch (RuntimeException e) {
+                throw e;
+            } catch (Exception e) {
+                throw new ConversionException(e);
             }
-            throw new ConversionException("Could not convert " + obj + " to Map: ");
         }
     }
 
-    public static class StringToSet extends AbstractConverter<String, Set<String>> {
+    public static class StringToSet extends AbstractConverter<String, Set<Object>> {
         public StringToSet() {
             super(String.class, Set.class);
         }
 
-        public Set<String> convert(String obj) throws ConversionException {
-            if (obj.startsWith("[") && obj.endsWith("]")) {
-                return StringUtil.toSet(obj);
-            } else {
-                Set<String> tempSet = FastSet.newInstance();
-                tempSet.add(obj);
-                return tempSet;
+        public Set<Object> convert(String obj) throws ConversionException {
+            try {
+                Set<Object> set = FastSet.newInstance();
+                set.addAll(new JSON(new StringReader(obj)).JSONArray());
+                return set;
+            } catch (RuntimeException e) {
+                throw e;
+            } catch (Exception e) {
+                throw new ConversionException(e);
             }
         }
     }

Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/test/MiscTests.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/test/MiscTests.java?rev=908713&r1=908712&r2=908713&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/test/MiscTests.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/test/MiscTests.java Wed Feb 10 22:48:07 2010
@@ -47,7 +47,7 @@
     public void testExtendsImplements() throws Exception {
         List<String> arraysList = Arrays.asList("a", "b", "c");
         Converter converter = Converters.getConverter(arraysList.getClass(), String.class);
-        assertEquals("", "[a, b, c]", converter.convert(arraysList));
+        assertEquals("", "[\n \"a\",\n \"b\",\n \"c\"\n]", converter.convert(arraysList));
         Exception caught = null;
         try {
             Converters.getConverter(MiscTests.class, String.class);
@@ -59,7 +59,7 @@
         LRUMap<String, String> map = new LRUMap<String, String>();
         map.put("a", "1");
         converter = Converters.getConverter(LRUMap.class, String.class);
-        assertEquals("", "{a=1}", converter.convert(map));
+        assertEquals("", "{\n \"a\": \"1\"\n}", converter.convert(map));
     }
 
     public void testPassthru() throws Exception {