Class ColumnHolder<T>

java.lang.Object
io.deephaven.engine.table.impl.util.ColumnHolder<T>

public class ColumnHolder<T>
extends Object
Data to construct a data column.
  • Field Details

    • ZERO_LENGTH_COLUMN_HOLDER_ARRAY

      public static final ColumnHolder[] ZERO_LENGTH_COLUMN_HOLDER_ARRAY
    • name

      public final String name
      The name of the column.
    • dataType

      public final Class<T> dataType
      The data type of the column.
    • componentType

      public final Class<?> componentType
      The data's component type of the column.
    • grouped

      public final boolean grouped
      Should the result column be grouped (used for test data only).
  • Constructor Details

    • ColumnHolder

      public ColumnHolder​(String name, Class<T> dataType, Class<?> componentType, boolean grouped, T... arrayData)
      Construct a new set of column data.
      Parameters:
      name - column name
      dataType - column data type
      componentType - column component type (for array or > data types)
      arrayData - column data
    • ColumnHolder

      public ColumnHolder​(String name, boolean grouped, long... arrayData)
      Construct a new set of column data.
      Parameters:
      name - column name
      grouped - true if the column is grouped; false otherwise
      arrayData - column data
    • ColumnHolder

      public ColumnHolder​(String name, boolean grouped, int... arrayData)
      Construct a new set of column data.
      Parameters:
      name - column name
      grouped - true if the column is grouped; false otherwise
      arrayData - column data
    • ColumnHolder

      public ColumnHolder​(String name, boolean grouped, short... arrayData)
      Construct a new set of column data.
      Parameters:
      name - column name
      grouped - true if the column is grouped; false otherwise
      arrayData - column data
    • ColumnHolder

      public ColumnHolder​(String name, boolean grouped, char... arrayData)
      Construct a new set of column data.
      Parameters:
      name - column name
      grouped - true if the column is grouped; false otherwise
      arrayData - column data
    • ColumnHolder

      public ColumnHolder​(String name, boolean grouped, byte... arrayData)
      Construct a new set of column data.
      Parameters:
      name - column name
      grouped - true if the column is grouped; false otherwise
      arrayData - column data
    • ColumnHolder

      public ColumnHolder​(String name, boolean grouped, double... arrayData)
      Construct a new set of column data.
      Parameters:
      name - column name
      grouped - true if the column is grouped; false otherwise
      arrayData - column data
    • ColumnHolder

      public ColumnHolder​(String name, boolean grouped, float... arrayData)
      Construct a new set of column data.
      Parameters:
      name - column name
      grouped - true if the column is grouped; false otherwise
      arrayData - column data
    • ColumnHolder

      protected ColumnHolder​(boolean chunkSentinel, String name, Class<?> dataType, Class<?> componentType, boolean grouped, Chunk<Values> chunkData)
      Construct a new set of column data with a specified type using a chunk. This overload allows the creation of a ColumnHolder where the official data type type does not match the data.
      Parameters:
      name - column name
      type - abstract data type for the column
      grouped - true if the column is grouped; false otherwise
      chunkData - column data
  • Method Details

    • makeForChunk

      public static <T> ColumnHolder<T> makeForChunk​(String name, Class<T> type, Class<?> componentType, boolean grouped, Chunk<Values> chunkData)
    • getDateTimeColumnHolder

      public static ColumnHolder<DateTime> getDateTimeColumnHolder​(String name, boolean grouped, long... data)
      Create a column holder for a DateTime column where the values are represented as longs. Whatever process produces a table from this column holder should respect this and create the appropriate type of ColumnSource. Under normal conditions, this will be a DateTimeArraySource (see getColumnSource()).
      Parameters:
      name - column name
      grouped - true if the column is grouped; false otherwise
      data - column data (long integers representing nanos since the epoch)
      Returns:
      a DateTime column holder implemented with longs for storage
    • getDateTimeColumnHolder

      public static ColumnHolder<DateTime> getDateTimeColumnHolder​(String name, boolean grouped, Chunk<Values> chunkData)
      Create a column holder for a DateTime column where the values are represented as longs. Whatever process produces a table from this column holder should respect this and create the appropriate type of ColumnSource. Under normal conditions, this will be a DateTimeArraySource (see getColumnSource()).
      Parameters:
      name - column name
      grouped - true if the column is grouped; false otherwise
      chunkData - column data (long integers representing nanos since the epoch)
      Returns:
      a DBDateTime column holder implemented with longs for storage
    • getBooleanColumnHolder

      public static ColumnHolder<Boolean> getBooleanColumnHolder​(String name, boolean grouped, byte... data)
      Create a column holder for a Boolean column where the calues are represented as bytes. The given byte array will be converted to a Boolean array.
      Parameters:
      name - column name
      grouped - true if the column is grouped; false otherwise
      data - column data (byte values where 1 represents true, 0 represents false, and null otherwise)
      Returns:
      a Boolean column holder
    • createColumnHolder

      public static <T> ColumnHolder<T> createColumnHolder​(String name, boolean grouped, T... data)
      Create a column holder from an array object, inferring the data type from the given array object.
      Parameters:
      name - The column name
      grouped - true if the column is grouped; false otherwise
      data - The data array
      Returns:
      a column holder with a type matching the component type of the provided array
    • getName

      public String getName()
    • getColumnSource

      public ColumnSource<?> getColumnSource()
      Gets a column source for the data. Other than the special case of DateTime columns, this requires that the type specified match the component type of the actual data.
      Returns:
      column source constructed with data from this column holder
    • getArrayData

      public Optional<Object> getArrayData()
    • getChunkData

      public Optional<Chunk<Values>> getChunkData()
    • getChunk

      public Chunk<Values> getChunk()
    • size

      public int size()