Class ByteArrayLenEncoding


  • public class ByteArrayLenEncoding
    extends CRAMEncoding<byte[]>
    NOTE: this encoding can be a hybrid encoding in that it ALLOWS for the possibility to split it's data between the core block and an external block (i.e., if lenEncoding is CORE and byteEncoding is EXTERNAL) This has implications for data access, since some of it's data is interleaved with other data in the core block.
    • Constructor Detail

      • ByteArrayLenEncoding

        public ByteArrayLenEncoding​(CRAMEncoding<Integer> lenEncoding,
                                    CRAMEncoding<byte[]> byteEncoding)
        Note: depending on the sub-encodings, this encoding can wind up being a core/external hybrid. See https://github.com/samtools/hts-specs/issues/426).
    • Method Detail

      • fromSerializedEncodingParams

        public static ByteArrayLenEncoding fromSerializedEncodingParams​(byte[] serializedParams)
        Create a new instance of this encoding using the (ITF8 encoded) serializedParams.
        Parameters:
        serializedParams -
        Returns:
        ByteArrayLenEncoding with parameters populated from serializedParams
      • toSerializedEncodingParams

        public byte[] toSerializedEncodingParams()
        Description copied from class: CRAMEncoding
        Serialize encoding parameters to an ITF8-encoded byte array. By convention, each subclass should have a corresponding and symmetric "fromSerializedEncodingParams" that returns a new instance of that encoding populated with values from the serialized encoding params.
        Specified by:
        toSerializedEncodingParams in class CRAMEncoding<byte[]>
        Returns:
        a byte array containing the encoding's parameter values encoded as an ITF8 stream.
      • buildCodec

        public CRAMCodec<byte[]> buildCodec​(SliceBlocksReadStreams sliceBlocksReadStreams,
                                            SliceBlocksWriteStreams sliceBlocksWriteStreams)
        Description copied from class: CRAMEncoding
        Instantiate the codec represented by this encoding by supplying it with the appropriate streams
        Specified by:
        buildCodec in class CRAMEncoding<byte[]>
        Parameters:
        sliceBlocksReadStreams - the core block bit stream a CoreCodec will read from
        sliceBlocksWriteStreams - the core block bit stream a CoreCodec will write to
        Returns:
        a newly instantiated codec