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

## Class DroolsAbstractBiCollectingGroupByCollectorProcessor<ResultContainer1,​ResultContainer2,​InTuple,​KeyTuple,​OutTuple>

- java.lang.Object
- - org.optaplanner.core.impl.score.stream.drools.common.DroolsAbstractBiCollectingGroupByCollectorProcessor<ResultContainer1,​ResultContainer2,​InTuple,​KeyTuple,​OutTuple>

- All Implemented Interfaces:
    `Serializable`, `GroupByCollectorProcessor<InTuple,​OutTuple>`

      public abstract class DroolsAbstractBiCollectingGroupByCollectorProcessor<ResultContainer1,​ResultContainer2,​InTuple,​KeyTuple,​OutTuple>
      extends Object

  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `DroolsAbstractBiCollectingGroupByCollectorProcessor()` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Runnable` | `accumulate​(InTuple input)` |
    `protected void` | `addTuple​(KeyTuple tuple)` |
    `protected Set<KeyTuple>` | `clearDirtyTupleSet()` |
    `Collection<OutTuple>` | `finish()` |
    `protected abstract ResultContainer1` | `newFirstContainer()` |
    `protected abstract ResultContainer2` | `newSecondContainer()` |
    `protected abstract Runnable` | `processFirst​(InTuple tuple, ResultContainer1 container)` |
    `protected abstract Runnable` | `processSecond​(InTuple tuple, ResultContainer2 container)` |
    `protected long` | `removeTuple​(KeyTuple tuple)` |
    `protected abstract KeyTuple` | `toKey​(InTuple tuple)` |
    `protected abstract OutTuple` | `toResult​(KeyTuple key, ResultContainer1 container, ResultContainer2 container2)` |

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

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

- - ### Constructor Detail

    - #### DroolsAbstractBiCollectingGroupByCollectorProcessor

          public DroolsAbstractBiCollectingGroupByCollectorProcessor()

  - ### Method Detail

    - #### accumulate

          public Runnable accumulate​(InTuple input)

    - #### finish

          public Collection<OutTuple> finish()

    - #### toKey

          protected abstract KeyTuple toKey​(InTuple tuple)

    - #### newFirstContainer

          protected abstract ResultContainer1 newFirstContainer()

    - #### newSecondContainer

          protected abstract ResultContainer2 newSecondContainer()

    - #### processFirst

          protected abstract Runnable processFirst​(InTuple tuple,
                                                   ResultContainer1 container)

    - #### processSecond

          protected abstract Runnable processSecond​(InTuple tuple,
                                                    ResultContainer2 container)

    - #### toResult

          protected abstract OutTuple toResult​(KeyTuple key,
                                               ResultContainer1 container,
                                               ResultContainer2 container2)

    - #### addTuple

          protected void addTuple​(KeyTuple tuple)

    - #### removeTuple

          protected long removeTuple​(KeyTuple tuple)

    - #### clearDirtyTupleSet

          protected Set<KeyTuple> clearDirtyTupleSet()