public class InstructionSequenceMatcher extends SimplifiedVisitor implements InstructionVisitor, ConstantVisitor
| Modifier and Type | Field and Description |
|---|---|
static int |
A |
static int |
B |
static int |
C |
static int |
D |
static int |
X |
static int |
Y |
static int |
Z |
| Constructor and Description |
|---|
InstructionSequenceMatcher(Constant[] patternConstants,
Instruction[] patternInstructions)
Creates a new InstructionSequenceMatcher.
|
| Modifier and Type | Method and Description |
|---|---|
int |
instructionCount()
Returns the number of instructions in the pattern sequence.
|
boolean |
isMatching()
Returns whether the complete pattern sequence has been matched.
|
int |
matchedArgument(int argument)
Returns the value of the specified matched argument (wildcard or not).
|
int[] |
matchedArguments(int[] arguments)
Returns the values of the specified matched arguments (wildcard or not).
|
int |
matchedBranchOffset(int offset,
int branchOffset)
Returns the value of the specified matched branch offset (wildcard or
not).
|
int |
matchedConstantIndex(int constantIndex)
Returns the index of the specified matched constant (wildcard or not).
|
int |
matchedInstructionOffset(int index)
Returns the matched instruction offset of the specified pattern
instruction.
|
int[] |
matchedJumpOffsets(int offset,
int[] jumpOffsets)
Returns the values of the specified matched jump offsets (wildcard or
not).
|
void |
reset()
Starts matching from the first instruction again next time.
|
void |
visitAnyRefConstant(Clazz clazz,
RefConstant refConstant)
Visits any type of RefConstant of the given class.
|
void |
visitBranchInstruction(Clazz clazz,
Method method,
CodeAttribute codeAttribute,
int offset,
BranchInstruction branchInstruction) |
void |
visitClassConstant(Clazz clazz,
ClassConstant classConstant) |
void |
visitConstantInstruction(Clazz clazz,
Method method,
CodeAttribute codeAttribute,
int offset,
ConstantInstruction constantInstruction) |
void |
visitDoubleConstant(Clazz clazz,
DoubleConstant doubleConstant) |
void |
visitFloatConstant(Clazz clazz,
FloatConstant floatConstant) |
void |
visitIntegerConstant(Clazz clazz,
IntegerConstant integerConstant) |
void |
visitInvokeDynamicConstant(Clazz clazz,
InvokeDynamicConstant invokeDynamicConstant) |
void |
visitLongConstant(Clazz clazz,
LongConstant longConstant) |
void |
visitLookUpSwitchInstruction(Clazz clazz,
Method method,
CodeAttribute codeAttribute,
int offset,
LookUpSwitchInstruction lookUpSwitchInstruction) |
void |
visitMethodHandleConstant(Clazz clazz,
MethodHandleConstant methodHandleConstant) |
void |
visitMethodTypeConstant(Clazz clazz,
MethodTypeConstant methodTypeConstant) |
void |
visitNameAndTypeConstant(Clazz clazz,
NameAndTypeConstant nameAndTypeConstant) |
void |
visitSimpleInstruction(Clazz clazz,
Method method,
CodeAttribute codeAttribute,
int offset,
SimpleInstruction simpleInstruction) |
void |
visitStringConstant(Clazz clazz,
StringConstant stringConstant) |
void |
visitTableSwitchInstruction(Clazz clazz,
Method method,
CodeAttribute codeAttribute,
int offset,
TableSwitchInstruction tableSwitchInstruction) |
void |
visitUtf8Constant(Clazz clazz,
Utf8Constant utf8Constant) |
void |
visitVariableInstruction(Clazz clazz,
Method method,
CodeAttribute codeAttribute,
int offset,
VariableInstruction variableInstruction) |
boolean |
wasConstant(int argument)
Returns whether the specified wildcard argument was a constant from
the constant pool in the most recent match.
|
visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotationDefaultAttribute, visitAnnotationElementValue, visitAnyAnnotationsAttribute, visitAnyAttribute, visitAnyClass, visitAnyConstant, visitAnyElementValue, visitAnyInstruction, visitAnyMember, visitAnyMethodrefConstant, visitAnyParameterAnnotationsAttribute, visitAnyStackMapFrame, visitAnySwitchInstruction, visitAnyTargetInfo, visitAnyTypeAnnotationsAttribute, visitAnyVerificationType, visitArrayElementValue, visitBootstrapMethodsAttribute, visitCatchTargetInfo, visitClassElementValue, visitCodeAttribute, visitConstantElementValue, visitConstantValueAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDoubleType, visitEmptyTargetInfo, visitEmptyTargetInfo, visitEmptyTargetInfo, visitEnclosingMethodAttribute, visitEnumConstantElementValue, visitExceptionsAttribute, visitFieldrefConstant, visitFloatType, visitFormalParameterTargetInfo, visitFullFrame, visitInnerClassesAttribute, visitIntegerType, visitInterfaceMethodrefConstant, visitLessZeroFrame, visitLibraryClass, visitLibraryField, visitLibraryMember, visitLibraryMethod, visitLineNumberTableAttribute, visitLocalVariableTableAttribute, visitLocalVariableTargetInfo, visitLocalVariableTypeTableAttribute, visitLongType, visitMethodParametersAttribute, visitMethodrefConstant, visitMoreZeroFrame, 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, visitSourceDirAttribute, visitSourceFileAttribute, visitStackDoubleType, visitStackFloatType, visitStackIntegerType, visitStackLongType, visitStackMapAttribute, visitStackMapTableAttribute, visitStackNullType, visitStackObjectType, visitStackTopType, visitStackUninitializedThisType, visitStackUninitializedType, visitSuperTypeTargetInfo, visitSyntheticAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitThrowsTargetInfo, visitTopType, visitTypeAnnotation, visitTypeAnnotation, visitTypeAnnotation, visitTypeAnnotation, visitTypeAnnotation, visitTypeAnnotation, visitTypeArgumentTargetInfo, visitTypeParameterBoundTargetInfo, visitTypeParameterBoundTargetInfo, visitTypeParameterBoundTargetInfo, visitTypeParameterBoundTargetInfo, visitTypeParameterTargetInfo, visitTypeParameterTargetInfo, visitTypePathInfo, visitTypePathInfo, visitTypePathInfo, visitTypePathInfo, visitTypePathInfo, visitUninitializedThisType, visitUninitializedType, visitUnknownAttribute, visitVariablesDoubleType, visitVariablesFloatType, visitVariablesIntegerType, visitVariablesLongType, visitVariablesNullType, visitVariablesObjectType, visitVariablesTopType, visitVariablesUninitializedThisType, visitVariablesUninitializedTypeclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitvisitFieldrefConstant, visitInterfaceMethodrefConstant, visitMethodrefConstantpublic static final int X
public static final int Y
public static final int Z
public static final int A
public static final int B
public static final int C
public static final int D
public InstructionSequenceMatcher(Constant[] patternConstants, Instruction[] patternInstructions)
patternConstants - any constants referenced by the pattern
instruction.patternInstructions - the pattern instruction sequence.public void reset()
public boolean isMatching()
public int instructionCount()
public int matchedInstructionOffset(int index)
public boolean wasConstant(int argument)
public int matchedArgument(int argument)
public int[] matchedArguments(int[] arguments)
public int matchedConstantIndex(int constantIndex)
public int matchedBranchOffset(int offset,
int branchOffset)
public int[] matchedJumpOffsets(int offset,
int[] jumpOffsets)
public void visitSimpleInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, SimpleInstruction simpleInstruction)
visitSimpleInstruction in interface InstructionVisitorvisitSimpleInstruction in class SimplifiedVisitorpublic void visitVariableInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, VariableInstruction variableInstruction)
visitVariableInstruction in interface InstructionVisitorvisitVariableInstruction in class SimplifiedVisitorpublic void visitConstantInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, ConstantInstruction constantInstruction)
visitConstantInstruction in interface InstructionVisitorvisitConstantInstruction in class SimplifiedVisitorpublic void visitBranchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, BranchInstruction branchInstruction)
visitBranchInstruction in interface InstructionVisitorvisitBranchInstruction in class SimplifiedVisitorpublic void visitTableSwitchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, TableSwitchInstruction tableSwitchInstruction)
visitTableSwitchInstruction in interface InstructionVisitorvisitTableSwitchInstruction in class SimplifiedVisitorpublic void visitLookUpSwitchInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, LookUpSwitchInstruction lookUpSwitchInstruction)
visitLookUpSwitchInstruction in interface InstructionVisitorvisitLookUpSwitchInstruction in class SimplifiedVisitorpublic void visitIntegerConstant(Clazz clazz, IntegerConstant integerConstant)
visitIntegerConstant in interface ConstantVisitorvisitIntegerConstant in class SimplifiedVisitorpublic void visitLongConstant(Clazz clazz, LongConstant longConstant)
visitLongConstant in interface ConstantVisitorvisitLongConstant in class SimplifiedVisitorpublic void visitFloatConstant(Clazz clazz, FloatConstant floatConstant)
visitFloatConstant in interface ConstantVisitorvisitFloatConstant in class SimplifiedVisitorpublic void visitDoubleConstant(Clazz clazz, DoubleConstant doubleConstant)
visitDoubleConstant in interface ConstantVisitorvisitDoubleConstant in class SimplifiedVisitorpublic void visitStringConstant(Clazz clazz, StringConstant stringConstant)
visitStringConstant in interface ConstantVisitorvisitStringConstant in class SimplifiedVisitorpublic void visitUtf8Constant(Clazz clazz, Utf8Constant utf8Constant)
visitUtf8Constant in interface ConstantVisitorvisitUtf8Constant in class SimplifiedVisitorpublic void visitInvokeDynamicConstant(Clazz clazz, InvokeDynamicConstant invokeDynamicConstant)
visitInvokeDynamicConstant in interface ConstantVisitorvisitInvokeDynamicConstant in class SimplifiedVisitorpublic void visitMethodHandleConstant(Clazz clazz, MethodHandleConstant methodHandleConstant)
visitMethodHandleConstant in interface ConstantVisitorvisitMethodHandleConstant in class SimplifiedVisitorpublic void visitAnyRefConstant(Clazz clazz, RefConstant refConstant)
SimplifiedVisitorvisitAnyRefConstant in class SimplifiedVisitorpublic void visitClassConstant(Clazz clazz, ClassConstant classConstant)
visitClassConstant in interface ConstantVisitorvisitClassConstant in class SimplifiedVisitorpublic void visitMethodTypeConstant(Clazz clazz, MethodTypeConstant methodTypeConstant)
visitMethodTypeConstant in interface ConstantVisitorvisitMethodTypeConstant in class SimplifiedVisitorpublic void visitNameAndTypeConstant(Clazz clazz, NameAndTypeConstant nameAndTypeConstant)
visitNameAndTypeConstant in interface ConstantVisitorvisitNameAndTypeConstant in class SimplifiedVisitorCopyright © 2015. All Rights Reserved.