cascading.operation.aggregator
Class ExtremaValueBase
java.lang.Object
cascading.operation.BaseOperation<ExtremaValueBase.Context>
cascading.operation.aggregator.ExtremaValueBase
- All Implemented Interfaces:
- DeclaresResults, Aggregator<ExtremaValueBase.Context>, Operation<ExtremaValueBase.Context>, Serializable
- Direct Known Subclasses:
- MaxValue, MinValue
public abstract class ExtremaValueBase
- extends BaseOperation<ExtremaValueBase.Context>
- implements Aggregator<ExtremaValueBase.Context>
Class ExtremaValueBase is the base class for MaxValue and MinValue where the values are expected to by
Comparable
types and the Comparable.compareTo(Object)
result is use for max/min
comparison.
- See Also:
- Serialized Form
Fields inherited from interface cascading.operation.Operation |
ANY |
ignoreValues
protected final Collection ignoreValues
- Field ignoreValues
ExtremaValueBase
@ConstructorProperties(value="fieldDeclaration")
public ExtremaValueBase(Fields fieldDeclaration)
ExtremaValueBase
@ConstructorProperties(value={"numArgs","fieldDeclaration"})
public ExtremaValueBase(int numArgs,
Fields fieldDeclaration)
ExtremaValueBase
@ConstructorProperties(value={"fieldDeclaration","ignoreValues"})
protected ExtremaValueBase(Fields fieldDeclaration,
Object... ignoreValues)
getIgnoreValues
public Collection getIgnoreValues()
prepare
public void prepare(FlowProcess flowProcess,
OperationCall<ExtremaValueBase.Context> operationCall)
- Description copied from class:
BaseOperation
- Method prepare does nothing, and may safely be overridden.
- Specified by:
prepare
in interface Operation<ExtremaValueBase.Context>
- Overrides:
prepare
in class BaseOperation<ExtremaValueBase.Context>
start
public void start(FlowProcess flowProcess,
AggregatorCall<ExtremaValueBase.Context> aggregatorCall)
- Description copied from interface:
Aggregator
- Method start initializes the aggregation procedure and is called for every unique grouping.
The AggregatorCall context should be initialized here if necessary.
The first time this method is called for a given 'process', the AggregatorCall context will be null. This method should
set a new instance of the user defined context object. When the AggregatorCall context is not null, it is up to
the developer to create a new instance, or 'recycle' the given instance. If recycled, it must be re-initialized to
remove any previous state/values.
For example, if a Map is used to hold the intermediate data for each subsequent
Aggregator.aggregate(cascading.flow.FlowProcess, AggregatorCall)
call,
new HashMap() should be set on the AggregatorCall instance when OperationCall.getContext()
is null.
On the next grouping, start() will be called again, but this time with the old Map instance. In this case,
map.clear() should be invoked before returning.
- Specified by:
start
in interface Aggregator<ExtremaValueBase.Context>
- Parameters:
flowProcess
- of type FlowProcessaggregatorCall
- of type AggregatorCall
aggregate
public void aggregate(FlowProcess flowProcess,
AggregatorCall<ExtremaValueBase.Context> aggregatorCall)
- Description copied from interface:
Aggregator
- Method aggregate is called for each
TupleEntry
value in the current grouping.
TupleEntry entry, or entry.getTuple() should not be stored directly in the context. A copy of the tuple
should be made via the new Tuple( entry.getTuple() )
copy constructor.
- Specified by:
aggregate
in interface Aggregator<ExtremaValueBase.Context>
- Parameters:
flowProcess
- of type FlowProcessaggregatorCall
- of type AggregatorCall
compare
protected abstract boolean compare(Comparable lhs,
Comparable rhs)
- Allows subclasses to provide own comparison method.
- Parameters:
lhs
- Comparable typerhs
- Comparable type
- Returns:
- true if the rhs should be retained as the result value
complete
public void complete(FlowProcess flowProcess,
AggregatorCall<ExtremaValueBase.Context> aggregatorCall)
- Description copied from interface:
Aggregator
- Method complete will be issued last after every
TupleEntry
has been passed to the
Aggregator.aggregate(cascading.flow.FlowProcess, AggregatorCall)
method. Any final calculation should be completed here and passed to the outputCollector.
- Specified by:
complete
in interface Aggregator<ExtremaValueBase.Context>
- Parameters:
flowProcess
- of type FlowProcessaggregatorCall
- of type AggregatorCall
getResult
protected Tuple getResult(AggregatorCall<ExtremaValueBase.Context> aggregatorCall)
equals
public boolean equals(Object object)
- Overrides:
equals
in class BaseOperation<ExtremaValueBase.Context>
hashCode
public int hashCode()
- Overrides:
hashCode
in class BaseOperation<ExtremaValueBase.Context>
Copyright © 2007-2013 Concurrent, Inc. All Rights Reserved.