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

## Class BiConstraintStreamHelper<A,​B,​C>

- java.lang.Object
- - org.optaplanner.core.impl.score.stream.common.AbstractConstraintStreamHelper<C,​TriConstraintStream<A,​B,​C>,​TriJoiner<A,​B,​C>,​TriPredicate<A,​B,​C>>
  - - org.optaplanner.core.impl.score.stream.bi.BiConstraintStreamHelper<A,​B,​C>

-     public final class BiConstraintStreamHelper<A,​B,​C>
      extends AbstractConstraintStreamHelper<C,​TriConstraintStream<A,​B,​C>,​TriJoiner<A,​B,​C>,​TriPredicate<A,​B,​C>>

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `BiConstraintStreamHelper​(BiConstraintStream<A,​B> stream)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected TriConstraintStream<A,​B,​C>` | `doJoin​(Class<C> otherClass)` |
    `protected TriConstraintStream<A,​B,​C>` | `doJoin​(Class<C> otherClass, TriJoiner<A,​B,​C> joiner)` |
    `protected TriConstraintStream<A,​B,​C>` | `doJoin​(Class<C> otherClass, TriJoiner<A,​B,​C>... joiners)` |
    `protected TriPredicate<A,​B,​C>` | `extractPredicate​(TriJoiner<A,​B,​C> joiner)` |
    `protected TriConstraintStream<A,​B,​C>` | `filter​(TriConstraintStream<A,​B,​C> stream, TriPredicate<A,​B,​C> predicate)` |
    `protected boolean` | `isFilteringJoiner​(TriJoiner<A,​B,​C> joiner)` |
    `protected TriJoiner<A,​B,​C>` | `mergeJoiners​(TriJoiner<A,​B,​C>... joiners)` |
    `protected TriPredicate<A,​B,​C>` | `mergePredicates​(TriPredicate<A,​B,​C> predicate1, TriPredicate<A,​B,​C> predicate2)` |

    - ### Methods inherited from class org.optaplanner.core.impl.score.stream.common.AbstractConstraintStreamHelper

      `join`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### BiConstraintStreamHelper

          public BiConstraintStreamHelper​(BiConstraintStream<A,​B> stream)

  - ### Method Detail

    - #### doJoin

          protected TriConstraintStream<A,​B,​C> doJoin​(Class<C> otherClass)

      Specified by:
        `doJoin` in class `AbstractConstraintStreamHelper<C,​TriConstraintStream<A,​B,​C>,​TriJoiner<A,​B,​C>,​TriPredicate<A,​B,​C>>`

    - #### doJoin

          protected TriConstraintStream<A,​B,​C> doJoin​(Class<C> otherClass,
                                                                  TriJoiner<A,​B,​C> joiner)

      Specified by:
        `doJoin` in class `AbstractConstraintStreamHelper<C,​TriConstraintStream<A,​B,​C>,​TriJoiner<A,​B,​C>,​TriPredicate<A,​B,​C>>`

    - #### doJoin

          protected TriConstraintStream<A,​B,​C> doJoin​(Class<C> otherClass,
                                                                  TriJoiner<A,​B,​C>... joiners)

      Specified by:
        `doJoin` in class `AbstractConstraintStreamHelper<C,​TriConstraintStream<A,​B,​C>,​TriJoiner<A,​B,​C>,​TriPredicate<A,​B,​C>>`

    - #### filter

          protected TriConstraintStream<A,​B,​C> filter​(TriConstraintStream<A,​B,​C> stream,
                                                                  TriPredicate<A,​B,​C> predicate)

      Specified by:
        `filter` in class `AbstractConstraintStreamHelper<C,​TriConstraintStream<A,​B,​C>,​TriJoiner<A,​B,​C>,​TriPredicate<A,​B,​C>>`

    - #### mergeJoiners

          protected TriJoiner<A,​B,​C> mergeJoiners​(TriJoiner<A,​B,​C>... joiners)

      Specified by:
        `mergeJoiners` in class `AbstractConstraintStreamHelper<C,​TriConstraintStream<A,​B,​C>,​TriJoiner<A,​B,​C>,​TriPredicate<A,​B,​C>>`

    - #### isFilteringJoiner

          protected boolean isFilteringJoiner​(TriJoiner<A,​B,​C> joiner)

      Specified by:
        `isFilteringJoiner` in class `AbstractConstraintStreamHelper<C,​TriConstraintStream<A,​B,​C>,​TriJoiner<A,​B,​C>,​TriPredicate<A,​B,​C>>`

    - #### extractPredicate

          protected TriPredicate<A,​B,​C> extractPredicate​(TriJoiner<A,​B,​C> joiner)

      Specified by:
        `extractPredicate` in class `AbstractConstraintStreamHelper<C,​TriConstraintStream<A,​B,​C>,​TriJoiner<A,​B,​C>,​TriPredicate<A,​B,​C>>`

    - #### mergePredicates

          protected TriPredicate<A,​B,​C> mergePredicates​(TriPredicate<A,​B,​C> predicate1,
                                                                    TriPredicate<A,​B,​C> predicate2)

      Specified by:
        `mergePredicates` in class `AbstractConstraintStreamHelper<C,​TriConstraintStream<A,​B,​C>,​TriJoiner<A,​B,​C>,​TriPredicate<A,​B,​C>>`