Class RedefinableTable

All Implemented Interfaces:
com.fishlib.base.log.LogOutputAppendable, NotificationQueue.Dependency, Deflatable<Table>, Table, LivenessManager, LivenessNode, LivenessReferent, LongSizedDataStructure, DynamicNode, DynamicTable, NotificationStepReceiver, NotificationStepSource, SystemicObject, Serializable
Direct Known Subclasses:
DeferredViewTable, SourceTable

public abstract class RedefinableTable extends UncoalescedTable
An uncoalesced table that may be redefined without triggering a UncoalescedTable.coalesce().
See Also:
  • Constructor Details

    • RedefinableTable

      protected RedefinableTable(@NotNull TableDefinition definition, @NotNull String description)
  • Method Details

    • view

      public Table view(SelectColumn... columns)
      Specified by:
      view in interface Table
      Overrides:
      view in class UncoalescedTable
    • updateView

      public Table updateView(SelectColumn... columns)
      Specified by:
      updateView in interface Table
      Overrides:
      updateView in class UncoalescedTable
    • dropColumns

      public Table dropColumns(String... columnNames)
      Specified by:
      dropColumns in interface Table
      Overrides:
      dropColumns in class UncoalescedTable
    • renameColumns

      public Table renameColumns(MatchPair... pairs)
      Specified by:
      renameColumns in interface Table
      Overrides:
      renameColumns in class UncoalescedTable
    • redefine

      protected abstract Table redefine(TableDefinition newDefinition)
      Redefine this table with a subset of its current columns.
      Parameters:
      newDefinition - A TableDefinition with a subset of this RedefinableTable's ColumnDefinitions.
      Returns:
    • redefine

      protected abstract Table redefine(TableDefinition newDefinitionExternal, TableDefinition newDefinitionInternal, SelectColumn[] viewColumns, Map<String,Set<String>> columnDependency)
      Redefine this table with a subset of its current columns, with a potentially-differing definition to present to external interfaces and one or more select columns to apply.
      Parameters:
      newDefinitionExternal - A TableDefinition that represents the results of redefine(newDefinitionInternal).view(viewColumns).
      newDefinitionInternal - A TableDefinition with a subset of this RedefinableTable's ColumnDefinitions.
      viewColumns - A set of SelectColumns to apply in order to transform a table with newDefinitionInternal to a table with newDefinitionExternal.
      columnDependency -
      Returns: