Package org.optaplanner.core.impl.score.stream.drools.common

## Class ConstraintGraph

- java.lang.Object
- - org.optaplanner.core.impl.score.stream.drools.common.ConstraintGraph

-     public final class ConstraintGraph
      extends Object

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ConstraintGraph()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `<A,​B> BiConstraintGraphNode` | `filter​(BiConstraintGraphNode parent, BiPredicate<A,​B> predicate)` |
    `<A,​B,​C,​D> QuadConstraintGraphNode` | `filter​(QuadConstraintGraphNode parent, QuadPredicate<A,​B,​C,​D> predicate)` |
    `<A,​B,​C> TriConstraintGraphNode` | `filter​(TriConstraintGraphNode parent, TriPredicate<A,​B,​C> predicate)` |
    `<A> UniConstraintGraphChildNode` | `filter​(UniConstraintGraphNode parent, Predicate<A> predicate)` |
    `<A> UniConstraintGraphNode` | `from​(Class<A> clz)` |
    `Map<org.drools.model.Rule,​Class[]>` | `generateRule​(org.drools.model.Global<? extends AbstractScoreHolder<?>> scoreHolderGlobal, DroolsConstraint... constraints)` |
    `Set<ConstraintConsequence>` | `getConsequences()` |
    `long` | `getNextId()` |
    `<A,​B,​GroupKey_> UniConstraintGraphChildNode` | `groupBy​(BiConstraintGraphNode parent, BiFunction<A,​B,​GroupKey_> mapping)` |
    `<A,​B,​GroupKey_,​ResultContainer_,​Result_> BiConstraintGraphNode` | `groupBy​(BiConstraintGraphNode parent, BiFunction<A,​B,​GroupKey_> mapping, BiConstraintCollector<A,​B,​ResultContainer_,​Result_> collector)` |
    `<A,​B,​GroupKeyA_,​GroupKeyB_> BiConstraintGraphNode` | `groupBy​(BiConstraintGraphNode parent, BiFunction<A,​B,​GroupKeyA_> aMapping, BiFunction<A,​B,​GroupKeyB_> bMapping)` |
    `<A,​B,​GroupKeyA_,​GroupKeyB_,​ResultContainer_,​Result_> TriConstraintGraphNode` | `groupBy​(BiConstraintGraphNode parent, BiFunction<A,​B,​GroupKeyA_> aMapping, BiFunction<A,​B,​GroupKeyB_> bMapping, BiConstraintCollector<A,​B,​ResultContainer_,​Result_> collector)` |
    `<A,​B,​GroupKeyA_,​GroupKeyB_,​ResultContainerC_,​ResultC_,​ResultContainerD_,​ResultD_> QuadConstraintGraphNode` | `groupBy​(BiConstraintGraphNode parent, BiFunction<A,​B,​GroupKeyA_> aMapping, BiFunction<A,​B,​GroupKeyB_> bMapping, BiConstraintCollector<A,​B,​ResultContainerC_,​ResultC_> cCollector, BiConstraintCollector<A,​B,​ResultContainerD_,​ResultD_> dCollector)` |
    `<A,​B,​ResultContainer_,​Result_> UniConstraintGraphChildNode` | `groupBy​(BiConstraintGraphNode parent, BiConstraintCollector<A,​B,​ResultContainer_,​Result_> collector)` |
    `<A,​B,​C,​D,​GroupKey_> UniConstraintGraphChildNode` | `groupBy​(QuadConstraintGraphNode parent, QuadFunction<A,​B,​C,​D,​GroupKey_> mapping)` |
    `<A,​B,​C,​D,​GroupKey_,​ResultContainer_,​Result_> BiConstraintGraphNode` | `groupBy​(QuadConstraintGraphNode parent, QuadFunction<A,​B,​C,​D,​GroupKey_> mapping, QuadConstraintCollector<A,​B,​C,​D,​ResultContainer_,​Result_> collector)` |
    `<A,​B,​C,​D,​GroupKeyA_,​GroupKeyB_> BiConstraintGraphNode` | `groupBy​(QuadConstraintGraphNode parent, QuadFunction<A,​B,​C,​D,​GroupKeyA_> aMapping, QuadFunction<A,​B,​C,​D,​GroupKeyB_> bMapping)` |
    `<A,​B,​C,​D,​GroupKeyA_,​GroupKeyB_,​ResultContainer_,​Result_> TriConstraintGraphNode` | `groupBy​(QuadConstraintGraphNode parent, QuadFunction<A,​B,​C,​D,​GroupKeyA_> aMapping, QuadFunction<A,​B,​C,​D,​GroupKeyB_> bMapping, QuadConstraintCollector<A,​B,​C,​D,​ResultContainer_,​Result_> collector)` |
    `<A,​B,​C,​D,​GroupKeyA_,​GroupKeyB_,​ResultContainerC_,​ResultC_,​ResultContainerD_,​ResultD_> QuadConstraintGraphNode` | `groupBy​(QuadConstraintGraphNode parent, QuadFunction<A,​B,​C,​D,​GroupKeyA_> aMapping, QuadFunction<A,​B,​C,​D,​GroupKeyB_> bMapping, QuadConstraintCollector<A,​B,​C,​D,​ResultContainerC_,​ResultC_> cCollector, QuadConstraintCollector<A,​B,​C,​D,​ResultContainerD_,​ResultD_> dCollector)` |
    `<A,​B,​C,​D,​ResultContainer_,​Result_> UniConstraintGraphChildNode` | `groupBy​(QuadConstraintGraphNode parent, QuadConstraintCollector<A,​B,​C,​D,​ResultContainer_,​Result_> collector)` |
    `<A,​B,​C,​GroupKey_> UniConstraintGraphChildNode` | `groupBy​(TriConstraintGraphNode parent, TriFunction<A,​B,​C,​GroupKey_> mapping)` |
    `<A,​B,​C,​GroupKey_,​ResultContainer_,​Result_> BiConstraintGraphNode` | `groupBy​(TriConstraintGraphNode parent, TriFunction<A,​B,​C,​GroupKey_> mapping, TriConstraintCollector<A,​B,​C,​ResultContainer_,​Result_> collector)` |
    `<A,​B,​C,​GroupKeyA_,​GroupKeyB_> BiConstraintGraphNode` | `groupBy​(TriConstraintGraphNode parent, TriFunction<A,​B,​C,​GroupKeyA_> aMapping, TriFunction<A,​B,​C,​GroupKeyB_> bMapping)` |
    `<A,​B,​C,​GroupKeyA_,​GroupKeyB_,​ResultContainer_,​Result_> TriConstraintGraphNode` | `groupBy​(TriConstraintGraphNode parent, TriFunction<A,​B,​C,​GroupKeyA_> aMapping, TriFunction<A,​B,​C,​GroupKeyB_> bMapping, TriConstraintCollector<A,​B,​C,​ResultContainer_,​Result_> collector)` |
    `<A,​B,​C,​GroupKeyA_,​GroupKeyB_,​ResultContainerC_,​ResultC_,​ResultContainerD_,​ResultD_> QuadConstraintGraphNode` | `groupBy​(TriConstraintGraphNode parent, TriFunction<A,​B,​C,​GroupKeyA_> aMapping, TriFunction<A,​B,​C,​GroupKeyB_> bMapping, TriConstraintCollector<A,​B,​C,​ResultContainerC_,​ResultC_> cCollector, TriConstraintCollector<A,​B,​C,​ResultContainerD_,​ResultD_> dCollector)` |
    `<A,​B,​C,​ResultContainer_,​Result_> UniConstraintGraphChildNode` | `groupBy​(TriConstraintGraphNode parent, TriConstraintCollector<A,​B,​C,​ResultContainer_,​Result_> collector)` |
    `<A,​GroupKey_> UniConstraintGraphChildNode` | `groupBy​(UniConstraintGraphNode parent, Function<A,​GroupKey_> mapping)` |
    `<A,​GroupKey_,​ResultContainer_,​Result_> BiConstraintGraphNode` | `groupBy​(UniConstraintGraphNode parent, Function<A,​GroupKey_> mapping, UniConstraintCollector<A,​ResultContainer_,​Result_> collector)` |
    `<A,​GroupKeyA_,​GroupKeyB_> BiConstraintGraphNode` | `groupBy​(UniConstraintGraphNode parent, Function<A,​GroupKeyA_> aMapping, Function<A,​GroupKeyB_> bMapping)` |
    `<A,​GroupKeyA_,​GroupKeyB_,​ResultContainer_,​Result_> TriConstraintGraphNode` | `groupBy​(UniConstraintGraphNode parent, Function<A,​GroupKeyA_> aMapping, Function<A,​GroupKeyB_> bMapping, UniConstraintCollector<A,​ResultContainer_,​Result_> collector)` |
    `<A,​GroupKeyA_,​GroupKeyB_,​ResultContainerC_,​ResultC_,​ResultContainerD_,​ResultD_> QuadConstraintGraphNode` | `groupBy​(UniConstraintGraphNode parent, Function<A,​GroupKeyA_> aMapping, Function<A,​GroupKeyB_> bMapping, UniConstraintCollector<A,​ResultContainerC_,​ResultC_> cCollector, UniConstraintCollector<A,​ResultContainerD_,​ResultD_> dCollector)` |
    `<A,​ResultContainer_,​Result_> UniConstraintGraphChildNode` | `groupBy​(UniConstraintGraphNode parent, UniConstraintCollector<A,​ResultContainer_,​Result_> collector)` |
    `<A,​B,​C> BiConstraintGraphNode` | `ifExists​(BiConstraintGraphNode parent, Class<C> existsType, TriJoiner<A,​B,​C>... joiners)` |
    `<A,​B,​C,​D,​E> QuadConstraintGraphNode` | `ifExists​(QuadConstraintGraphNode parent, Class<E> existsType, PentaJoiner<A,​B,​C,​D,​E>... joiners)` |
    `<A,​B,​C,​D> TriConstraintGraphNode` | `ifExists​(TriConstraintGraphNode parent, Class<D> existsType, QuadJoiner<A,​B,​C,​D>... joiners)` |
    `<A,​B> UniConstraintGraphChildNode` | `ifExists​(UniConstraintGraphNode parent, Class<B> existsType, BiJoiner<A,​B>... joiners)` |
    `<A,​B,​C> BiConstraintGraphNode` | `ifNotExists​(BiConstraintGraphNode parent, Class<C> existsType, TriJoiner<A,​B,​C>... joiners)` |
    `<A,​B,​C,​D,​E> QuadConstraintGraphNode` | `ifNotExists​(QuadConstraintGraphNode parent, Class<E> existsType, PentaJoiner<A,​B,​C,​D,​E>... joiners)` |
    `<A,​B,​C,​D> TriConstraintGraphNode` | `ifNotExists​(TriConstraintGraphNode parent, Class<D> existsType, QuadJoiner<A,​B,​C,​D>... joiners)` |
    `<A,​B> UniConstraintGraphChildNode` | `ifNotExists​(UniConstraintGraphNode parent, Class<B> existsType, BiJoiner<A,​B>... joiners)` |
    `BiConstraintConsequence` | `impact​(BiConstraintGraphNode parent)` |
    `<A,​B> BiConstraintConsequence` | `impact​(BiConstraintGraphNode parent, BiFunction<A,​B,​BigDecimal> matchWeighter)` |
    `<A,​B> BiConstraintConsequence` | `impact​(BiConstraintGraphNode parent, ToIntBiFunction<A,​B> matchWeighter)` |
    `<A,​B> BiConstraintConsequence` | `impact​(BiConstraintGraphNode parent, ToLongBiFunction<A,​B> matchWeighter)` |
    `QuadConstraintConsequence` | `impact​(QuadConstraintGraphNode parent)` |
    `<A,​B,​C,​D> QuadConstraintConsequence` | `impact​(QuadConstraintGraphNode parent, QuadFunction<A,​B,​C,​D,​BigDecimal> matchWeighter)` |
    `<A,​B,​C,​D> QuadConstraintConsequence` | `impact​(QuadConstraintGraphNode parent, ToIntQuadFunction<A,​B,​C,​D> matchWeighter)` |
    `<A,​B,​C,​D> QuadConstraintConsequence` | `impact​(QuadConstraintGraphNode parent, ToLongQuadFunction<A,​B,​C,​D> matchWeighter)` |
    `TriConstraintConsequence` | `impact​(TriConstraintGraphNode parent)` |
    `<A,​B,​C> TriConstraintConsequence` | `impact​(TriConstraintGraphNode parent, ToIntTriFunction<A,​B,​C> matchWeighter)` |
    `<A,​B,​C> TriConstraintConsequence` | `impact​(TriConstraintGraphNode parent, ToLongTriFunction<A,​B,​C> matchWeighter)` |
    `<A,​B,​C> TriConstraintConsequence` | `impact​(TriConstraintGraphNode parent, TriFunction<A,​B,​C,​BigDecimal> matchWeighter)` |
    `UniConstraintConsequence` | `impact​(UniConstraintGraphNode parent)` |
    `<A> UniConstraintConsequence` | `impact​(UniConstraintGraphNode parent, Function<A,​BigDecimal> matchWeighter)` |
    `<A> UniConstraintConsequence` | `impact​(UniConstraintGraphNode parent, ToIntFunction<A> matchWeighter)` |
    `<A> UniConstraintConsequence` | `impact​(UniConstraintGraphNode parent, ToLongFunction<A> matchWeighter)` |
    `<A,​B,​C> TriConstraintGraphNode` | `join​(BiConstraintGraphNode leftParent, UniConstraintGraphNode rightParent, TriJoiner<A,​B,​C> joiner)` |
    `<A,​B,​C,​D> QuadConstraintGraphNode` | `join​(TriConstraintGraphNode leftParent, UniConstraintGraphNode rightParent, QuadJoiner<A,​B,​C,​D> joiner)` |
    `<A,​B> BiConstraintGraphNode` | `join​(UniConstraintGraphNode leftParent, UniConstraintGraphNode rightParent, BiJoiner<A,​B> joiner)` |

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

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

- - ### Constructor Detail

    - #### ConstraintGraph

          public ConstraintGraph()

  - ### Method Detail

    - #### from

          public <A> UniConstraintGraphNode from​(Class<A> clz)

    - #### filter

          public <A> UniConstraintGraphChildNode filter​(UniConstraintGraphNode parent,
                                                        Predicate<A> predicate)

    - #### filter

          public <A,​B> BiConstraintGraphNode filter​(BiConstraintGraphNode parent,
                                                          BiPredicate<A,​B> predicate)

    - #### filter

          public <A,​B,​C> TriConstraintGraphNode filter​(TriConstraintGraphNode parent,
                                                                   TriPredicate<A,​B,​C> predicate)

    - #### filter

          public <A,​B,​C,​D> QuadConstraintGraphNode filter​(QuadConstraintGraphNode parent,
                                                                            QuadPredicate<A,​B,​C,​D> predicate)

    - #### join

          public <A,​B> BiConstraintGraphNode join​(UniConstraintGraphNode leftParent,
                                                        UniConstraintGraphNode rightParent,
                                                        BiJoiner<A,​B> joiner)

    - #### join

          public <A,​B,​C> TriConstraintGraphNode join​(BiConstraintGraphNode leftParent,
                                                                 UniConstraintGraphNode rightParent,
                                                                 TriJoiner<A,​B,​C> joiner)

    - #### join

          public <A,​B,​C,​D> QuadConstraintGraphNode join​(TriConstraintGraphNode leftParent,
                                                                          UniConstraintGraphNode rightParent,
                                                                          QuadJoiner<A,​B,​C,​D> joiner)

    - #### ifExists

          public <A,​B> UniConstraintGraphChildNode ifExists​(UniConstraintGraphNode parent,
                                                                  Class<B> existsType,
                                                                  BiJoiner<A,​B>... joiners)

    - #### ifExists

          public <A,​B,​C> BiConstraintGraphNode ifExists​(BiConstraintGraphNode parent,
                                                                    Class<C> existsType,
                                                                    TriJoiner<A,​B,​C>... joiners)

    - #### ifExists

          public <A,​B,​C,​D> TriConstraintGraphNode ifExists​(TriConstraintGraphNode parent,
                                                                             Class<D> existsType,
                                                                             QuadJoiner<A,​B,​C,​D>... joiners)

    - #### ifExists

          public <A,​B,​C,​D,​E> QuadConstraintGraphNode ifExists​(QuadConstraintGraphNode parent,
                                                                                      Class<E> existsType,
                                                                                      PentaJoiner<A,​B,​C,​D,​E>... joiners)

    - #### ifNotExists

          public <A,​B> UniConstraintGraphChildNode ifNotExists​(UniConstraintGraphNode parent,
                                                                     Class<B> existsType,
                                                                     BiJoiner<A,​B>... joiners)

    - #### ifNotExists

          public <A,​B,​C> BiConstraintGraphNode ifNotExists​(BiConstraintGraphNode parent,
                                                                       Class<C> existsType,
                                                                       TriJoiner<A,​B,​C>... joiners)

    - #### ifNotExists

          public <A,​B,​C,​D> TriConstraintGraphNode ifNotExists​(TriConstraintGraphNode parent,
                                                                                Class<D> existsType,
                                                                                QuadJoiner<A,​B,​C,​D>... joiners)

    - #### ifNotExists

          public <A,​B,​C,​D,​E> QuadConstraintGraphNode ifNotExists​(QuadConstraintGraphNode parent,
                                                                                         Class<E> existsType,
                                                                                         PentaJoiner<A,​B,​C,​D,​E>... joiners)

    - #### groupBy

          public <A,​GroupKey_> UniConstraintGraphChildNode groupBy​(UniConstraintGraphNode parent,
                                                                         Function<A,​GroupKey_> mapping)

    - #### groupBy

          public <A,​GroupKeyA_,​GroupKeyB_> BiConstraintGraphNode groupBy​(UniConstraintGraphNode parent,
                                                                                     Function<A,​GroupKeyA_> aMapping,
                                                                                     Function<A,​GroupKeyB_> bMapping)

    - #### groupBy

          public <A,​ResultContainer_,​Result_> UniConstraintGraphChildNode groupBy​(UniConstraintGraphNode parent,
                                                                                              UniConstraintCollector<A,​ResultContainer_,​Result_> collector)

    - #### groupBy

          public <A,​GroupKey_,​ResultContainer_,​Result_> BiConstraintGraphNode groupBy​(UniConstraintGraphNode parent,
                                                                                                        Function<A,​GroupKey_> mapping,
                                                                                                        UniConstraintCollector<A,​ResultContainer_,​Result_> collector)

    - #### groupBy

          public <A,​GroupKeyA_,​GroupKeyB_,​ResultContainer_,​Result_> TriConstraintGraphNode groupBy​(UniConstraintGraphNode parent,
                                                                                                                           Function<A,​GroupKeyA_> aMapping,
                                                                                                                           Function<A,​GroupKeyB_> bMapping,
                                                                                                                           UniConstraintCollector<A,​ResultContainer_,​Result_> collector)

    - #### groupBy

          public <A,​GroupKeyA_,​GroupKeyB_,​ResultContainerC_,​ResultC_,​ResultContainerD_,​ResultD_> QuadConstraintGraphNode groupBy​(UniConstraintGraphNode parent,
                                                                                                                                                                     Function<A,​GroupKeyA_> aMapping,
                                                                                                                                                                     Function<A,​GroupKeyB_> bMapping,
                                                                                                                                                                     UniConstraintCollector<A,​ResultContainerC_,​ResultC_> cCollector,
                                                                                                                                                                     UniConstraintCollector<A,​ResultContainerD_,​ResultD_> dCollector)

    - #### groupBy

          public <A,​B,​ResultContainer_,​Result_> UniConstraintGraphChildNode groupBy​(BiConstraintGraphNode parent,
                                                                                                      BiConstraintCollector<A,​B,​ResultContainer_,​Result_> collector)

    - #### groupBy

          public <A,​B,​GroupKey_> UniConstraintGraphChildNode groupBy​(BiConstraintGraphNode parent,
                                                                                 BiFunction<A,​B,​GroupKey_> mapping)

    - #### groupBy

          public <A,​B,​GroupKey_,​ResultContainer_,​Result_> BiConstraintGraphNode groupBy​(BiConstraintGraphNode parent,
                                                                                                                BiFunction<A,​B,​GroupKey_> mapping,
                                                                                                                BiConstraintCollector<A,​B,​ResultContainer_,​Result_> collector)

    - #### groupBy

          public <A,​B,​GroupKeyA_,​GroupKeyB_> BiConstraintGraphNode groupBy​(BiConstraintGraphNode parent,
                                                                                             BiFunction<A,​B,​GroupKeyA_> aMapping,
                                                                                             BiFunction<A,​B,​GroupKeyB_> bMapping)

    - #### groupBy

          public <A,​B,​GroupKeyA_,​GroupKeyB_,​ResultContainer_,​Result_> TriConstraintGraphNode groupBy​(BiConstraintGraphNode parent,
                                                                                                                                   BiFunction<A,​B,​GroupKeyA_> aMapping,
                                                                                                                                   BiFunction<A,​B,​GroupKeyB_> bMapping,
                                                                                                                                   BiConstraintCollector<A,​B,​ResultContainer_,​Result_> collector)

    - #### groupBy

          public <A,​B,​GroupKeyA_,​GroupKeyB_,​ResultContainerC_,​ResultC_,​ResultContainerD_,​ResultD_> QuadConstraintGraphNode groupBy​(BiConstraintGraphNode parent,
                                                                                                                                                                             BiFunction<A,​B,​GroupKeyA_> aMapping,
                                                                                                                                                                             BiFunction<A,​B,​GroupKeyB_> bMapping,
                                                                                                                                                                             BiConstraintCollector<A,​B,​ResultContainerC_,​ResultC_> cCollector,
                                                                                                                                                                             BiConstraintCollector<A,​B,​ResultContainerD_,​ResultD_> dCollector)

    - #### groupBy

          public <A,​B,​C,​ResultContainer_,​Result_> UniConstraintGraphChildNode groupBy​(TriConstraintGraphNode parent,
                                                                                                              TriConstraintCollector<A,​B,​C,​ResultContainer_,​Result_> collector)

    - #### groupBy

          public <A,​B,​C,​GroupKey_> UniConstraintGraphChildNode groupBy​(TriConstraintGraphNode parent,
                                                                                         TriFunction<A,​B,​C,​GroupKey_> mapping)

    - #### groupBy

          public <A,​B,​C,​GroupKey_,​ResultContainer_,​Result_> BiConstraintGraphNode groupBy​(TriConstraintGraphNode parent,
                                                                                                                        TriFunction<A,​B,​C,​GroupKey_> mapping,
                                                                                                                        TriConstraintCollector<A,​B,​C,​ResultContainer_,​Result_> collector)

    - #### groupBy

          public <A,​B,​C,​GroupKeyA_,​GroupKeyB_> BiConstraintGraphNode groupBy​(TriConstraintGraphNode parent,
                                                                                                     TriFunction<A,​B,​C,​GroupKeyA_> aMapping,
                                                                                                     TriFunction<A,​B,​C,​GroupKeyB_> bMapping)

    - #### groupBy

          public <A,​B,​C,​GroupKeyA_,​GroupKeyB_,​ResultContainer_,​Result_> TriConstraintGraphNode groupBy​(TriConstraintGraphNode parent,
                                                                                                                                           TriFunction<A,​B,​C,​GroupKeyA_> aMapping,
                                                                                                                                           TriFunction<A,​B,​C,​GroupKeyB_> bMapping,
                                                                                                                                           TriConstraintCollector<A,​B,​C,​ResultContainer_,​Result_> collector)

    - #### groupBy

          public <A,​B,​C,​GroupKeyA_,​GroupKeyB_,​ResultContainerC_,​ResultC_,​ResultContainerD_,​ResultD_> QuadConstraintGraphNode groupBy​(TriConstraintGraphNode parent,
                                                                                                                                                                                     TriFunction<A,​B,​C,​GroupKeyA_> aMapping,
                                                                                                                                                                                     TriFunction<A,​B,​C,​GroupKeyB_> bMapping,
                                                                                                                                                                                     TriConstraintCollector<A,​B,​C,​ResultContainerC_,​ResultC_> cCollector,
                                                                                                                                                                                     TriConstraintCollector<A,​B,​C,​ResultContainerD_,​ResultD_> dCollector)

    - #### groupBy

          public <A,​B,​C,​D,​ResultContainer_,​Result_> UniConstraintGraphChildNode groupBy​(QuadConstraintGraphNode parent,
                                                                                                                      QuadConstraintCollector<A,​B,​C,​D,​ResultContainer_,​Result_> collector)

    - #### groupBy

          public <A,​B,​C,​D,​GroupKey_> UniConstraintGraphChildNode groupBy​(QuadConstraintGraphNode parent,
                                                                                                 QuadFunction<A,​B,​C,​D,​GroupKey_> mapping)

    - #### groupBy

          public <A,​B,​C,​D,​GroupKey_,​ResultContainer_,​Result_> BiConstraintGraphNode groupBy​(QuadConstraintGraphNode parent,
                                                                                                                                QuadFunction<A,​B,​C,​D,​GroupKey_> mapping,
                                                                                                                                QuadConstraintCollector<A,​B,​C,​D,​ResultContainer_,​Result_> collector)

    - #### groupBy

          public <A,​B,​C,​D,​GroupKeyA_,​GroupKeyB_> BiConstraintGraphNode groupBy​(QuadConstraintGraphNode parent,
                                                                                                             QuadFunction<A,​B,​C,​D,​GroupKeyA_> aMapping,
                                                                                                             QuadFunction<A,​B,​C,​D,​GroupKeyB_> bMapping)

    - #### groupBy

          public <A,​B,​C,​D,​GroupKeyA_,​GroupKeyB_,​ResultContainer_,​Result_> TriConstraintGraphNode groupBy​(QuadConstraintGraphNode parent,
                                                                                                                                                   QuadFunction<A,​B,​C,​D,​GroupKeyA_> aMapping,
                                                                                                                                                   QuadFunction<A,​B,​C,​D,​GroupKeyB_> bMapping,
                                                                                                                                                   QuadConstraintCollector<A,​B,​C,​D,​ResultContainer_,​Result_> collector)

    - #### groupBy

          public <A,​B,​C,​D,​GroupKeyA_,​GroupKeyB_,​ResultContainerC_,​ResultC_,​ResultContainerD_,​ResultD_> QuadConstraintGraphNode groupBy​(QuadConstraintGraphNode parent,
                                                                                                                                                                                             QuadFunction<A,​B,​C,​D,​GroupKeyA_> aMapping,
                                                                                                                                                                                             QuadFunction<A,​B,​C,​D,​GroupKeyB_> bMapping,
                                                                                                                                                                                             QuadConstraintCollector<A,​B,​C,​D,​ResultContainerC_,​ResultC_> cCollector,
                                                                                                                                                                                             QuadConstraintCollector<A,​B,​C,​D,​ResultContainerD_,​ResultD_> dCollector)

    - #### impact

          public UniConstraintConsequence impact​(UniConstraintGraphNode parent)

    - #### impact

          public <A> UniConstraintConsequence impact​(UniConstraintGraphNode parent,
                                                     ToIntFunction<A> matchWeighter)

    - #### impact

          public <A> UniConstraintConsequence impact​(UniConstraintGraphNode parent,
                                                     ToLongFunction<A> matchWeighter)

    - #### impact

          public <A> UniConstraintConsequence impact​(UniConstraintGraphNode parent,
                                                     Function<A,​BigDecimal> matchWeighter)

    - #### impact

          public BiConstraintConsequence impact​(BiConstraintGraphNode parent)

    - #### impact

          public <A,​B> BiConstraintConsequence impact​(BiConstraintGraphNode parent,
                                                            ToIntBiFunction<A,​B> matchWeighter)

    - #### impact

          public <A,​B> BiConstraintConsequence impact​(BiConstraintGraphNode parent,
                                                            ToLongBiFunction<A,​B> matchWeighter)

    - #### impact

          public <A,​B> BiConstraintConsequence impact​(BiConstraintGraphNode parent,
                                                            BiFunction<A,​B,​BigDecimal> matchWeighter)

    - #### impact

          public TriConstraintConsequence impact​(TriConstraintGraphNode parent)

    - #### impact

          public <A,​B,​C> TriConstraintConsequence impact​(TriConstraintGraphNode parent,
                                                                     ToIntTriFunction<A,​B,​C> matchWeighter)

    - #### impact

          public <A,​B,​C> TriConstraintConsequence impact​(TriConstraintGraphNode parent,
                                                                     ToLongTriFunction<A,​B,​C> matchWeighter)

    - #### impact

          public <A,​B,​C> TriConstraintConsequence impact​(TriConstraintGraphNode parent,
                                                                     TriFunction<A,​B,​C,​BigDecimal> matchWeighter)

    - #### impact

          public QuadConstraintConsequence impact​(QuadConstraintGraphNode parent)

    - #### impact

          public <A,​B,​C,​D> QuadConstraintConsequence impact​(QuadConstraintGraphNode parent,
                                                                              ToIntQuadFunction<A,​B,​C,​D> matchWeighter)

    - #### impact

          public <A,​B,​C,​D> QuadConstraintConsequence impact​(QuadConstraintGraphNode parent,
                                                                              ToLongQuadFunction<A,​B,​C,​D> matchWeighter)

    - #### impact

          public <A,​B,​C,​D> QuadConstraintConsequence impact​(QuadConstraintGraphNode parent,
                                                                              QuadFunction<A,​B,​C,​D,​BigDecimal> matchWeighter)

    - #### getConsequences

          public Set<ConstraintConsequence> getConsequences()

    - #### getNextId

          public long getNextId()

    - #### generateRule

          public Map<org.drools.model.Rule,​Class[]> generateRule​(org.drools.model.Global<? extends AbstractScoreHolder<?>> scoreHolderGlobal,
                                                                       DroolsConstraint... constraints)