org.apache.cassandra.utils

## Class MergeIterator.Reducer<In,Out>

- java.lang.Object
- - org.apache.cassandra.utils.MergeIterator.Reducer<In,Out>

Enclosing class:
  MergeIterator<In,Out>

    public abstract static class MergeIterator.Reducer<In,Out>
    extends java.lang.Object

Accumulator that collects values of type A, and outputs a value of type B.

### Constructor Summary

Constructors
Constructor and Description
`Reducer()`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`void` `close()` May be overridden by implementations that require cleaning up after use
`protected abstract Out` `getReduced()`
`protected void` `onKeyChange()` Called at the beginning of each new key, before any reduce is called.
`abstract void` `reduce(int idx, In current)` combine this object with the previous ones.
`boolean` `trivialReduceIsTrivial()`

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

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

### Constructor Detail

#### Reducer

    public Reducer()

### Method Detail

#### trivialReduceIsTrivial

    public boolean trivialReduceIsTrivial()

Returns:
  true if Out is the same as In for the case of a single source iterator

#### reduce

    public abstract void reduce(int idx,
                                In current)

combine this object with the previous ones. intermediate state is up to your implementation.

#### getReduced

    protected abstract Out getReduced()

Returns:
  The last object computed by reduce

#### onKeyChange

    protected void onKeyChange()

Called at the beginning of each new key, before any reduce is called. To be overridden by implementing classes.

#### close

    public void close()

May be overridden by implementations that require cleaning up after use