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