Package com.illumon.iris.db.v2.utils
Class ColumnHolder
java.lang.Object
com.illumon.iris.db.v2.utils.ColumnHolder
public class ColumnHolder extends Object
Data to construct a data column.
-
Field Summary
Fields Modifier and Type Field Description boolean
grouped
Should the result column be grouped (used for test data only).String
name
The name of the column.Class
type
The data type of the column.static ColumnHolder[]
ZERO_LENGTH_COLUMN_HOLDER_ARRAY
-
Constructor Summary
Constructors Modifier Constructor Description protected
ColumnHolder(boolean chunkSentinel, String name, Class type, boolean grouped, Chunk<Attributes.Values> chunkData)
Construct a new set of column data with a specified type using a chunk.ColumnHolder(String name, boolean grouped, byte... arrayData)
Construct a new set of column data.ColumnHolder(String name, boolean grouped, char... arrayData)
Construct a new set of column data.ColumnHolder(String name, boolean grouped, double... arrayData)
Construct a new set of column data.ColumnHolder(String name, boolean grouped, float... arrayData)
Construct a new set of column data.ColumnHolder(String name, boolean grouped, int... arrayData)
Construct a new set of column data.ColumnHolder(String name, boolean grouped, long... arrayData)
Construct a new set of column data.ColumnHolder(String name, boolean grouped, short... arrayData)
Construct a new set of column data.ColumnHolder(String name, boolean grouped, T... arrayData)
Construct a new set of column data.ColumnHolder(String name, Class<T> clazz, T... arrayData)
Construct a new set of column data. -
Method Summary
Modifier and Type Method Description Optional<Object>
getArrayData()
static ColumnHolder
getBooleanColumnHolder(String name, boolean grouped, byte... data)
Create a column holder for a Boolean column where the calues are represented as bytes.Chunk<Attributes.Values>
getChunk()
Optional<Chunk<Attributes.Values>>
getChunkData()
static ColumnHolder
getColumnHolderFromArray(String name, boolean grouped, Object data)
Create a column holder from an array object, inferring the data type from the given array object.ColumnSource
getColumnSource()
Gets a column source for the data.static ColumnHolder
getDateTimeColumnHolder(String name, boolean grouped, long... data)
Create a column holder for a DateTime column where the values are represented as longs.static ColumnHolder
getDateTimeColumnHolder(String name, boolean grouped, Chunk<Attributes.Values> data)
Create a column holder for a DateTime column where the values are represented as longs.static ColumnHolder
makeForChunk(String name, Class<?> type, boolean grouped, Chunk<Attributes.Values> chunkData)
int
size()
-
Field Details
-
ZERO_LENGTH_COLUMN_HOLDER_ARRAY
-
name
The name of the column. -
type
The data type of the column. -
grouped
public final boolean groupedShould the result column be grouped (used for test data only).
-
-
Constructor Details
-
ColumnHolder
Construct a new set of column data.- Type Parameters:
T
- column element type- Parameters:
name
- column namegrouped
- true if the column is grouped; false otherwisearrayData
- column data
-
ColumnHolder
Construct a new set of column data.- Type Parameters:
T
- column element type- Parameters:
name
- column namearrayData
- column data
-
ColumnHolder
Construct a new set of column data.- Parameters:
name
- column namegrouped
- true if the column is grouped; false otherwisearrayData
- column data
-
ColumnHolder
Construct a new set of column data.- Parameters:
name
- column namegrouped
- true if the column is grouped; false otherwisearrayData
- column data
-
ColumnHolder
Construct a new set of column data.- Parameters:
name
- column namegrouped
- true if the column is grouped; false otherwisearrayData
- column data
-
ColumnHolder
Construct a new set of column data.- Parameters:
name
- column namegrouped
- true if the column is grouped; false otherwisearrayData
- column data
-
ColumnHolder
Construct a new set of column data.- Parameters:
name
- column namegrouped
- true if the column is grouped; false otherwisearrayData
- column data
-
ColumnHolder
Construct a new set of column data.- Parameters:
name
- column namegrouped
- true if the column is grouped; false otherwisearrayData
- column data
-
ColumnHolder
Construct a new set of column data.- Parameters:
name
- column namegrouped
- true if the column is grouped; false otherwisearrayData
- column data
-
ColumnHolder
protected ColumnHolder(boolean chunkSentinel, String name, Class type, boolean grouped, Chunk<Attributes.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 nametype
- abstract data type for the columngrouped
- true if the column is grouped; false otherwisechunkData
- column data
-
-
Method Details
-
makeForChunk
public static ColumnHolder makeForChunk(String name, Class<?> type, boolean grouped, Chunk<Attributes.Values> chunkData) -
getDateTimeColumnHolder
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 (seegetColumnSource()
).- Parameters:
name
- column namegrouped
- true if the column is grouped; false otherwisedata
- column data (long integers representing nanos since the epoch)- Returns:
- a DBDateTime column holder implemented with longs for storage
-
getDateTimeColumnHolder
public static ColumnHolder getDateTimeColumnHolder(String name, boolean grouped, Chunk<Attributes.Values> 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 (seegetColumnSource()
).- Parameters:
name
- column namegrouped
- true if the column is grouped; false otherwisedata
- column data (long integers representing nanos since the epoch)- Returns:
- a DBDateTime column holder implemented with longs for storage
-
getBooleanColumnHolder
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 namegrouped
- true if the column is grouped; false otherwisedata
- column data (byte values where 1 represents true, 0 represents false, and null otherwise)- Returns:
- a Boolean column holder
-
getColumnHolderFromArray
Create a column holder from an array object, inferring the data type from the given array object.- Parameters:
name
- column namegrouped
- true if the column is grouped; false otherwisedata
- an object holding the column data (must be an array)- Returns:
- a column holder with a type matching the component type of the provided array
-
getColumnSource
Gets a column source for the data. Other than the special case of DBDateTime 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
-
getChunkData
-
getChunk
-
size
public int size()
-