Class WhereFilterInvertedImpl
java.lang.Object
io.deephaven.util.referencecounting.ReferenceCounted
io.deephaven.engine.liveness.ReferenceCountedLivenessReferent
io.deephaven.engine.liveness.ReferenceCountedLivenessNode
io.deephaven.engine.liveness.LivenessArtifact
io.deephaven.engine.table.impl.select.WhereFilterLivenessArtifactImpl
io.deephaven.engine.table.impl.select.WhereFilterDelegatingBase
io.deephaven.engine.table.impl.select.WhereFilterInvertedImpl
- All Implemented Interfaces:
ConcurrencyControl<Filter>,Expression,Filter,LogOutputAppendable,LivenessManager,LivenessNode,LivenessReferent,DependencyStreamProvider,WhereFilter,WhereFilterDelegating,Serializable
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.deephaven.engine.table.impl.select.WhereFilter
WhereFilter.PreviousFilteringNotSupported, WhereFilter.RecomputeListener, WhereFilter.Visitor<T> -
Field Summary
Fields inherited from class io.deephaven.engine.table.impl.select.WhereFilterDelegatingBase
filterFields inherited from class io.deephaven.engine.table.impl.select.WhereFilterLivenessArtifactImpl
updateGraphFields inherited from interface io.deephaven.engine.table.impl.select.WhereFilter
ZERO_LENGTH_WHERE_FILTER_ARRAY -
Method Summary
Modifier and TypeMethodDescriptioncopy()Create a copy of this WhereFilter.@NotNull WritableRowSetFilter selection to only matching rows.@NotNull WritableRowSetfilterInverse(@NotNull RowSet selection, @NotNull RowSet fullSet, @NotNull Table table, boolean usePrev) Filter selection to only non-matching rows.Returns the wrapped filter if and only if the wrapped filter accepts the same rows as this filter.static WhereFilterof(WhereFilter filter) toString()final <T> Twalk(WhereFilter.Visitor<T> visitor) Methods inherited from class io.deephaven.engine.table.impl.select.WhereFilterDelegatingBase
beginOperation, canMemoize, equals, getColumnArrays, getColumns, getDependencyStream, getWrappedFilter, hashCode, init, init, isAutomatedFilter, isRefreshing, isSerial, isSimpleFilter, permitParallelization, setAutomatedFilter, setRecomputeListener, validateSafeForRefreshMethods inherited from class io.deephaven.engine.liveness.LivenessArtifact
manageWithCurrentScopeMethods inherited from class io.deephaven.engine.liveness.ReferenceCountedLivenessNode
ensureCleanupOnGC, findAnyManagedReferent, forEachManagedReference, getWeakReference, initializeTransientFieldsForLiveness, onReferenceCountAtZero, tryManage, tryUnmanage, tryUnmanageMethods inherited from class io.deephaven.engine.liveness.ReferenceCountedLivenessReferent
destroy, dropReference, tryRetainReferenceMethods inherited from class io.deephaven.util.referencecounting.ReferenceCounted
append, decrementReferenceCount, forceReferenceCountToZero, getReferenceCountDebug, incrementReferenceCount, resetReferenceCount, tryDecrementReferenceCount, tryIncrementReferenceCountMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface io.deephaven.engine.liveness.LivenessManager
manage, unmanage, unmanageMethods inherited from interface io.deephaven.engine.liveness.LivenessReferent
dropReference, getReferentDescription, retainReference, tryRetainReferenceMethods inherited from interface io.deephaven.engine.table.impl.select.WhereFilter
filter, hasVirtualRowVariables, invert, walk, walk, withDeclaredBarriers, withRespectedBarriers, withSerial
-
Method Details
-
of
-
maybeUnwrapFilter
Description copied from interface:WhereFilterDelegatingReturns the wrapped filter if and only if the wrapped filter accepts the same rows as this filter. For example, serial and barrier wrappers do not change functionality and will return the wrapped filter. Filters such asWhereFilterInvertedImplthat perform a transformation should return themselves. -
filter
@NotNull public @NotNull WritableRowSet filter(@NotNull @NotNull RowSet selection, @NotNull @NotNull RowSet fullSet, @NotNull @NotNull Table table, boolean usePrev) Description copied from interface:WhereFilterFilter selection to only matching rows.- Specified by:
filterin interfaceWhereFilter- Overrides:
filterin classWhereFilterDelegatingBase- Parameters:
selection- the indices that should be filtered. The selection must be a subset of fullSet, and may include rows that the engine determines need not be evaluated to produce the result. Implementations may not mutate orcloseselection.fullSet- the complete RowSet of the table to filter. The fullSet is used for calculating variables like "i" or "ii". Implementations may not mutate orclosefullSet.table- the table to filterusePrev- true if previous values should be used. Implementing previous value filtering is optional, and aWhereFilter.PreviousFilteringNotSupportedexception may be thrown. If a PreviousFiltering exception is thrown, then the caller must acquire the PeriodicUpdateGraph lock.- Returns:
- The subset of selection accepted by this filter; ownership passes to the caller
-
filterInverse
@NotNull public @NotNull WritableRowSet filterInverse(@NotNull @NotNull RowSet selection, @NotNull @NotNull RowSet fullSet, @NotNull @NotNull Table table, boolean usePrev) Description copied from interface:WhereFilterFilter selection to only non-matching rows.Defaults to
try (final WritableRowSet regular = filter(selection, fullSet, table, usePrev)) { return selection.minus(regular); }Implementations are encouraged to override this when they can provide more efficient implementations.
- Specified by:
filterInversein interfaceWhereFilter- Overrides:
filterInversein classWhereFilterDelegatingBase- Parameters:
selection- the indices that should be filtered. The selection must be a subset of fullSet, and may include rows that the engine determines need not be evaluated to produce the result. Implementations may not mutate orcloseselection.fullSet- the complete RowSet of the table to filter. The fullSet is used for calculating variables like "i" or "ii". Implementations may not mutate orclosefullSet.table- the table to filterusePrev- true if previous values should be used. Implementing previous value filtering is optional, and aWhereFilter.PreviousFilteringNotSupportedexception may be thrown. If a PreviousFiltering exception is thrown, then the caller must acquire the PeriodicUpdateGraph lock.- Returns:
- The subset of selection not accepted by this filter; ownership passes to the caller
-
copy
Description copied from interface:WhereFilterCreate a copy of this WhereFilter.- Returns:
- an independent copy of this WhereFilter.
-
toString
- Overrides:
toStringin classReferenceCounted
-
walk
Description copied from interface:WhereFilterThis method calls the appropriatevisitormethod based on the type ofthisWhereFilter. This will invoke the most specificWhereFilter.Visitormethod available.- Type Parameters:
T- the return value type- Parameters:
visitor- the visitor- Returns:
- the value
-