Class InputFactory

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

    public abstract class InputFactory
    extends java.lang.Object
    implements java.io.Closeable
    Represents a sequence of bytes, and can create BasicInput objects to read it.
    Since:
    2 Dec 2014
    Author:
    Mark Taylor
    • Constructor Summary

      Constructors 
      Constructor Description
      InputFactory()  
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      static InputFactory createFactory​(uk.ac.starlink.util.DataSource datsrc, long offset, long leng)
      Constructs an instance of this class to read a given data source.
      static InputFactory createFileFactory​(java.io.File uncompressedFile, long offset, long leng)
      Constructs an instance of this class to read a given uncompressed file.
      abstract BasicInput createInput​(boolean isSeq)
      Returns a BasicInput instance to read this object's byte stream.
      static InputFactory createSequentialFactory​(uk.ac.starlink.util.DataSource datsrc, long offset, long leng)
      Constructs an instance of this class to read a given data source viewed as a stream, not a file.
      static BasicInput createSequentialInput​(java.io.DataInput in)
      Returns a non-random-access BasicInput based on a supplied input stream.
      abstract boolean isRandom()
      Indicates whether the BasicInput objects created by this factory will support random access.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.io.Closeable

        close
    • Constructor Detail

      • InputFactory

        public InputFactory()
    • Method Detail

      • isRandom

        public abstract boolean isRandom()
        Indicates whether the BasicInput objects created by this factory will support random access.
        Returns:
        true iff BasicInput.isRandom() will return true for created objects
      • createInput

        public abstract BasicInput createInput​(boolean isSeq)
                                        throws java.io.IOException
        Returns a BasicInput instance to read this object's byte stream.
        Parameters:
        isSeq - if true, the returned object is expected to be used for sequential access only; this value is a hint which may or may not be used by the implementation
        Returns:
        new reader; if isSeq is false and isRandom returns true, it will be capable of random access
        Throws:
        java.io.IOException
      • createFactory

        public static InputFactory createFactory​(uk.ac.starlink.util.DataSource datsrc,
                                                 long offset,
                                                 long leng)
                                          throws java.io.IOException
        Constructs an instance of this class to read a given data source.
        Parameters:
        datsrc - data source
        offset - offset into file of stream start
        leng - number of bytes in stream
        Returns:
        new instance
        Throws:
        java.io.IOException
      • createSequentialFactory

        public static InputFactory createSequentialFactory​(uk.ac.starlink.util.DataSource datsrc,
                                                           long offset,
                                                           long leng)
        Constructs an instance of this class to read a given data source viewed as a stream, not a file.
        Parameters:
        datsrc - data source
        offset - offset into file of stream start
        leng - number of bytes in stream
        Returns:
        new instance
      • createFileFactory

        public static InputFactory createFileFactory​(java.io.File uncompressedFile,
                                                     long offset,
                                                     long leng)
                                              throws java.io.IOException
        Constructs an instance of this class to read a given uncompressed file. It must be uncompressed for the random access to be able to locate the right part to read.
        Parameters:
        uncompressedFile - unencoded file
        offset - offset into file of stream start
        leng - number of bytes in stream
        Returns:
        new instance
        Throws:
        java.io.IOException
      • createSequentialInput

        public static BasicInput createSequentialInput​(java.io.DataInput in)
        Returns a non-random-access BasicInput based on a supplied input stream. The result is just an adapter wrapping the supplied DataInput.
        Parameters:
        in - input stream
        Returns:
        non-random BasicInput