## cascading.operation
Class BaseOperation<C>

    java.lang.Object
      cascading.operation.BaseOperation<C>

All Implemented Interfaces:
  Operation<C>, Serializable

Direct Known Subclasses:
  AggregateBy.CompositeFunction, Average, AverageBy.AverageFinal, BaseAssertion, Count, Counter, DateOperation, Debug, ExpressionOperation, ExtentBase, ExtremaBase, FieldFormatter, FieldJoiner, FilterNotNull, FilterNull, Identity, Insert, Limit, Logic, Not, RegexOperation, Sample, SetValue, Status, Sum, TagSoupParser, UnGroup, Unique.FilterPartialDuplicates, XPathOperation

    public abstract class BaseOperation<C>

extends Object
implements Serializable, Operation<C>

Class BaseOperation is the base class of predicate types that are applied to `Tuple` streams via the `Each` or `Every` `Pipe`.

Specific examples of Operations are `Function`, `Filter`, `Aggregator`, `Buffer`, and `Assertion`.

See Also:
  Serialized Form

Field Summary
`protected Fields` `fieldDeclaration` Field fieldDeclaration
`protected int` `numArgs` Field numArgs
`protected String` `trace` Field trace

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

Constructor Summary
`protected` `BaseOperation()` Constructs a new instance that retuns an `Fields.UNKNOWN` `Tuple` and accepts any number of arguments.
`protected` `BaseOperation(Fields fieldDeclaration)` Constructs a new instance that returns the fields declared in fieldDeclaration and accepts any number of arguments.
`protected` `BaseOperation(int numArgs)` Constructs a new instance that returns an unknown field set and accepts the given numArgs number of arguments.
`protected` `BaseOperation(int numArgs, Fields fieldDeclaration)` Constructs a new instance that returns the fields declared in fieldDeclaration and accepts numArgs number of arguments.

Method Summary
`void` `cleanup(FlowProcess flowProcess, OperationCall<C> operationCall)` Method cleanup does nothing, and may safely be overridden.
`boolean` `equals(Object object)`
`Fields` `getFieldDeclaration()` Returns the fields created by this Operation instance.
`int` `getNumArgs()` The minimum number of arguments this Operation expects from the calling `Each` or `Every` Operator.
`String` `getTrace()` Method getTrace returns the trace of this BaseOperation object.
`int` `hashCode()`
`boolean` `isSafe()` Returns `true` if this Operation instance can safely execute on the same 'record' multiple times, `false` otherwise.
`void` `prepare(FlowProcess flowProcess, OperationCall<C> operationCall)` Method prepare does nothing, and may safely be overridden.
`static void` `printOperationInternal(Operation operation, StringBuffer buffer, Scope scope)`
`String` `toString()`
`static String` `toStringInternal(Operation operation)`

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

Field Detail

### fieldDeclaration

    protected Fields fieldDeclaration

  Field fieldDeclaration

### numArgs

    protected int numArgs

  Field numArgs

### trace

    protected String trace

  Field trace

Constructor Detail

### BaseOperation

    protected BaseOperation()

  Constructs a new instance that retuns an `Fields.UNKNOWN` `Tuple` and accepts any number of arguments. It is a best practice to always declare the field names and number of arguments via one of the other constructors.

### BaseOperation

    protected BaseOperation(Fields fieldDeclaration)

  Constructs a new instance that returns the fields declared in fieldDeclaration and accepts any number of arguments.

  Parameters:
    `fieldDeclaration` - of type Fields

### BaseOperation

    protected BaseOperation(int numArgs)

  Constructs a new instance that returns an unknown field set and accepts the given numArgs number of arguments.

  Parameters:
    `numArgs` - of type numArgs

### BaseOperation

    protected BaseOperation(int numArgs,
                            Fields fieldDeclaration)

  Constructs a new instance that returns the fields declared in fieldDeclaration and accepts numArgs number of arguments.

  Parameters:
    `numArgs` - of type numArgs
    `fieldDeclaration` - of type Fields

Method Detail

### prepare

    public void prepare(FlowProcess flowProcess,
                        OperationCall<C> operationCall)

  Method prepare does nothing, and may safely be overridden.

  Specified by:
    `prepare` in interface `Operation<C>`

### cleanup

    public void cleanup(FlowProcess flowProcess,
                        OperationCall<C> operationCall)

  Method cleanup does nothing, and may safely be overridden.

  Specified by:
    `cleanup` in interface `Operation<C>`

### getFieldDeclaration

    public Fields getFieldDeclaration()

  Description copied from interface: `Operation`
  Returns the fields created by this Operation instance. If this instance is a `Filter`, it should always return `Fields.ALL`.

  Specified by:
    `getFieldDeclaration` in interface `Operation<C>`
  Returns:
    a Fields instance
  See Also:
    `Operation.getFieldDeclaration()`

### getNumArgs

    public int getNumArgs()

  Description copied from interface: `Operation`
  The minimum number of arguments this Operation expects from the calling `Each` or `Every` Operator.

  Operations should be willing to receive more arguments than expected, but should ignore them if they are unused, instead of failing.

  Specified by:
    `getNumArgs` in interface `Operation<C>`
  Returns:
    an int
  See Also:
    `Operation.getNumArgs()`

### isSafe

    public boolean isSafe()

  Description copied from interface: `Operation`
  Returns `true` if this Operation instance can safely execute on the same 'record' multiple times, `false` otherwise.

  That is, this Operation is safe if it has no side-effects, or if it does, they are idempotent.

  If seeing the same 'record' more than once can cause errors (internally or externally), this method must return `false`.

  Specified by:
    `isSafe` in interface `Operation<C>`
  Returns:
    a boolean
  See Also:
    `Operation.isSafe()`

### getTrace

    public String getTrace()

  Method getTrace returns the trace of this BaseOperation object.

  Returns:
    the trace (type String) of this BaseOperation object.

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`

### toStringInternal

    public static String toStringInternal(Operation operation)

### printOperationInternal

    public static void printOperationInternal(Operation operation,
                                              StringBuffer buffer,
                                              Scope scope)

### equals

    public boolean equals(Object object)

  Overrides:
    `equals` in class `Object`

### hashCode

    public int hashCode()

  Overrides:
    `hashCode` in class `Object`

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