public class PartialEvaluator extends SimplifiedVisitor implements AttributeVisitor, ExceptionInfoVisitor
| Modifier and Type | Field and Description |
|---|---|
static int |
AT_CATCH_ENTRY |
static int |
AT_METHOD_ENTRY |
static int |
NONE |
| Constructor and Description |
|---|
PartialEvaluator()
Creates a simple PartialEvaluator.
|
PartialEvaluator(ValueFactory valueFactory,
InvocationUnit invocationUnit,
boolean evaluateAllCode)
Creates a new PartialEvaluator.
|
| Modifier and Type | Method and Description |
|---|---|
InstructionOffsetValue |
branchOrigins(int instructionOffset)
Returns the instruction offsets that branch to the given instruction
offset.
|
InstructionOffsetValue |
branchTargets(int instructionOffset)
Returns the instruction offsets to which the given instruction offset
branches.
|
int |
creationOffset(int offset)
Returns the offset of the 'new' instruction that corresponds to the
invocation of the instance initializer at the given offset, or
AT_METHOD_ENTRY if the invocation is calling the "super" or
"this" initializer method, , or NONE if it is not a 'new'
instruction. |
TracedStack |
getStackAfter(int instructionOffset)
Returns the stack after execution of the instruction at the given
offset.
|
TracedStack |
getStackBefore(int instructionOffset)
Returns the stack before execution of the instruction at the given
offset.
|
TracedVariables |
getVariablesAfter(int instructionOffset)
Returns the variables after execution of the instruction at the given
offset.
|
TracedVariables |
getVariablesBefore(int instructionOffset)
Returns the variables before execution of the instruction at the given
offset.
|
int |
initializationOffset(int instructionOffset)
Returns the instruction offset at which the object instance that is
created at the given 'new' instruction offset is initialized, or
NONE if it is not being created. |
boolean |
isBranchOrExceptionTarget(int instructionOffset)
Returns whether the instruction at the given offset is the target of a
branch instruction or an exception.
|
boolean |
isInitializer()
Returns whether the method is an instance initializer.
|
boolean |
isInstruction(int instructionOffset)
Returns whether there is an instruction at the given offset.
|
boolean |
isSubroutine(int instructionOffset)
Returns whether the instruction at the given offset is part of a
subroutine.
|
boolean |
isSubroutineInvocation(int instructionOffset)
Returns whether the instruction at the given offset is a subroutine
invocation.
|
boolean |
isSubroutineReturning(int instructionOffset)
Returns whether the subroutine at the given offset is ever returning
by means of a regular 'ret' instruction.
|
boolean |
isSubroutineStart(int instructionOffset)
Returns whether the instruction at the given offset is the start of a
subroutine.
|
boolean |
isTraced(int instructionOffset)
Returns whether the instruction at the given offset has ever been
executed during the partial evaluation.
|
boolean |
isTraced(int startOffset,
int endOffset)
Returns whether a block of instructions is ever used.
|
int |
subroutineEnd(int instructionOffset)
Returns the offset after the subroutine that starts at the given
offset.
|
int |
superInitializationOffset()
Returns the instruction offset at which this initializer is calling
the "super" or "this" initializer method, or
NONE if it is
not an initializer. |
void |
visitAnyAttribute(Clazz clazz,
Attribute attribute)
Visit any type of attribute.
|
void |
visitCodeAttribute(Clazz clazz,
Method method,
CodeAttribute codeAttribute) |
void |
visitCodeAttribute0(Clazz clazz,
Method method,
CodeAttribute codeAttribute) |
void |
visitExceptionInfo(Clazz clazz,
Method method,
CodeAttribute codeAttribute,
ExceptionInfo exceptionInfo) |
visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotationDefaultAttribute, visitAnnotationElementValue, visitAnyAnnotationsAttribute, visitAnyClass, visitAnyConstant, visitAnyElementValue, visitAnyInstruction, visitAnyMember, visitAnyMethodrefConstant, visitAnyParameterAnnotationsAttribute, visitAnyRefConstant, visitAnyStackMapFrame, visitAnySwitchInstruction, visitAnyTargetInfo, visitAnyTypeAnnotationsAttribute, visitAnyVerificationType, visitArrayElementValue, visitBootstrapMethodsAttribute, visitBranchInstruction, visitCatchTargetInfo, visitClassConstant, visitClassElementValue, visitConstantElementValue, visitConstantInstruction, visitConstantValueAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDoubleConstant, visitDoubleType, visitEmptyTargetInfo, visitEmptyTargetInfo, visitEmptyTargetInfo, visitEnclosingMethodAttribute, visitEnumConstantElementValue, visitExceptionsAttribute, visitFieldrefConstant, visitFloatConstant, visitFloatType, visitFormalParameterTargetInfo, visitFullFrame, visitInnerClassesAttribute, visitIntegerConstant, visitIntegerType, visitInterfaceMethodrefConstant, visitInvokeDynamicConstant, visitLessZeroFrame, visitLibraryClass, visitLibraryField, visitLibraryMember, visitLibraryMethod, visitLineNumberTableAttribute, visitLocalVariableTableAttribute, visitLocalVariableTargetInfo, visitLocalVariableTypeTableAttribute, visitLongConstant, visitLongType, visitLookUpSwitchInstruction, visitMethodHandleConstant, visitMethodParametersAttribute, visitMethodrefConstant, visitMethodTypeConstant, visitMoreZeroFrame, visitNameAndTypeConstant, visitNullType, visitObjectType, visitOffsetTargetInfo, visitProgramClass, visitProgramField, visitProgramMember, visitProgramMethod, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleParameterAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleParameterAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitSameOneFrame, visitSameZeroFrame, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSimpleInstruction, visitSourceDirAttribute, visitSourceFileAttribute, visitStackDoubleType, visitStackFloatType, visitStackIntegerType, visitStackLongType, visitStackMapAttribute, visitStackMapTableAttribute, visitStackNullType, visitStackObjectType, visitStackTopType, visitStackUninitializedThisType, visitStackUninitializedType, visitStringConstant, visitSuperTypeTargetInfo, visitSyntheticAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitTableSwitchInstruction, visitThrowsTargetInfo, visitTopType, visitTypeAnnotation, visitTypeAnnotation, visitTypeAnnotation, visitTypeAnnotation, visitTypeAnnotation, visitTypeAnnotation, visitTypeArgumentTargetInfo, visitTypeParameterBoundTargetInfo, visitTypeParameterBoundTargetInfo, visitTypeParameterBoundTargetInfo, visitTypeParameterBoundTargetInfo, visitTypeParameterTargetInfo, visitTypeParameterTargetInfo, visitTypePathInfo, visitTypePathInfo, visitTypePathInfo, visitTypePathInfo, visitTypePathInfo, visitUninitializedThisType, visitUninitializedType, visitUnknownAttribute, visitUtf8Constant, visitVariableInstruction, visitVariablesDoubleType, visitVariablesFloatType, visitVariablesIntegerType, visitVariablesLongType, visitVariablesNullType, visitVariablesObjectType, visitVariablesTopType, visitVariablesUninitializedThisType, visitVariablesUninitializedTypeclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitvisitAnnotationDefaultAttribute, visitBootstrapMethodsAttribute, visitConstantValueAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitEnclosingMethodAttribute, visitExceptionsAttribute, visitInnerClassesAttribute, visitLineNumberTableAttribute, visitLocalVariableTableAttribute, visitLocalVariableTypeTableAttribute, visitMethodParametersAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleParameterAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleParameterAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSourceDirAttribute, visitSourceFileAttribute, visitStackMapAttribute, visitStackMapTableAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitUnknownAttributepublic static final int NONE
public static final int AT_METHOD_ENTRY
public static final int AT_CATCH_ENTRY
public PartialEvaluator()
public PartialEvaluator(ValueFactory valueFactory, InvocationUnit invocationUnit, boolean evaluateAllCode)
valueFactory - the value factory that will create all values
during evaluation.invocationUnit - the invocation unit that will handle all
communication with other fields and methods.evaluateAllCode - a flag that specifies whether all casts, branch
targets, and exception handlers should be
evaluated, even if they are unnecessary or
unreachable.public void visitAnyAttribute(Clazz clazz, Attribute attribute)
SimplifiedVisitorvisitAnyAttribute in class SimplifiedVisitorpublic void visitCodeAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute)
visitCodeAttribute in interface AttributeVisitorvisitCodeAttribute in class SimplifiedVisitorpublic void visitCodeAttribute0(Clazz clazz, Method method, CodeAttribute codeAttribute)
public boolean isTraced(int startOffset,
int endOffset)
public boolean isTraced(int instructionOffset)
public boolean isInstruction(int instructionOffset)
public boolean isBranchOrExceptionTarget(int instructionOffset)
public boolean isSubroutineStart(int instructionOffset)
public boolean isSubroutineInvocation(int instructionOffset)
public boolean isSubroutine(int instructionOffset)
public boolean isSubroutineReturning(int instructionOffset)
public int subroutineEnd(int instructionOffset)
public int initializationOffset(int instructionOffset)
NONE if it is not being created.public boolean isInitializer()
public int superInitializationOffset()
NONE if it is
not an initializer.public int creationOffset(int offset)
AT_METHOD_ENTRY if the invocation is calling the "super" or
"this" initializer method, , or NONE if it is not a 'new'
instruction.public TracedVariables getVariablesBefore(int instructionOffset)
public TracedVariables getVariablesAfter(int instructionOffset)
public TracedStack getStackBefore(int instructionOffset)
public TracedStack getStackAfter(int instructionOffset)
public InstructionOffsetValue branchOrigins(int instructionOffset)
public InstructionOffsetValue branchTargets(int instructionOffset)
public void visitExceptionInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, ExceptionInfo exceptionInfo)
visitExceptionInfo in interface ExceptionInfoVisitorCopyright © 2015. All Rights Reserved.