Class SimpleByteArrayCodec

java.lang.Object
io.deephaven.util.codec.SimpleByteArrayCodec
All Implemented Interfaces:
ObjectCodec<byte[]>, ObjectDecoder<byte[]>

public class SimpleByteArrayCodec extends Object implements ObjectCodec<byte[]>

Codec for non-nullable byte arrays that does a no-op encode/decode.

One particular instance where this is useful is reading parquet 1.0 data encoded as binary as "raw".

  • Field Summary

    Fields inherited from interface io.deephaven.util.codec.ObjectDecoder

    VARIABLE_WIDTH_SENTINEL
  • Constructor Summary

    Constructors
    Constructor
    Description
    SimpleByteArrayCodec(@Nullable String arguments)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    @org.jetbrains.annotations.Nullable byte[]
    decode(@org.jetbrains.annotations.NotNull byte[] input, int offset, int length)
    Decode an object from an array of bytes.
    @org.jetbrains.annotations.NotNull byte[]
    encode(@org.jetbrains.annotations.Nullable byte[] input)
    Encode the specified input as an array of bytes.
    int
    What width byte array does this ObjectCodec expect to encode and decode?
    int
    If applicable, the maximum encodable precision.
    int
    If applicable, the maximum encodable scale.
    boolean
    Does this codec support encoding of null values?

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface io.deephaven.util.codec.ObjectDecoder

    checkWidth
  • Constructor Details

    • SimpleByteArrayCodec

      public SimpleByteArrayCodec(@Nullable @Nullable String arguments)
  • Method Details

    • encode

      @NotNull public @org.jetbrains.annotations.NotNull byte[] encode(@Nullable @org.jetbrains.annotations.Nullable byte[] input)
      Description copied from interface: ObjectCodec
      Encode the specified input as an array of bytes. Note that it is up to the implementation how to encode null inputs. The use of a zero-length byte array (e.g. CollectionUtil.ZERO_LENGTH_BYTE_ARRAY) is strongly encouraged.
      Specified by:
      encode in interface ObjectCodec<byte[]>
      Parameters:
      input - The input object, possibly null
      Returns:
      The output byte array
    • isNullable

      public boolean isNullable()
      Description copied from interface: ObjectCodec
      Does this codec support encoding of null values?
      Specified by:
      isNullable in interface ObjectCodec<byte[]>
      Returns:
      if null values are supported
    • getPrecision

      public int getPrecision()
      Description copied from interface: ObjectCodec
      If applicable, the maximum encodable precision. If precision is not applicable (i.e. for non-numeric types) this method should return zero.
      Specified by:
      getPrecision in interface ObjectCodec<byte[]>
      Returns:
      the numeric precision supported by this codec
    • getScale

      public int getScale()
      Description copied from interface: ObjectCodec
      If applicable, the maximum encodable scale. If scale is not applicable (i.e. for non-numeric types) this method should return zero.
      Specified by:
      getScale in interface ObjectCodec<byte[]>
      Returns:
      the numeric scale (digits after the decimal point) supported by this codec
    • decode

      @Nullable public @org.jetbrains.annotations.Nullable byte[] decode(@NotNull @org.jetbrains.annotations.NotNull byte[] input, int offset, int length)
      Description copied from interface: ObjectDecoder
      Decode an object from an array of bytes.
      Specified by:
      decode in interface ObjectDecoder<byte[]>
      Parameters:
      input - The input byte array containing bytes to decode
      offset - The offset into the byte array to start decoding from
      length - The length of the byte array to decode from, starting at the offset
      Returns:
      The output object, possibly null
    • expectedObjectWidth

      public int expectedObjectWidth()
      Description copied from interface: ObjectDecoder
      What width byte array does this ObjectCodec expect to encode and decode?
      Specified by:
      expectedObjectWidth in interface ObjectDecoder<byte[]>
      Returns:
      VARIABLE_WIDTH_SENTINEL if the codec must encode and decode variable width columns, otherwise the fixed size of byte array that must be decoded and encoded.