protected Map<String, Expression> parseVariableExpressions(ExpressionVariable[] variables) throws ParserException { if (variables == null || variables.length == 0) { return null; } Map<String, Expression> variableExpressions = new HashMap<>(variables.length, 1); for (ExpressionVariable var : variables) { variableExpressions.put(var.getName(), parseExpression(var.getValueExpression(), var.getParserContext())); } return variableExpressions; }
/** * Creates a new expression variable. * @param name the name of the variable, acting as an convenient alias (required) * @param valueExpression the value expression (required) */ public ExpressionVariable(String name, String valueExpression) { init(name, valueExpression, null); }
public void testTemplateNestedVariables() { String expressionString = "#{value}#{max}"; Expression exp = parser.parseExpression( expressionString, new FluentParserContext().template().variable( new ExpressionVariable("max", "#{maximum}#{var}", new FluentParserContext().template() .variable(new ExpressionVariable("var", "'bar'"))))); TestBean target = new TestBean(); assertEquals("foo2bar", exp.getValue(target)); }
public void testParseTemplateExpressionWithVariables() { String expressionString = "#{value}#{max}"; Expression exp = parser.parseExpression(expressionString, new FluentParserContext().template().variable(new ExpressionVariable("max", "maximum"))); TestBean target = new TestBean(); assertEquals("foo2", exp.getValue(target)); }
protected Map<String, Expression> parseVariableExpressions(ExpressionVariable[] variables) throws ParserException { if (variables == null || variables.length == 0) { return null; } Map<String, Expression> variableExpressions = new HashMap<>(variables.length, 1); for (ExpressionVariable var : variables) { variableExpressions.put(var.getName(), parseExpression(var.getValueExpression(), var.getParserContext())); } return variableExpressions; }
/** * Creates a new expression variable with a populated parser context. * @param name the name of the variable, acting as an convenient alias (required) * @param valueExpression the value expression (required) * @param parserContext the parser context to use to parse the value expression (optional) */ public ExpressionVariable(String name, String valueExpression, ParserContext parserContext) { init(name, valueExpression, parserContext); }
public void testParseTemplateExpressionWithVariables() { String expressionString = "#{value}#{#max}"; Expression exp = parser.parseExpression(expressionString, new FluentParserContext().template().variable(new ExpressionVariable("max", "maximum"))); TestBean target = new TestBean(); assertEquals("foo2", exp.getValue(target)); // TODO: }
protected Map parseVariableExpressions(ExpressionVariable[] variables) throws ParserException { if (variables == null || variables.length == 0) { return null; } Map variableExpressions = new HashMap(variables.length, 1); for (int i = 0; i < variables.length; i++) { ExpressionVariable var = variables[i]; variableExpressions.put(var.getName(), parseExpression(var.getValueExpression(), var.getParserContext())); } return variableExpressions; }
/** * Creates a new expression variable with a populated parser context. * @param name the name of the variable, acting as an convenient alias (required) * @param valueExpression the value expression (required) * @param parserContext the parser context to use to parse the value expression (optional) */ public ExpressionVariable(String name, String valueExpression, ParserContext parserContext) { init(name, valueExpression, parserContext); }
public void testVariablesWithCoersion() { Expression exp = parser.parseExpression("max", new FluentParserContext().variable(new ExpressionVariable("max", "maximum", new FluentParserContext().expectResult(Long.class)))); TestBean target = new TestBean(); assertEquals(2L, exp.getValue(target)); }
/** * Turn {@link ExpressionVariable}'s (pairs of variable names and string expressions) * into a map of variable names and parsed Spring EL expressions. The map will be saved * in a Spring EL {@link EvaluationContext} for later use at evaluation time. * * @param expressionVars an array of ExpressionVariable instances. * @return a Map or null if the input array is empty. */ private Map<String, Expression> parseSpelExpressionVariables(ExpressionVariable[] expressionVars) { if (expressionVars == null || expressionVars.length == 0) { return null; } Map<String, Expression> result = new HashMap<>(expressionVars.length); for (ExpressionVariable var : expressionVars) { result.put(var.getName(), parseExpression(var.getValueExpression(), var.getParserContext())); } return result; }
/** * Creates a new expression variable with a populated parser context. * @param name the name of the variable, acting as an convenient alias (required) * @param valueExpression the value expression (required) * @param parserContext the parser context to use to parse the value expression (optional) */ public ExpressionVariable(String name, String valueExpression, ParserContext parserContext) { init(name, valueExpression, parserContext); }
public void mapVariables(ExpressionVariable[] variables, ExpressionFactory expressionFactory) { if (variables != null && variables.length > 0) { variableMapper = new VariableMapperImpl(); for (ExpressionVariable var : variables) { ParserContext context = var.getParserContext() != null ? var.getParserContext() : NullParserContext.INSTANCE; ValueExpression expr; if (context.isTemplate()) { expr = parseValueExpression(var.getValueExpression(), context); } else { assertNotDelimited(var.getValueExpression()); assertHasText(var.getValueExpression()); expr = parseValueExpression("#{" + var.getValueExpression() + "}", context); } variableMapper.setVariable(var.getName(), expr); } } } }
/** * Creates a new expression variable. * @param name the name of the variable, acting as an convenient alias (required) * @param valueExpression the value expression (required) */ public ExpressionVariable(String name, String valueExpression) { init(name, valueExpression, null); }
/** * Turn {@link ExpressionVariable}'s (pairs of variable names and string expressions) * into a map of variable names and parsed Spring EL expressions. The map will be saved * in a Spring EL {@link EvaluationContext} for later use at evaluation time. * * @param expressionVars an array of ExpressionVariable instances. * @return a Map or null if the input array is empty. */ private Map<String, Expression> parseSpelExpressionVariables(ExpressionVariable[] expressionVars) { if (expressionVars == null || expressionVars.length == 0) { return null; } Map<String, Expression> result = new HashMap<>(expressionVars.length); for (ExpressionVariable var : expressionVars) { result.put(var.getName(), parseExpression(var.getValueExpression(), var.getParserContext())); } return result; }
/** * Creates a new expression variable. * @param name the name of the variable, acting as an convenient alias (required) * @param valueExpression the value expression (required) */ public ExpressionVariable(String name, String valueExpression) { init(name, valueExpression, null); }
public void mapVariables(ExpressionVariable[] variables, ExpressionFactory expressionFactory) { if (variables != null && variables.length > 0) { variableMapper = new VariableMapperImpl(); for (ExpressionVariable var : variables) { ParserContext context = var.getParserContext() != null ? var.getParserContext() : NullParserContext.INSTANCE; ValueExpression expr; if (context.isTemplate()) { expr = parseValueExpression(var.getValueExpression(), context); } else { assertNotDelimited(var.getValueExpression()); assertHasText(var.getValueExpression()); expr = parseValueExpression("#{" + var.getValueExpression() + "}", context); } variableMapper.setVariable(var.getName(), expr); } } } }
public void mapVariables(ExpressionVariable[] variables, ExpressionFactory expressionFactory) { if (variables != null && variables.length > 0) { variableMapper = new VariableMapperImpl(); for (int i = 0; i < variables.length; i++) { ExpressionVariable var = variables[i]; ParserContext context = var.getParserContext() != null ? var.getParserContext() : NullParserContext.INSTANCE; ValueExpression expr; if (context.isTemplate()) { expr = parseValueExpression(var.getValueExpression(), context); } else { assertNotDelimited(var.getValueExpression()); assertHasText(var.getValueExpression()); expr = parseValueExpression("#{" + var.getValueExpression() + "}", context); } variableMapper.setVariable(var.getName(), expr); } } } }