## Uses of Class
org.optaplanner.core.impl.score.stream.drools.common.QuadLeftHandSide

- Packages that use QuadLeftHandSide
  Package | Description
  --- | ---
  org.optaplanner.core.impl.score.stream.drools.common |
  org.optaplanner.core.impl.score.stream.drools.quad |

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

    Methods in org.optaplanner.core.impl.score.stream.drools.common that return QuadLeftHandSide
    Modifier and Type | Method | Description
    --- | --- | ---
    `<E> QuadLeftHandSide<A,​B,​C,​D>` | QuadLeftHandSide.`andExists​(Class<E> dClass, PentaJoiner<A,​B,​C,​D,​E>[] joiners)` |
    `QuadLeftHandSide<A,​B,​C,​D>` | QuadLeftHandSide.`andFilter​(QuadPredicate<A,​B,​C,​D> predicate)` |
    `<NewA,​NewB,​NewC,​NewD> QuadLeftHandSide<NewA,​NewB,​NewC,​NewD>` | BiLeftHandSide.`andGroupBy​(BiFunction<A,​B,​NewA> keyMappingA, BiFunction<A,​B,​NewB> keyMappingB, BiConstraintCollector<A,​B,​?,​NewC> collectorC, BiConstraintCollector<A,​B,​?,​NewD> collectorD)` |
    `<NewA,​NewB,​NewC,​NewD> QuadLeftHandSide<NewA,​NewB,​NewC,​NewD>` | BiLeftHandSide.`andGroupBy​(BiFunction<A,​B,​NewA> keyMappingA, BiConstraintCollector<A,​B,​?,​NewB> collectorB, BiConstraintCollector<A,​B,​?,​NewC> collectorC, BiConstraintCollector<A,​B,​?,​NewD> collectorD)` |
    `<NewA,​NewB,​NewC,​NewD> QuadLeftHandSide<NewA,​NewB,​NewC,​NewD>` | BiLeftHandSide.`andGroupBy​(BiConstraintCollector<A,​B,​?,​NewA> collectorA, BiConstraintCollector<A,​B,​?,​NewB> collectorB, BiConstraintCollector<A,​B,​?,​NewC> collectorC, BiConstraintCollector<A,​B,​?,​NewD> collectorD)` |
    `<NewA,​NewB,​NewC,​NewD> QuadLeftHandSide<NewA,​NewB,​NewC,​NewD>` | QuadLeftHandSide.`andGroupBy​(QuadFunction<A,​B,​C,​D,​NewA> keyMappingA, QuadFunction<A,​B,​C,​D,​NewB> keyMappingB, QuadConstraintCollector<A,​B,​C,​D,​?,​NewC> collectorC, QuadConstraintCollector<A,​B,​C,​D,​?,​NewD> collectorD)` |
    `<NewA,​NewB,​NewC,​NewD> QuadLeftHandSide<NewA,​NewB,​NewC,​NewD>` | QuadLeftHandSide.`andGroupBy​(QuadFunction<A,​B,​C,​D,​NewA> keyMappingA, QuadConstraintCollector<A,​B,​C,​D,​?,​NewB> collectorB, QuadConstraintCollector<A,​B,​C,​D,​?,​NewC> collectorC, QuadConstraintCollector<A,​B,​C,​D,​?,​NewD> collectorD)` |
    `<NewA,​NewB,​NewC,​NewD> QuadLeftHandSide<NewA,​NewB,​NewC,​NewD>` | QuadLeftHandSide.`andGroupBy​(QuadConstraintCollector<A,​B,​C,​D,​?,​NewA> collectorA, QuadConstraintCollector<A,​B,​C,​D,​?,​NewB> collectorB, QuadConstraintCollector<A,​B,​C,​D,​?,​NewC> collectorC, QuadConstraintCollector<A,​B,​C,​D,​?,​NewD> collectorD)` |
    `<NewA,​NewB,​NewC,​NewD> QuadLeftHandSide<NewA,​NewB,​NewC,​NewD>` | TriLeftHandSide.`andGroupBy​(TriFunction<A,​B,​C,​NewA> keyMappingA, TriFunction<A,​B,​C,​NewB> keyMappingB, TriConstraintCollector<A,​B,​C,​?,​NewC> collectorC, TriConstraintCollector<A,​B,​C,​?,​NewD> collectorD)` |
    `<NewA,​NewB,​NewC,​NewD> QuadLeftHandSide<NewA,​NewB,​NewC,​NewD>` | TriLeftHandSide.`andGroupBy​(TriFunction<A,​B,​C,​NewA> keyMappingA, TriConstraintCollector<A,​B,​C,​?,​NewB> collectorB, TriConstraintCollector<A,​B,​C,​?,​NewC> collectorC, TriConstraintCollector<A,​B,​C,​?,​NewD> collectorD)` |
    `<NewA,​NewB,​NewC,​NewD> QuadLeftHandSide<NewA,​NewB,​NewC,​NewD>` | TriLeftHandSide.`andGroupBy​(TriConstraintCollector<A,​B,​C,​?,​NewA> collectorA, TriConstraintCollector<A,​B,​C,​?,​NewB> collectorB, TriConstraintCollector<A,​B,​C,​?,​NewC> collectorC, TriConstraintCollector<A,​B,​C,​?,​NewD> collectorD)` |
    `<NewA,​NewB,​NewC,​NewD> QuadLeftHandSide<NewA,​NewB,​NewC,​NewD>` | UniLeftHandSide.`andGroupBy​(Function<A,​NewA> keyMappingA, Function<A,​NewB> keyMappingB, UniConstraintCollector<A,​?,​NewC> collectorC, UniConstraintCollector<A,​?,​NewD> collectorD)` |
    `<NewA,​NewB,​NewC,​NewD> QuadLeftHandSide<NewA,​NewB,​NewC,​NewD>` | UniLeftHandSide.`andGroupBy​(Function<A,​NewA> keyMappingA, UniConstraintCollector<A,​?,​NewB> collectorB, UniConstraintCollector<A,​?,​NewC> collectorC, UniConstraintCollector<A,​?,​NewD> collectorD)` |
    `<NewA,​NewB,​NewC,​NewD> QuadLeftHandSide<NewA,​NewB,​NewC,​NewD>` | UniLeftHandSide.`andGroupBy​(UniConstraintCollector<A,​?,​NewA> collectorA, UniConstraintCollector<A,​?,​NewB> collectorB, UniConstraintCollector<A,​?,​NewC> collectorC, UniConstraintCollector<A,​?,​NewD> collectorD)` |
    `<D> QuadLeftHandSide<A,​B,​C,​D>` | TriLeftHandSide.`andJoin​(UniLeftHandSide<D> right, QuadJoiner<A,​B,​C,​D> joiner)` |
    `<E> QuadLeftHandSide<A,​B,​C,​D>` | QuadLeftHandSide.`andNotExists​(Class<E> dClass, PentaJoiner<A,​B,​C,​D,​E>[] joiners)` |

    Constructors in org.optaplanner.core.impl.score.stream.drools.common with parameters of type QuadLeftHandSide
    Constructor | Description
    --- | ---
    `QuadLeftHandSide​(QuadLeftHandSide<A,​B,​C,​D> leftHandSide, PatternVariable<D,​?,​?> patternVariable)` |

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

    Methods in org.optaplanner.core.impl.score.stream.drools.quad that return QuadLeftHandSide
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract QuadLeftHandSide<A,​B,​C,​D>` | DroolsAbstractQuadConstraintStream.`getLeftHandSide()` |
    `QuadLeftHandSide<A,​B,​C,​D>` | DroolsExistsQuadConstraintStream.`getLeftHandSide()` |
    `QuadLeftHandSide<A,​B,​C,​D>` | DroolsFilterQuadConstraintStream.`getLeftHandSide()` |
    `QuadLeftHandSide<NewA,​NewB,​NewC,​NewD>` | DroolsGroupingQuadConstraintStream.`getLeftHandSide()` |
    `QuadLeftHandSide<A,​B,​C,​D>` | DroolsJoinQuadConstraintStream.`getLeftHandSide()` |