Package com.illumon.iris.db.v2.select
Class SwitchColumn
java.lang.Object
com.illumon.iris.db.v2.select.SwitchColumn
- All Implemented Interfaces:
SelectColumn
public class SwitchColumn extends Object implements SelectColumn
A
SelectColumn
that is backed by another SelectColumn
. This could be a SourceColumn
if this is
simply renaming another column, or it could be a FormulaColumn
if the input expression is more complex.-
Field Summary
Fields inherited from interface com.illumon.iris.db.v2.select.SelectColumn
ZERO_LENGTH_SELECT_COLUMN_ARRAY
-
Constructor Summary
Constructors Constructor Description SwitchColumn(String columnName, String expression, FormulaParserConfiguration parserConfiguration)
SwitchColumn(String columnName, String expression, FormulaParserConfiguration parserConfiguration, boolean alwaysEvaluate)
-
Method Summary
Modifier and Type Method Description boolean
alwaysEvaluate()
Should we ignore modified column sets, and always re-evaluate this column (if appropriate)?SelectColumn
alwaysEvaluateCopy()
Create a copy of this SelectColumn that always re-evaluates (if appropriate).SwitchColumn
copy()
Create a copy of this SelectColumn.boolean
disallowRefresh()
Should we disallow use of this column for refreshing tables? Some formulas can not be reliably computed with a refreshing table, therefore we will refuse to compute those values.List<String>
getColumnArrays()
Get a list of the names of column arrays used in this SelectColumn.List<String>
getColumns()
Get a list of the names of columns used in this SelectColumn.ColumnSource
getDataView()
Get aColumnSource
that can be used to access the data on demand.ColumnSource
getLazyView()
Returns a lazily computed view of this column.MatchPair
getMatchPair()
Get a MatchPair for this column, if applicable.String
getName()
Get the name of the resultant column.SelectColumn
getRealColumn()
Class
getReturnedType()
Get the data type stored in the resultant column.List<String>
initDef(Map<String,com.illumon.dataobjects.ColumnDefinition> columnDefinitionMap)
Initialize any internal column definitions from the provided initial.List<String>
initInputs(Table table)
Initialize the SelectColumn using the input table and return a list of underlying columns that this SelectColumn is dependent upon.List<String>
initInputs(Index index, Map<String,? extends ColumnSource> columnsOfInterest)
Initialize the column from the provided set of underlying columns and index.boolean
isRetain()
WritableSource
newDestInstance(long size)
Create a newWritableSource
with sufficient capacity for the rows in the index.String
toString()
-
Constructor Details
-
SwitchColumn
public SwitchColumn(String columnName, String expression, FormulaParserConfiguration parserConfiguration) -
SwitchColumn
public SwitchColumn(String columnName, String expression, FormulaParserConfiguration parserConfiguration, boolean alwaysEvaluate)
-
-
Method Details
-
initInputs
Description copied from interface:SelectColumn
Initialize the SelectColumn using the input table and return a list of underlying columns that this SelectColumn is dependent upon.- Specified by:
initInputs
in interfaceSelectColumn
- Parameters:
table
- the table to initialize internals from- Returns:
- a list containing all columns from 'table' that the result depends on
-
initInputs
Description copied from interface:SelectColumn
Initialize the column from the provided set of underlying columns and index.- Specified by:
initInputs
in interfaceSelectColumn
- Parameters:
index
- the base indexcolumnsOfInterest
- the input columns- Returns:
- a list of columns on which the result of this is dependent
-
initDef
public List<String> initDef(Map<String,com.illumon.dataobjects.ColumnDefinition> columnDefinitionMap)Description copied from interface:SelectColumn
Initialize any internal column definitions from the provided initial.- Specified by:
initDef
in interfaceSelectColumn
- Parameters:
columnDefinitionMap
- the starting set of column definitions- Returns:
- a list of columns on which the result of this is dependent
-
getReturnedType
Description copied from interface:SelectColumn
Get the data type stored in the resultant column.- Specified by:
getReturnedType
in interfaceSelectColumn
- Returns:
- the type
-
getColumns
Description copied from interface:SelectColumn
Get a list of the names of columns used in this SelectColumn. Behavior is undefined if none of the init* methods have been called yet.- Specified by:
getColumns
in interfaceSelectColumn
- Returns:
- the columns used in this SelectColumn
-
getColumnArrays
Description copied from interface:SelectColumn
Get a list of the names of column arrays used in this SelectColumn. Behavior is undefined if none of the init* methods have been called yet.- Specified by:
getColumnArrays
in interfaceSelectColumn
- Returns:
- the list of column arrays used
-
getDataView
Description copied from interface:SelectColumn
Get aColumnSource
that can be used to access the data on demand.- Specified by:
getDataView
in interfaceSelectColumn
- Returns:
- a
ColumnSource
-
getLazyView
Description copied from interface:SelectColumn
Returns a lazily computed view of this column.- Specified by:
getLazyView
in interfaceSelectColumn
- Returns:
- a lazily computed column source
-
getName
Description copied from interface:SelectColumn
Get the name of the resultant column.- Specified by:
getName
in interfaceSelectColumn
- Returns:
- the name of the column
-
getMatchPair
Description copied from interface:SelectColumn
Get a MatchPair for this column, if applicable.- Specified by:
getMatchPair
in interfaceSelectColumn
- Returns:
-
newDestInstance
Description copied from interface:SelectColumn
Create a newWritableSource
with sufficient capacity for the rows in the index.- Specified by:
newDestInstance
in interfaceSelectColumn
- Parameters:
size
- The number of rows to allocate- Returns:
- a new
WritableSource
with sufficient capacity for 'dataSubset'
-
isRetain
public boolean isRetain()- Specified by:
isRetain
in interfaceSelectColumn
- Returns:
-
toString
-
getRealColumn
-
disallowRefresh
public boolean disallowRefresh()Description copied from interface:SelectColumn
Should we disallow use of this column for refreshing tables? Some formulas can not be reliably computed with a refreshing table, therefore we will refuse to compute those values.- Specified by:
disallowRefresh
in interfaceSelectColumn
-
copy
Description copied from interface:SelectColumn
Create a copy of this SelectColumn.- Specified by:
copy
in interfaceSelectColumn
- Returns:
- an independent copy of this SelectColumn.
-
alwaysEvaluateCopy
Description copied from interface:SelectColumn
Create a copy of this SelectColumn that always re-evaluates (if appropriate).- Specified by:
alwaysEvaluateCopy
in interfaceSelectColumn
-
alwaysEvaluate
public boolean alwaysEvaluate()Description copied from interface:SelectColumn
Should we ignore modified column sets, and always re-evaluate this column (if appropriate)?- Specified by:
alwaysEvaluate
in interfaceSelectColumn
-