类 InternalSpelExpressionParser

java.lang.Object
cn.taketoday.expression.common.TemplateAwareExpressionParser
cn.taketoday.expression.spel.standard.InternalSpelExpressionParser
所有已实现的接口:
ExpressionParser

final class InternalSpelExpressionParser extends TemplateAwareExpressionParser
Hand-written SpEL parser. Instances are reusable but are not thread-safe.
从以下版本开始:
4.0
作者:
Andy Clement, Juergen Hoeller, Phillip Webb, Harry Yang
  • 字段详细资料

    • VALID_QUALIFIED_ID_PATTERN

      private static final Pattern VALID_QUALIFIED_ID_PATTERN
    • configuration

      private final SpelParserConfiguration configuration
    • constructedNodes

      private final Deque<SpelNodeImpl> constructedNodes
    • patternCache

      private final ConcurrentMap<String,Pattern> patternCache
    • expressionString

      private String expressionString
    • tokenStream

      private List<Token> tokenStream
    • tokenStreamLength

      private int tokenStreamLength
    • tokenStreamPointer

      private int tokenStreamPointer
  • 构造器详细资料

    • InternalSpelExpressionParser

      public InternalSpelExpressionParser(SpelParserConfiguration configuration)
      Create a parser with some configured behavior.
      参数:
      configuration - custom configuration options
  • 方法详细资料

    • doParseExpression

      protected SpelExpression doParseExpression(String expressionString, @Nullable ParserContext context) throws ParseException
      从类复制的说明: TemplateAwareExpressionParser
      Actually parse the expression string and return an Expression object.
      指定者:
      doParseExpression 在类中 TemplateAwareExpressionParser
      参数:
      expressionString - the raw expression string to parse
      context - a context for influencing this expression parsing routine (optional)
      返回:
      an evaluator for the parsed expression
      抛出:
      ParseException - an exception occurred during parsing
    • checkExpressionLength

      private void checkExpressionLength(String string)
    • eatExpression

      @Nullable private SpelNodeImpl eatExpression()
    • eatLogicalOrExpression

      @Nullable private SpelNodeImpl eatLogicalOrExpression()
    • eatLogicalAndExpression

      @Nullable private SpelNodeImpl eatLogicalAndExpression()
    • eatRelationalExpression

      @Nullable private SpelNodeImpl eatRelationalExpression()
    • eatSumExpression

      @Nullable private SpelNodeImpl eatSumExpression()
    • eatProductExpression

      @Nullable private SpelNodeImpl eatProductExpression()
    • eatPowerIncDecExpression

      @Nullable private SpelNodeImpl eatPowerIncDecExpression()
    • eatUnaryExpression

      @Nullable private SpelNodeImpl eatUnaryExpression()
    • eatPrimaryExpression

      @Nullable private SpelNodeImpl eatPrimaryExpression()
    • eatNode

      @Nullable private SpelNodeImpl eatNode()
    • eatNonDottedNode

      @Nullable private SpelNodeImpl eatNonDottedNode()
    • eatDottedNode

      private SpelNodeImpl eatDottedNode()
    • maybeEatFunctionOrVar

      private boolean maybeEatFunctionOrVar()
    • maybeEatMethodArgs

      @Nullable private SpelNodeImpl[] maybeEatMethodArgs()
    • eatConstructorArgs

      private void eatConstructorArgs(List<SpelNodeImpl> accumulatedArguments)
    • consumeArguments

      private void consumeArguments(List<SpelNodeImpl> accumulatedArguments)
      Used for consuming arguments for either a method or a constructor call.
    • positionOf

      private int positionOf(@Nullable Token t)
    • eatStartNode

      @Nullable private SpelNodeImpl eatStartNode()
    • maybeEatBeanReference

      private boolean maybeEatBeanReference()
    • maybeEatTypeReference

      private boolean maybeEatTypeReference()
    • maybeEatNullReference

      private boolean maybeEatNullReference()
    • maybeEatProjection

      private boolean maybeEatProjection(boolean nullSafeNavigation)
    • maybeEatInlineListOrMap

      private boolean maybeEatInlineListOrMap()
    • maybeEatIndexer

      private boolean maybeEatIndexer()
    • maybeEatSelection

      private boolean maybeEatSelection(boolean nullSafeNavigation)
    • eatPossiblyQualifiedId

      private SpelNodeImpl eatPossiblyQualifiedId()
      Eat an identifier, possibly qualified (meaning that it is dotted). TODO AndyC Could create complete identifiers (a.b.c) here rather than a sequence of them? (a, b, c)
    • isValidQualifiedId

      private boolean isValidQualifiedId(@Nullable Token node)
    • maybeEatMethodOrProperty

      private boolean maybeEatMethodOrProperty(boolean nullSafeNavigation)
    • maybeEatConstructorReference

      private boolean maybeEatConstructorReference()
    • push

      private void push(SpelNodeImpl newNode)
    • pop

      private SpelNodeImpl pop()
    • maybeEatLiteral

      private boolean maybeEatLiteral()
    • maybeEatParenExpression

      private boolean maybeEatParenExpression()
    • maybeEatRelationalOperator

      @Nullable private Token maybeEatRelationalOperator()
    • eatToken

      private Token eatToken(TokenKind expectedKind)
    • peekToken

      private boolean peekToken(TokenKind desiredTokenKind)
    • peekToken

      private boolean peekToken(TokenKind desiredTokenKind, boolean consumeIfMatched)
    • peekToken

      private boolean peekToken(TokenKind possible1, TokenKind possible2)
    • peekToken

      private boolean peekToken(TokenKind possible1, TokenKind possible2, TokenKind possible3)
    • peekIdentifierToken

      private boolean peekIdentifierToken(String identifierString)
    • peekSelectToken

      private boolean peekSelectToken()
    • takeToken

      private Token takeToken()
    • nextToken

      @Nullable private Token nextToken()
    • peekToken

      @Nullable private Token peekToken()
    • toString

      public String toString(@Nullable Token t)
    • checkOperands

      private void checkOperands(Token token, @Nullable SpelNodeImpl left, @Nullable SpelNodeImpl right)
    • checkLeftOperand

      private void checkLeftOperand(Token token, @Nullable SpelNodeImpl operandExpression)
    • checkRightOperand

      private void checkRightOperand(Token token, @Nullable SpelNodeImpl operandExpression)
    • internalException

      private InternalParseException internalException(int startPos, SpelMessage message, Object... inserts)