Class ComposedFilter

All Implemented Interfaces:
Expression, Filter, LogOutputAppendable, LivenessManager, LivenessNode, LivenessReferent, DependencyStreamProvider, WhereFilter, Serializable
Direct Known Subclasses:
ConjunctiveFilter, DisjunctiveFilter

public abstract class ComposedFilter extends WhereFilterLivenessArtifactImpl implements DependencyStreamProvider
See Also:
  • Method Details

    • getColumns

      public List<String> getColumns()
      Description copied from interface: WhereFilter
      Get the columns required by this select filter.

      This filter must already be initialized before calling this method.

      Specified by:
      getColumns in interface WhereFilter
      Returns:
      the columns used as input by this select filter.
    • getColumnArrays

      public List<String> getColumnArrays()
      Description copied from interface: WhereFilter
      Get the array columns required by this select filter.

      This filter must already be initialized before calling this method.

      Specified by:
      getColumnArrays in interface WhereFilter
      Returns:
      the columns used as array input by this select filter.
    • init

      public void init(@NotNull @NotNull TableDefinition tableDefinition)
      Description copied from interface: WhereFilter
      Initialize this filter given the table definition. If this filter has already been initialized, this should be a no-op, or optionally validate that the table definition is compatible with previous initialization.
      Specified by:
      init in interface WhereFilter
      Parameters:
      tableDefinition - the definition of the table that will be filtered
    • init

      public void init(@NotNull @NotNull TableDefinition tableDefinition, @NotNull @NotNull QueryCompilerRequestProcessor compilationProcessor)
      Description copied from interface: WhereFilter
      Initialize this select filter given the table definition
      Specified by:
      init in interface WhereFilter
      Parameters:
      tableDefinition - the definition of the table that will be filtered
      compilationProcessor - the processor to use for compilation
    • beginOperation

      public SafeCloseable beginOperation(@NotNull @NotNull Table sourceTable)
      Description copied from interface: WhereFilter
      Perform any operation-level initialization necessary using the Table that will be filtered with this WhereFilter, e.g. gathering data indexes. This method will always be called exactly once, before gathering any dependencies or filtering data.
      Specified by:
      beginOperation in interface WhereFilter
      Parameters:
      sourceTable - The Table that will be filtered with this WhereFilter
      Returns:
      A SafeCloseable that will be closed when the operation is complete, whether successful or not
    • validateSafeForRefresh

      public void validateSafeForRefresh(@NotNull @NotNull BaseTable<?> sourceTable)
      Description copied from interface: WhereFilter
      Validate that this WhereFilter is safe to use in the context of the provided sourceTable.
      Specified by:
      validateSafeForRefresh in interface WhereFilter
      Parameters:
      sourceTable - the source table
    • isSimpleFilter

      public boolean isSimpleFilter()
      Specified by:
      isSimpleFilter in interface WhereFilter
      Returns:
      true if this is a filter that does not require any code execution, but rather is handled entirely within the database engine.
    • getComponentFilters

      protected WhereFilter[] getComponentFilters()
    • getFilters

      @TestUseOnly public List<WhereFilter> getFilters()
    • setRecomputeListener

      public void setRecomputeListener(WhereFilter.RecomputeListener listener)
      Description copied from interface: WhereFilter
      Set the WhereFilter.RecomputeListener that should be notified if results based on this WhereFilter must be recomputed.
      Specified by:
      setRecomputeListener in interface WhereFilter
      Parameters:
      listener - The WhereFilter.RecomputeListener to notify
    • isRefreshing

      public boolean isRefreshing()
      Description copied from interface: WhereFilter
      Is this filter refreshing?
      Specified by:
      isRefreshing in interface WhereFilter
      Returns:
      if this filter is refreshing
    • getDependencyStream

      public Stream<NotificationQueue.Dependency> getDependencyStream()
      Description copied from interface: DependencyStreamProvider
      Return a stream of dependencies for this object.
      Specified by:
      getDependencyStream in interface DependencyStreamProvider
    • canMemoize

      public boolean canMemoize()
      Description copied from interface: WhereFilter
      Can this filter operation be memoized?
      Specified by:
      canMemoize in interface WhereFilter
      Returns:
      if this filter can be memoized
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • permitParallelization

      public boolean permitParallelization()
      Specified by:
      permitParallelization in interface WhereFilter
      Returns:
      if this filter can be applied in parallel