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, WITHCLASS_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 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, whiteSpaceSkipaddFatalError, 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, trimWhitespaceprivate 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 AccessorOptimizerprivate 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 AccessorOptimizerpublic 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 AccessorOptimizerpublic 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 AccessorOptimizerpublic Accessor optimizeObjectCreation(ParserContext pCtx, char[] property, int start, int offset, java.lang.Object ctx, java.lang.Object thisRef, VariableResolverFactory factory)
optimizeObjectCreation in interface AccessorOptimizerpublic static boolean isOverloaded()
public java.lang.Object getResultOptPass()
getResultOptPass in interface AccessorOptimizerpublic java.lang.Class getEgressType()
getEgressType in interface AccessorOptimizerpublic boolean isLiteralOnly()
isLiteralOnly in interface AccessorOptimizer