Class RawBytes

java.lang.Object
org.apache.hadoop.hbase.types.RawBytes
All Implemented Interfaces:
DataType<byte[]>

@Public public class RawBytes extends Object implements DataType<byte[]>
An DataType for interacting with variable-length values encoded using Bytes.putBytes(byte[], int, byte[], int, int). Intended to make it easier to transition away from direct use of Bytes.
See Also:
  • Field Details

  • Constructor Details

  • Method Details

    • isOrderPreserving

      public boolean isOrderPreserving()
      Description copied from interface: DataType
      Indicates whether this instance writes encoded byte[]'s which preserve the natural sort order of the unencoded value.
      Specified by:
      isOrderPreserving in interface DataType<byte[]>
      Returns:
      true when natural order is preserved, false otherwise.
    • getOrder

      public Order getOrder()
      Description copied from interface: DataType
      Retrieve the sort Order imposed by this data type, or null when natural ordering is not preserved. Value is either ascending or descending. Default is assumed to be Order.ASCENDING.
      Specified by:
      getOrder in interface DataType<byte[]>
    • isNullable

      public boolean isNullable()
      Description copied from interface: DataType
      Indicates whether this instance supports encoding null values. This depends on the implementation details of the encoding format. All DataTypes that support null should treat null as comparing less than any non-null value for default sort ordering purposes.
      Specified by:
      isNullable in interface DataType<byte[]>
      Returns:
      true when null is supported, false otherwise.
    • isSkippable

      public boolean isSkippable()
      Description copied from interface: DataType
      Indicates whether this instance is able to skip over it's encoded value. DataTypes that are not skippable can only be used as the right-most field of a Struct.
      Specified by:
      isSkippable in interface DataType<byte[]>
    • skip

      public int skip(PositionedByteRange src)
      Description copied from interface: DataType
      Skip src's position forward over one encoded value.
      Specified by:
      skip in interface DataType<byte[]>
      Parameters:
      src - the buffer containing the encoded value.
      Returns:
      number of bytes skipped.
    • encodedLength

      public int encodedLength(byte[] val)
      Description copied from interface: DataType
      Inform consumers how long the encoded byte[] will be.
      Specified by:
      encodedLength in interface DataType<byte[]>
      Parameters:
      val - The value to check.
      Returns:
      the number of bytes required to encode val.a
    • encodedClass

      public Class<byte[]> encodedClass()
      Description copied from interface: DataType
      Inform consumers over what type this DataType operates. Useful when working with bare DataType instances.
      Specified by:
      encodedClass in interface DataType<byte[]>
    • decode

      public byte[] decode(PositionedByteRange src)
      Description copied from interface: DataType
      Read an instance of T from the buffer src.
      Specified by:
      decode in interface DataType<byte[]>
      Parameters:
      src - the buffer containing the encoded value.
    • encode

      public int encode(PositionedByteRange dst, byte[] val)
      Description copied from interface: DataType
      Write instance val into buffer dst.
      Specified by:
      encode in interface DataType<byte[]>
      Parameters:
      dst - the buffer containing the encoded value.
      val - the value to encode onto dst.
      Returns:
      number of bytes written.
    • decode

      public byte[] decode(PositionedByteRange src, int length)
      Read a byte[] from the buffer src.
      Parameters:
      src - the PositionedByteRange to read the byte[] from
      length - the length to read from the buffer
      Returns:
      the byte[] read from the buffer
    • encode

      public int encode(PositionedByteRange dst, byte[] val, int voff, int vlen)
      Write val into dst, respecting voff and vlen.
      Parameters:
      dst - the PositionedByteRange to write to
      val - the value to write to dst
      voff - the offset in dst where to write val to
      vlen - the length of val
      Returns:
      number of bytes written