Class FluentParserContext

java.lang.Object
org.springframework.binding.expression.support.FluentParserContext
All Implemented Interfaces:
ParserContext

public class FluentParserContext extends Object implements ParserContext
Default implementation of the ParserContext interface that has a fluent API for building parser context attributes.
Author:
Keith Donald
  • Constructor Details

  • Method Details

    • getEvaluationContextType

      public Class<?> getEvaluationContextType()
      Description copied from interface: ParserContext
      Returns the type of context object the parsed expression will evaluate in. An expression parser may use this value to install custom variable resolves for that particular type of context.
      Specified by:
      getEvaluationContextType in interface ParserContext
      Returns:
      the evaluation context type
    • getExpectedEvaluationResultType

      public Class<?> getExpectedEvaluationResultType()
      Description copied from interface: ParserContext
      Returns the expected type of object returned from evaluating the parsed expression. An expression parser may use this value to coerce an raw evaluation result before it is returned.
      Specified by:
      getExpectedEvaluationResultType in interface ParserContext
      Returns:
      the expected evaluation result type
    • getExpressionVariables

      public ExpressionVariable[] getExpressionVariables()
      Description copied from interface: ParserContext
      Returns additional expression variables or aliases that can be referenced during expression evaluation. An expression parser will register these variables for reference during evaluation.
      Specified by:
      getExpressionVariables in interface ParserContext
    • isTemplate

      public boolean isTemplate()
      Description copied from interface: ParserContext
      Whether or not the expression being parsed is a template. A template expression consists of literal text that can be mixed with evaluatable blocks. Some examples:
                 Some literal text
           Hello #{name.firstName}!
           #{3 + 4}
       
      Specified by:
      isTemplate in interface ParserContext
      Returns:
      true if the expression is a template, false otherwise
    • evaluate

      public FluentParserContext evaluate(Class<?> contextType)
      Configure the evaluationContextType attribute with the value provided.
      Parameters:
      contextType - the type of context object the parsed expression will evaluate in
      Returns:
      this
    • expectResult

      public FluentParserContext expectResult(Class<?> resultType)
      Configure the expectedEvaluationResult attribute with the value provided.
      Parameters:
      resultType - the type of result object the parsed expression should return when evaluated
      Returns:
      this
    • variable

      public FluentParserContext variable(ExpressionVariable variable)
      Add an expression variable that can be referenced by the expression.
      Parameters:
      variable - the expression variable
      Returns:
      this
    • variables

      public FluentParserContext variables(ExpressionVariable... variables)
      Add an array of expression variables that can be referenced by the expression.
      Parameters:
      variables - the expression variables
      Returns:
      this
    • template

      public FluentParserContext template()
      Sets a flag indicating the expression to parse is a template.
      Returns:
      this