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

## Class DroolsBiRuleStructure<A,B>

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

-     public class DroolsBiRuleStructure<A,B>
      extends DroolsRuleStructure

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `DroolsBiRuleStructure(DroolsUniRuleStructure<A> aRuleStructure, DroolsUniRuleStructure<B> bRuleStructure, LongSupplier variableIdSupplier)` Builds a final version of the A pattern as it will no longer be mutated, and turns the B pattern into the new primary pattern.
    `DroolsBiRuleStructure(org.drools.model.Variable<A> aVariable, org.drools.model.Variable<B> bVariable, DroolsPatternBuilder<?> targetPattern, List<org.drools.model.RuleItemBuilder<?>> supportingRuleItems, 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()`
    `DroolsPatternBuilder<Object>` | `getPrimaryPattern()` Returns the pattern that the subsequent streams may further expand.
    `List<org.drools.model.RuleItemBuilder<?>>` | `getSupportingRuleItems()` Every other pattern necessary for the `DroolsRuleStructure.getPrimaryPattern()` to function properly within the Drools rule's left-hand side.

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

      `createVariable, createVariable, createVariable, createVariable, getVariableIdSupplier, rebuildSupportingRuleItems`

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

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

- - ### Constructor Detail

    - #### DroolsBiRuleStructure

          public DroolsBiRuleStructure(DroolsUniRuleStructure<A> aRuleStructure,
                                       DroolsUniRuleStructure<B> bRuleStructure,
                                       LongSupplier variableIdSupplier)

      Builds a final version of the A pattern as it will no longer be mutated, and turns the B pattern into the new primary pattern.
      Parameters:
        `aRuleStructure` -
        `bRuleStructure` -
        `variableIdSupplier` -

    - #### DroolsBiRuleStructure

          public DroolsBiRuleStructure(org.drools.model.Variable<A> aVariable,
                                       org.drools.model.Variable<B> bVariable,
                                       DroolsPatternBuilder<?> targetPattern,
                                       List<org.drools.model.RuleItemBuilder<?>> supportingRuleItems,
                                       LongSupplier variableIdSupplier)

  - ### Method Detail

    - #### getA

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

    - #### getB

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

    - #### 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

    - #### getSupportingRuleItems

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

      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 supporting `RuleItemBuilder`, the one representing $a1.
      Specified by:
        `getSupportingRuleItems` in class `DroolsRuleStructure`
      Returns:
        all supporting rule items as defined, in the correct order

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