Class SelectAndViewAnalyzer

java.lang.Object
com.illumon.iris.db.v2.select.analyzers.SelectAndViewAnalyzer
All Implemented Interfaces:
com.fishlib.base.log.LogOutputAppendable
Direct Known Subclasses:
BaseLayer, DependencyLayerBase, RedirectionLayer

public abstract class SelectAndViewAnalyzer extends Object implements com.fishlib.base.log.LogOutputAppendable
  • Constructor Details

    • SelectAndViewAnalyzer

      public SelectAndViewAnalyzer(int layerIndex)
  • Method Details

    • create

      public static SelectAndViewAnalyzerWrapper create(SelectAndViewAnalyzer.Mode mode, Map<String,ColumnSource> columnSources, Index index, ModifiedColumnSet parentMcs, boolean publishTheseSources, boolean useShiftedCols, SelectColumn... selectColumns)
    • setAllNewColumns

      public void setAllNewColumns(BitSet bitset)
      Set the bits in bitset that represent all of the new columns, this is used to identify when the select or update operaiton is complete
      Parameters:
      bitset - the bitset to manipulate.
    • getAllColumnSources

      public final Map<String,ColumnSource> getAllColumnSources()
    • getNewColumnSources

      public final Map<String,ColumnSource> getNewColumnSources()
    • getPublishedColumnSources

      public final Map<String,ColumnSource> getPublishedColumnSources()
    • applyUpdate

      Apply this update to this SelectAndViewAnalyzer.
      Parameters:
      upstream - the upstream update
      toClear - rows that used to exist and no longer exist
      helper - convenience class that memoizes reusable calculations for this update
      onCompletion - called when an inner column is complete, the outer layer should pass the completion on to other layers and if it all of it's dependencies have been satisfied schedule execution of that column update
    • calcEffects

      public final Map<String,String[]> calcEffects(boolean forcePublishAllResources)
      Our job here is to calculate the effects: a map from incoming column to a list of columns that it effects. We do this in two stages. In the first stage we create a map from column to (set of dependent columns). In the second stage we reverse that map.
    • getInner

      public abstract SelectAndViewAnalyzer getInner()
    • updateColumnDefinitionsFromTopLayer

      public abstract void updateColumnDefinitionsFromTopLayer(Map<String,com.illumon.dataobjects.ColumnDefinition> columnDefinitions)
    • startTrackingPrev

      public abstract void startTrackingPrev()
    • futureCompletionHandler

      public SelectAndViewAnalyzer.SelectLayerCompletionHandler futureCompletionHandler(CompletableFuture<Void> waitForResult)
      Create a completion handler that signals a future when the update is completed.
      Parameters:
      waitForResult - a void future indicating success or failure
      Returns:
      a completion handler that will signal the future
    • toString

      public String toString()
      Overrides:
      toString in class Object