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

## Class DroolsTriCondition<A,​B,​C,​PatternVar>

- java.lang.Object
- - org.optaplanner.core.impl.score.stream.drools.common.DroolsCondition<PatternVar,​DroolsTriRuleStructure<A,​B,​C,​PatternVar>>
  - - org.optaplanner.core.impl.score.stream.drools.tri.DroolsTriCondition<A,​B,​C,​PatternVar>

-     public final class DroolsTriCondition<A,​B,​C,​PatternVar>
      extends DroolsCondition<PatternVar,​DroolsTriRuleStructure<A,​B,​C,​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
    --- | ---
    `DroolsTriCondition​(DroolsTriRuleStructure<A,​B,​C,​PatternVar> ruleStructure)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `<NewA,​__> DroolsUniCondition<NewA,​NewA>` | `andCollect​(TriConstraintCollector<A,​B,​C,​__,​NewA> collector)` |
    `DroolsTriCondition<A,​B,​C,​PatternVar>` | `andFilter​(TriPredicate<A,​B,​C> predicate)` |
    `<NewA> DroolsUniCondition<NewA,​?>` | `andGroup​(TriFunction<A,​B,​C,​NewA> groupKeyMapping)` |
    `<NewA,​NewB> DroolsBiCondition<NewA,​NewB,​?>` | `andGroupBi​(TriFunction<A,​B,​C,​NewA> groupKeyAMapping, TriFunction<A,​B,​C,​NewB> groupKeyBMapping)` |
    `<NewA,​NewB,​NewC> DroolsTriCondition<NewA,​NewB,​NewC,​TriTuple<NewA,​NewB,​NewC>>` | `andGroupBiWithCollect​(TriFunction<A,​B,​C,​NewA> groupKeyAMapping, TriFunction<A,​B,​C,​NewB> groupKeyBMapping, TriConstraintCollector<A,​B,​C,​?,​NewC> collector)` |
    `<NewA,​NewB,​NewC,​NewD> DroolsQuadCondition<NewA,​NewB,​NewC,​NewD,​QuadTuple<NewA,​NewB,​NewC,​NewD>>` | `andGroupBiWithCollectBi​(TriFunction<A,​B,​C,​NewA> groupKeyAMapping, TriFunction<A,​B,​C,​NewB> groupKeyBMapping, TriConstraintCollector<A,​B,​C,​?,​NewC> collectorC, TriConstraintCollector<A,​B,​C,​?,​NewD> collectorD)` |
    `<NewA,​NewB> DroolsBiCondition<NewA,​NewB,​BiTuple<NewA,​NewB>>` | `andGroupWithCollect​(TriFunction<A,​B,​C,​NewA> groupKeyMapping, TriConstraintCollector<A,​B,​C,​?,​NewB> collector)` |
    `<D> DroolsTriCondition<A,​B,​C,​PatternVar>` | `andIfExists​(Class<D> otherClass, QuadJoiner<A,​B,​C,​D>... joiners)` |
    `<D> DroolsTriCondition<A,​B,​C,​PatternVar>` | `andIfNotExists​(Class<D> otherClass, QuadJoiner<A,​B,​C,​D>... joiners)` |
    `<D,​DPatternVar> DroolsQuadCondition<A,​B,​C,​D,​DPatternVar>` | `andJoin​(DroolsUniCondition<D,​DPatternVar> dCondition, AbstractQuadJoiner<A,​B,​C,​D> quadJoiner)` |
    `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, ToIntTriFunction<A,​B,​C> matchWeighter)` |
    `List<org.drools.model.RuleItemBuilder<?>>` | `completeWithScoring​(DroolsConstraint<?> constraint, org.drools.model.Global<? extends AbstractScoreHolder<?>> scoreHolderGlobal, ToLongTriFunction<A,​B,​C> matchWeighter)` |
    `List<org.drools.model.RuleItemBuilder<?>>` | `completeWithScoring​(DroolsConstraint<?> constraint, org.drools.model.Global<? extends AbstractScoreHolder<?>> scoreHolderGlobal, TriFunction<A,​B,​C,​BigDecimal> 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

    - #### DroolsTriCondition

          public DroolsTriCondition​(DroolsTriRuleStructure<A,​B,​C,​PatternVar> ruleStructure)

  - ### Method Detail

    - #### andFilter

          public DroolsTriCondition<A,​B,​C,​PatternVar> andFilter​(TriPredicate<A,​B,​C> predicate)

    - #### andJoin

          public <D,​DPatternVar> DroolsQuadCondition<A,​B,​C,​D,​DPatternVar> andJoin​(DroolsUniCondition<D,​DPatternVar> dCondition,
                                                                                                                AbstractQuadJoiner<A,​B,​C,​D> quadJoiner)

    - #### andIfExists

          @SafeVarargs
          public final <D> DroolsTriCondition<A,​B,​C,​PatternVar> andIfExists​(Class<D> otherClass,
                                                                                              QuadJoiner<A,​B,​C,​D>... joiners)

    - #### andIfNotExists

          @SafeVarargs
          public final <D> DroolsTriCondition<A,​B,​C,​PatternVar> andIfNotExists​(Class<D> otherClass,
                                                                                                 QuadJoiner<A,​B,​C,​D>... 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,​DroolsTriRuleStructure<A,​B,​C,​PatternVar>>`

    - #### andCollect

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

    - #### andGroup

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

    - #### andGroupWithCollect

          public <NewA,​NewB> DroolsBiCondition<NewA,​NewB,​BiTuple<NewA,​NewB>> andGroupWithCollect​(TriFunction<A,​B,​C,​NewA> groupKeyMapping,
                                                                                                                         TriConstraintCollector<A,​B,​C,​?,​NewB> collector)

    - #### andGroupBi

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

    - #### andGroupBiWithCollect

          public <NewA,​NewB,​NewC> DroolsTriCondition<NewA,​NewB,​NewC,​TriTuple<NewA,​NewB,​NewC>> andGroupBiWithCollect​(TriFunction<A,​B,​C,​NewA> groupKeyAMapping,
                                                                                                                                                              TriFunction<A,​B,​C,​NewB> groupKeyBMapping,
                                                                                                                                                              TriConstraintCollector<A,​B,​C,​?,​NewC> collector)

    - #### andGroupBiWithCollectBi

          public <NewA,​NewB,​NewC,​NewD> DroolsQuadCondition<NewA,​NewB,​NewC,​NewD,​QuadTuple<NewA,​NewB,​NewC,​NewD>> andGroupBiWithCollectBi​(TriFunction<A,​B,​C,​NewA> groupKeyAMapping,
                                                                                                                                                                                                   TriFunction<A,​B,​C,​NewB> groupKeyBMapping,
                                                                                                                                                                                                   TriConstraintCollector<A,​B,​C,​?,​NewC> collectorC,
                                                                                                                                                                                                   TriConstraintCollector<A,​B,​C,​?,​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,
                                                                               ToIntTriFunction<A,​B,​C> matchWeighter)

    - #### completeWithScoring

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

    - #### completeWithScoring

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