Class 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 Detail

      • 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 Detail

      • 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
      • 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