Package edu.umd.cs.findbugs
Class BytecodeScanningDetector
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
- All Implemented Interfaces:
Detector
,Priorities
,org.apache.bcel.classfile.Visitor
- Direct Known Subclasses:
BadAppletConstructor
,BadlyOverriddenAdapter
,BadUseOfReturnValue
,BuildInterproceduralCallGraph
,CalledMethods
,DoInsideDoPrivileged
,DontCatchNullPointerException
,DontReusePublicIdentifiers
,EmptyZipFileEntry
,FinalizerNullsFields
,FindCircularDependencies
,FindEmptySynchronizedBlock
,FindFinalizeInvocations
,FindFloatMath
,FindLocalSelfAssignment2
,FindMaskedFields
,FindNakedNotify
,FindRoughConstants
,FindRunInvocations
,FindSpinLoop
,FindUncalledPrivateMethods
,FindUnconditionalWait
,FindUninitializedGet
,FindUnsyncGet
,FindUselessControlFlow
,HugeSharedStringConstants
,IDivResultCastToDouble
,InefficientMemberAccess
,InefficientToArray
,InheritanceUnsafeGetResource
,InitializationChain
,InstantiateStaticClass
,InvalidJUnitTest
,IteratorIdioms
,MutableLock
,MutableStaticFields
,OpcodeStackDetector
,PreferZeroLengthArrays
,PublicSemaphores
,QuestionableBooleanAssignment
,ReadReturnShouldBeChecked
,ReflectiveClasses
,StartInConstructor
,SuperfluousInstanceOf
,SuspiciousThreadInterrupted
,SynchronizeAndNullCheckField
,UncallableMethodOfAnonymousClass
,UnnecessaryMath
,UselessSubclassMethod
,VarArgsProblems
,VolatileUsage
,WaitInLoop
,WrongMapIterator
,XMLFactoryBypass
Base class for Detectors which want to extend DismantleBytecode.
- See Also:
-
Field Summary
Fields inherited from class edu.umd.cs.findbugs.visitclass.DismantleBytecode
codeBytes, lineNumberTable, M_BR, M_CP, M_INT, M_PAD, M_R, M_UINT
Fields inherited from interface edu.umd.cs.findbugs.Priorities
EXP_PRIORITY, HIGH_PRIORITY, IGNORE_PRIORITY, LOW_PRIORITY, NORMAL_PRIORITY
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionGet the ClassContext of the class currently being visited.void
report()
This method is called after all classes to be visited.boolean
shouldVisitCode
(org.apache.bcel.classfile.Code obj) Check see if the Code for this method should be visited.void
visitClassContext
(ClassContext classContext) Visit the ClassContext for a class which should be analyzed for instances of bug patterns.Methods 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, sawOpcode, sawRegister, sawString, visit
Methods inherited from class edu.umd.cs.findbugs.visitclass.AnnotationVisitor
getAnnotationParameterAsString, getAnnotationParameterAsStringArray, visitAnnotation, visitAnnotation, visitParameterAnnotation, visitParameterAnnotation, visitSyntheticParameterAnnotation
Methods 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, visitCode, visitConstantInvokeDynamic, visitConstantMethodHandle, visitConstantMethodType, visitConstantModule, visitConstantPackage, visitConstantPool, visitEnclosingMethod, visitingField, visitingMethod, visitInnerClasses, visitJavaClass, visitLineNumberTable, visitLocalVariableTable, visitMethodParameters, visitParameterAnnotationEntry, visitStackMap, visitStackMapEntry
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, visitCodeException, visitConstantClass, visitConstantDouble, visitConstantFieldref, visitConstantFloat, visitConstantInteger, visitConstantInterfaceMethodref, visitConstantLong, visitConstantMethodref, visitConstantNameAndType, visitConstantString, visitConstantUtf8, visitConstantValue, visitDeprecated, visitExceptionTable, visitField, visitInnerClass, visitLineNumber, visitLocalVariable, visitLocalVariableTypeTable, visitMethod, visitSignature, visitSourceFile, visitSynthetic, visitUnknown
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.apache.bcel.classfile.Visitor
visitConstantDynamic, visitMethodParameter, visitModule, visitModuleExports, visitModuleMainClass, visitModuleOpens, visitModulePackages, visitModuleProvides, visitModuleRequires, visitNestHost, visitNestMembers, visitStackMapType
-
Constructor Details
-
BytecodeScanningDetector
public BytecodeScanningDetector()
-
-
Method Details
-
visitClassContext
Description copied from interface:Detector
Visit the ClassContext for a class which should be analyzed for instances of bug patterns.- Specified by:
visitClassContext
in interfaceDetector
- Parameters:
classContext
- the ClassContext
-
getClassContext
Get the ClassContext of the class currently being visited.- Returns:
- the current ClassContext
-
shouldVisitCode
public boolean shouldVisitCode(org.apache.bcel.classfile.Code obj) Check see if the Code for this method should be visited.- Parameters:
obj
- Code attribute- Returns:
- true if the Code should be visited
-
report
public void report()Description copied from interface:Detector
This method is called after all classes to be visited. It should be used by any detectors which accumulate information over all visited classes to generate results.
-