Class GenericRowData

  • All Implemented Interfaces:
    RowData

    @PublicEvolving
    public final class GenericRowData
    extends Object
    implements RowData
    An internal data structure representing data of RowType and other (possibly nested) structured types such as StructuredType.

    GenericRowData is a generic implementation of RowData which is backed by an array of Java Object. A GenericRowData can have an arbitrary number of fields of different types. The fields in a row can be accessed by position (0-based) using either the generic getField(int) or type-specific getters (such as getInt(int)). A field can be updated by the generic setField(int, Object).

    Note: All fields of this data structure must be internal data structures. See RowData for more information about internal data structures.

    The fields in GenericRowData can be null for representing nullability.

    • Constructor Detail

      • GenericRowData

        public GenericRowData​(RowKind kind,
                              int arity)
        Creates an instance of GenericRowData with given kind and number of fields.

        Initially, all fields are set to null.

        Note: All fields of the row must be internal data structures.

        Parameters:
        kind - kind of change that this row describes in a changelog
        arity - number of fields
      • GenericRowData

        public GenericRowData​(int arity)
        Creates an instance of GenericRowData with given number of fields.

        Initially, all fields are set to null. By default, the row describes a RowKind.INSERT in a changelog.

        Note: All fields of the row must be internal data structures.

        Parameters:
        arity - number of fields
    • Method Detail

      • setField

        public void setField​(int pos,
                             Object value)
        Sets the field value at the given position.

        Note: The given field value must be an internal data structures. Otherwise the GenericRowData is corrupted and may throw exception when processing. See RowData for more information about internal data structures.

        The field value can be null for representing nullability.

      • getField

        public Object getField​(int pos)
        Returns the field value at the given position.

        Note: The returned value is in internal data structure. See RowData for more information about internal data structures.

        The returned field value can be null for representing nullability.

      • getArity

        public int getArity()
        Description copied from interface: RowData
        Returns the number of fields in this row.

        The number does not include RowKind. It is kept separately.

        Specified by:
        getArity in interface RowData
      • getRowKind

        public RowKind getRowKind()
        Description copied from interface: RowData
        Returns the kind of change that this row describes in a changelog.
        Specified by:
        getRowKind in interface RowData
        See Also:
        RowKind
      • setRowKind

        public void setRowKind​(RowKind kind)
        Description copied from interface: RowData
        Sets the kind of change that this row describes in a changelog.
        Specified by:
        setRowKind in interface RowData
        See Also:
        RowKind
      • isNullAt

        public boolean isNullAt​(int pos)
        Description copied from interface: RowData
        Returns true if the field is null at the given position.
        Specified by:
        isNullAt in interface RowData
      • getBoolean

        public boolean getBoolean​(int pos)
        Description copied from interface: RowData
        Returns the boolean value at the given position.
        Specified by:
        getBoolean in interface RowData
      • getByte

        public byte getByte​(int pos)
        Description copied from interface: RowData
        Returns the byte value at the given position.
        Specified by:
        getByte in interface RowData
      • getShort

        public short getShort​(int pos)
        Description copied from interface: RowData
        Returns the short value at the given position.
        Specified by:
        getShort in interface RowData
      • getInt

        public int getInt​(int pos)
        Description copied from interface: RowData
        Returns the integer value at the given position.
        Specified by:
        getInt in interface RowData
      • getLong

        public long getLong​(int pos)
        Description copied from interface: RowData
        Returns the long value at the given position.
        Specified by:
        getLong in interface RowData
      • getFloat

        public float getFloat​(int pos)
        Description copied from interface: RowData
        Returns the float value at the given position.
        Specified by:
        getFloat in interface RowData
      • getDouble

        public double getDouble​(int pos)
        Description copied from interface: RowData
        Returns the double value at the given position.
        Specified by:
        getDouble in interface RowData
      • getString

        public StringData getString​(int pos)
        Description copied from interface: RowData
        Returns the string value at the given position.
        Specified by:
        getString in interface RowData
      • getDecimal

        public DecimalData getDecimal​(int pos,
                                      int precision,
                                      int scale)
        Description copied from interface: RowData
        Returns the decimal value at the given position.

        The precision and scale are required to determine whether the decimal value was stored in a compact representation (see DecimalData).

        Specified by:
        getDecimal in interface RowData
      • getTimestamp

        public TimestampData getTimestamp​(int pos,
                                          int precision)
        Description copied from interface: RowData
        Returns the timestamp value at the given position.

        The precision is required to determine whether the timestamp value was stored in a compact representation (see TimestampData).

        Specified by:
        getTimestamp in interface RowData
      • getRawValue

        public <T> RawValueData<T> getRawValue​(int pos)
        Description copied from interface: RowData
        Returns the raw value at the given position.
        Specified by:
        getRawValue in interface RowData
      • getBinary

        public byte[] getBinary​(int pos)
        Description copied from interface: RowData
        Returns the binary value at the given position.
        Specified by:
        getBinary in interface RowData
      • getArray

        public ArrayData getArray​(int pos)
        Description copied from interface: RowData
        Returns the array value at the given position.
        Specified by:
        getArray in interface RowData
      • getMap

        public MapData getMap​(int pos)
        Description copied from interface: RowData
        Returns the map value at the given position.
        Specified by:
        getMap in interface RowData
      • getRow

        public RowData getRow​(int pos,
                              int numFields)
        Description copied from interface: RowData
        Returns the row value at the given position.

        The number of fields is required to correctly extract the row.

        Specified by:
        getRow in interface RowData
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • of

        public static GenericRowData of​(Object... values)
        Creates an instance of GenericRowData with given field values.

        By default, the row describes a RowKind.INSERT in a changelog.

        Note: All fields of the row must be internal data structures.

      • ofKind

        public static GenericRowData ofKind​(RowKind kind,
                                            Object... values)
        Creates an instance of GenericRowData with given kind and field values.

        Note: All fields of the row must be internal data structures.