uk.ac.starlink.fits
Class InputFactory

java.lang.Object
  extended by uk.ac.starlink.fits.InputFactory
All Implemented Interfaces:
Closeable

public abstract class InputFactory
extends Object
implements Closeable

Represents a sequence of bytes, and can create BasicInput objects to read it.

Since:
2 Dec 2014

Constructor Summary
InputFactory()
           
 
Method Summary
static InputFactory createFactory(DataSource datsrc, long offset, long leng)
          Constructs an instance of this class to read a given data source.
static InputFactory createFileFactory(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(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(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 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:
IOException

createFactory

public static InputFactory createFactory(DataSource datsrc,
                                         long offset,
                                         long leng)
                                  throws 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:
IOException

createSequentialFactory

public static InputFactory createSequentialFactory(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(File uncompressedFile,
                                             long offset,
                                             long leng)
                                      throws 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:
IOException

createSequentialInput

public static BasicInput createSequentialInput(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

Copyright © 2004 CLRC: Central Laboratory of the Research Councils. All rights reserved.