Package edu.umd.cs.findbugs.visitclass
Class PreorderVisitor
- java.lang.Object
-
- edu.umd.cs.findbugs.visitclass.BetterVisitor
-
- edu.umd.cs.findbugs.visitclass.PreorderVisitor
-
- All Implemented Interfaces:
Constants2,org.apache.bcel.classfile.Visitor,org.apache.bcel.Constants
- Direct Known Subclasses:
AnnotationVisitor,CallToUnconditionalThrower,CheckImmutableAnnotation,ComparatorIdiom,ConfusedInheritance,DontCatchIllegalMonitorStateException,DroppedException,DuplicateBranches,FindBugsSummaryStats,Methods,Naming,PreorderDetector,RedundantInterfaces,ResolveAllReferences
public abstract class PreorderVisitor extends BetterVisitor implements Constants2
Interface to make the use of a visitor pattern programming style possible. I.e. a class that implements this interface can traverse the contents of a Java class just by calling the `accept' method which all classes have. Implemented by wish of Boris Bokowski. If don't like it, blame him. If you do like it thank me 8-)- Version:
- 970819
- Author:
- M. Dahm
-
-
Field Summary
-
Fields inherited from interface org.apache.bcel.Constants
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_TRANSIENT, ACC_VARARGS, ACC_VOLATILE, ACCESS_NAMES, ACONST_NULL, ALOAD, ALOAD_0, ALOAD_1, ALOAD_2, ALOAD_3, ANEWARRAY, ANEWARRAY_QUICK, ARETURN, ARRAYLENGTH, ASTORE, ASTORE_0, ASTORE_1, ASTORE_2, ASTORE_3, ATHROW, ATTR_ANNOTATION_DEFAULT, ATTR_CODE, ATTR_CONSTANT_VALUE, ATTR_DEPRECATED, ATTR_EXCEPTIONS, ATTR_INNER_CLASSES, ATTR_LINE_NUMBER_TABLE, ATTR_LOCAL_VARIABLE_TABLE, ATTR_LOCAL_VARIABLE_TYPE_TABLE, ATTR_PMG, ATTR_RUNTIMEINVISIBLE_ANNOTATIONS, ATTR_RUNTIMEINVISIBLE_PARAMETER_ANNOTATIONS, ATTR_RUNTIMEVISIBLE_ANNOTATIONS, ATTR_RUNTIMEVISIBLE_PARAMETER_ANNOTATIONS, ATTR_SIGNATURE, ATTR_SOURCE_FILE, ATTR_STACK_MAP, ATTR_SYNTHETIC, ATTR_UNKNOWN, ATTRIBUTE_NAMES, BALOAD, BASTORE, BIPUSH, BREAKPOINT, CALOAD, CASTORE, CHECKCAST, CHECKCAST_QUICK, CLASS_TYPE_NAMES, CONSTANT_Class, CONSTANT_Double, CONSTANT_Fieldref, CONSTANT_Float, CONSTANT_Integer, CONSTANT_InterfaceMethodref, CONSTANT_Long, CONSTANT_Methodref, 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, 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, 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, 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, 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, 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 Summary
Constructors Constructor Description PreorderVisitor()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description booleanamVisitingMainMethod()protected intasUnsignedByte(byte b)voiddoVisitMethod(org.apache.bcel.classfile.Method method)ClassDescriptorgetClassDescriptor()java.lang.StringgetClassName()Get the slash-formatted class name for the current or most recently visited classorg.apache.bcel.classfile.CodegetCode()Return the current Code attribute; assuming one is being visitedorg.apache.bcel.classfile.ConstantPoolgetConstantPool()Get the constant pool for the current or most recently visited classjava.lang.StringgetDottedClassName()Get the dotted class name for the current or most recently visited classjava.lang.StringgetDottedFieldSig()Deprecated.java.lang.StringgetDottedMethodSig()If currently visiting a method, get the method's dotted method signaturejava.lang.StringgetDottedSuperclassName()Get the dotted superclass name for the current or most recently visited classorg.apache.bcel.classfile.FieldgetField()If currently visiting a method, get the method's Method objectFieldDescriptorgetFieldDescriptor()booleangetFieldIsStatic()If currently visiting a field, return whether or not the field is staticjava.lang.StringgetFieldName()If currently visiting a field, get the field's namejava.lang.StringgetFieldSig()If currently visiting a field, get the field's slash-formatted signaturejava.lang.StringgetFullyQualifiedFieldName()If currently visiting a field, get the field's fully qualified namejava.lang.StringgetFullyQualifiedMethodName()If currently visiting a method, get the method's fully qualified nameorg.apache.bcel.classfile.MethodgetMethod()If currently visiting a method, get the method's Method objectMethodDescriptorgetMethodDescriptor()java.lang.StringgetMethodName()If currently visiting a method, get the method's namejava.lang.StringgetMethodSig()If currently visiting a method, get the method's slash-formatted signaturestatic intgetNumberArguments(java.lang.String signature)intgetNumberMethodArguments()java.lang.StringgetPackageName()Get the (slash-formatted?) package name for the current or most recently visited classintgetSizeOfSurroundingTryBlock(int pc)Get lines of code in try block that surround pcintgetSizeOfSurroundingTryBlock(java.lang.String vmNameOfExceptionClass, int pc)Get lines of code in try block that surround pcjava.lang.StringgetSourceFile()Get the source file name for the current or most recently visited classprotected java.lang.StringgetStringFromIndex(int i)java.lang.StringgetSuperclassName()Get the slash-formatted superclass name for the current or most recently visited classjava.util.Set<java.lang.String>getSurroundingCaughtExceptions(int pc)org.apache.bcel.classfile.JavaClassgetThisClass()Get the JavaClass object for the current or most recently visited classXClassgetXClass()XFieldgetXField()XMethodgetXMethod()voidsetupVisitorForClass(org.apache.bcel.classfile.JavaClass obj)booleanshouldVisit(org.apache.bcel.classfile.JavaClass obj)voidvisitAfter(org.apache.bcel.classfile.JavaClass obj)voidvisitCode(org.apache.bcel.classfile.Code obj)voidvisitConstantPool(org.apache.bcel.classfile.ConstantPool obj)booleanvisitingField()is the visitor currently visiting a field?booleanvisitingMethod()is the visitor currently visiting a method?voidvisitInnerClasses(org.apache.bcel.classfile.InnerClasses obj)voidvisitJavaClass(org.apache.bcel.classfile.JavaClass obj)voidvisitLineNumberTable(org.apache.bcel.classfile.LineNumberTable obj)voidvisitLocalVariableTable(org.apache.bcel.classfile.LocalVariableTable obj)-
Methods inherited from class edu.umd.cs.findbugs.visitclass.BetterVisitor
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
-
-
-
-
Method Detail
-
getStringFromIndex
protected java.lang.String getStringFromIndex(int i)
-
asUnsignedByte
protected int asUnsignedByte(byte b)
-
getCode
public org.apache.bcel.classfile.Code getCode()
Return the current Code attribute; assuming one is being visited- Returns:
- current code attribute
-
getSurroundingCaughtExceptions
public java.util.Set<java.lang.String> getSurroundingCaughtExceptions(int pc)
-
getSizeOfSurroundingTryBlock
public int getSizeOfSurroundingTryBlock(int pc)
Get lines of code in try block that surround pc- Parameters:
pc-- Returns:
- number of lines of code in try block
-
getSizeOfSurroundingTryBlock
public int getSizeOfSurroundingTryBlock(java.lang.String vmNameOfExceptionClass, int pc)Get lines of code in try block that surround pc- Parameters:
pc-- Returns:
- number of lines of code in try block
-
visitCode
public void visitCode(org.apache.bcel.classfile.Code obj)
- Specified by:
visitCodein interfaceorg.apache.bcel.classfile.Visitor- Overrides:
visitCodein classBetterVisitor
-
visitConstantPool
public void visitConstantPool(org.apache.bcel.classfile.ConstantPool obj)
- Specified by:
visitConstantPoolin interfaceorg.apache.bcel.classfile.Visitor- Overrides:
visitConstantPoolin classBetterVisitor
-
doVisitMethod
public void doVisitMethod(org.apache.bcel.classfile.Method method)
-
amVisitingMainMethod
public boolean amVisitingMainMethod()
-
visitInnerClasses
public void visitInnerClasses(org.apache.bcel.classfile.InnerClasses obj)
- Specified by:
visitInnerClassesin interfaceorg.apache.bcel.classfile.Visitor- Overrides:
visitInnerClassesin classBetterVisitor
-
visitAfter
public void visitAfter(org.apache.bcel.classfile.JavaClass obj)
-
shouldVisit
public boolean shouldVisit(org.apache.bcel.classfile.JavaClass obj)
-
visitJavaClass
public void visitJavaClass(org.apache.bcel.classfile.JavaClass obj)
- Specified by:
visitJavaClassin interfaceorg.apache.bcel.classfile.Visitor- Overrides:
visitJavaClassin classBetterVisitor
-
setupVisitorForClass
public void setupVisitorForClass(org.apache.bcel.classfile.JavaClass obj)
-
visitLineNumberTable
public void visitLineNumberTable(org.apache.bcel.classfile.LineNumberTable obj)
- Specified by:
visitLineNumberTablein interfaceorg.apache.bcel.classfile.Visitor- Overrides:
visitLineNumberTablein classBetterVisitor
-
visitLocalVariableTable
public void visitLocalVariableTable(org.apache.bcel.classfile.LocalVariableTable obj)
- Specified by:
visitLocalVariableTablein interfaceorg.apache.bcel.classfile.Visitor- Overrides:
visitLocalVariableTablein classBetterVisitor
-
getXClass
public XClass getXClass()
-
getClassDescriptor
public ClassDescriptor getClassDescriptor()
-
getXMethod
public XMethod getXMethod()
-
getMethodDescriptor
public MethodDescriptor getMethodDescriptor()
-
getXField
public XField getXField()
-
getFieldDescriptor
public FieldDescriptor getFieldDescriptor()
-
getConstantPool
public org.apache.bcel.classfile.ConstantPool getConstantPool()
Get the constant pool for the current or most recently visited class
-
getClassName
@SlashedClassName public java.lang.String getClassName()
Get the slash-formatted class name for the current or most recently visited class
-
getDottedClassName
@DottedClassName public java.lang.String getDottedClassName()
Get the dotted class name for the current or most recently visited class
-
getPackageName
public java.lang.String getPackageName()
Get the (slash-formatted?) package name for the current or most recently visited class
-
getSourceFile
public java.lang.String getSourceFile()
Get the source file name for the current or most recently visited class
-
getSuperclassName
@SlashedClassName public java.lang.String getSuperclassName()
Get the slash-formatted superclass name for the current or most recently visited class
-
getDottedSuperclassName
@DottedClassName public java.lang.String getDottedSuperclassName()
Get the dotted superclass name for the current or most recently visited class
-
getThisClass
public org.apache.bcel.classfile.JavaClass getThisClass()
Get the JavaClass object for the current or most recently visited class
-
getFullyQualifiedMethodName
public java.lang.String getFullyQualifiedMethodName()
If currently visiting a method, get the method's fully qualified name
-
visitingMethod
public boolean visitingMethod()
is the visitor currently visiting a method?
-
visitingField
public boolean visitingField()
is the visitor currently visiting a field?
-
getField
public org.apache.bcel.classfile.Field getField()
If currently visiting a method, get the method's Method object
-
getMethod
public org.apache.bcel.classfile.Method getMethod()
If currently visiting a method, get the method's Method object
-
getMethodName
public java.lang.String getMethodName()
If currently visiting a method, get the method's name
-
getNumberArguments
public static int getNumberArguments(java.lang.String signature)
-
getNumberMethodArguments
public int getNumberMethodArguments()
-
getMethodSig
public java.lang.String getMethodSig()
If currently visiting a method, get the method's slash-formatted signature
-
getDottedMethodSig
public java.lang.String getDottedMethodSig()
If currently visiting a method, get the method's dotted method signature
-
getFieldName
public java.lang.String getFieldName()
If currently visiting a field, get the field's name
-
getFieldSig
public java.lang.String getFieldSig()
If currently visiting a field, get the field's slash-formatted signature
-
getFieldIsStatic
public boolean getFieldIsStatic()
If currently visiting a field, return whether or not the field is static
-
getFullyQualifiedFieldName
public java.lang.String getFullyQualifiedFieldName()
If currently visiting a field, get the field's fully qualified name
-
getDottedFieldSig
@Deprecated public java.lang.String getDottedFieldSig()
Deprecated.If currently visiting a field, get the field's dot-formatted signature
-
-