Package org.optaplanner.core.api.score.stream

## Class Joiners

- java.lang.Object
- - org.optaplanner.core.api.score.stream.Joiners

-     public final class Joiners
      extends Object

  Creates an `BiJoiner`, `TriJoiner`, ... instance for use in `UniConstraintStream.join(Class, BiJoiner)`, ...

- - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static <A> BiJoiner<A,​A>` | `equal()` |
    `static <A,​B,​C,​Property_> TriJoiner<A,​B,​C>` | `equal​(BiFunction<A,​B,​Property_> leftMapping, Function<C,​Property_> rightMapping)` |
    `static <A,​Property_> BiJoiner<A,​A>` | `equal​(Function<A,​Property_> mapping)` |
    `static <A,​B,​Property_> BiJoiner<A,​B>` | `equal​(Function<A,​Property_> leftMapping, Function<B,​Property_> rightMapping)` |
    `static <A,​B,​C,​D,​E,​Property_> PentaJoiner<A,​B,​C,​D,​E>` | `equal​(QuadFunction<A,​B,​C,​D,​Property_> leftMapping, Function<E,​Property_> rightMapping)` |
    `static <A,​B,​C,​D,​Property_> QuadJoiner<A,​B,​C,​D>` | `equal​(TriFunction<A,​B,​C,​Property_> leftMapping, Function<D,​Property_> rightMapping)` |
    `static <A,​B> BiJoiner<A,​B>` | `filtering​(BiPredicate<A,​B> filter)` | Applies a filter to the joined tuple, with the semantics of `BiConstraintStream.filter(BiPredicate)`.
    `static <A,​B,​C,​D,​E> PentaJoiner<A,​B,​C,​D,​E>` | `filtering​(PentaPredicate<A,​B,​C,​D,​E> filter)` |
    `static <A,​B,​C,​D> QuadJoiner<A,​B,​C,​D>` | `filtering​(QuadPredicate<A,​B,​C,​D> filter)` |
    `static <A,​B,​C> TriJoiner<A,​B,​C>` | `filtering​(TriPredicate<A,​B,​C> filter)` |
    `static <A,​B,​C,​Property_ extends Comparable<Property_>> TriJoiner<A,​B,​C>` | `greaterThan​(BiFunction<A,​B,​Property_> leftMapping, Function<C,​Property_> rightMapping)` |
    `static <A,​Property_ extends Comparable<Property_>> BiJoiner<A,​A>` | `greaterThan​(Function<A,​Property_> mapping)` |
    `static <A,​B,​Property_ extends Comparable<Property_>> BiJoiner<A,​B>` | `greaterThan​(Function<A,​Property_> leftMapping, Function<B,​Property_> rightMapping)` |
    `static <A,​B,​C,​D,​E,​Property_ extends Comparable<Property_>> PentaJoiner<A,​B,​C,​D,​E>` | `greaterThan​(QuadFunction<A,​B,​C,​D,​Property_> leftMapping, Function<E,​Property_> rightMapping)` |
    `static <A,​B,​C,​D,​Property_ extends Comparable<Property_>> QuadJoiner<A,​B,​C,​D>` | `greaterThan​(TriFunction<A,​B,​C,​Property_> leftMapping, Function<D,​Property_> rightMapping)` |
    `static <A,​B,​C,​Property_ extends Comparable<Property_>> TriJoiner<A,​B,​C>` | `greaterThanOrEqual​(BiFunction<A,​B,​Property_> leftMapping, Function<C,​Property_> rightMapping)` |
    `static <A,​Property_ extends Comparable<Property_>> BiJoiner<A,​A>` | `greaterThanOrEqual​(Function<A,​Property_> mapping)` |
    `static <A,​B,​Property_ extends Comparable<Property_>> BiJoiner<A,​B>` | `greaterThanOrEqual​(Function<A,​Property_> leftMapping, Function<B,​Property_> rightMapping)` |
    `static <A,​B,​C,​D,​E,​Property_ extends Comparable<Property_>> PentaJoiner<A,​B,​C,​D,​E>` | `greaterThanOrEqual​(QuadFunction<A,​B,​C,​D,​Property_> leftMapping, Function<E,​Property_> rightMapping)` |
    `static <A,​B,​C,​D,​Property_ extends Comparable<Property_>> QuadJoiner<A,​B,​C,​D>` | `greaterThanOrEqual​(TriFunction<A,​B,​C,​Property_> leftMapping, Function<D,​Property_> rightMapping)` |
    `static <A,​B,​C,​Property_ extends Comparable<Property_>> TriJoiner<A,​B,​C>` | `lessThan​(BiFunction<A,​B,​Property_> leftMapping, Function<C,​Property_> rightMapping)` |
    `static <A,​Property_ extends Comparable<Property_>> BiJoiner<A,​A>` | `lessThan​(Function<A,​Property_> mapping)` |
    `static <A,​B,​Property_ extends Comparable<Property_>> BiJoiner<A,​B>` | `lessThan​(Function<A,​Property_> leftMapping, Function<B,​Property_> rightMapping)` |
    `static <A,​B,​C,​D,​E,​Property_ extends Comparable<Property_>> PentaJoiner<A,​B,​C,​D,​E>` | `lessThan​(QuadFunction<A,​B,​C,​D,​Property_> leftMapping, Function<E,​Property_> rightMapping)` |
    `static <A,​B,​C,​D,​Property_ extends Comparable<Property_>> QuadJoiner<A,​B,​C,​D>` | `lessThan​(TriFunction<A,​B,​C,​Property_> leftMapping, Function<D,​Property_> rightMapping)` |
    `static <A,​B,​C,​Property_ extends Comparable<Property_>> TriJoiner<A,​B,​C>` | `lessThanOrEqual​(BiFunction<A,​B,​Property_> leftMapping, Function<C,​Property_> rightMapping)` |
    `static <A,​Property_ extends Comparable<Property_>> BiJoiner<A,​A>` | `lessThanOrEqual​(Function<A,​Property_> mapping)` |
    `static <A,​B,​Property_ extends Comparable<Property_>> BiJoiner<A,​B>` | `lessThanOrEqual​(Function<A,​Property_> leftMapping, Function<B,​Property_> rightMapping)` |
    `static <A,​B,​C,​D,​E,​Property_ extends Comparable<Property_>> PentaJoiner<A,​B,​C,​D,​E>` | `lessThanOrEqual​(QuadFunction<A,​B,​C,​D,​Property_> leftMapping, Function<E,​Property_> rightMapping)` |
    `static <A,​B,​C,​D,​Property_ extends Comparable<Property_>> QuadJoiner<A,​B,​C,​D>` | `lessThanOrEqual​(TriFunction<A,​B,​C,​Property_> leftMapping, Function<D,​Property_> rightMapping)` |

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

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

- - ### Method Detail

    - #### equal

          public static <A> BiJoiner<A,​A> equal()

    - #### equal

          public static <A,​Property_> BiJoiner<A,​A> equal​(Function<A,​Property_> mapping)

    - #### equal

          public static <A,​B,​Property_> BiJoiner<A,​B> equal​(Function<A,​Property_> leftMapping,
                                                                              Function<B,​Property_> rightMapping)

    - #### lessThan

          public static <A,​Property_ extends Comparable<Property_>> BiJoiner<A,​A> lessThan​(Function<A,​Property_> mapping)

    - #### lessThan

          public static <A,​B,​Property_ extends Comparable<Property_>> BiJoiner<A,​B> lessThan​(Function<A,​Property_> leftMapping,
                                                                                                               Function<B,​Property_> rightMapping)

    - #### lessThanOrEqual

          public static <A,​Property_ extends Comparable<Property_>> BiJoiner<A,​A> lessThanOrEqual​(Function<A,​Property_> mapping)

    - #### lessThanOrEqual

          public static <A,​B,​Property_ extends Comparable<Property_>> BiJoiner<A,​B> lessThanOrEqual​(Function<A,​Property_> leftMapping,
                                                                                                                      Function<B,​Property_> rightMapping)

    - #### greaterThan

          public static <A,​Property_ extends Comparable<Property_>> BiJoiner<A,​A> greaterThan​(Function<A,​Property_> mapping)

    - #### greaterThan

          public static <A,​B,​Property_ extends Comparable<Property_>> BiJoiner<A,​B> greaterThan​(Function<A,​Property_> leftMapping,
                                                                                                                  Function<B,​Property_> rightMapping)

    - #### greaterThanOrEqual

          public static <A,​Property_ extends Comparable<Property_>> BiJoiner<A,​A> greaterThanOrEqual​(Function<A,​Property_> mapping)

    - #### greaterThanOrEqual

          public static <A,​B,​Property_ extends Comparable<Property_>> BiJoiner<A,​B> greaterThanOrEqual​(Function<A,​Property_> leftMapping,
                                                                                                                         Function<B,​Property_> rightMapping)

    - #### filtering

          public static <A,​B> BiJoiner<A,​B> filtering​(BiPredicate<A,​B> filter)

      Applies a filter to the joined tuple, with the semantics of `BiConstraintStream.filter(BiPredicate)`.
      Type Parameters:
        `A` - type of the first fact in the tuple
        `B` - type of the second fact in the tuple
      Parameters:
        `filter` - never null, filter to apply
      Returns:
        never null

    - #### equal

          public static <A,​B,​C,​Property_> TriJoiner<A,​B,​C> equal​(BiFunction<A,​B,​Property_> leftMapping,
                                                                                               Function<C,​Property_> rightMapping)

    - #### lessThan

          public static <A,​B,​C,​Property_ extends Comparable<Property_>> TriJoiner<A,​B,​C> lessThan​(BiFunction<A,​B,​Property_> leftMapping,
                                                                                                                                Function<C,​Property_> rightMapping)

    - #### lessThanOrEqual

          public static <A,​B,​C,​Property_ extends Comparable<Property_>> TriJoiner<A,​B,​C> lessThanOrEqual​(BiFunction<A,​B,​Property_> leftMapping,
                                                                                                                                       Function<C,​Property_> rightMapping)

    - #### greaterThan

          public static <A,​B,​C,​Property_ extends Comparable<Property_>> TriJoiner<A,​B,​C> greaterThan​(BiFunction<A,​B,​Property_> leftMapping,
                                                                                                                                   Function<C,​Property_> rightMapping)

    - #### greaterThanOrEqual

          public static <A,​B,​C,​Property_ extends Comparable<Property_>> TriJoiner<A,​B,​C> greaterThanOrEqual​(BiFunction<A,​B,​Property_> leftMapping,
                                                                                                                                          Function<C,​Property_> rightMapping)

    - #### filtering

          public static <A,​B,​C> TriJoiner<A,​B,​C> filtering​(TriPredicate<A,​B,​C> filter)

    - #### equal

          public static <A,​B,​C,​D,​Property_> QuadJoiner<A,​B,​C,​D> equal​(TriFunction<A,​B,​C,​Property_> leftMapping,
                                                                                                                Function<D,​Property_> rightMapping)

    - #### lessThan

          public static <A,​B,​C,​D,​Property_ extends Comparable<Property_>> QuadJoiner<A,​B,​C,​D> lessThan​(TriFunction<A,​B,​C,​Property_> leftMapping,
                                                                                                                                                 Function<D,​Property_> rightMapping)

    - #### lessThanOrEqual

          public static <A,​B,​C,​D,​Property_ extends Comparable<Property_>> QuadJoiner<A,​B,​C,​D> lessThanOrEqual​(TriFunction<A,​B,​C,​Property_> leftMapping,
                                                                                                                                                        Function<D,​Property_> rightMapping)

    - #### greaterThan

          public static <A,​B,​C,​D,​Property_ extends Comparable<Property_>> QuadJoiner<A,​B,​C,​D> greaterThan​(TriFunction<A,​B,​C,​Property_> leftMapping,
                                                                                                                                                    Function<D,​Property_> rightMapping)

    - #### greaterThanOrEqual

          public static <A,​B,​C,​D,​Property_ extends Comparable<Property_>> QuadJoiner<A,​B,​C,​D> greaterThanOrEqual​(TriFunction<A,​B,​C,​Property_> leftMapping,
                                                                                                                                                           Function<D,​Property_> rightMapping)

    - #### filtering

          public static <A,​B,​C,​D> QuadJoiner<A,​B,​C,​D> filtering​(QuadPredicate<A,​B,​C,​D> filter)

    - #### equal

          public static <A,​B,​C,​D,​E,​Property_> PentaJoiner<A,​B,​C,​D,​E> equal​(QuadFunction<A,​B,​C,​D,​Property_> leftMapping,
                                                                                                                                 Function<E,​Property_> rightMapping)

    - #### lessThan

          public static <A,​B,​C,​D,​E,​Property_ extends Comparable<Property_>> PentaJoiner<A,​B,​C,​D,​E> lessThan​(QuadFunction<A,​B,​C,​D,​Property_> leftMapping,
                                                                                                                                                                  Function<E,​Property_> rightMapping)

    - #### lessThanOrEqual

          public static <A,​B,​C,​D,​E,​Property_ extends Comparable<Property_>> PentaJoiner<A,​B,​C,​D,​E> lessThanOrEqual​(QuadFunction<A,​B,​C,​D,​Property_> leftMapping,
                                                                                                                                                                         Function<E,​Property_> rightMapping)

    - #### greaterThan

          public static <A,​B,​C,​D,​E,​Property_ extends Comparable<Property_>> PentaJoiner<A,​B,​C,​D,​E> greaterThan​(QuadFunction<A,​B,​C,​D,​Property_> leftMapping,
                                                                                                                                                                     Function<E,​Property_> rightMapping)

    - #### greaterThanOrEqual

          public static <A,​B,​C,​D,​E,​Property_ extends Comparable<Property_>> PentaJoiner<A,​B,​C,​D,​E> greaterThanOrEqual​(QuadFunction<A,​B,​C,​D,​Property_> leftMapping,
                                                                                                                                                                            Function<E,​Property_> rightMapping)

    - #### filtering

          public static <A,​B,​C,​D,​E> PentaJoiner<A,​B,​C,​D,​E> filtering​(PentaPredicate<A,​B,​C,​D,​E> filter)