## Uses of Interface
org.optaplanner.core.api.score.stream.tri.TriJoiner

- Packages that use TriJoiner
  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.impl.score.stream.bavet.bi |
  org.optaplanner.core.impl.score.stream.bi |
  org.optaplanner.core.impl.score.stream.drools.bi |
  org.optaplanner.core.impl.score.stream.drools.tri |
  org.optaplanner.core.impl.score.stream.tri |

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

    Methods in org.optaplanner.core.api.score.stream that return TriJoiner
    Modifier and Type | Method and Description
    --- | ---
    `static <A,B,C,Property_> TriJoiner<A,B,C>` | Joiners.`equal(BiFunction<A,B,Property_> leftMapping, Function<C,Property_> rightMapping)`
    `static <A,B,C> TriJoiner<A,B,C>` | Joiners.`filtering(TriPredicate<A,B,C> filter)`
    `static <A,B,C,Property_ extends Comparable<Property_>> TriJoiner<A,B,C>` | Joiners.`greaterThan(BiFunction<A,B,Property_> leftMapping, Function<C,Property_> rightMapping)`
    `static <A,B,C,Property_ extends Comparable<Property_>> TriJoiner<A,B,C>` | Joiners.`greaterThanOrEqual(BiFunction<A,B,Property_> leftMapping, Function<C,Property_> rightMapping)`
    `static <A,B,C,Property_ extends Comparable<Property_>> TriJoiner<A,B,C>` | Joiners.`lessThan(BiFunction<A,B,Property_> leftMapping, Function<C,Property_> rightMapping)`
    `static <A,B,C,Property_ extends Comparable<Property_>> TriJoiner<A,B,C>` | Joiners.`lessThanOrEqual(BiFunction<A,B,Property_> leftMapping, Function<C,Property_> rightMapping)`

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

    Methods in org.optaplanner.core.api.score.stream.bi with parameters of type TriJoiner
    Modifier and Type | Method and Description
    --- | ---
    `<C> BiConstraintStream<A,B>` | BiConstraintStream.`ifExists(Class<C> otherClass, TriJoiner<A,B,C>... joiners)` As defined by `BiConstraintStream.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 `BiConstraintStream.ifExists(Class, TriJoiner)`.
    `default <C> BiConstraintStream<A,B>` | BiConstraintStream.`ifExists(Class<C> otherClass, TriJoiner<A,B,C> joiner1, TriJoiner<A,B,C> joiner2)` As defined by `BiConstraintStream.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 `BiConstraintStream.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 `BiConstraintStream.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 `BiConstraintStream.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 `BiConstraintStream.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 `BiConstraintStream.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 `BiConstraintStream.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 `BiConstraintStream.ifExists(Class, TriJoiner)`.
    `<C> BiConstraintStream<A,B>` | BiConstraintStream.`ifNotExists(Class<C> otherClass, TriJoiner<A,B,C>... joiners)` As defined by `BiConstraintStream.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 `BiConstraintStream.ifNotExists(Class, TriJoiner)`.
    `default <C> BiConstraintStream<A,B>` | BiConstraintStream.`ifNotExists(Class<C> otherClass, TriJoiner<A,B,C> joiner1, TriJoiner<A,B,C> joiner2)` As defined by `BiConstraintStream.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 `BiConstraintStream.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 `BiConstraintStream.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 `BiConstraintStream.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 `BiConstraintStream.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 `BiConstraintStream.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 `BiConstraintStream.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 `BiConstraintStream.ifNotExists(Class, TriJoiner)`.
    `default <C> TriConstraintStream<A,B,C>` | BiConstraintStream.`join(Class<C> otherClass, TriJoiner<A,B,C>... joiners)` As defined by `BiConstraintStream.join(Class, TriJoiner)`.
    `default <C> TriConstraintStream<A,B,C>` | BiConstraintStream.`join(Class<C> otherClass, 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(Class<C> otherClass, 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(Class<C> otherClass, 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(Class<C> otherClass, 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(Class<C> otherClass, 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(Class<C> otherClass, 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(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 `BiConstraintStream.join(Class, TriJoiner)`.
    `default <C> TriConstraintStream<A,B,C>` | BiConstraintStream.`join(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 `BiConstraintStream.join(Class, TriJoiner)`.
    `default <C> TriConstraintStream<A,B,C>` | BiConstraintStream.`join(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 `BiConstraintStream.join(Class, TriJoiner)`.
    `default <C> TriConstraintStream<A,B,C>` | BiConstraintStream.`join(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 `BiConstraintStream.join(Class, TriJoiner)`.
    `<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 TriJoiner in org.optaplanner.core.impl.score.stream.bavet.bi

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

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

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

    Methods in org.optaplanner.core.impl.score.stream.bi with parameters of type TriJoiner
    Modifier and Type | Method and Description
    --- | ---
    `protected TriConstraintStream<A,B,C>` | BiConstraintStreamHelper.`doJoin(Class<C> otherClass, TriJoiner<A,B,C>... joiners)`
    `protected TriConstraintStream<A,B,C>` | BiConstraintStreamHelper.`doJoin(Class<C> otherClass, TriJoiner<A,B,C> joiner)`
    `protected TriPredicate<A,B,C>` | BiConstraintStreamHelper.`extractPredicate(TriJoiner<A,B,C> joiner)`
    `protected boolean` | BiConstraintStreamHelper.`isFilteringJoiner(TriJoiner<A,B,C> joiner)`
    `protected TriJoiner<A,B,C>` | BiConstraintStreamHelper.`mergeJoiners(TriJoiner<A,B,C>... joiners)`

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

    Methods in org.optaplanner.core.impl.score.stream.drools.bi with parameters of type TriJoiner
    Modifier and Type | Method and Description
    --- | ---
    `<C> DroolsBiCondition<A,B,PatternVar>` | DroolsBiCondition.`andIfExists(Class<C> otherClass, TriJoiner<A,B,C>... joiners)`
    `<C> DroolsBiCondition<A,B,PatternVar>` | DroolsBiCondition.`andIfNotExists(Class<C> otherClass, TriJoiner<A,B,C>... joiners)`
    `<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)`
    `<C> TriConstraintStream<A,B,C>` | DroolsAbstractBiConstraintStream.`join(UniConstraintStream<C> otherStream, TriJoiner<A,B,C> joiner)`

    Constructors in org.optaplanner.core.impl.score.stream.drools.bi with parameters of type TriJoiner
    Constructor and Description
    `DroolsExistsBiConstraintStream(DroolsConstraintFactory<Solution_> constraintFactory, DroolsAbstractBiConstraintStream<Solution_,A,B> parent, boolean shouldExist, Class<C> otherClass, TriJoiner<A,B,C>... joiners)`

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

    Constructors in org.optaplanner.core.impl.score.stream.drools.tri with parameters of type TriJoiner
    Constructor and Description
    `DroolsJoinTriConstraintStream(DroolsConstraintFactory<Solution_> constraintFactory, DroolsAbstractBiConstraintStream<Solution_,A,B> parent, DroolsAbstractUniConstraintStream<Solution_,C> otherStream, TriJoiner<A,B,C> triJoiner)`

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

    Classes in org.optaplanner.core.impl.score.stream.tri that implement TriJoiner
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AbstractTriJoiner<A,B,C>`
    `class` | `CompositeTriJoiner<A,B,C>`
    `class` | `FilteringTriJoiner<A,B,C>`
    `class` | `NoneTriJoiner<A,B,C>`
    `class` | `SingleTriJoiner<A,B,C>`

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

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