Class GenericArrayData

java.lang.Object
org.apache.flink.table.data.GenericArrayData
All Implemented Interfaces:
ArrayData

@PublicEvolving public final class GenericArrayData extends Object implements ArrayData
An internal data structure representing data of ArrayType.

Note: All elements of this data structure must be internal data structures and must be of the same type. See RowData for more information about internal data structures.

GenericArrayData is a generic implementation of ArrayData which wraps regular Java arrays.

Every instance wraps a one-dimensional Java array. Non-primitive arrays can be used for representing element nullability. The Java array might be a primitive array such as int[] or an object array (i.e. instance of Object[]). Object arrays that contain boxed types (e.g. Integer) MUST be boxed arrays (i.e. new Integer[]{1, 2, 3}, not new Object[]{1, 2, 3}). For multidimensional arrays, an array of GenericArrayData MUST be passed. For example:


 // ARRAY < ARRAY < INT NOT NULL > >
 new GenericArrayData(
   new GenericArrayData[]{
     new GenericArrayData(new int[3]),
     new GenericArrayData(new int[5])
   }
 )
 
  • Constructor Details

    • GenericArrayData

      public GenericArrayData(Object[] array)
      Creates an instance of GenericArrayData using the given Java array.

      Note: All elements of the array must be internal data structures.

    • GenericArrayData

      public GenericArrayData(int[] primitiveArray)
    • GenericArrayData

      public GenericArrayData(long[] primitiveArray)
    • GenericArrayData

      public GenericArrayData(float[] primitiveArray)
    • GenericArrayData

      public GenericArrayData(double[] primitiveArray)
    • GenericArrayData

      public GenericArrayData(short[] primitiveArray)
    • GenericArrayData

      public GenericArrayData(byte[] primitiveArray)
    • GenericArrayData

      public GenericArrayData(boolean[] primitiveArray)
  • Method Details

    • isPrimitiveArray

      public boolean isPrimitiveArray()
      Returns true if this is a primitive array.

      A primitive array is an array whose elements are of primitive type.

    • toObjectArray

      public Object[] toObjectArray()
      Converts this GenericArrayData into an array of Java Object.

      The method will convert a primitive array into an object array. But it will not convert internal data structures into external data structures (e.g. StringData to String).

    • size

      public int size()
      Description copied from interface: ArrayData
      Returns the number of elements in this array.
      Specified by:
      size in interface ArrayData
    • isNullAt

      public boolean isNullAt(int pos)
      Description copied from interface: ArrayData
      Returns true if the element is null at the given position.
      Specified by:
      isNullAt in interface ArrayData
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

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

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

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

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

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

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

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

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

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

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

      public DecimalData getDecimal(int pos, int precision, int scale)
      Description copied from interface: ArrayData
      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 ArrayData
    • getTimestamp

      public TimestampData getTimestamp(int pos, int precision)
      Description copied from interface: ArrayData
      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 ArrayData
    • getRawValue

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

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

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

      Specified by:
      getRow in interface ArrayData
    • getArray

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

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

      public boolean[] toBooleanArray()
      Specified by:
      toBooleanArray in interface ArrayData
    • toByteArray

      public byte[] toByteArray()
      Specified by:
      toByteArray in interface ArrayData
    • toShortArray

      public short[] toShortArray()
      Specified by:
      toShortArray in interface ArrayData
    • toIntArray

      public int[] toIntArray()
      Specified by:
      toIntArray in interface ArrayData
    • toLongArray

      public long[] toLongArray()
      Specified by:
      toLongArray in interface ArrayData
    • toFloatArray

      public float[] toFloatArray()
      Specified by:
      toFloatArray in interface ArrayData
    • toDoubleArray

      public double[] toDoubleArray()
      Specified by:
      toDoubleArray in interface ArrayData