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