diff options
Diffstat (limited to 'projects/net.wotonomy.foundation/src/main/java/net/wotonomy/foundation/internal/ValueConverter.java')
| -rw-r--r-- | projects/net.wotonomy.foundation/src/main/java/net/wotonomy/foundation/internal/ValueConverter.java | 59 |
1 files changed, 30 insertions, 29 deletions
diff --git a/projects/net.wotonomy.foundation/src/main/java/net/wotonomy/foundation/internal/ValueConverter.java b/projects/net.wotonomy.foundation/src/main/java/net/wotonomy/foundation/internal/ValueConverter.java index 7f28e06..3d995e5 100644 --- a/projects/net.wotonomy.foundation/src/main/java/net/wotonomy/foundation/internal/ValueConverter.java +++ b/projects/net.wotonomy.foundation/src/main/java/net/wotonomy/foundation/internal/ValueConverter.java @@ -37,69 +37,70 @@ public class ValueConverter { * Returns the specified object as converted to an instance of the specified * class, or null if the conversion could not be performed. */ - static public Object convertObjectToClass(Object anObject, Class aClass) { + @SuppressWarnings("unchecked") + static public <C> C convertObjectToClass(Object anObject, Class<C> aClass) { if (aClass == String.class) { - return getString(anObject); + return (C) getString(anObject); } if (aClass == Short.class) { - return getShort(anObject); + return (C) getShort(anObject); } if (aClass == short.class) { - return getShort(anObject); + return (C) getShort(anObject); } if (aClass == Integer.class) { - return getInteger(anObject); + return (C) getInteger(anObject); } if (aClass == int.class) { - return getInteger(anObject); + return (C) getInteger(anObject); } if (aClass == Long.class) { - return getLong(anObject); + return (C) getLong(anObject); } if (aClass == long.class) { - return getLong(anObject); + return (C) getLong(anObject); } if (aClass == Float.class) { - return getFloat(anObject); + return (C) getFloat(anObject); } if (aClass == float.class) { - return getFloat(anObject); + return (C) getFloat(anObject); } if (aClass == Double.class) { - return getDouble(anObject); + return (C) getDouble(anObject); } if (aClass == double.class) { - return getDouble(anObject); + return (C) getDouble(anObject); } if (aClass == java.util.Date.class) { - return getDate(anObject); + return (C) getDate(anObject); } if (aClass == Boolean.class) { - return getBoolean(anObject); + return (C) getBoolean(anObject); } if (aClass == boolean.class) { - return getBoolean(anObject); + return (C) getBoolean(anObject); } if (aClass == Character.class) { - return getCharacter(anObject); + return (C) getCharacter(anObject); } if (aClass == char.class) { - return getCharacter(anObject); + return (C) getCharacter(anObject); } if (aClass == Byte.class) { - return getByte(anObject); + return (C) getByte(anObject); } if (aClass == byte.class) { - return getByte(anObject); + return (C) getByte(anObject); } if (Collection.class.isAssignableFrom(aClass)) { - return getCollection(anObject, aClass); + return (C) getCollection(anObject, aClass); } if (aClass.isArray()) { - return getArray(anObject, aClass); + return (C) getArray(anObject, aClass); } - return convert(anObject, aClass); + return (C) convert(anObject, aClass); } /** @@ -108,10 +109,10 @@ public class ValueConverter { * the best fit to the object. and returns a new instance with that constructor. * Subclasses can override to directly support specific types. */ - static protected Object convert(Object anObject, Class aClass) { - Constructor[] ctors = aClass.getConstructors(); + static protected Object convert(Object anObject, Class<?> aClass) { + Constructor<?>[] ctors = aClass.getConstructors(); - Class[] types; + Class<?>[] types; for (int i = 0; i < ctors.length; i++) { types = ctors[i].getParameterTypes(); if (types.length == 1) { @@ -148,9 +149,9 @@ public class ValueConverter { static protected Object preprocess(Object anObject) { if (anObject instanceof Boolean) { if (((Boolean) anObject).booleanValue()) { - return new Double(1.0); + return Double.valueOf(1.0); } - return new Double(0.0); + return Double.valueOf(0.0); } if (anObject instanceof Character) { @@ -167,9 +168,9 @@ public class ValueConverter { static public Short getShort(Object anObject) { if (anObject == null) - return new Short((short) 0); + return Short.valueOf((short) 0); if ("".equals(anObject)) - return new Short((short) 0); + return Short.valueOf((short) 0); if (anObject instanceof Short) return (Short) anObject; |
