blob: 93dcfa0f62dae9ec8192f47f74dd086c27dce691 [file] [log] [blame]
### Eclipse Workspace Patch 1.0
#P org.eclipse.core.databinding
Index: src/org/eclipse/core/databinding/UpdateStrategy.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.core.databinding/src/org/eclipse/core/databinding/UpdateStrategy.java,v
retrieving revision 1.11
diff -u -r1.11 UpdateStrategy.java
--- src/org/eclipse/core/databinding/UpdateStrategy.java 14 Nov 2007 23:03:19 -0000 1.11
+++ src/org/eclipse/core/databinding/UpdateStrategy.java 14 Nov 2007 23:19:03 -0000
@@ -13,36 +13,36 @@
package org.eclipse.core.databinding;
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.util.HashMap;
-import java.util.Map;
+//import java.math.BigDecimal;
+//import java.math.BigInteger;
+//import java.util.HashMap;
+//import java.util.Map;
import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.core.databinding.conversion.NumberToStringConverter;
-import org.eclipse.core.databinding.conversion.StringToNumberConverter;
-import org.eclipse.core.databinding.util.Policy;
-import org.eclipse.core.internal.databinding.ClassLookupSupport;
-import org.eclipse.core.internal.databinding.Pair;
-import org.eclipse.core.internal.databinding.conversion.CharacterToStringConverter;
-import org.eclipse.core.internal.databinding.conversion.IdentityConverter;
-import org.eclipse.core.internal.databinding.conversion.IntegerToStringConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToBigDecimalConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToBigIntegerConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToByteConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToDoubleConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToFloatConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToIntegerConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToLongConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToShortConverter;
-import org.eclipse.core.internal.databinding.conversion.ObjectToStringConverter;
-import org.eclipse.core.internal.databinding.conversion.StringToByteConverter;
-import org.eclipse.core.internal.databinding.conversion.StringToCharacterConverter;
-import org.eclipse.core.internal.databinding.conversion.StringToShortConverter;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-import com.ibm.icu.text.NumberFormat;
+//import org.eclipse.core.databinding.conversion.NumberToStringConverter;
+//import org.eclipse.core.databinding.conversion.StringToNumberConverter;
+//import org.eclipse.core.databinding.util.Policy;
+//import org.eclipse.core.internal.databinding.ClassLookupSupport;
+//import org.eclipse.core.internal.databinding.Pair;
+//import org.eclipse.core.internal.databinding.conversion.CharacterToStringConverter;
+//import org.eclipse.core.internal.databinding.conversion.IdentityConverter;
+//import org.eclipse.core.internal.databinding.conversion.IntegerToStringConverter;
+//import org.eclipse.core.internal.databinding.conversion.NumberToBigDecimalConverter;
+//import org.eclipse.core.internal.databinding.conversion.NumberToBigIntegerConverter;
+//import org.eclipse.core.internal.databinding.conversion.NumberToByteConverter;
+//import org.eclipse.core.internal.databinding.conversion.NumberToDoubleConverter;
+//import org.eclipse.core.internal.databinding.conversion.NumberToFloatConverter;
+//import org.eclipse.core.internal.databinding.conversion.NumberToIntegerConverter;
+//import org.eclipse.core.internal.databinding.conversion.NumberToLongConverter;
+//import org.eclipse.core.internal.databinding.conversion.NumberToShortConverter;
+//import org.eclipse.core.internal.databinding.conversion.ObjectToStringConverter;
+//import org.eclipse.core.internal.databinding.conversion.StringToByteConverter;
+//import org.eclipse.core.internal.databinding.conversion.StringToCharacterConverter;
+//import org.eclipse.core.internal.databinding.conversion.StringToShortConverter;
+//import org.eclipse.core.runtime.IStatus;
+//import org.eclipse.core.runtime.Status;
+//
+//import com.ibm.icu.text.NumberFormat;
/**
* @since 1.0
@@ -50,54 +50,54 @@
*/
/* package */class UpdateStrategy {
- private static final String BOOLEAN_TYPE = "java.lang.Boolean.TYPE"; //$NON-NLS-1$
-
- private static final String SHORT_TYPE = "java.lang.Short.TYPE"; //$NON-NLS-1$
-
- private static final String BYTE_TYPE = "java.lang.Byte.TYPE"; //$NON-NLS-1$
-
- private static final String DOUBLE_TYPE = "java.lang.Double.TYPE"; //$NON-NLS-1$
-
- private static final String FLOAT_TYPE = "java.lang.Float.TYPE"; //$NON-NLS-1$
-
- private static final String INTEGER_TYPE = "java.lang.Integer.TYPE"; //$NON-NLS-1$
-
- private static final String LONG_TYPE = "java.lang.Long.TYPE"; //$NON-NLS-1$
-
- private static final String CHARACTER_TYPE = "java.lang.Character.TYPE"; //$NON-NLS-1$
-
- private static Map converterMap;
-
- private static Class autoboxed(Class clazz) {
- if (clazz == Float.TYPE)
- return Float.class;
- else if (clazz == Double.TYPE)
- return Double.class;
- else if (clazz == Short.TYPE)
- return Short.class;
- else if (clazz == Integer.TYPE)
- return Integer.class;
- else if (clazz == Long.TYPE)
- return Long.class;
- else if (clazz == Byte.TYPE)
- return Byte.class;
- else if (clazz == Boolean.TYPE)
- return Boolean.class;
- else if (clazz == Character.TYPE)
- return Character.class;
- return clazz;
- }
-
- final protected void checkAssignable(Object toType, Object fromType,
- String errorString) {
- Boolean assignableFromModelToModelConverter = isAssignableFromTo(
- fromType, toType);
- if (assignableFromModelToModelConverter != null
- && !assignableFromModelToModelConverter.booleanValue()) {
- throw new BindingException(errorString
- + " Expected: " + fromType + ", actual: " + toType); //$NON-NLS-1$//$NON-NLS-2$
- }
- }
+// private static final String BOOLEAN_TYPE = "java.lang.Boolean.TYPE"; //$NON-NLS-1$
+//
+// private static final String SHORT_TYPE = "java.lang.Short.TYPE"; //$NON-NLS-1$
+//
+// private static final String BYTE_TYPE = "java.lang.Byte.TYPE"; //$NON-NLS-1$
+//
+// private static final String DOUBLE_TYPE = "java.lang.Double.TYPE"; //$NON-NLS-1$
+//
+// private static final String FLOAT_TYPE = "java.lang.Float.TYPE"; //$NON-NLS-1$
+//
+// private static final String INTEGER_TYPE = "java.lang.Integer.TYPE"; //$NON-NLS-1$
+//
+// private static final String LONG_TYPE = "java.lang.Long.TYPE"; //$NON-NLS-1$
+//
+// private static final String CHARACTER_TYPE = "java.lang.Character.TYPE"; //$NON-NLS-1$
+//
+// private static Map converterMap;
+//
+// private static Class autoboxed(Class clazz) {
+// if (clazz == Float.TYPE)
+// return Float.class;
+// else if (clazz == Double.TYPE)
+// return Double.class;
+// else if (clazz == Short.TYPE)
+// return Short.class;
+// else if (clazz == Integer.TYPE)
+// return Integer.class;
+// else if (clazz == Long.TYPE)
+// return Long.class;
+// else if (clazz == Byte.TYPE)
+// return Byte.class;
+// else if (clazz == Boolean.TYPE)
+// return Boolean.class;
+// else if (clazz == Character.TYPE)
+// return Character.class;
+// return clazz;
+// }
+//
+// final protected void checkAssignable(Object toType, Object fromType,
+// String errorString) {
+// Boolean assignableFromModelToModelConverter = isAssignableFromTo(
+// fromType, toType);
+// if (assignableFromModelToModelConverter != null
+// && !assignableFromModelToModelConverter.booleanValue()) {
+// throw new BindingException(errorString
+// + " Expected: " + fromType + ", actual: " + toType); //$NON-NLS-1$//$NON-NLS-2$
+// }
+// }
/**
* Tries to create a converter that can convert from values of type
@@ -110,566 +110,566 @@
* @return an IConverter, or <code>null</code> if unsuccessful
*/
protected IConverter createConverter(Object fromType, Object toType) {
- if (!(fromType instanceof Class) || !(toType instanceof Class)) {
- return new DefaultConverter(fromType, toType);
- }
- Class toClass = (Class) toType;
- Class originalToClass = toClass;
- if (toClass.isPrimitive()) {
- toClass = autoboxed(toClass);
- }
- Class fromClass = (Class) fromType;
- Class originalFromClass = fromClass;
- if (fromClass.isPrimitive()) {
- fromClass = autoboxed(fromClass);
- }
- if (!((Class) toType).isPrimitive()
- && toClass.isAssignableFrom(fromClass)) {
- return new IdentityConverter(originalFromClass, originalToClass);
- }
- if (((Class) fromType).isPrimitive() && ((Class) toType).isPrimitive()
- && fromType.equals(toType)) {
- return new IdentityConverter(originalFromClass, originalToClass);
- }
- Map converterMap = getConverterMap();
- Class[] supertypeHierarchyFlattened = ClassLookupSupport
- .getTypeHierarchyFlattened(fromClass);
- for (int i = 0; i < supertypeHierarchyFlattened.length; i++) {
- Class currentFromClass = supertypeHierarchyFlattened[i];
- if (currentFromClass == toType) {
- // converting to toType is just a widening
- return new IdentityConverter(fromClass, toClass);
- }
- Pair key = new Pair(getKeyForClass(fromType, currentFromClass),
- getKeyForClass(toType, toClass));
- Object converterOrClassname = converterMap.get(key);
- if (converterOrClassname instanceof IConverter) {
- return (IConverter) converterOrClassname;
- } else if (converterOrClassname instanceof String) {
- String classname = (String) converterOrClassname;
- Class converterClass;
- try {
- converterClass = Class.forName(classname);
- IConverter result = (IConverter) converterClass
- .newInstance();
- converterMap.put(key, result);
- return result;
- } catch (Exception e) {
- Policy
- .getLog()
- .log(
- new Status(
- IStatus.ERROR,
- Policy.JFACE_DATABINDING,
- 0,
- "Error while instantiating default converter", e)); //$NON-NLS-1$
- }
- }
- }
- // Since we found no converter yet, try a "downcast" converter;
- // the IdentityConverter will automatically check the actual types at
- // runtime.
- if (fromClass.isAssignableFrom(toClass)) {
- return new IdentityConverter(originalFromClass, originalToClass);
- }
+// if (!(fromType instanceof Class) || !(toType instanceof Class)) {
+// return new DefaultConverter(fromType, toType);
+// }
+// Class toClass = (Class) toType;
+// Class originalToClass = toClass;
+// if (toClass.isPrimitive()) {
+// toClass = autoboxed(toClass);
+// }
+// Class fromClass = (Class) fromType;
+// Class originalFromClass = fromClass;
+// if (fromClass.isPrimitive()) {
+// fromClass = autoboxed(fromClass);
+// }
+// if (!((Class) toType).isPrimitive()
+// && toClass.isAssignableFrom(fromClass)) {
+// return new IdentityConverter(originalFromClass, originalToClass);
+// }
+// if (((Class) fromType).isPrimitive() && ((Class) toType).isPrimitive()
+// && fromType.equals(toType)) {
+// return new IdentityConverter(originalFromClass, originalToClass);
+// }
+// Map converterMap = getConverterMap();
+// Class[] supertypeHierarchyFlattened = ClassLookupSupport
+// .getTypeHierarchyFlattened(fromClass);
+// for (int i = 0; i < supertypeHierarchyFlattened.length; i++) {
+// Class currentFromClass = supertypeHierarchyFlattened[i];
+// if (currentFromClass == toType) {
+// // converting to toType is just a widening
+// return new IdentityConverter(fromClass, toClass);
+// }
+// Pair key = new Pair(getKeyForClass(fromType, currentFromClass),
+// getKeyForClass(toType, toClass));
+// Object converterOrClassname = converterMap.get(key);
+// if (converterOrClassname instanceof IConverter) {
+// return (IConverter) converterOrClassname;
+// } else if (converterOrClassname instanceof String) {
+// String classname = (String) converterOrClassname;
+// Class converterClass;
+// try {
+// converterClass = Class.forName(classname);
+// IConverter result = (IConverter) converterClass
+// .newInstance();
+// converterMap.put(key, result);
+// return result;
+// } catch (Exception e) {
+// Policy
+// .getLog()
+// .log(
+// new Status(
+// IStatus.ERROR,
+// Policy.JFACE_DATABINDING,
+// 0,
+// "Error while instantiating default converter", e)); //$NON-NLS-1$
+// }
+// }
+// }
+// // Since we found no converter yet, try a "downcast" converter;
+// // the IdentityConverter will automatically check the actual types at
+// // runtime.
+// if (fromClass.isAssignableFrom(toClass)) {
+// return new IdentityConverter(originalFromClass, originalToClass);
+// }
return new DefaultConverter(fromType, toType);
}
- private static Map getConverterMap() {
- // using string-based lookup avoids loading of too many classes
- if (converterMap == null) {
- // NumberFormat to be shared across converters for the formatting of
- // integer values
- NumberFormat integerFormat = NumberFormat.getIntegerInstance();
- // NumberFormat to be shared across converters for formatting non
- // integer values
- NumberFormat numberFormat = NumberFormat.getNumberInstance();
-
- converterMap = new HashMap();
- // Standard and Boxed Types
- converterMap
- .put(
- new Pair("java.util.Date", "java.lang.String"), "org.eclipse.core.internal.databinding.conversion.DateToStringConverter"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- converterMap
- .put(
- new Pair("java.lang.String", "java.lang.Boolean"), "org.eclipse.core.internal.databinding.conversion.StringToBooleanConverter"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
- converterMap
- .put(
- new Pair("java.lang.String", "java.lang.Byte"), StringToByteConverter.toByte(integerFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
- converterMap
- .put(
- new Pair("java.lang.String", "java.util.Date"), "org.eclipse.core.internal.databinding.conversion.StringToDateConverter"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
- converterMap
- .put(
- new Pair("java.lang.String", "java.lang.Short"), StringToShortConverter.toShort(integerFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
- converterMap
- .put(
- new Pair("java.lang.String", "java.lang.Character"), StringToCharacterConverter.toCharacter(false)); //$NON-NLS-1$//$NON-NLS-2$
- converterMap
- .put(
- new Pair("java.lang.String", "java.lang.Integer"), StringToNumberConverter.toInteger(integerFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
- converterMap
- .put(
- new Pair("java.lang.String", "java.lang.Double"), StringToNumberConverter.toDouble(numberFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
- converterMap
- .put(
- new Pair("java.lang.String", "java.lang.Long"), StringToNumberConverter.toLong(integerFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
- converterMap
- .put(
- new Pair("java.lang.String", "java.lang.Float"), StringToNumberConverter.toFloat(numberFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
- converterMap
- .put(
- new Pair("java.lang.String", "java.math.BigInteger"), StringToNumberConverter.toBigInteger(integerFormat)); //$NON-NLS-1$//$NON-NLS-2$
- converterMap
- .put(
- new Pair("java.lang.Integer", "java.lang.String"), NumberToStringConverter.fromInteger(integerFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
- converterMap
- .put(
- new Pair("java.lang.Long", "java.lang.String"), NumberToStringConverter.fromLong(integerFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
- converterMap
- .put(
- new Pair("java.lang.Double", "java.lang.String"), NumberToStringConverter.fromDouble(numberFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
- converterMap
- .put(
- new Pair("java.lang.Float", "java.lang.String"), NumberToStringConverter.fromFloat(numberFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
- converterMap
- .put(
- new Pair("java.math.BigInteger", "java.lang.String"), NumberToStringConverter.fromBigInteger(integerFormat)); //$NON-NLS-1$//$NON-NLS-2$
- converterMap
- .put(
- new Pair("java.lang.Byte", "java.lang.String"), IntegerToStringConverter.fromByte(integerFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
- converterMap
- .put(
- new Pair("java.lang.Short", "java.lang.String"), IntegerToStringConverter.fromShort(integerFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
- converterMap
- .put(
- new Pair("java.lang.Character", "java.lang.String"), CharacterToStringConverter.fromCharacter(false)); //$NON-NLS-1$//$NON-NLS-2$
-
- converterMap
- .put(
- new Pair("java.lang.Object", "java.lang.String"), "org.eclipse.core.internal.databinding.conversion.ObjectToStringConverter"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-
- // Integer.TYPE
- converterMap
- .put(
- new Pair("java.lang.String", INTEGER_TYPE), StringToNumberConverter.toInteger(integerFormat, true)); //$NON-NLS-1$
- converterMap
- .put(
- new Pair(INTEGER_TYPE, "java.lang.Integer"), new IdentityConverter(Integer.TYPE, Integer.class)); //$NON-NLS-1$
- converterMap
- .put(
- new Pair(INTEGER_TYPE, "java.lang.Object"), new IdentityConverter(Integer.TYPE, Object.class)); //$NON-NLS-1$
- converterMap
- .put(
- new Pair(INTEGER_TYPE, "java.lang.String"), NumberToStringConverter.fromInteger(integerFormat, true)); //$NON-NLS-1$
-
- // Byte.TYPE
- converterMap
- .put(
- new Pair("java.lang.String", BYTE_TYPE), StringToByteConverter.toByte(integerFormat, true)); //$NON-NLS-1$
- converterMap
- .put(
- new Pair(BYTE_TYPE, "java.lang.Byte"), new IdentityConverter(Byte.TYPE, Byte.class)); //$NON-NLS-1$
- converterMap
- .put(
- new Pair(BYTE_TYPE, "java.lang.String"), IntegerToStringConverter.fromByte(integerFormat, true)); //$NON-NLS-1$
- converterMap
- .put(
- new Pair(BYTE_TYPE, "java.lang.Object"), new IdentityConverter(Byte.TYPE, Object.class)); //$NON-NLS-1$
-
- // Double.TYPE
- converterMap
- .put(
- new Pair("java.lang.String", DOUBLE_TYPE), StringToNumberConverter.toDouble(numberFormat, true)); //$NON-NLS-1$
- converterMap
- .put(
- new Pair(DOUBLE_TYPE, "java.lang.String"), NumberToStringConverter.fromDouble(numberFormat, true)); //$NON-NLS-1$
-
- converterMap
- .put(
- new Pair(DOUBLE_TYPE, "java.lang.Double"), new IdentityConverter(Double.TYPE, Double.class)); //$NON-NLS-1$
- converterMap
- .put(
- new Pair(DOUBLE_TYPE, "java.lang.Object"), new IdentityConverter(Double.TYPE, Object.class)); //$NON-NLS-1$
-
- // Boolean.TYPE
- converterMap
- .put(
- new Pair("java.lang.String", BOOLEAN_TYPE), "org.eclipse.core.internal.databinding.conversion.StringToBooleanPrimitiveConverter"); //$NON-NLS-1$ //$NON-NLS-2$
- converterMap
- .put(
- new Pair(BOOLEAN_TYPE, "java.lang.Boolean"), new IdentityConverter(Boolean.TYPE, Boolean.class)); //$NON-NLS-1$
- converterMap
- .put(
- new Pair(BOOLEAN_TYPE, "java.lang.String"), new ObjectToStringConverter(Boolean.TYPE)); //$NON-NLS-1$
- converterMap
- .put(
- new Pair(BOOLEAN_TYPE, "java.lang.Object"), new IdentityConverter(Boolean.TYPE, Object.class)); //$NON-NLS-1$
-
- // Float.TYPE
- converterMap
- .put(
- new Pair("java.lang.String", FLOAT_TYPE), StringToNumberConverter.toFloat(numberFormat, true)); //$NON-NLS-1$
- converterMap
- .put(
- new Pair(FLOAT_TYPE, "java.lang.String"), NumberToStringConverter.fromFloat(numberFormat, true)); //$NON-NLS-1$
- converterMap
- .put(
- new Pair(FLOAT_TYPE, "java.lang.Float"), new IdentityConverter(Float.TYPE, Float.class)); //$NON-NLS-1$
- converterMap
- .put(
- new Pair(FLOAT_TYPE, "java.lang.Object"), new IdentityConverter(Float.TYPE, Object.class)); //$NON-NLS-1$
-
- // Short.TYPE
- converterMap
- .put(
- new Pair("java.lang.String", SHORT_TYPE), StringToShortConverter.toShort(integerFormat, true)); //$NON-NLS-1$
- converterMap
- .put(
- new Pair(SHORT_TYPE, "java.lang.Short"), new IdentityConverter(Short.TYPE, Short.class)); //$NON-NLS-1$
- converterMap
- .put(
- new Pair(SHORT_TYPE, "java.lang.String"), IntegerToStringConverter.fromShort(integerFormat, true)); //$NON-NLS-1$
- converterMap
- .put(
- new Pair(SHORT_TYPE, "java.lang.Object"), new IdentityConverter(Short.TYPE, Object.class)); //$NON-NLS-1$
-
- // Long.TYPE
- converterMap
- .put(
- new Pair("java.lang.String", LONG_TYPE), StringToNumberConverter.toLong(integerFormat, true)); //$NON-NLS-1$
- converterMap
- .put(
- new Pair(LONG_TYPE, "java.lang.String"), NumberToStringConverter.fromLong(integerFormat, true)); //$NON-NLS-1$
- converterMap
- .put(
- new Pair(LONG_TYPE, "java.lang.Long"), new IdentityConverter(Long.TYPE, Long.class)); //$NON-NLS-1$
- converterMap
- .put(
- new Pair(LONG_TYPE, "java.lang.Object"), new IdentityConverter(Long.TYPE, Object.class)); //$NON-NLS-1$
-
- // Character.TYPE
- converterMap
- .put(
- new Pair("java.lang.String", CHARACTER_TYPE), StringToCharacterConverter.toCharacter(true)); //$NON-NLS-1$
- converterMap
- .put(
- new Pair(CHARACTER_TYPE, "java.lang.Character"), new IdentityConverter(Character.TYPE, Character.class)); //$NON-NLS-1$
- converterMap
- .put(
- new Pair(CHARACTER_TYPE, "java.lang.String"), CharacterToStringConverter.fromCharacter(true)); //$NON-NLS-1$
- converterMap
- .put(
- new Pair(CHARACTER_TYPE, "java.lang.Object"), new IdentityConverter(Character.TYPE, Object.class)); //$NON-NLS-1$
-
- // Miscellaneous
- converterMap
- .put(
- new Pair(
- "org.eclipse.core.runtime.IStatus", "java.lang.String"), "org.eclipse.core.internal.databinding.conversion.StatusToStringConverter"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-
- addNumberToByteConverters(converterMap, integerFormat,
- integerClasses);
- addNumberToByteConverters(converterMap, numberFormat, floatClasses);
-
- addNumberToShortConverters(converterMap, integerFormat,
- integerClasses);
- addNumberToShortConverters(converterMap, numberFormat, floatClasses);
-
- addNumberToIntegerConverters(converterMap, integerFormat,
- integerClasses);
- addNumberToIntegerConverters(converterMap, numberFormat,
- floatClasses);
-
- addNumberToLongConverters(converterMap, integerFormat,
- integerClasses);
- addNumberToLongConverters(converterMap, numberFormat, floatClasses);
-
- addNumberToFloatConverters(converterMap, integerFormat,
- integerClasses);
- addNumberToFloatConverters(converterMap, numberFormat, floatClasses);
-
- addNumberToDoubleConverters(converterMap, integerFormat,
- integerClasses);
- addNumberToDoubleConverters(converterMap, numberFormat,
- floatClasses);
-
- addNumberToBigIntegerConverters(converterMap, integerFormat,
- integerClasses);
- addNumberToBigIntegerConverters(converterMap, numberFormat,
- floatClasses);
-
- addNumberToBigDecimalConverters(converterMap, integerFormat,
- integerClasses);
- addNumberToBigDecimalConverters(converterMap, numberFormat,
- floatClasses);
- }
-
- return converterMap;
- }
-
- private static final Class[] integerClasses = new Class[] { Byte.TYPE,
- Byte.class, Short.TYPE, Short.class, Integer.TYPE, Integer.class,
- Long.TYPE, Long.class, BigInteger.class };
-
- private static final Class[] floatClasses = new Class[] { Float.TYPE,
- Float.class, Double.TYPE, Double.class, BigDecimal.class };
-
- /**
- * Registers converters to boxed and unboxed types from a list of from
- * classes.
- *
- * @param map
- * @param numberFormat
- * @param fromTypes
- */
- private static void addNumberToByteConverters(Map map,
- NumberFormat numberFormat, Class[] fromTypes) {
-
- for (int i = 0; i < fromTypes.length; i++) {
- Class fromType = fromTypes[i];
- if (!fromType.equals(Byte.class) && !fromType.equals(Byte.TYPE)) {
- String fromName = (fromType.isPrimitive()) ? getKeyForClass(
- fromType, null) : fromType.getName();
-
- map
- .put(new Pair(fromName, BYTE_TYPE),
- new NumberToByteConverter(numberFormat,
- fromType, true));
- map
- .put(new Pair(fromName, Byte.class.getName()),
- new NumberToByteConverter(numberFormat,
- fromType, false));
- }
- }
- }
-
- /**
- * Registers converters to boxed and unboxed types from a list of from
- * classes.
- *
- * @param map
- * @param numberFormat
- * @param fromTypes
- */
- private static void addNumberToShortConverters(Map map,
- NumberFormat numberFormat, Class[] fromTypes) {
- for (int i = 0; i < fromTypes.length; i++) {
- Class fromType = fromTypes[i];
- if (!fromType.equals(Short.class) && !fromType.equals(Short.TYPE)) {
- String fromName = (fromType.isPrimitive()) ? getKeyForClass(
- fromType, null) : fromType.getName();
-
- map
- .put(new Pair(fromName, SHORT_TYPE),
- new NumberToShortConverter(numberFormat,
- fromType, true));
- map.put(new Pair(fromName, Short.class.getName()),
- new NumberToShortConverter(numberFormat, fromType,
- false));
- }
- }
- }
-
- /**
- * Registers converters to boxed and unboxed types from a list of from
- * classes.
- *
- * @param map
- * @param numberFormat
- * @param fromTypes
- */
- private static void addNumberToIntegerConverters(Map map,
- NumberFormat numberFormat, Class[] fromTypes) {
- for (int i = 0; i < fromTypes.length; i++) {
- Class fromType = fromTypes[i];
- if (!fromType.equals(Integer.class)
- && !fromType.equals(Integer.TYPE)) {
- String fromName = (fromType.isPrimitive()) ? getKeyForClass(
- fromType, null) : fromType.getName();
-
- map.put(new Pair(fromName, INTEGER_TYPE),
- new NumberToIntegerConverter(numberFormat, fromType,
- true));
- map.put(new Pair(fromName, Integer.class.getName()),
- new NumberToIntegerConverter(numberFormat, fromType,
- false));
- }
- }
- }
-
- /**
- * Registers converters to boxed and unboxed types from a list of from
- * classes.
- *
- * @param map
- * @param numberFormat
- * @param fromTypes
- */
- private static void addNumberToLongConverters(Map map,
- NumberFormat numberFormat, Class[] fromTypes) {
- for (int i = 0; i < fromTypes.length; i++) {
- Class fromType = fromTypes[i];
- if (!fromType.equals(Long.class) && !fromType.equals(Long.TYPE)) {
- String fromName = (fromType.isPrimitive()) ? getKeyForClass(
- fromType, null) : fromType.getName();
-
- map
- .put(new Pair(fromName, LONG_TYPE),
- new NumberToLongConverter(numberFormat,
- fromType, true));
- map
- .put(new Pair(fromName, Long.class.getName()),
- new NumberToLongConverter(numberFormat,
- fromType, false));
- }
- }
- }
-
- /**
- * Registers converters to boxed and unboxed types from a list of from
- * classes.
- *
- * @param map
- * @param numberFormat
- * @param fromTypes
- */
- private static void addNumberToFloatConverters(Map map,
- NumberFormat numberFormat, Class[] fromTypes) {
- for (int i = 0; i < fromTypes.length; i++) {
- Class fromType = fromTypes[i];
- if (!fromType.equals(Float.class) && !fromType.equals(Float.TYPE)) {
- String fromName = (fromType.isPrimitive()) ? getKeyForClass(
- fromType, null) : fromType.getName();
-
- map
- .put(new Pair(fromName, FLOAT_TYPE),
- new NumberToFloatConverter(numberFormat,
- fromType, true));
- map.put(new Pair(fromName, Float.class.getName()),
- new NumberToFloatConverter(numberFormat, fromType,
- false));
- }
- }
- }
-
- /**
- * Registers converters to boxed and unboxed types from a list of from
- * classes.
- *
- * @param map
- * @param numberFormat
- * @param fromTypes
- */
- private static void addNumberToDoubleConverters(Map map,
- NumberFormat numberFormat, Class[] fromTypes) {
- for (int i = 0; i < fromTypes.length; i++) {
- Class fromType = fromTypes[i];
- if (!fromType.equals(Double.class) && !fromType.equals(Double.TYPE)) {
- String fromName = (fromType.isPrimitive()) ? getKeyForClass(
- fromType, null) : fromType.getName();
-
- map.put(new Pair(fromName, DOUBLE_TYPE),
- new NumberToDoubleConverter(numberFormat, fromType,
- true));
- map.put(new Pair(fromName, Double.class.getName()),
- new NumberToDoubleConverter(numberFormat, fromType,
- false));
- }
- }
- }
-
- /**
- * Registers converters to boxed and unboxed types from a list of from
- * classes.
- *
- * @param map
- * @param numberFormat
- * @param fromTypes
- */
- private static void addNumberToBigIntegerConverters(Map map,
- NumberFormat numberFormat, Class[] fromTypes) {
- for (int i = 0; i < fromTypes.length; i++) {
- Class fromType = fromTypes[i];
- if (!fromType.equals(BigInteger.class)) {
- String fromName = (fromType.isPrimitive()) ? getKeyForClass(
- fromType, null) : fromType.getName();
-
- map
- .put(new Pair(fromName, BigInteger.class.getName()),
- new NumberToBigIntegerConverter(numberFormat,
- fromType));
- }
- }
- }
-
- /**
- * Registers converters to boxed and unboxed types from a list of from
- * classes.
- *
- * @param map
- * @param numberFormat
- * @param fromTypes
- */
- private static void addNumberToBigDecimalConverters(Map map,
- NumberFormat numberFormat, Class[] fromTypes) {
- for (int i = 0; i < fromTypes.length; i++) {
- Class fromType = fromTypes[i];
- if (!fromType.equals(BigDecimal.class)) {
- String fromName = (fromType.isPrimitive()) ? getKeyForClass(
- fromType, null) : fromType.getName();
-
- map
- .put(new Pair(fromName, BigDecimal.class.getName()),
- new NumberToBigDecimalConverter(numberFormat,
- fromType));
- }
- }
- }
-
- private static String getKeyForClass(Object originalValue,
- Class filteredValue) {
- if (originalValue instanceof Class) {
- Class originalClass = (Class) originalValue;
- if (originalClass.equals(Integer.TYPE)) {
- return INTEGER_TYPE;
- } else if (originalClass.equals(Byte.TYPE)) {
- return BYTE_TYPE;
- } else if (originalClass.equals(Boolean.TYPE)) {
- return BOOLEAN_TYPE;
- } else if (originalClass.equals(Double.TYPE)) {
- return DOUBLE_TYPE;
- } else if (originalClass.equals(Float.TYPE)) {
- return FLOAT_TYPE;
- } else if (originalClass.equals(Long.TYPE)) {
- return LONG_TYPE;
- } else if (originalClass.equals(Short.TYPE)) {
- return SHORT_TYPE;
- }
- }
- return filteredValue.getName();
- }
-
- /**
- * @param fromType
- * @param toType
- * @return whether fromType is assignable to toType
- */
- protected Boolean isAssignableFromTo(Object fromType, Object toType) {
- if (fromType instanceof Class && toType instanceof Class) {
- Class toClass = (Class) toType;
- if (toClass.isPrimitive()) {
- toClass = autoboxed(toClass);
- }
- Class fromClass = (Class) fromType;
- if (fromClass.isPrimitive()) {
- fromClass = autoboxed(fromClass);
- }
- return toClass.isAssignableFrom(fromClass) ? Boolean.TRUE
- : Boolean.FALSE;
- }
- return null;
- }
+// private static Map getConverterMap() {
+// // using string-based lookup avoids loading of too many classes
+// if (converterMap == null) {
+// // NumberFormat to be shared across converters for the formatting of
+// // integer values
+// NumberFormat integerFormat = NumberFormat.getIntegerInstance();
+// // NumberFormat to be shared across converters for formatting non
+// // integer values
+// NumberFormat numberFormat = NumberFormat.getNumberInstance();
+//
+// converterMap = new HashMap();
+// // Standard and Boxed Types
+// converterMap
+// .put(
+// new Pair("java.util.Date", "java.lang.String"), "org.eclipse.core.internal.databinding.conversion.DateToStringConverter"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+// converterMap
+// .put(
+// new Pair("java.lang.String", "java.lang.Boolean"), "org.eclipse.core.internal.databinding.conversion.StringToBooleanConverter"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
+// converterMap
+// .put(
+// new Pair("java.lang.String", "java.lang.Byte"), StringToByteConverter.toByte(integerFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
+// converterMap
+// .put(
+// new Pair("java.lang.String", "java.util.Date"), "org.eclipse.core.internal.databinding.conversion.StringToDateConverter"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
+// converterMap
+// .put(
+// new Pair("java.lang.String", "java.lang.Short"), StringToShortConverter.toShort(integerFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
+// converterMap
+// .put(
+// new Pair("java.lang.String", "java.lang.Character"), StringToCharacterConverter.toCharacter(false)); //$NON-NLS-1$//$NON-NLS-2$
+// converterMap
+// .put(
+// new Pair("java.lang.String", "java.lang.Integer"), StringToNumberConverter.toInteger(integerFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
+// converterMap
+// .put(
+// new Pair("java.lang.String", "java.lang.Double"), StringToNumberConverter.toDouble(numberFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
+// converterMap
+// .put(
+// new Pair("java.lang.String", "java.lang.Long"), StringToNumberConverter.toLong(integerFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
+// converterMap
+// .put(
+// new Pair("java.lang.String", "java.lang.Float"), StringToNumberConverter.toFloat(numberFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
+// converterMap
+// .put(
+// new Pair("java.lang.String", "java.math.BigInteger"), StringToNumberConverter.toBigInteger(integerFormat)); //$NON-NLS-1$//$NON-NLS-2$
+// converterMap
+// .put(
+// new Pair("java.lang.Integer", "java.lang.String"), NumberToStringConverter.fromInteger(integerFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
+// converterMap
+// .put(
+// new Pair("java.lang.Long", "java.lang.String"), NumberToStringConverter.fromLong(integerFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
+// converterMap
+// .put(
+// new Pair("java.lang.Double", "java.lang.String"), NumberToStringConverter.fromDouble(numberFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
+// converterMap
+// .put(
+// new Pair("java.lang.Float", "java.lang.String"), NumberToStringConverter.fromFloat(numberFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
+// converterMap
+// .put(
+// new Pair("java.math.BigInteger", "java.lang.String"), NumberToStringConverter.fromBigInteger(integerFormat)); //$NON-NLS-1$//$NON-NLS-2$
+// converterMap
+// .put(
+// new Pair("java.lang.Byte", "java.lang.String"), IntegerToStringConverter.fromByte(integerFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
+// converterMap
+// .put(
+// new Pair("java.lang.Short", "java.lang.String"), IntegerToStringConverter.fromShort(integerFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
+// converterMap
+// .put(
+// new Pair("java.lang.Character", "java.lang.String"), CharacterToStringConverter.fromCharacter(false)); //$NON-NLS-1$//$NON-NLS-2$
+//
+// converterMap
+// .put(
+// new Pair("java.lang.Object", "java.lang.String"), "org.eclipse.core.internal.databinding.conversion.ObjectToStringConverter"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
+//
+// // Integer.TYPE
+// converterMap
+// .put(
+// new Pair("java.lang.String", INTEGER_TYPE), StringToNumberConverter.toInteger(integerFormat, true)); //$NON-NLS-1$
+// converterMap
+// .put(
+// new Pair(INTEGER_TYPE, "java.lang.Integer"), new IdentityConverter(Integer.TYPE, Integer.class)); //$NON-NLS-1$
+// converterMap
+// .put(
+// new Pair(INTEGER_TYPE, "java.lang.Object"), new IdentityConverter(Integer.TYPE, Object.class)); //$NON-NLS-1$
+// converterMap
+// .put(
+// new Pair(INTEGER_TYPE, "java.lang.String"), NumberToStringConverter.fromInteger(integerFormat, true)); //$NON-NLS-1$
+//
+// // Byte.TYPE
+// converterMap
+// .put(
+// new Pair("java.lang.String", BYTE_TYPE), StringToByteConverter.toByte(integerFormat, true)); //$NON-NLS-1$
+// converterMap
+// .put(
+// new Pair(BYTE_TYPE, "java.lang.Byte"), new IdentityConverter(Byte.TYPE, Byte.class)); //$NON-NLS-1$
+// converterMap
+// .put(
+// new Pair(BYTE_TYPE, "java.lang.String"), IntegerToStringConverter.fromByte(integerFormat, true)); //$NON-NLS-1$
+// converterMap
+// .put(
+// new Pair(BYTE_TYPE, "java.lang.Object"), new IdentityConverter(Byte.TYPE, Object.class)); //$NON-NLS-1$
+//
+// // Double.TYPE
+// converterMap
+// .put(
+// new Pair("java.lang.String", DOUBLE_TYPE), StringToNumberConverter.toDouble(numberFormat, true)); //$NON-NLS-1$
+// converterMap
+// .put(
+// new Pair(DOUBLE_TYPE, "java.lang.String"), NumberToStringConverter.fromDouble(numberFormat, true)); //$NON-NLS-1$
+//
+// converterMap
+// .put(
+// new Pair(DOUBLE_TYPE, "java.lang.Double"), new IdentityConverter(Double.TYPE, Double.class)); //$NON-NLS-1$
+// converterMap
+// .put(
+// new Pair(DOUBLE_TYPE, "java.lang.Object"), new IdentityConverter(Double.TYPE, Object.class)); //$NON-NLS-1$
+//
+// // Boolean.TYPE
+// converterMap
+// .put(
+// new Pair("java.lang.String", BOOLEAN_TYPE), "org.eclipse.core.internal.databinding.conversion.StringToBooleanPrimitiveConverter"); //$NON-NLS-1$ //$NON-NLS-2$
+// converterMap
+// .put(
+// new Pair(BOOLEAN_TYPE, "java.lang.Boolean"), new IdentityConverter(Boolean.TYPE, Boolean.class)); //$NON-NLS-1$
+// converterMap
+// .put(
+// new Pair(BOOLEAN_TYPE, "java.lang.String"), new ObjectToStringConverter(Boolean.TYPE)); //$NON-NLS-1$
+// converterMap
+// .put(
+// new Pair(BOOLEAN_TYPE, "java.lang.Object"), new IdentityConverter(Boolean.TYPE, Object.class)); //$NON-NLS-1$
+//
+// // Float.TYPE
+// converterMap
+// .put(
+// new Pair("java.lang.String", FLOAT_TYPE), StringToNumberConverter.toFloat(numberFormat, true)); //$NON-NLS-1$
+// converterMap
+// .put(
+// new Pair(FLOAT_TYPE, "java.lang.String"), NumberToStringConverter.fromFloat(numberFormat, true)); //$NON-NLS-1$
+// converterMap
+// .put(
+// new Pair(FLOAT_TYPE, "java.lang.Float"), new IdentityConverter(Float.TYPE, Float.class)); //$NON-NLS-1$
+// converterMap
+// .put(
+// new Pair(FLOAT_TYPE, "java.lang.Object"), new IdentityConverter(Float.TYPE, Object.class)); //$NON-NLS-1$
+//
+// // Short.TYPE
+// converterMap
+// .put(
+// new Pair("java.lang.String", SHORT_TYPE), StringToShortConverter.toShort(integerFormat, true)); //$NON-NLS-1$
+// converterMap
+// .put(
+// new Pair(SHORT_TYPE, "java.lang.Short"), new IdentityConverter(Short.TYPE, Short.class)); //$NON-NLS-1$
+// converterMap
+// .put(
+// new Pair(SHORT_TYPE, "java.lang.String"), IntegerToStringConverter.fromShort(integerFormat, true)); //$NON-NLS-1$
+// converterMap
+// .put(
+// new Pair(SHORT_TYPE, "java.lang.Object"), new IdentityConverter(Short.TYPE, Object.class)); //$NON-NLS-1$
+//
+// // Long.TYPE
+// converterMap
+// .put(
+// new Pair("java.lang.String", LONG_TYPE), StringToNumberConverter.toLong(integerFormat, true)); //$NON-NLS-1$
+// converterMap
+// .put(
+// new Pair(LONG_TYPE, "java.lang.String"), NumberToStringConverter.fromLong(integerFormat, true)); //$NON-NLS-1$
+// converterMap
+// .put(
+// new Pair(LONG_TYPE, "java.lang.Long"), new IdentityConverter(Long.TYPE, Long.class)); //$NON-NLS-1$
+// converterMap
+// .put(
+// new Pair(LONG_TYPE, "java.lang.Object"), new IdentityConverter(Long.TYPE, Object.class)); //$NON-NLS-1$
+//
+// // Character.TYPE
+// converterMap
+// .put(
+// new Pair("java.lang.String", CHARACTER_TYPE), StringToCharacterConverter.toCharacter(true)); //$NON-NLS-1$
+// converterMap
+// .put(
+// new Pair(CHARACTER_TYPE, "java.lang.Character"), new IdentityConverter(Character.TYPE, Character.class)); //$NON-NLS-1$
+// converterMap
+// .put(
+// new Pair(CHARACTER_TYPE, "java.lang.String"), CharacterToStringConverter.fromCharacter(true)); //$NON-NLS-1$
+// converterMap
+// .put(
+// new Pair(CHARACTER_TYPE, "java.lang.Object"), new IdentityConverter(Character.TYPE, Object.class)); //$NON-NLS-1$
+//
+// // Miscellaneous
+// converterMap
+// .put(
+// new Pair(
+// "org.eclipse.core.runtime.IStatus", "java.lang.String"), "org.eclipse.core.internal.databinding.conversion.StatusToStringConverter"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
+//
+// addNumberToByteConverters(converterMap, integerFormat,
+// integerClasses);
+// addNumberToByteConverters(converterMap, numberFormat, floatClasses);
+//
+// addNumberToShortConverters(converterMap, integerFormat,
+// integerClasses);
+// addNumberToShortConverters(converterMap, numberFormat, floatClasses);
+//
+// addNumberToIntegerConverters(converterMap, integerFormat,
+// integerClasses);
+// addNumberToIntegerConverters(converterMap, numberFormat,
+// floatClasses);
+//
+// addNumberToLongConverters(converterMap, integerFormat,
+// integerClasses);
+// addNumberToLongConverters(converterMap, numberFormat, floatClasses);
+//
+// addNumberToFloatConverters(converterMap, integerFormat,
+// integerClasses);
+// addNumberToFloatConverters(converterMap, numberFormat, floatClasses);
+//
+// addNumberToDoubleConverters(converterMap, integerFormat,
+// integerClasses);
+// addNumberToDoubleConverters(converterMap, numberFormat,
+// floatClasses);
+//
+// addNumberToBigIntegerConverters(converterMap, integerFormat,
+// integerClasses);
+// addNumberToBigIntegerConverters(converterMap, numberFormat,
+// floatClasses);
+//
+// addNumberToBigDecimalConverters(converterMap, integerFormat,
+// integerClasses);
+// addNumberToBigDecimalConverters(converterMap, numberFormat,
+// floatClasses);
+// }
+//
+// return converterMap;
+// }
+//
+// private static final Class[] integerClasses = new Class[] { Byte.TYPE,
+// Byte.class, Short.TYPE, Short.class, Integer.TYPE, Integer.class,
+// Long.TYPE, Long.class, BigInteger.class };
+//
+// private static final Class[] floatClasses = new Class[] { Float.TYPE,
+// Float.class, Double.TYPE, Double.class, BigDecimal.class };
+//
+// /**
+// * Registers converters to boxed and unboxed types from a list of from
+// * classes.
+// *
+// * @param map
+// * @param numberFormat
+// * @param fromTypes
+// */
+// private static void addNumberToByteConverters(Map map,
+// NumberFormat numberFormat, Class[] fromTypes) {
+//
+// for (int i = 0; i < fromTypes.length; i++) {
+// Class fromType = fromTypes[i];
+// if (!fromType.equals(Byte.class) && !fromType.equals(Byte.TYPE)) {
+// String fromName = (fromType.isPrimitive()) ? getKeyForClass(
+// fromType, null) : fromType.getName();
+//
+// map
+// .put(new Pair(fromName, BYTE_TYPE),
+// new NumberToByteConverter(numberFormat,
+// fromType, true));
+// map
+// .put(new Pair(fromName, Byte.class.getName()),
+// new NumberToByteConverter(numberFormat,
+// fromType, false));
+// }
+// }
+// }
+//
+// /**
+// * Registers converters to boxed and unboxed types from a list of from
+// * classes.
+// *
+// * @param map
+// * @param numberFormat
+// * @param fromTypes
+// */
+// private static void addNumberToShortConverters(Map map,
+// NumberFormat numberFormat, Class[] fromTypes) {
+// for (int i = 0; i < fromTypes.length; i++) {
+// Class fromType = fromTypes[i];
+// if (!fromType.equals(Short.class) && !fromType.equals(Short.TYPE)) {
+// String fromName = (fromType.isPrimitive()) ? getKeyForClass(
+// fromType, null) : fromType.getName();
+//
+// map
+// .put(new Pair(fromName, SHORT_TYPE),
+// new NumberToShortConverter(numberFormat,
+// fromType, true));
+// map.put(new Pair(fromName, Short.class.getName()),
+// new NumberToShortConverter(numberFormat, fromType,
+// false));
+// }
+// }
+// }
+//
+// /**
+// * Registers converters to boxed and unboxed types from a list of from
+// * classes.
+// *
+// * @param map
+// * @param numberFormat
+// * @param fromTypes
+// */
+// private static void addNumberToIntegerConverters(Map map,
+// NumberFormat numberFormat, Class[] fromTypes) {
+// for (int i = 0; i < fromTypes.length; i++) {
+// Class fromType = fromTypes[i];
+// if (!fromType.equals(Integer.class)
+// && !fromType.equals(Integer.TYPE)) {
+// String fromName = (fromType.isPrimitive()) ? getKeyForClass(
+// fromType, null) : fromType.getName();
+//
+// map.put(new Pair(fromName, INTEGER_TYPE),
+// new NumberToIntegerConverter(numberFormat, fromType,
+// true));
+// map.put(new Pair(fromName, Integer.class.getName()),
+// new NumberToIntegerConverter(numberFormat, fromType,
+// false));
+// }
+// }
+// }
+//
+// /**
+// * Registers converters to boxed and unboxed types from a list of from
+// * classes.
+// *
+// * @param map
+// * @param numberFormat
+// * @param fromTypes
+// */
+// private static void addNumberToLongConverters(Map map,
+// NumberFormat numberFormat, Class[] fromTypes) {
+// for (int i = 0; i < fromTypes.length; i++) {
+// Class fromType = fromTypes[i];
+// if (!fromType.equals(Long.class) && !fromType.equals(Long.TYPE)) {
+// String fromName = (fromType.isPrimitive()) ? getKeyForClass(
+// fromType, null) : fromType.getName();
+//
+// map
+// .put(new Pair(fromName, LONG_TYPE),
+// new NumberToLongConverter(numberFormat,
+// fromType, true));
+// map
+// .put(new Pair(fromName, Long.class.getName()),
+// new NumberToLongConverter(numberFormat,
+// fromType, false));
+// }
+// }
+// }
+//
+// /**
+// * Registers converters to boxed and unboxed types from a list of from
+// * classes.
+// *
+// * @param map
+// * @param numberFormat
+// * @param fromTypes
+// */
+// private static void addNumberToFloatConverters(Map map,
+// NumberFormat numberFormat, Class[] fromTypes) {
+// for (int i = 0; i < fromTypes.length; i++) {
+// Class fromType = fromTypes[i];
+// if (!fromType.equals(Float.class) && !fromType.equals(Float.TYPE)) {
+// String fromName = (fromType.isPrimitive()) ? getKeyForClass(
+// fromType, null) : fromType.getName();
+//
+// map
+// .put(new Pair(fromName, FLOAT_TYPE),
+// new NumberToFloatConverter(numberFormat,
+// fromType, true));
+// map.put(new Pair(fromName, Float.class.getName()),
+// new NumberToFloatConverter(numberFormat, fromType,
+// false));
+// }
+// }
+// }
+//
+// /**
+// * Registers converters to boxed and unboxed types from a list of from
+// * classes.
+// *
+// * @param map
+// * @param numberFormat
+// * @param fromTypes
+// */
+// private static void addNumberToDoubleConverters(Map map,
+// NumberFormat numberFormat, Class[] fromTypes) {
+// for (int i = 0; i < fromTypes.length; i++) {
+// Class fromType = fromTypes[i];
+// if (!fromType.equals(Double.class) && !fromType.equals(Double.TYPE)) {
+// String fromName = (fromType.isPrimitive()) ? getKeyForClass(
+// fromType, null) : fromType.getName();
+//
+// map.put(new Pair(fromName, DOUBLE_TYPE),
+// new NumberToDoubleConverter(numberFormat, fromType,
+// true));
+// map.put(new Pair(fromName, Double.class.getName()),
+// new NumberToDoubleConverter(numberFormat, fromType,
+// false));
+// }
+// }
+// }
+//
+// /**
+// * Registers converters to boxed and unboxed types from a list of from
+// * classes.
+// *
+// * @param map
+// * @param numberFormat
+// * @param fromTypes
+// */
+// private static void addNumberToBigIntegerConverters(Map map,
+// NumberFormat numberFormat, Class[] fromTypes) {
+// for (int i = 0; i < fromTypes.length; i++) {
+// Class fromType = fromTypes[i];
+// if (!fromType.equals(BigInteger.class)) {
+// String fromName = (fromType.isPrimitive()) ? getKeyForClass(
+// fromType, null) : fromType.getName();
+//
+// map
+// .put(new Pair(fromName, BigInteger.class.getName()),
+// new NumberToBigIntegerConverter(numberFormat,
+// fromType));
+// }
+// }
+// }
+//
+// /**
+// * Registers converters to boxed and unboxed types from a list of from
+// * classes.
+// *
+// * @param map
+// * @param numberFormat
+// * @param fromTypes
+// */
+// private static void addNumberToBigDecimalConverters(Map map,
+// NumberFormat numberFormat, Class[] fromTypes) {
+// for (int i = 0; i < fromTypes.length; i++) {
+// Class fromType = fromTypes[i];
+// if (!fromType.equals(BigDecimal.class)) {
+// String fromName = (fromType.isPrimitive()) ? getKeyForClass(
+// fromType, null) : fromType.getName();
+//
+// map
+// .put(new Pair(fromName, BigDecimal.class.getName()),
+// new NumberToBigDecimalConverter(numberFormat,
+// fromType));
+// }
+// }
+// }
+//
+// private static String getKeyForClass(Object originalValue,
+// Class filteredValue) {
+// if (originalValue instanceof Class) {
+// Class originalClass = (Class) originalValue;
+// if (originalClass.equals(Integer.TYPE)) {
+// return INTEGER_TYPE;
+// } else if (originalClass.equals(Byte.TYPE)) {
+// return BYTE_TYPE;
+// } else if (originalClass.equals(Boolean.TYPE)) {
+// return BOOLEAN_TYPE;
+// } else if (originalClass.equals(Double.TYPE)) {
+// return DOUBLE_TYPE;
+// } else if (originalClass.equals(Float.TYPE)) {
+// return FLOAT_TYPE;
+// } else if (originalClass.equals(Long.TYPE)) {
+// return LONG_TYPE;
+// } else if (originalClass.equals(Short.TYPE)) {
+// return SHORT_TYPE;
+// }
+// }
+// return filteredValue.getName();
+// }
+//
+// /**
+// * @param fromType
+// * @param toType
+// * @return whether fromType is assignable to toType
+// */
+// protected Boolean isAssignableFromTo(Object fromType, Object toType) {
+// if (fromType instanceof Class && toType instanceof Class) {
+// Class toClass = (Class) toType;
+// if (toClass.isPrimitive()) {
+// toClass = autoboxed(toClass);
+// }
+// Class fromClass = (Class) fromType;
+// if (fromClass.isPrimitive()) {
+// fromClass = autoboxed(fromClass);
+// }
+// return toClass.isAssignableFrom(fromClass) ? Boolean.TRUE
+// : Boolean.FALSE;
+// }
+// return null;
+// }
/*
* Default converter implementation, does not perform any conversion.