# Package org.optaplanner.core.impl.score.stream.drools.common

- Interface Summary
  Interface | Description
  --- | ---
  DroolsCondition.Mutator<InTuple,​OutPatternVar,​R extends DroolsRuleStructure<OutPatternVar>,​C extends DroolsCondition<OutPatternVar,​R>> |
  FactTuple |
  GroupByCollectorProcessor<InTuple,​OutTuple> |

- Class Summary
  Class | Description
  --- | ---
  BiTuple<A,​B> |
  DroolsAbstractAccumulateFunction<ResultContainer_,​InTuple,​OutTuple> |
  DroolsAbstractBiCollectingGroupByCollectorProcessor<ResultContainer1,​ResultContainer2,​InTuple,​KeyTuple,​OutTuple> |
  DroolsAbstractConstraintStream<Solution_> |
  DroolsAbstractGroupBy<InTuple,​OutTuple> |
  DroolsAbstractGroupByAccumulator<InTuple> |
  DroolsAbstractUniCollectingGroupByCollectorProcessor<ResultContainer,​InTuple,​KeyTuple,​OutTuple> |
  DroolsAccumulateContext<ResultContainer_> | Each context is uniquely identified by its `System.identityHashCode(Object)`.
  DroolsCondition<PatternVar,​T extends DroolsRuleStructure<PatternVar>> | Encapsulates the low-level rule creation and manipulation operations via the Drools executable model DSL (see `PatternDSL`.
  DroolsPatternBuilder<T> | Instances of `PatternDSL.PatternDef` are mutable and as such can not be reused by constraint streams that could result in mutually different rules.
  DroolsRuleStructure<PatternVar> | Represents the left-hand side of a Drools rule.
  QuadTuple<A,​B,​C,​D> |
  TriTuple<A,​B,​C> |