org.planx.msd.util
Class AbstractDiscriminator<T>

java.lang.Object
  extended by org.planx.msd.util.AbstractDiscriminator<T>
All Implemented Interfaces:
Discriminator<T>
Direct Known Subclasses:
ArrayDiscriminator, BagDiscriminator, ByteArrayDiscriminator, CacheDiscriminator, CharacterDiscriminator, CharSequenceBagDiscriminator, CharSequenceDiscriminator, ClassDiscriminator, DiscriminatorAdapter, EquivalenceClassDiscriminator, IntegerArrayDiscriminator, IterationListDiscriminator, LexicographicCharSequenceDiscriminator, ListDiscriminator, MatchAllDiscriminator, NodeDiscriminator, NullDiscriminator, NumberDiscriminator, PairDiscriminator, PolymorphicDiscriminator, RandomAccessListDiscriminator, RecursionDiscriminator, SetDiscriminator, ShortArrayDiscriminator, ShortBagDiscriminator, ShortSetDiscriminator, SizeCharSequenceDiscriminator, SizeRandomAccessListDiscriminator

public abstract class AbstractDiscriminator<T>
extends Object
implements Discriminator<T>

This class provides a skeletal implementation of a Discriminator.

Author:
Thomas Ambus

Constructor Summary
protected AbstractDiscriminator()
           
 
Method Summary
abstract
<U,S> Collection<List<S>>
discriminate(List<? extends U> values, Extractor<U,? extends T,S> e)
          Discriminates a List of values using an Extractor, and returns a Collection of Lists, each representing an equivalence class containing elements from values that are equivalent.
<S extends T>
Collection<List<S>>
discriminate(List<S> values)
          Discriminates a List of values, and returns a Collection of Lists, each representing an equivalence class containing elements from values that are equivalent.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractDiscriminator

protected AbstractDiscriminator()
Method Detail

discriminate

public <S extends T> Collection<List<S>> discriminate(List<S> values)
Description copied from interface: Discriminator
Discriminates a List of values, and returns a Collection of Lists, each representing an equivalence class containing elements from values that are equivalent.

The Collection of Lists returned should be considered unmodifiable (though, in some cases they might actually be modifiable, but this behaviour should not be relied upon).

Specified by:
discriminate in interface Discriminator<T>

discriminate

public abstract <U,S> Collection<List<S>> discriminate(List<? extends U> values,
                                                       Extractor<U,? extends T,S> e)
Description copied from interface: Discriminator
Discriminates a List of values using an Extractor, and returns a Collection of Lists, each representing an equivalence class containing elements from values that are equivalent. The Extractor performs the task of extracting two kinds of objects from the input values: The label which is the object equivalence is defined upon, and the value which is the object that will be returned. That is, the label determines which equivalence class the value goes into.

The Collection of Lists returned should be considered unmodifiable (though, in some cases they might actually be modifiable, but this behaviour should not be relied upon).

Specified by:
discriminate in interface Discriminator<T>


Copyright © 2010. All Rights Reserved.