cascading.operation
Class BaseOperation<Context>

java.lang.Object
  extended by cascading.operation.BaseOperation<Context>
All Implemented Interfaces:
DeclaresResults, Operation<Context>, Serializable
Direct Known Subclasses:
AggregateBy.CompositeFunction, Average, AverageBy.AverageFinal, BaseAssertion, Count, Counter, DateOperation, Debug, ExtentBase, ExtremaBase, ExtremaValueBase, FieldFormatter, FieldJoiner, FilterNotNull, FilterNull, FirstNBuffer, Identity, Insert, Limit, Logic, NoOp, Not, RegexOperation, Sample, ScriptOperation, SetValue, Status, Sum, UnGroup, Unique.FilterPartialDuplicates

public abstract class BaseOperation<Context>
extends Object
implements Serializable, Operation<Context>

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.

By default, isSafe() returns true.

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 returns 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<Context> operationCall)
          Method cleanup does nothing, and may safely be overridden.
 boolean equals(Object object)
           
 void flush(FlowProcess flowProcess, OperationCall<Context> contextOperationCall)
          The flush method is called when an Operation that is caching values must empty the cache.
 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<Context> 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 final String trace
Field trace

Constructor Detail

BaseOperation

protected BaseOperation()
Constructs a new instance that returns 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<Context> operationCall)
Method prepare does nothing, and may safely be overridden.

Specified by:
prepare in interface Operation<Context>

flush

public void flush(FlowProcess flowProcess,
                  OperationCall<Context> contextOperationCall)
Description copied from interface: Operation
The flush method is called when an Operation that is caching values must empty the cache. It is called before Operation.cleanup(cascading.flow.FlowProcess, OperationCall) is invoked.

It is safe to cast the OperationCall to a FunctionCall, or equivalent, and get its FunctionCall.getOutputCollector().

Specified by:
flush in interface Operation<Context>

cleanup

public void cleanup(FlowProcess flowProcess,
                    OperationCall<Context> operationCall)
Method cleanup does nothing, and may safely be overridden.

Specified by:
cleanup in interface Operation<Context>

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 DeclaresResults
Specified by:
getFieldDeclaration in interface Operation<Context>
Returns:
a Fields instance

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<Context>
Returns:
an int

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<Context>
Returns:
a boolean

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-2013 Concurrent, Inc. All Rights Reserved.