Class BavetAbstractQuadConstraintStream<Solution_,A,B,C,D>

java.lang.Object
org.optaplanner.constraint.streams.common.AbstractConstraintStream<Solution_>
org.optaplanner.constraint.streams.bavet.common.BavetAbstractConstraintStream<Solution_>
org.optaplanner.constraint.streams.bavet.quad.BavetAbstractQuadConstraintStream<Solution_,A,B,C,D>
All Implemented Interfaces:
org.optaplanner.constraint.streams.common.quad.InnerQuadConstraintStream<A,B,C,D>, org.optaplanner.core.api.score.stream.ConstraintStream, org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<A,B,C,D>
Direct Known Subclasses:
BavetFilterQuadConstraintStream, BavetFlattenLastBridgeQuadConstraintStream, BavetFlattenLastQuadConstraintStream, BavetGroupQuadConstraintStream, BavetJoinQuadConstraintStream, BavetMapBridgeQuadConstraintStream, BavetScoringQuadConstraintStream

public abstract class BavetAbstractQuadConstraintStream<Solution_,A,B,C,D> extends BavetAbstractConstraintStream<Solution_> implements org.optaplanner.constraint.streams.common.quad.InnerQuadConstraintStream<A,B,C,D>
  • 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
    BavetAbstractQuadConstraintStream(BavetConstraintFactory<Solution_> constraintFactory, org.optaplanner.constraint.streams.common.RetrievalSemantics retrievalSemantics)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    filter(org.optaplanner.core.api.function.QuadPredicate<A,B,C,D> predicate)
     
    <ResultD_> org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<A,B,C,ResultD_>
    flattenLast(Function<D,Iterable<ResultD_>> mapping)
     
     
    protected final org.optaplanner.core.api.function.QuadFunction<A,B,C,D,Collection<?>>
     
    protected final org.optaplanner.core.api.function.PentaFunction<A,B,C,D,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.QuadFunction<A,B,C,D,GroupKey_> groupKeyMapping)
     
    <GroupKey_, ResultContainer_, Result_>
    org.optaplanner.core.api.score.stream.bi.BiConstraintStream<GroupKey_,Result_>
    groupBy(org.optaplanner.core.api.function.QuadFunction<A,B,C,D,GroupKey_> groupKeyMapping, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,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.QuadFunction<A,B,C,D,GroupKey_> groupKeyMapping, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainerB_,ResultB_> collectorB, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,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.QuadFunction<A,B,C,D,GroupKey_> groupKeyMapping, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainerB_,ResultB_> collectorB, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainerC_,ResultC_> collectorC, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainerD_,ResultD_> collectorD)
     
    <GroupKeyA_, GroupKeyB_>
    org.optaplanner.core.api.score.stream.bi.BiConstraintStream<GroupKeyA_,GroupKeyB_>
    groupBy(org.optaplanner.core.api.function.QuadFunction<A,B,C,D,GroupKeyA_> groupKeyAMapping, org.optaplanner.core.api.function.QuadFunction<A,B,C,D,GroupKeyB_> groupKeyBMapping)
     
    <GroupKeyA_, GroupKeyB_, GroupKeyC_>
    org.optaplanner.core.api.score.stream.tri.TriConstraintStream<GroupKeyA_,GroupKeyB_,GroupKeyC_>
    groupBy(org.optaplanner.core.api.function.QuadFunction<A,B,C,D,GroupKeyA_> groupKeyAMapping, org.optaplanner.core.api.function.QuadFunction<A,B,C,D,GroupKeyB_> groupKeyBMapping, org.optaplanner.core.api.function.QuadFunction<A,B,C,D,GroupKeyC_> groupKeyCMapping)
     
    <GroupKeyA_, GroupKeyB_, GroupKeyC_, GroupKeyD_>
    org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<GroupKeyA_,GroupKeyB_,GroupKeyC_,GroupKeyD_>
    groupBy(org.optaplanner.core.api.function.QuadFunction<A,B,C,D,GroupKeyA_> groupKeyAMapping, org.optaplanner.core.api.function.QuadFunction<A,B,C,D,GroupKeyB_> groupKeyBMapping, org.optaplanner.core.api.function.QuadFunction<A,B,C,D,GroupKeyC_> groupKeyCMapping, org.optaplanner.core.api.function.QuadFunction<A,B,C,D,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.QuadFunction<A,B,C,D,GroupKeyA_> groupKeyAMapping, org.optaplanner.core.api.function.QuadFunction<A,B,C,D,GroupKeyB_> groupKeyBMapping, org.optaplanner.core.api.function.QuadFunction<A,B,C,D,GroupKeyC_> groupKeyCMapping, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainerD_,ResultD_> collectorD)
     
    <GroupKeyA_, GroupKeyB_, ResultContainer_, Result_>
    org.optaplanner.core.api.score.stream.tri.TriConstraintStream<GroupKeyA_,GroupKeyB_,Result_>
    groupBy(org.optaplanner.core.api.function.QuadFunction<A,B,C,D,GroupKeyA_> groupKeyAMapping, org.optaplanner.core.api.function.QuadFunction<A,B,C,D,GroupKeyB_> groupKeyBMapping, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,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.QuadFunction<A,B,C,D,GroupKeyA_> groupKeyAMapping, org.optaplanner.core.api.function.QuadFunction<A,B,C,D,GroupKeyB_> groupKeyBMapping, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainerC_,ResultC_> collectorC, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainerD_,ResultD_> collectorD)
     
    <ResultContainer_, Result_>
    org.optaplanner.core.api.score.stream.uni.UniConstraintStream<Result_>
    groupBy(org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainer_,Result_> collector)
     
    <ResultContainerA_, ResultA_, ResultContainerB_, ResultB_>
    org.optaplanner.core.api.score.stream.bi.BiConstraintStream<ResultA_,ResultB_>
    groupBy(org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainerA_,ResultA_> collectorA, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,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.quad.QuadConstraintCollector<A,B,C,D,ResultContainerA_,ResultA_> collectorA, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainerB_,ResultB_> collectorB, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,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.quad.QuadConstraintCollector<A,B,C,D,ResultContainerA_,ResultA_> collectorA, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainerB_,ResultB_> collectorB, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainerC_,ResultC_> collectorC, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainerD_,ResultD_> collectorD)
     
    final <E> org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<A,B,C,D>
    ifExists(Class<E> otherClass, org.optaplanner.core.api.score.stream.penta.PentaJoiner<A,B,C,D,E>... joiners)
     
    final <E> org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<A,B,C,D>
    ifExists(org.optaplanner.core.api.score.stream.uni.UniConstraintStream<E> otherStream, org.optaplanner.core.api.score.stream.penta.PentaJoiner<A,B,C,D,E>... joiners)
     
    final <E> org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<A,B,C,D>
    ifExistsIncludingNullVars(Class<E> otherClass, org.optaplanner.core.api.score.stream.penta.PentaJoiner<A,B,C,D,E>... joiners)
     
    final <E> org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<A,B,C,D>
    ifNotExists(Class<E> otherClass, org.optaplanner.core.api.score.stream.penta.PentaJoiner<A,B,C,D,E>... joiners)
     
    final <E> org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<A,B,C,D>
    ifNotExists(org.optaplanner.core.api.score.stream.uni.UniConstraintStream<E> otherStream, org.optaplanner.core.api.score.stream.penta.PentaJoiner<A,B,C,D,E>... joiners)
     
    final <E> org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<A,B,C,D>
    ifNotExistsIncludingNullVars(Class<E> otherClass, org.optaplanner.core.api.score.stream.penta.PentaJoiner<A,B,C,D,E>... joiners)
     
    <Score_ extends org.optaplanner.core.api.score.Score<Score_>>
    org.optaplanner.core.api.score.stream.quad.QuadConstraintBuilder<A,B,C,D,Score_>
    innerImpact(Score_ constraintWeight, org.optaplanner.core.api.function.QuadFunction<A,B,C,D,BigDecimal> matchWeigher, org.optaplanner.constraint.streams.common.ScoreImpactType scoreImpactType)
     
    <Score_ extends org.optaplanner.core.api.score.Score<Score_>>
    org.optaplanner.core.api.score.stream.quad.QuadConstraintBuilder<A,B,C,D,Score_>
    innerImpact(Score_ constraintWeight, org.optaplanner.core.api.function.ToIntQuadFunction<A,B,C,D> matchWeigher, org.optaplanner.constraint.streams.common.ScoreImpactType scoreImpactType)
     
    <Score_ extends org.optaplanner.core.api.score.Score<Score_>>
    org.optaplanner.core.api.score.stream.quad.QuadConstraintBuilder<A,B,C,D,Score_>
    innerImpact(Score_ constraintWeight, org.optaplanner.core.api.function.ToLongQuadFunction<A,B,C,D> matchWeigher, org.optaplanner.constraint.streams.common.ScoreImpactType scoreImpactType)
     
    <ResultA_> org.optaplanner.core.api.score.stream.uni.UniConstraintStream<ResultA_>
    map(org.optaplanner.core.api.function.QuadFunction<A,B,C,D,ResultA_> mapping)
     
    <Stream_ extends BavetAbstractQuadConstraintStream<Solution_, A, B, C, D>>
    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.quad.InnerQuadConstraintStream

    distinct, guaranteesDistinct, impact, impact, impact, impactBigDecimal, impactConfigurable, impactConfigurableBigDecimal, impactConfigurableLong, impactLong, 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.quad.QuadConstraintStream

    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, 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

    • BavetAbstractQuadConstraintStream

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

    • getChildStreamList

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

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

      public BavetAbstractQuadConstraintStream<Solution_,A,B,C,D> filter(org.optaplanner.core.api.function.QuadPredicate<A,B,C,D> predicate)
      Specified by:
      filter in interface org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<Solution_,A,B,C>
    • ifExists

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

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

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

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

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

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

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

      public <ResultContainerA_, ResultA_, ResultContainerB_, ResultB_> org.optaplanner.core.api.score.stream.bi.BiConstraintStream<ResultA_,ResultB_> groupBy(org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainerA_,ResultA_> collectorA, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainerB_,ResultB_> collectorB)
      Specified by:
      groupBy in interface org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<Solution_,A,B,C>
    • 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.quad.QuadConstraintCollector<A,B,C,D,ResultContainerA_,ResultA_> collectorA, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainerB_,ResultB_> collectorB, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainerC_,ResultC_> collectorC)
      Specified by:
      groupBy in interface org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<Solution_,A,B,C>
    • 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.quad.QuadConstraintCollector<A,B,C,D,ResultContainerA_,ResultA_> collectorA, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainerB_,ResultB_> collectorB, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainerC_,ResultC_> collectorC, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainerD_,ResultD_> collectorD)
      Specified by:
      groupBy in interface org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<Solution_,A,B,C>
    • groupBy

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

      public <GroupKey_, ResultContainerB_, ResultB_, ResultContainerC_, ResultC_> org.optaplanner.core.api.score.stream.tri.TriConstraintStream<GroupKey_,ResultB_,ResultC_> groupBy(org.optaplanner.core.api.function.QuadFunction<A,B,C,D,GroupKey_> groupKeyMapping, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainerB_,ResultB_> collectorB, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainerC_,ResultC_> collectorC)
      Specified by:
      groupBy in interface org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<Solution_,A,B,C>
    • 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.QuadFunction<A,B,C,D,GroupKey_> groupKeyMapping, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainerB_,ResultB_> collectorB, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainerC_,ResultC_> collectorC, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainerD_,ResultD_> collectorD)
      Specified by:
      groupBy in interface org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<Solution_,A,B,C>
    • groupBy

      public <GroupKey_, ResultContainer_, Result_> org.optaplanner.core.api.score.stream.bi.BiConstraintStream<GroupKey_,Result_> groupBy(org.optaplanner.core.api.function.QuadFunction<A,B,C,D,GroupKey_> groupKeyMapping, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainer_,Result_> collector)
      Specified by:
      groupBy in interface org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<Solution_,A,B,C>
    • groupBy

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

      public <GroupKeyA_, GroupKeyB_, ResultContainer_, Result_> org.optaplanner.core.api.score.stream.tri.TriConstraintStream<GroupKeyA_,GroupKeyB_,Result_> groupBy(org.optaplanner.core.api.function.QuadFunction<A,B,C,D,GroupKeyA_> groupKeyAMapping, org.optaplanner.core.api.function.QuadFunction<A,B,C,D,GroupKeyB_> groupKeyBMapping, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainer_,Result_> collector)
      Specified by:
      groupBy in interface org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<Solution_,A,B,C>
    • 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.QuadFunction<A,B,C,D,GroupKeyA_> groupKeyAMapping, org.optaplanner.core.api.function.QuadFunction<A,B,C,D,GroupKeyB_> groupKeyBMapping, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainerC_,ResultC_> collectorC, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainerD_,ResultD_> collectorD)
      Specified by:
      groupBy in interface org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<Solution_,A,B,C>
    • groupBy

      public <GroupKeyA_, GroupKeyB_, GroupKeyC_> org.optaplanner.core.api.score.stream.tri.TriConstraintStream<GroupKeyA_,GroupKeyB_,GroupKeyC_> groupBy(org.optaplanner.core.api.function.QuadFunction<A,B,C,D,GroupKeyA_> groupKeyAMapping, org.optaplanner.core.api.function.QuadFunction<A,B,C,D,GroupKeyB_> groupKeyBMapping, org.optaplanner.core.api.function.QuadFunction<A,B,C,D,GroupKeyC_> groupKeyCMapping)
      Specified by:
      groupBy in interface org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<Solution_,A,B,C>
    • 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.QuadFunction<A,B,C,D,GroupKeyA_> groupKeyAMapping, org.optaplanner.core.api.function.QuadFunction<A,B,C,D,GroupKeyB_> groupKeyBMapping, org.optaplanner.core.api.function.QuadFunction<A,B,C,D,GroupKeyC_> groupKeyCMapping, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A,B,C,D,ResultContainerD_,ResultD_> collectorD)
      Specified by:
      groupBy in interface org.optaplanner.core.api.score.stream.quad.QuadConstraintStream<Solution_,A,B,C>
    • groupBy

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

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

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

      public <Score_ extends org.optaplanner.core.api.score.Score<Score_>> org.optaplanner.core.api.score.stream.quad.QuadConstraintBuilder<A,B,C,D,Score_> innerImpact(Score_ constraintWeight, org.optaplanner.core.api.function.ToIntQuadFunction<A,B,C,D> matchWeigher, org.optaplanner.constraint.streams.common.ScoreImpactType scoreImpactType)
      Specified by:
      innerImpact in interface org.optaplanner.constraint.streams.common.quad.InnerQuadConstraintStream<Solution_,A,B,C>
    • innerImpact

      public <Score_ extends org.optaplanner.core.api.score.Score<Score_>> org.optaplanner.core.api.score.stream.quad.QuadConstraintBuilder<A,B,C,D,Score_> innerImpact(Score_ constraintWeight, org.optaplanner.core.api.function.ToLongQuadFunction<A,B,C,D> matchWeigher, org.optaplanner.constraint.streams.common.ScoreImpactType scoreImpactType)
      Specified by:
      innerImpact in interface org.optaplanner.constraint.streams.common.quad.InnerQuadConstraintStream<Solution_,A,B,C>
    • innerImpact

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

      protected final org.optaplanner.core.api.function.PentaFunction<A,B,C,D,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.QuadFunction<A,B,C,D,Collection<?>> getDefaultIndictedObjectsMapping()
      Specified by:
      getDefaultIndictedObjectsMapping in class org.optaplanner.constraint.streams.common.AbstractConstraintStream<Solution_>