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

- Packages that use BiConstraintStream
  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.bi | The `ConstraintStream` API for bi-tuples.
  org.optaplanner.core.api.score.stream.quad | The `ConstraintStream` API for four matched facts.
  org.optaplanner.core.api.score.stream.tri | The `ConstraintStream` API for tri-tuples.
  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.bi |
  org.optaplanner.core.impl.score.stream.bavet.tri |
  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.quad |
  org.optaplanner.core.impl.score.stream.drools.tri |
  org.optaplanner.core.impl.score.stream.drools.uni |
  org.optaplanner.core.impl.score.stream.uni |

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

    Methods in org.optaplanner.core.api.score.stream that return BiConstraintStream
    Modifier and Type | Method and Description
    --- | ---
    `default <A> BiConstraintStream<A,A>` | ConstraintFactory.`fromUniquePair(Class<A> fromClass)` Create a new `BiConstraintStream` for every unique combination of A and another A with a higher `PlanningId`.
    `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, 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)`.

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

    Methods in org.optaplanner.core.api.score.stream.bi that return BiConstraintStream
    Modifier and Type | Method and Description
    --- | ---
    `BiConstraintStream<A,B>` | BiConstraintStream.`filter(BiPredicate<A,B> predicate)` Exhaustively test each tuple of facts against the `BiPredicate` and match if `BiPredicate.test(Object, Object)` returns true.
    `<GroupKey_,ResultContainer_,Result_> BiConstraintStream<GroupKey_,Result_>` | BiConstraintStream.`groupBy(BiFunction<A,B,GroupKey_> groupKeyMapping, BiConstraintCollector<A,B,ResultContainer_,Result_> collector)` Convert the `BiConstraintStream` to a different `BiConstraintStream`, consisting of unique tuples.
    `<GroupKeyA_,GroupKeyB_> BiConstraintStream<GroupKeyA_,GroupKeyB_>` | BiConstraintStream.`groupBy(BiFunction<A,B,GroupKeyA_> groupKeyAMapping, BiFunction<A,B,GroupKeyB_> groupKeyBMapping)` Convert the `BiConstraintStream` to a different `BiConstraintStream`, consisting of unique tuples.
    `<C> BiConstraintStream<A,B>` | BiConstraintStream.`ifExists(Class<C> otherClass, TriJoiner<A,B,C>... joiners)` As defined by `ifExists(Class, TriJoiner)`.
    `default <C> BiConstraintStream<A,B>` | BiConstraintStream.`ifExists(Class<C> otherClass, TriJoiner<A,B,C> joiner)` Create a new `BiConstraintStream` for every pair of A and B where C exists for which the `TriJoiner` is true (for the properties it extracts from the facts).
    `default <C> BiConstraintStream<A,B>` | BiConstraintStream.`ifExists(Class<C> otherClass, TriJoiner<A,B,C> joiner1, TriJoiner<A,B,C> joiner2)` As defined by `ifExists(Class, TriJoiner)`.
    `default <C> BiConstraintStream<A,B>` | BiConstraintStream.`ifExists(Class<C> otherClass, TriJoiner<A,B,C> joiner1, TriJoiner<A,B,C> joiner2, TriJoiner<A,B,C> joiner3)` As defined by `ifExists(Class, TriJoiner)`.
    `default <C> BiConstraintStream<A,B>` | BiConstraintStream.`ifExists(Class<C> otherClass, TriJoiner<A,B,C> joiner1, TriJoiner<A,B,C> joiner2, TriJoiner<A,B,C> joiner3, TriJoiner<A,B,C> joiner4)` As defined by `ifExists(Class, TriJoiner)`.
    `<C> BiConstraintStream<A,B>` | BiConstraintStream.`ifNotExists(Class<C> otherClass, TriJoiner<A,B,C>... joiners)` As defined by `ifNotExists(Class, TriJoiner)`.
    `default <C> BiConstraintStream<A,B>` | BiConstraintStream.`ifNotExists(Class<C> otherClass, TriJoiner<A,B,C> joiner)` Create a new `BiConstraintStream` for every pair of A and B where C does not exist for which the `TriJoiner` is true (for the properties it extracts from the facts).
    `default <C> BiConstraintStream<A,B>` | BiConstraintStream.`ifNotExists(Class<C> otherClass, TriJoiner<A,B,C> joiner1, TriJoiner<A,B,C> joiner2)` As defined by `ifNotExists(Class, TriJoiner)`.
    `default <C> BiConstraintStream<A,B>` | BiConstraintStream.`ifNotExists(Class<C> otherClass, TriJoiner<A,B,C> joiner1, TriJoiner<A,B,C> joiner2, TriJoiner<A,B,C> joiner3)` As defined by `ifNotExists(Class, TriJoiner)`.
    `default <C> BiConstraintStream<A,B>` | BiConstraintStream.`ifNotExists(Class<C> otherClass, TriJoiner<A,B,C> joiner1, TriJoiner<A,B,C> joiner2, TriJoiner<A,B,C> joiner3, TriJoiner<A,B,C> joiner4)` As defined by `ifNotExists(Class, TriJoiner)`.

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

    Methods in org.optaplanner.core.api.score.stream.quad that return BiConstraintStream
    Modifier and Type | Method and Description
    --- | ---
    `<GroupKey_,ResultContainer_,Result_> BiConstraintStream<GroupKey_,Result_>` | QuadConstraintStream.`groupBy(QuadFunction<A,B,C,D,GroupKey_> groupKeyMapping, QuadConstraintCollector<A,B,C,D,ResultContainer_,Result_> collector)` Convert the `QuadConstraintStream` to a `BiConstraintStream`, consisting of unique tuples.
    `<GroupKeyA_,GroupKeyB_> BiConstraintStream<GroupKeyA_,GroupKeyB_>` | QuadConstraintStream.`groupBy(QuadFunction<A,B,C,D,GroupKeyA_> groupKeyAMapping, QuadFunction<A,B,C,D,GroupKeyB_> groupKeyBMapping)` Convert the `QuadConstraintStream` to a `BiConstraintStream`, consisting of unique tuples.

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

    Methods in org.optaplanner.core.api.score.stream.tri that return BiConstraintStream
    Modifier and Type | Method and Description
    --- | ---
    `<GroupKey_,ResultContainer_,Result_> BiConstraintStream<GroupKey_,Result_>` | TriConstraintStream.`groupBy(TriFunction<A,B,C,GroupKey_> groupKeyMapping, TriConstraintCollector<A,B,C,ResultContainer_,Result_> collector)` Convert the `TriConstraintStream` to a `BiConstraintStream`, consisting of unique tuples.
    `<GroupKeyA_,GroupKeyB_> BiConstraintStream<GroupKeyA_,GroupKeyB_>` | TriConstraintStream.`groupBy(TriFunction<A,B,C,GroupKeyA_> groupKeyAMapping, TriFunction<A,B,C,GroupKeyB_> groupKeyBMapping)` Convert the `TriConstraintStream` to a `BiConstraintStream`, consisting of unique tuples.

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

    Methods in org.optaplanner.core.api.score.stream.uni that return BiConstraintStream
    Modifier and Type | Method and Description
    --- | ---
    `<GroupKey_,ResultContainer_,Result_> BiConstraintStream<GroupKey_,Result_>` | UniConstraintStream.`groupBy(Function<A,GroupKey_> groupKeyMapping, UniConstraintCollector<A,ResultContainer_,Result_> collector)` Convert the `UniConstraintStream` to a `BiConstraintStream`, consisting of unique tuples with two facts.
    `<GroupKeyA_,GroupKeyB_> BiConstraintStream<GroupKeyA_,GroupKeyB_>` | UniConstraintStream.`groupBy(Function<A,GroupKeyA_> groupKeyAMapping, Function<A,GroupKeyB_> groupKeyBMapping)` Convert the `UniConstraintStream` to a `BiConstraintStream`, consisting of unique tuples with two facts.
    `default <B> BiConstraintStream<A,B>` | UniConstraintStream.`join(Class<B> otherClass)` Create a new `BiConstraintStream` for every combination of A and B.
    `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, 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(UniConstraintStream<B> otherStream)` Create a new `BiConstraintStream` for every combination of A and B.
    `<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 BiConstraintStream in org.optaplanner.core.impl.score.stream

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

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

    Classes in org.optaplanner.core.impl.score.stream.bavet.bi that implement BiConstraintStream
    Modifier and Type | Class and Description
    --- | ---
    `class` | `BavetAbstractBiConstraintStream<Solution_,A,B>`
    `class` | `BavetFilterBiConstraintStream<Solution_,A,B>`
    `class` | `BavetGroupBiConstraintStream<Solution_,GroupKey_,ResultContainer_,Result_>`
    `class` | `BavetJoinBiConstraintStream<Solution_,A,B>`
    `class` | `BavetJoinBridgeBiConstraintStream<Solution_,A,B>`
    `class` | `BavetScoringBiConstraintStream<Solution_,A,B>`

    Methods in org.optaplanner.core.impl.score.stream.bavet.bi that return BiConstraintStream
    Modifier and Type | Method and Description
    --- | ---
    `<GroupKey_,ResultContainer_,Result_> BiConstraintStream<GroupKey_,Result_>` | BavetAbstractBiConstraintStream.`groupBy(BiFunction<A,B,GroupKey_> groupKeyMapping, BiConstraintCollector<A,B,ResultContainer_,Result_> collector)`
    `<GroupKeyA_,GroupKeyB_> BiConstraintStream<GroupKeyA_,GroupKeyB_>` | BavetAbstractBiConstraintStream.`groupBy(BiFunction<A,B,GroupKeyA_> groupKeyAMapping, BiFunction<A,B,GroupKeyB_> groupKeyBMapping)`
    `<C> BiConstraintStream<A,B>` | BavetAbstractBiConstraintStream.`ifExists(Class<C> otherClass, TriJoiner<A,B,C>... joiners)`
    `<C> BiConstraintStream<A,B>` | BavetAbstractBiConstraintStream.`ifNotExists(Class<C> otherClass, TriJoiner<A,B,C>... joiners)`

  - ### Uses of BiConstraintStream in org.optaplanner.core.impl.score.stream.bavet.tri

    Methods in org.optaplanner.core.impl.score.stream.bavet.tri that return BiConstraintStream
    Modifier and Type | Method and Description
    --- | ---
    `<GroupKey_,ResultContainer_,Result_> BiConstraintStream<GroupKey_,Result_>` | BavetAbstractTriConstraintStream.`groupBy(TriFunction<A,B,C,GroupKey_> groupKeyMapping, TriConstraintCollector<A,B,C,ResultContainer_,Result_> collector)`
    `<GroupKeyA_,GroupKeyB_> BiConstraintStream<GroupKeyA_,GroupKeyB_>` | BavetAbstractTriConstraintStream.`groupBy(TriFunction<A,B,C,GroupKeyA_> groupKeyAMapping, TriFunction<A,B,C,GroupKeyB_> groupKeyBMapping)`

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

    Methods in org.optaplanner.core.impl.score.stream.bavet.uni that return BiConstraintStream
    Modifier and Type | Method and Description
    --- | ---
    `<GroupKey_,ResultContainer_,Result_> BiConstraintStream<GroupKey_,Result_>` | BavetAbstractUniConstraintStream.`groupBy(Function<A,GroupKey_> groupKeyMapping, UniConstraintCollector<A,ResultContainer_,Result_> collector)`
    `<GroupKeyA_,GroupKeyB_> BiConstraintStream<GroupKeyA_,GroupKeyB_>` | BavetAbstractUniConstraintStream.`groupBy(Function<A,GroupKeyA_> groupKeyAMapping, Function<A,GroupKeyB_> groupKeyBMapping)`
    `<B> BiConstraintStream<A,B>` | BavetAbstractUniConstraintStream.`join(UniConstraintStream<B> otherStream, BiJoiner<A,B> joiner)`

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

    Subinterfaces of BiConstraintStream in org.optaplanner.core.impl.score.stream.bi
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `InnerBiConstraintStream<A,B>`

    Constructors in org.optaplanner.core.impl.score.stream.bi with parameters of type BiConstraintStream
    Constructor and Description
    `BiConstraintStreamHelper(BiConstraintStream<A,B> stream)`

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

    Classes in org.optaplanner.core.impl.score.stream.drools.bi that implement BiConstraintStream
    Modifier and Type | Class and Description
    --- | ---
    `class` | `DroolsAbstractBiConstraintStream<Solution_,A,B>`
    `class` | `DroolsExistsBiConstraintStream<Solution_,A,B>`
    `class` | `DroolsFilterBiConstraintStream<Solution_,A,B>`
    `class` | `DroolsGroupingBiConstraintStream<Solution_,NewA,NewB>`
    `class` | `DroolsJoinBiConstraintStream<Solution_,A,B>`
    `class` | `DroolsScoringBiConstraintStream<Solution_,A,B>`

    Methods in org.optaplanner.core.impl.score.stream.drools.bi that return BiConstraintStream
    Modifier and Type | Method and Description
    --- | ---
    `BiConstraintStream<A,B>` | DroolsAbstractBiConstraintStream.`filter(BiPredicate<A,B> predicate)`
    `<GroupKey_,__,Result_> BiConstraintStream<GroupKey_,Result_>` | DroolsAbstractBiConstraintStream.`groupBy(BiFunction<A,B,GroupKey_> groupKeyMapping, BiConstraintCollector<A,B,__,Result_> collector)`
    `<GroupKeyA_,GroupKeyB_> BiConstraintStream<GroupKeyA_,GroupKeyB_>` | DroolsAbstractBiConstraintStream.`groupBy(BiFunction<A,B,GroupKeyA_> groupKeyAMapping, BiFunction<A,B,GroupKeyB_> groupKeyBMapping)`
    `<C> BiConstraintStream<A,B>` | DroolsAbstractBiConstraintStream.`ifExists(Class<C> otherClass, TriJoiner<A,B,C>... joiners)`
    `<C> BiConstraintStream<A,B>` | DroolsAbstractBiConstraintStream.`ifNotExists(Class<C> otherClass, TriJoiner<A,B,C>... joiners)`

  - ### Uses of BiConstraintStream in org.optaplanner.core.impl.score.stream.drools.quad

    Methods in org.optaplanner.core.impl.score.stream.drools.quad that return BiConstraintStream
    Modifier and Type | Method and Description
    --- | ---
    `<GroupKey_,ResultContainer_,Result_> BiConstraintStream<GroupKey_,Result_>` | DroolsAbstractQuadConstraintStream.`groupBy(QuadFunction<A,B,C,D,GroupKey_> groupKeyMapping, QuadConstraintCollector<A,B,C,D,ResultContainer_,Result_> collector)`
    `<GroupKeyA_,GroupKeyB_> BiConstraintStream<GroupKeyA_,GroupKeyB_>` | DroolsAbstractQuadConstraintStream.`groupBy(QuadFunction<A,B,C,D,GroupKeyA_> groupKeyAMapping, QuadFunction<A,B,C,D,GroupKeyB_> groupKeyBMapping)`

  - ### Uses of BiConstraintStream in org.optaplanner.core.impl.score.stream.drools.tri

    Methods in org.optaplanner.core.impl.score.stream.drools.tri that return BiConstraintStream
    Modifier and Type | Method and Description
    --- | ---
    `<GroupKey_,ResultContainer_,Result_> BiConstraintStream<GroupKey_,Result_>` | DroolsAbstractTriConstraintStream.`groupBy(TriFunction<A,B,C,GroupKey_> groupKeyMapping, TriConstraintCollector<A,B,C,ResultContainer_,Result_> collector)`
    `<GroupKeyA_,GroupKeyB_> BiConstraintStream<GroupKeyA_,GroupKeyB_>` | DroolsAbstractTriConstraintStream.`groupBy(TriFunction<A,B,C,GroupKeyA_> groupKeyAMapping, TriFunction<A,B,C,GroupKeyB_> groupKeyBMapping)`

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

    Methods in org.optaplanner.core.impl.score.stream.drools.uni that return BiConstraintStream
    Modifier and Type | Method and Description
    --- | ---
    `<GroupKey_,ResultContainer_,Result_> BiConstraintStream<GroupKey_,Result_>` | DroolsAbstractUniConstraintStream.`groupBy(Function<A,GroupKey_> groupKeyMapping, UniConstraintCollector<A,ResultContainer_,Result_> collector)`
    `<GroupKeyA_,GroupKeyB_> BiConstraintStream<GroupKeyA_,GroupKeyB_>` | DroolsAbstractUniConstraintStream.`groupBy(Function<A,GroupKeyA_> groupKeyAMapping, Function<A,GroupKeyB_> groupKeyBMapping)`
    `<B> BiConstraintStream<A,B>` | DroolsAbstractUniConstraintStream.`join(UniConstraintStream<B> otherStream, BiJoiner<A,B> joiner)`

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

    Methods in org.optaplanner.core.impl.score.stream.uni that return BiConstraintStream
    Modifier and Type | Method and Description
    --- | ---
    `protected BiConstraintStream<A,B>` | UniConstraintStreamHelper.`doJoin(Class<B> otherClass)`
    `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)`
    `protected BiConstraintStream<A,B>` | UniConstraintStreamHelper.`filter(BiConstraintStream<A,B> stream, BiPredicate<A,B> predicate)`

    Methods in org.optaplanner.core.impl.score.stream.uni with parameters of type BiConstraintStream
    Modifier and Type | Method and Description
    --- | ---
    `protected BiConstraintStream<A,B>` | UniConstraintStreamHelper.`filter(BiConstraintStream<A,B> stream, BiPredicate<A,B> predicate)`

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