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) {
}