Class PropertyVerifier
java.lang.Object
org.mvel2.compiler.AbstractParser
org.mvel2.optimizers.AbstractOptimizer
org.mvel2.compiler.PropertyVerifier
- All Implemented Interfaces:
Serializable, Parser
This verifier is used by the compiler to enforce rules such as type strictness. It is, as side-effect, also
responsible for extracting type information.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanprivate static final intprivate Classprivate booleanprivate static final intprivate booleanprivate booleanprivate static final intprivate booleanprivate static final intprivate booleanprivate static final intFields inherited from class AbstractOptimizer
BEAN, collection, currType, nullSafe, staticAccess, tkStartFields inherited from class AbstractParser
CLASS_LITERALS, compileMode, cursor, debugSymbols, dStack, end, expr, fields, GET, GET_OR_CREATE, greedy, lastLineStart, lastNode, lastWasComment, lastWasIdentifier, lastWasLineLabel, length, LEVEL_0_PROPERTY_ONLY, LEVEL_1_BASIC_LANG, LEVEL_2_MULTI_STATEMENT, LEVEL_3_ITERATION, LEVEL_4_ASSIGNMENT, LEVEL_5_CONTROL_FLOW, line, literalOnly, LITERALS, OP_CONTINUE, OP_NOT_LITERAL, OP_OVERFLOW, OP_RESET_FRAME, OP_TERMINATE, OPERATORS, pCtx, REMOVE, SET, splitAccumulator, st, start, stk, variableFactory -
Constructor Summary
ConstructorsConstructorDescriptionPropertyVerifier(char[] property, int start, int offset, ParserContext parserContext) PropertyVerifier(char[] property, ParserContext parserContext) PropertyVerifier(String property, ParserContext parserContext) PropertyVerifier(String property, ParserContext parserContext, Class root) -
Method Summary
Modifier and TypeMethodDescriptionanalyze()Analyze the statement and return the known egress type.private ClassgetBeanProperty(Class ctx, String property) Process bean propertyprivate ClassgetCollectionProperty(Class ctx, String property) Process collection propertygetCtx()private ClassProcess methodprivate ClassgetReturnType(Class context, Method m) private ClassgetWithProperty(Class ctx) booleanbooleanbooleanisFqcn()booleanisInput()booleanbooleanprivate voidrecordParametricReturnedType(Type parametricReturnType) private voidrecordTypeParmsForProperty(String property) private Class<?> voidvoidprivate static Class<?> type2Class(Type type) Methods inherited from class AbstractOptimizer
capture, findLastUnion, nextSubToken, scanTo, tryStaticAccess, whiteSpaceSkipMethods inherited from class AbstractParser
addFatalError, addFatalError, arithmeticFunctionReduction, captureIdentifier, captureToEOS, captureToEOSorEOL, captureToEOT, captureToNextTokenJunction, expectEOS, expectNextChar_IW, getCursor, getExpression, handleSubstatement, handleUnion, ifThenElseBlockContinues, incNextNonBlank, isArithmeticOperator, isNextIdentifier, isNextIdentifierOrLiteral, isStatementNotManuallyTerminated, lastNonWhite, loadLanguageFeaturesByLevel, lookAhead, lookAhead, lookBehind, lookToLast, nextNonBlank, nextToken, nextTokenSkipSymbols, reduce, setExpression, setExpression, setLanguageLevel, setupParser, skipWhitespace, tokenContinues, trimLeft, trimRight, trimWhitespace
-
Field Details
-
DONE
private static final int DONE- See Also:
-
NORM
private static final int NORM- See Also:
-
METH
private static final int METH- See Also:
-
COL
private static final int COL- See Also:
-
WITH
private static final int WITH- See Also:
-
inputs
-
first
private boolean first -
classLiteral
private boolean classLiteral -
resolvedExternally
private boolean resolvedExternally -
methodCall
private boolean methodCall -
deepProperty
private boolean deepProperty -
fqcn
private boolean fqcn -
paramTypes
-
ctx
-
-
Constructor Details
-
PropertyVerifier
-
PropertyVerifier
-
PropertyVerifier
-
PropertyVerifier
-
-
Method Details
-
getInputs
-
setInputs
-
analyze
Analyze the statement and return the known egress type.- Returns:
- known engress type
-
recordTypeParmsForProperty
-
getBeanProperty
-
getReturnType
-
recordParametricReturnedType
-
returnGenericType
-
getCollectionProperty
-
getMethod
-
type2Class
-
getWithProperty
-
isResolvedExternally
public boolean isResolvedExternally() -
isClassLiteral
public boolean isClassLiteral() -
isDeepProperty
public boolean isDeepProperty() -
isInput
public boolean isInput() -
isMethodCall
public boolean isMethodCall() -
isFqcn
public boolean isFqcn() -
getCtx
-
setCtx
-