org.mvel2.optimizers.impl.asm
Class ASMAccessorOptimizer

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

public class ASMAccessorOptimizer
extends AbstractOptimizer
implements AccessorOptimizer

Implementation of the MVEL Just-in-Time (JIT) compiler for Property Accessors using the ASM bytecode engineering library.

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
ASMAccessorOptimizer()
           
 
Method Summary
 void arrayStore(java.lang.Class cls)
           
 java.lang.Class getEgressType()
           
static MVELClassLoader getMVELClassLoader()
           
 java.lang.String getName()
           
 java.lang.Object getResultOptPass()
           
 void init()
           
 boolean isLiteralOnly()
           
 Accessor optimizeAccessor(ParserContext pCtx, char[] property, java.lang.Object staticContext, 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)
           
static void setMVELClassLoader(MVELClassLoader cl)
           
 void wrapRuntimeConverstion(java.lang.Class toType)
           
 
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

ASMAccessorOptimizer

public ASMAccessorOptimizer()
Method Detail

optimizeAccessor

public Accessor optimizeAccessor(ParserContext pCtx,
                                 char[] property,
                                 java.lang.Object staticContext,
                                 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

setMVELClassLoader

public static void setMVELClassLoader(MVELClassLoader cl)

getMVELClassLoader

public static MVELClassLoader getMVELClassLoader()

init

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

getName

public java.lang.String getName()

getResultOptPass

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

arrayStore

public void arrayStore(java.lang.Class cls)

wrapRuntimeConverstion

public void wrapRuntimeConverstion(java.lang.Class toType)

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

getEgressType

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

isLiteralOnly

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


Copyright © 2010. All Rights Reserved.