org.optaplanner.core.impl.score.stream.drools.quad

## Class DroolsQuadRuleStructure<A,B,C,D>

- java.lang.Object
- - org.optaplanner.core.impl.score.stream.drools.common.DroolsRuleStructure
  - - org.optaplanner.core.impl.score.stream.drools.quad.DroolsQuadRuleStructure<A,B,C,D>

-     public class DroolsQuadRuleStructure<A,B,C,D>
      extends DroolsRuleStructure

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `DroolsQuadRuleStructure(DroolsTriRuleStructure<A,B,C> abcRuleStructure, DroolsUniRuleStructure<D> dRuleStructure, LongSupplier variableIdSupplier)` Builds a final version of the ABC pattern as it will no longer be mutated, and turns the D pattern into the new primary pattern.
    `DroolsQuadRuleStructure(org.drools.model.Variable<A> aVariable, org.drools.model.Variable<B> bVariable, org.drools.model.Variable<C> cVariable, org.drools.model.Variable<D> dVariable, DroolsPatternBuilder<?> primaryPattern, List<org.drools.model.RuleItemBuilder<?>> openRuleItems, List<org.drools.model.RuleItemBuilder<?>> closedRuleItems, LongSupplier variableIdSupplier)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `org.drools.model.Variable<A>` | `getA()`
    `org.drools.model.Variable<B>` | `getB()`
    `org.drools.model.Variable<C>` | `getC()`
    `List<org.drools.model.RuleItemBuilder<?>>` | `getClosedRuleItems()`
    `org.drools.model.Variable<D>` | `getD()`
    `List<org.drools.model.RuleItemBuilder<?>>` | `getOpenRuleItems()` Every other pattern necessary for the `DroolsRuleStructure.getPrimaryPattern()` to function properly within the Drools rule's left-hand side.
    `DroolsPatternBuilder<Object>` | `getPrimaryPattern()` Returns the pattern that the subsequent streams may further expand.

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

      `createVariable, createVariable, createVariable, createVariable, finish, getVariableIdSupplier, recollect, regroup, regroupBi, regroupBiToQuad, regroupBiToTri`

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

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

- - ### Constructor Detail

    - #### DroolsQuadRuleStructure

          public DroolsQuadRuleStructure(DroolsTriRuleStructure<A,B,C> abcRuleStructure,
                                         DroolsUniRuleStructure<D> dRuleStructure,
                                         LongSupplier variableIdSupplier)

      Builds a final version of the ABC pattern as it will no longer be mutated, and turns the D pattern into the new primary pattern.
      Parameters:
        `abcRuleStructure` -
        `dRuleStructure` -
        `variableIdSupplier` -

    - #### DroolsQuadRuleStructure

          public DroolsQuadRuleStructure(org.drools.model.Variable<A> aVariable,
                                         org.drools.model.Variable<B> bVariable,
                                         org.drools.model.Variable<C> cVariable,
                                         org.drools.model.Variable<D> dVariable,
                                         DroolsPatternBuilder<?> primaryPattern,
                                         List<org.drools.model.RuleItemBuilder<?>> openRuleItems,
                                         List<org.drools.model.RuleItemBuilder<?>> closedRuleItems,
                                         LongSupplier variableIdSupplier)

  - ### Method Detail

    - #### getA

          public org.drools.model.Variable<A> getA()

    - #### getB

          public org.drools.model.Variable<B> getB()

    - #### getC

          public org.drools.model.Variable<C> getC()

    - #### getD

          public org.drools.model.Variable<D> getD()

    - #### getPrimaryPattern

          public DroolsPatternBuilder<Object> getPrimaryPattern()

      Description copied from class: `DroolsRuleStructure`
      Returns the pattern that the subsequent streams may further expand. Consider the following left-hand side of a Drools rule:

               $a1: A()
               $a2: A(this != $a1)

      The primary pattern would be the latter one ($a2), as that is the pattern you would use to further expand your output in both $a1 and $a2.
      Specified by:
        `getPrimaryPattern` in class `DroolsRuleStructure`
      Returns:
        the primary pattern as defined

    - #### getOpenRuleItems

          public List<org.drools.model.RuleItemBuilder<?>> getOpenRuleItems()

      Description copied from class: `DroolsRuleStructure`
      Every other pattern necessary for the `DroolsRuleStructure.getPrimaryPattern()` to function properly within the Drools rule's left-hand side. In the example rule (see `DroolsRuleStructure.getPrimaryPattern()`, this method would return one and only open `RuleItemBuilder`, the one representing $a1.
      Specified by:
        `getOpenRuleItems` in class `DroolsRuleStructure`
      Returns:
        all open rule items as defined, in the correct order

    - #### getClosedRuleItems

          public List<org.drools.model.RuleItemBuilder<?>> getClosedRuleItems()

      Specified by:
        `getClosedRuleItems` in class `DroolsRuleStructure`

Copyright © 2006–2020 JBoss by Red Hat. All rights reserved.