Class AbstractUniDataStream<Solution_,A>
java.lang.Object
ai.timefold.solver.core.impl.move.streams.dataset.AbstractDataStream<Solution_>
ai.timefold.solver.core.impl.move.streams.dataset.AbstractUniDataStream<Solution_,A>
- All Implemented Interfaces:
BavetStream,DataStream<Solution_>,UniDataStream<Solution_,A>
- Direct Known Subclasses:
AftBridgeUniDataStream,ForEachExcludingPinnedDataStream,ForEachFromSolutionDataStream,ForEachIncludingPinnedDataStream,ForeBridgeUniDataStream
@NullMarked
public abstract class AbstractUniDataStream<Solution_,A>
extends AbstractDataStream<Solution_>
implements UniDataStream<Solution_,A>
-
Field Summary
Fields inherited from class ai.timefold.solver.core.impl.move.streams.dataset.AbstractDataStream
childStreamList, dataStreamFactory, parent -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractUniDataStream(DataStreamFactory<Solution_> dataStreamFactory) protectedAbstractUniDataStream(DataStreamFactory<Solution_> dataStreamFactory, @Nullable AbstractDataStream<Solution_> parent) -
Method Summary
Modifier and TypeMethodDescriptionfinal UniDataStream<Solution_,A> Exhaustively test each fact against thePredicateand match ifPredicate.test(Object)returns true.final <B> UniDataStream<Solution_,A> ifExists(UniDataStream<Solution_, B> otherStream, BiJoiner<A, B>... joiners) Create a newUniDataStreamfor every A where B exists for which allBiJoiners are true (for the properties it extracts from both facts).final <B> UniDataStream<Solution_,A> Create a newUniDataStreamfor every A where B exists for which allBiJoiners are true (for the properties they extract from both facts).final <B> UniDataStream<Solution_,A> ifNotExists(UniDataStream<Solution_, B> otherStream, BiJoiner<A, B>... joiners) Create a newUniDataStreamfor every A where B does not exist for which theBiJoiners are true (for the properties they extract from both facts).final <B> UniDataStream<Solution_,A> ifNotExists(Class<B> otherClass, BiJoiner<A, B>... joiners) Create a newUniDataStreamfor every A where B does not exist for which theBiJoiners are true (for the properties they extract from both facts).Methods inherited from class ai.timefold.solver.core.impl.move.streams.dataset.AbstractDataStream
assertEmptyChildStreamList, buildNode, collectActiveDataStreams, getChildStreamList, getParent, getTupleSource, shareAndAddChildMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ai.timefold.solver.core.impl.move.streams.maybeapi.stream.UniDataStream
ifExistsOther, ifNotExistsOther
-
Constructor Details
-
AbstractUniDataStream
-
AbstractUniDataStream
protected AbstractUniDataStream(DataStreamFactory<Solution_> dataStreamFactory, @Nullable AbstractDataStream<Solution_> parent)
-
-
Method Details
-
filter
Description copied from interface:UniDataStreamExhaustively test each fact against thePredicateand match ifPredicate.test(Object)returns true.- Specified by:
filterin interfaceUniDataStream<Solution_,A>
-
ifExists
@SafeVarargs public final <B> UniDataStream<Solution_,A> ifExists(Class<B> otherClass, BiJoiner<A, B>... joiners) Description copied from interface:UniDataStreamCreate a newUniDataStreamfor every A where B exists for which allBiJoiners are true (for the properties they extract from both facts).- Specified by:
ifExistsin interfaceUniDataStream<Solution_,A> - Type Parameters:
B- the type of the second matched fact- Returns:
- a stream that matches every A where B exists for which the
BiJoiners are true
-
ifExists
@SafeVarargs public final <B> UniDataStream<Solution_,A> ifExists(UniDataStream<Solution_, B> otherStream, BiJoiner<A, B>... joiners) Description copied from interface:UniDataStreamCreate a newUniDataStreamfor every A where B exists for which allBiJoiners are true (for the properties it extracts from both facts).- Specified by:
ifExistsin interfaceUniDataStream<Solution_,A> - Type Parameters:
B- the type of the second matched fact- Returns:
- a stream that matches every A where B exists for which the
BiJoiners are true
-
ifNotExists
@SafeVarargs public final <B> UniDataStream<Solution_,A> ifNotExists(Class<B> otherClass, BiJoiner<A, B>... joiners) Description copied from interface:UniDataStreamCreate a newUniDataStreamfor every A where B does not exist for which theBiJoiners are true (for the properties they extract from both facts).- Specified by:
ifNotExistsin interfaceUniDataStream<Solution_,A> - Type Parameters:
B- the type of the second matched fact- Returns:
- a stream that matches every A where B does not exist for which the
BiJoiners are true
-
ifNotExists
@SafeVarargs public final <B> UniDataStream<Solution_,A> ifNotExists(UniDataStream<Solution_, B> otherStream, BiJoiner<A, B>... joiners) Description copied from interface:UniDataStreamCreate a newUniDataStreamfor every A where B does not exist for which theBiJoiners are true (for the properties they extract from both facts).- Specified by:
ifNotExistsin interfaceUniDataStream<Solution_,A> - Type Parameters:
B- the type of the second matched fact- Returns:
- a stream that matches every A where B does not exist for which the
BiJoiners are true
-
createDataset
-