org.mvel2.optimizers.impl.refl
Class ReflectiveAccessorOptimizer

java.lang.Object
  extended by org.mvel2.compiler.AbstractParser
      extended by org.mvel2.optimizers.AbstractOptimizer
          extended by org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer
All Implemented Interfaces:
java.io.Serializable, AccessorOptimizer

public class ReflectiveAccessorOptimizer
extends AbstractOptimizer
implements AccessorOptimizer

See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.mvel2.optimizers.AbstractOptimizer
BEAN, COL, collection, currType, METH, nullSafe, start, WITH
 
Fields inherited from class org.mvel2.compiler.AbstractParser
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 Summary
ReflectiveAccessorOptimizer()
           
 
Method Summary
 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)
           
 
Methods inherited from class org.mvel2.optimizers.AbstractOptimizer
capture, findLastUnion, nextSubToken, scanTo, tryStaticAccess, whiteSpaceSkip
 
Methods inherited from class org.mvel2.compiler.AbstractParser
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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ReflectiveAccessorOptimizer

public ReflectiveAccessorOptimizer()
Method Detail

init

public void init()
Specified by:
init in interface AccessorOptimizer

get

public static java.lang.Object get(java.lang.String expression,
                                   java.lang.Object ctx)

optimizeAccessor

public Accessor optimizeAccessor(ParserContext pCtx,
                                 char[] property,
                                 java.lang.Object ctx,
                                 java.lang.Object thisRef,
                                 VariableResolverFactory factory,
                                 boolean root,
                                 java.lang.Class ingressType)
Specified by:
optimizeAccessor in interface AccessorOptimizer

optimizeSetAccessor

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)
Specified by:
optimizeSetAccessor in interface AccessorOptimizer

getValue

public java.lang.Object getValue(java.lang.Object ctx,
                                 java.lang.Object elCtx,
                                 VariableResolverFactory variableFactory)
                          throws java.lang.Exception
Throws:
java.lang.Exception

optimizeCollection

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)
Specified by:
optimizeCollection in interface AccessorOptimizer

optimizeObjectCreation

public Accessor optimizeObjectCreation(ParserContext pCtx,
                                       char[] property,
                                       java.lang.Object ctx,
                                       java.lang.Object thisRef,
                                       VariableResolverFactory factory)
Specified by:
optimizeObjectCreation in interface AccessorOptimizer

getResultOptPass

public java.lang.Object getResultOptPass()
Specified by:
getResultOptPass in interface AccessorOptimizer

compileConstructor

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
Throws:
java.lang.InstantiationException
java.lang.IllegalAccessException
java.lang.reflect.InvocationTargetException
java.lang.ClassNotFoundException
java.lang.NoSuchMethodException

getEgressType

public java.lang.Class getEgressType()
Specified by:
getEgressType in interface AccessorOptimizer

isLiteralOnly

public boolean isLiteralOnly()
Specified by:
isLiteralOnly in interface AccessorOptimizer

propHandlerSet

public void propHandlerSet(java.lang.String property,
                           java.lang.Object ctx,
                           java.lang.Class handler,
                           java.lang.Object value)


Copyright © 2010. All Rights Reserved.