## Uses of Interface
org.optaplanner.core.api.score.stream.bi.BiJoiner

- Packages that use BiJoiner
  Package | Description
  --- | ---
  org.optaplanner.core.api.score.stream | The `ConstraintStream` API: a way to define constraints for `Score` calculation.
  org.optaplanner.core.api.score.stream.uni | The `ConstraintStream` API for uni-tuples.
  org.optaplanner.core.impl.score.stream |
  org.optaplanner.core.impl.score.stream.bavet.uni |
  org.optaplanner.core.impl.score.stream.bi |
  org.optaplanner.core.impl.score.stream.drools.bi |
  org.optaplanner.core.impl.score.stream.drools.uni |
  org.optaplanner.core.impl.score.stream.uni |

- - ### Uses of BiJoiner in org.optaplanner.core.api.score.stream

    Methods in org.optaplanner.core.api.score.stream that return BiJoiner
    Modifier and Type | Method and Description
    --- | ---
    `static <A> BiJoiner<A,A>` | Joiners.`equal()`
    `static <A,Property_> BiJoiner<A,A>` | Joiners.`equal(Function<A,Property_> mapping)`
    `static <A,B,Property_> BiJoiner<A,B>` | Joiners.`equal(Function<A,Property_> leftMapping, Function<B,Property_> rightMapping)`
    `static <A,B> BiJoiner<A,B>` | Joiners.`filtering(BiPredicate<A,B> filter)` Applies a filter to the joined tuple, with the semantics of `BiConstraintStream.filter(BiPredicate)`.
    `static <A,Property_ extends Comparable<Property_>> BiJoiner<A,A>` | Joiners.`greaterThan(Function<A,Property_> mapping)`
    `static <A,B,Property_ extends Comparable<Property_>> BiJoiner<A,B>` | Joiners.`greaterThan(Function<A,Property_> leftMapping, Function<B,Property_> rightMapping)`
    `static <A,Property_ extends Comparable<Property_>> BiJoiner<A,A>` | Joiners.`greaterThanOrEqual(Function<A,Property_> mapping)`
    `static <A,B,Property_ extends Comparable<Property_>> BiJoiner<A,B>` | Joiners.`greaterThanOrEqual(Function<A,Property_> leftMapping, Function<B,Property_> rightMapping)`
    `static <A,Property_ extends Comparable<Property_>> BiJoiner<A,A>` | Joiners.`lessThan(Function<A,Property_> mapping)`
    `static <A,B,Property_ extends Comparable<Property_>> BiJoiner<A,B>` | Joiners.`lessThan(Function<A,Property_> leftMapping, Function<B,Property_> rightMapping)`
    `static <A,Property_ extends Comparable<Property_>> BiJoiner<A,A>` | Joiners.`lessThanOrEqual(Function<A,Property_> mapping)`
    `static <A,B,Property_ extends Comparable<Property_>> BiJoiner<A,B>` | Joiners.`lessThanOrEqual(Function<A,Property_> leftMapping, Function<B,Property_> rightMapping)`

    Methods in org.optaplanner.core.api.score.stream with parameters of type BiJoiner
    Modifier and Type | Method and Description
    --- | ---
    `default <A> BiConstraintStream<A,A>` | ConstraintFactory.`fromUniquePair(Class<A> fromClass, BiJoiner<A,A>... joiners)` As defined by `ConstraintFactory.fromUniquePair(Class, BiJoiner)`.
    `<A> BiConstraintStream<A,A>` | ConstraintFactory.`fromUniquePair(Class<A> fromClass, BiJoiner<A,A> joiner)` Create a new `BiConstraintStream` for every unique combination of A and another A with a higher `PlanningId` for which the `BiJoiner` is true (for the properties it extracts from both facts).
    `default <A> BiConstraintStream<A,A>` | ConstraintFactory.`fromUniquePair(Class<A> fromClass, BiJoiner<A,A> joiner1, BiJoiner<A,A> joiner2)` As defined by `ConstraintFactory.fromUniquePair(Class, BiJoiner)`.
    `default <A> BiConstraintStream<A,A>` | ConstraintFactory.`fromUniquePair(Class<A> fromClass, BiJoiner<A,A> joiner1, BiJoiner<A,A> joiner2)` As defined by `ConstraintFactory.fromUniquePair(Class, BiJoiner)`.
    `default <A> BiConstraintStream<A,A>` | ConstraintFactory.`fromUniquePair(Class<A> fromClass, BiJoiner<A,A> joiner1, BiJoiner<A,A> joiner2, BiJoiner<A,A> joiner3)` As defined by `ConstraintFactory.fromUniquePair(Class, BiJoiner)`.
    `default <A> BiConstraintStream<A,A>` | ConstraintFactory.`fromUniquePair(Class<A> fromClass, BiJoiner<A,A> joiner1, BiJoiner<A,A> joiner2, BiJoiner<A,A> joiner3)` As defined by `ConstraintFactory.fromUniquePair(Class, BiJoiner)`.
    `default <A> BiConstraintStream<A,A>` | ConstraintFactory.`fromUniquePair(Class<A> fromClass, BiJoiner<A,A> joiner1, BiJoiner<A,A> joiner2, BiJoiner<A,A> joiner3)` As defined by `ConstraintFactory.fromUniquePair(Class, BiJoiner)`.
    `default <A> BiConstraintStream<A,A>` | ConstraintFactory.`fromUniquePair(Class<A> fromClass, BiJoiner<A,A> joiner1, BiJoiner<A,A> joiner2, BiJoiner<A,A> joiner3, BiJoiner<A,A> joiner4)` As defined by `ConstraintFactory.fromUniquePair(Class, BiJoiner)`.
    `default <A> BiConstraintStream<A,A>` | ConstraintFactory.`fromUniquePair(Class<A> fromClass, BiJoiner<A,A> joiner1, BiJoiner<A,A> joiner2, BiJoiner<A,A> joiner3, BiJoiner<A,A> joiner4)` As defined by `ConstraintFactory.fromUniquePair(Class, BiJoiner)`.
    `default <A> BiConstraintStream<A,A>` | ConstraintFactory.`fromUniquePair(Class<A> fromClass, BiJoiner<A,A> joiner1, BiJoiner<A,A> joiner2, BiJoiner<A,A> joiner3, BiJoiner<A,A> joiner4)` As defined by `ConstraintFactory.fromUniquePair(Class, BiJoiner)`.
    `default <A> BiConstraintStream<A,A>` | ConstraintFactory.`fromUniquePair(Class<A> fromClass, BiJoiner<A,A> joiner1, BiJoiner<A,A> joiner2, BiJoiner<A,A> joiner3, BiJoiner<A,A> joiner4)` As defined by `ConstraintFactory.fromUniquePair(Class, BiJoiner)`.

  - ### Uses of BiJoiner in org.optaplanner.core.api.score.stream.uni

    Methods in org.optaplanner.core.api.score.stream.uni with parameters of type BiJoiner
    Modifier and Type | Method and Description
    --- | ---
    `<B> UniConstraintStream<A>` | UniConstraintStream.`ifExists(Class<B> otherClass, BiJoiner<A,B>... joiners)` As defined by `UniConstraintStream.ifExists(Class, BiJoiner)`.
    `default <B> UniConstraintStream<A>` | UniConstraintStream.`ifExists(Class<B> otherClass, BiJoiner<A,B> joiner)` Create a new `UniConstraintStream` for every A where B exists for which the `BiJoiner` is true (for the properties it extracts from both facts).
    `default <B> UniConstraintStream<A>` | UniConstraintStream.`ifExists(Class<B> otherClass, BiJoiner<A,B> joiner1, BiJoiner<A,B> joiner2)` As defined by `UniConstraintStream.ifExists(Class, BiJoiner)`.
    `default <B> UniConstraintStream<A>` | UniConstraintStream.`ifExists(Class<B> otherClass, BiJoiner<A,B> joiner1, BiJoiner<A,B> joiner2)` As defined by `UniConstraintStream.ifExists(Class, BiJoiner)`.
    `default <B> UniConstraintStream<A>` | UniConstraintStream.`ifExists(Class<B> otherClass, BiJoiner<A,B> joiner1, BiJoiner<A,B> joiner2, BiJoiner<A,B> joiner3)` As defined by `UniConstraintStream.ifExists(Class, BiJoiner)`.
    `default <B> UniConstraintStream<A>` | UniConstraintStream.`ifExists(Class<B> otherClass, BiJoiner<A,B> joiner1, BiJoiner<A,B> joiner2, BiJoiner<A,B> joiner3)` As defined by `UniConstraintStream.ifExists(Class, BiJoiner)`.
    `default <B> UniConstraintStream<A>` | UniConstraintStream.`ifExists(Class<B> otherClass, BiJoiner<A,B> joiner1, BiJoiner<A,B> joiner2, BiJoiner<A,B> joiner3)` As defined by `UniConstraintStream.ifExists(Class, BiJoiner)`.
    `default <B> UniConstraintStream<A>` | UniConstraintStream.`ifExists(Class<B> otherClass, BiJoiner<A,B> joiner1, BiJoiner<A,B> joiner2, BiJoiner<A,B> joiner3, BiJoiner<A,B> joiner4)` As defined by `UniConstraintStream.ifExists(Class, BiJoiner)`.
    `default <B> UniConstraintStream<A>` | UniConstraintStream.`ifExists(Class<B> otherClass, BiJoiner<A,B> joiner1, BiJoiner<A,B> joiner2, BiJoiner<A,B> joiner3, BiJoiner<A,B> joiner4)` As defined by `UniConstraintStream.ifExists(Class, BiJoiner)`.
    `default <B> UniConstraintStream<A>` | UniConstraintStream.`ifExists(Class<B> otherClass, BiJoiner<A,B> joiner1, BiJoiner<A,B> joiner2, BiJoiner<A,B> joiner3, BiJoiner<A,B> joiner4)` As defined by `UniConstraintStream.ifExists(Class, BiJoiner)`.
    `default <B> UniConstraintStream<A>` | UniConstraintStream.`ifExists(Class<B> otherClass, BiJoiner<A,B> joiner1, BiJoiner<A,B> joiner2, BiJoiner<A,B> joiner3, BiJoiner<A,B> joiner4)` As defined by `UniConstraintStream.ifExists(Class, BiJoiner)`.
    `default UniConstraintStream<A>` | UniConstraintStream.`ifExistsOther(Class<A> otherClass, BiJoiner<A,A>... joiners)` As defined by `UniConstraintStream.ifExistsOther(Class, BiJoiner)`.
    `default UniConstraintStream<A>` | UniConstraintStream.`ifExistsOther(Class<A> otherClass, BiJoiner<A,A> joiner)` Create a new `UniConstraintStream` for every A, if another A exists that does not `#equals(Object)` the first, and for which the `BiJoiner` is true (for the properties it extracts from both facts).
    `default UniConstraintStream<A>` | UniConstraintStream.`ifExistsOther(Class<A> otherClass, BiJoiner<A,A> joiner1, BiJoiner<A,A> joiner2)` As defined by `UniConstraintStream.ifExistsOther(Class, BiJoiner)`.
    `default UniConstraintStream<A>` | UniConstraintStream.`ifExistsOther(Class<A> otherClass, BiJoiner<A,A> joiner1, BiJoiner<A,A> joiner2)` As defined by `UniConstraintStream.ifExistsOther(Class, BiJoiner)`.
    `default UniConstraintStream<A>` | UniConstraintStream.`ifExistsOther(Class<A> otherClass, BiJoiner<A,A> joiner1, BiJoiner<A,A> joiner2, BiJoiner<A,A> joiner3)` As defined by `UniConstraintStream.ifExistsOther(Class, BiJoiner)`.
    `default UniConstraintStream<A>` | UniConstraintStream.`ifExistsOther(Class<A> otherClass, BiJoiner<A,A> joiner1, BiJoiner<A,A> joiner2, BiJoiner<A,A> joiner3)` As defined by `UniConstraintStream.ifExistsOther(Class, BiJoiner)`.
    `default UniConstraintStream<A>` | UniConstraintStream.`ifExistsOther(Class<A> otherClass, BiJoiner<A,A> joiner1, BiJoiner<A,A> joiner2, BiJoiner<A,A> joiner3)` As defined by `UniConstraintStream.ifExistsOther(Class, BiJoiner)`.
    `default UniConstraintStream<A>` | UniConstraintStream.`ifExistsOther(Class<A> otherClass, BiJoiner<A,A> joiner1, BiJoiner<A,A> joiner2, BiJoiner<A,A> joiner3, BiJoiner<A,A> joiner4)` As defined by `UniConstraintStream.ifExistsOther(Class, BiJoiner)`.
    `default UniConstraintStream<A>` | UniConstraintStream.`ifExistsOther(Class<A> otherClass, BiJoiner<A,A> joiner1, BiJoiner<A,A> joiner2, BiJoiner<A,A> joiner3, BiJoiner<A,A> joiner4)` As defined by `UniConstraintStream.ifExistsOther(Class, BiJoiner)`.
    `default UniConstraintStream<A>` | UniConstraintStream.`ifExistsOther(Class<A> otherClass, BiJoiner<A,A> joiner1, BiJoiner<A,A> joiner2, BiJoiner<A,A> joiner3, BiJoiner<A,A> joiner4)` As defined by `UniConstraintStream.ifExistsOther(Class, BiJoiner)`.
    `default UniConstraintStream<A>` | UniConstraintStream.`ifExistsOther(Class<A> otherClass, BiJoiner<A,A> joiner1, BiJoiner<A,A> joiner2, BiJoiner<A,A> joiner3, BiJoiner<A,A> joiner4)` As defined by `UniConstraintStream.ifExistsOther(Class, BiJoiner)`.
    `<B> UniConstraintStream<A>` | UniConstraintStream.`ifNotExists(Class<B> otherClass, BiJoiner<A,B>... joiners)` As defined by `UniConstraintStream.ifNotExists(Class, BiJoiner)`.
    `default <B> UniConstraintStream<A>` | UniConstraintStream.`ifNotExists(Class<B> otherClass, BiJoiner<A,B> joiner)` Create a new `UniConstraintStream` for every A where B does not exist for which the `BiJoiner` is true (for the properties it extracts from both facts).
    `default <B> UniConstraintStream<A>` | UniConstraintStream.`ifNotExists(Class<B> otherClass, BiJoiner<A,B> joiner1, BiJoiner<A,B> joiner2)` As defined by `UniConstraintStream.ifNotExists(Class, BiJoiner)`.
    `default <B> UniConstraintStream<A>` | UniConstraintStream.`ifNotExists(Class<B> otherClass, BiJoiner<A,B> joiner1, BiJoiner<A,B> joiner2)` As defined by `UniConstraintStream.ifNotExists(Class, BiJoiner)`.
    `default <B> UniConstraintStream<A>` | UniConstraintStream.`ifNotExists(Class<B> otherClass, BiJoiner<A,B> joiner1, BiJoiner<A,B> joiner2, BiJoiner<A,B> joiner3)` As defined by `UniConstraintStream.ifNotExists(Class, BiJoiner)`.
    `default <B> UniConstraintStream<A>` | UniConstraintStream.`ifNotExists(Class<B> otherClass, BiJoiner<A,B> joiner1, BiJoiner<A,B> joiner2, BiJoiner<A,B> joiner3)` As defined by `UniConstraintStream.ifNotExists(Class, BiJoiner)`.
    `default <B> UniConstraintStream<A>` | UniConstraintStream.`ifNotExists(Class<B> otherClass, BiJoiner<A,B> joiner1, BiJoiner<A,B> joiner2, BiJoiner<A,B> joiner3)` As defined by `UniConstraintStream.ifNotExists(Class, BiJoiner)`.
    `default <B> UniConstraintStream<A>` | UniConstraintStream.`ifNotExists(Class<B> otherClass, BiJoiner<A,B> joiner1, BiJoiner<A,B> joiner2, BiJoiner<A,B> joiner3, BiJoiner<A,B> joiner4)` As defined by `UniConstraintStream.ifNotExists(Class, BiJoiner)`.
    `default <B> UniConstraintStream<A>` | UniConstraintStream.`ifNotExists(Class<B> otherClass, BiJoiner<A,B> joiner1, BiJoiner<A,B> joiner2, BiJoiner<A,B> joiner3, BiJoiner<A,B> joiner4)` As defined by `UniConstraintStream.ifNotExists(Class, BiJoiner)`.
    `default <B> UniConstraintStream<A>` | UniConstraintStream.`ifNotExists(Class<B> otherClass, BiJoiner<A,B> joiner1, BiJoiner<A,B> joiner2, BiJoiner<A,B> joiner3, BiJoiner<A,B> joiner4)` As defined by `UniConstraintStream.ifNotExists(Class, BiJoiner)`.
    `default <B> UniConstraintStream<A>` | UniConstraintStream.`ifNotExists(Class<B> otherClass, BiJoiner<A,B> joiner1, BiJoiner<A,B> joiner2, BiJoiner<A,B> joiner3, BiJoiner<A,B> joiner4)` As defined by `UniConstraintStream.ifNotExists(Class, BiJoiner)`.
    `default UniConstraintStream<A>` | UniConstraintStream.`ifNotExistsOther(Class<A> otherClass, BiJoiner<A,A>... joiners)` As defined by `UniConstraintStream.ifNotExistsOther(Class, BiJoiner)`.
    `default UniConstraintStream<A>` | UniConstraintStream.`ifNotExistsOther(Class<A> otherClass, BiJoiner<A,A> joiner)` Create a new `UniConstraintStream` for every A, if no other A exists that does not `#equals(Object)` the first, and for which the `BiJoiner` is true (for the properties it extracts from both facts).
    `default UniConstraintStream<A>` | UniConstraintStream.`ifNotExistsOther(Class<A> otherClass, BiJoiner<A,A> joiner1, BiJoiner<A,A> joiner2)` As defined by `UniConstraintStream.ifNotExistsOther(Class, BiJoiner)`.
    `default UniConstraintStream<A>` | UniConstraintStream.`ifNotExistsOther(Class<A> otherClass, BiJoiner<A,A> joiner1, BiJoiner<A,A> joiner2)` As defined by `UniConstraintStream.ifNotExistsOther(Class, BiJoiner)`.
    `default UniConstraintStream<A>` | UniConstraintStream.`ifNotExistsOther(Class<A> otherClass, BiJoiner<A,A> joiner1, BiJoiner<A,A> joiner2, BiJoiner<A,A> joiner3)` As defined by `UniConstraintStream.ifNotExistsOther(Class, BiJoiner)`.
    `default UniConstraintStream<A>` | UniConstraintStream.`ifNotExistsOther(Class<A> otherClass, BiJoiner<A,A> joiner1, BiJoiner<A,A> joiner2, BiJoiner<A,A> joiner3)` As defined by `UniConstraintStream.ifNotExistsOther(Class, BiJoiner)`.
    `default UniConstraintStream<A>` | UniConstraintStream.`ifNotExistsOther(Class<A> otherClass, BiJoiner<A,A> joiner1, BiJoiner<A,A> joiner2, BiJoiner<A,A> joiner3)` As defined by `UniConstraintStream.ifNotExistsOther(Class, BiJoiner)`.
    `default UniConstraintStream<A>` | UniConstraintStream.`ifNotExistsOther(Class<A> otherClass, BiJoiner<A,A> joiner1, BiJoiner<A,A> joiner2, BiJoiner<A,A> joiner3, BiJoiner<A,A> joiner4)` As defined by `UniConstraintStream.ifNotExistsOther(Class, BiJoiner)`.
    `default UniConstraintStream<A>` | UniConstraintStream.`ifNotExistsOther(Class<A> otherClass, BiJoiner<A,A> joiner1, BiJoiner<A,A> joiner2, BiJoiner<A,A> joiner3, BiJoiner<A,A> joiner4)` As defined by `UniConstraintStream.ifNotExistsOther(Class, BiJoiner)`.
    `default UniConstraintStream<A>` | UniConstraintStream.`ifNotExistsOther(Class<A> otherClass, BiJoiner<A,A> joiner1, BiJoiner<A,A> joiner2, BiJoiner<A,A> joiner3, BiJoiner<A,A> joiner4)` As defined by `UniConstraintStream.ifNotExistsOther(Class, BiJoiner)`.
    `default UniConstraintStream<A>` | UniConstraintStream.`ifNotExistsOther(Class<A> otherClass, BiJoiner<A,A> joiner1, BiJoiner<A,A> joiner2, BiJoiner<A,A> joiner3, BiJoiner<A,A> joiner4)` As defined by `UniConstraintStream.ifNotExistsOther(Class, BiJoiner)`.
    `default <B> BiConstraintStream<A,B>` | UniConstraintStream.`join(Class<B> otherClass, BiJoiner<A,B>... joiners)` As defined by `UniConstraintStream.join(Class, BiJoiner)`.
    `default <B> BiConstraintStream<A,B>` | UniConstraintStream.`join(Class<B> otherClass, BiJoiner<A,B> joiner)` Create a new `BiConstraintStream` for every combination of A and B for which the `BiJoiner` is true (for the properties it extracts from both facts).
    `default <B> BiConstraintStream<A,B>` | UniConstraintStream.`join(Class<B> otherClass, BiJoiner<A,B> joiner1, BiJoiner<A,B> joiner2)` As defined by `UniConstraintStream.join(Class, BiJoiner)`.
    `default <B> BiConstraintStream<A,B>` | UniConstraintStream.`join(Class<B> otherClass, BiJoiner<A,B> joiner1, BiJoiner<A,B> joiner2)` As defined by `UniConstraintStream.join(Class, BiJoiner)`.
    `default <B> BiConstraintStream<A,B>` | UniConstraintStream.`join(Class<B> otherClass, BiJoiner<A,B> joiner1, BiJoiner<A,B> joiner2, BiJoiner<A,B> joiner3)` As defined by `UniConstraintStream.join(Class, BiJoiner)`.
    `default <B> BiConstraintStream<A,B>` | UniConstraintStream.`join(Class<B> otherClass, BiJoiner<A,B> joiner1, BiJoiner<A,B> joiner2, BiJoiner<A,B> joiner3)` As defined by `UniConstraintStream.join(Class, BiJoiner)`.
    `default <B> BiConstraintStream<A,B>` | UniConstraintStream.`join(Class<B> otherClass, BiJoiner<A,B> joiner1, BiJoiner<A,B> joiner2, BiJoiner<A,B> joiner3)` As defined by `UniConstraintStream.join(Class, BiJoiner)`.
    `default <B> BiConstraintStream<A,B>` | UniConstraintStream.`join(Class<B> otherClass, BiJoiner<A,B> joiner1, BiJoiner<A,B> joiner2, BiJoiner<A,B> joiner3, BiJoiner<A,B> joiner4)` As defined by `UniConstraintStream.join(Class, BiJoiner)`.
    `default <B> BiConstraintStream<A,B>` | UniConstraintStream.`join(Class<B> otherClass, BiJoiner<A,B> joiner1, BiJoiner<A,B> joiner2, BiJoiner<A,B> joiner3, BiJoiner<A,B> joiner4)` As defined by `UniConstraintStream.join(Class, BiJoiner)`.
    `default <B> BiConstraintStream<A,B>` | UniConstraintStream.`join(Class<B> otherClass, BiJoiner<A,B> joiner1, BiJoiner<A,B> joiner2, BiJoiner<A,B> joiner3, BiJoiner<A,B> joiner4)` As defined by `UniConstraintStream.join(Class, BiJoiner)`.
    `default <B> BiConstraintStream<A,B>` | UniConstraintStream.`join(Class<B> otherClass, BiJoiner<A,B> joiner1, BiJoiner<A,B> joiner2, BiJoiner<A,B> joiner3, BiJoiner<A,B> joiner4)` As defined by `UniConstraintStream.join(Class, BiJoiner)`.
    `<B> BiConstraintStream<A,B>` | UniConstraintStream.`join(UniConstraintStream<B> otherStream, BiJoiner<A,B> joiner)` Create a new `BiConstraintStream` for every combination of A and B for which the `BiJoiner` is true (for the properties it extracts from both facts).

  - ### Uses of BiJoiner in org.optaplanner.core.impl.score.stream

    Methods in org.optaplanner.core.impl.score.stream with parameters of type BiJoiner
    Modifier and Type | Method and Description
    --- | ---
    `default <A> BiConstraintStream<A,A>` | InnerConstraintFactory.`fromUniquePair(Class<A> fromClass, BiJoiner<A,A> joiner)`

  - ### Uses of BiJoiner in org.optaplanner.core.impl.score.stream.bavet.uni

    Methods in org.optaplanner.core.impl.score.stream.bavet.uni with parameters of type BiJoiner
    Modifier and Type | Method and Description
    --- | ---
    `<B> UniConstraintStream<A>` | BavetAbstractUniConstraintStream.`ifExists(Class<B> otherClass, BiJoiner<A,B>... joiners)`
    `<B> UniConstraintStream<A>` | BavetAbstractUniConstraintStream.`ifNotExists(Class<B> otherClass, BiJoiner<A,B>... joiners)`
    `<B> BiConstraintStream<A,B>` | BavetAbstractUniConstraintStream.`join(UniConstraintStream<B> otherStream, BiJoiner<A,B> joiner)`

  - ### Uses of BiJoiner in org.optaplanner.core.impl.score.stream.bi

    Classes in org.optaplanner.core.impl.score.stream.bi that implement BiJoiner
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AbstractBiJoiner<A,B>`
    `class` | `CompositeBiJoiner<A,B>`
    `class` | `FilteringBiJoiner<A,B>`
    `class` | `NoneBiJoiner<A,B>`
    `class` | `SingleBiJoiner<A,B>`

    Methods in org.optaplanner.core.impl.score.stream.bi with parameters of type BiJoiner
    Modifier and Type | Method and Description
    --- | ---
    `static <A,B> AbstractBiJoiner<A,B>` | AbstractBiJoiner.`merge(BiJoiner<A,B>... joiners)`

  - ### Uses of BiJoiner in org.optaplanner.core.impl.score.stream.drools.bi

    Constructors in org.optaplanner.core.impl.score.stream.drools.bi with parameters of type BiJoiner
    Constructor and Description
    `DroolsJoinBiConstraintStream(DroolsConstraintFactory<Solution_> constraintFactory, DroolsAbstractUniConstraintStream<Solution_,A> parent, DroolsAbstractUniConstraintStream<Solution_,B> otherStream, BiJoiner<A,B> biJoiner)`

  - ### Uses of BiJoiner in org.optaplanner.core.impl.score.stream.drools.uni

    Methods in org.optaplanner.core.impl.score.stream.drools.uni with parameters of type BiJoiner
    Modifier and Type | Method and Description
    --- | ---
    `<B> DroolsUniCondition<A,PatternVar>` | DroolsUniCondition.`andIfExists(Class<B> otherClass, BiJoiner<A,B>... biJoiners)`
    `<B> DroolsUniCondition<A,PatternVar>` | DroolsUniCondition.`andIfNotExists(Class<B> otherClass, BiJoiner<A,B>... biJoiners)`
    `<B> UniConstraintStream<A>` | DroolsAbstractUniConstraintStream.`ifExists(Class<B> otherClass, BiJoiner<A,B>... joiners)`
    `<B> UniConstraintStream<A>` | DroolsAbstractUniConstraintStream.`ifNotExists(Class<B> otherClass, BiJoiner<A,B>... joiners)`
    `<B> BiConstraintStream<A,B>` | DroolsAbstractUniConstraintStream.`join(UniConstraintStream<B> otherStream, BiJoiner<A,B> joiner)`

    Constructors in org.optaplanner.core.impl.score.stream.drools.uni with parameters of type BiJoiner
    Constructor and Description
    `DroolsExistsUniConstraintStream(DroolsConstraintFactory<Solution_> constraintFactory, DroolsAbstractUniConstraintStream<Solution_,A> parent, boolean shouldExist, Class<B> otherClass, BiJoiner<A,B>... joiners)`

  - ### Uses of BiJoiner in org.optaplanner.core.impl.score.stream.uni

    Methods in org.optaplanner.core.impl.score.stream.uni that return BiJoiner
    Modifier and Type | Method and Description
    --- | ---
    `protected BiJoiner<A,B>` | UniConstraintStreamHelper.`mergeJoiners(BiJoiner<A,B>... joiners)`

    Methods in org.optaplanner.core.impl.score.stream.uni with parameters of type BiJoiner
    Modifier and Type | Method and Description
    --- | ---
    `protected BiConstraintStream<A,B>` | UniConstraintStreamHelper.`doJoin(Class<B> otherClass, BiJoiner<A,B>... joiners)`
    `protected BiConstraintStream<A,B>` | UniConstraintStreamHelper.`doJoin(Class<B> otherClass, BiJoiner<A,B> joiner)`
    `BiPredicate<A,B>` | UniConstraintStreamHelper.`extractPredicate(BiJoiner<A,B> joiner)`
    `protected boolean` | UniConstraintStreamHelper.`isFilteringJoiner(BiJoiner<A,B> joiner)`
    `protected BiJoiner<A,B>` | UniConstraintStreamHelper.`mergeJoiners(BiJoiner<A,B>... joiners)`

Copyright © 2006–2020 JBoss by Red Hat. All rights reserved.