Class BavetAbstractTriConstraintStream<Solution_,A,B,C>

java.lang.Object
org.optaplanner.constraint.streams.common.AbstractConstraintStream<Solution_>
org.optaplanner.constraint.streams.bavet.common.BavetAbstractConstraintStream<Solution_>
org.optaplanner.constraint.streams.bavet.tri.BavetAbstractTriConstraintStream<Solution_,A,B,C>
All Implemented Interfaces:
org.optaplanner.constraint.streams.common.tri.InnerTriConstraintStream<A,B,C>, org.optaplanner.core.api.score.stream.ConstraintStream, org.optaplanner.core.api.score.stream.tri.TriConstraintStream<A,B,C>
Direct Known Subclasses:
BavetFilterTriConstraintStream, BavetFlattenLastBridgeTriConstraintStream, BavetFlattenLastTriConstraintStream, BavetGroupTriConstraintStream, BavetJoinBridgeTriConstraintStream, BavetJoinTriConstraintStream, BavetMapBridgeTriConstraintStream, BavetScoringTriConstraintStream

public abstract class BavetAbstractTriConstraintStream<Solution_,A,B,C> extends BavetAbstractConstraintStream<Solution_> implements org.optaplanner.constraint.streams.common.tri.InnerTriConstraintStream<A,B,C>
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
     

    Fields inherited from class org.optaplanner.constraint.streams.bavet.common.BavetAbstractConstraintStream

    constraintFactory
  • Constructor Summary

    Constructors
    Constructor
    Description
    BavetAbstractTriConstraintStream(BavetConstraintFactory<Solution_> constraintFactory, org.optaplanner.constraint.streams.common.RetrievalSemantics retrievalSemantics)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    filter(org.optaplanner.core.api.function.TriPredicate<A,B,C> predicate)
     
    <ResultC_> org.optaplanner.core.api.score.stream.tri.TriConstraintStream<A,B,ResultC_>
    flattenLast(Function<C,Iterable<ResultC_>> mapping)
     
     
    protected final org.optaplanner.core.api.function.TriFunction<A,B,C,Collection<?>>
     
    protected final org.optaplanner.core.api.function.QuadFunction<A,B,C,org.optaplanner.core.api.score.Score<?>,org.optaplanner.core.api.score.stream.DefaultConstraintJustification>
     
    <GroupKey_>
    org.optaplanner.core.api.score.stream.uni.UniConstraintStream<GroupKey_>
    groupBy(org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKey_> groupKeyMapping)
     
    <GroupKey_, ResultContainer_, Result_>
    org.optaplanner.core.api.score.stream.bi.BiConstraintStream<GroupKey_,Result_>
    groupBy(org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKey_> groupKeyMapping, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainer_,Result_> collector)
     
    <GroupKey_, ResultContainerB_, ResultB_, ResultContainerC_, ResultC_>
    org.optaplanner.core.api.score.stream.tri.TriConstraintStream<GroupKey_,ResultB_,ResultC_>
    groupBy(org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKey_> groupKeyMapping, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerB_,ResultB_> collectorB, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerC_,ResultC_> collectorC)
     
    <GroupKey_, ResultContainerB_, ResultB_, ResultContainerC_, ResultC_, ResultContainerD_, ResultD_>
    org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<GroupKey_,ResultB_,ResultC_,ResultD_>
    groupBy(org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKey_> groupKeyMapping, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerB_,ResultB_> collectorB, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerC_,ResultC_> collectorC, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerD_,ResultD_> collectorD)
     
    <GroupKeyA_, GroupKeyB_>
    org.optaplanner.core.api.score.stream.bi.BiConstraintStream<GroupKeyA_,GroupKeyB_>
    groupBy(org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyA_> groupKeyAMapping, org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyB_> groupKeyBMapping)
     
    <GroupKeyA_, GroupKeyB_, GroupKeyC_>
    org.optaplanner.core.api.score.stream.tri.TriConstraintStream<GroupKeyA_,GroupKeyB_,GroupKeyC_>
    groupBy(org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyA_> groupKeyAMapping, org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyB_> groupKeyBMapping, org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyC_> groupKeyCMapping)
     
    <GroupKeyA_, GroupKeyB_, GroupKeyC_, GroupKeyD_>
    org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<GroupKeyA_,GroupKeyB_,GroupKeyC_,GroupKeyD_>
    groupBy(org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyA_> groupKeyAMapping, org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyB_> groupKeyBMapping, org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyC_> groupKeyCMapping, org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyD_> groupKeyDMapping)
     
    <GroupKeyA_, GroupKeyB_, GroupKeyC_, ResultContainerD_, ResultD_>
    org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<GroupKeyA_,GroupKeyB_,GroupKeyC_,ResultD_>
    groupBy(org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyA_> groupKeyAMapping, org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyB_> groupKeyBMapping, org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyC_> groupKeyCMapping, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerD_,ResultD_> collectorD)
     
    <GroupKeyA_, GroupKeyB_, ResultContainer_, Result_>
    org.optaplanner.core.api.score.stream.tri.TriConstraintStream<GroupKeyA_,GroupKeyB_,Result_>
    groupBy(org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyA_> groupKeyAMapping, org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyB_> groupKeyBMapping, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainer_,Result_> collector)
     
    <GroupKeyA_, GroupKeyB_, ResultContainerC_, ResultC_, ResultContainerD_, ResultD_>
    org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<GroupKeyA_,GroupKeyB_,ResultC_,ResultD_>
    groupBy(org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyA_> groupKeyAMapping, org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyB_> groupKeyBMapping, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerC_,ResultC_> collectorC, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerD_,ResultD_> collectorD)
     
    <ResultContainer_, Result_>
    org.optaplanner.core.api.score.stream.uni.UniConstraintStream<Result_>
    groupBy(org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainer_,Result_> collector)
     
    <ResultContainerA_, ResultA_, ResultContainerB_, ResultB_>
    org.optaplanner.core.api.score.stream.bi.BiConstraintStream<ResultA_,ResultB_>
    groupBy(org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerA_,ResultA_> collectorA, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerB_,ResultB_> collectorB)
     
    <ResultContainerA_, ResultA_, ResultContainerB_, ResultB_, ResultContainerC_, ResultC_>
    org.optaplanner.core.api.score.stream.tri.TriConstraintStream<ResultA_,ResultB_,ResultC_>
    groupBy(org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerA_,ResultA_> collectorA, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerB_,ResultB_> collectorB, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerC_,ResultC_> collectorC)
     
    <ResultContainerA_, ResultA_, ResultContainerB_, ResultB_, ResultContainerC_, ResultC_, ResultContainerD_, ResultD_>
    org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<ResultA_,ResultB_,ResultC_,ResultD_>
    groupBy(org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerA_,ResultA_> collectorA, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerB_,ResultB_> collectorB, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerC_,ResultC_> collectorC, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerD_,ResultD_> collectorD)
     
    final <D> org.optaplanner.core.api.score.stream.tri.TriConstraintStream<A,B,C>
    ifExists(Class<D> otherClass, org.optaplanner.core.api.score.stream.quad.QuadJoiner<A,B,C,D>... joiners)
     
    final <D> org.optaplanner.core.api.score.stream.tri.TriConstraintStream<A,B,C>
    ifExists(org.optaplanner.core.api.score.stream.uni.UniConstraintStream<D> otherStream, org.optaplanner.core.api.score.stream.quad.QuadJoiner<A,B,C,D>... joiners)
     
    final <D> org.optaplanner.core.api.score.stream.tri.TriConstraintStream<A,B,C>
    ifExistsIncludingNullVars(Class<D> otherClass, org.optaplanner.core.api.score.stream.quad.QuadJoiner<A,B,C,D>... joiners)
     
    final <D> org.optaplanner.core.api.score.stream.tri.TriConstraintStream<A,B,C>
    ifNotExists(Class<D> otherClass, org.optaplanner.core.api.score.stream.quad.QuadJoiner<A,B,C,D>... joiners)
     
    final <D> org.optaplanner.core.api.score.stream.tri.TriConstraintStream<A,B,C>
    ifNotExists(org.optaplanner.core.api.score.stream.uni.UniConstraintStream<D> otherStream, org.optaplanner.core.api.score.stream.quad.QuadJoiner<A,B,C,D>... joiners)
     
    final <D> org.optaplanner.core.api.score.stream.tri.TriConstraintStream<A,B,C>
    ifNotExistsIncludingNullVars(Class<D> otherClass, org.optaplanner.core.api.score.stream.quad.QuadJoiner<A,B,C,D>... joiners)
     
    <Score_ extends org.optaplanner.core.api.score.Score<Score_>>
    org.optaplanner.core.api.score.stream.tri.TriConstraintBuilder<A,B,C,Score_>
    innerImpact(Score_ constraintWeight, org.optaplanner.core.api.function.ToIntTriFunction<A,B,C> matchWeigher, org.optaplanner.constraint.streams.common.ScoreImpactType scoreImpactType)
     
    <Score_ extends org.optaplanner.core.api.score.Score<Score_>>
    org.optaplanner.core.api.score.stream.tri.TriConstraintBuilder<A,B,C,Score_>
    innerImpact(Score_ constraintWeight, org.optaplanner.core.api.function.ToLongTriFunction<A,B,C> matchWeigher, org.optaplanner.constraint.streams.common.ScoreImpactType scoreImpactType)
     
    <Score_ extends org.optaplanner.core.api.score.Score<Score_>>
    org.optaplanner.core.api.score.stream.tri.TriConstraintBuilder<A,B,C,Score_>
    innerImpact(Score_ constraintWeight, org.optaplanner.core.api.function.TriFunction<A,B,C,BigDecimal> matchWeigher, org.optaplanner.constraint.streams.common.ScoreImpactType scoreImpactType)
     
    final <D> org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<A,B,C,D>
    join(org.optaplanner.core.api.score.stream.uni.UniConstraintStream<D> otherStream, org.optaplanner.core.api.score.stream.quad.QuadJoiner<A,B,C,D>... joiners)
     
    <ResultA_> org.optaplanner.core.api.score.stream.uni.UniConstraintStream<ResultA_>
    map(org.optaplanner.core.api.function.TriFunction<A,B,C,ResultA_> mapping)
     
    <Stream_ extends BavetAbstractTriConstraintStream<Solution_, A, B, C>>
    Stream_
    shareAndAddChild(Stream_ stream)
     

    Methods inherited from class org.optaplanner.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 org.optaplanner.core.api.score.stream.ConstraintStream

    getConstraintFactory

    Methods inherited from interface org.optaplanner.constraint.streams.common.tri.InnerTriConstraintStream

    distinct, 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 org.optaplanner.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
  • Field Details

  • Constructor Details

    • BavetAbstractTriConstraintStream

      public BavetAbstractTriConstraintStream(BavetConstraintFactory<Solution_> constraintFactory, org.optaplanner.constraint.streams.common.RetrievalSemantics retrievalSemantics)
  • Method Details

    • getChildStreamList

      public List<BavetAbstractTriConstraintStream<Solution_,A,B,C>> getChildStreamList()
    • shareAndAddChild

      public <Stream_ extends BavetAbstractTriConstraintStream<Solution_, A, B, C>> Stream_ shareAndAddChild(Stream_ stream)
    • filter

      public BavetAbstractTriConstraintStream<Solution_,A,B,C> filter(org.optaplanner.core.api.function.TriPredicate<A,B,C> predicate)
      Specified by:
      filter in interface org.optaplanner.core.api.score.stream.tri.TriConstraintStream<Solution_,A,B>
    • join

      @SafeVarargs public final <D> org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<A,B,C,D> join(org.optaplanner.core.api.score.stream.uni.UniConstraintStream<D> otherStream, org.optaplanner.core.api.score.stream.quad.QuadJoiner<A,B,C,D>... joiners)
      Specified by:
      join in interface org.optaplanner.core.api.score.stream.tri.TriConstraintStream<Solution_,A,B>
    • ifExists

      @SafeVarargs public final <D> org.optaplanner.core.api.score.stream.tri.TriConstraintStream<A,B,C> ifExists(Class<D> otherClass, org.optaplanner.core.api.score.stream.quad.QuadJoiner<A,B,C,D>... joiners)
      Specified by:
      ifExists in interface org.optaplanner.core.api.score.stream.tri.TriConstraintStream<Solution_,A,B>
    • ifExistsIncludingNullVars

      @SafeVarargs public final <D> org.optaplanner.core.api.score.stream.tri.TriConstraintStream<A,B,C> ifExistsIncludingNullVars(Class<D> otherClass, org.optaplanner.core.api.score.stream.quad.QuadJoiner<A,B,C,D>... joiners)
      Specified by:
      ifExistsIncludingNullVars in interface org.optaplanner.core.api.score.stream.tri.TriConstraintStream<Solution_,A,B>
    • ifExists

      @SafeVarargs public final <D> org.optaplanner.core.api.score.stream.tri.TriConstraintStream<A,B,C> ifExists(org.optaplanner.core.api.score.stream.uni.UniConstraintStream<D> otherStream, org.optaplanner.core.api.score.stream.quad.QuadJoiner<A,B,C,D>... joiners)
    • ifNotExists

      @SafeVarargs public final <D> org.optaplanner.core.api.score.stream.tri.TriConstraintStream<A,B,C> ifNotExists(Class<D> otherClass, org.optaplanner.core.api.score.stream.quad.QuadJoiner<A,B,C,D>... joiners)
      Specified by:
      ifNotExists in interface org.optaplanner.core.api.score.stream.tri.TriConstraintStream<Solution_,A,B>
    • ifNotExistsIncludingNullVars

      @SafeVarargs public final <D> org.optaplanner.core.api.score.stream.tri.TriConstraintStream<A,B,C> ifNotExistsIncludingNullVars(Class<D> otherClass, org.optaplanner.core.api.score.stream.quad.QuadJoiner<A,B,C,D>... joiners)
      Specified by:
      ifNotExistsIncludingNullVars in interface org.optaplanner.core.api.score.stream.tri.TriConstraintStream<Solution_,A,B>
    • ifNotExists

      @SafeVarargs public final <D> org.optaplanner.core.api.score.stream.tri.TriConstraintStream<A,B,C> ifNotExists(org.optaplanner.core.api.score.stream.uni.UniConstraintStream<D> otherStream, org.optaplanner.core.api.score.stream.quad.QuadJoiner<A,B,C,D>... joiners)
    • groupBy

      public <ResultContainer_, Result_> org.optaplanner.core.api.score.stream.uni.UniConstraintStream<Result_> groupBy(org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainer_,Result_> collector)
      Specified by:
      groupBy in interface org.optaplanner.core.api.score.stream.tri.TriConstraintStream<Solution_,A,B>
    • groupBy

      public <ResultContainerA_, ResultA_, ResultContainerB_, ResultB_> org.optaplanner.core.api.score.stream.bi.BiConstraintStream<ResultA_,ResultB_> groupBy(org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerA_,ResultA_> collectorA, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerB_,ResultB_> collectorB)
      Specified by:
      groupBy in interface org.optaplanner.core.api.score.stream.tri.TriConstraintStream<Solution_,A,B>
    • groupBy

      public <ResultContainerA_, ResultA_, ResultContainerB_, ResultB_, ResultContainerC_, ResultC_> org.optaplanner.core.api.score.stream.tri.TriConstraintStream<ResultA_,ResultB_,ResultC_> groupBy(org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerA_,ResultA_> collectorA, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerB_,ResultB_> collectorB, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerC_,ResultC_> collectorC)
      Specified by:
      groupBy in interface org.optaplanner.core.api.score.stream.tri.TriConstraintStream<Solution_,A,B>
    • groupBy

      public <ResultContainerA_, ResultA_, ResultContainerB_, ResultB_, ResultContainerC_, ResultC_, ResultContainerD_, ResultD_> org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<ResultA_,ResultB_,ResultC_,ResultD_> groupBy(org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerA_,ResultA_> collectorA, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerB_,ResultB_> collectorB, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerC_,ResultC_> collectorC, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerD_,ResultD_> collectorD)
      Specified by:
      groupBy in interface org.optaplanner.core.api.score.stream.tri.TriConstraintStream<Solution_,A,B>
    • groupBy

      public <GroupKey_> org.optaplanner.core.api.score.stream.uni.UniConstraintStream<GroupKey_> groupBy(org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKey_> groupKeyMapping)
      Specified by:
      groupBy in interface org.optaplanner.core.api.score.stream.tri.TriConstraintStream<Solution_,A,B>
    • groupBy

      public <GroupKey_, ResultContainerB_, ResultB_, ResultContainerC_, ResultC_> org.optaplanner.core.api.score.stream.tri.TriConstraintStream<GroupKey_,ResultB_,ResultC_> groupBy(org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKey_> groupKeyMapping, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerB_,ResultB_> collectorB, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerC_,ResultC_> collectorC)
      Specified by:
      groupBy in interface org.optaplanner.core.api.score.stream.tri.TriConstraintStream<Solution_,A,B>
    • groupBy

      public <GroupKey_, ResultContainerB_, ResultB_, ResultContainerC_, ResultC_, ResultContainerD_, ResultD_> org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<GroupKey_,ResultB_,ResultC_,ResultD_> groupBy(org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKey_> groupKeyMapping, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerB_,ResultB_> collectorB, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerC_,ResultC_> collectorC, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerD_,ResultD_> collectorD)
      Specified by:
      groupBy in interface org.optaplanner.core.api.score.stream.tri.TriConstraintStream<Solution_,A,B>
    • groupBy

      public <GroupKey_, ResultContainer_, Result_> org.optaplanner.core.api.score.stream.bi.BiConstraintStream<GroupKey_,Result_> groupBy(org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKey_> groupKeyMapping, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainer_,Result_> collector)
      Specified by:
      groupBy in interface org.optaplanner.core.api.score.stream.tri.TriConstraintStream<Solution_,A,B>
    • groupBy

      public <GroupKeyA_, GroupKeyB_> org.optaplanner.core.api.score.stream.bi.BiConstraintStream<GroupKeyA_,GroupKeyB_> groupBy(org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyA_> groupKeyAMapping, org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyB_> groupKeyBMapping)
      Specified by:
      groupBy in interface org.optaplanner.core.api.score.stream.tri.TriConstraintStream<Solution_,A,B>
    • groupBy

      public <GroupKeyA_, GroupKeyB_, ResultContainer_, Result_> org.optaplanner.core.api.score.stream.tri.TriConstraintStream<GroupKeyA_,GroupKeyB_,Result_> groupBy(org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyA_> groupKeyAMapping, org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyB_> groupKeyBMapping, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainer_,Result_> collector)
      Specified by:
      groupBy in interface org.optaplanner.core.api.score.stream.tri.TriConstraintStream<Solution_,A,B>
    • groupBy

      public <GroupKeyA_, GroupKeyB_, ResultContainerC_, ResultC_, ResultContainerD_, ResultD_> org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<GroupKeyA_,GroupKeyB_,ResultC_,ResultD_> groupBy(org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyA_> groupKeyAMapping, org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyB_> groupKeyBMapping, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerC_,ResultC_> collectorC, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerD_,ResultD_> collectorD)
      Specified by:
      groupBy in interface org.optaplanner.core.api.score.stream.tri.TriConstraintStream<Solution_,A,B>
    • groupBy

      public <GroupKeyA_, GroupKeyB_, GroupKeyC_> org.optaplanner.core.api.score.stream.tri.TriConstraintStream<GroupKeyA_,GroupKeyB_,GroupKeyC_> groupBy(org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyA_> groupKeyAMapping, org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyB_> groupKeyBMapping, org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyC_> groupKeyCMapping)
      Specified by:
      groupBy in interface org.optaplanner.core.api.score.stream.tri.TriConstraintStream<Solution_,A,B>
    • groupBy

      public <GroupKeyA_, GroupKeyB_, GroupKeyC_, ResultContainerD_, ResultD_> org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<GroupKeyA_,GroupKeyB_,GroupKeyC_,ResultD_> groupBy(org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyA_> groupKeyAMapping, org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyB_> groupKeyBMapping, org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyC_> groupKeyCMapping, org.optaplanner.core.api.score.stream.tri.TriConstraintCollector<A,B,C,ResultContainerD_,ResultD_> collectorD)
      Specified by:
      groupBy in interface org.optaplanner.core.api.score.stream.tri.TriConstraintStream<Solution_,A,B>
    • groupBy

      public <GroupKeyA_, GroupKeyB_, GroupKeyC_, GroupKeyD_> org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<GroupKeyA_,GroupKeyB_,GroupKeyC_,GroupKeyD_> groupBy(org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyA_> groupKeyAMapping, org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyB_> groupKeyBMapping, org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyC_> groupKeyCMapping, org.optaplanner.core.api.function.TriFunction<A,B,C,GroupKeyD_> groupKeyDMapping)
      Specified by:
      groupBy in interface org.optaplanner.core.api.score.stream.tri.TriConstraintStream<Solution_,A,B>
    • map

      public <ResultA_> org.optaplanner.core.api.score.stream.uni.UniConstraintStream<ResultA_> map(org.optaplanner.core.api.function.TriFunction<A,B,C,ResultA_> mapping)
      Specified by:
      map in interface org.optaplanner.core.api.score.stream.tri.TriConstraintStream<Solution_,A,B>
    • flattenLast

      public <ResultC_> org.optaplanner.core.api.score.stream.tri.TriConstraintStream<A,B,ResultC_> flattenLast(Function<C,Iterable<ResultC_>> mapping)
      Specified by:
      flattenLast in interface org.optaplanner.core.api.score.stream.tri.TriConstraintStream<Solution_,A,B>
    • innerImpact

      public <Score_ extends org.optaplanner.core.api.score.Score<Score_>> org.optaplanner.core.api.score.stream.tri.TriConstraintBuilder<A,B,C,Score_> innerImpact(Score_ constraintWeight, org.optaplanner.core.api.function.ToIntTriFunction<A,B,C> matchWeigher, org.optaplanner.constraint.streams.common.ScoreImpactType scoreImpactType)
      Specified by:
      innerImpact in interface org.optaplanner.constraint.streams.common.tri.InnerTriConstraintStream<Solution_,A,B>
    • innerImpact

      public <Score_ extends org.optaplanner.core.api.score.Score<Score_>> org.optaplanner.core.api.score.stream.tri.TriConstraintBuilder<A,B,C,Score_> innerImpact(Score_ constraintWeight, org.optaplanner.core.api.function.ToLongTriFunction<A,B,C> matchWeigher, org.optaplanner.constraint.streams.common.ScoreImpactType scoreImpactType)
      Specified by:
      innerImpact in interface org.optaplanner.constraint.streams.common.tri.InnerTriConstraintStream<Solution_,A,B>
    • innerImpact

      public <Score_ extends org.optaplanner.core.api.score.Score<Score_>> org.optaplanner.core.api.score.stream.tri.TriConstraintBuilder<A,B,C,Score_> innerImpact(Score_ constraintWeight, org.optaplanner.core.api.function.TriFunction<A,B,C,BigDecimal> matchWeigher, org.optaplanner.constraint.streams.common.ScoreImpactType scoreImpactType)
      Specified by:
      innerImpact in interface org.optaplanner.constraint.streams.common.tri.InnerTriConstraintStream<Solution_,A,B>
    • getDefaultJustificationMapping

      protected final org.optaplanner.core.api.function.QuadFunction<A,B,C,org.optaplanner.core.api.score.Score<?>,org.optaplanner.core.api.score.stream.DefaultConstraintJustification> getDefaultJustificationMapping()
      Specified by:
      getDefaultJustificationMapping in class org.optaplanner.constraint.streams.common.AbstractConstraintStream<Solution_>
    • getDefaultIndictedObjectsMapping

      protected final org.optaplanner.core.api.function.TriFunction<A,B,C,Collection<?>> getDefaultIndictedObjectsMapping()
      Specified by:
      getDefaultIndictedObjectsMapping in class org.optaplanner.constraint.streams.common.AbstractConstraintStream<Solution_>