类 InternalSpelExpressionParser
java.lang.Object
cn.taketoday.expression.common.TemplateAwareExpressionParser
cn.taketoday.expression.spel.standard.InternalSpelExpressionParser
- 所有已实现的接口:
ExpressionParser
Hand-written SpEL parser. Instances are reusable but are not thread-safe.
- 从以下版本开始:
- 4.0
- 作者:
- Andy Clement, Juergen Hoeller, Phillip Webb, Harry Yang
-
字段概要
字段修饰符和类型字段说明private final SpelParserConfigurationprivate final Deque<SpelNodeImpl>private Stringprivate final ConcurrentMap<String,Pattern> private intprivate intprivate static final Pattern -
构造器概要
构造器构造器说明InternalSpelExpressionParser(SpelParserConfiguration configuration) Create a parser with some configured behavior. -
方法概要
修饰符和类型方法说明private voidcheckExpressionLength(String string) private voidcheckLeftOperand(Token token, SpelNodeImpl operandExpression) private voidcheckOperands(Token token, SpelNodeImpl left, SpelNodeImpl right) private voidcheckRightOperand(Token token, SpelNodeImpl operandExpression) private voidconsumeArguments(List<SpelNodeImpl> accumulatedArguments) Used for consuming arguments for either a method or a constructor call.protected SpelExpressiondoParseExpression(String expressionString, ParserContext context) Actually parse the expression string and return an Expression object.private voideatConstructorArgs(List<SpelNodeImpl> accumulatedArguments) private SpelNodeImplprivate SpelNodeImplprivate SpelNodeImplprivate SpelNodeImplprivate SpelNodeImpleatNode()private SpelNodeImplprivate SpelNodeImplEat an identifier, possibly qualified (meaning that it is dotted).private SpelNodeImplprivate SpelNodeImplprivate SpelNodeImplprivate SpelNodeImplprivate SpelNodeImplprivate SpelNodeImplprivate Tokenprivate SpelNodeImplprivate InternalParseExceptioninternalException(int startPos, SpelMessage message, Object... inserts) private booleanisValidQualifiedId(Token node) private booleanprivate booleanprivate booleanprivate booleanprivate booleanprivate booleanprivate SpelNodeImpl[]private booleanmaybeEatMethodOrProperty(boolean nullSafeNavigation) private booleanprivate booleanprivate booleanmaybeEatProjection(boolean nullSafeNavigation) private Tokenprivate booleanmaybeEatSelection(boolean nullSafeNavigation) private booleanprivate Tokenprivate booleanpeekIdentifierToken(String identifierString) private booleanprivate Tokenprivate booleanprivate booleanprivate booleanprivate booleanprivate SpelNodeImplpop()private intpositionOf(Token t) private voidpush(SpelNodeImpl newNode) private Token从类继承的方法 cn.taketoday.expression.common.TemplateAwareExpressionParser
parseExpression, parseExpression
-
字段详细资料
-
VALID_QUALIFIED_ID_PATTERN
-
configuration
-
constructedNodes
-
patternCache
-
expressionString
-
tokenStream
-
tokenStreamLength
private int tokenStreamLength -
tokenStreamPointer
private int tokenStreamPointer
-
-
构造器详细资料
-
InternalSpelExpressionParser
Create a parser with some configured behavior.- 参数:
configuration- custom configuration options
-
-
方法详细资料
-
doParseExpression
protected SpelExpression doParseExpression(String expressionString, @Nullable ParserContext context) throws ParseException 从类复制的说明:TemplateAwareExpressionParserActually parse the expression string and return an Expression object.- 指定者:
doParseExpression在类中TemplateAwareExpressionParser- 参数:
expressionString- the raw expression string to parsecontext- a context for influencing this expression parsing routine (optional)- 返回:
- an evaluator for the parsed expression
- 抛出:
ParseException- an exception occurred during parsing
-
checkExpressionLength
-
eatExpression
-
eatLogicalOrExpression
-
eatLogicalAndExpression
-
eatRelationalExpression
-
eatSumExpression
-
eatProductExpression
-
eatPowerIncDecExpression
-
eatUnaryExpression
-
eatPrimaryExpression
-
eatNode
-
eatNonDottedNode
-
eatDottedNode
-
maybeEatFunctionOrVar
private boolean maybeEatFunctionOrVar() -
maybeEatMethodArgs
-
eatConstructorArgs
-
consumeArguments
Used for consuming arguments for either a method or a constructor call. -
positionOf
-
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
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
-
maybeEatMethodOrProperty
private boolean maybeEatMethodOrProperty(boolean nullSafeNavigation) -
maybeEatConstructorReference
private boolean maybeEatConstructorReference() -
push
-
pop
-
maybeEatLiteral
private boolean maybeEatLiteral() -
maybeEatParenExpression
private boolean maybeEatParenExpression() -
maybeEatRelationalOperator
-
eatToken
-
peekToken
-
peekToken
-
peekToken
-
peekToken
-
peekIdentifierToken
-
peekSelectToken
private boolean peekSelectToken() -
takeToken
-
nextToken
-
peekToken
-
toString
-
checkOperands
-
checkLeftOperand
-
checkRightOperand
-
internalException
private InternalParseException internalException(int startPos, SpelMessage message, Object... inserts)
-