FindBugs™ 1.3.9

edu.umd.cs.findbugs.visitclass
Class PreorderVisitor

java.lang.Object
  extended by edu.umd.cs.findbugs.visitclass.BetterVisitor
      extended by 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
PreorderVisitor()
           
 
Method Summary
 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 method, get the method's Method 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
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)
           
 org.apache.bcel.classfile.JavaClass getThisClass()
          Get the JavaClass object for the current or most recently visited class
 XClass getXClass()
           
 XField getXField()
           
 XMethod getXMethod()
           
 void setupVisitorForClass(org.apache.bcel.classfile.JavaClass obj)
           
 boolean shouldVisit(org.apache.bcel.classfile.JavaClass obj)
           
 void visitAfter(org.apache.bcel.classfile.JavaClass obj)
           
 void visitCode(org.apache.bcel.classfile.Code obj)
           
 void visitConstantPool(org.apache.bcel.classfile.ConstantPool obj)
           
 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)
           
 
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
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PreorderVisitor

public PreorderVisitor()
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:
visitCode in interface org.apache.bcel.classfile.Visitor
Overrides:
visitCode in class BetterVisitor

visitConstantPool

public void visitConstantPool(org.apache.bcel.classfile.ConstantPool obj)
Specified by:
visitConstantPool in interface org.apache.bcel.classfile.Visitor
Overrides:
visitConstantPool in class BetterVisitor

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:
visitInnerClasses in interface org.apache.bcel.classfile.Visitor
Overrides:
visitInnerClasses in class BetterVisitor

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:
visitJavaClass in interface org.apache.bcel.classfile.Visitor
Overrides:
visitJavaClass in class BetterVisitor

setupVisitorForClass

public void setupVisitorForClass(org.apache.bcel.classfile.JavaClass obj)

visitLineNumberTable

public void visitLineNumberTable(org.apache.bcel.classfile.LineNumberTable obj)
Specified by:
visitLineNumberTable in interface org.apache.bcel.classfile.Visitor
Overrides:
visitLineNumberTable in class BetterVisitor

visitLocalVariableTable

public void visitLocalVariableTable(org.apache.bcel.classfile.LocalVariableTable obj)
Specified by:
visitLocalVariableTable in interface org.apache.bcel.classfile.Visitor
Overrides:
visitLocalVariableTable in class BetterVisitor

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


FindBugs™ 1.3.9

FindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.