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.
  • Constructor Details

  • Method Details

    • initInputs

      public List<String> initInputs(Table table)
      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 interface SelectColumn
      Parameters:
      table - the table to initialize internals from
      Returns:
      a list containing all columns from 'table' that the result depends on
    • initInputs

      public List<String> initInputs(Index index, Map<String,? extends ColumnSource> columnsOfInterest)
      Description copied from interface: SelectColumn
      Initialize the column from the provided set of underlying columns and index.
      Specified by:
      initInputs in interface SelectColumn
      Parameters:
      index - the base index
      columnsOfInterest - 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 interface SelectColumn
      Parameters:
      columnDefinitionMap - the starting set of column definitions
      Returns:
      a list of columns on which the result of this is dependent
    • getReturnedType

      public Class getReturnedType()
      Description copied from interface: SelectColumn
      Get the data type stored in the resultant column.
      Specified by:
      getReturnedType in interface SelectColumn
      Returns:
      the type
    • getColumns

      public List<String> 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 interface SelectColumn
      Returns:
      the columns used in this SelectColumn
    • getColumnArrays

      public List<String> 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 interface SelectColumn
      Returns:
      the list of column arrays used
    • getDataView

      @NotNull public ColumnSource getDataView()
      Description copied from interface: SelectColumn
      Get a ColumnSource that can be used to access the data on demand.
      Specified by:
      getDataView in interface SelectColumn
      Returns:
      a ColumnSource
    • getLazyView

      @NotNull public ColumnSource getLazyView()
      Description copied from interface: SelectColumn
      Returns a lazily computed view of this column.
      Specified by:
      getLazyView in interface SelectColumn
      Returns:
      a lazily computed column source
    • getName

      public String getName()
      Description copied from interface: SelectColumn
      Get the name of the resultant column.
      Specified by:
      getName in interface SelectColumn
      Returns:
      the name of the column
    • getMatchPair

      public MatchPair getMatchPair()
      Description copied from interface: SelectColumn
      Get a MatchPair for this column, if applicable.
      Specified by:
      getMatchPair in interface SelectColumn
      Returns:
    • newDestInstance

      public WritableSource newDestInstance(long size)
      Description copied from interface: SelectColumn
      Create a new WritableSource with sufficient capacity for the rows in the index.
      Specified by:
      newDestInstance in interface SelectColumn
      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 interface SelectColumn
      Returns:
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getRealColumn

      public SelectColumn 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 interface SelectColumn
    • copy

      public SwitchColumn copy()
      Description copied from interface: SelectColumn
      Create a copy of this SelectColumn.
      Specified by:
      copy in interface SelectColumn
      Returns:
      an independent copy of this SelectColumn.
    • alwaysEvaluateCopy

      public SelectColumn alwaysEvaluateCopy()
      Description copied from interface: SelectColumn
      Create a copy of this SelectColumn that always re-evaluates (if appropriate).
      Specified by:
      alwaysEvaluateCopy in interface SelectColumn
    • 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 interface SelectColumn