Package org.optaplanner.core.impl.score.stream.tri

## Interface InnerTriConstraintStream<A,​B,​C>

- All Superinterfaces:
    `ConstraintStream`, `TriConstraintStream<A,​B,​C>`
  All Known Implementing Classes:
    `BavetAbstractTriConstraintStream`, `BavetFilterTriConstraintStream`, `BavetJoinTriConstraintStream`, `BavetScoringTriConstraintStream`, `DroolsAbstractTriConstraintStream`, `DroolsExistsTriConstraintStream`, `DroolsFilterTriConstraintStream`, `DroolsFlatteningTriConstraintStream`, `DroolsGroupingTriConstraintStream`, `DroolsJoinTriConstraintStream`

      public interface InnerTriConstraintStream<A,​B,​C>
      extends TriConstraintStream<A,​B,​C>

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `default TriConstraintStream<A,​B,​C>` | `distinct()` | Removes duplicate tuples from the stream, according to the tuple's facts {@link Object#equals(Object)equals}/hashcode methods, such that only distinct tuples remain.
    `boolean` | `guaranteesDistinct()` | This method will return true if the constraint stream is guaranteed to only produce distinct tuples.
    `default Constraint` | `impact​(String constraintPackage, String constraintName, Score<?> constraintWeight, ToIntTriFunction<A,​B,​C> matchWeigher)` | As defined by `TriConstraintStream.impact(String, Score, ToIntTriFunction)`.
    `default Constraint` | `impactBigDecimal​(String constraintPackage, String constraintName, Score<?> constraintWeight, TriFunction<A,​B,​C,​BigDecimal> matchWeigher)` | As defined by `TriConstraintStream.impactBigDecimal(String, Score, TriFunction)`.
    `default Constraint` | `impactConfigurable​(String constraintPackage, String constraintName, ToIntTriFunction<A,​B,​C> matchWeigher)` | As defined by `TriConstraintStream.impactConfigurable(String, ToIntTriFunction)`.
    `default Constraint` | `impactConfigurableBigDecimal​(String constraintPackage, String constraintName, TriFunction<A,​B,​C,​BigDecimal> matchWeigher)` | As defined by `TriConstraintStream.impactConfigurableBigDecimal(String, TriFunction)`.
    `default Constraint` | `impactConfigurableLong​(String constraintPackage, String constraintName, ToLongTriFunction<A,​B,​C> matchWeigher)` | As defined by `TriConstraintStream.impactConfigurableLong(String, ToLongTriFunction)`.
    `default Constraint` | `impactLong​(String constraintPackage, String constraintName, Score<?> constraintWeight, ToLongTriFunction<A,​B,​C> matchWeigher)` | As defined by `TriConstraintStream.impactLong(String, Score, ToLongTriFunction)`.
    `Constraint` | `impactScore​(String constraintPackage, String constraintName, Score<?> constraintWeight, ToIntTriFunction<A,​B,​C> matchWeigher, ScoreImpactType impactType)` |
    `Constraint` | `impactScoreBigDecimal​(String constraintPackage, String constraintName, Score<?> constraintWeight, TriFunction<A,​B,​C,​BigDecimal> matchWeigher, ScoreImpactType impactType)` |
    `Constraint` | `impactScoreConfigurable​(String constraintPackage, String constraintName, ToIntTriFunction<A,​B,​C> matchWeigher, ScoreImpactType impactType)` |
    `Constraint` | `impactScoreConfigurableBigDecimal​(String constraintPackage, String constraintName, TriFunction<A,​B,​C,​BigDecimal> matchWeigher, ScoreImpactType impactType)` |
    `Constraint` | `impactScoreConfigurableLong​(String constraintPackage, String constraintName, ToLongTriFunction<A,​B,​C> matchWeigher, ScoreImpactType impactType)` |
    `Constraint` | `impactScoreLong​(String constraintPackage, String constraintName, Score<?> constraintWeight, ToLongTriFunction<A,​B,​C> matchWeigher, ScoreImpactType impactType)` |
    `default Constraint` | `penalize​(String constraintPackage, String constraintName, Score<?> constraintWeight, ToIntTriFunction<A,​B,​C> matchWeigher)` | As defined by `TriConstraintStream.penalize(String, Score, ToIntTriFunction)`.
    `default Constraint` | `penalizeBigDecimal​(String constraintPackage, String constraintName, Score<?> constraintWeight, TriFunction<A,​B,​C,​BigDecimal> matchWeigher)` | As defined by `TriConstraintStream.penalizeBigDecimal(String, Score, TriFunction)`.
    `default Constraint` | `penalizeConfigurable​(String constraintPackage, String constraintName, ToIntTriFunction<A,​B,​C> matchWeigher)` | As defined by `TriConstraintStream.penalizeConfigurable(String, ToIntTriFunction)`.
    `default Constraint` | `penalizeConfigurableBigDecimal​(String constraintPackage, String constraintName, TriFunction<A,​B,​C,​BigDecimal> matchWeigher)` | As defined by `TriConstraintStream.penalizeConfigurableBigDecimal(String, TriFunction)`.
    `default Constraint` | `penalizeConfigurableLong​(String constraintPackage, String constraintName, ToLongTriFunction<A,​B,​C> matchWeigher)` | As defined by `TriConstraintStream.penalizeConfigurableLong(String, ToLongTriFunction)`.
    `default Constraint` | `penalizeLong​(String constraintPackage, String constraintName, Score<?> constraintWeight, ToLongTriFunction<A,​B,​C> matchWeigher)` | As defined by `TriConstraintStream.penalizeLong(String, Score, ToLongTriFunction)`.
    `default Constraint` | `reward​(String constraintPackage, String constraintName, Score<?> constraintWeight, ToIntTriFunction<A,​B,​C> matchWeigher)` | As defined by `TriConstraintStream.reward(String, Score, ToIntTriFunction)`.
    `default Constraint` | `rewardBigDecimal​(String constraintPackage, String constraintName, Score<?> constraintWeight, TriFunction<A,​B,​C,​BigDecimal> matchWeigher)` | As defined by `TriConstraintStream.rewardBigDecimal(String, Score, TriFunction)`.
    `default Constraint` | `rewardConfigurable​(String constraintPackage, String constraintName, ToIntTriFunction<A,​B,​C> matchWeigher)` | As defined by `TriConstraintStream.rewardConfigurable(String, ToIntTriFunction)`.
    `default Constraint` | `rewardConfigurableBigDecimal​(String constraintPackage, String constraintName, TriFunction<A,​B,​C,​BigDecimal> matchWeigher)` | As defined by `TriConstraintStream.rewardConfigurableBigDecimal(String, TriFunction)`.
    `default Constraint` | `rewardConfigurableLong​(String constraintPackage, String constraintName, ToLongTriFunction<A,​B,​C> matchWeigher)` | As defined by `TriConstraintStream.rewardConfigurableLong(String, ToLongTriFunction)`.
    `default Constraint` | `rewardLong​(String constraintPackage, String constraintName, Score<?> constraintWeight, ToLongTriFunction<A,​B,​C> matchWeigher)` | As defined by `TriConstraintStream.rewardLong(String, Score, ToLongTriFunction)`.

    - ### Methods inherited from interface org.optaplanner.core.api.score.stream.ConstraintStream

      `getConstraintFactory, impact, impact, penalize, penalize, penalizeConfigurable, penalizeConfigurable, reward, reward, rewardConfigurable, rewardConfigurable`

    - ### Methods inherited from interface org.optaplanner.core.api.score.stream.tri.TriConstraintStream

      `filter, flattenLast, groupBy, groupBy, groupBy, groupBy, groupBy, groupBy, groupBy, groupBy, groupBy, groupBy, groupBy, groupBy, groupBy, groupBy, ifExists, ifExists, ifExists, ifExists, ifExists, ifNotExists, ifNotExists, ifNotExists, ifNotExists, ifNotExists, impact, impactBigDecimal, impactConfigurable, impactConfigurableBigDecimal, impactConfigurableLong, impactLong, join, join, join, join, join, join, join, join, join, join, join, join, map, penalize, penalizeBigDecimal, penalizeConfigurable, penalizeConfigurableBigDecimal, penalizeConfigurableLong, penalizeLong, reward, rewardBigDecimal, rewardConfigurable, rewardConfigurableBigDecimal, rewardConfigurableLong, rewardLong`

- - ### Method Detail

    - #### guaranteesDistinct

          boolean guaranteesDistinct()

      This method will return true if the constraint stream is guaranteed to only produce distinct tuples. See `distinct()` for details.
      Returns:
        true if the guarantee of distinct tuples is provided

    - #### distinct

          default TriConstraintStream<A,​B,​C> distinct()

      Description copied from interface: `TriConstraintStream`
      Removes duplicate tuples from the stream, according to the tuple's facts {@link Object#equals(Object)equals}/hashcode methods, such that only distinct tuples remain. (No two tuples will `equal`.)

      By default, tuples going through a constraint stream are distinct. However, operations such as `TriConstraintStream.map(TriFunction)` may create a stream which breaks that promise. By calling this method on such a stream, duplicate copies of the same tuple will be omitted at a performance cost.

      Specified by:
        `distinct` in interface `TriConstraintStream<A,​B,​C>`
      Returns:
        never null

    - #### penalize

          default Constraint penalize​(String constraintPackage,
                                      String constraintName,
                                      Score<?> constraintWeight,
                                      ToIntTriFunction<A,​B,​C> matchWeigher)

      Description copied from interface: `TriConstraintStream`
      As defined by `TriConstraintStream.penalize(String, Score, ToIntTriFunction)`.
      Specified by:
        `penalize` in interface `TriConstraintStream<A,​B,​C>`
      Parameters:
        `constraintPackage` - never null
        `constraintName` - never null
        `constraintWeight` - never null
        `matchWeigher` - never null
      Returns:
        never null

    - #### penalizeLong

          default Constraint penalizeLong​(String constraintPackage,
                                          String constraintName,
                                          Score<?> constraintWeight,
                                          ToLongTriFunction<A,​B,​C> matchWeigher)

      Description copied from interface: `TriConstraintStream`
      As defined by `TriConstraintStream.penalizeLong(String, Score, ToLongTriFunction)`.
      Specified by:
        `penalizeLong` in interface `TriConstraintStream<A,​B,​C>`
      Parameters:
        `constraintPackage` - never null
        `constraintName` - never null
        `constraintWeight` - never null
        `matchWeigher` - never null
      Returns:
        never null

    - #### penalizeBigDecimal

          default Constraint penalizeBigDecimal​(String constraintPackage,
                                                String constraintName,
                                                Score<?> constraintWeight,
                                                TriFunction<A,​B,​C,​BigDecimal> matchWeigher)

      Description copied from interface: `TriConstraintStream`
      As defined by `TriConstraintStream.penalizeBigDecimal(String, Score, TriFunction)`.
      Specified by:
        `penalizeBigDecimal` in interface `TriConstraintStream<A,​B,​C>`
      Parameters:
        `constraintPackage` - never null
        `constraintName` - never null
        `constraintWeight` - never null
        `matchWeigher` - never null
      Returns:
        never null

    - #### penalizeConfigurable

          default Constraint penalizeConfigurable​(String constraintPackage,
                                                  String constraintName,
                                                  ToIntTriFunction<A,​B,​C> matchWeigher)

      Description copied from interface: `TriConstraintStream`
      As defined by `TriConstraintStream.penalizeConfigurable(String, ToIntTriFunction)`.
      Specified by:
        `penalizeConfigurable` in interface `TriConstraintStream<A,​B,​C>`
      Parameters:
        `constraintPackage` - never null
        `constraintName` - never null
        `matchWeigher` - never null
      Returns:
        never null

    - #### penalizeConfigurableLong

          default Constraint penalizeConfigurableLong​(String constraintPackage,
                                                      String constraintName,
                                                      ToLongTriFunction<A,​B,​C> matchWeigher)

      Description copied from interface: `TriConstraintStream`
      As defined by `TriConstraintStream.penalizeConfigurableLong(String, ToLongTriFunction)`.
      Specified by:
        `penalizeConfigurableLong` in interface `TriConstraintStream<A,​B,​C>`
      Parameters:
        `constraintPackage` - never null
        `constraintName` - never null
        `matchWeigher` - never null
      Returns:
        never null

    - #### penalizeConfigurableBigDecimal

          default Constraint penalizeConfigurableBigDecimal​(String constraintPackage,
                                                            String constraintName,
                                                            TriFunction<A,​B,​C,​BigDecimal> matchWeigher)

      Description copied from interface: `TriConstraintStream`
      As defined by `TriConstraintStream.penalizeConfigurableBigDecimal(String, TriFunction)`.
      Specified by:
        `penalizeConfigurableBigDecimal` in interface `TriConstraintStream<A,​B,​C>`
      Parameters:
        `constraintPackage` - never null
        `constraintName` - never null
        `matchWeigher` - never null
      Returns:
        never null

    - #### reward

          default Constraint reward​(String constraintPackage,
                                    String constraintName,
                                    Score<?> constraintWeight,
                                    ToIntTriFunction<A,​B,​C> matchWeigher)

      Description copied from interface: `TriConstraintStream`
      As defined by `TriConstraintStream.reward(String, Score, ToIntTriFunction)`.
      Specified by:
        `reward` in interface `TriConstraintStream<A,​B,​C>`
      Parameters:
        `constraintPackage` - never null
        `constraintName` - never null
        `constraintWeight` - never null
        `matchWeigher` - never null
      Returns:
        never null

    - #### rewardLong

          default Constraint rewardLong​(String constraintPackage,
                                        String constraintName,
                                        Score<?> constraintWeight,
                                        ToLongTriFunction<A,​B,​C> matchWeigher)

      Description copied from interface: `TriConstraintStream`
      As defined by `TriConstraintStream.rewardLong(String, Score, ToLongTriFunction)`.
      Specified by:
        `rewardLong` in interface `TriConstraintStream<A,​B,​C>`
      Parameters:
        `constraintPackage` - never null
        `constraintName` - never null
        `constraintWeight` - never null
        `matchWeigher` - never null
      Returns:
        never null

    - #### rewardBigDecimal

          default Constraint rewardBigDecimal​(String constraintPackage,
                                              String constraintName,
                                              Score<?> constraintWeight,
                                              TriFunction<A,​B,​C,​BigDecimal> matchWeigher)

      Description copied from interface: `TriConstraintStream`
      As defined by `TriConstraintStream.rewardBigDecimal(String, Score, TriFunction)`.
      Specified by:
        `rewardBigDecimal` in interface `TriConstraintStream<A,​B,​C>`
      Parameters:
        `constraintPackage` - never null
        `constraintName` - never null
        `constraintWeight` - never null
        `matchWeigher` - never null
      Returns:
        never null

    - #### rewardConfigurable

          default Constraint rewardConfigurable​(String constraintPackage,
                                                String constraintName,
                                                ToIntTriFunction<A,​B,​C> matchWeigher)

      Description copied from interface: `TriConstraintStream`
      As defined by `TriConstraintStream.rewardConfigurable(String, ToIntTriFunction)`.
      Specified by:
        `rewardConfigurable` in interface `TriConstraintStream<A,​B,​C>`
      Parameters:
        `constraintPackage` - never null
        `constraintName` - never null
        `matchWeigher` - never null
      Returns:
        never null

    - #### rewardConfigurableLong

          default Constraint rewardConfigurableLong​(String constraintPackage,
                                                    String constraintName,
                                                    ToLongTriFunction<A,​B,​C> matchWeigher)

      Description copied from interface: `TriConstraintStream`
      As defined by `TriConstraintStream.rewardConfigurableLong(String, ToLongTriFunction)`.
      Specified by:
        `rewardConfigurableLong` in interface `TriConstraintStream<A,​B,​C>`
      Parameters:
        `constraintPackage` - never null
        `constraintName` - never null
        `matchWeigher` - never null
      Returns:
        never null

    - #### rewardConfigurableBigDecimal

          default Constraint rewardConfigurableBigDecimal​(String constraintPackage,
                                                          String constraintName,
                                                          TriFunction<A,​B,​C,​BigDecimal> matchWeigher)

      Description copied from interface: `TriConstraintStream`
      As defined by `TriConstraintStream.rewardConfigurableBigDecimal(String, TriFunction)`.
      Specified by:
        `rewardConfigurableBigDecimal` in interface `TriConstraintStream<A,​B,​C>`
      Parameters:
        `constraintPackage` - never null
        `constraintName` - never null
        `matchWeigher` - never null
      Returns:
        never null

    - #### impact

          default Constraint impact​(String constraintPackage,
                                    String constraintName,
                                    Score<?> constraintWeight,
                                    ToIntTriFunction<A,​B,​C> matchWeigher)

      Description copied from interface: `TriConstraintStream`
      As defined by `TriConstraintStream.impact(String, Score, ToIntTriFunction)`.
      Specified by:
        `impact` in interface `TriConstraintStream<A,​B,​C>`
      Parameters:
        `constraintPackage` - never null
        `constraintName` - never null
        `constraintWeight` - never null
        `matchWeigher` - never null
      Returns:
        never null

    - #### impactLong

          default Constraint impactLong​(String constraintPackage,
                                        String constraintName,
                                        Score<?> constraintWeight,
                                        ToLongTriFunction<A,​B,​C> matchWeigher)

      Description copied from interface: `TriConstraintStream`
      As defined by `TriConstraintStream.impactLong(String, Score, ToLongTriFunction)`.
      Specified by:
        `impactLong` in interface `TriConstraintStream<A,​B,​C>`
      Parameters:
        `constraintPackage` - never null
        `constraintName` - never null
        `constraintWeight` - never null
        `matchWeigher` - never null
      Returns:
        never null

    - #### impactBigDecimal

          default Constraint impactBigDecimal​(String constraintPackage,
                                              String constraintName,
                                              Score<?> constraintWeight,
                                              TriFunction<A,​B,​C,​BigDecimal> matchWeigher)

      Description copied from interface: `TriConstraintStream`
      As defined by `TriConstraintStream.impactBigDecimal(String, Score, TriFunction)`.
      Specified by:
        `impactBigDecimal` in interface `TriConstraintStream<A,​B,​C>`
      Parameters:
        `constraintPackage` - never null
        `constraintName` - never null
        `constraintWeight` - never null
        `matchWeigher` - never null
      Returns:
        never null

    - #### impactConfigurable

          default Constraint impactConfigurable​(String constraintPackage,
                                                String constraintName,
                                                ToIntTriFunction<A,​B,​C> matchWeigher)

      Description copied from interface: `TriConstraintStream`
      As defined by `TriConstraintStream.impactConfigurable(String, ToIntTriFunction)`.
      Specified by:
        `impactConfigurable` in interface `TriConstraintStream<A,​B,​C>`
      Parameters:
        `constraintPackage` - never null
        `constraintName` - never null
        `matchWeigher` - never null
      Returns:
        never null

    - #### impactConfigurableLong

          default Constraint impactConfigurableLong​(String constraintPackage,
                                                    String constraintName,
                                                    ToLongTriFunction<A,​B,​C> matchWeigher)

      Description copied from interface: `TriConstraintStream`
      As defined by `TriConstraintStream.impactConfigurableLong(String, ToLongTriFunction)`.
      Specified by:
        `impactConfigurableLong` in interface `TriConstraintStream<A,​B,​C>`
      Parameters:
        `constraintPackage` - never null
        `constraintName` - never null
        `matchWeigher` - never null
      Returns:
        never null

    - #### impactConfigurableBigDecimal

          default Constraint impactConfigurableBigDecimal​(String constraintPackage,
                                                          String constraintName,
                                                          TriFunction<A,​B,​C,​BigDecimal> matchWeigher)

      Description copied from interface: `TriConstraintStream`
      As defined by `TriConstraintStream.impactConfigurableBigDecimal(String, TriFunction)`.
      Specified by:
        `impactConfigurableBigDecimal` in interface `TriConstraintStream<A,​B,​C>`
      Parameters:
        `constraintPackage` - never null
        `constraintName` - never null
        `matchWeigher` - never null
      Returns:
        never null

    - #### impactScore

          Constraint impactScore​(String constraintPackage,
                                 String constraintName,
                                 Score<?> constraintWeight,
                                 ToIntTriFunction<A,​B,​C> matchWeigher,
                                 ScoreImpactType impactType)

    - #### impactScoreLong

          Constraint impactScoreLong​(String constraintPackage,
                                     String constraintName,
                                     Score<?> constraintWeight,
                                     ToLongTriFunction<A,​B,​C> matchWeigher,
                                     ScoreImpactType impactType)

    - #### impactScoreBigDecimal

          Constraint impactScoreBigDecimal​(String constraintPackage,
                                           String constraintName,
                                           Score<?> constraintWeight,
                                           TriFunction<A,​B,​C,​BigDecimal> matchWeigher,
                                           ScoreImpactType impactType)

    - #### impactScoreConfigurable

          Constraint impactScoreConfigurable​(String constraintPackage,
                                             String constraintName,
                                             ToIntTriFunction<A,​B,​C> matchWeigher,
                                             ScoreImpactType impactType)

    - #### impactScoreConfigurableLong

          Constraint impactScoreConfigurableLong​(String constraintPackage,
                                                 String constraintName,
                                                 ToLongTriFunction<A,​B,​C> matchWeigher,
                                                 ScoreImpactType impactType)

    - #### impactScoreConfigurableBigDecimal

          Constraint impactScoreConfigurableBigDecimal​(String constraintPackage,
                                                       String constraintName,
                                                       TriFunction<A,​B,​C,​BigDecimal> matchWeigher,
                                                       ScoreImpactType impactType)