View Javadoc

1   package org.cateproject.view.flow;
2   
3   import org.springframework.binding.convert.ConversionService;
4   import org.springframework.binding.convert.service.GenericConversionService;
5   import org.springframework.binding.expression.Expression;
6   import org.springframework.binding.expression.ParserContext;
7   import org.springframework.binding.expression.ParserException;
8   import org.springframework.binding.expression.support.AbstractExpressionParser;
9   
10  public class BeanWrapperExpressionParser  extends AbstractExpressionParser {
11  
12  	private GenericConversionService conversionService;
13  
14  	/**
15  	 * Creates a new expression parser that uses a {@link DefaultConversionService} to perform type conversion.
16  	 */
17  	public BeanWrapperExpressionParser() {
18  		this.conversionService = new GenericConversionService();
19  	}
20  
21  	/**
22  	 * Creates a new expression parser that uses the specified conversion service for type conversion.
23  	 * @param conversionService the conversion service to use
24  	 */
25  	public BeanWrapperExpressionParser(GenericConversionService conversionService) {
26  		this.conversionService = conversionService;
27  	}
28  
29  	/**
30  	 * The conversion service to use to obtain {@link ConversionExecutor conversion executors} that will be adapted to
31  	 * {@link PropertiesEditor property editors} for use during a
32  	 * {@link BeanWrapperImpl#setPropertyValue(String, Object) set value} call. The default if not specified is an
33  	 * instance of {@link DefaultConversionService}.
34  	 */
35  	public ConversionService getConversionService() {
36  		return conversionService;
37  	}
38  
39  	/**
40  	 * Sets the conversion service to use to obtain {@link ConversionExecutor conversion executors} that will be adapted
41  	 * to {@link PropertiesEditor property editors} for use during a
42  	 * {@link BeanWrapperImpl#setPropertyValue(String, Object) set value} call.
43  	 * @param conversionService the conversion service
44  	 */
45  	public void setConversionService(ConversionService conversionService) {
46  		this.conversionService = (GenericConversionService) conversionService;
47  	}
48  
49  	protected Expression doParseExpression(String expressionString, ParserContext context) throws ParserException {
50  		return new BeanWrapperExpression(expressionString, conversionService);
51  	}
52  }