net.sf.jagg.msd
Class PropertiesDiscriminator<T>

java.lang.Object
  extended by net.sf.jagg.msd.AbstractDiscriminator<T>
      extended by net.sf.jagg.msd.ChainedDiscriminator<T>
          extended by net.sf.jagg.msd.PropertiesDiscriminator<T>
All Implemented Interfaces:
Discriminator<T>

public class PropertiesDiscriminator<T>
extends ChainedDiscriminator<T>

A PropertiesDiscriminator discriminates Lists of Objects by their properties.

Since:
0.5.0
Author:
Randy Gettman

Nested Class Summary
protected  class PropertiesDiscriminator.MethodCallChainedExtractor<E,L,B>
          An MethodCallChainedExtractor extracts results of a method call as labels.
 
Constructor Summary
PropertiesDiscriminator(java.util.List<java.lang.String> properties)
          Creates a PropertiesDiscriminator that discriminates on the given properties of a list of elements.
PropertiesDiscriminator(java.lang.String... properties)
          Creates a PropertiesDiscriminator that discriminates on the given properties of a list of elements.
 
Method Summary
protected
<E> ChainedExtractor<E,?,T>
getChainedExtractor(java.util.List<E> elements, Extractor<E,T> extractor)
          Returns an appropriate ChainedExtractor.
protected
<E> Discriminator<?>
getDiscriminator(java.util.List<E> elements, ChainedExtractor<E,?,T> extractor, int index)
          Returns the Discriminator that discriminates on a specific property, indexed by the given index.
 
Methods inherited from class net.sf.jagg.msd.ChainedDiscriminator
discriminate
 
Methods inherited from class net.sf.jagg.msd.AbstractDiscriminator
discriminate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PropertiesDiscriminator

public PropertiesDiscriminator(java.lang.String... properties)
Creates a PropertiesDiscriminator that discriminates on the given properties of a list of elements.

Parameters:
properties - An array of properties on which to discriminate.

PropertiesDiscriminator

public PropertiesDiscriminator(java.util.List<java.lang.String> properties)
Creates a PropertiesDiscriminator that discriminates on the given properties of a list of elements.

Parameters:
properties - A List of properties on which to discriminate.
Method Detail

getChainedExtractor

protected <E> ChainedExtractor<E,?,T> getChainedExtractor(java.util.List<E> elements,
                                                          Extractor<E,T> extractor)
Returns an appropriate ChainedExtractor.

Specified by:
getChainedExtractor in class ChainedDiscriminator<T>
Type Parameters:
E - The type of element.
Parameters:
extractor - A ChainedExtractor that returns appropriate labels.
elements - The List of elements.
Returns:
An appropriate ChainedExtractor.
See Also:
ChainedDiscriminator.getDiscriminator(java.util.List, net.sf.jagg.msd.ChainedExtractor, int)

getDiscriminator

protected <E> Discriminator<?> getDiscriminator(java.util.List<E> elements,
                                                ChainedExtractor<E,?,T> extractor,
                                                int index)
Returns the Discriminator that discriminates on a specific property, indexed by the given index. If it is known that no more loops are necessary, then the returned Discriminator may be null.

Specified by:
getDiscriminator in class ChainedDiscriminator<T>
Parameters:
elements - The list of elements.
extractor - The ChainedExtractor that was obtained from getChainedExtractor.
index - The index of the loop.
Returns:
A Discriminator that discriminates on a specific property's type.
See Also:
ChainedDiscriminator.getChainedExtractor(java.util.List, net.sf.jagg.msd.Extractor)


Copyright © 2010-2013 jAgg Team. All Rights Reserved.