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

      public final boolean indexed
      Should the result column be indexed? This is only supported by test utilities; non-test usages should manually add and manage data indexes. Only use this when enclosed by a LivenessScope that was constructed with enforceStrongReachability == true.
  • Constructor Details

    • ColumnHolder

      public ColumnHolder(String name, Class<T> dataType, Class<?> componentType, boolean indexed, 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 indexed, long... arrayData)
      Construct a new set of column data.
      Parameters:
      name - column name
      indexed - true if the column is indexed; false otherwise
      arrayData - column data
    • ColumnHolder

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

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

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

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

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

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

      protected ColumnHolder(boolean chunkSentinel, String name, Class<?> dataType, Class<?> componentType, boolean indexed, 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
      dataType - abstract data type for the column
      indexed - true if the column is indexed; false otherwise
      chunkData - column data
  • Method Details

    • makeForChunk

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

      public static ColumnHolder<Instant> getInstantColumnHolder(String name, boolean indexed, long... data)
      Create a column holder for an Instant 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 bean InstantArraySource (see getColumnSource()).
      Parameters:
      name - column name
      indexed - true if the column is indexed; false otherwise
      data - column data (long integers representing nanos since the epoch)
    • getInstantColumnHolder

      public static ColumnHolder<Instant> getInstantColumnHolder(String name, boolean indexed, Chunk<Values> chunkData)
      Create a column holder for an Instant 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 bean InstantArraySource (see getColumnSource()).
      Parameters:
      name - column name
      indexed - true if the column is indexed; false otherwise
      chunkData - column data (long integers representing nanos since the epoch)
    • getBooleanColumnHolder

      public static ColumnHolder<Boolean> getBooleanColumnHolder(String name, boolean indexed, byte... data)
      Create a column holder for a Boolean column where the values are represented as bytes. The given byte array will be converted to a Boolean array.
      Parameters:
      name - column name
      indexed - true if the column is indexed; 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 indexed, T... data)
      Create a column holder from an array object, inferring the data type from the given array object.
      Parameters:
      name - The column name
      indexed - true if the column is indexed; 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 Instant 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()