Class BavetAbstractTriConstraintStream<Solution_,A,B,C>
- java.lang.Object
-
- ai.timefold.solver.constraint.streams.common.AbstractConstraintStream<Solution_>
-
- ai.timefold.solver.constraint.streams.bavet.common.BavetAbstractConstraintStream<Solution_>
-
- ai.timefold.solver.constraint.streams.bavet.tri.BavetAbstractTriConstraintStream<Solution_,A,B,C>
-
- All Implemented Interfaces:
InnerTriConstraintStream<A,B,C>,ConstraintStream,TriConstraintStream<A,B,C>
- Direct Known Subclasses:
BavetAftBridgeTriConstraintStream,BavetForeBridgeTriConstraintStream,BavetJoinTriConstraintStream
public abstract class BavetAbstractTriConstraintStream<Solution_,A,B,C> extends BavetAbstractConstraintStream<Solution_> implements InnerTriConstraintStream<A,B,C>
-
-
Field Summary
-
Fields inherited from class ai.timefold.solver.constraint.streams.bavet.common.BavetAbstractConstraintStream
childStreamList, constraintFactory, parent
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedBavetAbstractTriConstraintStream(BavetConstraintFactory<Solution_> constraintFactory, BavetAbstractConstraintStream<Solution_> parent)protectedBavetAbstractTriConstraintStream(BavetConstraintFactory<Solution_> constraintFactory, RetrievalSemantics retrievalSemantics)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description TriConstraintStream<A,B,C>distinct()BavetAbstractTriConstraintStream<Solution_,A,B,C>filter(TriPredicate<A,B,C> predicate)<ResultC_> TriConstraintStream<A,B,ResultC_>flattenLast(Function<C,Iterable<ResultC_>> mapping)protected TriFunction<A,B,C,Collection<?>>getDefaultIndictedObjectsMapping()protected QuadFunction<A,B,C,Score<?>,DefaultConstraintJustification>getDefaultJustificationMapping()<GroupKey_>
UniConstraintStream<GroupKey_>groupBy(TriFunction<A,B,C,GroupKey_> groupKeyMapping)<GroupKey_,ResultContainer_,Result_>
BiConstraintStream<GroupKey_,Result_>groupBy(TriFunction<A,B,C,GroupKey_> groupKeyMapping, TriConstraintCollector<A,B,C,ResultContainer_,Result_> collector)<GroupKey_,ResultContainerB_,ResultB_,ResultContainerC_,ResultC_>
TriConstraintStream<GroupKey_,ResultB_,ResultC_>groupBy(TriFunction<A,B,C,GroupKey_> groupKeyMapping, TriConstraintCollector<A,B,C,ResultContainerB_,ResultB_> collectorB, TriConstraintCollector<A,B,C,ResultContainerC_,ResultC_> collectorC)<GroupKey_,ResultContainerB_,ResultB_,ResultContainerC_,ResultC_,ResultContainerD_,ResultD_>
QuadConstraintStream<GroupKey_,ResultB_,ResultC_,ResultD_>groupBy(TriFunction<A,B,C,GroupKey_> groupKeyMapping, TriConstraintCollector<A,B,C,ResultContainerB_,ResultB_> collectorB, TriConstraintCollector<A,B,C,ResultContainerC_,ResultC_> collectorC, TriConstraintCollector<A,B,C,ResultContainerD_,ResultD_> collectorD)<GroupKeyA_,GroupKeyB_>
BiConstraintStream<GroupKeyA_,GroupKeyB_>groupBy(TriFunction<A,B,C,GroupKeyA_> groupKeyAMapping, TriFunction<A,B,C,GroupKeyB_> groupKeyBMapping)<GroupKeyA_,GroupKeyB_,GroupKeyC_>
TriConstraintStream<GroupKeyA_,GroupKeyB_,GroupKeyC_>groupBy(TriFunction<A,B,C,GroupKeyA_> groupKeyAMapping, TriFunction<A,B,C,GroupKeyB_> groupKeyBMapping, TriFunction<A,B,C,GroupKeyC_> groupKeyCMapping)<GroupKeyA_,GroupKeyB_,GroupKeyC_,GroupKeyD_>
QuadConstraintStream<GroupKeyA_,GroupKeyB_,GroupKeyC_,GroupKeyD_>groupBy(TriFunction<A,B,C,GroupKeyA_> groupKeyAMapping, TriFunction<A,B,C,GroupKeyB_> groupKeyBMapping, TriFunction<A,B,C,GroupKeyC_> groupKeyCMapping, TriFunction<A,B,C,GroupKeyD_> groupKeyDMapping)<GroupKeyA_,GroupKeyB_,GroupKeyC_,ResultContainerD_,ResultD_>
QuadConstraintStream<GroupKeyA_,GroupKeyB_,GroupKeyC_,ResultD_>groupBy(TriFunction<A,B,C,GroupKeyA_> groupKeyAMapping, TriFunction<A,B,C,GroupKeyB_> groupKeyBMapping, TriFunction<A,B,C,GroupKeyC_> groupKeyCMapping, TriConstraintCollector<A,B,C,ResultContainerD_,ResultD_> collectorD)<GroupKeyA_,GroupKeyB_,ResultContainer_,Result_>
TriConstraintStream<GroupKeyA_,GroupKeyB_,Result_>groupBy(TriFunction<A,B,C,GroupKeyA_> groupKeyAMapping, TriFunction<A,B,C,GroupKeyB_> groupKeyBMapping, TriConstraintCollector<A,B,C,ResultContainer_,Result_> collector)<GroupKeyA_,GroupKeyB_,ResultContainerC_,ResultC_,ResultContainerD_,ResultD_>
QuadConstraintStream<GroupKeyA_,GroupKeyB_,ResultC_,ResultD_>groupBy(TriFunction<A,B,C,GroupKeyA_> groupKeyAMapping, TriFunction<A,B,C,GroupKeyB_> groupKeyBMapping, TriConstraintCollector<A,B,C,ResultContainerC_,ResultC_> collectorC, TriConstraintCollector<A,B,C,ResultContainerD_,ResultD_> collectorD)<ResultContainer_,Result_>
UniConstraintStream<Result_>groupBy(TriConstraintCollector<A,B,C,ResultContainer_,Result_> collector)<ResultContainerA_,ResultA_,ResultContainerB_,ResultB_>
BiConstraintStream<ResultA_,ResultB_>groupBy(TriConstraintCollector<A,B,C,ResultContainerA_,ResultA_> collectorA, TriConstraintCollector<A,B,C,ResultContainerB_,ResultB_> collectorB)<ResultContainerA_,ResultA_,ResultContainerB_,ResultB_,ResultContainerC_,ResultC_>
TriConstraintStream<ResultA_,ResultB_,ResultC_>groupBy(TriConstraintCollector<A,B,C,ResultContainerA_,ResultA_> collectorA, TriConstraintCollector<A,B,C,ResultContainerB_,ResultB_> collectorB, TriConstraintCollector<A,B,C,ResultContainerC_,ResultC_> collectorC)<ResultContainerA_,ResultA_,ResultContainerB_,ResultB_,ResultContainerC_,ResultC_,ResultContainerD_,ResultD_>
QuadConstraintStream<ResultA_,ResultB_,ResultC_,ResultD_>groupBy(TriConstraintCollector<A,B,C,ResultContainerA_,ResultA_> collectorA, TriConstraintCollector<A,B,C,ResultContainerB_,ResultB_> collectorB, TriConstraintCollector<A,B,C,ResultContainerC_,ResultC_> collectorC, TriConstraintCollector<A,B,C,ResultContainerD_,ResultD_> collectorD)<D> TriConstraintStream<A,B,C>ifExists(UniConstraintStream<D> otherStream, QuadJoiner<A,B,C,D>... joiners)<D> TriConstraintStream<A,B,C>ifExists(Class<D> otherClass, QuadJoiner<A,B,C,D>... joiners)<D> TriConstraintStream<A,B,C>ifExistsIncludingNullVars(Class<D> otherClass, QuadJoiner<A,B,C,D>... joiners)<D> TriConstraintStream<A,B,C>ifNotExists(UniConstraintStream<D> otherStream, QuadJoiner<A,B,C,D>... joiners)<D> TriConstraintStream<A,B,C>ifNotExists(Class<D> otherClass, QuadJoiner<A,B,C,D>... joiners)<D> TriConstraintStream<A,B,C>ifNotExistsIncludingNullVars(Class<D> otherClass, QuadJoiner<A,B,C,D>... joiners)<Score_ extends Score<Score_>>
TriConstraintBuilder<A,B,C,Score_>innerImpact(Score_ constraintWeight, ToIntTriFunction<A,B,C> matchWeigher, ScoreImpactType scoreImpactType)<Score_ extends Score<Score_>>
TriConstraintBuilder<A,B,C,Score_>innerImpact(Score_ constraintWeight, ToLongTriFunction<A,B,C> matchWeigher, ScoreImpactType scoreImpactType)<Score_ extends Score<Score_>>
TriConstraintBuilder<A,B,C,Score_>innerImpact(Score_ constraintWeight, TriFunction<A,B,C,BigDecimal> matchWeigher, ScoreImpactType scoreImpactType)<D> QuadConstraintStream<A,B,C,D>join(UniConstraintStream<D> otherStream, QuadJoiner<A,B,C,D>... joiners)<ResultA_> UniConstraintStream<ResultA_>map(TriFunction<A,B,C,ResultA_> mapping)-
Methods inherited from class ai.timefold.solver.constraint.streams.bavet.common.BavetAbstractConstraintStream
assertEmptyChildStreamList, buildConstraint, buildNode, collectActiveConstraintStreams, getChildStreamList, getConstraintFactory, getParent, getTupleSource, guaranteesDistinct, shareAndAddChild
-
Methods inherited from class ai.timefold.solver.constraint.streams.common.AbstractConstraintStream
buildConstraintWeightExtractor, buildConstraintWeightExtractor, getRetrievalSemantics
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface ai.timefold.solver.core.api.score.stream.ConstraintStream
getConstraintFactory
-
Methods inherited from interface ai.timefold.solver.constraint.streams.common.tri.InnerTriConstraintStream
getRetrievalSemantics, guaranteesDistinct, impact, impact, impact, impactBigDecimal, impactConfigurable, impactConfigurableBigDecimal, impactConfigurableLong, impactLong, join, penalize, penalize, penalize, penalizeBigDecimal, penalizeConfigurable, penalizeConfigurable, penalizeConfigurable, penalizeConfigurableBigDecimal, penalizeConfigurableLong, penalizeLong, reward, reward, reward, rewardBigDecimal, rewardConfigurable, rewardConfigurable, rewardConfigurable, rewardConfigurableBigDecimal, rewardConfigurableLong, rewardLong
-
Methods inherited from interface ai.timefold.solver.core.api.score.stream.tri.TriConstraintStream
ifExists, ifExists, ifExists, ifExists, ifExistsIncludingNullVars, ifExistsIncludingNullVars, ifExistsIncludingNullVars, ifExistsIncludingNullVars, ifNotExists, ifNotExists, ifNotExists, ifNotExists, ifNotExistsIncludingNullVars, ifNotExistsIncludingNullVars, ifNotExistsIncludingNullVars, ifNotExistsIncludingNullVars, impact, impact, impact, impactBigDecimal, impactBigDecimal, impactConfigurable, impactConfigurable, impactConfigurable, impactConfigurableBigDecimal, impactConfigurableBigDecimal, impactConfigurableLong, impactConfigurableLong, impactLong, impactLong, join, join, join, join, join, join, join, join, join, join, penalize, penalize, penalize, penalizeBigDecimal, penalizeBigDecimal, penalizeConfigurable, penalizeConfigurable, penalizeConfigurable, penalizeConfigurableBigDecimal, penalizeConfigurableBigDecimal, penalizeConfigurableLong, penalizeConfigurableLong, penalizeLong, penalizeLong, reward, reward, reward, rewardBigDecimal, rewardBigDecimal, rewardConfigurable, rewardConfigurable, rewardConfigurable, rewardConfigurableBigDecimal, rewardConfigurableBigDecimal, rewardConfigurableLong, rewardConfigurableLong, rewardLong, rewardLong
-
-
-
-
Constructor Detail
-
BavetAbstractTriConstraintStream
protected BavetAbstractTriConstraintStream(BavetConstraintFactory<Solution_> constraintFactory, BavetAbstractConstraintStream<Solution_> parent)
-
BavetAbstractTriConstraintStream
protected BavetAbstractTriConstraintStream(BavetConstraintFactory<Solution_> constraintFactory, RetrievalSemantics retrievalSemantics)
-
-
Method Detail
-
filter
public BavetAbstractTriConstraintStream<Solution_,A,B,C> filter(TriPredicate<A,B,C> predicate)
- Specified by:
filterin interfaceTriConstraintStream<Solution_,A,B>
-
join
@SafeVarargs public final <D> QuadConstraintStream<A,B,C,D> join(UniConstraintStream<D> otherStream, QuadJoiner<A,B,C,D>... joiners)
- Specified by:
joinin interfaceTriConstraintStream<Solution_,A,B>
-
ifExists
@SafeVarargs public final <D> TriConstraintStream<A,B,C> ifExists(Class<D> otherClass, QuadJoiner<A,B,C,D>... joiners)
- Specified by:
ifExistsin interfaceTriConstraintStream<Solution_,A,B>
-
ifExistsIncludingNullVars
@SafeVarargs public final <D> TriConstraintStream<A,B,C> ifExistsIncludingNullVars(Class<D> otherClass, QuadJoiner<A,B,C,D>... joiners)
- Specified by:
ifExistsIncludingNullVarsin interfaceTriConstraintStream<Solution_,A,B>
-
ifExists
@SafeVarargs public final <D> TriConstraintStream<A,B,C> ifExists(UniConstraintStream<D> otherStream, QuadJoiner<A,B,C,D>... joiners)
-
ifNotExists
@SafeVarargs public final <D> TriConstraintStream<A,B,C> ifNotExists(Class<D> otherClass, QuadJoiner<A,B,C,D>... joiners)
- Specified by:
ifNotExistsin interfaceTriConstraintStream<Solution_,A,B>
-
ifNotExistsIncludingNullVars
@SafeVarargs public final <D> TriConstraintStream<A,B,C> ifNotExistsIncludingNullVars(Class<D> otherClass, QuadJoiner<A,B,C,D>... joiners)
- Specified by:
ifNotExistsIncludingNullVarsin interfaceTriConstraintStream<Solution_,A,B>
-
ifNotExists
@SafeVarargs public final <D> TriConstraintStream<A,B,C> ifNotExists(UniConstraintStream<D> otherStream, QuadJoiner<A,B,C,D>... joiners)
-
groupBy
public <ResultContainer_,Result_> UniConstraintStream<Result_> groupBy(TriConstraintCollector<A,B,C,ResultContainer_,Result_> collector)
- Specified by:
groupByin interfaceTriConstraintStream<Solution_,A,B>
-
groupBy
public <ResultContainerA_,ResultA_,ResultContainerB_,ResultB_> BiConstraintStream<ResultA_,ResultB_> groupBy(TriConstraintCollector<A,B,C,ResultContainerA_,ResultA_> collectorA, TriConstraintCollector<A,B,C,ResultContainerB_,ResultB_> collectorB)
- Specified by:
groupByin interfaceTriConstraintStream<Solution_,A,B>
-
groupBy
public <ResultContainerA_,ResultA_,ResultContainerB_,ResultB_,ResultContainerC_,ResultC_> TriConstraintStream<ResultA_,ResultB_,ResultC_> groupBy(TriConstraintCollector<A,B,C,ResultContainerA_,ResultA_> collectorA, TriConstraintCollector<A,B,C,ResultContainerB_,ResultB_> collectorB, TriConstraintCollector<A,B,C,ResultContainerC_,ResultC_> collectorC)
- Specified by:
groupByin interfaceTriConstraintStream<Solution_,A,B>
-
groupBy
public <ResultContainerA_,ResultA_,ResultContainerB_,ResultB_,ResultContainerC_,ResultC_,ResultContainerD_,ResultD_> QuadConstraintStream<ResultA_,ResultB_,ResultC_,ResultD_> groupBy(TriConstraintCollector<A,B,C,ResultContainerA_,ResultA_> collectorA, TriConstraintCollector<A,B,C,ResultContainerB_,ResultB_> collectorB, TriConstraintCollector<A,B,C,ResultContainerC_,ResultC_> collectorC, TriConstraintCollector<A,B,C,ResultContainerD_,ResultD_> collectorD)
- Specified by:
groupByin interfaceTriConstraintStream<Solution_,A,B>
-
groupBy
public <GroupKey_> UniConstraintStream<GroupKey_> groupBy(TriFunction<A,B,C,GroupKey_> groupKeyMapping)
- Specified by:
groupByin interfaceTriConstraintStream<Solution_,A,B>
-
groupBy
public <GroupKey_,ResultContainerB_,ResultB_,ResultContainerC_,ResultC_> TriConstraintStream<GroupKey_,ResultB_,ResultC_> groupBy(TriFunction<A,B,C,GroupKey_> groupKeyMapping, TriConstraintCollector<A,B,C,ResultContainerB_,ResultB_> collectorB, TriConstraintCollector<A,B,C,ResultContainerC_,ResultC_> collectorC)
- Specified by:
groupByin interfaceTriConstraintStream<Solution_,A,B>
-
groupBy
public <GroupKey_,ResultContainerB_,ResultB_,ResultContainerC_,ResultC_,ResultContainerD_,ResultD_> QuadConstraintStream<GroupKey_,ResultB_,ResultC_,ResultD_> groupBy(TriFunction<A,B,C,GroupKey_> groupKeyMapping, TriConstraintCollector<A,B,C,ResultContainerB_,ResultB_> collectorB, TriConstraintCollector<A,B,C,ResultContainerC_,ResultC_> collectorC, TriConstraintCollector<A,B,C,ResultContainerD_,ResultD_> collectorD)
- Specified by:
groupByin interfaceTriConstraintStream<Solution_,A,B>
-
groupBy
public <GroupKey_,ResultContainer_,Result_> BiConstraintStream<GroupKey_,Result_> groupBy(TriFunction<A,B,C,GroupKey_> groupKeyMapping, TriConstraintCollector<A,B,C,ResultContainer_,Result_> collector)
- Specified by:
groupByin interfaceTriConstraintStream<Solution_,A,B>
-
groupBy
public <GroupKeyA_,GroupKeyB_> BiConstraintStream<GroupKeyA_,GroupKeyB_> groupBy(TriFunction<A,B,C,GroupKeyA_> groupKeyAMapping, TriFunction<A,B,C,GroupKeyB_> groupKeyBMapping)
- Specified by:
groupByin interfaceTriConstraintStream<Solution_,A,B>
-
groupBy
public <GroupKeyA_,GroupKeyB_,ResultContainer_,Result_> TriConstraintStream<GroupKeyA_,GroupKeyB_,Result_> groupBy(TriFunction<A,B,C,GroupKeyA_> groupKeyAMapping, TriFunction<A,B,C,GroupKeyB_> groupKeyBMapping, TriConstraintCollector<A,B,C,ResultContainer_,Result_> collector)
- Specified by:
groupByin interfaceTriConstraintStream<Solution_,A,B>
-
groupBy
public <GroupKeyA_,GroupKeyB_,ResultContainerC_,ResultC_,ResultContainerD_,ResultD_> QuadConstraintStream<GroupKeyA_,GroupKeyB_,ResultC_,ResultD_> groupBy(TriFunction<A,B,C,GroupKeyA_> groupKeyAMapping, TriFunction<A,B,C,GroupKeyB_> groupKeyBMapping, TriConstraintCollector<A,B,C,ResultContainerC_,ResultC_> collectorC, TriConstraintCollector<A,B,C,ResultContainerD_,ResultD_> collectorD)
- Specified by:
groupByin interfaceTriConstraintStream<Solution_,A,B>
-
groupBy
public <GroupKeyA_,GroupKeyB_,GroupKeyC_> TriConstraintStream<GroupKeyA_,GroupKeyB_,GroupKeyC_> groupBy(TriFunction<A,B,C,GroupKeyA_> groupKeyAMapping, TriFunction<A,B,C,GroupKeyB_> groupKeyBMapping, TriFunction<A,B,C,GroupKeyC_> groupKeyCMapping)
- Specified by:
groupByin interfaceTriConstraintStream<Solution_,A,B>
-
groupBy
public <GroupKeyA_,GroupKeyB_,GroupKeyC_,ResultContainerD_,ResultD_> QuadConstraintStream<GroupKeyA_,GroupKeyB_,GroupKeyC_,ResultD_> groupBy(TriFunction<A,B,C,GroupKeyA_> groupKeyAMapping, TriFunction<A,B,C,GroupKeyB_> groupKeyBMapping, TriFunction<A,B,C,GroupKeyC_> groupKeyCMapping, TriConstraintCollector<A,B,C,ResultContainerD_,ResultD_> collectorD)
- Specified by:
groupByin interfaceTriConstraintStream<Solution_,A,B>
-
groupBy
public <GroupKeyA_,GroupKeyB_,GroupKeyC_,GroupKeyD_> QuadConstraintStream<GroupKeyA_,GroupKeyB_,GroupKeyC_,GroupKeyD_> groupBy(TriFunction<A,B,C,GroupKeyA_> groupKeyAMapping, TriFunction<A,B,C,GroupKeyB_> groupKeyBMapping, TriFunction<A,B,C,GroupKeyC_> groupKeyCMapping, TriFunction<A,B,C,GroupKeyD_> groupKeyDMapping)
- Specified by:
groupByin interfaceTriConstraintStream<Solution_,A,B>
-
distinct
public TriConstraintStream<A,B,C> distinct()
- Specified by:
distinctin interfaceInnerTriConstraintStream<Solution_,A,B>- Specified by:
distinctin interfaceTriConstraintStream<Solution_,A,B>
-
map
public <ResultA_> UniConstraintStream<ResultA_> map(TriFunction<A,B,C,ResultA_> mapping)
- Specified by:
mapin interfaceTriConstraintStream<Solution_,A,B>
-
flattenLast
public <ResultC_> TriConstraintStream<A,B,ResultC_> flattenLast(Function<C,Iterable<ResultC_>> mapping)
- Specified by:
flattenLastin interfaceTriConstraintStream<Solution_,A,B>
-
innerImpact
public <Score_ extends Score<Score_>> TriConstraintBuilder<A,B,C,Score_> innerImpact(Score_ constraintWeight, ToIntTriFunction<A,B,C> matchWeigher, ScoreImpactType scoreImpactType)
- Specified by:
innerImpactin interfaceInnerTriConstraintStream<Solution_,A,B>
-
innerImpact
public <Score_ extends Score<Score_>> TriConstraintBuilder<A,B,C,Score_> innerImpact(Score_ constraintWeight, ToLongTriFunction<A,B,C> matchWeigher, ScoreImpactType scoreImpactType)
- Specified by:
innerImpactin interfaceInnerTriConstraintStream<Solution_,A,B>
-
innerImpact
public <Score_ extends Score<Score_>> TriConstraintBuilder<A,B,C,Score_> innerImpact(Score_ constraintWeight, TriFunction<A,B,C,BigDecimal> matchWeigher, ScoreImpactType scoreImpactType)
- Specified by:
innerImpactin interfaceInnerTriConstraintStream<Solution_,A,B>
-
getDefaultJustificationMapping
protected final QuadFunction<A,B,C,Score<?>,DefaultConstraintJustification> getDefaultJustificationMapping()
- Specified by:
getDefaultJustificationMappingin classAbstractConstraintStream<Solution_>
-
getDefaultIndictedObjectsMapping
protected final TriFunction<A,B,C,Collection<?>> getDefaultIndictedObjectsMapping()
- Specified by:
getDefaultIndictedObjectsMappingin classAbstractConstraintStream<Solution_>
-
-