svn commit: r910109 - in /ofbiz/trunk/framework/base/src/org/ofbiz/base: conversion/MiscConverters.java conversion/test/MiscTests.java json/JSON.jj json/JSONWriter.java util/UtilIO.java

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

svn commit: r910109 - in /ofbiz/trunk/framework/base/src/org/ofbiz/base: conversion/MiscConverters.java conversion/test/MiscTests.java json/JSON.jj json/JSONWriter.java util/UtilIO.java

doogie-3
Author: doogie
Date: Sun Feb 14 22:40:44 2010
New Revision: 910109

URL: http://svn.apache.org/viewvc?rev=910109&view=rev
Log:
Fix several generics warnings.

Modified:
    ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/MiscConverters.java
    ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/test/MiscTests.java
    ofbiz/trunk/framework/base/src/org/ofbiz/base/json/JSON.jj
    ofbiz/trunk/framework/base/src/org/ofbiz/base/json/JSONWriter.java
    ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilIO.java

Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/MiscConverters.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/MiscConverters.java?rev=910109&r1=910108&r2=910109&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/MiscConverters.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/MiscConverters.java Sun Feb 14 22:40:44 2010
@@ -170,8 +170,9 @@
             throw new UnsupportedOperationException();
         }
 
+        @SuppressWarnings("unchecked")
         public Enum convert(Class<? extends Enum> targetClass, String obj) throws ConversionException {
-            return Enum.valueOf(UtilGenerics.<Class<? extends Enum>>cast(targetClass), obj);
+            return Enum.valueOf(targetClass, obj);
         }
 
         public Class<? super Enum> getTargetClass() {

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=910109&r1=910108&r2=910109&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 Sun Feb 14 22:40:44 2010
@@ -35,6 +35,7 @@
 import org.ofbiz.base.conversion.Converter;
 import org.ofbiz.base.conversion.Converters;
 import org.ofbiz.base.test.GenericTestCaseBase;
+import org.ofbiz.base.util.UtilGenerics;
 import org.ofbiz.base.util.UtilMisc;
 import org.ofbiz.base.util.collections.LRUMap;
 
@@ -44,10 +45,15 @@
         super(name);
     }
 
+    private static <S, T> void assertConversion(String label, String wanted, Class<T> targetClass, Object source, Class<S> sourceClass) throws Exception {
+        Converter<S, T> converter = Converters.getConverter(sourceClass, targetClass);
+        assertTrue(label + " can convert", converter.canConvert(sourceClass, targetClass));
+        assertEquals(label, wanted, converter.convert(UtilGenerics.<S>cast(source)));
+    }
+
     public void testExtendsImplements() throws Exception {
         List<String> arraysList = Arrays.asList("a", "b", "c");
-        Converter converter = Converters.getConverter(arraysList.getClass(), String.class);
-        assertEquals("", "[\n \"a\",\n \"b\",\n \"c\"\n]", converter.convert(arraysList));
+        assertConversion("", "[\n \"a\",\n \"b\",\n \"c\"\n]", String.class, arraysList, arraysList.getClass());
         Exception caught = null;
         try {
             Converters.getConverter(MiscTests.class, String.class);
@@ -58,8 +64,19 @@
         }
         LRUMap<String, String> map = new LRUMap<String, String>();
         map.put("a", "1");
-        converter = Converters.getConverter(LRUMap.class, String.class);
-        assertEquals("", "{\n \"a\": \"1\"\n}", converter.convert(map));
+        assertConversion("", "{\n \"a\": \"1\"\n}", String.class, map, LRUMap.class);
+    }
+
+    public static <S> void assertPassThru(Object wanted, Class<S> sourceClass) throws Exception {
+        Converter<S, S> converter = Converters.getConverter(sourceClass, sourceClass);
+        S result = converter.convert(UtilGenerics.<S>cast(wanted));
+        assertEquals("pass thru convert", wanted, result);
+        assertTrue("pass thru exact equals", wanted == result);
+        assertTrue("pass thru can convert", converter.canConvert(wanted.getClass(), wanted.getClass()));
+        assertFalse("pass thru can't convert to object", converter.canConvert(wanted.getClass(), Object.class));
+        assertFalse("pass thru can't convert from object", converter.canConvert(Object.class, wanted.getClass()));
+        assertEquals("pass thru source class", wanted.getClass(), converter.getSourceClass());
+        assertEquals("pass thru target class", result.getClass(), converter.getTargetClass());
     }
 
     public void testPassthru() throws Exception {
@@ -86,15 +103,7 @@
             fastMap,
         };
         for (Object testObject: testObjects) {
-            Converter converter = Converters.getConverter(testObject.getClass(), testObject.getClass());
-            Object result = converter.convert(testObject);
-            assertEquals("pass thru convert", testObject, result);
-            assertTrue("pass thru exact equals", testObject == result);
-            assertTrue("pass thru can convert", converter.canConvert(testObject.getClass(), testObject.getClass()));
-            assertFalse("pass thru can't convert to object", converter.canConvert(testObject.getClass(), Object.class));
-            assertFalse("pass thru can't convert from object", converter.canConvert(Object.class, testObject.getClass()));
-            assertEquals("pass thru source class", testObject.getClass(), converter.getSourceClass());
-            assertEquals("pass thru target class", result.getClass(), converter.getTargetClass());
+            assertPassThru(testObject, testObject.getClass());
         }
     }
 }

Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/json/JSON.jj
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/json/JSON.jj?rev=910109&r1=910108&r2=910109&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/json/JSON.jj (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/json/JSON.jj Sun Feb 14 22:40:44 2010
@@ -63,7 +63,7 @@
 
 PARSER_END(JSON)
 TOKEN_MGR_DECLS: {
-    protected LinkedList stateStack = new LinkedList();
+    protected LinkedList<Integer> stateStack = new LinkedList<Integer>();
     protected StringBuilder statePrefix = new StringBuilder();
 
     protected void pushState(int state) {
@@ -74,7 +74,7 @@
     }
 
     protected void popState() {
-        int oldState = (Integer) stateStack.removeLast();
+        int oldState = stateStack.removeLast();
         statePrefix.setLength(statePrefix.length() - 1);
         //System.err.println(statePrefix + "pop: " + lexStateNames[curLexState] + " -> " + lexStateNames[oldState]);
         SwitchTo(oldState);
@@ -282,7 +282,7 @@
   { map.put(key, value); }
 }
 
-List JSONArray():
+List<Object> JSONArray():
 {
   ArrayList<Object> list = new ArrayList<Object>();
   Object value;

Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/json/JSONWriter.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/json/JSONWriter.java?rev=910109&r1=910108&r2=910109&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/json/JSONWriter.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/json/JSONWriter.java Sun Feb 14 22:40:44 2010
@@ -25,6 +25,7 @@
 import java.util.Map;
 
 import org.ofbiz.base.util.IndentingWriter;
+import org.ofbiz.base.util.UtilGenerics;
 import org.ofbiz.base.util.UtilIO;
 
 public class JSONWriter {
@@ -177,9 +178,9 @@
         } else if (o instanceof String) {
             return write((String) o);
         } else if (o instanceof Map) {
-            return write((Map) o);
+            return write(UtilGenerics.<Map<?, ?>>cast(o));
         } else if (o instanceof Collection) {
-            return write((Collection) o);
+            return write(UtilGenerics.<Collection<?>>cast(o));
         } else if (o instanceof Byte) {
             return write(((Byte) o).byteValue());
         } else if (o instanceof Character) {

Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilIO.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilIO.java?rev=910109&r1=910108&r2=910109&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilIO.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilIO.java Sun Feb 14 22:40:44 2010
@@ -306,18 +306,22 @@
         return parseObject(buffer, offset, length, false);
     }
 
+    private static <S, T> T convertObject(Class<S> sourceClass, S value, Class<T> targetClass) throws Exception {
+        Converter<S, T> converter = Converters.getConverter(sourceClass, targetClass);
+        return converter.convert(targetClass, value);
+    }
+
     private static Object parseObject(char[] buffer, int offset, int length, boolean allowJsonResolve) throws ClassNotFoundException, IOException {
         try {
             int i;
             for (i = offset; i < length && buffer[i] != ':'; i++);
             if (i > offset && i < length) {
                 String className = new String(buffer, offset, i);
-                Class type = ClassLoaderContainer.getClassLoader().loadClass(className);
-                Converter converter = Converters.getConverter(String.class, type);
+                Class<?> type = ClassLoaderContainer.getClassLoader().loadClass(className);
                 if (buffer[length - 1] == '\n') {
                     length--;
                 }
-                return converter.convert(type, new String(buffer, i + 1, length - i - 1));
+                return convertObject(String.class, new String(buffer, i + 1, length - i - 1), type);
             }
         } catch (Exception e) {
         }