Class ExampleBinaryCodec

java.lang.Object
htsjdk.tribble.BinaryFeatureCodec<Feature>
htsjdk.tribble.example.ExampleBinaryCodec
All Implemented Interfaces:
FeatureCodec<Feature,PositionalBufferedStream>

public class ExampleBinaryCodec extends BinaryFeatureCodec<Feature>
An example binary codec that encodes / decodes contig / start / stop values via DataInputStreams
  • Field Details

  • Constructor Details

    • ExampleBinaryCodec

      public ExampleBinaryCodec()
  • Method Details

    • decodeLoc

      public Feature decodeLoc(PositionalBufferedStream stream) throws IOException
      Description copied from interface: FeatureCodec
      Decode a line to obtain just its FeatureLoc for indexing -- contig, start, and stop.
      Parameters:
      stream - the input stream from which to decode the next record
      Returns:
      Return the FeatureLoc encoded by the line, or null if the line does not represent a feature (e.g. is a comment)
      Throws:
      IOException
    • decode

      public Feature decode(PositionalBufferedStream stream) throws IOException
      Description copied from interface: FeatureCodec
      Decode a single Feature from the FeatureCodec, reading no further in the underlying source than beyond that feature.
      Parameters:
      stream - 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)
      Throws:
      IOException
    • readHeader

      public FeatureCodecHeader readHeader(PositionalBufferedStream stream) throws IOException
      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 from FeatureCodec as needed to parse the header, and no more. Otherwise, data that might otherwise be fed into parsing a Feature may be lost.
      Parameters:
      stream - the source from which to decode the header
      Returns:
      header object
      Throws:
      IOException
    • getFeatureType

      public Class<Feature> getFeatureType()
      Description copied from interface: FeatureCodec

      This function returns the object the codec generates. This is allowed to be Feature in the case where conditionally different types are generated. Be as specific as you can though.

      This function is used by reflections based tools, so we can know the underlying type

      Returns:
      the feature type this codec generates.
    • canDecode

      public boolean canDecode(String path)
      Description copied from interface: FeatureCodec

      This function returns true iff the File potentialInput can be parsed by this codec. Note that checking the file's extension is a perfectly acceptable implementation of this method and file contents only rarely need to be checked.

      There is an assumption that there's never a situation where two different Codecs return true for the same file. If this occurs, the recommendation would be to error out.

      Note this function must never throw an error. All errors should be trapped and false returned.
      Parameters:
      path - the file to test for parsability with this codec
      Returns:
      true if potentialInput can be parsed, false otherwise
    • convertToBinaryTest

      public static <FEATURE_TYPE extends Feature> void convertToBinaryTest(File source, File dest, FeatureCodec<FEATURE_TYPE,LineIterator> codec) throws IOException
      Convenience method that creates an ExampleBinaryCodec file from another feature file. For testing purposes really
      Parameters:
      source - file containing the features
      dest - the place to write the binary features
      codec - of the source file features
      Throws:
      IOException
    • convertToBinaryTest

      public static <FEATURE_TYPE extends Feature> void convertToBinaryTest(FeatureReader<FEATURE_TYPE> reader, OutputStream out) throws IOException
      Convenience method that creates an ExampleBinaryCodec file from another feature file. For testing purposes really
      Throws:
      IOException