org.apache.sysds.runtime.transform.decode

## Class Decoder

- java.lang.Object
- - org.apache.sysds.runtime.transform.decode.Decoder

- All Implemented Interfaces:
    Serializable
  Direct Known Subclasses:
    DecoderComposite, DecoderDummycode, DecoderPassThrough, DecoderRecode

      public abstract class Decoder
      extends Object
      implements Serializable

  Base class for all transform decoders providing both a row and block interface for decoding matrices to frames.
  See Also:
    Serialized Form

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract FrameBlock` | `decode(MatrixBlock in, FrameBlock out)` Block decode API converting a matrix block into a frame block.
    `String[]` | `getColnames()`
    `Types.ValueType[]` | `getSchema()`
    `abstract void` | `initMetaData(FrameBlock meta)`
    `void` | `setColnames(String[] colnames)`
    `Decoder` | `subRangeDecoder(int colStart, int colEnd, int dummycodedOffset)` Returns a new Decoder that only handles a sub range of columns.
    `void` | `updateIndexRanges(long[] beginDims, long[] endDims)` Update index-ranges to after decoding.

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### getSchema

          public Types.ValueType[] getSchema()

    - #### setColnames

          public void setColnames(String[] colnames)

    - #### getColnames

          public String[] getColnames()

    - #### decode

          public abstract FrameBlock decode(MatrixBlock in,
                                            FrameBlock out)

      Block decode API converting a matrix block into a frame block.
      Parameters:
        `in` - input matrix block
        `out` - output frame block
      Returns:
        returns given output frame block for convenience

    - #### subRangeDecoder

          public Decoder subRangeDecoder(int colStart,
                                         int colEnd,
                                         int dummycodedOffset)

      Returns a new Decoder that only handles a sub range of columns. The sub-range refers to the columns after decoding.
      Parameters:
        `colStart` - the start index of the sub-range (1-based, inclusive)
        `colEnd` - the end index of the sub-range (1-based, exclusive)
        `dummycodedOffset` - the offset of dummycoded segments before colStart
      Returns:
        a decoder of the same type, just for the sub-range

    - #### updateIndexRanges

          public void updateIndexRanges(long[] beginDims,
                                        long[] endDims)

      Update index-ranges to after decoding. Note that only Dummycoding changes the ranges.
      Parameters:
        `beginDims` - the begin indexes before encoding
        `endDims` - the end indexes before encoding

    - #### initMetaData

          public abstract void initMetaData(FrameBlock meta)

Copyright © 2020 The Apache Software Foundation. All rights reserved.