/** * Create the {@link SpringELExpression}. * <p><strong>Note:</strong> as of 2.4.8, this method is not invoked when a * {@link SimpleParserContext} is passed in, which is mainly the case when using * SpEL for data binding. In those scenarios, the configuration options are * limited to the use of property accessors and a ConversionService. */ protected SpringELExpression createSpringELExpression(Map<String, Expression> expressionVars, org.springframework.expression.Expression spelExpression, Class<?> expectedResultType, org.springframework.core.convert.ConversionService conversionService) { return new SpringELExpression(spelExpression, expressionVars, expectedResultType, conversionService, propertyAccessors); }
public String toString() { return getExpressionString(); }
/** * Constructor for SpringELExpression. * * @param expression a parsed Spring EL expression instance. Must not be null. * @param expressionVars provides a mapping between variables names and * parsed Spring EL expression instances. * This parameter is optional (may be null). * @param expectedType the target type expected from the evaluation of the expression or null. * This parameter is optional (may be null). * @param conversionService the Spring ConversionService instance to use for type conversion * @param propertyAccessors propertyAccessors for Spring EL to use when evaluating expressions */ public SpringELExpression(org.springframework.expression.Expression expression, Map<String, Expression> expressionVars, Class<?> expectedType, ConversionService conversionService, List<PropertyAccessor> propertyAccessors) { this(expression, expectedType, new StandardEvaluationContextFactory(propertyAccessors, conversionService, expressionVars)); }
public void testParseSimpleEvalExpressionNoParserContext() { String expressionString = "3 + 4"; Expression exp = parser.parseExpression(expressionString, null); assertEquals(7, exp.getValue(null)); // Unified EL returns Long }
public void testParseNullExpressionString() { String expressionString = null; try { parser.parseExpression(expressionString, null); fail("should have thrown iae"); } catch (IllegalArgumentException e) { } }
protected void setUp() { parser.addPropertyAccessor(new SpecialPropertyAccessor()); }
private org.springframework.expression.Expression parseSpelExpression(String expression, ParserContext context) { org.springframework.expression.ParserContext spelParserContext = getSpelParserContext(context); if (spelParserContext != null) { return expressionParser.parseExpression(expression, spelParserContext); } return expressionParser.parseExpression(expression); }
public void testGetExpressionString() { String expressionString = "maximum"; Expression exp = parser.parseExpression(expressionString, null); assertEquals("maximum", exp.getExpressionString()); }
public void testParseEmptyExpressionString() { String expressionString = ""; try { parser.parseExpression(expressionString, null); fail("should have thrown iae"); } catch (IllegalArgumentException e) { } }
/** * Create the {@link SpringELExpression}. * <p><strong>Note:</strong> as of 2.4.8, this method is not invoked when a * {@link SimpleParserContext} is passed in, which is mainly the case when using * SpEL for data binding. In those scenarios, the configuration options are * limited to the use of property accessors and a ConversionService. */ protected SpringELExpression createSpringELExpression(Map<String, Expression> expressionVars, org.springframework.expression.Expression spelExpression, Class<?> expectedResultType, org.springframework.core.convert.ConversionService conversionService) { return new SpringELExpression(spelExpression, expressionVars, expectedResultType, conversionService, propertyAccessors); }
public String toString() { return getExpressionString(); }
public void testParseLiteralExpression() { String expressionString = "'value'"; Expression exp = parser.parseExpression(expressionString, null); assertEquals("value", exp.getValue(null)); }
public void testSetValueCoersionError() { String expressionString = "maximum"; Expression exp = parser.parseExpression(expressionString, null); TestBean context = new TestBean(); try { exp.setValue(context, "bogus"); fail("Should have failed with coersion"); } catch (ValueCoercionException e) { } }
public void testParseNull() { Expression exp = parser.parseExpression("null", null); assertEquals(null, exp.getValue(null)); }
public void testParseBeanEvalExpressionInvalidELVariable() { try { String expressionString = "bogus"; Expression exp = parser.parseExpression(expressionString, new FluentParserContext().evaluate(TestBean.class)); exp.getValue(new TestBean()); fail("Should have failed"); } catch (EvaluationException e) { } }
public void testParseBeanEvalExpressionNoParserContext() { String expressionString = "value"; Expression exp = parser.parseExpression(expressionString, null); assertEquals("foo", exp.getValue(new TestBean())); }
public void testParseSimpleEvalExpressionNoEvalContextWithTypeCoersion() { String expressionString = "3 + 4"; Expression exp = parser.parseExpression(expressionString, new FluentParserContext().expectResult(Long.class)); assertEquals(7L, exp.getValue(null)); }
public void testSetValue() { String expressionString = "maximum"; Expression exp = parser.parseExpression(expressionString, null); TestBean context = new TestBean(); exp.setValue(context, 5); assertEquals(5, context.getMaximum()); }
public void testParseEvalExpressionWithContextCustomELVariableResolver() { String expressionString = "specialProperty"; Expression exp = parser.parseExpression(expressionString, new FluentParserContext().evaluate(TestBean.class)); assertEquals("Custom resolver resolved this special property!", exp.getValue(null)); }
public void testSetValueWithTypeCoersion() { String expressionString = "maximum"; Expression exp = parser.parseExpression(expressionString, null); TestBean context = new TestBean(); exp.setValue(context, "5"); assertEquals(5, context.getMaximum()); }