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

## Class DroolsBiCondition<A,​B,​PatternVar>

- java.lang.Object
- - org.optaplanner.core.impl.score.stream.drools.common.DroolsCondition<PatternVar,​DroolsBiRuleStructure<A,​B,​PatternVar>>
  - - org.optaplanner.core.impl.score.stream.drools.bi.DroolsBiCondition<A,​B,​PatternVar>

-     public final class DroolsBiCondition<A,​B,​PatternVar>
      extends DroolsCondition<PatternVar,​DroolsBiRuleStructure<A,​B,​PatternVar>>

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.optaplanner.core.impl.score.stream.drools.common.DroolsCondition

      `DroolsCondition.ImmediatelyPreviousFilter<PredicateType>, DroolsCondition.Mutator<InTuple,​OutPatternVar,​R extends DroolsRuleStructure<OutPatternVar>,​C extends DroolsCondition<OutPatternVar,​R>>`

  - ### Field Summary

    - ### Fields inherited from class org.optaplanner.core.impl.score.stream.drools.common.DroolsCondition

      `ruleStructure`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `DroolsBiCondition​(DroolsBiRuleStructure<A,​B,​PatternVar> ruleStructure)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `<NewA,​__> DroolsUniCondition<NewA,​NewA>` | `andCollect​(BiConstraintCollector<A,​B,​__,​NewA> collector)` |
    `DroolsBiCondition<A,​B,​PatternVar>` | `andFilter​(BiPredicate<A,​B> predicate)` |
    `<NewA> DroolsUniCondition<NewA,​?>` | `andGroup​(BiFunction<A,​B,​NewA> groupKeyMapping)` |
    `<NewA,​NewB> DroolsBiCondition<NewA,​NewB,​?>` | `andGroupBi​(BiFunction<A,​B,​NewA> groupKeyAMapping, BiFunction<A,​B,​NewB> groupKeyBMapping)` |
    `<NewA,​NewB,​NewC> DroolsTriCondition<NewA,​NewB,​NewC,​TriTuple<NewA,​NewB,​NewC>>` | `andGroupBiWithCollect​(BiFunction<A,​B,​NewA> groupKeyAMapping, BiFunction<A,​B,​NewB> groupKeyBMapping, BiConstraintCollector<A,​B,​?,​NewC> collector)` |
    `<NewA,​NewB,​NewC,​NewD> DroolsQuadCondition<NewA,​NewB,​NewC,​NewD,​QuadTuple<NewA,​NewB,​NewC,​NewD>>` | `andGroupBiWithCollectBi​(BiFunction<A,​B,​NewA> groupKeyAMapping, BiFunction<A,​B,​NewB> groupKeyBMapping, BiConstraintCollector<A,​B,​?,​NewC> collectorC, BiConstraintCollector<A,​B,​?,​NewD> collectorD)` |
    `<NewA,​NewB> DroolsBiCondition<NewA,​NewB,​BiTuple<NewA,​NewB>>` | `andGroupWithCollect​(BiFunction<A,​B,​NewA> groupKeyMapping, BiConstraintCollector<A,​B,​?,​NewB> collector)` |
    `<C> DroolsBiCondition<A,​B,​PatternVar>` | `andIfExists​(Class<C> otherClass, TriJoiner<A,​B,​C>... joiners)` |
    `<C> DroolsBiCondition<A,​B,​PatternVar>` | `andIfNotExists​(Class<C> otherClass, TriJoiner<A,​B,​C>... joiners)` |
    `<C,​CPatternVar> DroolsTriCondition<A,​B,​C,​CPatternVar>` | `andJoin​(DroolsUniCondition<C,​CPatternVar> cCondition, AbstractTriJoiner<A,​B,​C> triJoiner)` |
    `protected <InTuple> org.drools.model.PatternDSL.PatternDef<PatternVar>` | `bindTupleVariableOnFirstGrouping​(org.drools.model.PatternDSL.PatternDef<PatternVar> pattern, org.drools.model.Variable<InTuple> tupleVariable)` |
    `List<org.drools.model.RuleItemBuilder<?>>` | `completeWithScoring​(org.drools.model.Global<? extends AbstractScoreHolder<?>> scoreHolderGlobal)` |
    `List<org.drools.model.RuleItemBuilder<?>>` | `completeWithScoring​(DroolsConstraint<?> constraint, org.drools.model.Global<? extends AbstractScoreHolder<?>> scoreHolderGlobal, BiFunction<A,​B,​BigDecimal> matchWeighter)` |
    `List<org.drools.model.RuleItemBuilder<?>>` | `completeWithScoring​(DroolsConstraint<?> constraint, org.drools.model.Global<? extends AbstractScoreHolder<?>> scoreHolderGlobal, ToIntBiFunction<A,​B> matchWeighter)` |
    `List<org.drools.model.RuleItemBuilder<?>>` | `completeWithScoring​(DroolsConstraint<?> constraint, org.drools.model.Global<? extends AbstractScoreHolder<?>> scoreHolderGlobal, ToLongBiFunction<A,​B> matchWeighter)` |

    - ### Methods inherited from class org.optaplanner.core.impl.score.stream.drools.common.DroolsCondition

      `collect, getExpectedJustificationTypes, getInnerAccumulatePattern, getRuleStructure, groupBiWithCollect, groupBiWithCollectBi, groupWithCollect, impactScore, impactScore, impactScore, impactScore`

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

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

- - ### Constructor Detail

    - #### DroolsBiCondition

          public DroolsBiCondition​(DroolsBiRuleStructure<A,​B,​PatternVar> ruleStructure)

  - ### Method Detail

    - #### andFilter

          public DroolsBiCondition<A,​B,​PatternVar> andFilter​(BiPredicate<A,​B> predicate)

    - #### andJoin

          public <C,​CPatternVar> DroolsTriCondition<A,​B,​C,​CPatternVar> andJoin​(DroolsUniCondition<C,​CPatternVar> cCondition,
                                                                                                       AbstractTriJoiner<A,​B,​C> triJoiner)

    - #### andIfExists

          @SafeVarargs
          public final <C> DroolsBiCondition<A,​B,​PatternVar> andIfExists​(Class<C> otherClass,
                                                                                     TriJoiner<A,​B,​C>... joiners)

    - #### andIfNotExists

          @SafeVarargs
          public final <C> DroolsBiCondition<A,​B,​PatternVar> andIfNotExists​(Class<C> otherClass,
                                                                                        TriJoiner<A,​B,​C>... joiners)

    - #### bindTupleVariableOnFirstGrouping

          protected <InTuple> org.drools.model.PatternDSL.PatternDef<PatternVar> bindTupleVariableOnFirstGrouping​(org.drools.model.PatternDSL.PatternDef<PatternVar> pattern,
                                                                                                                  org.drools.model.Variable<InTuple> tupleVariable)

      Specified by:
        `bindTupleVariableOnFirstGrouping` in class `DroolsCondition<PatternVar,​DroolsBiRuleStructure<A,​B,​PatternVar>>`

    - #### andCollect

          public <NewA,​__> DroolsUniCondition<NewA,​NewA> andCollect​(BiConstraintCollector<A,​B,​__,​NewA> collector)

    - #### andGroup

          public <NewA> DroolsUniCondition<NewA,​?> andGroup​(BiFunction<A,​B,​NewA> groupKeyMapping)

    - #### andGroupWithCollect

          public <NewA,​NewB> DroolsBiCondition<NewA,​NewB,​BiTuple<NewA,​NewB>> andGroupWithCollect​(BiFunction<A,​B,​NewA> groupKeyMapping,
                                                                                                                         BiConstraintCollector<A,​B,​?,​NewB> collector)

    - #### andGroupBi

          public <NewA,​NewB> DroolsBiCondition<NewA,​NewB,​?> andGroupBi​(BiFunction<A,​B,​NewA> groupKeyAMapping,
                                                                                         BiFunction<A,​B,​NewB> groupKeyBMapping)

    - #### andGroupBiWithCollect

          public <NewA,​NewB,​NewC> DroolsTriCondition<NewA,​NewB,​NewC,​TriTuple<NewA,​NewB,​NewC>> andGroupBiWithCollect​(BiFunction<A,​B,​NewA> groupKeyAMapping,
                                                                                                                                                              BiFunction<A,​B,​NewB> groupKeyBMapping,
                                                                                                                                                              BiConstraintCollector<A,​B,​?,​NewC> collector)

    - #### andGroupBiWithCollectBi

          public <NewA,​NewB,​NewC,​NewD> DroolsQuadCondition<NewA,​NewB,​NewC,​NewD,​QuadTuple<NewA,​NewB,​NewC,​NewD>> andGroupBiWithCollectBi​(BiFunction<A,​B,​NewA> groupKeyAMapping,
                                                                                                                                                                                                   BiFunction<A,​B,​NewB> groupKeyBMapping,
                                                                                                                                                                                                   BiConstraintCollector<A,​B,​?,​NewC> collectorC,
                                                                                                                                                                                                   BiConstraintCollector<A,​B,​?,​NewD> collectorD)

    - #### completeWithScoring

          public List<org.drools.model.RuleItemBuilder<?>> completeWithScoring​(org.drools.model.Global<? extends AbstractScoreHolder<?>> scoreHolderGlobal)

    - #### completeWithScoring

          public List<org.drools.model.RuleItemBuilder<?>> completeWithScoring​(DroolsConstraint<?> constraint,
                                                                               org.drools.model.Global<? extends AbstractScoreHolder<?>> scoreHolderGlobal,
                                                                               ToIntBiFunction<A,​B> matchWeighter)

    - #### completeWithScoring

          public List<org.drools.model.RuleItemBuilder<?>> completeWithScoring​(DroolsConstraint<?> constraint,
                                                                               org.drools.model.Global<? extends AbstractScoreHolder<?>> scoreHolderGlobal,
                                                                               ToLongBiFunction<A,​B> matchWeighter)

    - #### completeWithScoring

          public List<org.drools.model.RuleItemBuilder<?>> completeWithScoring​(DroolsConstraint<?> constraint,
                                                                               org.drools.model.Global<? extends AbstractScoreHolder<?>> scoreHolderGlobal,
                                                                               BiFunction<A,​B,​BigDecimal> matchWeighter)