org.mvel.optimizers.impl.refl
Class ReflectiveAccessorOptimizer

java.lang.Object
  extended by org.mvel.AbstractParser
      extended by org.mvel.optimizers.AbstractOptimizer
          extended by org.mvel.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.mvel.optimizers.AbstractOptimizer
BEAN, COL, METH, start
 
Fields inherited from class org.mvel.AbstractParser
cursor, debugSymbols, expr, fields, GET, GET_OR_CREATE, greedy, 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, literalOnly, LITERALS, OPERATORS, parserContext, 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)
           
 boolean isLiteralOnly()
           
static void main(java.lang.String[] args)
           
 Accessor optimizeAccessor(char[] property, java.lang.Object ctx, java.lang.Object thisRef, VariableResolverFactory factory, boolean root)
           
 Accessor optimizeCollection(char[] property, java.lang.Object ctx, java.lang.Object thisRef, VariableResolverFactory factory)
           
 Accessor optimizeFold(char[] property, java.lang.Object ctx, java.lang.Object thisRef, VariableResolverFactory factory)
           
 Accessor optimizeObjectCreation(char[] property, java.lang.Object ctx, java.lang.Object thisRef, VariableResolverFactory factory)
           
 SetAccessor optimizeSetAccessor(char[] property, java.lang.Object ctx, java.lang.Object thisRef, VariableResolverFactory factory, boolean rootThisRef, java.lang.Object value)
           
 
Methods inherited from class org.mvel.optimizers.AbstractOptimizer
capture, containsStringLiteralTermination, nextSubToken, scanTo, tryStaticAccess, whiteSpaceSkip
 
Methods inherited from class org.mvel.AbstractParser
addFatalError, addFatalError, addWarning, blockContinues, captureToEOLorOF, captureToEOS, captureToEOT, captureTokenToEOS, contextControl, getCurrentSourceFileName, getCurrentThreadParserContext, getParserContext, handleSubstatement, handleUnion, isAt, isDebugSymbols, isNext, isRemain, isReservedWord, isStatementManuallyTerminated, lookAhead, lookAhead, lookBehind, lookBehind, newContext, newContext, nextToken, nextTokenSkipSymbols, removeContext, resetParserContext, setDebugSymbols, setExpression, setExpression, setLanguageLevel, skipToNextTokenJunction, skipWhitespace, skipWhitespaceWithLineAccounting, 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

get

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

optimizeAccessor

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

optimizeSetAccessor

public SetAccessor optimizeSetAccessor(char[] property,
                                       java.lang.Object ctx,
                                       java.lang.Object thisRef,
                                       VariableResolverFactory factory,
                                       boolean rootThisRef,
                                       java.lang.Object value)
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

main

public static void main(java.lang.String[] args)

optimizeCollection

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

optimizeObjectCreation

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

optimizeFold

public Accessor optimizeFold(char[] property,
                             java.lang.Object ctx,
                             java.lang.Object thisRef,
                             VariableResolverFactory factory)
Specified by:
optimizeFold 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