Class InitializeNonnullFieldsInConstructor

All Implemented Interfaces:
Detector, Priorities, org.apache.bcel.classfile.Visitor

public class InitializeNonnullFieldsInConstructor extends OpcodeStackDetector
  • Field Details

    • bugReporter

      final BugReporter bugReporter
    • initializedFields

      final HashSet<XField> initializedFields
    • nonnullFields

      final HashSet<XField> nonnullFields
    • nonnullStaticFields

      final HashSet<XField> nonnullStaticFields
    • secondaryConstructor

      boolean secondaryConstructor
  • Constructor Details

    • InitializeNonnullFieldsInConstructor

      public InitializeNonnullFieldsInConstructor(BugReporter bugReporter)
  • Method Details

    • setupVisitorForClass

      public void setupVisitorForClass(org.apache.bcel.classfile.JavaClass obj)
      Overrides:
      setupVisitorForClass in class PreorderVisitor
    • visitAfter

      public void visitAfter(org.apache.bcel.classfile.JavaClass obj)
      Overrides:
      visitAfter in class PreorderVisitor
    • visit

      public void visit(org.apache.bcel.classfile.Field obj)
      Overrides:
      visit in class BetterVisitor
    • checkForInitialization

      public boolean checkForInitialization(XField f)
    • visit

      public void visit(org.apache.bcel.classfile.Code code)
      Overrides:
      visit in class DismantleBytecode
    • sawOpcode

      public void sawOpcode(int seen)
      Description copied from class: OpcodeStackDetector

      By default, this method will not be called when stack is TOP. To change this behavior, override #beforeOpcode(int) and change to return true even if stack is TOP.

      see Using FindBugs for Research to learn lattice and what TOP means.

      Specified by:
      sawOpcode in class OpcodeStackDetector
      See Also:
    • isSelfOperation

      public boolean isSelfOperation()
    • isKotlinGeneratedConstructor

      private boolean isKotlinGeneratedConstructor()
      Returns:
      true if the last parameter of the invoked method is a kotlin.jvm.internal.DefaultConstructorMarker