Browse Source

allow for undefined target type

conversation
Andy Clement 16 years ago
parent
commit
36334ec21f
  1. 17
      org.springframework.expression/src/main/java/org/springframework/expression/common/ExpressionUtils.java

17
org.springframework.expression/src/main/java/org/springframework/expression/common/ExpressionUtils.java

@ -22,33 +22,34 @@ import org.springframework.expression.TypeUtils; @@ -22,33 +22,34 @@ import org.springframework.expression.TypeUtils;
/**
* Common utility functions that may be used by any Expression Language provider.
*
*
* @author Andy Clement
*/
public class ExpressionUtils {
/**
* Determines if there is a type converter available in the specified context and attempts to use it to convert the supplied
* value to the specified type. Throws an exception if conversion is not possible.
* Determines if there is a type converter available in the specified context and attempts to use it to convert the
* supplied value to the specified type. Throws an exception if conversion is not possible.
*
* @param context the evaluation context that may define a type converter
* @param value the value to convert (may be null)
* @param toType the type to attempt conversion to
* @return the converted value
* @throws EvaluationException if there is a problem during conversion or conversion of the value to the specified type is not supported
* @throws EvaluationException if there is a problem during conversion or conversion of the value to the specified
* type is not supported
*/
public static Object convert(EvaluationContext context, Object value, Class<?> toType) throws EvaluationException {
if (value==null || toType.isAssignableFrom(value.getClass())) {
if (value == null || toType == null || toType.isAssignableFrom(value.getClass())) {
return value;
}
if (context!=null) {
if (context != null) {
TypeUtils typeUtils = context.getTypeUtils();
if (typeUtils != null) {
TypeConverter typeConverter = typeUtils.getTypeConverter();
return typeConverter.convertValue(value,toType);
return typeConverter.convertValue(value, toType);
}
}
throw new EvaluationException("Cannot convert value '"+value+"' to type '"+toType.getName()+"'");
throw new EvaluationException("Cannot convert value '" + value + "' to type '" + toType.getName() + "'");
}
}

Loading…
Cancel
Save