Class NeedlessAutoboxing

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
edu.umd.cs.findbugs.bcel.OpcodeStackDetector
com.mebigfatguy.fbcontrib.detect.NeedlessAutoboxing
All Implemented Interfaces:
edu.umd.cs.findbugs.Detector, edu.umd.cs.findbugs.Priorities, org.apache.bcel.classfile.Visitor

public class NeedlessAutoboxing extends edu.umd.cs.findbugs.bcel.OpcodeStackDetector
Looks for methods that pass a primitive wrapper class object, to the same classes Constructor.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    (package private) static class 
     
    (package private) static enum 
     

    Nested classes/interfaces inherited from class edu.umd.cs.findbugs.bcel.OpcodeStackDetector

    edu.umd.cs.findbugs.bcel.OpcodeStackDetector.WithCustomJumpInfo
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private String
     
    private static final Map<String,NeedlessAutoboxing.BoxParms>
     
    private edu.umd.cs.findbugs.BugReporter
     
    private static final Map<String,String>
     
     
    private BitSet
     

    Fields inherited from class edu.umd.cs.findbugs.bcel.OpcodeStackDetector

    stack

    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

    Constructors
    Constructor
    Description
    NeedlessAutoboxing(edu.umd.cs.findbugs.BugReporter bugReporter)
    constructs a NAB detector given the reporter to report bugs on
  • Method Summary

    Modifier and Type
    Method
    Description
    private static void
    addBoxClass(Map<String,NeedlessAutoboxing.BoxParms> map, String slashedClass, String primitiveName, String primitiveSig)
     
    private static void
    addParseClass(Map<String,String> map, String slashedClass, String primitiveName, String primitiveSig)
     
    void
    sawOpcode(int seen)
     
    private void
     
    private void
     
    void
    visitClassContext(edu.umd.cs.findbugs.ba.ClassContext classContext)
     
    void
    visitMethod(org.apache.bcel.classfile.Method obj)
     

    Methods inherited from class edu.umd.cs.findbugs.bcel.OpcodeStackDetector

    afterOpcode, beforeOpcode, getStack, isUsingCustomUserValue, visitCode

    Methods inherited from class edu.umd.cs.findbugs.BytecodeScanningDetector

    getClassContext, report, shouldVisitCode

    Methods inherited from class edu.umd.cs.findbugs.visitclass.DismantleBytecode

    areOppositeBranches, atCatchBlock, 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, visit

    Methods inherited from class edu.umd.cs.findbugs.visitclass.AnnotationVisitor

    getAnnotationParameterAsEnum, 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, 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, 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, visitRecord, visitRecordComponent, visitStackMapType
  • Field Details

  • Constructor Details

    • NeedlessAutoboxing

      public NeedlessAutoboxing(edu.umd.cs.findbugs.BugReporter bugReporter)
      constructs a NAB detector given the reporter to report bugs on
      Parameters:
      bugReporter - the sync of bug reports
  • Method Details

    • addBoxClass

      private static void addBoxClass(Map<String,NeedlessAutoboxing.BoxParms> map, String slashedClass, String primitiveName, String primitiveSig)
    • addParseClass

      private static void addParseClass(Map<String,String> map, String slashedClass, String primitiveName, String primitiveSig)
    • visitClassContext

      public void visitClassContext(edu.umd.cs.findbugs.ba.ClassContext classContext)
      Specified by:
      visitClassContext in interface edu.umd.cs.findbugs.Detector
      Overrides:
      visitClassContext in class edu.umd.cs.findbugs.BytecodeScanningDetector
    • visitMethod

      public void visitMethod(org.apache.bcel.classfile.Method obj)
      Specified by:
      visitMethod in interface org.apache.bcel.classfile.Visitor
      Overrides:
      visitMethod in class edu.umd.cs.findbugs.visitclass.BetterVisitor
    • sawOpcode

      public void sawOpcode(int seen)
      Specified by:
      sawOpcode in class edu.umd.cs.findbugs.bcel.OpcodeStackDetector
    • sawOpcodeAfterNothing

      private void sawOpcodeAfterNothing(int seen)
    • sawOpcodeAfterValue

      private void sawOpcodeAfterValue(int seen)