Class CollectStatistics
java.lang.Object
edu.umd.cs.findbugs.visitclass.BetterVisitor
edu.umd.cs.findbugs.visitclass.PreorderVisitor
edu.umd.cs.findbugs.visitclass.AnnotationVisitor
edu.umd.cs.findbugs.visitclass.DismantleBytecode
edu.umd.cs.findbugs.BytecodeScanningDetector
com.mebigfatguy.fbcontrib.collect.CollectStatistics
- All Implemented Interfaces:
edu.umd.cs.findbugs.Detector,edu.umd.cs.findbugs.FirstPassDetector,edu.umd.cs.findbugs.NonReportingDetector,edu.umd.cs.findbugs.Priorities,org.apache.bcel.classfile.Visitor
public class CollectStatistics
extends edu.umd.cs.findbugs.BytecodeScanningDetector
implements edu.umd.cs.findbugs.NonReportingDetector
a first pass detector to collect various statistics used in second pass
detectors.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static classrepresents a method that is called, and whether it is in the super class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate edu.umd.cs.findbugs.BugReporterprivate booleanprivate QMethodprivate booleanprivate intprivate Map<QMethod, Set<CollectStatistics.CalledMethod>> private edu.umd.cs.findbugs.OpcodeStackFields inherited from class edu.umd.cs.findbugs.visitclass.DismantleBytecode
codeBytes, lineNumberTable, M_BR, M_CP, M_INT, M_PAD, M_R, M_UINTFields inherited from interface edu.umd.cs.findbugs.Priorities
EXP_PRIORITY, HIGH_PRIORITY, IGNORE_PRIORITY, LOW_PRIORITY, NORMAL_PRIORITY -
Constructor Summary
ConstructorsConstructorDescriptionCollectStatistics(edu.umd.cs.findbugs.BugReporter bugReporter) constructs a CollectStatistics detector which clears the singleton that holds the statistics for all classes parsed in the first pass. -
Method Summary
Modifier and TypeMethodDescriptionbuildConstrainingMethods(org.apache.bcel.classfile.JavaClass cls, Set<String> visitedClasses) private booleanisAssociationedWithAnnotations(org.apache.bcel.classfile.Method m) private booleanprivate voidperformModifyStateClosure(org.apache.bcel.classfile.JavaClass cls) voidsawOpcode(int seen) voidvisitAnnotation(org.apache.bcel.classfile.Annotations annotations) voidvisitClassContext(edu.umd.cs.findbugs.ba.ClassContext classContext) implements the visitor to collect statistics on this classvoidvisitCode(org.apache.bcel.classfile.Code obj) Methods inherited from class edu.umd.cs.findbugs.BytecodeScanningDetector
getClassContext, report, shouldVisitCodeMethods inherited from class edu.umd.cs.findbugs.visitclass.DismantleBytecode
afterOpcode, areOppositeBranches, atCatchBlock, beforeOpcode, getBranchFallThrough, getBranchOffset, getBranchTarget, getClassConstantOperand, getClassDescriptorOperand, getCodeByte, getConstantRefOperand, getDefaultSwitchOffset, getDottedClassConstantOperand, getFieldDescriptorOperand, getIntConstant, getLongConstant, getMaxPC, getMethodDescriptorOperand, getNameConstantOperand, getNextCodeByte, getNextOpcode, getNextPC, getOpcode, getPC, getPrevOpcode, getRefConstantOperand, getRefFieldIsStatic, getRegisterOperand, getSigConstantOperand, getStringConstantOperand, getSwitchLabels, getSwitchOffsets, getXClassOperand, getXFieldOperand, getXMethodOperand, isBranch, isMethodCall, isRegisterLoad, isRegisterStore, isRegisterStore, isReturn, isShift, isSwitch, isWideOpcode, printOpCode, sawBranchTo, sawClass, sawDouble, sawField, sawFloat, sawIMethod, sawInt, sawLong, sawMethod, sawRegister, sawString, visitMethods inherited from class edu.umd.cs.findbugs.visitclass.AnnotationVisitor
getAnnotationParameterAsEnum, getAnnotationParameterAsString, getAnnotationParameterAsStringArray, visitAnnotation, visitParameterAnnotation, visitParameterAnnotation, visitSyntheticParameterAnnotationMethods inherited from class edu.umd.cs.findbugs.visitclass.PreorderVisitor
amVisitingMainMethod, asUnsignedByte, doVisitMethod, getClassDescriptor, getClassName, getCode, getConstantPool, getDottedClassName, getDottedFieldSig, getDottedMethodSig, getDottedSuperclassName, getField, getFieldDescriptor, getFieldIsStatic, getFieldName, getFieldSig, getFullyQualifiedFieldName, getFullyQualifiedMethodName, getMethod, getMethodDescriptor, getMethodName, getMethodSig, getMethodVisitOrder, getNumberArguments, getNumberMethodArguments, getPackageName, getSizeOfSurroundingTryBlock, getSizeOfSurroundingTryBlock, getSourceFile, getStringFromIndex, getSuperclassName, getSurroundingCaughtExceptions, getSurroundingCaughtExceptions, getSurroundingCaughtExceptionTypes, getSurroundingTryBlock, getSurroundingTryBlock, getThisClass, getXClass, getXField, getXMethod, hasInterestingClass, hasInterestingMethod, isVisitMethodsInCallOrder, setupVisitorForClass, setVisitMethodsInCallOrder, shouldVisit, toString, visitAfter, visitAfter, visitAnnotationDefault, visitAnnotationEntry, visitBootstrapMethods, visitConstantInvokeDynamic, visitConstantMethodHandle, visitConstantMethodType, visitConstantModule, visitConstantPackage, visitConstantPool, visitEnclosingMethod, visitingField, visitingMethod, visitInnerClasses, visitJavaClass, visitLineNumberTable, visitLocalVariableTable, visitMethodParameters, visitParameterAnnotationEntry, visitStackMap, visitStackMapEntryMethods 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, visitCodeException, visitConstantClass, visitConstantDouble, visitConstantFieldref, visitConstantFloat, visitConstantInteger, visitConstantInterfaceMethodref, visitConstantLong, visitConstantMethodref, visitConstantNameAndType, visitConstantString, visitConstantUtf8, visitConstantValue, visitDeprecated, visitExceptionTable, visitField, visitInnerClass, visitLineNumber, visitLocalVariable, visitLocalVariableTypeTable, visitMethod, visitSignature, visitSourceFile, visitSynthetic, visitUnknownMethods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.bcel.classfile.Visitor
visitConstantDynamic, visitMethodParameter, visitModule, visitModuleExports, visitModuleMainClass, visitModuleOpens, visitModulePackages, visitModuleProvides, visitModuleRequires, visitNestHost, visitNestMembers, visitRecord, visitRecordComponent, visitStackMapType
-
Field Details
-
COMMON_METHOD_SIG_PREFIXES
-
BEAN_ANNOTATIONS
-
bugReporter
private edu.umd.cs.findbugs.BugReporter bugReporter -
numMethodCalls
private int numMethodCalls -
modifiesState
private boolean modifiesState -
classHasAnnotation
private boolean classHasAnnotation -
stack
private edu.umd.cs.findbugs.OpcodeStack stack -
selfCallTree
-
constrainingMethods
-
curMethod
-
-
Constructor Details
-
CollectStatistics
public CollectStatistics(edu.umd.cs.findbugs.BugReporter bugReporter) constructs a CollectStatistics detector which clears the singleton that holds the statistics for all classes parsed in the first pass.- Parameters:
bugReporter- unused, but required by reflection contract
-
-
Method Details
-
visitClassContext
public void visitClassContext(edu.umd.cs.findbugs.ba.ClassContext classContext) implements the visitor to collect statistics on this class- Specified by:
visitClassContextin interfaceedu.umd.cs.findbugs.Detector- Overrides:
visitClassContextin classedu.umd.cs.findbugs.BytecodeScanningDetector- Parameters:
classContext- the currently class
-
visitAnnotation
public void visitAnnotation(org.apache.bcel.classfile.Annotations annotations) - Specified by:
visitAnnotationin interfaceorg.apache.bcel.classfile.Visitor- Overrides:
visitAnnotationin classedu.umd.cs.findbugs.visitclass.AnnotationVisitor
-
visitCode
public void visitCode(org.apache.bcel.classfile.Code obj) - Specified by:
visitCodein interfaceorg.apache.bcel.classfile.Visitor- Overrides:
visitCodein classedu.umd.cs.findbugs.visitclass.PreorderVisitor
-
sawOpcode
public void sawOpcode(int seen) - Overrides:
sawOpcodein classedu.umd.cs.findbugs.visitclass.DismantleBytecode
-
performModifyStateClosure
private void performModifyStateClosure(org.apache.bcel.classfile.JavaClass cls) -
isAssociationedWithAnnotations
private boolean isAssociationedWithAnnotations(org.apache.bcel.classfile.Method m) -
buildConstrainingMethods
-
isConstrained
-