public class PropertyVerifier extends AbstractOptimizer
Modifier and Type | Field and Description |
---|---|
private boolean |
classLiteral |
private static int |
COL |
private java.lang.Class |
ctx |
private boolean |
deepProperty |
private static int |
DONE |
private boolean |
first |
private boolean |
fqcn |
private java.util.List<java.lang.String> |
inputs |
private static int |
METH |
private boolean |
methodCall |
private static int |
NORM |
private java.util.Map<java.lang.String,java.lang.reflect.Type> |
paramTypes |
private boolean |
resolvedExternally |
private static int |
WITH |
BEAN, collection, currType, nullSafe, staticAccess, tkStart
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 and Description |
---|
PropertyVerifier(char[] property,
int start,
int offset,
ParserContext parserContext) |
PropertyVerifier(char[] property,
ParserContext parserContext) |
PropertyVerifier(java.lang.String property,
ParserContext parserContext) |
PropertyVerifier(java.lang.String property,
ParserContext parserContext,
java.lang.Class root) |
Modifier and Type | Method and Description |
---|---|
java.lang.Class |
analyze()
Analyze the statement and return the known egress type.
|
private java.lang.Class |
getBeanProperty(java.lang.Class ctx,
java.lang.String property)
Process bean property
|
private java.lang.Class |
getCollectionProperty(java.lang.Class ctx,
java.lang.String property)
Process collection property
|
java.lang.Class |
getCtx() |
java.util.List<java.lang.String> |
getInputs() |
private java.lang.Class |
getMethod(java.lang.Class ctx,
java.lang.String name)
Process method
|
private java.lang.Class |
getReturnType(java.lang.Class context,
java.lang.reflect.Method m) |
private java.lang.Class |
getWithProperty(java.lang.Class ctx) |
boolean |
isClassLiteral() |
boolean |
isDeepProperty() |
boolean |
isFqcn() |
boolean |
isInput() |
boolean |
isMethodCall() |
boolean |
isResolvedExternally() |
private void |
recordParametricReturnedType(java.lang.reflect.Type parametricReturnType) |
private void |
recordTypeParmsForProperty(java.lang.String property) |
private java.lang.Class<?> |
returnGenericType(java.lang.reflect.Method m) |
void |
setCtx(java.lang.Class ctx) |
void |
setInputs(java.util.List<java.lang.String> inputs) |
private static java.lang.Class<?> |
type2Class(java.lang.reflect.Type type) |
capture, findLastUnion, nextSubToken, scanTo, tryStaticAccess, whiteSpaceSkip
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
private static final int DONE
private static final int NORM
private static final int METH
private static final int COL
private static final int WITH
private java.util.List<java.lang.String> inputs
private boolean first
private boolean classLiteral
private boolean resolvedExternally
private boolean methodCall
private boolean deepProperty
private boolean fqcn
private java.util.Map<java.lang.String,java.lang.reflect.Type> paramTypes
private java.lang.Class ctx
public PropertyVerifier(char[] property, ParserContext parserContext)
public PropertyVerifier(char[] property, int start, int offset, ParserContext parserContext)
public PropertyVerifier(java.lang.String property, ParserContext parserContext)
public PropertyVerifier(java.lang.String property, ParserContext parserContext, java.lang.Class root)
public java.util.List<java.lang.String> getInputs()
public void setInputs(java.util.List<java.lang.String> inputs)
public java.lang.Class analyze()
private void recordTypeParmsForProperty(java.lang.String property)
private java.lang.Class getBeanProperty(java.lang.Class ctx, java.lang.String property)
ctx
- - the ingress typeproperty
- - the property componentprivate java.lang.Class getReturnType(java.lang.Class context, java.lang.reflect.Method m)
private void recordParametricReturnedType(java.lang.reflect.Type parametricReturnType)
private java.lang.Class<?> returnGenericType(java.lang.reflect.Method m)
private java.lang.Class getCollectionProperty(java.lang.Class ctx, java.lang.String property)
ctx
- - the ingress typeproperty
- - the property componentprivate java.lang.Class getMethod(java.lang.Class ctx, java.lang.String name)
ctx
- - the ingress typename
- - the property componentprivate static java.lang.Class<?> type2Class(java.lang.reflect.Type type)
private java.lang.Class getWithProperty(java.lang.Class ctx)
public boolean isResolvedExternally()
public boolean isClassLiteral()
public boolean isDeepProperty()
public boolean isInput()
public boolean isMethodCall()
public boolean isFqcn()
public java.lang.Class getCtx()
public void setCtx(java.lang.Class ctx)