Package org.mvel2.optimizers.dynamic
Class DynamicOptimizer
- java.lang.Object
-
- org.mvel2.compiler.AbstractParser
-
- org.mvel2.optimizers.AbstractOptimizer
-
- org.mvel2.optimizers.dynamic.DynamicOptimizer
-
- All Implemented Interfaces:
java.io.Serializable
,Parser
,AccessorOptimizer
public class DynamicOptimizer extends AbstractOptimizer implements AccessorOptimizer
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private static DynamicClassLoader
classLoader
static int
COLLECTION
private AccessorOptimizer
firstStage
private static java.util.concurrent.locks.ReadWriteLock
lock
static int
maximumTenure
static int
OBJ_CREATION
private static java.lang.Object
oLock
private static java.util.concurrent.locks.Lock
readLock
static int
REGULAR_ACCESSOR
static int
SET_ACCESSOR
static int
tenuringThreshold
static long
timeSpan
static int
totalRecycled
private static boolean
useSafeClassloading
private static java.util.concurrent.locks.Lock
writeLock
-
Fields inherited from class org.mvel2.optimizers.AbstractOptimizer
BEAN, COL, collection, currType, METH, nullSafe, staticAccess, tkStart, WITH
-
Fields inherited from class org.mvel2.compiler.AbstractParser
CLASS_LITERALS, compileMode, ctx, 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 Summary
Constructors Constructor Description DynamicOptimizer()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static void
_init()
static void
enforceTenureLimit()
java.lang.Class
getEgressType()
java.lang.Object
getResultOptPass()
void
init()
boolean
isLiteralOnly()
static boolean
isOverloaded()
Accessor
optimizeAccessor(ParserContext pCtx, char[] property, int start, int offset, java.lang.Object ctx, java.lang.Object thisRef, VariableResolverFactory factory, boolean rootThisRef, java.lang.Class ingressType)
Accessor
optimizeCollection(ParserContext pCtx, java.lang.Object rootObject, java.lang.Class type, char[] property, int start, int offset, java.lang.Object ctx, java.lang.Object thisRef, VariableResolverFactory factory)
Accessor
optimizeObjectCreation(ParserContext pCtx, char[] property, int start, int offset, java.lang.Object ctx, java.lang.Object thisRef, VariableResolverFactory factory)
Accessor
optimizeSetAccessor(ParserContext pCtx, char[] property, int start, int offset, java.lang.Object ctx, java.lang.Object thisRef, VariableResolverFactory factory, boolean rootThisRef, java.lang.Object value, java.lang.Class valueType)
-
Methods inherited from class org.mvel2.optimizers.AbstractOptimizer
capture, findLastUnion, nextSubToken, scanTo, tryStaticAccess, whiteSpaceSkip
-
Methods inherited from class org.mvel2.compiler.AbstractParser
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
-
-
-
-
Field Detail
-
firstStage
private AccessorOptimizer firstStage
-
oLock
private static final java.lang.Object oLock
-
classLoader
private static volatile DynamicClassLoader classLoader
-
tenuringThreshold
public static int tenuringThreshold
-
timeSpan
public static long timeSpan
-
maximumTenure
public static int maximumTenure
-
totalRecycled
public static int totalRecycled
-
useSafeClassloading
private static volatile boolean useSafeClassloading
-
lock
private static java.util.concurrent.locks.ReadWriteLock lock
-
readLock
private static java.util.concurrent.locks.Lock readLock
-
writeLock
private static java.util.concurrent.locks.Lock writeLock
-
REGULAR_ACCESSOR
public static final int REGULAR_ACCESSOR
- See Also:
- Constant Field Values
-
SET_ACCESSOR
public static final int SET_ACCESSOR
- See Also:
- Constant Field Values
-
COLLECTION
public static final int COLLECTION
- See Also:
- Constant Field Values
-
OBJ_CREATION
public static final int OBJ_CREATION
- See Also:
- Constant Field Values
-
-
Method Detail
-
init
public void init()
- Specified by:
init
in interfaceAccessorOptimizer
-
_init
private static void _init()
-
enforceTenureLimit
public static void enforceTenureLimit()
-
optimizeAccessor
public Accessor optimizeAccessor(ParserContext pCtx, char[] property, int start, int offset, java.lang.Object ctx, java.lang.Object thisRef, VariableResolverFactory factory, boolean rootThisRef, java.lang.Class ingressType)
- Specified by:
optimizeAccessor
in interfaceAccessorOptimizer
-
optimizeSetAccessor
public Accessor optimizeSetAccessor(ParserContext pCtx, char[] property, int start, int offset, java.lang.Object ctx, java.lang.Object thisRef, VariableResolverFactory factory, boolean rootThisRef, java.lang.Object value, java.lang.Class valueType)
- Specified by:
optimizeSetAccessor
in interfaceAccessorOptimizer
-
optimizeCollection
public Accessor optimizeCollection(ParserContext pCtx, java.lang.Object rootObject, java.lang.Class type, char[] property, int start, int offset, java.lang.Object ctx, java.lang.Object thisRef, VariableResolverFactory factory)
- Specified by:
optimizeCollection
in interfaceAccessorOptimizer
-
optimizeObjectCreation
public Accessor optimizeObjectCreation(ParserContext pCtx, char[] property, int start, int offset, java.lang.Object ctx, java.lang.Object thisRef, VariableResolverFactory factory)
- Specified by:
optimizeObjectCreation
in interfaceAccessorOptimizer
-
isOverloaded
public static boolean isOverloaded()
-
getResultOptPass
public java.lang.Object getResultOptPass()
- Specified by:
getResultOptPass
in interfaceAccessorOptimizer
-
getEgressType
public java.lang.Class getEgressType()
- Specified by:
getEgressType
in interfaceAccessorOptimizer
-
isLiteralOnly
public boolean isLiteralOnly()
- Specified by:
isLiteralOnly
in interfaceAccessorOptimizer
-
-