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

- Packages that use UniConstraintStream
  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.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.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`.

    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).

  - ### 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`.

  - ### 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`.

    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).

  - ### 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.`filter​(Predicate<A> predicate)` | Exhaustively test each fact against the `Predicate` and match if `Predicate.test(Object)` returns true.
    `<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 `#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 `#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 `#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 `#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)`.

    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).

  - ### 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
    --- | --- | ---
    `default <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)` |

    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)` |

    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
    --- | --- | ---
    `<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)` |

    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.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)` |

    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)` |

  - ### 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)` |

    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` | `DroolsFromUniConstraintStream<Solution_,​A>` |
    `class` | `DroolsGroupingUniConstraintStream<Solution_,​NewA>` |
    `class` | `DroolsScoringUniConstraintStream<Solution_,​A>` |

    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)` |
    `<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)` |

    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.uni

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

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