## Uses of Interface
org.optaplanner.core.impl.score.stream.drools.common.nodes.BiConstraintGraphNode

- Packages that use BiConstraintGraphNode
  Package | Description
  --- | ---
  org.optaplanner.core.impl.score.stream.drools.bi |
  org.optaplanner.core.impl.score.stream.drools.common |
  org.optaplanner.core.impl.score.stream.drools.common.consequences |
  org.optaplanner.core.impl.score.stream.drools.common.nodes |

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

    Methods in org.optaplanner.core.impl.score.stream.drools.bi that return BiConstraintGraphNode
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract BiConstraintGraphNode` | DroolsAbstractBiConstraintStream.`getConstraintGraphNode()` |
    `BiConstraintGraphNode` | DroolsExistsBiConstraintStream.`getConstraintGraphNode()` |
    `BiConstraintGraphNode` | DroolsFilterBiConstraintStream.`getConstraintGraphNode()` |
    `BiConstraintGraphNode` | DroolsGroupingBiConstraintStream.`getConstraintGraphNode()` |
    `BiConstraintGraphNode` | DroolsJoinBiConstraintStream.`getConstraintGraphNode()` |

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

    Methods in org.optaplanner.core.impl.score.stream.drools.common that return BiConstraintGraphNode
    Modifier and Type | Method | Description
    --- | --- | ---
    `<A,​B> BiConstraintGraphNode` | ConstraintGraph.`filter​(BiConstraintGraphNode parent, BiPredicate<A,​B> predicate)` |
    `<A,​B,​GroupKey_,​ResultContainer_,​Result_> BiConstraintGraphNode` | ConstraintGraph.`groupBy​(BiConstraintGraphNode parent, BiFunction<A,​B,​GroupKey_> mapping, BiConstraintCollector<A,​B,​ResultContainer_,​Result_> collector)` |
    `<A,​B,​GroupKeyA_,​GroupKeyB_> BiConstraintGraphNode` | ConstraintGraph.`groupBy​(BiConstraintGraphNode parent, BiFunction<A,​B,​GroupKeyA_> aMapping, BiFunction<A,​B,​GroupKeyB_> bMapping)` |
    `<A,​B,​C,​D,​GroupKey_,​ResultContainer_,​Result_> BiConstraintGraphNode` | ConstraintGraph.`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` | ConstraintGraph.`groupBy​(QuadConstraintGraphNode parent, QuadFunction<A,​B,​C,​D,​GroupKeyA_> aMapping, QuadFunction<A,​B,​C,​D,​GroupKeyB_> bMapping)` |
    `<A,​B,​C,​GroupKey_,​ResultContainer_,​Result_> BiConstraintGraphNode` | ConstraintGraph.`groupBy​(TriConstraintGraphNode parent, TriFunction<A,​B,​C,​GroupKey_> mapping, TriConstraintCollector<A,​B,​C,​ResultContainer_,​Result_> collector)` |
    `<A,​B,​C,​GroupKeyA_,​GroupKeyB_> BiConstraintGraphNode` | ConstraintGraph.`groupBy​(TriConstraintGraphNode parent, TriFunction<A,​B,​C,​GroupKeyA_> aMapping, TriFunction<A,​B,​C,​GroupKeyB_> bMapping)` |
    `<A,​GroupKey_,​ResultContainer_,​Result_> BiConstraintGraphNode` | ConstraintGraph.`groupBy​(UniConstraintGraphNode parent, Function<A,​GroupKey_> mapping, UniConstraintCollector<A,​ResultContainer_,​Result_> collector)` |
    `<A,​GroupKeyA_,​GroupKeyB_> BiConstraintGraphNode` | ConstraintGraph.`groupBy​(UniConstraintGraphNode parent, Function<A,​GroupKeyA_> aMapping, Function<A,​GroupKeyB_> bMapping)` |
    `<A,​B,​C> BiConstraintGraphNode` | ConstraintGraph.`ifExists​(BiConstraintGraphNode parent, Class<C> existsType, TriJoiner<A,​B,​C>... joiners)` |
    `<A,​B,​C> BiConstraintGraphNode` | ConstraintGraph.`ifNotExists​(BiConstraintGraphNode parent, Class<C> existsType, TriJoiner<A,​B,​C>... joiners)` |
    `<A,​B> BiConstraintGraphNode` | ConstraintGraph.`join​(UniConstraintGraphNode leftParent, UniConstraintGraphNode rightParent, BiJoiner<A,​B> joiner)` |

    Methods in org.optaplanner.core.impl.score.stream.drools.common with parameters of type BiConstraintGraphNode
    Modifier and Type | Method | Description
    --- | --- | ---
    `<A,​B> BiConstraintGraphNode` | ConstraintGraph.`filter​(BiConstraintGraphNode parent, BiPredicate<A,​B> predicate)` |
    `<A,​B,​GroupKey_> UniConstraintGraphChildNode` | ConstraintGraph.`groupBy​(BiConstraintGraphNode parent, BiFunction<A,​B,​GroupKey_> mapping)` |
    `<A,​B,​GroupKey_,​ResultContainer_,​Result_> BiConstraintGraphNode` | ConstraintGraph.`groupBy​(BiConstraintGraphNode parent, BiFunction<A,​B,​GroupKey_> mapping, BiConstraintCollector<A,​B,​ResultContainer_,​Result_> collector)` |
    `<A,​B,​GroupKeyA_,​GroupKeyB_> BiConstraintGraphNode` | ConstraintGraph.`groupBy​(BiConstraintGraphNode parent, BiFunction<A,​B,​GroupKeyA_> aMapping, BiFunction<A,​B,​GroupKeyB_> bMapping)` |
    `<A,​B,​GroupKeyA_,​GroupKeyB_,​ResultContainer_,​Result_> TriConstraintGraphNode` | ConstraintGraph.`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` | ConstraintGraph.`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` | ConstraintGraph.`groupBy​(BiConstraintGraphNode parent, BiConstraintCollector<A,​B,​ResultContainer_,​Result_> collector)` |
    `<A,​B,​C> BiConstraintGraphNode` | ConstraintGraph.`ifExists​(BiConstraintGraphNode parent, Class<C> existsType, TriJoiner<A,​B,​C>... joiners)` |
    `<A,​B,​C> BiConstraintGraphNode` | ConstraintGraph.`ifNotExists​(BiConstraintGraphNode parent, Class<C> existsType, TriJoiner<A,​B,​C>... joiners)` |
    `BiConstraintConsequence` | ConstraintGraph.`impact​(BiConstraintGraphNode parent)` |
    `<A,​B> BiConstraintConsequence` | ConstraintGraph.`impact​(BiConstraintGraphNode parent, BiFunction<A,​B,​BigDecimal> matchWeighter)` |
    `<A,​B> BiConstraintConsequence` | ConstraintGraph.`impact​(BiConstraintGraphNode parent, ToIntBiFunction<A,​B> matchWeighter)` |
    `<A,​B> BiConstraintConsequence` | ConstraintGraph.`impact​(BiConstraintGraphNode parent, ToLongBiFunction<A,​B> matchWeighter)` |
    `<A,​B,​C> TriConstraintGraphNode` | ConstraintGraph.`join​(BiConstraintGraphNode leftParent, UniConstraintGraphNode rightParent, TriJoiner<A,​B,​C> joiner)` |

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

    Methods in org.optaplanner.core.impl.score.stream.drools.common.consequences with parameters of type BiConstraintGraphNode
    Modifier and Type | Method | Description
    --- | --- | ---
    `static BiConstraintConsequence` | ConstraintConsequence.`create​(BiConstraintGraphNode terminalNode)` |
    `static <A,​B> BiConstraintConsequence` | ConstraintConsequence.`create​(BiConstraintGraphNode terminalNode, BiFunction<A,​B,​BigDecimal> matchWeighter)` |
    `static <A,​B> BiConstraintConsequence` | ConstraintConsequence.`create​(BiConstraintGraphNode terminalNode, ToIntBiFunction<A,​B> matchWeighter)` |
    `static <A,​B> BiConstraintConsequence` | ConstraintConsequence.`create​(BiConstraintGraphNode terminalNode, ToLongBiFunction<A,​B> matchWeighter)` |

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

    Methods in org.optaplanner.core.impl.score.stream.drools.common.nodes that return BiConstraintGraphNode
    Modifier and Type | Method | Description
    --- | --- | ---
    `static <A,​B> BiConstraintGraphNode` | ConstraintGraphNode.`filter​(BiPredicate<A,​B> predicate)` |
    `static <A,​B,​GroupKey_,​ResultContainer_,​Result_> BiConstraintGraphNode` | ConstraintGraphNode.`groupBy​(BiFunction<A,​B,​GroupKey_> mapping, BiConstraintCollector<A,​B,​ResultContainer_,​Result_> collector)` |
    `static <A,​B,​GroupKeyA_,​GroupKeyB_> BiConstraintGraphNode` | ConstraintGraphNode.`groupBy​(BiFunction<A,​B,​GroupKeyA_> aMapping, BiFunction<A,​B,​GroupKeyB_> bMapping)` |
    `static <A,​GroupKey_,​ResultContainer_,​Result_> BiConstraintGraphNode` | ConstraintGraphNode.`groupBy​(Function<A,​GroupKey_> mapping, UniConstraintCollector<A,​ResultContainer_,​Result_> collector)` |
    `static <A,​GroupKeyA_,​GroupKeyB_> BiConstraintGraphNode` | ConstraintGraphNode.`groupBy​(Function<A,​GroupKeyA_> aMapping, Function<A,​GroupKeyB_> bMapping)` |
    `static <A,​B,​C,​D,​GroupKey_,​ResultContainer_,​Result_> BiConstraintGraphNode` | ConstraintGraphNode.`groupBy​(QuadFunction<A,​B,​C,​D,​GroupKey_> mapping, QuadConstraintCollector<A,​B,​C,​D,​ResultContainer_,​Result_> collector)` |
    `static <A,​B,​C,​D,​GroupKeyA_,​GroupKeyB_> BiConstraintGraphNode` | ConstraintGraphNode.`groupBy​(QuadFunction<A,​B,​C,​D,​GroupKeyA_> aMapping, QuadFunction<A,​B,​C,​D,​GroupKeyB_> bMapping)` |
    `static <A,​B,​C,​GroupKey_,​ResultContainer_,​Result_> BiConstraintGraphNode` | ConstraintGraphNode.`groupBy​(TriFunction<A,​B,​C,​GroupKey_> mapping, TriConstraintCollector<A,​B,​C,​ResultContainer_,​Result_> collector)` |
    `static <A,​B,​C,​GroupKeyA_,​GroupKeyB_> BiConstraintGraphNode` | ConstraintGraphNode.`groupBy​(TriFunction<A,​B,​C,​GroupKeyA_> aMapping, TriFunction<A,​B,​C,​GroupKeyB_> bMapping)` |
    `static <A,​B,​C> BiConstraintGraphNode` | ConstraintGraphNode.`ifExists​(Class<C> otherFactType, TriJoiner<A,​B,​C>... joiners)` |
    `static <A,​B,​C> BiConstraintGraphNode` | ConstraintGraphNode.`ifNotExists​(Class<C> otherFactType, TriJoiner<A,​B,​C>... joiners)` |
    `static <A,​B> BiConstraintGraphNode` | ConstraintGraphNode.`join​(Class<B> otherFactType, BiJoiner<A,​B> joiner)` |