Class BiLeftHandSide<A,B>
- java.lang.Object
-
- org.optaplanner.core.impl.score.stream.drools.common.BiLeftHandSide<A,B>
-
- Type Parameters:
A
- generic type of the first resulting variableB
- generic type of the second resulting variable
public final class BiLeftHandSide<A,B> extends Object
Represents the left hand side of a Drools rule, the result of which are two variables. The simplest variant of such rule, with no filters or groupBys applied, would look like this in equivalent DRL:rule "Simplest bivariate rule" when $a: Something() $b: SomethingElse() then // Do something with the $a and $b variables. end
rule "Bivariate join rule" when $a: Something($leftJoin: someValue) $b: SomethingElse(someOtherValue == $leftJoin) then // Do something with the $a and $b variables. end
UniLeftHandSide
.
-
-
Field Summary
Fields Modifier and Type Field Description protected DroolsVariableFactory
variableFactory
-
Constructor Summary
Constructors Modifier Constructor Description protected
BiLeftHandSide(BiLeftHandSide<A,B> leftHandSide, PatternVariable<A,?,?> left, PatternVariable<B,?,?> right)
protected
BiLeftHandSide(BiLeftHandSide<A,B> leftHandSide, PatternVariable<B,?,?> patternVariable)
protected
BiLeftHandSide(org.optaplanner.core.impl.score.stream.drools.common.BiRuleContext<A,B> ruleContext, PatternVariable<A,?,?> left, PatternVariable<B,?,?> right, DroolsVariableFactory variableFactory)
protected
BiLeftHandSide(PatternVariable<A,?,?> left, PatternVariable<B,?,?> right, DroolsVariableFactory variableFactory)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description <C> BiLeftHandSide<A,B>
andExists(Class<C> cClass, TriJoiner<A,B,C>[] joiners)
BiLeftHandSide<A,B>
andFilter(BiPredicate<A,B> predicate)
<NewA> UniLeftHandSide<NewA>
andGroupBy(BiFunction<A,B,NewA> keyMapping)
<NewA,NewB>
BiLeftHandSide<NewA,NewB>andGroupBy(BiFunction<A,B,NewA> keyMappingA, BiFunction<A,B,NewB> keyMappingB)
<NewA,NewB,NewC>
TriLeftHandSide<NewA,NewB,NewC>andGroupBy(BiFunction<A,B,NewA> keyMappingA, BiFunction<A,B,NewB> keyMappingB, BiConstraintCollector<A,B,?,NewC> collectorC)
<NewA,NewB,NewC,NewD>
QuadLeftHandSide<NewA,NewB,NewC,NewD>andGroupBy(BiFunction<A,B,NewA> keyMappingA, BiFunction<A,B,NewB> keyMappingB, BiConstraintCollector<A,B,?,NewC> collectorC, BiConstraintCollector<A,B,?,NewD> collectorD)
<NewA,NewB>
BiLeftHandSide<NewA,NewB>andGroupBy(BiFunction<A,B,NewA> keyMappingA, BiConstraintCollector<A,B,?,NewB> collectorB)
<NewA,NewB,NewC>
TriLeftHandSide<NewA,NewB,NewC>andGroupBy(BiFunction<A,B,NewA> keyMappingA, BiConstraintCollector<A,B,?,NewB> collectorB, BiConstraintCollector<A,B,?,NewC> collectorC)
<NewA,NewB,NewC,NewD>
QuadLeftHandSide<NewA,NewB,NewC,NewD>andGroupBy(BiFunction<A,B,NewA> keyMappingA, BiConstraintCollector<A,B,?,NewB> collectorB, BiConstraintCollector<A,B,?,NewC> collectorC, BiConstraintCollector<A,B,?,NewD> collectorD)
<NewA> UniLeftHandSide<NewA>
andGroupBy(BiConstraintCollector<A,B,?,NewA> collector)
<NewA,NewB>
BiLeftHandSide<NewA,NewB>andGroupBy(BiConstraintCollector<A,B,?,NewA> collectorA, BiConstraintCollector<A,B,?,NewB> collectorB)
<NewA,NewB,NewC>
TriLeftHandSide<NewA,NewB,NewC>andGroupBy(BiConstraintCollector<A,B,?,NewA> collectorA, BiConstraintCollector<A,B,?,NewB> collectorB, BiConstraintCollector<A,B,?,NewC> collectorC)
<NewA,NewB,NewC,NewD>
QuadLeftHandSide<NewA,NewB,NewC,NewD>andGroupBy(BiConstraintCollector<A,B,?,NewA> collectorA, BiConstraintCollector<A,B,?,NewB> collectorB, BiConstraintCollector<A,B,?,NewC> collectorC, BiConstraintCollector<A,B,?,NewD> collectorD)
<C> TriLeftHandSide<A,B,C>
andJoin(UniLeftHandSide<C> right, TriJoiner<A,B,C> joiner)
<C> BiLeftHandSide<A,B>
andNotExists(Class<C> cClass, TriJoiner<A,B,C>[] joiners)
<Solution_>
RuleBuilder<Solution_>andTerminate()
<Solution_>
RuleBuilder<Solution_>andTerminate(BiFunction<A,B,BigDecimal> matchWeighter)
<Solution_>
RuleBuilder<Solution_>andTerminate(ToIntBiFunction<A,B> matchWeighter)
<Solution_>
RuleBuilder<Solution_>andTerminate(ToLongBiFunction<A,B> matchWeighter)
protected static org.drools.model.Index.ConstraintType
getConstraintType(JoinerType type)
protected PatternVariable<A,?,?>
getPatternVariableA()
protected PatternVariable<B,?,?>
getPatternVariableB()
protected static org.drools.model.view.ViewItem<?>
joinViewItemsWithLogicalAnd(PatternVariable<?,?,?>... patternVariables)
-
-
-
Field Detail
-
variableFactory
protected final DroolsVariableFactory variableFactory
-
-
Constructor Detail
-
BiLeftHandSide
protected BiLeftHandSide(PatternVariable<A,?,?> left, PatternVariable<B,?,?> right, DroolsVariableFactory variableFactory)
-
BiLeftHandSide
protected BiLeftHandSide(org.optaplanner.core.impl.score.stream.drools.common.BiRuleContext<A,B> ruleContext, PatternVariable<A,?,?> left, PatternVariable<B,?,?> right, DroolsVariableFactory variableFactory)
-
BiLeftHandSide
protected BiLeftHandSide(BiLeftHandSide<A,B> leftHandSide, PatternVariable<B,?,?> patternVariable)
-
BiLeftHandSide
protected BiLeftHandSide(BiLeftHandSide<A,B> leftHandSide, PatternVariable<A,?,?> left, PatternVariable<B,?,?> right)
-
-
Method Detail
-
getPatternVariableA
protected PatternVariable<A,?,?> getPatternVariableA()
-
getPatternVariableB
protected PatternVariable<B,?,?> getPatternVariableB()
-
andFilter
public BiLeftHandSide<A,B> andFilter(BiPredicate<A,B> predicate)
-
andNotExists
public <C> BiLeftHandSide<A,B> andNotExists(Class<C> cClass, TriJoiner<A,B,C>[] joiners)
-
andJoin
public <C> TriLeftHandSide<A,B,C> andJoin(UniLeftHandSide<C> right, TriJoiner<A,B,C> joiner)
-
andGroupBy
public <NewA> UniLeftHandSide<NewA> andGroupBy(BiConstraintCollector<A,B,?,NewA> collector)
-
andGroupBy
public <NewA,NewB> BiLeftHandSide<NewA,NewB> andGroupBy(BiConstraintCollector<A,B,?,NewA> collectorA, BiConstraintCollector<A,B,?,NewB> collectorB)
-
andGroupBy
public <NewA,NewB,NewC> TriLeftHandSide<NewA,NewB,NewC> andGroupBy(BiConstraintCollector<A,B,?,NewA> collectorA, BiConstraintCollector<A,B,?,NewB> collectorB, BiConstraintCollector<A,B,?,NewC> collectorC)
-
andGroupBy
public <NewA,NewB,NewC,NewD> QuadLeftHandSide<NewA,NewB,NewC,NewD> andGroupBy(BiConstraintCollector<A,B,?,NewA> collectorA, BiConstraintCollector<A,B,?,NewB> collectorB, BiConstraintCollector<A,B,?,NewC> collectorC, BiConstraintCollector<A,B,?,NewD> collectorD)
-
andGroupBy
public <NewA> UniLeftHandSide<NewA> andGroupBy(BiFunction<A,B,NewA> keyMapping)
-
andGroupBy
public <NewA,NewB> BiLeftHandSide<NewA,NewB> andGroupBy(BiFunction<A,B,NewA> keyMappingA, BiConstraintCollector<A,B,?,NewB> collectorB)
-
andGroupBy
public <NewA,NewB,NewC> TriLeftHandSide<NewA,NewB,NewC> andGroupBy(BiFunction<A,B,NewA> keyMappingA, BiConstraintCollector<A,B,?,NewB> collectorB, BiConstraintCollector<A,B,?,NewC> collectorC)
-
andGroupBy
public <NewA,NewB,NewC,NewD> QuadLeftHandSide<NewA,NewB,NewC,NewD> andGroupBy(BiFunction<A,B,NewA> keyMappingA, BiConstraintCollector<A,B,?,NewB> collectorB, BiConstraintCollector<A,B,?,NewC> collectorC, BiConstraintCollector<A,B,?,NewD> collectorD)
-
andGroupBy
public <NewA,NewB> BiLeftHandSide<NewA,NewB> andGroupBy(BiFunction<A,B,NewA> keyMappingA, BiFunction<A,B,NewB> keyMappingB)
-
andGroupBy
public <NewA,NewB,NewC> TriLeftHandSide<NewA,NewB,NewC> andGroupBy(BiFunction<A,B,NewA> keyMappingA, BiFunction<A,B,NewB> keyMappingB, BiConstraintCollector<A,B,?,NewC> collectorC)
-
andGroupBy
public <NewA,NewB,NewC,NewD> QuadLeftHandSide<NewA,NewB,NewC,NewD> andGroupBy(BiFunction<A,B,NewA> keyMappingA, BiFunction<A,B,NewB> keyMappingB, BiConstraintCollector<A,B,?,NewC> collectorC, BiConstraintCollector<A,B,?,NewD> collectorD)
-
andTerminate
public <Solution_> RuleBuilder<Solution_> andTerminate()
-
andTerminate
public <Solution_> RuleBuilder<Solution_> andTerminate(ToIntBiFunction<A,B> matchWeighter)
-
andTerminate
public <Solution_> RuleBuilder<Solution_> andTerminate(ToLongBiFunction<A,B> matchWeighter)
-
andTerminate
public <Solution_> RuleBuilder<Solution_> andTerminate(BiFunction<A,B,BigDecimal> matchWeighter)
-
getConstraintType
protected static org.drools.model.Index.ConstraintType getConstraintType(JoinerType type)
-
joinViewItemsWithLogicalAnd
protected static org.drools.model.view.ViewItem<?> joinViewItemsWithLogicalAnd(PatternVariable<?,?,?>... patternVariables)
-
-