org.mvel2.optimizers.impl.refl
public class ReflectiveAccessorOptimizer extends AbstractOptimizer implements AccessorOptimizer
BEAN, COL, collection, currType, METH, nullSafe, start, WITH
compileMode, cursor, debugSymbols, dStack, 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_OVERFLOW, OP_RESET_FRAME, OP_TERMINATE, OPERATORS, parserContext, pCtx, REMOVE, SET, splitAccumulator, stk
Constructor and Description |
---|
ReflectiveAccessorOptimizer() |
Modifier and Type | Method and Description |
---|---|
AccessorNode |
compileConstructor(char[] expression,
java.lang.Object ctx,
VariableResolverFactory vars) |
static java.lang.Object |
get(java.lang.String expression,
java.lang.Object ctx) |
java.lang.Class |
getEgressType() |
java.lang.Object |
getResultOptPass() |
java.lang.Object |
getValue(java.lang.Object ctx,
java.lang.Object elCtx,
VariableResolverFactory variableFactory) |
void |
init() |
boolean |
isLiteralOnly() |
Accessor |
optimizeAccessor(ParserContext pCtx,
char[] property,
java.lang.Object ctx,
java.lang.Object thisRef,
VariableResolverFactory factory,
boolean root,
java.lang.Class ingressType) |
Accessor |
optimizeCollection(ParserContext pCtx,
java.lang.Object o,
java.lang.Class type,
char[] property,
java.lang.Object ctx,
java.lang.Object thisRef,
VariableResolverFactory factory) |
Accessor |
optimizeObjectCreation(ParserContext pCtx,
char[] property,
java.lang.Object ctx,
java.lang.Object thisRef,
VariableResolverFactory factory) |
Accessor |
optimizeSetAccessor(ParserContext pCtx,
char[] property,
java.lang.Object ctx,
java.lang.Object thisRef,
VariableResolverFactory factory,
boolean rootThisRef,
java.lang.Object value,
java.lang.Class ingressType) |
void |
propHandlerSet(java.lang.String property,
java.lang.Object ctx,
java.lang.Class handler,
java.lang.Object value) |
capture, findLastUnion, nextSubToken, scanTo, tryStaticAccess, whiteSpaceSkip
addFatalError, addFatalError, addWarning, arithmeticFunctionReduction, captureIdentifier, captureToEOL, captureToEOS, captureToEOSorEOL, captureToEOT, captureToNextTokenJunction, contextControl, expectEOS, expectNextChar_IW, getCurrentSourceFileName, getCurrentThreadParserContext, getParserContext, getPCtx, handleSubstatement, handleUnion, ifThenElseBlockContinues, incNextNonBlank, isArithmeticOperator, isNextIdentifier, isNextIdentifierOrLiteral, isStatementNotManuallyTerminated, lastNonWhite, loadLanguageFeaturesByLevel, lookAhead, lookAhead, lookBehind, lookToLast, newContext, newContext, nextNonBlank, nextToken, nextTokenSkipSymbols, reduce, removeContext, resetParserContext, setCurrentThreadParserContext, setExpression, setExpression, setLanguageLevel, setPCtx, setupParser, skipWhitespace, tokenContinues, trimLeft, trimRight, trimWhitespace
public void init()
init
in interface AccessorOptimizer
public static java.lang.Object get(java.lang.String expression, java.lang.Object ctx)
public Accessor optimizeAccessor(ParserContext pCtx, char[] property, java.lang.Object ctx, java.lang.Object thisRef, VariableResolverFactory factory, boolean root, java.lang.Class ingressType)
optimizeAccessor
in interface AccessorOptimizer
public Accessor optimizeSetAccessor(ParserContext pCtx, char[] property, java.lang.Object ctx, java.lang.Object thisRef, VariableResolverFactory factory, boolean rootThisRef, java.lang.Object value, java.lang.Class ingressType)
optimizeSetAccessor
in interface AccessorOptimizer
public java.lang.Object getValue(java.lang.Object ctx, java.lang.Object elCtx, VariableResolverFactory variableFactory) throws java.lang.Exception
java.lang.Exception
public Accessor optimizeCollection(ParserContext pCtx, java.lang.Object o, java.lang.Class type, char[] property, java.lang.Object ctx, java.lang.Object thisRef, VariableResolverFactory factory)
optimizeCollection
in interface AccessorOptimizer
public Accessor optimizeObjectCreation(ParserContext pCtx, char[] property, java.lang.Object ctx, java.lang.Object thisRef, VariableResolverFactory factory)
optimizeObjectCreation
in interface AccessorOptimizer
public java.lang.Object getResultOptPass()
getResultOptPass
in interface AccessorOptimizer
public AccessorNode compileConstructor(char[] expression, java.lang.Object ctx, VariableResolverFactory vars) throws java.lang.InstantiationException, java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException, java.lang.ClassNotFoundException, java.lang.NoSuchMethodException
java.lang.InstantiationException
java.lang.IllegalAccessException
java.lang.reflect.InvocationTargetException
java.lang.ClassNotFoundException
java.lang.NoSuchMethodException
public java.lang.Class getEgressType()
getEgressType
in interface AccessorOptimizer
public boolean isLiteralOnly()
isLiteralOnly
in interface AccessorOptimizer
public void propHandlerSet(java.lang.String property, java.lang.Object ctx, java.lang.Class handler, java.lang.Object value)
Copyright © 2014. All Rights Reserved.