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 booleanalwaysEvaluate()Should we ignore modified column sets, and always re-evaluate this column (if appropriate)?SelectColumnalwaysEvaluateCopy()Create a copy of this SelectColumn that always re-evaluates (if appropriate).SwitchColumncopy()Create a copy of this SelectColumn.booleandisallowRefresh()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.ColumnSourcegetDataView()Get aColumnSourcethat can be used to access the data on demand.ColumnSourcegetLazyView()Returns a lazily computed view of this column.MatchPairgetMatchPair()Get a MatchPair for this column, if applicable.StringgetName()Get the name of the resultant column.SelectColumngetRealColumn()ClassgetReturnedType()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.booleanisRetain()WritableSourcenewDestInstance(long size)Create a newWritableSourcewith sufficient capacity for the rows in the index.StringtoString()
-
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:SelectColumnInitialize the SelectColumn using the input table and return a list of underlying columns that this SelectColumn is dependent upon.- Specified by:
initInputsin 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:SelectColumnInitialize the column from the provided set of underlying columns and index.- Specified by:
initInputsin 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:SelectColumnInitialize any internal column definitions from the provided initial.- Specified by:
initDefin 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:SelectColumnGet the data type stored in the resultant column.- Specified by:
getReturnedTypein interfaceSelectColumn- Returns:
- the type
-
getColumns
Description copied from interface:SelectColumnGet 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:
getColumnsin interfaceSelectColumn- Returns:
- the columns used in this SelectColumn
-
getColumnArrays
Description copied from interface:SelectColumnGet 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:
getColumnArraysin interfaceSelectColumn- Returns:
- the list of column arrays used
-
getDataView
Description copied from interface:SelectColumnGet aColumnSourcethat can be used to access the data on demand.- Specified by:
getDataViewin interfaceSelectColumn- Returns:
- a
ColumnSource
-
getLazyView
Description copied from interface:SelectColumnReturns a lazily computed view of this column.- Specified by:
getLazyViewin interfaceSelectColumn- Returns:
- a lazily computed column source
-
getName
Description copied from interface:SelectColumnGet the name of the resultant column.- Specified by:
getNamein interfaceSelectColumn- Returns:
- the name of the column
-
getMatchPair
Description copied from interface:SelectColumnGet a MatchPair for this column, if applicable.- Specified by:
getMatchPairin interfaceSelectColumn- Returns:
-
newDestInstance
Description copied from interface:SelectColumnCreate a newWritableSourcewith sufficient capacity for the rows in the index.- Specified by:
newDestInstancein interfaceSelectColumn- Parameters:
size- The number of rows to allocate- Returns:
- a new
WritableSourcewith sufficient capacity for 'dataSubset'
-
isRetain
public boolean isRetain()- Specified by:
isRetainin interfaceSelectColumn- Returns:
-
toString
-
getRealColumn
-
disallowRefresh
public boolean disallowRefresh()Description copied from interface:SelectColumnShould 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:
disallowRefreshin interfaceSelectColumn
-
copy
Description copied from interface:SelectColumnCreate a copy of this SelectColumn.- Specified by:
copyin interfaceSelectColumn- Returns:
- an independent copy of this SelectColumn.
-
alwaysEvaluateCopy
Description copied from interface:SelectColumnCreate a copy of this SelectColumn that always re-evaluates (if appropriate).- Specified by:
alwaysEvaluateCopyin interfaceSelectColumn
-
alwaysEvaluate
public boolean alwaysEvaluate()Description copied from interface:SelectColumnShould we ignore modified column sets, and always re-evaluate this column (if appropriate)?- Specified by:
alwaysEvaluatein interfaceSelectColumn
-