Class InstanceFieldLoadStreamFactory

java.lang.Object
edu.umd.cs.findbugs.detect.InstanceFieldLoadStreamFactory
All Implemented Interfaces:
StreamFactory

public class InstanceFieldLoadStreamFactory extends Object implements StreamFactory
StreamFactory for stream objects loaded from instance fields.
Author:
David Hovemeyer
  • Constructor Details

    • InstanceFieldLoadStreamFactory

      public InstanceFieldLoadStreamFactory(String streamBaseClass)
      Constructor. By default, Streams created by this factory will not be marked as interesting. The setBugPatternType() method should be called to make the factory produce interesting streams.
      Parameters:
      streamBaseClass - the base class of the streams produced by the factory
  • Method Details

    • setBugPatternType

      public InstanceFieldLoadStreamFactory setBugPatternType(String bugPatternType)
      Set the bug pattern type reported for unclosed streams loaded from this field. This makes the created streams "interesting".
      Parameters:
      bugPatternType - the bug pattern type
    • createStream

      public Stream createStream(Location location, org.apache.bcel.generic.ObjectType type, org.apache.bcel.generic.ConstantPoolGen cpg, RepositoryLookupFailureCallback lookupFailureCallback)
      Description copied from interface: StreamFactory
      Determine if a Stream is created at given location.
      Specified by:
      createStream in interface StreamFactory
      Parameters:
      location - the Location
      type - the ObjectType associated with the instruction at the location; the StreamResourceTracker prescreens for TypedInstructions that are associated with ObjectTypes, since they are the only instructions that could conceivably create a stream object
      cpg - the ConstantPoolGen for the method
      lookupFailureCallback - used to report missing classes in the class hierarchy
      Returns:
      a Stream created at the Location, or null if no stream is created there