allow for undefined target type
This commit is contained in:
parent
1a31d25973
commit
36334ec21f
|
|
@ -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…
Reference in New Issue