Package htsjdk.tribble
Class AsciiFeatureCodec<T extends Feature>
java.lang.Object
htsjdk.tribble.AbstractFeatureCodec<T,LineIterator>
htsjdk.tribble.AsciiFeatureCodec<T>
- Type Parameters:
T
- The feature type this codec reads
- All Implemented Interfaces:
FeatureCodec<T,
LineIterator>
- Direct Known Subclasses:
AbstractVCFCodec
,BEDCodec
,IntervalListCodec
public abstract class AsciiFeatureCodec<T extends Feature>
extends AbstractFeatureCodec<T,LineIterator>
A convenience base class for codecs that want to read in features from ASCII lines.
This class overrides the general decode locs for streams and presents instead
Strings to decode(String) and readHeader(LineReader) functions.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
close
(LineIterator lineIterator) Adapter method that closes the providedFeatureCodec
.decode
(LineIterator lineIterator) Convenience method.abstract T
boolean
isDone
(LineIterator lineIterator) Adapter method that assesses whether the providedFeatureCodec
has more data.makeIndexableSourceFromStream
(InputStream inputStream) Return aFeatureCodec
for thisFeatureCodec
that implementsLocationAware
, and is thus suitable for use during indexing.makeSourceFromStream
(InputStream bufferedInputStream) Generates a reader of typeFeatureCodec
appropriate for use by this codec from the generic input stream.abstract Object
readActualHeader
(LineIterator reader) Read and return the header, or null if there is no header.readHeader
(LineIterator lineIterator) Read and return the header, or null if there is no header.Methods inherited from class htsjdk.tribble.AbstractFeatureCodec
decodeLoc, getFeatureType
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface htsjdk.tribble.FeatureCodec
canDecode, getPathToDataFile, getTabixFormat
-
Constructor Details
-
AsciiFeatureCodec
-
-
Method Details
-
close
Description copied from interface:FeatureCodec
Adapter method that closes the providedFeatureCodec
. -
isDone
Description copied from interface:FeatureCodec
Adapter method that assesses whether the providedFeatureCodec
has more data. True if it does, false otherwise. -
makeIndexableSourceFromStream
Description copied from interface:FeatureCodec
Return aFeatureCodec
for thisFeatureCodec
that implementsLocationAware
, and is thus suitable for use during indexing. LikeFeatureCodec.makeSourceFromStream(java.io.InputStream)
, except theLocationAware
compatibility is required for creating indexes. Implementers of this method must return a type that is bothLocationAware
as well asFeatureCodec
. Note that this requirement cannot be enforced via the method signature due to limitations in Java's generic typing system. Instead, consumers should cast the call result into aFeatureCodec
when applicable. NOTE: During the indexing process, the indexer passes theFeatureCodec
to the codec to consume Features from the underlyingFeatureCodec
, one at a time, recording the Feature location via theFeatureCodec
'sLocationAware
interface. Therefore, it is essential that theFeatureCodec
implementation, theFeatureCodec.readHeader(SOURCE)
method, and theFeatureCodec.decodeLoc(SOURCE)
method, which are used during indexing, not introduce any buffering that would that would advance theFeatureCodec
more than a single feature (or the more than the size of the header, in the case ofFeatureCodec.readHeader(SOURCE)
). -
makeSourceFromStream
Description copied from interface:FeatureCodec
Generates a reader of typeFeatureCodec
appropriate for use by this codec from the generic input stream. Implementers should assume the stream is buffered. -
decode
Convenience method. Decoding in ASCII files operates line-by-line, so obviate the need to callIterator.next()
in implementing classes and, instead, have them implementdecode(String)
.- Parameters:
lineIterator
- the input stream from which to decode the next record- Returns:
- Return the Feature encoded by the line, or null if the line does not represent a feature (e.g. is a comment)
-
decode
-
readHeader
Description copied from interface:FeatureCodec
Read and return the header, or null if there is no header. Note: Implementers of this method must be careful to read exactly as much fromFeatureCodec
as needed to parse the header, and no more. Otherwise, data that might otherwise be fed into parsing aFeature
may be lost.- Parameters:
lineIterator
- the source from which to decode the header- Returns:
- header object
- Throws:
IOException
-
readActualHeader
Read and return the header, or null if there is no header.- Returns:
- the actual header data in the file, or null if none is available
-