Class InstanceFieldLoadStreamFactory

  • All Implemented Interfaces:
    StreamFactory

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

      • InstanceFieldLoadStreamFactory

        public InstanceFieldLoadStreamFactory​(java.lang.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 Detail

      • setBugPatternType

        public InstanceFieldLoadStreamFactory setBugPatternType​(java.lang.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