## Uses of Interface
org.optaplanner.core.api.score.stream.quad.QuadJoiner

- Packages that use QuadJoiner
  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.tri | The `ConstraintStream` API for tri-tuples.
  org.optaplanner.core.impl.score.stream.bavet.tri |
  org.optaplanner.core.impl.score.stream.drools.quad |
  org.optaplanner.core.impl.score.stream.drools.tri |
  org.optaplanner.core.impl.score.stream.quad |

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

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

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

    Methods in org.optaplanner.core.api.score.stream.tri with parameters of type QuadJoiner
    Modifier and Type | Method and Description
    --- | ---
    `<D> TriConstraintStream<A,B,C>` | TriConstraintStream.`ifExists(Class<D> otherClass, QuadJoiner<A,B,C,D>... joiners)` As defined by `TriConstraintStream.ifExists(Class, QuadJoiner)`.
    `default <D> TriConstraintStream<A,B,C>` | TriConstraintStream.`ifExists(Class<D> otherClass, QuadJoiner<A,B,C,D> joiner)` Create a new `BiConstraintStream` for every tuple of A, B and C where D exists for which the `QuadJoiner` is true (for the properties it extracts from the facts).
    `default <D> TriConstraintStream<A,B,C>` | TriConstraintStream.`ifExists(Class<D> otherClass, QuadJoiner<A,B,C,D> joiner1, QuadJoiner<A,B,C,D> joiner2)` As defined by `TriConstraintStream.ifExists(Class, QuadJoiner)`.
    `default <D> TriConstraintStream<A,B,C>` | TriConstraintStream.`ifExists(Class<D> otherClass, QuadJoiner<A,B,C,D> joiner1, QuadJoiner<A,B,C,D> joiner2)` As defined by `TriConstraintStream.ifExists(Class, QuadJoiner)`.
    `default <D> TriConstraintStream<A,B,C>` | TriConstraintStream.`ifExists(Class<D> otherClass, QuadJoiner<A,B,C,D> joiner1, QuadJoiner<A,B,C,D> joiner2, QuadJoiner<A,B,C,D> joiner3)` As defined by `TriConstraintStream.ifExists(Class, QuadJoiner)`.
    `default <D> TriConstraintStream<A,B,C>` | TriConstraintStream.`ifExists(Class<D> otherClass, QuadJoiner<A,B,C,D> joiner1, QuadJoiner<A,B,C,D> joiner2, QuadJoiner<A,B,C,D> joiner3)` As defined by `TriConstraintStream.ifExists(Class, QuadJoiner)`.
    `default <D> TriConstraintStream<A,B,C>` | TriConstraintStream.`ifExists(Class<D> otherClass, QuadJoiner<A,B,C,D> joiner1, QuadJoiner<A,B,C,D> joiner2, QuadJoiner<A,B,C,D> joiner3)` As defined by `TriConstraintStream.ifExists(Class, QuadJoiner)`.
    `default <D> TriConstraintStream<A,B,C>` | TriConstraintStream.`ifExists(Class<D> otherClass, 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.ifExists(Class, QuadJoiner)`.
    `default <D> TriConstraintStream<A,B,C>` | TriConstraintStream.`ifExists(Class<D> otherClass, 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.ifExists(Class, QuadJoiner)`.
    `default <D> TriConstraintStream<A,B,C>` | TriConstraintStream.`ifExists(Class<D> otherClass, 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.ifExists(Class, QuadJoiner)`.
    `default <D> TriConstraintStream<A,B,C>` | TriConstraintStream.`ifExists(Class<D> otherClass, 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.ifExists(Class, QuadJoiner)`.
    `<D> TriConstraintStream<A,B,C>` | TriConstraintStream.`ifNotExists(Class<D> otherClass, QuadJoiner<A,B,C,D>... joiners)` As defined by `TriConstraintStream.ifNotExists(Class, QuadJoiner)`.
    `default <D> TriConstraintStream<A,B,C>` | TriConstraintStream.`ifNotExists(Class<D> otherClass, QuadJoiner<A,B,C,D> joiner)` Create a new `BiConstraintStream` for every tuple of A, B and C where D does not exist for which the `QuadJoiner` is true (for the properties it extracts from the facts).
    `default <D> TriConstraintStream<A,B,C>` | TriConstraintStream.`ifNotExists(Class<D> otherClass, QuadJoiner<A,B,C,D> joiner1, QuadJoiner<A,B,C,D> joiner2)` As defined by `TriConstraintStream.ifNotExists(Class, QuadJoiner)`.
    `default <D> TriConstraintStream<A,B,C>` | TriConstraintStream.`ifNotExists(Class<D> otherClass, QuadJoiner<A,B,C,D> joiner1, QuadJoiner<A,B,C,D> joiner2)` As defined by `TriConstraintStream.ifNotExists(Class, QuadJoiner)`.
    `default <D> TriConstraintStream<A,B,C>` | TriConstraintStream.`ifNotExists(Class<D> otherClass, QuadJoiner<A,B,C,D> joiner1, QuadJoiner<A,B,C,D> joiner2, QuadJoiner<A,B,C,D> joiner3)` As defined by `TriConstraintStream.ifNotExists(Class, QuadJoiner)`.
    `default <D> TriConstraintStream<A,B,C>` | TriConstraintStream.`ifNotExists(Class<D> otherClass, QuadJoiner<A,B,C,D> joiner1, QuadJoiner<A,B,C,D> joiner2, QuadJoiner<A,B,C,D> joiner3)` As defined by `TriConstraintStream.ifNotExists(Class, QuadJoiner)`.
    `default <D> TriConstraintStream<A,B,C>` | TriConstraintStream.`ifNotExists(Class<D> otherClass, QuadJoiner<A,B,C,D> joiner1, QuadJoiner<A,B,C,D> joiner2, QuadJoiner<A,B,C,D> joiner3)` As defined by `TriConstraintStream.ifNotExists(Class, QuadJoiner)`.
    `default <D> TriConstraintStream<A,B,C>` | TriConstraintStream.`ifNotExists(Class<D> otherClass, 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.ifNotExists(Class, QuadJoiner)`.
    `default <D> TriConstraintStream<A,B,C>` | TriConstraintStream.`ifNotExists(Class<D> otherClass, 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.ifNotExists(Class, QuadJoiner)`.
    `default <D> TriConstraintStream<A,B,C>` | TriConstraintStream.`ifNotExists(Class<D> otherClass, 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.ifNotExists(Class, QuadJoiner)`.
    `default <D> TriConstraintStream<A,B,C>` | TriConstraintStream.`ifNotExists(Class<D> otherClass, 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.ifNotExists(Class, QuadJoiner)`.
    `default <D> QuadConstraintStream<A,B,C,D>` | TriConstraintStream.`join(Class<D> otherClass, QuadJoiner<A,B,C,D>... joiners)` As defined by `TriConstraintStream.join(Class, QuadJoiner)`.
    `default <D> QuadConstraintStream<A,B,C,D>` | TriConstraintStream.`join(Class<D> otherClass, QuadJoiner<A,B,C,D> joiner)` Create a new `QuadConstraintStream` for every combination of [A, B, C] and D for which the `QuadJoiner` is true (for the properties it extracts from all facts).
    `default <D> QuadConstraintStream<A,B,C,D>` | TriConstraintStream.`join(Class<D> otherClass, 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(Class<D> otherClass, 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(Class<D> otherClass, 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(Class<D> otherClass, 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(Class<D> otherClass, 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(Class<D> otherClass, 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)`.
    `default <D> QuadConstraintStream<A,B,C,D>` | TriConstraintStream.`join(Class<D> otherClass, 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)`.
    `default <D> QuadConstraintStream<A,B,C,D>` | TriConstraintStream.`join(Class<D> otherClass, 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)`.
    `default <D> QuadConstraintStream<A,B,C,D>` | TriConstraintStream.`join(Class<D> otherClass, 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)`.
    `<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 QuadJoiner in org.optaplanner.core.impl.score.stream.bavet.tri

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

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

    Constructors in org.optaplanner.core.impl.score.stream.drools.quad with parameters of type QuadJoiner
    Constructor and Description
    `DroolsJoinQuadConstraintStream(DroolsConstraintFactory<Solution_> constraintFactory, DroolsAbstractTriConstraintStream<Solution_,A,B,C> parent, DroolsAbstractUniConstraintStream<Solution_,D> otherStream, QuadJoiner<A,B,C,D> joiner)`

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

    Methods in org.optaplanner.core.impl.score.stream.drools.tri with parameters of type QuadJoiner
    Modifier and Type | Method and Description
    --- | ---
    `<D> DroolsTriCondition<A,B,C,PatternVar>` | DroolsTriCondition.`andIfExists(Class<D> otherClass, QuadJoiner<A,B,C,D>... joiners)`
    `<D> DroolsTriCondition<A,B,C,PatternVar>` | DroolsTriCondition.`andIfNotExists(Class<D> otherClass, QuadJoiner<A,B,C,D>... joiners)`
    `<D> TriConstraintStream<A,B,C>` | DroolsAbstractTriConstraintStream.`ifExists(Class<D> otherClass, QuadJoiner<A,B,C,D>... joiners)`
    `<D> TriConstraintStream<A,B,C>` | DroolsAbstractTriConstraintStream.`ifNotExists(Class<D> otherClass, QuadJoiner<A,B,C,D>... joiners)`
    `<D> QuadConstraintStream<A,B,C,D>` | DroolsAbstractTriConstraintStream.`join(UniConstraintStream<D> otherStream, QuadJoiner<A,B,C,D> joiner)`

    Constructors in org.optaplanner.core.impl.score.stream.drools.tri with parameters of type QuadJoiner
    Constructor and Description
    `DroolsExistsTriConstraintStream(DroolsConstraintFactory<Solution_> constraintFactory, DroolsAbstractTriConstraintStream<Solution_,A,B,C> parent, boolean shouldExist, Class<D> otherClass, QuadJoiner<A,B,C,D>... joiners)`

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

    Classes in org.optaplanner.core.impl.score.stream.quad that implement QuadJoiner
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AbstractQuadJoiner<A,B,C,D>`
    `class` | `CompositeQuadJoiner<A,B,C,D>`
    `class` | `FilteringQuadJoiner<A,B,C,D>`
    `class` | `NoneQuadJoiner<A,B,C,D>`
    `class` | `SingleQuadJoiner<A,B,C,D>`

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

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