|
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 { |
| Free forum by Nabble | Edit this page |
