1 16 package org.springframework.binding.convert.support; 17 18 import org.springframework.binding.convert.ConversionContext; 19 import org.springframework.binding.expression.Expression; 20 import org.springframework.binding.expression.ExpressionParser; 21 import org.springframework.binding.expression.SettableExpression; 22 import org.springframework.binding.expression.support.StaticExpression; 23 import org.springframework.util.Assert; 24 25 33 public class TextToExpression extends AbstractConverter { 34 35 38 private ExpressionParser expressionParser; 39 40 44 public TextToExpression(ExpressionParser expressionParser) { 45 Assert.notNull(expressionParser, "The expression parser is required"); 46 this.expressionParser = expressionParser; 47 } 48 49 52 public ExpressionParser getExpressionParser() { 53 return expressionParser; 54 } 55 56 public Class [] getSourceClasses() { 57 return new Class [] { String .class }; 58 } 59 60 public Class [] getTargetClasses() { 61 return new Class [] { Expression.class, SettableExpression.class }; 62 } 63 64 protected Object doConvert(Object source, Class targetClass, ConversionContext context) throws Exception { 65 String expressionString = (String )source; 66 if (getExpressionParser().isDelimitedExpression(expressionString)) { 67 return getExpressionParser().parseExpression((String )source); 68 } 69 else { 70 return new StaticExpression(expressionString); 71 } 72 } 73 } | Popular Tags |