## cascading.operation.buffer
Class FirstNBuffer

    java.lang.Object
      cascading.operation.BaseOperation
          cascading.operation.buffer.FirstNBuffer

All Implemented Interfaces:
  DeclaresResults, Buffer, Operation, Traceable, Serializable

    public class FirstNBuffer

extends BaseOperation
implements Buffer

Class FirstNBuffer will return the first N tuples seen in a given grouping. After the tuples are returned the Buffer stops iterating the arguments unlike the `First` `Aggregator` which by contract sees all the values in the grouping.

By default it returns one Tuple.

Order can be controlled through the prior `GroupBy` or `CoGroup` pipes.

This class is used by `Unique`.

See Also:
  Serialized Form

Field Summary

Fields inherited from class cascading.operation.BaseOperation
`fieldDeclaration, numArgs, trace`

Fields inherited from interface cascading.operation.Operation
`ANY`

Constructor Summary
`FirstNBuffer()` Selects and returns the first argument Tuple encountered.
`FirstNBuffer(Fields fieldDeclaration)` Selects and returns the first argument Tuple encountered.
`FirstNBuffer(Fields fieldDeclaration, int firstN)` Selects and returns the first N argument Tuples encountered.
`FirstNBuffer(int firstN)` Selects and returns the first N argument Tuples encountered.

Method Summary
`int` `getFirstN()`
`void` `operate(FlowProcess flowProcess, BufferCall bufferCall)` Method operate is called once for each grouping.

Methods inherited from class cascading.operation.BaseOperation
`cleanup, equals, flush, getFieldDeclaration, getNumArgs, getTrace, hashCode, isSafe, prepare, printOperationInternal, toString, toStringInternal`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Methods inherited from interface cascading.operation.Operation
`cleanup, flush, getFieldDeclaration, getNumArgs, isSafe, prepare`

Constructor Detail

### FirstNBuffer

    public FirstNBuffer()

  Selects and returns the first argument Tuple encountered.

### FirstNBuffer

    @ConstructorProperties(value="firstN")
    public FirstNBuffer(int firstN)

  Selects and returns the first N argument Tuples encountered.

  Parameters:
    `firstN` - of type int

### FirstNBuffer

    @ConstructorProperties(value="fieldDeclaration")
    public FirstNBuffer(Fields fieldDeclaration)

  Selects and returns the first argument Tuple encountered.

  Parameters:
    `fieldDeclaration` - of type Fields

### FirstNBuffer

    @ConstructorProperties(value={"fieldDeclaration","firstN"})
    public FirstNBuffer(Fields fieldDeclaration,
                                                   int firstN)

  Selects and returns the first N argument Tuples encountered.

  Parameters:
    `fieldDeclaration` - of type Fields
    `firstN` - of type int

Method Detail

### getFirstN

    public int getFirstN()

### operate

    public void operate(FlowProcess flowProcess,
                        BufferCall bufferCall)

  Description copied from interface: `Buffer`
  Method operate is called once for each grouping. `BufferCall` passes in an `Iterator` that returns an argument `TupleEntry` for each value in the grouping defined by the argument selector on the parent Every pipe instance.

  TupleEntry entry, or entry.getTuple() should not be stored directly in a collection or modified. A copy of the tuple should be made via the `new Tuple( entry.getTuple() )` copy constructor.

  This method is called for every unique group, whether or not there are values in the arguments Iterator.

  Specified by:
    `operate` in interface `Buffer`
  Parameters:
    `flowProcess` - of type FlowProcess
    `bufferCall` - of type BufferCall

Copyright © 2007-2014 Concurrent, Inc. All Rights Reserved.