Class QuadLeftHandSide<A,B,C,D>
java.lang.Object
org.optaplanner.constraint.streams.drools.common.QuadLeftHandSide<A,B,C,D>
- Type Parameters:
A- generic type of the first resulting variableB- generic type of the second resulting variableC- generic type of the third resulting variableD- generic type of the fourth resulting variable
Represents the left hand side of a Drools rule, the result of which are four variables.
For more, see
UniLeftHandSide and BiLeftHandSide.-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescription<E> QuadLeftHandSide<A,B, C, D> andExists(Class<E> dClass, org.optaplanner.core.api.score.stream.penta.PentaJoiner<A, B, C, D, E>[] joiners, Predicate<E> nullityFilter) QuadLeftHandSide<A,B, C, D> <NewD> QuadLeftHandSide<A,B, C, NewD> andFlattenLast(Function<D, Iterable<NewD>> mapping) <NewA> UniLeftHandSide<NewA>andGroupBy(org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewA> keyMapping) <NewA,NewB>
BiLeftHandSide<NewA,NewB> andGroupBy(org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewA> keyMappingA, org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewB> keyMappingB) <NewA,NewB, NewC>
TriLeftHandSide<NewA,NewB, NewC> andGroupBy(org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewA> keyMappingA, org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewB> keyMappingB, org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewC> keyMappingC) <NewA,NewB, NewC, NewD>
QuadLeftHandSide<NewA,NewB, NewC, NewD> andGroupBy(org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewA> keyMappingA, org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewB> keyMappingB, org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewC> keyMappingC, org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewD> keyMappingD) <NewA,NewB, NewC, NewD>
QuadLeftHandSide<NewA,NewB, NewC, NewD> andGroupBy(org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewA> keyMappingA, org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewB> keyMappingB, org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewC> keyMappingC, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewD> collectorD) <NewA,NewB, NewC>
TriLeftHandSide<NewA,NewB, NewC> andGroupBy(org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewA> keyMappingA, org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewB> keyMappingB, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewC> collectorC) <NewA,NewB, NewC, NewD>
QuadLeftHandSide<NewA,NewB, NewC, NewD> andGroupBy(org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewA> keyMappingA, org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewB> keyMappingB, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewC> collectorC, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewD> collectorD) <NewA,NewB>
BiLeftHandSide<NewA,NewB> andGroupBy(org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewA> keyMappingA, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewB> collectorB) <NewA,NewB, NewC>
TriLeftHandSide<NewA,NewB, NewC> andGroupBy(org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewA> keyMappingA, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewB> collectorB, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewC> collectorC) <NewA,NewB, NewC, NewD>
QuadLeftHandSide<NewA,NewB, NewC, NewD> andGroupBy(org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewA> keyMappingA, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewB> collectorB, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewC> collectorC, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewD> collectorD) <NewA> UniLeftHandSide<NewA>andGroupBy(org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewA> collector) <NewA,NewB>
BiLeftHandSide<NewA,NewB> andGroupBy(org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewA> collectorA, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewB> collectorB) <NewA,NewB, NewC>
TriLeftHandSide<NewA,NewB, NewC> andGroupBy(org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewA> collectorA, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewB> collectorB, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewC> collectorC) <NewA,NewB, NewC, NewD>
QuadLeftHandSide<NewA,NewB, NewC, NewD> andGroupBy(org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewA> collectorA, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewB> collectorB, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewC> collectorC, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewD> collectorD) <NewA> UniLeftHandSide<NewA><E> QuadLeftHandSide<A,B, C, D> andNotExists(Class<E> dClass, org.optaplanner.core.api.score.stream.penta.PentaJoiner<A, B, C, D, E>[] joiners, Predicate<E> nullityFilter) <Solution_>
RuleBuilder<Solution_><Solution_>
RuleBuilder<Solution_>andTerminate(org.optaplanner.core.api.function.QuadFunction<A, B, C, D, BigDecimal> matchWeigher) <Solution_>
RuleBuilder<Solution_>andTerminate(org.optaplanner.core.api.function.ToIntQuadFunction<A, B, C, D> matchWeigher) <Solution_>
RuleBuilder<Solution_>andTerminate(org.optaplanner.core.api.function.ToLongQuadFunction<A, B, C, D> matchWeigher) protected static org.drools.model.view.ViewItem<?>buildAccumulate(org.drools.model.view.ViewItem<?> innerAccumulatePattern, org.drools.model.functions.accumulate.AccumulateFunction... accFunctions) protected static <A,B> org.optaplanner.constraint.streams.drools.common.IndirectPatternVariable<B, org.optaplanner.constraint.streams.drools.common.BiTuple<A, B>> decompose(org.drools.model.Variable<org.optaplanner.constraint.streams.drools.common.BiTuple<A, B>> primaryVariable, org.drools.model.view.ViewItem<?> prerequisitePattern, org.drools.model.Variable<A> boundVarA, org.drools.model.Variable<B> boundVarB) Create anIndirectPatternVariableonBiTuplewith pre-made bindings for its components variables.protected static <A,B, C, D> org.optaplanner.constraint.streams.drools.common.IndirectPatternVariable<D, org.optaplanner.constraint.streams.drools.common.QuadTuple<A, B, C, D>> decompose(org.drools.model.Variable<org.optaplanner.constraint.streams.drools.common.QuadTuple<A, B, C, D>> primaryVariable, org.drools.model.view.ViewItem<?> prerequisitePattern, org.drools.model.Variable<A> boundVarA, org.drools.model.Variable<B> boundVarB, org.drools.model.Variable<C> boundVarC, org.drools.model.Variable<D> boundVarD) Create anIndirectPatternVariableonQuadTuplewith pre-made bindings for its components variables.protected static <A,B, C> org.optaplanner.constraint.streams.drools.common.IndirectPatternVariable<C, org.optaplanner.constraint.streams.drools.common.TriTuple<A, B, C>> decompose(org.drools.model.Variable<org.optaplanner.constraint.streams.drools.common.TriTuple<A, B, C>> primaryVariable, org.drools.model.view.ViewItem<?> prerequisitePattern, org.drools.model.Variable<A> boundVarA, org.drools.model.Variable<B> boundVarB, org.drools.model.Variable<C> boundVarC) Create anIndirectPatternVariableonTriTuplewith pre-made bindings for its components variables.protected static <A,B, C> org.optaplanner.constraint.streams.drools.common.DirectPatternVariable<C> decomposeWithAccumulate(org.drools.model.Variable<org.optaplanner.constraint.streams.drools.common.BiTuple<A, B>> primaryVariable, org.drools.model.view.ViewItem<?> prerequisitePattern, org.drools.model.Variable<A> boundVarA, org.drools.model.Variable<B> boundVarB, org.drools.model.Variable<C> accumulateOutput) Create aDirectPatternVariableonBiTuplewith pre-made bindings for its components variables and one accumulate output variable.protected static <A,B, C, D> org.optaplanner.constraint.streams.drools.common.DirectPatternVariable<D> decomposeWithAccumulate(org.drools.model.Variable<org.optaplanner.constraint.streams.drools.common.TriTuple<A, B, C>> primaryVariable, org.drools.model.view.ViewItem<?> prerequisitePattern, org.drools.model.Variable<A> boundVarA, org.drools.model.Variable<B> boundVarB, org.drools.model.Variable<C> boundVarC, org.drools.model.Variable<D> accumulateOutput) Create aDirectPatternVariableonTriTuplewith pre-made bindings for its components variables and one accumulate output variable.protected static org.drools.model.Index.ConstraintTypegetConstraintType(org.optaplanner.core.impl.score.stream.JoinerType type) protected static org.drools.model.view.ViewItem<?>joinViewItemsWithLogicalAnd(PatternVariable<?, ?, ?>... patternVariables) protected static List<org.drools.model.view.ViewItem<?>>mergeViewItems(PatternVariable<?, ?, ?>... patternVariables)
-
Field Details
-
variableFactory
-
-
Method Details
-
andFilter
-
andExists
-
andNotExists
-
andGroupBy
public <NewA> UniLeftHandSide<NewA> andGroupBy(org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewA> collector) -
andGroupBy
-
andGroupBy
public <NewA,NewB, TriLeftHandSide<NewA,NewC> NewB, andGroupByNewC> (org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewA> collectorA, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewB> collectorB, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewC> collectorC) -
andGroupBy
public <NewA,NewB, QuadLeftHandSide<NewA,NewC, NewD> NewB, andGroupByNewC, NewD> (org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewA> collectorA, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewB> collectorB, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewC> collectorC, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewD> collectorD) -
andGroupBy
public <NewA> UniLeftHandSide<NewA> andGroupBy(org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewA> keyMapping) -
andGroupBy
-
andGroupBy
public <NewA,NewB, TriLeftHandSide<NewA,NewC> NewB, andGroupByNewC> (org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewA> keyMappingA, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewB> collectorB, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewC> collectorC) -
andGroupBy
public <NewA,NewB, QuadLeftHandSide<NewA,NewC, NewD> NewB, andGroupByNewC, NewD> (org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewA> keyMappingA, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewB> collectorB, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewC> collectorC, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewD> collectorD) -
andGroupBy
-
andGroupBy
public <NewA,NewB, TriLeftHandSide<NewA,NewC> NewB, andGroupByNewC> (org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewA> keyMappingA, org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewB> keyMappingB, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewC> collectorC) -
andGroupBy
public <NewA,NewB, QuadLeftHandSide<NewA,NewC, NewD> NewB, andGroupByNewC, NewD> (org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewA> keyMappingA, org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewB> keyMappingB, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewC> collectorC, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewD> collectorD) -
andGroupBy
-
andGroupBy
public <NewA,NewB, QuadLeftHandSide<NewA,NewC, NewD> NewB, andGroupByNewC, NewD> (org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewA> keyMappingA, org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewB> keyMappingB, org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewC> keyMappingC, org.optaplanner.core.api.score.stream.quad.QuadConstraintCollector<A, B, C, D, ?, NewD> collectorD) -
andGroupBy
public <NewA,NewB, QuadLeftHandSide<NewA,NewC, NewD> NewB, andGroupByNewC, NewD> (org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewA> keyMappingA, org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewB> keyMappingB, org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewC> keyMappingC, org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewD> keyMappingD) -
andMap
public <NewA> UniLeftHandSide<NewA> andMap(org.optaplanner.core.api.function.QuadFunction<A, B, C, D, NewA> mapping) -
andFlattenLast
-
andTerminate
-
andTerminate
public <Solution_> RuleBuilder<Solution_> andTerminate(org.optaplanner.core.api.function.ToIntQuadFunction<A, B, C, D> matchWeigher) -
andTerminate
public <Solution_> RuleBuilder<Solution_> andTerminate(org.optaplanner.core.api.function.ToLongQuadFunction<A, B, C, D> matchWeigher) -
andTerminate
public <Solution_> RuleBuilder<Solution_> andTerminate(org.optaplanner.core.api.function.QuadFunction<A, B, C, D, BigDecimal> matchWeigher) -
getConstraintType
protected static org.drools.model.Index.ConstraintType getConstraintType(org.optaplanner.core.impl.score.stream.JoinerType type) -
joinViewItemsWithLogicalAnd
protected static org.drools.model.view.ViewItem<?> joinViewItemsWithLogicalAnd(PatternVariable<?, ?, ?>... patternVariables) -
mergeViewItems
protected static List<org.drools.model.view.ViewItem<?>> mergeViewItems(PatternVariable<?, ?, ?>... patternVariables) -
decompose
protected static <A,B> org.optaplanner.constraint.streams.drools.common.IndirectPatternVariable<B,org.optaplanner.constraint.streams.drools.common.BiTuple<A, decomposeB>> (org.drools.model.Variable<org.optaplanner.constraint.streams.drools.common.BiTuple<A, B>> primaryVariable, org.drools.model.view.ViewItem<?> prerequisitePattern, org.drools.model.Variable<A> boundVarA, org.drools.model.Variable<B> boundVarB) Create anIndirectPatternVariableonBiTuplewith pre-made bindings for its components variables.- Type Parameters:
A- generic type of the first bound variableB- generic type of the second bound variable- Parameters:
primaryVariable- never nullprerequisitePattern- never null, pattern required to construct the variableboundVarA- never null,BiTuple.aboundVarB- never null,BiTuple.b- Returns:
- never null
-
decomposeWithAccumulate
protected static <A,B, org.optaplanner.constraint.streams.drools.common.DirectPatternVariable<C> decomposeWithAccumulateC> (org.drools.model.Variable<org.optaplanner.constraint.streams.drools.common.BiTuple<A, B>> primaryVariable, org.drools.model.view.ViewItem<?> prerequisitePattern, org.drools.model.Variable<A> boundVarA, org.drools.model.Variable<B> boundVarB, org.drools.model.Variable<C> accumulateOutput) Create aDirectPatternVariableonBiTuplewith pre-made bindings for its components variables and one accumulate output variable.- Type Parameters:
A- generic type of the first bound variableB- generic type of the second bound variableC- generic type of the accumulate output variable- Parameters:
primaryVariable- never nullprerequisitePattern- never null, pattern required to construct the variableboundVarA- never null,TriTuple.aboundVarB- never null,TriTuple.baccumulateOutput- never null, output of the accumulate function- Returns:
- never null
-
decompose
protected static <A,B, org.optaplanner.constraint.streams.drools.common.IndirectPatternVariable<C,C> org.optaplanner.constraint.streams.drools.common.TriTuple<A, decomposeB, C>> (org.drools.model.Variable<org.optaplanner.constraint.streams.drools.common.TriTuple<A, B, C>> primaryVariable, org.drools.model.view.ViewItem<?> prerequisitePattern, org.drools.model.Variable<A> boundVarA, org.drools.model.Variable<B> boundVarB, org.drools.model.Variable<C> boundVarC) Create anIndirectPatternVariableonTriTuplewith pre-made bindings for its components variables.- Type Parameters:
A- generic type of the first bound variableB- generic type of the second bound variableC- generic type of the third bound variable- Parameters:
primaryVariable- never nullprerequisitePattern- never null, pattern required to construct the variableboundVarA- never null,TriTuple.aboundVarB- never null,TriTuple.bboundVarC- never null,TriTuple.c- Returns:
- never null
-
decompose
protected static <A,B, org.optaplanner.constraint.streams.drools.common.IndirectPatternVariable<D,C, D> org.optaplanner.constraint.streams.drools.common.QuadTuple<A, decomposeB, C, D>> (org.drools.model.Variable<org.optaplanner.constraint.streams.drools.common.QuadTuple<A, B, C, D>> primaryVariable, org.drools.model.view.ViewItem<?> prerequisitePattern, org.drools.model.Variable<A> boundVarA, org.drools.model.Variable<B> boundVarB, org.drools.model.Variable<C> boundVarC, org.drools.model.Variable<D> boundVarD) Create anIndirectPatternVariableonQuadTuplewith pre-made bindings for its components variables.- Type Parameters:
A- generic type of the first bound variableB- generic type of the second bound variableC- generic type of the third bound variableD- generic type of the fourth bound variable- Parameters:
primaryVariable- never nullprerequisitePattern- never null, pattern required to construct the variableboundVarA- never null,QuadTuple.aboundVarB- never null,QuadTuple.bboundVarC- never null,QuadTuple.cboundVarD- never null,QuadTuple.d- Returns:
- never null
-
decomposeWithAccumulate
protected static <A,B, org.optaplanner.constraint.streams.drools.common.DirectPatternVariable<D> decomposeWithAccumulateC, D> (org.drools.model.Variable<org.optaplanner.constraint.streams.drools.common.TriTuple<A, B, C>> primaryVariable, org.drools.model.view.ViewItem<?> prerequisitePattern, org.drools.model.Variable<A> boundVarA, org.drools.model.Variable<B> boundVarB, org.drools.model.Variable<C> boundVarC, org.drools.model.Variable<D> accumulateOutput) Create aDirectPatternVariableonTriTuplewith pre-made bindings for its components variables and one accumulate output variable.- Type Parameters:
A- generic type of the first bound variableB- generic type of the second bound variableC- generic type of the third bound variableD- generic type of the accumulate output variable- Parameters:
primaryVariable- never nullprerequisitePattern- never null, pattern required to construct the variableboundVarA- never null,TriTuple.aboundVarB- never null,TriTuple.bboundVarC- never null,TriTuple.caccumulateOutput- never null, output of the accumulate function- Returns:
- never null
-
buildAccumulate
protected static org.drools.model.view.ViewItem<?> buildAccumulate(org.drools.model.view.ViewItem<?> innerAccumulatePattern, org.drools.model.functions.accumulate.AccumulateFunction... accFunctions)
-