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:
Serializable
,Parser
,AccessorOptimizer
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static DynamicClassLoader
static final int
private AccessorOptimizer
private static ReadWriteLock
static int
static final int
private static final Object
private static Lock
static final int
static final int
static int
static long
static int
private static boolean
private static Lock
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 -
Method Summary
Modifier and TypeMethodDescriptionprivate static void
_init()
static void
void
init()
boolean
static boolean
optimizeAccessor
(ParserContext pCtx, char[] property, int start, int offset, Object ctx, Object thisRef, VariableResolverFactory factory, boolean rootThisRef, Class ingressType) optimizeCollection
(ParserContext pCtx, Object rootObject, Class type, char[] property, int start, int offset, Object ctx, Object thisRef, VariableResolverFactory factory) optimizeObjectCreation
(ParserContext pCtx, char[] property, int start, int offset, Object ctx, Object thisRef, VariableResolverFactory factory) optimizeSetAccessor
(ParserContext pCtx, char[] property, int start, int offset, Object ctx, Object thisRef, VariableResolverFactory factory, boolean rootThisRef, Object value, 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 Details
-
firstStage
-
oLock
-
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
-
readLock
-
writeLock
-
REGULAR_ACCESSOR
public static final int REGULAR_ACCESSOR- See Also:
-
SET_ACCESSOR
public static final int SET_ACCESSOR- See Also:
-
COLLECTION
public static final int COLLECTION- See Also:
-
OBJ_CREATION
public static final int OBJ_CREATION- See Also:
-
-
Constructor Details
-
DynamicOptimizer
public DynamicOptimizer()
-
-
Method Details
-
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, Object ctx, Object thisRef, VariableResolverFactory factory, boolean rootThisRef, Class ingressType) - Specified by:
optimizeAccessor
in interfaceAccessorOptimizer
-
optimizeSetAccessor
public Accessor optimizeSetAccessor(ParserContext pCtx, char[] property, int start, int offset, Object ctx, Object thisRef, VariableResolverFactory factory, boolean rootThisRef, Object value, Class valueType) - Specified by:
optimizeSetAccessor
in interfaceAccessorOptimizer
-
optimizeCollection
public Accessor optimizeCollection(ParserContext pCtx, Object rootObject, Class type, char[] property, int start, int offset, Object ctx, Object thisRef, VariableResolverFactory factory) - Specified by:
optimizeCollection
in interfaceAccessorOptimizer
-
optimizeObjectCreation
public Accessor optimizeObjectCreation(ParserContext pCtx, char[] property, int start, int offset, Object ctx, Object thisRef, VariableResolverFactory factory) - Specified by:
optimizeObjectCreation
in interfaceAccessorOptimizer
-
isOverloaded
public static boolean isOverloaded() -
getResultOptPass
- Specified by:
getResultOptPass
in interfaceAccessorOptimizer
-
getEgressType
- Specified by:
getEgressType
in interfaceAccessorOptimizer
-
isLiteralOnly
public boolean isLiteralOnly()- Specified by:
isLiteralOnly
in interfaceAccessorOptimizer
-