From 46c9a003eb1e0230aef78f2433203b75bc9934bb Mon Sep 17 00:00:00 2001 From: Keith Donald Date: Fri, 15 May 2009 20:32:23 +0000 Subject: [PATCH] BindingPoint to ConversionPoint, javadoc --- .../BeanExpressionContextAccessor.java | 2 +- .../expression/BeanFactoryAccessor.java | 2 +- ...BindingPoint.java => ConversionPoint.java} | 30 +++++++++---------- .../core/convert/TypeConverter.java | 15 +++++----- .../core/convert/converter/Converter.java | 4 +-- .../convert/converter/ConverterFactory.java | 14 +++++++++ .../convert/converter/ConverterRegistry.java | 17 +++++++++++ .../support/AbstractCollectionConverter.java | 10 +++---- .../core/convert/support/ArrayToArray.java | 4 +-- .../convert/support/ArrayToCollection.java | 4 +-- .../convert/support/CollectionToArray.java | 6 ++-- .../support/CollectionToCollection.java | 6 ++-- .../convert/support/GenericTypeConverter.java | 14 ++++----- .../core/convert/support/MapToMap.java | 16 +++++----- .../support/StaticConversionExecutor.java | 8 ++--- ...orTests.java => ConversionPointTests.java} | 12 ++++---- .../convert/support/ArrayToArrayTests.java | 4 +-- .../support/ArrayToCollectionTests.java | 12 ++++---- .../support/CollectionToArrayTests.java | 10 +++---- .../support/CollectionToCollectionTests.java | 22 +++++++------- .../support/GenericTypeConverterTests.java | 6 ++-- .../core/convert/support/MapToMapTests.java | 14 ++++----- .../expression/TypeConverter.java | 6 ++-- .../expression/TypedValue.java | 12 ++++---- .../expression/spel/ExpressionState.java | 10 +++---- .../spel/ast/CommonTypeDescriptors.java | 24 +++++++-------- .../spel/ast/FunctionReference.java | 4 +-- .../expression/spel/ast/Indexer.java | 22 +++++++------- .../expression/spel/ast/OperatorDivide.java | 4 +-- .../expression/spel/ast/Projection.java | 8 ++--- .../expression/spel/ast/Selection.java | 14 ++++----- .../ReflectiveConstructorExecutor.java | 4 +-- .../support/ReflectiveMethodExecutor.java | 4 +-- .../support/ReflectivePropertyResolver.java | 26 ++++++++-------- .../support/StandardEvaluationContext.java | 6 ++-- .../spel/support/StandardTypeConverter.java | 10 +++---- .../spel/ExpressionLanguageScenarioTests.java | 6 ++-- .../expression/spel/ExpressionStateTests.java | 8 ++--- ...essionTestsUsingCoreConversionService.java | 18 +++++------ .../spel/ScenariosForSpringSecurity.java | 8 ++--- 40 files changed, 229 insertions(+), 197 deletions(-) rename org.springframework.core/src/main/java/org/springframework/core/convert/{BindingPoint.java => ConversionPoint.java} (92%) rename org.springframework.core/src/test/java/org/springframework/core/convert/{TypeDescriptorTests.java => ConversionPointTests.java} (78%) diff --git a/org.springframework.context/src/main/java/org/springframework/context/expression/BeanExpressionContextAccessor.java b/org.springframework.context/src/main/java/org/springframework/context/expression/BeanExpressionContextAccessor.java index 5e6d853b31..50a69c4112 100644 --- a/org.springframework.context/src/main/java/org/springframework/context/expression/BeanExpressionContextAccessor.java +++ b/org.springframework.context/src/main/java/org/springframework/context/expression/BeanExpressionContextAccessor.java @@ -17,7 +17,7 @@ package org.springframework.context.expression; import org.springframework.beans.factory.config.BeanExpressionContext; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; import org.springframework.expression.AccessException; import org.springframework.expression.EvaluationContext; import org.springframework.expression.PropertyAccessor; diff --git a/org.springframework.context/src/main/java/org/springframework/context/expression/BeanFactoryAccessor.java b/org.springframework.context/src/main/java/org/springframework/context/expression/BeanFactoryAccessor.java index b670472b38..56d6a68acc 100644 --- a/org.springframework.context/src/main/java/org/springframework/context/expression/BeanFactoryAccessor.java +++ b/org.springframework.context/src/main/java/org/springframework/context/expression/BeanFactoryAccessor.java @@ -17,7 +17,7 @@ package org.springframework.context.expression; import org.springframework.beans.factory.BeanFactory; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; import org.springframework.expression.AccessException; import org.springframework.expression.EvaluationContext; import org.springframework.expression.PropertyAccessor; diff --git a/org.springframework.core/src/main/java/org/springframework/core/convert/BindingPoint.java b/org.springframework.core/src/main/java/org/springframework/core/convert/ConversionPoint.java similarity index 92% rename from org.springframework.core/src/main/java/org/springframework/core/convert/BindingPoint.java rename to org.springframework.core/src/main/java/org/springframework/core/convert/ConversionPoint.java index d079c1432a..66e64e7a93 100644 --- a/org.springframework.core/src/main/java/org/springframework/core/convert/BindingPoint.java +++ b/org.springframework.core/src/main/java/org/springframework/core/convert/ConversionPoint.java @@ -27,17 +27,19 @@ import org.springframework.util.Assert; // TODO doesn't support more than depth of one (eg. Map> or List[]) /** - * Type metadata about a bindable target value. + * A point where conversion needs to be performed. Provides additional context about the point such + * as field or method parameter information. * * @author Keith Donald * @author Andy Clement */ -public class BindingPoint { +public class ConversionPoint { /** * Constant value typeDescriptor for the type of a null value */ - public final static BindingPoint NULL_TYPE_DESCRIPTOR = new BindingPoint((Class) null); + @SuppressWarnings("unchecked") + public final static ConversionPoint NULL = new ConversionPoint((Class) null); private MethodParameter methodParameter; @@ -52,7 +54,7 @@ public class BindingPoint { * a Map or collection, where no additional binding metadata is available. * @param type the actual type */ - public BindingPoint(Class type) { + public ConversionPoint(Class type) { this.type = type; } @@ -61,7 +63,7 @@ public class BindingPoint { * from a method parameter, such as a setter method argument. * @param methodParameter the MethodParameter to wrap */ - public BindingPoint(MethodParameter methodParameter) { + public ConversionPoint(MethodParameter methodParameter) { Assert.notNull(methodParameter, "MethodParameter must not be null"); this.methodParameter = methodParameter; } @@ -70,7 +72,7 @@ public class BindingPoint { * Create a new descriptor for a field. Use this constructor when a bound value originates from a field. * @param field the field to wrap */ - public BindingPoint(Field field) { + public ConversionPoint(Field field) { Assert.notNull(field, "Field must not be null"); this.field = field; } @@ -153,7 +155,6 @@ public class BindingPoint { /** * Determine the generic key type of the wrapped Map parameter/field, if any. - * * @return the generic type, or null if none */ public Class getMapKeyType() { @@ -168,7 +169,6 @@ public class BindingPoint { /** * Determine the generic value type of the wrapped Map parameter/field, if any. - * * @return the generic type, or null if none */ public Class getMapValueType() { @@ -201,7 +201,6 @@ public class BindingPoint { * Return the wrapped MethodParameter, if any. *

* Note: Either MethodParameter or Field is available. - * * @return the MethodParameter, or null if none */ public MethodParameter getMethodParameter() { @@ -212,7 +211,6 @@ public class BindingPoint { * Return the wrapped Field, if any. *

* Note: Either MethodParameter or Field is available. - * * @return the Field, or null if none */ public Field getField() { @@ -248,7 +246,8 @@ public class BindingPoint { * @param targetType the target type * @return true if this type is assignable to the target */ - public boolean isAssignableTo(BindingPoint targetType) { + @SuppressWarnings("unchecked") + public boolean isAssignableTo(ConversionPoint targetType) { return targetType.getType().isAssignableFrom(getType()); } @@ -257,9 +256,9 @@ public class BindingPoint { * @param type the class * @return the type descriptor */ - public static BindingPoint valueOf(Class type) { + public static ConversionPoint valueOf(Class type) { // TODO needs a cache for common type descriptors - return new BindingPoint(type); + return new ConversionPoint(type); } /** @@ -267,9 +266,10 @@ public class BindingPoint { * @param object the object * @return the type descriptor */ - public static BindingPoint forObject(Object object) { + @SuppressWarnings("unchecked") + public static ConversionPoint forObject(Object object) { if (object == null) { - return NULL_TYPE_DESCRIPTOR; + return NULL; } else { return valueOf(object.getClass()); } diff --git a/org.springframework.core/src/main/java/org/springframework/core/convert/TypeConverter.java b/org.springframework.core/src/main/java/org/springframework/core/convert/TypeConverter.java index ac3bfb18ee..fe7989c30e 100644 --- a/org.springframework.core/src/main/java/org/springframework/core/convert/TypeConverter.java +++ b/org.springframework.core/src/main/java/org/springframework/core/convert/TypeConverter.java @@ -18,8 +18,9 @@ package org.springframework.core.convert; /** * A service interface for type conversion. This is the entry point into the convert system. *

- * Call {@link #convert(Object, Class)} to perform a thread-safe type conversion using - * this system. + * Call {@link #convert(Object, Class)} to perform a thread-safe type conversion using this system.
+ * Call {@link #convert(Object, ConversionPoint)} to perform a conversion with additional context about the point + * where conversion needs to occur. * * @author Keith Donald */ @@ -34,12 +35,12 @@ public interface TypeConverter { boolean canConvert(Class sourceType, Class targetType); /** - * Returns true if objects of sourceType can be converted to the type of the binding point. + * Returns true if objects of sourceType can be converted to the type of the conversion point. * @param source the source to convert from (may be null) * @param point context about the target type to convert to * @return true if a conversion can be performed, false if not */ - boolean canConvert(Class sourceType, BindingPoint point); + boolean canConvert(Class sourceType, ConversionPoint point); /** * Convert the source to targetType. @@ -51,12 +52,12 @@ public interface TypeConverter { T convert(S source, Class targetType); /** - * Convert the source to type T needed by the binding point. + * Convert the source to type T needed by the conversion point. * @param source the source to convert from (may be null) * @param point a binding point where a conversion is required - * @return the converted object, an instance of {@link BindingPoint#getType()}, or null if a null source was provided + * @return the converted object, an instance of {@link ConversionPoint#getType()}, or null if a null source was provided * @throws ConvertException if an exception occurred */ - T convert(S source, BindingPoint point); + T convert(S source, ConversionPoint point); } \ No newline at end of file diff --git a/org.springframework.core/src/main/java/org/springframework/core/convert/converter/Converter.java b/org.springframework.core/src/main/java/org/springframework/core/convert/converter/Converter.java index 67c7b4d454..252a6af7f6 100644 --- a/org.springframework.core/src/main/java/org/springframework/core/convert/converter/Converter.java +++ b/org.springframework.core/src/main/java/org/springframework/core/convert/converter/Converter.java @@ -19,10 +19,10 @@ import org.springframework.core.convert.ConvertException; import org.springframework.core.convert.TypeConverter; /** - * A converter converts a source object of type S to a target of type T and back. + * A converter converts a source object of type S to a target of type T. *

* Implementations of this interface are thread-safe and can be shared. Converters are typically registered with and - * accessed through a {@link TypeConverter}. + * invoked behind a {@link TypeConverter}. They typically should not be called directly. *

* @author Keith Donald */ diff --git a/org.springframework.core/src/main/java/org/springframework/core/convert/converter/ConverterFactory.java b/org.springframework.core/src/main/java/org/springframework/core/convert/converter/ConverterFactory.java index 9caa879739..05aa9f70b5 100644 --- a/org.springframework.core/src/main/java/org/springframework/core/convert/converter/ConverterFactory.java +++ b/org.springframework.core/src/main/java/org/springframework/core/convert/converter/ConverterFactory.java @@ -15,6 +15,20 @@ */ package org.springframework.core.convert.converter; +/** + * A factory for a "ranged" converters that can convert objects from S to subtypes of R. + * @author kdonald + * @param The source type converters created by this factory can convert from + * @param The target range (or base) type converters created by this factory can convert to; + * for example {@link Number} for a set of number subtypes. + */ public interface ConverterFactory { + + /** + * Get the converter to convert from S to target type T, where T is also an instance of R. + * @param the target type + * @param targetType the target type to convert to + * @return A converter from S to T + */ Converter getConverter(Class targetType); } \ No newline at end of file diff --git a/org.springframework.core/src/main/java/org/springframework/core/convert/converter/ConverterRegistry.java b/org.springframework.core/src/main/java/org/springframework/core/convert/converter/ConverterRegistry.java index 440ad97fce..e3bb1dc83f 100644 --- a/org.springframework.core/src/main/java/org/springframework/core/convert/converter/ConverterRegistry.java +++ b/org.springframework.core/src/main/java/org/springframework/core/convert/converter/ConverterRegistry.java @@ -1,12 +1,29 @@ package org.springframework.core.convert.converter; +/** + * A interface for registering converters with a type conversion system. + * @author Keith Donald + */ public interface ConverterRegistry { + + /** + * Add a converter to this registry. + */ void addConverter(Converter converter); + /** + * Add a converter factory to this registry. + */ void addConverterFactory(ConverterFactory converter); + /** + * Remove a converter from this registry. + */ void removeConverter(Converter converter); + /** + * Remove a converter factory from this registry. + */ void removeConverterFactory(Converter converter); } \ No newline at end of file diff --git a/org.springframework.core/src/main/java/org/springframework/core/convert/support/AbstractCollectionConverter.java b/org.springframework.core/src/main/java/org/springframework/core/convert/support/AbstractCollectionConverter.java index 0ced2fadc8..57c3a164fe 100644 --- a/org.springframework.core/src/main/java/org/springframework/core/convert/support/AbstractCollectionConverter.java +++ b/org.springframework.core/src/main/java/org/springframework/core/convert/support/AbstractCollectionConverter.java @@ -16,7 +16,7 @@ package org.springframework.core.convert.support; import org.springframework.core.convert.ConversionFailedException; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; /** * Base class for converters that convert to and from collection types (arrays and java.util.Collection types) @@ -28,18 +28,18 @@ abstract class AbstractCollectionConverter implements ConversionExecutor { private ConversionExecutor elementConverter; - private BindingPoint sourceCollectionType; + private ConversionPoint sourceCollectionType; - private BindingPoint targetCollectionType; + private ConversionPoint targetCollectionType; - public AbstractCollectionConverter(BindingPoint sourceCollectionType, BindingPoint targetCollectionType, GenericTypeConverter conversionService) { + public AbstractCollectionConverter(ConversionPoint sourceCollectionType, ConversionPoint targetCollectionType, GenericTypeConverter conversionService) { this.conversionService = conversionService; this.sourceCollectionType = sourceCollectionType; this.targetCollectionType = targetCollectionType; Class sourceElementType = sourceCollectionType.getElementType(); Class targetElementType = targetCollectionType.getElementType(); if (sourceElementType != null && targetElementType != null) { - elementConverter = conversionService.getConversionExecutor(sourceElementType, BindingPoint.valueOf(targetElementType)); + elementConverter = conversionService.getConversionExecutor(sourceElementType, ConversionPoint.valueOf(targetElementType)); } else { elementConverter = NoOpConversionExecutor.INSTANCE; } diff --git a/org.springframework.core/src/main/java/org/springframework/core/convert/support/ArrayToArray.java b/org.springframework.core/src/main/java/org/springframework/core/convert/support/ArrayToArray.java index ef2dd3f9c2..fa8937ca32 100644 --- a/org.springframework.core/src/main/java/org/springframework/core/convert/support/ArrayToArray.java +++ b/org.springframework.core/src/main/java/org/springframework/core/convert/support/ArrayToArray.java @@ -18,7 +18,7 @@ package org.springframework.core.convert.support; import java.lang.reflect.Array; import org.springframework.core.convert.TypeConverter; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; /** * Special one-way converter that converts from a source array to a target array. Supports type conversion of the @@ -29,7 +29,7 @@ import org.springframework.core.convert.BindingPoint; */ class ArrayToArray extends AbstractCollectionConverter { - public ArrayToArray(BindingPoint sourceArrayType, BindingPoint targetArrayType, GenericTypeConverter conversionService) { + public ArrayToArray(ConversionPoint sourceArrayType, ConversionPoint targetArrayType, GenericTypeConverter conversionService) { super(sourceArrayType, targetArrayType, conversionService); } diff --git a/org.springframework.core/src/main/java/org/springframework/core/convert/support/ArrayToCollection.java b/org.springframework.core/src/main/java/org/springframework/core/convert/support/ArrayToCollection.java index fb1e3f9bba..557f3c57e1 100644 --- a/org.springframework.core/src/main/java/org/springframework/core/convert/support/ArrayToCollection.java +++ b/org.springframework.core/src/main/java/org/springframework/core/convert/support/ArrayToCollection.java @@ -18,7 +18,7 @@ package org.springframework.core.convert.support; import java.lang.reflect.Array; import java.util.Collection; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; /** * Special converter that converts from a source array to a target collection. Supports the selection of an @@ -29,7 +29,7 @@ import org.springframework.core.convert.BindingPoint; */ class ArrayToCollection extends AbstractCollectionConverter { - public ArrayToCollection(BindingPoint sourceArrayType, BindingPoint targetCollectionType, + public ArrayToCollection(ConversionPoint sourceArrayType, ConversionPoint targetCollectionType, GenericTypeConverter conversionService) { super(sourceArrayType, targetCollectionType, conversionService); } diff --git a/org.springframework.core/src/main/java/org/springframework/core/convert/support/CollectionToArray.java b/org.springframework.core/src/main/java/org/springframework/core/convert/support/CollectionToArray.java index 255e2b85b9..ccd3a81ea4 100644 --- a/org.springframework.core/src/main/java/org/springframework/core/convert/support/CollectionToArray.java +++ b/org.springframework.core/src/main/java/org/springframework/core/convert/support/CollectionToArray.java @@ -19,7 +19,7 @@ import java.lang.reflect.Array; import java.util.Collection; import java.util.Iterator; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; /** * Special converter that converts from target collection to a source array. @@ -28,7 +28,7 @@ import org.springframework.core.convert.BindingPoint; */ class CollectionToArray extends AbstractCollectionConverter { - public CollectionToArray(BindingPoint sourceArrayType, BindingPoint targetCollectionType, + public CollectionToArray(ConversionPoint sourceArrayType, ConversionPoint targetCollectionType, GenericTypeConverter conversionService) { super(sourceArrayType, targetCollectionType, conversionService); } @@ -52,7 +52,7 @@ class CollectionToArray extends AbstractCollectionConverter { while (it.hasNext()) { Object value = it.next(); if (value != null) { - elementConverter = getConversionService().getConversionExecutor(value.getClass(), BindingPoint.valueOf(getTargetElementType())); + elementConverter = getConversionService().getConversionExecutor(value.getClass(), ConversionPoint.valueOf(getTargetElementType())); break; } } diff --git a/org.springframework.core/src/main/java/org/springframework/core/convert/support/CollectionToCollection.java b/org.springframework.core/src/main/java/org/springframework/core/convert/support/CollectionToCollection.java index 8d5a72ec6c..243c92ce41 100644 --- a/org.springframework.core/src/main/java/org/springframework/core/convert/support/CollectionToCollection.java +++ b/org.springframework.core/src/main/java/org/springframework/core/convert/support/CollectionToCollection.java @@ -18,7 +18,7 @@ package org.springframework.core.convert.support; import java.util.Collection; import java.util.Iterator; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; /** * A converter that can convert from one collection type to another. @@ -27,7 +27,7 @@ import org.springframework.core.convert.BindingPoint; */ class CollectionToCollection extends AbstractCollectionConverter { - public CollectionToCollection(BindingPoint sourceCollectionType, BindingPoint targetCollectionType, + public CollectionToCollection(ConversionPoint sourceCollectionType, ConversionPoint targetCollectionType, GenericTypeConverter conversionService) { super(sourceCollectionType, targetCollectionType, conversionService); } @@ -53,7 +53,7 @@ class CollectionToCollection extends AbstractCollectionConverter { while (it.hasNext()) { Object value = it.next(); if (value != null) { - elementConverter = getConversionService().getConversionExecutor(value.getClass(), BindingPoint.valueOf(getTargetElementType())); + elementConverter = getConversionService().getConversionExecutor(value.getClass(), ConversionPoint.valueOf(getTargetElementType())); break; } } diff --git a/org.springframework.core/src/main/java/org/springframework/core/convert/support/GenericTypeConverter.java b/org.springframework.core/src/main/java/org/springframework/core/convert/support/GenericTypeConverter.java index 57eabf7645..e02de8cacc 100644 --- a/org.springframework.core/src/main/java/org/springframework/core/convert/support/GenericTypeConverter.java +++ b/org.springframework.core/src/main/java/org/springframework/core/convert/support/GenericTypeConverter.java @@ -28,7 +28,7 @@ import java.util.Map; import org.springframework.core.GenericTypeResolver; import org.springframework.core.convert.ConverterNotFoundException; import org.springframework.core.convert.TypeConverter; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; import org.springframework.core.convert.converter.Converter; import org.springframework.core.convert.converter.ConverterFactory; import org.springframework.core.convert.converter.ConverterInfo; @@ -98,10 +98,10 @@ public class GenericTypeConverter implements TypeConverter, ConverterRegistry { public boolean canConvert(Class sourceType, Class targetType) { - return canConvert(sourceType, BindingPoint.valueOf(targetType)); + return canConvert(sourceType, ConversionPoint.valueOf(targetType)); } - public boolean canConvert(Class sourceType, BindingPoint targetType) { + public boolean canConvert(Class sourceType, ConversionPoint targetType) { ConversionExecutor executor = getConversionExecutor(sourceType, targetType); if (executor != null) { return true; @@ -115,10 +115,10 @@ public class GenericTypeConverter implements TypeConverter, ConverterRegistry { } public T convert(S source, Class targetType) { - return convert(source, BindingPoint.valueOf(targetType)); + return convert(source, ConversionPoint.valueOf(targetType)); } - public T convert(S source, BindingPoint targetType) { + public T convert(S source, ConversionPoint targetType) { if (source == null) { return null; } @@ -139,11 +139,11 @@ public class GenericTypeConverter implements TypeConverter, ConverterRegistry { } } - ConversionExecutor getConversionExecutor(Class sourceClass, BindingPoint targetType) + ConversionExecutor getConversionExecutor(Class sourceClass, ConversionPoint targetType) throws ConverterNotFoundException { Assert.notNull(sourceClass, "The sourceType to convert from is required"); Assert.notNull(targetType, "The targetType to convert to is required"); - BindingPoint sourceType = BindingPoint.valueOf(sourceClass); + ConversionPoint sourceType = ConversionPoint.valueOf(sourceClass); if (sourceType.isArray()) { if (targetType.isArray()) { return new ArrayToArray(sourceType, targetType, this); diff --git a/org.springframework.core/src/main/java/org/springframework/core/convert/support/MapToMap.java b/org.springframework.core/src/main/java/org/springframework/core/convert/support/MapToMap.java index e6c52a37d4..a2d83cc6c2 100644 --- a/org.springframework.core/src/main/java/org/springframework/core/convert/support/MapToMap.java +++ b/org.springframework.core/src/main/java/org/springframework/core/convert/support/MapToMap.java @@ -22,7 +22,7 @@ import java.util.SortedMap; import java.util.TreeMap; import org.springframework.core.convert.ConversionFailedException; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; /** * Converts from one map to another map, with support for converting individual map elements based on generic type information. @@ -31,9 +31,9 @@ import org.springframework.core.convert.BindingPoint; @SuppressWarnings("unchecked") class MapToMap implements ConversionExecutor { - private BindingPoint sourceType; + private ConversionPoint sourceType; - private BindingPoint targetType; + private ConversionPoint targetType; private GenericTypeConverter conversionService; @@ -45,7 +45,7 @@ class MapToMap implements ConversionExecutor { * @param targetType the target map type * @param conversionService the conversion service */ - public MapToMap(BindingPoint sourceType, BindingPoint targetType, GenericTypeConverter conversionService) { + public MapToMap(ConversionPoint sourceType, ConversionPoint targetType, GenericTypeConverter conversionService) { this.sourceType = sourceType; this.targetType = targetType; this.conversionService = conversionService; @@ -55,9 +55,9 @@ class MapToMap implements ConversionExecutor { private EntryConverter createEntryConverter() { if (sourceType.isMapEntryTypeKnown() && targetType.isMapEntryTypeKnown()) { ConversionExecutor keyConverter = conversionService.getConversionExecutor(sourceType.getMapKeyType(), - BindingPoint.valueOf(targetType.getMapKeyType())); + ConversionPoint.valueOf(targetType.getMapKeyType())); ConversionExecutor valueConverter = conversionService.getConversionExecutor(sourceType.getMapValueType(), - BindingPoint.valueOf(targetType.getMapValueType())); + ConversionPoint.valueOf(targetType.getMapValueType())); return new EntryConverter(keyConverter, valueConverter); } else { return EntryConverter.NO_OP_INSTANCE; @@ -94,11 +94,11 @@ class MapToMap implements ConversionExecutor { Object key = entry.getKey(); Object value = entry.getValue(); if (keyConverter == null && key != null) { - keyConverter = conversionService.getConversionExecutor(key.getClass(), BindingPoint + keyConverter = conversionService.getConversionExecutor(key.getClass(), ConversionPoint .valueOf(targetKeyType)); } if (valueConverter == null && value != null) { - valueConverter = conversionService.getConversionExecutor(value.getClass(), BindingPoint + valueConverter = conversionService.getConversionExecutor(value.getClass(), ConversionPoint .valueOf(targetValueType)); } if (keyConverter != null && valueConverter != null) { diff --git a/org.springframework.core/src/main/java/org/springframework/core/convert/support/StaticConversionExecutor.java b/org.springframework.core/src/main/java/org/springframework/core/convert/support/StaticConversionExecutor.java index 1a15e4aec3..6f9571ae66 100644 --- a/org.springframework.core/src/main/java/org/springframework/core/convert/support/StaticConversionExecutor.java +++ b/org.springframework.core/src/main/java/org/springframework/core/convert/support/StaticConversionExecutor.java @@ -16,7 +16,7 @@ package org.springframework.core.convert.support; import org.springframework.core.convert.ConversionFailedException; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; import org.springframework.core.convert.converter.Converter; import org.springframework.core.style.ToStringCreator; @@ -27,13 +27,13 @@ import org.springframework.core.style.ToStringCreator; @SuppressWarnings("unchecked") class StaticConversionExecutor implements ConversionExecutor { - private final BindingPoint sourceType; + private final ConversionPoint sourceType; - private final BindingPoint targetType; + private final ConversionPoint targetType; private final Converter converter; - public StaticConversionExecutor(BindingPoint sourceType, BindingPoint targetType, Converter converter) { + public StaticConversionExecutor(ConversionPoint sourceType, ConversionPoint targetType, Converter converter) { this.sourceType = sourceType; this.targetType = targetType; this.converter = converter; diff --git a/org.springframework.core/src/test/java/org/springframework/core/convert/TypeDescriptorTests.java b/org.springframework.core/src/test/java/org/springframework/core/convert/ConversionPointTests.java similarity index 78% rename from org.springframework.core/src/test/java/org/springframework/core/convert/TypeDescriptorTests.java rename to org.springframework.core/src/test/java/org/springframework/core/convert/ConversionPointTests.java index 104c2c4cab..e51f1a1300 100644 --- a/org.springframework.core/src/test/java/org/springframework/core/convert/TypeDescriptorTests.java +++ b/org.springframework.core/src/test/java/org/springframework/core/convert/ConversionPointTests.java @@ -26,7 +26,7 @@ import org.junit.Test; /** * @author Andy Clement */ -public class TypeDescriptorTests { +public class ConversionPointTests { List listOfString; int[] intArray; @@ -34,13 +34,13 @@ public class TypeDescriptorTests { @Test public void testWrapperType() { - BindingPoint desc = BindingPoint.valueOf(int.class); + ConversionPoint desc = ConversionPoint.valueOf(int.class); assertEquals(Integer.class, desc.getType()); } @Test public void listDescriptors() throws Exception { - BindingPoint typeDescriptor = new BindingPoint(TypeDescriptorTests.class.getDeclaredField("listOfString")); + ConversionPoint typeDescriptor = new ConversionPoint(ConversionPointTests.class.getDeclaredField("listOfString")); assertFalse(typeDescriptor.isArray()); assertEquals(List.class,typeDescriptor.getType()); assertEquals(String.class,typeDescriptor.getElementType()); @@ -50,7 +50,7 @@ public class TypeDescriptorTests { @Test public void arrayTypeDescriptors() throws Exception { - BindingPoint typeDescriptor = new BindingPoint(TypeDescriptorTests.class.getDeclaredField("intArray")); + ConversionPoint typeDescriptor = new ConversionPoint(ConversionPointTests.class.getDeclaredField("intArray")); assertTrue(typeDescriptor.isArray()); assertEquals(Integer.TYPE,typeDescriptor.getElementType()); assertEquals("int[]",typeDescriptor.asString()); @@ -58,14 +58,14 @@ public class TypeDescriptorTests { @Test public void buildingArrayTypeDescriptors() throws Exception { - BindingPoint typeDescriptor = new BindingPoint(new int[0].getClass()); + ConversionPoint typeDescriptor = new ConversionPoint(new int[0].getClass()); assertTrue(typeDescriptor.isArray()); assertEquals(Integer.TYPE,typeDescriptor.getElementType()); } @Test public void complexTypeDescriptors() throws Exception { - BindingPoint typeDescriptor = new BindingPoint(TypeDescriptorTests.class.getDeclaredField("arrayOfListOfString")); + ConversionPoint typeDescriptor = new ConversionPoint(ConversionPointTests.class.getDeclaredField("arrayOfListOfString")); assertTrue(typeDescriptor.isArray()); assertEquals(List.class,typeDescriptor.getElementType()); // TODO asc notice that the type of the list elements is lost: typeDescriptor.getElementType() should return a TypeDescriptor diff --git a/org.springframework.core/src/test/java/org/springframework/core/convert/support/ArrayToArrayTests.java b/org.springframework.core/src/test/java/org/springframework/core/convert/support/ArrayToArrayTests.java index a2dfad6f6e..20626fc43c 100644 --- a/org.springframework.core/src/test/java/org/springframework/core/convert/support/ArrayToArrayTests.java +++ b/org.springframework.core/src/test/java/org/springframework/core/convert/support/ArrayToArrayTests.java @@ -3,7 +3,7 @@ package org.springframework.core.convert.support; import static org.junit.Assert.assertEquals; import org.junit.Test; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; import org.springframework.core.convert.support.ArrayToArray; import org.springframework.core.convert.support.DefaultTypeConverter; @@ -12,7 +12,7 @@ public class ArrayToArrayTests { @Test public void testArrayToArrayConversion() { DefaultTypeConverter service = new DefaultTypeConverter(); - ArrayToArray c = new ArrayToArray(BindingPoint.valueOf(String[].class), BindingPoint.valueOf(Integer[].class), service); + ArrayToArray c = new ArrayToArray(ConversionPoint.valueOf(String[].class), ConversionPoint.valueOf(Integer[].class), service); Integer[] result = (Integer[]) c.execute(new String[] { "1", "2", "3" }); assertEquals(new Integer(1), result[0]); assertEquals(new Integer(2), result[1]); diff --git a/org.springframework.core/src/test/java/org/springframework/core/convert/support/ArrayToCollectionTests.java b/org.springframework.core/src/test/java/org/springframework/core/convert/support/ArrayToCollectionTests.java index 6c90280e27..ca85771cd2 100644 --- a/org.springframework.core/src/test/java/org/springframework/core/convert/support/ArrayToCollectionTests.java +++ b/org.springframework.core/src/test/java/org/springframework/core/convert/support/ArrayToCollectionTests.java @@ -9,7 +9,7 @@ import java.util.Set; import java.util.SortedSet; import org.junit.Test; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; import org.springframework.core.convert.support.ArrayToCollection; import org.springframework.core.convert.support.DefaultTypeConverter; @@ -18,7 +18,7 @@ public class ArrayToCollectionTests { @Test public void testArrayToCollectionConversion() throws Exception { DefaultTypeConverter service = new DefaultTypeConverter(); - ArrayToCollection c = new ArrayToCollection(BindingPoint.valueOf(String[].class), new BindingPoint(getClass().getField("bindTarget")), service); + ArrayToCollection c = new ArrayToCollection(ConversionPoint.valueOf(String[].class), new ConversionPoint(getClass().getField("bindTarget")), service); List result = (List) c.execute(new String[] { "1", "2", "3" }); assertEquals(new Integer(1), result.get(0)); assertEquals(new Integer(2), result.get(1)); @@ -28,7 +28,7 @@ public class ArrayToCollectionTests { @Test public void testArrayToSetConversion() throws Exception { DefaultTypeConverter service = new DefaultTypeConverter(); - ArrayToCollection c = new ArrayToCollection(BindingPoint.valueOf(String[].class), new BindingPoint(getClass().getField("setTarget")), service); + ArrayToCollection c = new ArrayToCollection(ConversionPoint.valueOf(String[].class), new ConversionPoint(getClass().getField("setTarget")), service); Set result = (Set) c.execute(new String[] { "1" }); assertEquals("1", result.iterator().next()); } @@ -36,7 +36,7 @@ public class ArrayToCollectionTests { @Test public void testArrayToSortedSetConversion() throws Exception { DefaultTypeConverter service = new DefaultTypeConverter(); - ArrayToCollection c = new ArrayToCollection(BindingPoint.valueOf(String[].class), new BindingPoint(getClass().getField("sortedSetTarget")), service); + ArrayToCollection c = new ArrayToCollection(ConversionPoint.valueOf(String[].class), new ConversionPoint(getClass().getField("sortedSetTarget")), service); SortedSet result = (SortedSet) c.execute(new String[] { "1" }); assertEquals(new Integer(1), result.iterator().next()); } @@ -44,7 +44,7 @@ public class ArrayToCollectionTests { @Test public void testArrayToCollectionImplConversion() throws Exception { DefaultTypeConverter service = new DefaultTypeConverter(); - ArrayToCollection c = new ArrayToCollection(BindingPoint.valueOf(String[].class), new BindingPoint(getClass().getField("implTarget")), service); + ArrayToCollection c = new ArrayToCollection(ConversionPoint.valueOf(String[].class), new ConversionPoint(getClass().getField("implTarget")), service); LinkedList result = (LinkedList) c.execute(new String[] { "1" }); assertEquals("1", result.iterator().next()); } @@ -52,7 +52,7 @@ public class ArrayToCollectionTests { @Test public void testArrayToNonGenericCollectionConversionNullElement() throws Exception { DefaultTypeConverter service = new DefaultTypeConverter(); - ArrayToCollection c = new ArrayToCollection(BindingPoint.valueOf(String[].class), new BindingPoint(getClass().getField("listTarget")), service); + ArrayToCollection c = new ArrayToCollection(ConversionPoint.valueOf(String[].class), new ConversionPoint(getClass().getField("listTarget")), service); List result = (List) c.execute(new Integer[] { null, new Integer(1) }); assertEquals(null, result.get(0)); assertEquals(new Integer(1), result.get(1)); diff --git a/org.springframework.core/src/test/java/org/springframework/core/convert/support/CollectionToArrayTests.java b/org.springframework.core/src/test/java/org/springframework/core/convert/support/CollectionToArrayTests.java index b1824d007f..7c7adc10f0 100644 --- a/org.springframework.core/src/test/java/org/springframework/core/convert/support/CollectionToArrayTests.java +++ b/org.springframework.core/src/test/java/org/springframework/core/convert/support/CollectionToArrayTests.java @@ -6,7 +6,7 @@ import java.util.ArrayList; import java.util.Collection; import org.junit.Test; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; import org.springframework.core.convert.support.CollectionToArray; import org.springframework.core.convert.support.DefaultTypeConverter; @@ -15,8 +15,8 @@ public class CollectionToArrayTests { @Test public void testCollectionToArrayConversion() throws Exception { DefaultTypeConverter service = new DefaultTypeConverter(); - CollectionToArray c = new CollectionToArray(new BindingPoint(getClass().getField("bindTarget")), - BindingPoint.valueOf(Integer[].class), service); + CollectionToArray c = new CollectionToArray(new ConversionPoint(getClass().getField("bindTarget")), + ConversionPoint.valueOf(Integer[].class), service); bindTarget.add("1"); bindTarget.add("2"); bindTarget.add("3"); @@ -29,7 +29,7 @@ public class CollectionToArrayTests { @Test public void testCollectionToArrayConversionNoGenericInfo() throws Exception { DefaultTypeConverter service = new DefaultTypeConverter(); - CollectionToArray c = new CollectionToArray(BindingPoint.valueOf(Collection.class), BindingPoint + CollectionToArray c = new CollectionToArray(ConversionPoint.valueOf(Collection.class), ConversionPoint .valueOf(Integer[].class), service); bindTarget.add("1"); bindTarget.add("2"); @@ -43,7 +43,7 @@ public class CollectionToArrayTests { @Test public void testCollectionToArrayConversionNoGenericInfoNullElement() throws Exception { DefaultTypeConverter service = new DefaultTypeConverter(); - CollectionToArray c = new CollectionToArray(BindingPoint.valueOf(Collection.class), BindingPoint + CollectionToArray c = new CollectionToArray(ConversionPoint.valueOf(Collection.class), ConversionPoint .valueOf(Integer[].class), service); bindTarget.add(null); bindTarget.add("1"); diff --git a/org.springframework.core/src/test/java/org/springframework/core/convert/support/CollectionToCollectionTests.java b/org.springframework.core/src/test/java/org/springframework/core/convert/support/CollectionToCollectionTests.java index 8b90c3b64b..08c17cb1cf 100644 --- a/org.springframework.core/src/test/java/org/springframework/core/convert/support/CollectionToCollectionTests.java +++ b/org.springframework.core/src/test/java/org/springframework/core/convert/support/CollectionToCollectionTests.java @@ -8,7 +8,7 @@ import java.util.Collection; import java.util.List; import org.junit.Test; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; import org.springframework.core.convert.support.CollectionToCollection; import org.springframework.core.convert.support.DefaultTypeConverter; @@ -17,8 +17,8 @@ public class CollectionToCollectionTests { @Test public void testCollectionToCollectionConversion() throws Exception { DefaultTypeConverter service = new DefaultTypeConverter(); - CollectionToCollection c = new CollectionToCollection(new BindingPoint(getClass().getField("bindTarget")), - new BindingPoint(getClass().getField("integerTarget")), service); + CollectionToCollection c = new CollectionToCollection(new ConversionPoint(getClass().getField("bindTarget")), + new ConversionPoint(getClass().getField("integerTarget")), service); bindTarget.add("1"); bindTarget.add("2"); bindTarget.add("3"); @@ -31,8 +31,8 @@ public class CollectionToCollectionTests { @Test public void testCollectionToCollectionConversionNoGenericInfo() throws Exception { DefaultTypeConverter service = new DefaultTypeConverter(); - CollectionToCollection c = new CollectionToCollection(BindingPoint.valueOf(Collection.class), - BindingPoint.valueOf(List.class), service); + CollectionToCollection c = new CollectionToCollection(ConversionPoint.valueOf(Collection.class), + ConversionPoint.valueOf(List.class), service); bindTarget.add("1"); bindTarget.add("2"); bindTarget.add("3"); @@ -45,8 +45,8 @@ public class CollectionToCollectionTests { @Test public void testCollectionToCollectionConversionNoGenericInfoSource() throws Exception { DefaultTypeConverter service = new DefaultTypeConverter(); - CollectionToCollection c = new CollectionToCollection(BindingPoint.valueOf(Collection.class), - new BindingPoint(getClass().getField("integerTarget")), service); + CollectionToCollection c = new CollectionToCollection(ConversionPoint.valueOf(Collection.class), + new ConversionPoint(getClass().getField("integerTarget")), service); bindTarget.add("1"); bindTarget.add("2"); bindTarget.add("3"); @@ -59,8 +59,8 @@ public class CollectionToCollectionTests { @Test public void testCollectionToCollectionConversionNoGenericInfoSourceNullValues() throws Exception { DefaultTypeConverter service = new DefaultTypeConverter(); - CollectionToCollection c = new CollectionToCollection(BindingPoint.valueOf(Collection.class), - new BindingPoint(getClass().getField("integerTarget")), service); + CollectionToCollection c = new CollectionToCollection(ConversionPoint.valueOf(Collection.class), + new ConversionPoint(getClass().getField("integerTarget")), service); bindTarget.add(null); bindTarget.add("1"); bindTarget.add("2"); @@ -77,8 +77,8 @@ public class CollectionToCollectionTests { @Test public void testCollectionToCollectionConversionNoGenericInfoSourceEmpty() throws Exception { DefaultTypeConverter service = new DefaultTypeConverter(); - CollectionToCollection c = new CollectionToCollection(BindingPoint.valueOf(Collection.class), - new BindingPoint(getClass().getField("integerTarget")), service); + CollectionToCollection c = new CollectionToCollection(ConversionPoint.valueOf(Collection.class), + new ConversionPoint(getClass().getField("integerTarget")), service); List result = (List) c.execute(bindTarget); assertTrue(result.isEmpty()); } diff --git a/org.springframework.core/src/test/java/org/springframework/core/convert/support/GenericTypeConverterTests.java b/org.springframework.core/src/test/java/org/springframework/core/convert/support/GenericTypeConverterTests.java index 6dd26e1115..3334a71258 100644 --- a/org.springframework.core/src/test/java/org/springframework/core/convert/support/GenericTypeConverterTests.java +++ b/org.springframework.core/src/test/java/org/springframework/core/convert/support/GenericTypeConverterTests.java @@ -28,7 +28,7 @@ import java.util.Map; import org.junit.Ignore; import org.junit.Test; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; import org.springframework.core.convert.ConversionFailedException; import org.springframework.core.convert.ConverterNotFoundException; import org.springframework.core.convert.converter.Converter; @@ -156,7 +156,7 @@ public class GenericTypeConverterTests { @Test public void convertArrayToListGenericTypeConversion() throws Exception { converter.addConverter(new StringToInteger()); - List result = converter.convert(new String[] { "1", "2", "3" }, new BindingPoint>(getClass().getDeclaredField("genericList"))); + List result = converter.convert(new String[] { "1", "2", "3" }, new ConversionPoint>(getClass().getDeclaredField("genericList"))); assertEquals(new Integer("1"), result.get(0)); assertEquals(new Integer("2"), result.get(1)); assertEquals(new Integer("3"), result.get(2)); @@ -214,7 +214,7 @@ public class GenericTypeConverterTests { foo.put("2", "BAZ"); converter.addConverter(new StringToInteger()); converter.addConverter(new StringToEnumFactory().getConverter(FooEnum.class)); - Map map = converter.convert(foo, new BindingPoint>(getClass().getField("genericMap"))); + Map map = converter.convert(foo, new ConversionPoint>(getClass().getField("genericMap"))); assertEquals(map.get(1), FooEnum.BAR); assertEquals(map.get(2), FooEnum.BAZ); } diff --git a/org.springframework.core/src/test/java/org/springframework/core/convert/support/MapToMapTests.java b/org.springframework.core/src/test/java/org/springframework/core/convert/support/MapToMapTests.java index 7846eae055..ddc02be8a6 100644 --- a/org.springframework.core/src/test/java/org/springframework/core/convert/support/MapToMapTests.java +++ b/org.springframework.core/src/test/java/org/springframework/core/convert/support/MapToMapTests.java @@ -6,7 +6,7 @@ import java.util.HashMap; import java.util.Map; import org.junit.Test; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; import org.springframework.core.convert.support.DefaultTypeConverter; import org.springframework.core.convert.support.MapToMap; @@ -15,8 +15,8 @@ public class MapToMapTests { @Test public void testMapToMapConversion() throws Exception { DefaultTypeConverter converter = new DefaultTypeConverter(); - MapToMap c = new MapToMap(new BindingPoint>(getClass().getField("source")), - new BindingPoint>(getClass().getField("bindTarget")), converter); + MapToMap c = new MapToMap(new ConversionPoint>(getClass().getField("source")), + new ConversionPoint>(getClass().getField("bindTarget")), converter); source.put("1", "BAR"); source.put("2", "BAZ"); Map result = (Map) c.execute(source); @@ -27,8 +27,8 @@ public class MapToMapTests { @Test public void testMapToMapConversionNoGenericInfoOnSource() throws Exception { DefaultTypeConverter service = new DefaultTypeConverter(); - MapToMap c = new MapToMap(BindingPoint.valueOf(Map.class), - new BindingPoint(getClass().getField("bindTarget")), service); + MapToMap c = new MapToMap(ConversionPoint.valueOf(Map.class), + new ConversionPoint(getClass().getField("bindTarget")), service); source.put("1", "BAR"); source.put("2", "BAZ"); Map result = (Map) c.execute(source); @@ -39,8 +39,8 @@ public class MapToMapTests { @Test public void testMapToMapConversionNoGenericInfo() throws Exception { DefaultTypeConverter service = new DefaultTypeConverter(); - MapToMap c = new MapToMap(BindingPoint.valueOf(Map.class), - BindingPoint.valueOf(Map.class), service); + MapToMap c = new MapToMap(ConversionPoint.valueOf(Map.class), + ConversionPoint.valueOf(Map.class), service); source.put("1", "BAR"); source.put("2", "BAZ"); Map result = (Map) c.execute(source); diff --git a/org.springframework.expression/src/main/java/org/springframework/expression/TypeConverter.java b/org.springframework.expression/src/main/java/org/springframework/expression/TypeConverter.java index 8dcf1e1c9f..014f4895a9 100644 --- a/org.springframework.expression/src/main/java/org/springframework/expression/TypeConverter.java +++ b/org.springframework.expression/src/main/java/org/springframework/expression/TypeConverter.java @@ -16,7 +16,7 @@ package org.springframework.expression; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; /** * A type converter can convert values between different types encountered @@ -48,7 +48,7 @@ public interface TypeConverter { * @return the converted value * @throws EvaluationException if conversion is not possible */ - Object convertValue(Object value, BindingPoint typeDescriptor) throws EvaluationException; + Object convertValue(Object value, ConversionPoint typeDescriptor) throws EvaluationException; /** * Return true if the type converter can convert the specified type to the desired target type. @@ -64,6 +64,6 @@ public interface TypeConverter { * @param typeDescriptor a type descriptor that supplies extra information about the requested result type * @return true if that conversion can be performed */ - boolean canConvert(Class sourceType, BindingPoint typeDescriptor); + boolean canConvert(Class sourceType, ConversionPoint typeDescriptor); } diff --git a/org.springframework.expression/src/main/java/org/springframework/expression/TypedValue.java b/org.springframework.expression/src/main/java/org/springframework/expression/TypedValue.java index 8bb79bb61e..2c25816885 100644 --- a/org.springframework.expression/src/main/java/org/springframework/expression/TypedValue.java +++ b/org.springframework.expression/src/main/java/org/springframework/expression/TypedValue.java @@ -15,7 +15,7 @@ */ package org.springframework.expression; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; /** * Encapsulates an object and a type descriptor that describes it. @@ -28,9 +28,9 @@ import org.springframework.core.convert.BindingPoint; public class TypedValue { private Object value; - private BindingPoint typeDescriptor; + private ConversionPoint typeDescriptor; - public static final TypedValue NULL_TYPED_VALUE = new TypedValue(null, BindingPoint.NULL_TYPE_DESCRIPTOR); + public static final TypedValue NULL_TYPED_VALUE = new TypedValue(null, ConversionPoint.NULL); /** * Create a TypedValue for a simple object. The type descriptor is inferred @@ -39,7 +39,7 @@ public class TypedValue { */ public TypedValue(Object value) { this.value = value; - this.typeDescriptor = BindingPoint.forObject(value); + this.typeDescriptor = ConversionPoint.forObject(value); } /** @@ -47,7 +47,7 @@ public class TypedValue { * @param value the object value * @param typeDescriptor a type descriptor describing the type of the value */ - public TypedValue(Object value, BindingPoint typeDescriptor) { + public TypedValue(Object value, ConversionPoint typeDescriptor) { this.value = value; this.typeDescriptor = typeDescriptor; } @@ -56,7 +56,7 @@ public class TypedValue { return this.value; } - public BindingPoint getTypeDescriptor() { + public ConversionPoint getTypeDescriptor() { return this.typeDescriptor; } diff --git a/org.springframework.expression/src/main/java/org/springframework/expression/spel/ExpressionState.java b/org.springframework.expression/src/main/java/org/springframework/expression/spel/ExpressionState.java index a4fa52f8a8..a74f535f69 100644 --- a/org.springframework.expression/src/main/java/org/springframework/expression/spel/ExpressionState.java +++ b/org.springframework.expression/src/main/java/org/springframework/expression/spel/ExpressionState.java @@ -20,7 +20,7 @@ import java.util.List; import java.util.Map; import java.util.Stack; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; import org.springframework.expression.EvaluationContext; import org.springframework.expression.EvaluationException; import org.springframework.expression.Operation; @@ -99,7 +99,7 @@ public class ExpressionState { if (value==null) { return TypedValue.NULL_TYPED_VALUE; } else { - return new TypedValue(value,BindingPoint.forObject(value)); + return new TypedValue(value,ConversionPoint.forObject(value)); } } @@ -111,11 +111,11 @@ public class ExpressionState { return this.relatedContext.getTypeLocator().findType(type); } - public Object convertValue(Object value, BindingPoint targetTypeDescriptor) throws EvaluationException { + public Object convertValue(Object value, ConversionPoint targetTypeDescriptor) throws EvaluationException { return this.relatedContext.getTypeConverter().convertValue(value, targetTypeDescriptor); } - public Object convertValue(TypedValue value, BindingPoint targetTypeDescriptor) throws EvaluationException { + public Object convertValue(TypedValue value, ConversionPoint targetTypeDescriptor) throws EvaluationException { return this.relatedContext.getTypeConverter().convertValue(value.getValue(), targetTypeDescriptor); } @@ -153,7 +153,7 @@ public class ExpressionState { OperatorOverloader overloader = this.relatedContext.getOperatorOverloader(); if (overloader.overridesOperation(op, left, right)) { Object returnValue = overloader.operate(op, left, right); - return new TypedValue(returnValue,BindingPoint.forObject(returnValue)); + return new TypedValue(returnValue,ConversionPoint.forObject(returnValue)); } else { String leftType = (left==null?"null":left.getClass().getName()); diff --git a/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/CommonTypeDescriptors.java b/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/CommonTypeDescriptors.java index f5c53ed15f..46c1209b11 100644 --- a/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/CommonTypeDescriptors.java +++ b/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/CommonTypeDescriptors.java @@ -15,7 +15,7 @@ */ package org.springframework.expression.spel.ast; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; /** * @author Andy Clement @@ -23,16 +23,16 @@ import org.springframework.core.convert.BindingPoint; */ public interface CommonTypeDescriptors { // TODO push into TypeDescriptor? - static BindingPoint BOOLEAN_TYPE_DESCRIPTOR = BindingPoint.valueOf(Boolean.class); - static BindingPoint INTEGER_TYPE_DESCRIPTOR = BindingPoint.valueOf(Integer.class); - static BindingPoint CHARACTER_TYPE_DESCRIPTOR = BindingPoint.valueOf(Character.class); - static BindingPoint LONG_TYPE_DESCRIPTOR = BindingPoint.valueOf(Long.class); - static BindingPoint SHORT_TYPE_DESCRIPTOR = BindingPoint.valueOf(Short.class); - static BindingPoint BYTE_TYPE_DESCRIPTOR = BindingPoint.valueOf(Byte.class); - static BindingPoint FLOAT_TYPE_DESCRIPTOR = BindingPoint.valueOf(Float.class); - static BindingPoint DOUBLE_TYPE_DESCRIPTOR = BindingPoint.valueOf(Double.class); - static BindingPoint STRING_TYPE_DESCRIPTOR = BindingPoint.valueOf(String.class); - static BindingPoint CLASS_TYPE_DESCRIPTOR = BindingPoint.valueOf(Class.class); - static BindingPoint OBJECT_TYPE_DESCRIPTOR = BindingPoint.valueOf(Object.class); + static ConversionPoint BOOLEAN_TYPE_DESCRIPTOR = ConversionPoint.valueOf(Boolean.class); + static ConversionPoint INTEGER_TYPE_DESCRIPTOR = ConversionPoint.valueOf(Integer.class); + static ConversionPoint CHARACTER_TYPE_DESCRIPTOR = ConversionPoint.valueOf(Character.class); + static ConversionPoint LONG_TYPE_DESCRIPTOR = ConversionPoint.valueOf(Long.class); + static ConversionPoint SHORT_TYPE_DESCRIPTOR = ConversionPoint.valueOf(Short.class); + static ConversionPoint BYTE_TYPE_DESCRIPTOR = ConversionPoint.valueOf(Byte.class); + static ConversionPoint FLOAT_TYPE_DESCRIPTOR = ConversionPoint.valueOf(Float.class); + static ConversionPoint DOUBLE_TYPE_DESCRIPTOR = ConversionPoint.valueOf(Double.class); + static ConversionPoint STRING_TYPE_DESCRIPTOR = ConversionPoint.valueOf(String.class); + static ConversionPoint CLASS_TYPE_DESCRIPTOR = ConversionPoint.valueOf(Class.class); + static ConversionPoint OBJECT_TYPE_DESCRIPTOR = ConversionPoint.valueOf(Object.class); } diff --git a/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/FunctionReference.java b/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/FunctionReference.java index 21d89381c4..8bfa09ee00 100644 --- a/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/FunctionReference.java +++ b/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/FunctionReference.java @@ -22,7 +22,7 @@ import java.lang.reflect.Modifier; import org.antlr.runtime.Token; import org.springframework.core.MethodParameter; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; import org.springframework.expression.EvaluationException; import org.springframework.expression.TypeConverter; import org.springframework.expression.TypedValue; @@ -104,7 +104,7 @@ public class FunctionReference extends SpelNodeImpl { try { ReflectionUtils.makeAccessible(m); Object result = m.invoke(m.getClass(), functionArgs); - return new TypedValue(result, new BindingPoint(new MethodParameter(m,-1))); + return new TypedValue(result, new ConversionPoint(new MethodParameter(m,-1))); } catch (IllegalArgumentException e) { throw new SpelException(getCharPositionInLine(), e, SpelMessages.EXCEPTION_DURING_FUNCTION_CALL, name, e .getMessage()); diff --git a/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/Indexer.java b/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/Indexer.java index 0fc67c75dc..0dae023534 100644 --- a/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/Indexer.java +++ b/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/Indexer.java @@ -21,7 +21,7 @@ import java.util.List; import java.util.Map; import org.antlr.runtime.Token; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; import org.springframework.expression.EvaluationException; import org.springframework.expression.TypedValue; import org.springframework.expression.spel.ExpressionState; @@ -47,15 +47,15 @@ public class Indexer extends SpelNodeImpl { public TypedValue getValueInternal(ExpressionState state) throws EvaluationException { TypedValue context = state.getActiveContextObject(); Object targetObject = context.getValue(); - BindingPoint targetObjectTypeDescriptor = context.getTypeDescriptor(); + ConversionPoint targetObjectTypeDescriptor = context.getTypeDescriptor(); TypedValue indexValue = getChild(0).getValueInternal(state); Object index = indexValue.getValue(); // Indexing into a Map if (targetObject instanceof Map) { - Object possiblyConvertedKey = state.convertValue(indexValue,BindingPoint.valueOf(targetObjectTypeDescriptor.getMapKeyType())); + Object possiblyConvertedKey = state.convertValue(indexValue,ConversionPoint.valueOf(targetObjectTypeDescriptor.getMapKeyType())); Object o = ((Map) targetObject).get(possiblyConvertedKey); - return new TypedValue(o,BindingPoint.valueOf(targetObjectTypeDescriptor.getMapValueType())); + return new TypedValue(o,ConversionPoint.valueOf(targetObjectTypeDescriptor.getMapValueType())); } int idx = (Integer)state.convertValue(index, INTEGER_TYPE_DESCRIPTOR); @@ -65,7 +65,7 @@ public class Indexer extends SpelNodeImpl { } if (targetObject.getClass().isArray()) { - return new TypedValue(accessArrayElement(targetObject, idx),BindingPoint.valueOf(targetObjectTypeDescriptor.getElementType())); + return new TypedValue(accessArrayElement(targetObject, idx),ConversionPoint.valueOf(targetObjectTypeDescriptor.getElementType())); } else if (targetObject instanceof Collection) { Collection c = (Collection) targetObject; if (idx >= c.size()) { @@ -74,7 +74,7 @@ public class Indexer extends SpelNodeImpl { int pos = 0; for (Object o : c) { if (pos == idx) { - return new TypedValue(o,BindingPoint.valueOf(targetObjectTypeDescriptor.getElementType())); + return new TypedValue(o,ConversionPoint.valueOf(targetObjectTypeDescriptor.getElementType())); } pos++; } @@ -99,7 +99,7 @@ public class Indexer extends SpelNodeImpl { public void setValue(ExpressionState state, Object newValue) throws EvaluationException { TypedValue contextObject = state.getActiveContextObject(); Object targetObject = contextObject.getValue(); - BindingPoint targetObjectTypeDescriptor = contextObject.getTypeDescriptor(); + ConversionPoint targetObjectTypeDescriptor = contextObject.getTypeDescriptor(); TypedValue index = getChild(0).getValueInternal(state); if (targetObject == null) { @@ -108,8 +108,8 @@ public class Indexer extends SpelNodeImpl { // Indexing into a Map if (targetObjectTypeDescriptor.isMap()) { Map map = (Map)targetObject; - Object possiblyConvertedKey = state.convertValue(index.getValue(),BindingPoint.valueOf(targetObjectTypeDescriptor.getMapKeyType())); - Object possiblyConvertedValue = state.convertValue(newValue,BindingPoint.valueOf(targetObjectTypeDescriptor.getMapValueType())); + Object possiblyConvertedKey = state.convertValue(index.getValue(),ConversionPoint.valueOf(targetObjectTypeDescriptor.getMapKeyType())); + Object possiblyConvertedValue = state.convertValue(newValue,ConversionPoint.valueOf(targetObjectTypeDescriptor.getMapValueType())); map.put(possiblyConvertedKey,possiblyConvertedValue); return; } @@ -125,7 +125,7 @@ public class Indexer extends SpelNodeImpl { } if (targetObject instanceof List) { List list = (List)targetObject; - Object possiblyConvertedValue = state.convertValue(newValue,BindingPoint.valueOf(targetObjectTypeDescriptor.getElementType())); + Object possiblyConvertedValue = state.convertValue(newValue,ConversionPoint.valueOf(targetObjectTypeDescriptor.getElementType())); list.set(idx,possiblyConvertedValue); } else { throw new SpelException(SpelMessages.INDEXING_NOT_SUPPORTED_FOR_TYPE, contextObject.getClass().getName()); @@ -185,7 +185,7 @@ public class Indexer extends SpelNodeImpl { } else { Object[] array = (Object[]) ctx; checkAccess(array.length, idx); - array[idx] = state.convertValue(newValue, BindingPoint.valueOf(clazz)); + array[idx] = state.convertValue(newValue, ConversionPoint.valueOf(clazz)); } } diff --git a/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/OperatorDivide.java b/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/OperatorDivide.java index 2557de3b6e..aca480ed76 100644 --- a/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/OperatorDivide.java +++ b/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/OperatorDivide.java @@ -17,7 +17,7 @@ package org.springframework.expression.spel.ast; import org.antlr.runtime.Token; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; import org.springframework.expression.EvaluationException; import org.springframework.expression.Operation; import org.springframework.expression.TypedValue; @@ -56,7 +56,7 @@ public class OperatorDivide extends Operator { } } Object result = state.operate(Operation.DIVIDE, operandOne, operandTwo); - return new TypedValue(result,BindingPoint.forObject(result)); + return new TypedValue(result,ConversionPoint.forObject(result)); } } diff --git a/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/Projection.java b/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/Projection.java index ed2ecbdcb0..9d81292283 100644 --- a/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/Projection.java +++ b/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/Projection.java @@ -22,7 +22,7 @@ import java.util.List; import java.util.Map; import org.antlr.runtime.Token; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; import org.springframework.expression.EvaluationException; import org.springframework.expression.TypedValue; import org.springframework.expression.spel.ExpressionState; @@ -60,13 +60,13 @@ public class Projection extends SpelNodeImpl { List result = new ArrayList(); for (Map.Entry entry : mapdata.entrySet()) { try { - state.pushActiveContextObject(new TypedValue(entry,BindingPoint.valueOf(Map.Entry.class))); + state.pushActiveContextObject(new TypedValue(entry,ConversionPoint.valueOf(Map.Entry.class))); result.add(getChild(0).getValueInternal(state).getValue()); } finally { state.popActiveContextObject(); } } - return new TypedValue(result,BindingPoint.valueOf(List.class)); // TODO unable to build correct type descriptor + return new TypedValue(result,ConversionPoint.valueOf(List.class)); // TODO unable to build correct type descriptor } else if (operand instanceof List) { List data = new ArrayList(); data.addAll((Collection) operand); @@ -74,7 +74,7 @@ public class Projection extends SpelNodeImpl { int idx = 0; for (Object element : data) { try { - state.pushActiveContextObject(new TypedValue(element,BindingPoint.valueOf(op.getTypeDescriptor().getType()))); + state.pushActiveContextObject(new TypedValue(element,ConversionPoint.valueOf(op.getTypeDescriptor().getType()))); state.enterScope("index", idx); result.add(getChild(0).getValueInternal(state).getValue()); } finally { diff --git a/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/Selection.java b/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/Selection.java index 96adaf4493..c38ff88379 100644 --- a/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/Selection.java +++ b/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/Selection.java @@ -23,7 +23,7 @@ import java.util.List; import java.util.Map; import org.antlr.runtime.Token; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; import org.springframework.expression.EvaluationException; import org.springframework.expression.TypedValue; import org.springframework.expression.spel.ExpressionState; @@ -66,7 +66,7 @@ public class Selection extends SpelNodeImpl { for (Map.Entry entry : mapdata.entrySet()) { try { lastKey = entry.getKey(); - TypedValue kvpair = new TypedValue(entry,BindingPoint.valueOf(Map.Entry.class)); + TypedValue kvpair = new TypedValue(entry,ConversionPoint.valueOf(Map.Entry.class)); state.pushActiveContextObject(kvpair); Object o = selectionCriteria.getValueInternal(state).getValue(); if (o instanceof Boolean) { @@ -86,13 +86,13 @@ public class Selection extends SpelNodeImpl { } } if ((variant == FIRST || variant == LAST) && result.size() == 0) { - return new TypedValue(null,BindingPoint.NULL_TYPE_DESCRIPTOR); + return new TypedValue(null,ConversionPoint.NULL); } if (variant == LAST) { Map resultMap = new HashMap(); Object lastValue = result.get(lastKey); resultMap.put(lastKey,lastValue); - return new TypedValue(resultMap,BindingPoint.valueOf(Map.class)); + return new TypedValue(resultMap,ConversionPoint.valueOf(Map.class)); } return new TypedValue(result,op.getTypeDescriptor()); } else if (operand instanceof Collection) { @@ -102,13 +102,13 @@ public class Selection extends SpelNodeImpl { int idx = 0; for (Object element : data) { try { - state.pushActiveContextObject(new TypedValue(element,BindingPoint.valueOf(op.getTypeDescriptor().getElementType()))); + state.pushActiveContextObject(new TypedValue(element,ConversionPoint.valueOf(op.getTypeDescriptor().getElementType()))); state.enterScope("index", idx); Object o = selectionCriteria.getValueInternal(state).getValue(); if (o instanceof Boolean) { if (((Boolean) o).booleanValue() == true) { if (variant == FIRST) { - return new TypedValue(element,BindingPoint.valueOf(op.getTypeDescriptor().getElementType())); + return new TypedValue(element,ConversionPoint.valueOf(op.getTypeDescriptor().getElementType())); } result.add(element); } @@ -126,7 +126,7 @@ public class Selection extends SpelNodeImpl { return TypedValue.NULL_TYPED_VALUE; } if (variant == LAST) { - return new TypedValue(result.get(result.size() - 1),BindingPoint.valueOf(op.getTypeDescriptor().getElementType())); + return new TypedValue(result.get(result.size() - 1),ConversionPoint.valueOf(op.getTypeDescriptor().getElementType())); } return new TypedValue(result,op.getTypeDescriptor()); } else { diff --git a/org.springframework.expression/src/main/java/org/springframework/expression/spel/support/ReflectiveConstructorExecutor.java b/org.springframework.expression/src/main/java/org/springframework/expression/spel/support/ReflectiveConstructorExecutor.java index 32143c2fa5..52ac885e0f 100644 --- a/org.springframework.expression/src/main/java/org/springframework/expression/spel/support/ReflectiveConstructorExecutor.java +++ b/org.springframework.expression/src/main/java/org/springframework/expression/spel/support/ReflectiveConstructorExecutor.java @@ -18,7 +18,7 @@ package org.springframework.expression.spel.support; import java.lang.reflect.Constructor; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; import org.springframework.expression.AccessException; import org.springframework.expression.ConstructorExecutor; import org.springframework.expression.EvaluationContext; @@ -56,7 +56,7 @@ class ReflectiveConstructorExecutor implements ConstructorExecutor { if (!c.isAccessible()) { c.setAccessible(true); } - return new TypedValue(c.newInstance(arguments),BindingPoint.valueOf(c.getClass())); + return new TypedValue(c.newInstance(arguments),ConversionPoint.valueOf(c.getClass())); } catch (Exception ex) { throw new AccessException("Problem invoking constructor: " + c, ex); } diff --git a/org.springframework.expression/src/main/java/org/springframework/expression/spel/support/ReflectiveMethodExecutor.java b/org.springframework.expression/src/main/java/org/springframework/expression/spel/support/ReflectiveMethodExecutor.java index a510cf33ec..37c7f5f963 100644 --- a/org.springframework.expression/src/main/java/org/springframework/expression/spel/support/ReflectiveMethodExecutor.java +++ b/org.springframework.expression/src/main/java/org/springframework/expression/spel/support/ReflectiveMethodExecutor.java @@ -19,7 +19,7 @@ package org.springframework.expression.spel.support; import java.lang.reflect.Method; import org.springframework.core.MethodParameter; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; import org.springframework.expression.AccessException; import org.springframework.expression.EvaluationContext; import org.springframework.expression.MethodExecutor; @@ -55,7 +55,7 @@ class ReflectiveMethodExecutor implements MethodExecutor { arguments = ReflectionHelper.setupArgumentsForVarargsInvocation(this.method.getParameterTypes(), arguments); } ReflectionUtils.makeAccessible(this.method); - return new TypedValue(this.method.invoke(target, arguments), new BindingPoint(new MethodParameter(method,-1))); + return new TypedValue(this.method.invoke(target, arguments), new ConversionPoint(new MethodParameter(method,-1))); } catch (Exception ex) { throw new AccessException("Problem invoking method: " + this.method, ex); } diff --git a/org.springframework.expression/src/main/java/org/springframework/expression/spel/support/ReflectivePropertyResolver.java b/org.springframework.expression/src/main/java/org/springframework/expression/spel/support/ReflectivePropertyResolver.java index a22a6839bf..f598cc6dfc 100644 --- a/org.springframework.expression/src/main/java/org/springframework/expression/spel/support/ReflectivePropertyResolver.java +++ b/org.springframework.expression/src/main/java/org/springframework/expression/spel/support/ReflectivePropertyResolver.java @@ -25,7 +25,7 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import org.springframework.core.MethodParameter; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; import org.springframework.expression.AccessException; import org.springframework.expression.EvaluationContext; import org.springframework.expression.EvaluationException; @@ -48,7 +48,7 @@ public class ReflectivePropertyResolver implements PropertyAccessor { protected final Map writerCache = new ConcurrentHashMap(); - protected final Map typeDescriptorCache = new ConcurrentHashMap(); + protected final Map typeDescriptorCache = new ConcurrentHashMap(); /** * @return null which means this is a general purpose accessor @@ -72,14 +72,14 @@ public class ReflectivePropertyResolver implements PropertyAccessor { Method method = findGetterForProperty(name, type, target instanceof Class); if (method != null) { this.readerCache.put(cacheKey, method); - this.typeDescriptorCache.put(cacheKey, new BindingPoint(new MethodParameter(method,-1))); + this.typeDescriptorCache.put(cacheKey, new ConversionPoint(new MethodParameter(method,-1))); return true; } else { Field field = findField(name, type, target instanceof Class); if (field != null) { this.readerCache.put(cacheKey, field); - this.typeDescriptorCache.put(cacheKey, new BindingPoint(field)); + this.typeDescriptorCache.put(cacheKey, new ConversionPoint(field)); return true; } } @@ -96,7 +96,7 @@ public class ReflectivePropertyResolver implements PropertyAccessor { if (target instanceof Class) { throw new AccessException("Cannot access length on array class itself"); } - return new TypedValue(Array.getLength(target),BindingPoint.valueOf(Integer.TYPE)); + return new TypedValue(Array.getLength(target),ConversionPoint.valueOf(Integer.TYPE)); } CacheKey cacheKey = new CacheKey(type, name); @@ -114,7 +114,7 @@ public class ReflectivePropertyResolver implements PropertyAccessor { if (method != null) { try { ReflectionUtils.makeAccessible(method); - BindingPoint resultTypeDescriptor = new BindingPoint(new MethodParameter(method,-1)); + ConversionPoint resultTypeDescriptor = new ConversionPoint(new MethodParameter(method,-1)); return new TypedValue(method.invoke(target),resultTypeDescriptor); } catch (Exception ex) { @@ -135,7 +135,7 @@ public class ReflectivePropertyResolver implements PropertyAccessor { if (field != null) { try { ReflectionUtils.makeAccessible(field); - return new TypedValue(field.get(target),new BindingPoint(field)); + return new TypedValue(field.get(target),new ConversionPoint(field)); } catch (Exception ex) { throw new AccessException("Unable to access field: " + name, ex); @@ -158,14 +158,14 @@ public class ReflectivePropertyResolver implements PropertyAccessor { Method method = findSetterForProperty(name, type, target instanceof Class); if (method != null) { this.writerCache.put(cacheKey, method); - this.typeDescriptorCache.put(cacheKey, new BindingPoint(new MethodParameter(method,0))); + this.typeDescriptorCache.put(cacheKey, new ConversionPoint(new MethodParameter(method,0))); return true; } else { Field field = findField(name, type, target instanceof Class); if (field != null) { this.writerCache.put(cacheKey, field); - this.typeDescriptorCache.put(cacheKey, new BindingPoint(field)); + this.typeDescriptorCache.put(cacheKey, new ConversionPoint(field)); return true; } } @@ -179,7 +179,7 @@ public class ReflectivePropertyResolver implements PropertyAccessor { Class type = (target instanceof Class ? (Class) target : target.getClass()); Object possiblyConvertedNewValue = newValue; - BindingPoint typeDescriptor = getTypeDescriptor(context, target, name); + ConversionPoint typeDescriptor = getTypeDescriptor(context, target, name); if (typeDescriptor != null) { try { possiblyConvertedNewValue = context.getTypeConverter().convertValue(newValue, typeDescriptor); @@ -236,17 +236,17 @@ public class ReflectivePropertyResolver implements PropertyAccessor { throw new AccessException("Neither setter nor field found for property '" + name + "'"); } - private BindingPoint getTypeDescriptor(EvaluationContext context, Object target, String name) { + private ConversionPoint getTypeDescriptor(EvaluationContext context, Object target, String name) { if (target == null) { return null; } Class type = (target instanceof Class ? (Class) target : target.getClass()); if (type.isArray() && name.equals("length")) { - return BindingPoint.valueOf(Integer.TYPE); + return ConversionPoint.valueOf(Integer.TYPE); } CacheKey cacheKey = new CacheKey(type, name); - BindingPoint typeDescriptor = this.typeDescriptorCache.get(cacheKey); + ConversionPoint typeDescriptor = this.typeDescriptorCache.get(cacheKey); if (typeDescriptor == null) { // attempt to populate the cache entry try { diff --git a/org.springframework.expression/src/main/java/org/springframework/expression/spel/support/StandardEvaluationContext.java b/org.springframework.expression/src/main/java/org/springframework/expression/spel/support/StandardEvaluationContext.java index 3074d303e2..2ef77932db 100644 --- a/org.springframework.expression/src/main/java/org/springframework/expression/spel/support/StandardEvaluationContext.java +++ b/org.springframework.expression/src/main/java/org/springframework/expression/spel/support/StandardEvaluationContext.java @@ -22,7 +22,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; import org.springframework.expression.ConstructorResolver; import org.springframework.expression.EvaluationContext; import org.springframework.expression.MethodResolver; @@ -75,10 +75,10 @@ public class StandardEvaluationContext implements EvaluationContext { } public void setRootObject(Object rootObject) { - this.rootObject = new TypedValue(rootObject,BindingPoint.forObject(rootObject)); + this.rootObject = new TypedValue(rootObject,ConversionPoint.forObject(rootObject)); } - public void setRootObject(Object rootObject, BindingPoint typeDescriptor) { + public void setRootObject(Object rootObject, ConversionPoint typeDescriptor) { this.rootObject = new TypedValue(rootObject,typeDescriptor); } diff --git a/org.springframework.expression/src/main/java/org/springframework/expression/spel/support/StandardTypeConverter.java b/org.springframework.expression/src/main/java/org/springframework/expression/spel/support/StandardTypeConverter.java index 7f3a14a2e8..509f98c933 100644 --- a/org.springframework.expression/src/main/java/org/springframework/expression/spel/support/StandardTypeConverter.java +++ b/org.springframework.expression/src/main/java/org/springframework/expression/spel/support/StandardTypeConverter.java @@ -18,7 +18,7 @@ package org.springframework.expression.spel.support; import org.springframework.core.convert.ConvertException; import org.springframework.core.convert.ConverterNotFoundException; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; import org.springframework.core.convert.support.DefaultTypeConverter; import org.springframework.expression.EvaluationException; import org.springframework.expression.TypeConverter; @@ -46,11 +46,11 @@ public class StandardTypeConverter implements TypeConverter { @SuppressWarnings("unchecked") public T convertValue(Object value, Class targetType) throws EvaluationException { - return (T) convertValue(value, BindingPoint.valueOf(targetType)); + return (T) convertValue(value, ConversionPoint.valueOf(targetType)); } @SuppressWarnings("unchecked") - public Object convertValue(Object value, BindingPoint typeDescriptor) throws EvaluationException { + public Object convertValue(Object value, ConversionPoint typeDescriptor) throws EvaluationException { try { return this.typeConverter.convert(value, typeDescriptor); } @@ -63,10 +63,10 @@ public class StandardTypeConverter implements TypeConverter { } public boolean canConvert(Class sourceType, Class targetType) { - return canConvert(sourceType, BindingPoint.valueOf(targetType)); + return canConvert(sourceType, ConversionPoint.valueOf(targetType)); } - public boolean canConvert(Class sourceType, BindingPoint targetType) { + public boolean canConvert(Class sourceType, ConversionPoint targetType) { return this.typeConverter.canConvert(sourceType, targetType); } diff --git a/org.springframework.expression/src/test/java/org/springframework/expression/spel/ExpressionLanguageScenarioTests.java b/org.springframework.expression/src/test/java/org/springframework/expression/spel/ExpressionLanguageScenarioTests.java index b8e4567775..ecf727fbb7 100644 --- a/org.springframework.expression/src/test/java/org/springframework/expression/spel/ExpressionLanguageScenarioTests.java +++ b/org.springframework.expression/src/test/java/org/springframework/expression/spel/ExpressionLanguageScenarioTests.java @@ -23,7 +23,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; import org.springframework.expression.AccessException; import org.springframework.expression.EvaluationContext; import org.springframework.expression.EvaluationException; @@ -236,7 +236,7 @@ public class ExpressionLanguageScenarioTests extends ExpressionTestCase { private static class FruitColourAccessor implements PropertyAccessor { private static Map propertyMap = new HashMap(); - private static BindingPoint mapElementTypeDescriptor = BindingPoint.valueOf(Color.class); + private static ConversionPoint mapElementTypeDescriptor = ConversionPoint.valueOf(Color.class); static { propertyMap.put("banana",Color.yellow); @@ -295,7 +295,7 @@ public class ExpressionLanguageScenarioTests extends ExpressionTestCase { } public TypedValue read(EvaluationContext context, Object target, String name) throws AccessException { - return new TypedValue(propertyMap.get(name),BindingPoint.valueOf(Color.class)); + return new TypedValue(propertyMap.get(name),ConversionPoint.valueOf(Color.class)); } public boolean canWrite(EvaluationContext context, Object target, String name) throws AccessException { diff --git a/org.springframework.expression/src/test/java/org/springframework/expression/spel/ExpressionStateTests.java b/org.springframework.expression/src/test/java/org/springframework/expression/spel/ExpressionStateTests.java index e2e5731f8a..877df45198 100644 --- a/org.springframework.expression/src/test/java/org/springframework/expression/spel/ExpressionStateTests.java +++ b/org.springframework.expression/src/test/java/org/springframework/expression/spel/ExpressionStateTests.java @@ -18,7 +18,7 @@ package org.springframework.expression.spel; import java.util.HashMap; import java.util.Map; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; import org.springframework.expression.EvaluationContext; import org.springframework.expression.EvaluationException; import org.springframework.expression.Operation; @@ -117,7 +117,7 @@ public class ExpressionStateTests extends ExpressionTestCase { assertEquals(TypedValue.NULL_TYPED_VALUE,state.getRootContextObject()); - ((StandardEvaluationContext)state.getEvaluationContext()).setRootObject(null,BindingPoint.NULL_TYPE_DESCRIPTOR); + ((StandardEvaluationContext)state.getEvaluationContext()).setRootObject(null,ConversionPoint.NULL); assertEquals(null,state.getRootContextObject().getValue()); } @@ -222,10 +222,10 @@ public class ExpressionStateTests extends ExpressionTestCase { public void testTypeConversion() throws EvaluationException { ExpressionState state = getState(); - String s = (String)state.convertValue(34,BindingPoint.valueOf(String.class)); + String s = (String)state.convertValue(34,ConversionPoint.valueOf(String.class)); assertEquals("34",s); - s = (String)state.convertValue(new TypedValue(34),BindingPoint.valueOf(String.class)); + s = (String)state.convertValue(new TypedValue(34),ConversionPoint.valueOf(String.class)); assertEquals("34",s); } diff --git a/org.springframework.expression/src/test/java/org/springframework/expression/spel/ExpressionTestsUsingCoreConversionService.java b/org.springframework.expression/src/test/java/org/springframework/expression/spel/ExpressionTestsUsingCoreConversionService.java index 2e42177b1d..e54cef651e 100644 --- a/org.springframework.expression/src/test/java/org/springframework/expression/spel/ExpressionTestsUsingCoreConversionService.java +++ b/org.springframework.expression/src/test/java/org/springframework/expression/spel/ExpressionTestsUsingCoreConversionService.java @@ -19,7 +19,7 @@ package org.springframework.expression.spel; import java.util.ArrayList; import java.util.List; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; import org.springframework.core.convert.support.DefaultTypeConverter; import org.springframework.core.convert.support.GenericTypeConverter; import org.springframework.expression.EvaluationException; @@ -35,9 +35,9 @@ import org.springframework.expression.spel.support.StandardEvaluationContext; public class ExpressionTestsUsingCoreConversionService extends ExpressionTestCase { private static List listOfString = new ArrayList(); - private static BindingPoint typeDescriptorForListOfString = null; + private static ConversionPoint typeDescriptorForListOfString = null; private static List listOfInteger = new ArrayList(); - private static BindingPoint typeDescriptorForListOfInteger = null; + private static ConversionPoint typeDescriptorForListOfInteger = null; static { listOfString.add("1"); @@ -50,8 +50,8 @@ public class ExpressionTestsUsingCoreConversionService extends ExpressionTestCas public void setUp() throws Exception { super.setUp(); - typeDescriptorForListOfString = new BindingPoint(ExpressionTestsUsingCoreConversionService.class.getDeclaredField("listOfString")); - typeDescriptorForListOfInteger = new BindingPoint(ExpressionTestsUsingCoreConversionService.class.getDeclaredField("listOfInteger")); + typeDescriptorForListOfString = new ConversionPoint(ExpressionTestsUsingCoreConversionService.class.getDeclaredField("listOfString")); + typeDescriptorForListOfInteger = new ConversionPoint(ExpressionTestsUsingCoreConversionService.class.getDeclaredField("listOfInteger")); } @@ -96,20 +96,20 @@ public class ExpressionTestsUsingCoreConversionService extends ExpressionTestCas private final DefaultTypeConverter service = new DefaultTypeConverter(); public boolean canConvert(Class sourceType, Class targetType) { - return this.service.canConvert(sourceType, BindingPoint.valueOf(targetType)); + return this.service.canConvert(sourceType, ConversionPoint.valueOf(targetType)); } - public boolean canConvert(Class sourceType, BindingPoint typeDescriptor) { + public boolean canConvert(Class sourceType, ConversionPoint typeDescriptor) { return this.service.canConvert(sourceType, typeDescriptor); } @SuppressWarnings("unchecked") public T convertValue(Object value, Class targetType) throws EvaluationException { - return (T) this.service.convert(value,BindingPoint.valueOf(targetType)); + return (T) this.service.convert(value,ConversionPoint.valueOf(targetType)); } @SuppressWarnings("unchecked") - public Object convertValue(Object value, BindingPoint typeDescriptor) throws EvaluationException { + public Object convertValue(Object value, ConversionPoint typeDescriptor) throws EvaluationException { return this.service.convert(value, typeDescriptor); } } diff --git a/org.springframework.expression/src/test/java/org/springframework/expression/spel/ScenariosForSpringSecurity.java b/org.springframework.expression/src/test/java/org/springframework/expression/spel/ScenariosForSpringSecurity.java index 104b06031c..0b46de086b 100644 --- a/org.springframework.expression/src/test/java/org/springframework/expression/spel/ScenariosForSpringSecurity.java +++ b/org.springframework.expression/src/test/java/org/springframework/expression/spel/ScenariosForSpringSecurity.java @@ -19,7 +19,7 @@ package org.springframework.expression.spel; import java.lang.reflect.Method; import org.springframework.core.MethodParameter; -import org.springframework.core.convert.BindingPoint; +import org.springframework.core.convert.ConversionPoint; import org.springframework.expression.AccessException; import org.springframework.expression.EvaluationContext; import org.springframework.expression.EvaluationException; @@ -214,7 +214,7 @@ public class ScenariosForSpringSecurity extends ExpressionTestCase { } public TypedValue read(EvaluationContext context, Object target, String name) throws AccessException { - return new TypedValue(new Principal(),BindingPoint.valueOf(Principal.class)); + return new TypedValue(new Principal(),ConversionPoint.valueOf(Principal.class)); } public boolean canWrite(EvaluationContext context, Object target, String name) throws AccessException { @@ -244,7 +244,7 @@ public class ScenariosForSpringSecurity extends ExpressionTestCase { } public TypedValue read(EvaluationContext context, Object target, String name) throws AccessException { - return new TypedValue(activePerson,BindingPoint.valueOf(Person.class)); + return new TypedValue(activePerson,ConversionPoint.valueOf(Person.class)); } public boolean canWrite(EvaluationContext context, Object target, String name) throws AccessException { @@ -283,7 +283,7 @@ public class ScenariosForSpringSecurity extends ExpressionTestCase { if (m.isVarArgs()) { args = ReflectionHelper.setupArgumentsForVarargsInvocation(m.getParameterTypes(), args); } - return new TypedValue(m.invoke(null, args), new BindingPoint(new MethodParameter(m,-1))); + return new TypedValue(m.invoke(null, args), new ConversionPoint(new MethodParameter(m,-1))); } catch (Exception ex) { throw new AccessException("Problem invoking hasRole", ex);