CoherenceTM v3.3
Copyright© 2000-2007 by Oracle Corporation

com.tangosol.util.aggregator
Class DistinctValues

java.lang.Object
  extended by com.tangosol.util.Base
      extended by com.tangosol.util.BitHelper
          extended by com.tangosol.util.ExternalizableHelper
              extended by com.tangosol.util.aggregator.AbstractAggregator
                  extended by com.tangosol.util.aggregator.DistinctValues
All Implemented Interfaces:
ExternalizableLite, PortableObject, InvocableMap.EntryAggregator, InvocableMap.ParallelAwareAggregator, Serializable

public class DistinctValues
extends AbstractAggregator

Return the set of unique values extracted from a set of entries in a Map. If the set of entries is empty, an empty set is returned.

This aggregator could be used in combination with MultiExtractor allowing to collect all unique combinations (tuples) of a given set of attributes.

The DistinctValues aggregator covers a simple case of a more generic aggregation pattern implemented by the GroupAggregator, which in addition to collecting all distinct values or tuples, runs an aggregation against each distinct entry set (group).

Author:
jh 2005.12.20

Field Summary
protected  Set m_set
          The resulting set of distinct values.
 
Fields inherited from class com.tangosol.util.aggregator.AbstractAggregator
m_fParallel
 
Constructor Summary
DistinctValues()
          Default constructor (necessary for the ExternalizableLite interface).
DistinctValues(String sMethod)
          Construct an DistinctValues aggregator.
DistinctValues(ValueExtractor extractor)
          Construct a DistinctValues aggregator.
 
Method Summary
protected  Set ensureSet()
          Return a set that can be used to store distinct values, creating it if one has not already been created.
protected  Object finalizeResult(boolean fFinal)
          Obtain the result of the aggregation.
protected  void init(boolean fFinal)
          Initialize the aggregation result.
protected  void process(Object o, boolean fFinal)
          Incorporate one aggregatable value into the result.
 
Methods inherited from class com.tangosol.util.aggregator.AbstractAggregator
aggregate, aggregateResults, equals, getParallelAggregator, getValueExtractor, hashCode, readExternal, readExternal, toString, writeExternal, writeExternal
 
Methods inherited from class com.tangosol.util.BitHelper
countBits, countBits, countBits, indexOfLSB, indexOfLSB, indexOfLSB, indexOfMSB, indexOfMSB, indexOfMSB, toBitString, toBitString, toBitString
 

Field Detail

m_set

protected transient Set m_set
The resulting set of distinct values.

Constructor Detail

DistinctValues

public DistinctValues()
Default constructor (necessary for the ExternalizableLite interface).


DistinctValues

public DistinctValues(ValueExtractor extractor)
Construct a DistinctValues aggregator.

Parameters:
extractor - the extractor that provides a value in the form of any Java object

DistinctValues

public DistinctValues(String sMethod)
Construct an DistinctValues aggregator.

Parameters:
sMethod - the name of the method that returns a value in the form of any Java object
Method Detail

init

protected void init(boolean fFinal)
Initialize the aggregation result.

Specified by:
init in class AbstractAggregator
Parameters:
fFinal - true is passed if the aggregation process that is being initialized must produce a final aggregation result; this will only be false if a parallel approach is being used and the initial (partial) aggregation process is being initialized

process

protected void process(Object o,
                       boolean fFinal)
Incorporate one aggregatable value into the result.

If the fFinal parameter is true, the given object is a partial result (returned by an individual parallel aggregator) that should be incorporated into the final result; otherwise, the object is a value extracted from an InvocableMap.Entry.

Specified by:
process in class AbstractAggregator
Parameters:
o - the value to incorporate into the aggregated result
fFinal - true to indicate that the given object is a partial result returned by a parallel aggregator

finalizeResult

protected Object finalizeResult(boolean fFinal)
Obtain the result of the aggregation.

If the fFinal parameter is true, the returned object must be the final result of the aggregation; otherwise, the returned object will be treated as a partial result that should be incorporated into the final result.

Specified by:
finalizeResult in class AbstractAggregator
Parameters:
fFinal - true to indicate that the final result of the aggregation process should be returned; this will only be false if a parallel approach is being used
Returns:
the result of the aggregation process

ensureSet

protected Set ensureSet()
Return a set that can be used to store distinct values, creating it if one has not already been created.

Returns:
a set that can be used to store distinct values

CoherenceTM v3.3
Copyright© 2000-2007 by Oracle Corporation