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

## Interface InnerQuadConstraintStream<A,​B,​C,​D>

- All Superinterfaces:
    `ConstraintStream`, `QuadConstraintStream<A,​B,​C,​D>`
  All Known Implementing Classes:
    `DroolsAbstractQuadConstraintStream`, `DroolsExistsQuadConstraintStream`, `DroolsFilterQuadConstraintStream`, `DroolsGroupingQuadConstraintStream`, `DroolsJoinQuadConstraintStream`

      public interface InnerQuadConstraintStream<A,​B,​C,​D>
      extends QuadConstraintStream<A,​B,​C,​D>

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `default QuadConstraintStream<A,​B,​C,​D>` | `distinct()` | Transforms the stream in such a way that all the tuples going through it are distinct.
    `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, ToIntQuadFunction<A,​B,​C,​D> matchWeigher)` | As defined by `QuadConstraintStream.impact(String, Score, ToIntQuadFunction)`.
    `default Constraint` | `impactBigDecimal​(String constraintPackage, String constraintName, Score<?> constraintWeight, QuadFunction<A,​B,​C,​D,​BigDecimal> matchWeigher)` | As defined by `QuadConstraintStream.impactBigDecimal(String, Score, QuadFunction)`.
    `default Constraint` | `impactConfigurable​(String constraintPackage, String constraintName, ToIntQuadFunction<A,​B,​C,​D> matchWeigher)` | As defined by `QuadConstraintStream.impactConfigurable(String, ToIntQuadFunction)`.
    `default Constraint` | `impactConfigurableBigDecimal​(String constraintPackage, String constraintName, QuadFunction<A,​B,​C,​D,​BigDecimal> matchWeigher)` | As defined by `QuadConstraintStream.impactConfigurableBigDecimal(String, QuadFunction)`.
    `default Constraint` | `impactConfigurableLong​(String constraintPackage, String constraintName, ToLongQuadFunction<A,​B,​C,​D> matchWeigher)` | As defined by `QuadConstraintStream.impactConfigurableLong(String, ToLongQuadFunction)`.
    `default Constraint` | `impactLong​(String constraintPackage, String constraintName, Score<?> constraintWeight, ToLongQuadFunction<A,​B,​C,​D> matchWeigher)` | As defined by `QuadConstraintStream.impactLong(String, Score, ToLongQuadFunction)`.
    `Constraint` | `impactScore​(String constraintPackage, String constraintName, Score<?> constraintWeight, ToIntQuadFunction<A,​B,​C,​D> matchWeigher, ScoreImpactType impactType)` |
    `Constraint` | `impactScoreBigDecimal​(String constraintPackage, String constraintName, Score<?> constraintWeight, QuadFunction<A,​B,​C,​D,​BigDecimal> matchWeigher, ScoreImpactType impactType)` |
    `Constraint` | `impactScoreConfigurable​(String constraintPackage, String constraintName, ToIntQuadFunction<A,​B,​C,​D> matchWeigher, ScoreImpactType impactType)` |
    `Constraint` | `impactScoreConfigurableBigDecimal​(String constraintPackage, String constraintName, QuadFunction<A,​B,​C,​D,​BigDecimal> matchWeigher, ScoreImpactType impactType)` |
    `Constraint` | `impactScoreConfigurableLong​(String constraintPackage, String constraintName, ToLongQuadFunction<A,​B,​C,​D> matchWeigher, ScoreImpactType impactType)` |
    `Constraint` | `impactScoreLong​(String constraintPackage, String constraintName, Score<?> constraintWeight, ToLongQuadFunction<A,​B,​C,​D> matchWeigher, ScoreImpactType impactType)` |
    `default Constraint` | `penalize​(String constraintPackage, String constraintName, Score<?> constraintWeight, ToIntQuadFunction<A,​B,​C,​D> matchWeigher)` | As defined by `QuadConstraintStream.penalize(String, Score, ToIntQuadFunction)`.
    `default Constraint` | `penalizeBigDecimal​(String constraintPackage, String constraintName, Score<?> constraintWeight, QuadFunction<A,​B,​C,​D,​BigDecimal> matchWeigher)` | As defined by `QuadConstraintStream.penalizeBigDecimal(String, Score, QuadFunction)`.
    `default Constraint` | `penalizeConfigurable​(String constraintPackage, String constraintName, ToIntQuadFunction<A,​B,​C,​D> matchWeigher)` | As defined by `QuadConstraintStream.penalizeConfigurable(String, ToIntQuadFunction)`.
    `default Constraint` | `penalizeConfigurableBigDecimal​(String constraintPackage, String constraintName, QuadFunction<A,​B,​C,​D,​BigDecimal> matchWeigher)` | As defined by `QuadConstraintStream.penalizeConfigurableBigDecimal(String, QuadFunction)`.
    `default Constraint` | `penalizeConfigurableLong​(String constraintPackage, String constraintName, ToLongQuadFunction<A,​B,​C,​D> matchWeigher)` | As defined by `QuadConstraintStream.penalizeConfigurableLong(String, ToLongQuadFunction)`.
    `default Constraint` | `penalizeLong​(String constraintPackage, String constraintName, Score<?> constraintWeight, ToLongQuadFunction<A,​B,​C,​D> matchWeigher)` | As defined by `QuadConstraintStream.penalizeLong(String, Score, ToLongQuadFunction)`.
    `default Constraint` | `reward​(String constraintPackage, String constraintName, Score<?> constraintWeight, ToIntQuadFunction<A,​B,​C,​D> matchWeigher)` | As defined by `QuadConstraintStream.reward(String, Score, ToIntQuadFunction)`.
    `default Constraint` | `rewardBigDecimal​(String constraintPackage, String constraintName, Score<?> constraintWeight, QuadFunction<A,​B,​C,​D,​BigDecimal> matchWeigher)` | As defined by `QuadConstraintStream.rewardBigDecimal(String, Score, QuadFunction)`.
    `default Constraint` | `rewardConfigurable​(String constraintPackage, String constraintName, ToIntQuadFunction<A,​B,​C,​D> matchWeigher)` | As defined by `QuadConstraintStream.rewardConfigurable(String, ToIntQuadFunction)`.
    `default Constraint` | `rewardConfigurableBigDecimal​(String constraintPackage, String constraintName, QuadFunction<A,​B,​C,​D,​BigDecimal> matchWeigher)` | As defined by `QuadConstraintStream.rewardConfigurableBigDecimal(String, QuadFunction)`.
    `default Constraint` | `rewardConfigurableLong​(String constraintPackage, String constraintName, ToLongQuadFunction<A,​B,​C,​D> matchWeigher)` | As defined by `QuadConstraintStream.rewardConfigurableLong(String, ToLongQuadFunction)`.
    `default Constraint` | `rewardLong​(String constraintPackage, String constraintName, Score<?> constraintWeight, ToLongQuadFunction<A,​B,​C,​D> matchWeigher)` | As defined by `QuadConstraintStream.rewardLong(String, Score, ToLongQuadFunction)`.

    - ### 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.quad.QuadConstraintStream

      `filter, 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, 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 QuadConstraintStream<A,​B,​C,​D> distinct()

      Description copied from interface: `QuadConstraintStream`
      Transforms the stream in such a way that all the tuples going through it are distinct. (No two tuples will `equal`.)

      By default, tuples going through a constraint stream are distinct. However, operations such as `QuadConstraintStream.map(QuadFunction)` 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 `QuadConstraintStream<A,​B,​C,​D>`
      Returns:
        never null

    - #### penalize

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

      Description copied from interface: `QuadConstraintStream`
      As defined by `QuadConstraintStream.penalize(String, Score, ToIntQuadFunction)`.
      Specified by:
        `penalize` in interface `QuadConstraintStream<A,​B,​C,​D>`
      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,
                                          ToLongQuadFunction<A,​B,​C,​D> matchWeigher)

      Description copied from interface: `QuadConstraintStream`
      As defined by `QuadConstraintStream.penalizeLong(String, Score, ToLongQuadFunction)`.
      Specified by:
        `penalizeLong` in interface `QuadConstraintStream<A,​B,​C,​D>`
      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,
                                                QuadFunction<A,​B,​C,​D,​BigDecimal> matchWeigher)

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

    - #### penalizeConfigurable

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

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

    - #### penalizeConfigurableLong

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

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

    - #### penalizeConfigurableBigDecimal

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

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

    - #### reward

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

      Description copied from interface: `QuadConstraintStream`
      As defined by `QuadConstraintStream.reward(String, Score, ToIntQuadFunction)`.
      Specified by:
        `reward` in interface `QuadConstraintStream<A,​B,​C,​D>`
      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,
                                        ToLongQuadFunction<A,​B,​C,​D> matchWeigher)

      Description copied from interface: `QuadConstraintStream`
      As defined by `QuadConstraintStream.rewardLong(String, Score, ToLongQuadFunction)`.
      Specified by:
        `rewardLong` in interface `QuadConstraintStream<A,​B,​C,​D>`
      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,
                                              QuadFunction<A,​B,​C,​D,​BigDecimal> matchWeigher)

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

    - #### rewardConfigurable

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

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

    - #### rewardConfigurableLong

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

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

    - #### rewardConfigurableBigDecimal

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

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

    - #### impact

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

      Description copied from interface: `QuadConstraintStream`
      As defined by `QuadConstraintStream.impact(String, Score, ToIntQuadFunction)`.
      Specified by:
        `impact` in interface `QuadConstraintStream<A,​B,​C,​D>`
      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,
                                        ToLongQuadFunction<A,​B,​C,​D> matchWeigher)

      Description copied from interface: `QuadConstraintStream`
      As defined by `QuadConstraintStream.impactLong(String, Score, ToLongQuadFunction)`.
      Specified by:
        `impactLong` in interface `QuadConstraintStream<A,​B,​C,​D>`
      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,
                                              QuadFunction<A,​B,​C,​D,​BigDecimal> matchWeigher)

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

    - #### impactConfigurable

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

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

    - #### impactConfigurableLong

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

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

    - #### impactConfigurableBigDecimal

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

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

    - #### impactScore

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

    - #### impactScoreLong

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

    - #### impactScoreBigDecimal

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

    - #### impactScoreConfigurable

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

    - #### impactScoreConfigurableLong

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

    - #### impactScoreConfigurableBigDecimal

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