Package org.apache.sysds.runtime.transform.decode

# Class DecoderComposite

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

All Implemented Interfaces:
  `Externalizable`, `Serializable`

public class DecoderComposite extends Decoder
Simple composite decoder that applies a list of decoders in specified order. By implementing the default decoder API it can be used as a drop-in replacement for any other decoder.

See Also:
  - Serialized Form

## Constructor Summary

Constructors
Constructor
Description
`DecoderComposite()`

## Method Summary

Modifier and Type
Method
Description
`FrameBlock`
`decode(MatrixBlock in, FrameBlock out)`
Block decode API converting a matrix block into a frame block.
`void`
`decode(MatrixBlock in, FrameBlock out, int rl, int ru)`
Block decode row block
`void`
`initMetaData(FrameBlock meta)`
`void`
`readExternal(ObjectInput in)`
Redirects the default java serialization via externalizable to our default hadoop writable serialization for efficient broadcast/rdd deserialization.
`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.
`void`
`writeExternal(ObjectOutput out)`
Redirects the default java serialization via externalizable to our default hadoop writable serialization for efficient broadcast/rdd serialization.

### Methods inherited from class org.apache.sysds.runtime.transform.decode.Decoder

`decode, getColnames, getSchema, setColnames`

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

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

## Constructor Details

### DecoderComposite

public DecoderComposite()

## Method Details

### decode

public FrameBlock decode(MatrixBlock in, FrameBlock out)
Description copied from class: `Decoder`
Block decode API converting a matrix block into a frame block.

Specified by:
  `decode` in class `Decoder`
Parameters:
  `in` - Input matrix block
  `out` - Output frame block
Returns:
  returns given output frame block for convenience

### decode

public void decode(MatrixBlock in, FrameBlock out, int rl, int ru)
Description copied from class: `Decoder`
Block decode row block

Specified by:
  `decode` in class `Decoder`
Parameters:
  `in` - input Matrix Block
  `out` - output FrameBlock
  `rl` - row start to decode
  `ru` - row end to decode (not inclusive)

### subRangeDecoder

public Decoder subRangeDecoder(int colStart, int colEnd, int dummycodedOffset)
Description copied from class: `Decoder`
Returns a new Decoder that only handles a sub range of columns. The sub-range refers to the columns after decoding.

Overrides:
  `subRangeDecoder` in class `Decoder`
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)
Description copied from class: `Decoder`
Update index-ranges to after decoding. Note that only Dummycoding changes the ranges.

Overrides:
  `updateIndexRanges` in class `Decoder`
Parameters:
  `beginDims` - the begin indexes before encoding
  `endDims` - the end indexes before encoding

### initMetaData

public void initMetaData(FrameBlock meta)

Specified by:
  `initMetaData` in class `Decoder`

### writeExternal

public void writeExternal(ObjectOutput out) throws IOException
Description copied from class: `Decoder`
Redirects the default java serialization via externalizable to our default hadoop writable serialization for efficient broadcast/rdd serialization.

Specified by:
  `writeExternal` in interface `Externalizable`
Overrides:
  `writeExternal` in class `Decoder`
Parameters:
  `out` - object output
Throws:
  `IOException` - if IOException occurs

### readExternal

public void readExternal(ObjectInput in) throws IOException
Description copied from class: `Decoder`
Redirects the default java serialization via externalizable to our default hadoop writable serialization for efficient broadcast/rdd deserialization.

Specified by:
  `readExternal` in interface `Externalizable`
Overrides:
  `readExternal` in class `Decoder`
Parameters:
  `in` - object input
Throws:
  `IOException` - if IOException occur