## Uses of Interface
org.optaplanner.core.api.score.stream.uni.UniConstraintStream

- Packages that use UniConstraintStream
  Package | Description
  --- | ---
  org.optaplanner.core.api.score.stream |
  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.common |
  org.optaplanner.core.impl.score.stream.drools |
  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.tri |
  org.optaplanner.core.impl.score.stream.uni |

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

    Methods in org.optaplanner.core.api.score.stream that return UniConstraintStream
    Modifier and Type | Method | Description
    --- | --- | ---
    `<A> UniConstraintStream<A>` | ConstraintFactory.`from​(Class<A> fromClass)` | Start a `ConstraintStream` of all instances of the fromClass that are known as `problem facts` or `planning entities`.
    `<A> UniConstraintStream<A>` | ConstraintFactory.`fromUnfiltered​(Class<A> fromClass)` | Like `ConstraintFactory.from(Class)`, but without any filtering of uninitialized `planning entities`.

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

    Methods in org.optaplanner.core.api.score.stream.bi that return UniConstraintStream
    Modifier and Type | Method | Description
    --- | --- | ---
    `<GroupKey_> UniConstraintStream<GroupKey_>` | BiConstraintStream.`groupBy​(BiFunction<A,​B,​GroupKey_> groupKeyMapping)` | Convert the `BiConstraintStream` to a `UniConstraintStream`, containing the set of tuples resulting from applying the group key mapping function on all tuples of the original stream.
    `<ResultContainer_,​Result_> UniConstraintStream<Result_>` | BiConstraintStream.`groupBy​(BiConstraintCollector<A,​B,​ResultContainer_,​Result_> collector)` | Runs all tuples of the stream through a given @`BiConstraintCollector` and converts them into a new `UniConstraintStream` which only has a single tuple, the result of applying `BiConstraintCollector`.
    `<ResultA_> UniConstraintStream<ResultA_>` | BiConstraintStream.`map​(BiFunction<A,​B,​ResultA_> mapping)` | As defined by `map(Function)`.

    Methods in org.optaplanner.core.api.score.stream.bi with parameters of type UniConstraintStream
    Modifier and Type | Method | Description
    --- | --- | ---
    `default <C> TriConstraintStream<A,​B,​C>` | BiConstraintStream.`join​(UniConstraintStream<C> otherStream)` | Create a new `TriConstraintStream` for every combination of [A, B] and C.
    `<C> TriConstraintStream<A,​B,​C>` | BiConstraintStream.`join​(UniConstraintStream<C> otherStream, TriJoiner<A,​B,​C> joiner)` | Create a new `TriConstraintStream` for every combination of [A, B] and C for which the `TriJoiner` is true (for the properties it extracts from both facts).
    `default <C> TriConstraintStream<A,​B,​C>` | BiConstraintStream.`join​(UniConstraintStream<C> otherStream, TriJoiner<A,​B,​C>... joiners)` | As defined by `BiConstraintStream.join(Class, TriJoiner)`.
    `default <C> TriConstraintStream<A,​B,​C>` | BiConstraintStream.`join​(UniConstraintStream<C> otherStream, TriJoiner<A,​B,​C> joiner1, TriJoiner<A,​B,​C> joiner2)` | As defined by `BiConstraintStream.join(Class, TriJoiner)`.
    `default <C> TriConstraintStream<A,​B,​C>` | BiConstraintStream.`join​(UniConstraintStream<C> otherStream, TriJoiner<A,​B,​C> joiner1, TriJoiner<A,​B,​C> joiner2, TriJoiner<A,​B,​C> joiner3)` | As defined by `BiConstraintStream.join(Class, TriJoiner)`.
    `default <C> TriConstraintStream<A,​B,​C>` | BiConstraintStream.`join​(UniConstraintStream<C> otherStream, TriJoiner<A,​B,​C> joiner1, TriJoiner<A,​B,​C> joiner2, TriJoiner<A,​B,​C> joiner3, TriJoiner<A,​B,​C> joiner4)` | As defined by `BiConstraintStream.join(Class, TriJoiner)`.

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

    Methods in org.optaplanner.core.api.score.stream.quad that return UniConstraintStream
    Modifier and Type | Method | Description
    --- | --- | ---
    `<GroupKey_> UniConstraintStream<GroupKey_>` | QuadConstraintStream.`groupBy​(QuadFunction<A,​B,​C,​D,​GroupKey_> groupKeyMapping)` | Convert the `QuadConstraintStream` to a `UniConstraintStream`, containing the set of tuples resulting from applying the group key mapping function on all tuples of the original stream.
    `<ResultContainer_,​Result_> UniConstraintStream<Result_>` | QuadConstraintStream.`groupBy​(QuadConstraintCollector<A,​B,​C,​D,​ResultContainer_,​Result_> collector)` | Convert the `QuadConstraintStream` to a `UniConstraintStream`, containing only a single tuple, the result of applying `QuadConstraintCollector`.
    `<ResultA_> UniConstraintStream<ResultA_>` | QuadConstraintStream.`map​(QuadFunction<A,​B,​C,​D,​ResultA_> mapping)` | As defined by `map(Function)`.

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

    Methods in org.optaplanner.core.api.score.stream.tri that return UniConstraintStream
    Modifier and Type | Method | Description
    --- | --- | ---
    `<GroupKey_> UniConstraintStream<GroupKey_>` | TriConstraintStream.`groupBy​(TriFunction<A,​B,​C,​GroupKey_> groupKeyMapping)` | Convert the `TriConstraintStream` to a `UniConstraintStream`, containing the set of tuples resulting from applying the group key mapping function on all tuples of the original stream.
    `<ResultContainer_,​Result_> UniConstraintStream<Result_>` | TriConstraintStream.`groupBy​(TriConstraintCollector<A,​B,​C,​ResultContainer_,​Result_> collector)` | Convert the `TriConstraintStream` to a `UniConstraintStream`, containing only a single tuple, the result of applying `TriConstraintCollector`.
    `<ResultA_> UniConstraintStream<ResultA_>` | TriConstraintStream.`map​(TriFunction<A,​B,​C,​ResultA_> mapping)` | As defined by `map(Function)`.

    Methods in org.optaplanner.core.api.score.stream.tri with parameters of type UniConstraintStream
    Modifier and Type | Method | Description
    --- | --- | ---
    `default <D> QuadConstraintStream<A,​B,​C,​D>` | TriConstraintStream.`join​(UniConstraintStream<D> otherStream)` | Create a new `QuadConstraintStream` for every combination of [A, B, C] and D.
    `<D> QuadConstraintStream<A,​B,​C,​D>` | TriConstraintStream.`join​(UniConstraintStream<D> otherStream, QuadJoiner<A,​B,​C,​D> joiner)` | Create a new `QuadConstraintStream` for every combination of [A, B] and C for which the `QuadJoiner` is true (for the properties it extracts from all facts).
    `default <D> QuadConstraintStream<A,​B,​C,​D>` | TriConstraintStream.`join​(UniConstraintStream<D> otherStream, QuadJoiner<A,​B,​C,​D>... joiners)` | As defined by `TriConstraintStream.join(Class, QuadJoiner)`.
    `default <D> QuadConstraintStream<A,​B,​C,​D>` | TriConstraintStream.`join​(UniConstraintStream<D> otherStream, QuadJoiner<A,​B,​C,​D> joiner1, QuadJoiner<A,​B,​C,​D> joiner2)` | As defined by `TriConstraintStream.join(Class, QuadJoiner)`.
    `default <D> QuadConstraintStream<A,​B,​C,​D>` | TriConstraintStream.`join​(UniConstraintStream<D> otherStream, QuadJoiner<A,​B,​C,​D> joiner1, QuadJoiner<A,​B,​C,​D> joiner2, QuadJoiner<A,​B,​C,​D> joiner3)` | As defined by `TriConstraintStream.join(Class, QuadJoiner)`.
    `default <D> QuadConstraintStream<A,​B,​C,​D>` | TriConstraintStream.`join​(UniConstraintStream<D> otherStream, QuadJoiner<A,​B,​C,​D> joiner1, QuadJoiner<A,​B,​C,​D> joiner2, QuadJoiner<A,​B,​C,​D> joiner3, QuadJoiner<A,​B,​C,​D> joiner4)` | As defined by `TriConstraintStream.join(Class, QuadJoiner)`.

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

    Methods in org.optaplanner.core.api.score.stream.uni that return UniConstraintStream
    Modifier and Type | Method | Description
    --- | --- | ---
    `UniConstraintStream<A>` | UniConstraintStream.`distinct()` | Transforms the stream in such a way that all the tuples going through it are distinct.
    `UniConstraintStream<A>` | UniConstraintStream.`filter​(Predicate<A> predicate)` | Exhaustively test each fact against the `Predicate` and match if `Predicate.test(Object)` returns true.
    `<ResultA_> UniConstraintStream<ResultA_>` | UniConstraintStream.`flattenLast​(Function<A,​Iterable<ResultA_>> mapping)` | Takes each tuple and applies a mapping on it, which turns the tuple into a `Iterable`.
    `<GroupKey_> UniConstraintStream<GroupKey_>` | UniConstraintStream.`groupBy​(Function<A,​GroupKey_> groupKeyMapping)` | Convert the `UniConstraintStream` to a different `UniConstraintStream`, containing the set of tuples resulting from applying the group key mapping function on all tuples of the original stream.
    `<ResultContainer_,​Result_> UniConstraintStream<Result_>` | UniConstraintStream.`groupBy​(UniConstraintCollector<A,​ResultContainer_,​Result_> collector)` | Convert the `UniConstraintStream` to a different `UniConstraintStream`, containing only a single tuple, the result of applying `UniConstraintCollector`.
    `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).
    `<B> UniConstraintStream<A>` | UniConstraintStream.`ifExists​(Class<B> otherClass, BiJoiner<A,​B>... joiners)` | As defined by `ifExists(Class, BiJoiner)`.
    `default <B> UniConstraintStream<A>` | UniConstraintStream.`ifExists​(Class<B> otherClass, BiJoiner<A,​B> joiner1, BiJoiner<A,​B> joiner2)` | As defined by `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 `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 `ifExists(Class, BiJoiner)`.
    `default UniConstraintStream<A>` | UniConstraintStream.`ifExistsOther​(Class<A> otherClass)` | Create a new `UniConstraintStream` for every A, if another A exists that does not `Object.equals(Object)` the first.
    `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 `Object.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>... joiners)` | As defined by `ifExistsOther(Class, BiJoiner)`.
    `default UniConstraintStream<A>` | UniConstraintStream.`ifExistsOther​(Class<A> otherClass, BiJoiner<A,​A> joiner1, BiJoiner<A,​A> joiner2)` | As defined by `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 `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 `ifExistsOther(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).
    `<B> UniConstraintStream<A>` | UniConstraintStream.`ifNotExists​(Class<B> otherClass, BiJoiner<A,​B>... joiners)` | As defined by `ifNotExists(Class, BiJoiner)`.
    `default <B> UniConstraintStream<A>` | UniConstraintStream.`ifNotExists​(Class<B> otherClass, BiJoiner<A,​B> joiner1, BiJoiner<A,​B> joiner2)` | As defined by `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 `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 `ifNotExists(Class, BiJoiner)`.
    `default UniConstraintStream<A>` | UniConstraintStream.`ifNotExistsOther​(Class<A> otherClass)` | Create a new `UniConstraintStream` for every A, if no other A exists that does not `Object.equals(Object)` the first.
    `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 `Object.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>... joiners)` | As defined by `ifNotExistsOther(Class, BiJoiner)`.
    `default UniConstraintStream<A>` | UniConstraintStream.`ifNotExistsOther​(Class<A> otherClass, BiJoiner<A,​A> joiner1, BiJoiner<A,​A> joiner2)` | As defined by `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 `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 `ifNotExistsOther(Class, BiJoiner)`.
    `<ResultA_> UniConstraintStream<ResultA_>` | UniConstraintStream.`map​(Function<A,​ResultA_> mapping)` | Transforms the stream in such a way that tuples are remapped using the given function.

    Methods in org.optaplanner.core.api.score.stream.uni with parameters of type UniConstraintStream
    Modifier and Type | Method | Description
    --- | --- | ---
    `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).
    `default <B> BiConstraintStream<A,​B>` | UniConstraintStream.`join​(UniConstraintStream<B> otherStream, BiJoiner<A,​B>... joiners)` | As defined by `join(UniConstraintStream, BiJoiner)`.
    `default <B> BiConstraintStream<A,​B>` | UniConstraintStream.`join​(UniConstraintStream<B> otherStream, BiJoiner<A,​B> joiner1, BiJoiner<A,​B> joiner2)` | As defined by `join(UniConstraintStream, BiJoiner)`.
    `default <B> BiConstraintStream<A,​B>` | UniConstraintStream.`join​(UniConstraintStream<B> otherStream, BiJoiner<A,​B> joiner1, BiJoiner<A,​B> joiner2, BiJoiner<A,​B> joiner3)` | As defined by `join(UniConstraintStream, BiJoiner)`.
    `default <B> BiConstraintStream<A,​B>` | UniConstraintStream.`join​(UniConstraintStream<B> otherStream, BiJoiner<A,​B> joiner1, BiJoiner<A,​B> joiner2, BiJoiner<A,​B> joiner3, BiJoiner<A,​B> joiner4)` | As defined by `join(UniConstraintStream, BiJoiner)`.

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

    Methods in org.optaplanner.core.impl.score.stream that return UniConstraintStream
    Modifier and Type | Method | Description
    --- | --- | ---
    `<A> UniConstraintStream<A>` | InnerConstraintFactory.`from​(Class<A> fromClass)` |

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

    Methods in org.optaplanner.core.impl.score.stream.bavet.bi that return UniConstraintStream
    Modifier and Type | Method | Description
    --- | --- | ---
    `<GroupKey_> UniConstraintStream<GroupKey_>` | BavetAbstractBiConstraintStream.`groupBy​(BiFunction<A,​B,​GroupKey_> groupKeyMapping)` |
    `<ResultContainer_,​Result_> UniConstraintStream<Result_>` | BavetAbstractBiConstraintStream.`groupBy​(BiConstraintCollector<A,​B,​ResultContainer_,​Result_> collector)` |
    `<ResultA_> UniConstraintStream<ResultA_>` | BavetAbstractBiConstraintStream.`map​(BiFunction<A,​B,​ResultA_> mapping)` |

    Methods in org.optaplanner.core.impl.score.stream.bavet.bi with parameters of type UniConstraintStream
    Modifier and Type | Method | Description
    --- | --- | ---
    `<C> TriConstraintStream<A,​B,​C>` | BavetAbstractBiConstraintStream.`join​(UniConstraintStream<C> otherStream, TriJoiner<A,​B,​C> joiner)` |

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

    Methods in org.optaplanner.core.impl.score.stream.bavet.tri that return UniConstraintStream
    Modifier and Type | Method | Description
    --- | --- | ---
    `<GroupKey_> UniConstraintStream<GroupKey_>` | BavetAbstractTriConstraintStream.`groupBy​(TriFunction<A,​B,​C,​GroupKey_> groupKeyMapping)` |
    `<ResultContainer_,​Result_> UniConstraintStream<Result_>` | BavetAbstractTriConstraintStream.`groupBy​(TriConstraintCollector<A,​B,​C,​ResultContainer_,​Result_> collector)` |
    `<ResultA_> UniConstraintStream<ResultA_>` | BavetAbstractTriConstraintStream.`map​(TriFunction<A,​B,​C,​ResultA_> mapping)` |

    Methods in org.optaplanner.core.impl.score.stream.bavet.tri with parameters of type UniConstraintStream
    Modifier and Type | Method | Description
    --- | --- | ---
    `<D> QuadConstraintStream<A,​B,​C,​D>` | BavetAbstractTriConstraintStream.`join​(UniConstraintStream<D> otherStream, QuadJoiner<A,​B,​C,​D> joiner)` |

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

    Classes in org.optaplanner.core.impl.score.stream.bavet.uni that implement UniConstraintStream
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `BavetAbstractUniConstraintStream<Solution_,​A>` |
    `class` | `BavetFilterUniConstraintStream<Solution_,​A>` |
    `class` | `BavetFromUniConstraintStream<Solution_,​A>` |
    `class` | `BavetGroupBridgeUniConstraintStream<Solution_,​A,​NewA,​ResultContainer_,​NewB>` |
    `class` | `BavetJoinBridgeUniConstraintStream<Solution_,​A>` |
    `class` | `BavetScoringUniConstraintStream<Solution_,​A>` |

    Methods in org.optaplanner.core.impl.score.stream.bavet.uni that return UniConstraintStream
    Modifier and Type | Method | Description
    --- | --- | ---
    `<ResultA_> UniConstraintStream<ResultA_>` | BavetAbstractUniConstraintStream.`flattenLast​(Function<A,​Iterable<ResultA_>> mapping)` |
    `<GroupKey_> UniConstraintStream<GroupKey_>` | BavetAbstractUniConstraintStream.`groupBy​(Function<A,​GroupKey_> groupKeyMapping)` |
    `<ResultContainer_,​Result_> UniConstraintStream<Result_>` | BavetAbstractUniConstraintStream.`groupBy​(UniConstraintCollector<A,​ResultContainer_,​Result_> collector)` |
    `<B> UniConstraintStream<A>` | BavetAbstractUniConstraintStream.`ifExists​(Class<B> otherClass, BiJoiner<A,​B>... joiners)` |
    `<B> UniConstraintStream<A>` | BavetAbstractUniConstraintStream.`ifNotExists​(Class<B> otherClass, BiJoiner<A,​B>... joiners)` |
    `<ResultA_> UniConstraintStream<ResultA_>` | BavetAbstractUniConstraintStream.`map​(Function<A,​ResultA_> mapping)` |

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

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

    Methods in org.optaplanner.core.impl.score.stream.bi with parameters of type UniConstraintStream
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected TriConstraintStream<A,​B,​C>` | BiConstraintStreamHelper.`doJoin​(UniConstraintStream<C> otherStream)` |
    `protected TriConstraintStream<A,​B,​C>` | BiConstraintStreamHelper.`doJoin​(UniConstraintStream<C> otherStream, TriJoiner<A,​B,​C> joiner)` |
    `protected TriConstraintStream<A,​B,​C>` | BiConstraintStreamHelper.`doJoin​(UniConstraintStream<C> otherStream, TriJoiner<A,​B,​C>... joiners)` |

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

    Methods in org.optaplanner.core.impl.score.stream.common with parameters of type UniConstraintStream
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected abstract JoinedStream` | AbstractConstraintStreamHelper.`doJoin​(UniConstraintStream<Right> otherStream)` |
    `protected abstract JoinedStream` | AbstractConstraintStreamHelper.`doJoin​(UniConstraintStream<Right> otherStream, Joiner joiner)` |
    `protected abstract JoinedStream` | AbstractConstraintStreamHelper.`doJoin​(UniConstraintStream<Right> otherStream, Joiner... joiners)` |
    `JoinedStream` | AbstractConstraintStreamHelper.`join​(UniConstraintStream<Right> otherStream, Joiner... joiners)` | Converts a set of joiners into a single composite joiner, optionally followed by some filters.

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

    Methods in org.optaplanner.core.impl.score.stream.drools that return UniConstraintStream
    Modifier and Type | Method | Description
    --- | --- | ---
    `<A> UniConstraintStream<A>` | DroolsConstraintFactory.`fromUnfiltered​(Class<A> fromClass)` |

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

    Methods in org.optaplanner.core.impl.score.stream.drools.bi that return UniConstraintStream
    Modifier and Type | Method | Description
    --- | --- | ---
    `<GroupKey_> UniConstraintStream<GroupKey_>` | DroolsAbstractBiConstraintStream.`groupBy​(BiFunction<A,​B,​GroupKey_> groupKeyMapping)` |
    `<ResultContainer_,​Result_> UniConstraintStream<Result_>` | DroolsAbstractBiConstraintStream.`groupBy​(BiConstraintCollector<A,​B,​ResultContainer_,​Result_> collector)` |
    `<ResultA_> UniConstraintStream<ResultA_>` | DroolsAbstractBiConstraintStream.`map​(BiFunction<A,​B,​ResultA_> mapping)` |

    Methods in org.optaplanner.core.impl.score.stream.drools.bi with parameters of type UniConstraintStream
    Modifier and Type | Method | Description
    --- | --- | ---
    `<C> TriConstraintStream<A,​B,​C>` | DroolsAbstractBiConstraintStream.`join​(UniConstraintStream<C> otherStream, TriJoiner<A,​B,​C> joiner)` |

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

    Methods in org.optaplanner.core.impl.score.stream.drools.quad that return UniConstraintStream
    Modifier and Type | Method | Description
    --- | --- | ---
    `<GroupKey_> UniConstraintStream<GroupKey_>` | DroolsAbstractQuadConstraintStream.`groupBy​(QuadFunction<A,​B,​C,​D,​GroupKey_> groupKeyMapping)` |
    `<ResultContainer_,​Result_> UniConstraintStream<Result_>` | DroolsAbstractQuadConstraintStream.`groupBy​(QuadConstraintCollector<A,​B,​C,​D,​ResultContainer_,​Result_> collector)` |
    `<ResultA_> UniConstraintStream<ResultA_>` | DroolsAbstractQuadConstraintStream.`map​(QuadFunction<A,​B,​C,​D,​ResultA_> mapping)` |

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

    Methods in org.optaplanner.core.impl.score.stream.drools.tri that return UniConstraintStream
    Modifier and Type | Method | Description
    --- | --- | ---
    `<GroupKey_> UniConstraintStream<GroupKey_>` | DroolsAbstractTriConstraintStream.`groupBy​(TriFunction<A,​B,​C,​GroupKey_> groupKeyMapping)` |
    `<ResultContainer_,​Result_> UniConstraintStream<Result_>` | DroolsAbstractTriConstraintStream.`groupBy​(TriConstraintCollector<A,​B,​C,​ResultContainer_,​Result_> collector)` |
    `<ResultA_> UniConstraintStream<ResultA_>` | DroolsAbstractTriConstraintStream.`map​(TriFunction<A,​B,​C,​ResultA_> mapping)` |

    Methods in org.optaplanner.core.impl.score.stream.drools.tri with parameters of type UniConstraintStream
    Modifier and Type | Method | Description
    --- | --- | ---
    `<D> QuadConstraintStream<A,​B,​C,​D>` | DroolsAbstractTriConstraintStream.`join​(UniConstraintStream<D> otherStream, QuadJoiner<A,​B,​C,​D> joiner)` |

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

    Classes in org.optaplanner.core.impl.score.stream.drools.uni that implement UniConstraintStream
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `DroolsAbstractUniConstraintStream<Solution_,​A>` |
    `class` | `DroolsExistsUniConstraintStream<Solution_,​A>` |
    `class` | `DroolsFilterUniConstraintStream<Solution_,​A>` |
    `class` | `DroolsFlatteningUniConstraintStream<Solution_,​NewA>` |
    `class` | `DroolsFromUniConstraintStream<Solution_,​A>` |
    `class` | `DroolsGroupingUniConstraintStream<Solution_,​NewA>` |
    `class` | `DroolsMappingUniConstraintStream<Solution_,​NewA>` |

    Methods in org.optaplanner.core.impl.score.stream.drools.uni that return UniConstraintStream
    Modifier and Type | Method | Description
    --- | --- | ---
    `UniConstraintStream<A>` | DroolsAbstractUniConstraintStream.`filter​(Predicate<A> predicate)` |
    `<ResultA_> UniConstraintStream<ResultA_>` | DroolsAbstractUniConstraintStream.`flattenLast​(Function<A,​Iterable<ResultA_>> mapping)` |
    `<GroupKey_> UniConstraintStream<GroupKey_>` | DroolsAbstractUniConstraintStream.`groupBy​(Function<A,​GroupKey_> groupKeyMapping)` |
    `<ResultContainer_,​Result_> UniConstraintStream<Result_>` | DroolsAbstractUniConstraintStream.`groupBy​(UniConstraintCollector<A,​ResultContainer_,​Result_> collector)` |
    `<B> UniConstraintStream<A>` | DroolsAbstractUniConstraintStream.`ifExists​(Class<B> otherClass, BiJoiner<A,​B>... joiners)` |
    `<B> UniConstraintStream<A>` | DroolsAbstractUniConstraintStream.`ifNotExists​(Class<B> otherClass, BiJoiner<A,​B>... joiners)` |
    `<ResultA_> UniConstraintStream<ResultA_>` | DroolsAbstractUniConstraintStream.`map​(Function<A,​ResultA_> mapping)` |

    Methods in org.optaplanner.core.impl.score.stream.drools.uni with parameters of type UniConstraintStream
    Modifier and Type | Method | Description
    --- | --- | ---
    `<B> BiConstraintStream<A,​B>` | DroolsAbstractUniConstraintStream.`join​(UniConstraintStream<B> otherStream, BiJoiner<A,​B> joiner)` |

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

    Methods in org.optaplanner.core.impl.score.stream.tri with parameters of type UniConstraintStream
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected QuadConstraintStream<A,​B,​C,​D>` | TriConstraintStreamHelper.`doJoin​(UniConstraintStream<D> otherStream)` |
    `protected QuadConstraintStream<A,​B,​C,​D>` | TriConstraintStreamHelper.`doJoin​(UniConstraintStream<D> otherStream, QuadJoiner<A,​B,​C,​D> joiner)` |
    `protected QuadConstraintStream<A,​B,​C,​D>` | TriConstraintStreamHelper.`doJoin​(UniConstraintStream<D> otherStream, QuadJoiner<A,​B,​C,​D>... joiners)` |

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

    Subinterfaces of UniConstraintStream in org.optaplanner.core.impl.score.stream.uni
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `InnerUniConstraintStream<A>` |

    Methods in org.optaplanner.core.impl.score.stream.uni that return UniConstraintStream
    Modifier and Type | Method | Description
    --- | --- | ---
    `default UniConstraintStream<A>` | InnerUniConstraintStream.`distinct()` |

    Methods in org.optaplanner.core.impl.score.stream.uni with parameters of type UniConstraintStream
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected BiConstraintStream<A,​B>` | UniConstraintStreamHelper.`doJoin​(UniConstraintStream<B> otherStream)` |
    `protected BiConstraintStream<A,​B>` | UniConstraintStreamHelper.`doJoin​(UniConstraintStream<B> otherStream, BiJoiner<A,​B> joiner)` |
    `protected BiConstraintStream<A,​B>` | UniConstraintStreamHelper.`doJoin​(UniConstraintStream<B> otherStream, BiJoiner<A,​B>... joiners)` |

    Constructors in org.optaplanner.core.impl.score.stream.uni with parameters of type UniConstraintStream
    Constructor | Description
    --- | ---
    `UniConstraintStreamHelper​(UniConstraintStream<A> stream)` |