public class DynamicOptimizer extends AbstractOptimizer implements AccessorOptimizer
Modifier and Type | Field and 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 |
BEAN, COL, collection, currType, METH, nullSafe, staticAccess, tkStart, WITH
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_OVERFLOW, OP_RESET_FRAME, OP_TERMINATE, OPERATORS, pCtx, REMOVE, SET, splitAccumulator, st, start, stk, variableFactory
Constructor and Description |
---|
DynamicOptimizer() |
Modifier and Type | Method and 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) |
capture, findLastUnion, nextSubToken, scanTo, tryStaticAccess, whiteSpaceSkip
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
private AccessorOptimizer firstStage
private static final java.lang.Object oLock
private static volatile DynamicClassLoader classLoader
public static int tenuringThreshold
public static long timeSpan
public static int maximumTenure
public static int totalRecycled
private static volatile boolean useSafeClassloading
private static java.util.concurrent.locks.ReadWriteLock lock
private static java.util.concurrent.locks.Lock readLock
private static java.util.concurrent.locks.Lock writeLock
public static final int REGULAR_ACCESSOR
public static final int SET_ACCESSOR
public static final int COLLECTION
public static final int OBJ_CREATION
public void init()
init
in interface AccessorOptimizer
private static void _init()
public static void enforceTenureLimit()
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)
optimizeAccessor
in interface AccessorOptimizer
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)
optimizeSetAccessor
in interface AccessorOptimizer
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)
optimizeCollection
in interface AccessorOptimizer
public Accessor optimizeObjectCreation(ParserContext pCtx, char[] property, int start, int offset, java.lang.Object ctx, java.lang.Object thisRef, VariableResolverFactory factory)
optimizeObjectCreation
in interface AccessorOptimizer
public static boolean isOverloaded()
public java.lang.Object getResultOptPass()
getResultOptPass
in interface AccessorOptimizer
public java.lang.Class getEgressType()
getEgressType
in interface AccessorOptimizer
public boolean isLiteralOnly()
isLiteralOnly
in interface AccessorOptimizer