public class PreorderVisitor extends BetterVisitor implements Constants2
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_SYPER, ACC_TRANSIENT, ACC_VARARGS, ACC_VOLATILE, ACCESS_NAMES, ACONST_NULL, ALOAD, ALOAD_0, ALOAD_1, ALOAD_2, ALOAD_3, ANEWARRAY, ANEWARRAY_QUICK, APPEND_FRAME, APPEND_FRAME_MAX, ARETURN, ARRAYLENGTH, ASTORE, ASTORE_0, ASTORE_1, ASTORE_2, ASTORE_3, ATHROW, ATTR_ANNOTATION_DEFAULT, ATTR_CODE, ATTR_CONSTANT_VALUE, ATTR_DEPRECATED, ATTR_ENCLOSING_METHOD, ATTR_EXCEPTIONS, ATTR_INNER_CLASSES, ATTR_LINE_NUMBER_TABLE, ATTR_LOCAL_VARIABLE_TABLE, ATTR_LOCAL_VARIABLE_TYPE_TABLE, ATTR_PMG, ATTR_RUNTIME_VISIBLE_ANNOTATIONS, ATTR_RUNTIME_VISIBLE_PARAMETER_ANNOTATIONS, ATTR_RUNTIMEIN_VISIBLE_ANNOTATIONS, ATTR_RUNTIMEIN_VISIBLE_PARAMETER_ANNOTATIONS, ATTR_SIGNATURE, ATTR_SOURCE_FILE, ATTR_STACK_MAP, ATTR_STACK_MAP_TABLE, ATTR_SYNTHETIC, ATTR_UNKNOWN, ATTRIBUTE_NAMES, BALOAD, BASTORE, BIPUSH, BREAKPOINT, CALOAD, CASTORE, CHECKCAST, CHECKCAST_QUICK, CHOP_FRAME, CHOP_FRAME_MAX, CLASS_TYPE_NAMES, CONSTANT_Class, CONSTANT_Double, CONSTANT_Fieldref, CONSTANT_Float, CONSTANT_Integer, CONSTANT_InterfaceMethodref, CONSTANT_InvokeDynamic, CONSTANT_Long, CONSTANT_MethodHandle, CONSTANT_Methodref, CONSTANT_MethodType, CONSTANT_NameAndType, CONSTANT_NAMES, CONSTANT_String, CONSTANT_Utf8, CONSTRUCTOR_NAME, CONSUME_STACK, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DLOAD_0, DLOAD_1, DLOAD_2, DLOAD_3, DMUL, DNEG, DREM, DRETURN, DSTORE, DSTORE_0, DSTORE_1, DSTORE_2, DSTORE_3, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAD_0, FLOAD_1, FLOAD_2, FLOAD_3, FMUL, FNEG, FREM, FRETURN, FSTORE, FSTORE_0, FSTORE_1, FSTORE_2, FSTORE_3, FSUB, FULL_FRAME, GETFIELD, GETFIELD_QUICK, GETFIELD_QUICK_W, GETFIELD2_QUICK, GETSTATIC, GETSTATIC_QUICK, GETSTATIC2_QUICK, GOTO, GOTO_W, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILLEGAL_OPCODE, ILLEGAL_TYPE, ILOAD, ILOAD_0, ILOAD_1, ILOAD_2, ILOAD_3, IMPDEP1, IMPDEP2, IMUL, INEG, INSTANCEOF, INSTANCEOF_QUICK, INT2BYTE, INT2CHAR, INT2SHORT, INTERFACES_IMPLEMENTED_BY_ARRAYS, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKEINTERFACE_QUICK, INVOKENONVIRTUAL, INVOKENONVIRTUAL_QUICK, INVOKESPECIAL, INVOKESTATIC, INVOKESTATIC_QUICK, INVOKESUPER_QUICK, INVOKEVIRTUAL, INVOKEVIRTUAL_QUICK, INVOKEVIRTUAL_QUICK_W, INVOKEVIRTUALOBJECT_QUICK, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISTORE_0, ISTORE_1, ISTORE_2, ISTORE_3, ISUB, ITEM_Bogus, ITEM_Double, ITEM_Float, ITEM_InitObject, ITEM_Integer, ITEM_Long, ITEM_NAMES, ITEM_NewObject, ITEM_Null, ITEM_Object, IUSHR, IXOR, JSR, JSR_W, KNOWN_ATTRIBUTES, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDC_QUICK, LDC_W, LDC_W_QUICK, LDC2_W, LDC2_W_QUICK, LDIV, LLOAD, LLOAD_0, LLOAD_1, LLOAD_2, LLOAD_3, LMUL, LNEG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSTORE_0, LSTORE_1, LSTORE_2, LSTORE_3, LSUB, LUSHR, LXOR, MAJOR, MAJOR_1_1, MAJOR_1_2, MAJOR_1_3, MAJOR_1_4, MAJOR_1_5, MAJOR_1_6, MAJOR_1_7, MAJOR_1_8, MAX_ACC_FLAG, MAX_BYTE, MAX_CODE_SIZE, MAX_CP_ENTRIES, MAX_SHORT, MINOR, MINOR_1_1, MINOR_1_2, MINOR_1_3, MINOR_1_4, MINOR_1_5, MINOR_1_6, MINOR_1_7, MINOR_1_8, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, MULTIANEWARRAY_QUICK, NEW, NEW_QUICK, NEWARRAY, NO_OF_OPERANDS, NOP, OPCODE_NAMES, POP, POP2, PRODUCE_STACK, PUSH, PUTFIELD, PUTFIELD_QUICK, PUTFIELD_QUICK_W, PUTFIELD2_QUICK, PUTSTATIC, PUTSTATIC_QUICK, PUTSTATIC2_QUICK, RESERVED, RET, RETURN, SALOAD, SAME_FRAME, SAME_FRAME_EXTENDED, SAME_FRAME_MAX, SAME_LOCALS_1_STACK_ITEM_FRAME, SAME_LOCALS_1_STACK_ITEM_FRAME_EXTENDED, SAME_LOCALS_1_STACK_ITEM_FRAME_MAX, SASTORE, SHORT_TYPE_NAMES, SIPUSH, STATIC_INITIALIZER_NAME, SWAP, SWITCH, T_ADDRESS, T_ARRAY, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_OBJECT, T_REFERENCE, T_SHORT, T_UNKNOWN, T_VOID, TABLESWITCH, TYPE_NAMES, TYPE_OF_OPERANDS, UNDEFINED, UNPREDICTABLE, WIDE
Constructor and Description |
---|
PreorderVisitor() |
Modifier and Type | Method and Description |
---|---|
boolean |
amVisitingMainMethod() |
protected int |
asUnsignedByte(byte b) |
void |
doVisitMethod(org.apache.bcel.classfile.Method method) |
ClassDescriptor |
getClassDescriptor() |
java.lang.String |
getClassName()
Get the slash-formatted class name for the current or most recently
visited class
|
org.apache.bcel.classfile.Code |
getCode()
Return the current Code attribute; assuming one is being visited
|
org.apache.bcel.classfile.ConstantPool |
getConstantPool()
Get the constant pool for the current or most recently visited class
|
java.lang.String |
getDottedClassName()
Get the dotted class name for the current or most recently visited class
|
java.lang.String |
getDottedFieldSig()
Deprecated.
|
java.lang.String |
getDottedMethodSig()
If currently visiting a method, get the method's dotted method signature
|
java.lang.String |
getDottedSuperclassName()
Get the dotted superclass name for the current or most recently visited
class
|
org.apache.bcel.classfile.Field |
getField()
If currently visiting a field, get the field's Field object
|
FieldDescriptor |
getFieldDescriptor() |
boolean |
getFieldIsStatic()
If currently visiting a field, return whether or not the field is static
|
java.lang.String |
getFieldName()
If currently visiting a field, get the field's name
|
java.lang.String |
getFieldSig()
If currently visiting a field, get the field's slash-formatted signature
|
java.lang.String |
getFullyQualifiedFieldName()
If currently visiting a field, get the field's fully qualified name
|
java.lang.String |
getFullyQualifiedMethodName()
If currently visiting a method, get the method's fully qualified name
|
org.apache.bcel.classfile.Method |
getMethod()
If currently visiting a method, get the method's Method object
|
MethodDescriptor |
getMethodDescriptor() |
java.lang.String |
getMethodName()
If currently visiting a method, get the method's name
|
java.lang.String |
getMethodSig()
If currently visiting a method, get the method's slash-formatted
signature
|
protected java.lang.Iterable<org.apache.bcel.classfile.Method> |
getMethodVisitOrder(org.apache.bcel.classfile.JavaClass obj) |
static int |
getNumberArguments(java.lang.String signature) |
int |
getNumberMethodArguments() |
java.lang.String |
getPackageName()
Get the (slash-formatted?) package name for the current or most recently
visited class
|
int |
getSizeOfSurroundingTryBlock(int pc)
Get lines of code in try block that surround pc
|
int |
getSizeOfSurroundingTryBlock(java.lang.String vmNameOfExceptionClass,
int pc)
Get lines of code in try block that surround pc
|
java.lang.String |
getSourceFile()
Get the source file name for the current or most recently visited class
|
protected java.lang.String |
getStringFromIndex(int i) |
java.lang.String |
getSuperclassName()
Get the slash-formatted superclass name for the current or most recently
visited class
|
java.util.Set<java.lang.String> |
getSurroundingCaughtExceptions(int pc) |
java.util.Set<java.lang.String> |
getSurroundingCaughtExceptions(int pc,
int maxTryBlockSize) |
org.apache.bcel.classfile.CodeException |
getSurroundingTryBlock(int pc) |
org.apache.bcel.classfile.CodeException |
getSurroundingTryBlock(java.lang.String vmNameOfExceptionClass,
int pc) |
org.apache.bcel.classfile.JavaClass |
getThisClass()
Get the JavaClass object for the current or most recently visited class
|
XClass |
getXClass() |
XField |
getXField() |
XMethod |
getXMethod() |
static boolean |
hasInterestingClass(org.apache.bcel.classfile.ConstantPool cp,
java.util.Collection<java.lang.String> classes) |
static boolean |
hasInterestingMethod(org.apache.bcel.classfile.ConstantPool cp,
java.util.Collection<MethodDescriptor> methods)
Returns true if given constant pool probably has a reference to any of supplied methods
Useful to exclude from analysis uninteresting classes
|
protected boolean |
isVisitMethodsInCallOrder() |
void |
setupVisitorForClass(org.apache.bcel.classfile.JavaClass obj) |
protected void |
setVisitMethodsInCallOrder(boolean visitMethodsInCallOrder) |
boolean |
shouldVisit(org.apache.bcel.classfile.JavaClass obj) |
java.lang.String |
toString() |
void |
visitAfter(org.apache.bcel.classfile.Code obj)
Called after visiting a code attribute
|
void |
visitAfter(org.apache.bcel.classfile.JavaClass obj) |
void |
visitAnnotation(org.apache.bcel.classfile.Annotations arg0) |
void |
visitAnnotationDefault(org.apache.bcel.classfile.AnnotationDefault arg0) |
void |
visitAnnotationEntry(org.apache.bcel.classfile.AnnotationEntry arg0) |
void |
visitCode(org.apache.bcel.classfile.Code obj) |
void |
visitConstantPool(org.apache.bcel.classfile.ConstantPool obj) |
void |
visitEnclosingMethod(org.apache.bcel.classfile.EnclosingMethod arg0) |
boolean |
visitingField()
is the visitor currently visiting a field?
|
boolean |
visitingMethod()
is the visitor currently visiting a method?
|
void |
visitInnerClasses(org.apache.bcel.classfile.InnerClasses obj) |
void |
visitJavaClass(org.apache.bcel.classfile.JavaClass obj) |
void |
visitLineNumberTable(org.apache.bcel.classfile.LineNumberTable obj) |
void |
visitLocalVariableTable(org.apache.bcel.classfile.LocalVariableTable obj) |
void |
visitParameterAnnotation(org.apache.bcel.classfile.ParameterAnnotations arg0) |
void |
visitStackMapTable(org.apache.bcel.classfile.StackMapTable arg0) |
void |
visitStackMapTableEntry(org.apache.bcel.classfile.StackMapTableEntry arg0) |
clone, report, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visitCodeException, visitConstantClass, visitConstantDouble, visitConstantFieldref, visitConstantFloat, visitConstantInteger, visitConstantInterfaceMethodref, visitConstantLong, visitConstantMethodref, visitConstantNameAndType, visitConstantString, visitConstantUtf8, visitConstantValue, visitDeprecated, visitExceptionTable, visitField, visitInnerClass, visitLineNumber, visitLocalVariable, visitLocalVariableTypeTable, visitMethod, visitSignature, visitSourceFile, visitStackMap, visitStackMapEntry, visitSynthetic, visitUnknown
protected java.lang.String getStringFromIndex(int i)
protected int asUnsignedByte(byte b)
public org.apache.bcel.classfile.Code getCode()
public java.util.Set<java.lang.String> getSurroundingCaughtExceptions(int pc)
public java.util.Set<java.lang.String> getSurroundingCaughtExceptions(int pc, int maxTryBlockSize)
public int getSizeOfSurroundingTryBlock(int pc)
pc
- public int getSizeOfSurroundingTryBlock(java.lang.String vmNameOfExceptionClass, int pc)
pc
- public org.apache.bcel.classfile.CodeException getSurroundingTryBlock(int pc)
public org.apache.bcel.classfile.CodeException getSurroundingTryBlock(java.lang.String vmNameOfExceptionClass, int pc)
public void visitCode(org.apache.bcel.classfile.Code obj)
visitCode
in interface org.apache.bcel.classfile.Visitor
visitCode
in class BetterVisitor
public void visitAfter(org.apache.bcel.classfile.Code obj)
obj
- Code that was just visitedpublic void visitConstantPool(org.apache.bcel.classfile.ConstantPool obj)
visitConstantPool
in interface org.apache.bcel.classfile.Visitor
visitConstantPool
in class BetterVisitor
public void doVisitMethod(org.apache.bcel.classfile.Method method)
public boolean amVisitingMainMethod()
public void visitInnerClasses(org.apache.bcel.classfile.InnerClasses obj)
visitInnerClasses
in interface org.apache.bcel.classfile.Visitor
visitInnerClasses
in class BetterVisitor
public void visitAfter(org.apache.bcel.classfile.JavaClass obj)
public boolean shouldVisit(org.apache.bcel.classfile.JavaClass obj)
protected boolean isVisitMethodsInCallOrder()
protected void setVisitMethodsInCallOrder(boolean visitMethodsInCallOrder)
protected java.lang.Iterable<org.apache.bcel.classfile.Method> getMethodVisitOrder(org.apache.bcel.classfile.JavaClass obj)
public void visitJavaClass(org.apache.bcel.classfile.JavaClass obj)
visitJavaClass
in interface org.apache.bcel.classfile.Visitor
visitJavaClass
in class BetterVisitor
public void setupVisitorForClass(org.apache.bcel.classfile.JavaClass obj)
public void visitLineNumberTable(org.apache.bcel.classfile.LineNumberTable obj)
visitLineNumberTable
in interface org.apache.bcel.classfile.Visitor
visitLineNumberTable
in class BetterVisitor
public void visitLocalVariableTable(org.apache.bcel.classfile.LocalVariableTable obj)
visitLocalVariableTable
in interface org.apache.bcel.classfile.Visitor
visitLocalVariableTable
in class BetterVisitor
public XClass getXClass()
public ClassDescriptor getClassDescriptor()
public XMethod getXMethod()
public MethodDescriptor getMethodDescriptor()
public XField getXField()
public FieldDescriptor getFieldDescriptor()
public org.apache.bcel.classfile.ConstantPool getConstantPool()
@SlashedClassName public java.lang.String getClassName()
@DottedClassName public java.lang.String getDottedClassName()
public java.lang.String getPackageName()
public java.lang.String getSourceFile()
@SlashedClassName public java.lang.String getSuperclassName()
@DottedClassName public java.lang.String getDottedSuperclassName()
public org.apache.bcel.classfile.JavaClass getThisClass()
public java.lang.String getFullyQualifiedMethodName()
public boolean visitingMethod()
public boolean visitingField()
public org.apache.bcel.classfile.Field getField()
public org.apache.bcel.classfile.Method getMethod()
public java.lang.String getMethodName()
public static int getNumberArguments(java.lang.String signature)
public static boolean hasInterestingMethod(org.apache.bcel.classfile.ConstantPool cp, java.util.Collection<MethodDescriptor> methods)
cp
- constant poolmethods
- methods collectionpublic static boolean hasInterestingClass(org.apache.bcel.classfile.ConstantPool cp, java.util.Collection<java.lang.String> classes)
public int getNumberMethodArguments()
public java.lang.String getMethodSig()
public java.lang.String getDottedMethodSig()
public java.lang.String getFieldName()
public java.lang.String getFieldSig()
public boolean getFieldIsStatic()
public java.lang.String getFullyQualifiedFieldName()
@Deprecated public java.lang.String getDottedFieldSig()
public java.lang.String toString()
toString
in class java.lang.Object
public void visitAnnotation(org.apache.bcel.classfile.Annotations arg0)
visitAnnotation
in interface org.apache.bcel.classfile.Visitor
public void visitAnnotationDefault(org.apache.bcel.classfile.AnnotationDefault arg0)
visitAnnotationDefault
in interface org.apache.bcel.classfile.Visitor
public void visitAnnotationEntry(org.apache.bcel.classfile.AnnotationEntry arg0)
visitAnnotationEntry
in interface org.apache.bcel.classfile.Visitor
public void visitEnclosingMethod(org.apache.bcel.classfile.EnclosingMethod arg0)
visitEnclosingMethod
in interface org.apache.bcel.classfile.Visitor
public void visitParameterAnnotation(org.apache.bcel.classfile.ParameterAnnotations arg0)
visitParameterAnnotation
in interface org.apache.bcel.classfile.Visitor
public void visitStackMapTable(org.apache.bcel.classfile.StackMapTable arg0)
visitStackMapTable
in interface org.apache.bcel.classfile.Visitor
public void visitStackMapTableEntry(org.apache.bcel.classfile.StackMapTableEntry arg0)
visitStackMapTableEntry
in interface org.apache.bcel.classfile.Visitor
FindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.