net.sf.adatagenerator.modifiers
Class DefaultPairModifier<T,P extends ModifiablePair<T>>

java.lang.Object
  extended by net.sf.adatagenerator.modifiers.DefaultPairModifier<T,P>
All Implemented Interfaces:
Comparable<NamedInstance>, NamedInstance, PairModifier<T,P>

public class DefaultPairModifier<T,P extends ModifiablePair<T>>
extends Object
implements PairModifier<T,P>


Nested Class Summary
 
Nested classes/interfaces inherited from interface net.sf.adatagenerator.api.PairModifier
PairModifier.ModificationResult
 
Constructor Summary
DefaultPairModifier(BeanModifier<T> beanModifier)
           
DefaultPairModifier(String name, String context, BeanModifier<T> beanModifier)
           
 
Method Summary
 int compareContexts(NamedInstance namedInstance)
          Compares the context of this instance to the context of another instance using the context comparator of this instance.
 int compareTo(NamedInstance namedInstance)
          Compares this instance to another instance using the comparator of this instance.
 int compareTo(PairModifier<T,P> o)
           
protected  BeanModifier<T> getBeanModifier()
           
 String getContext()
          The context in which this instance is named.
 Comparator<String> getContextComparator()
           
 String getName()
          Implementing classes should return a name that will be comparable within some context
protected  NamedInstance getNameDelegate()
           
 Comparator<NamedInstance> getNamedInstanceComparator()
           
protected  Random getRandom()
           
static
<T,P extends ModifiablePair<T>>
P
modifyPair(BeanModifier<T> beanModifier, P target, boolean left)
          Deterministically modifies either the left or right member of the target pair.
 P modifyPair(P target)
          Randomly modifies either the left or right member of the target pair.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultPairModifier

public DefaultPairModifier(BeanModifier<T> beanModifier)

DefaultPairModifier

public DefaultPairModifier(String name,
                           String context,
                           BeanModifier<T> beanModifier)
Method Detail

getRandom

protected Random getRandom()

getNameDelegate

protected NamedInstance getNameDelegate()

getBeanModifier

protected BeanModifier<T> getBeanModifier()

modifyPair

public P modifyPair(P target)
                                       throws ModificationException
Randomly modifies either the left or right member of the target pair.

Specified by:
modifyPair in interface PairModifier<T,P extends ModifiablePair<T>>
Parameters:
target - the object to modify
Returns:
the modified target (or a modified copy of the target)
Throws:
ModificationException - if modification fails

modifyPair

public static <T,P extends ModifiablePair<T>> P modifyPair(BeanModifier<T> beanModifier,
                                                           P target,
                                                           boolean left)
                                              throws ModificationException
Deterministically modifies either the left or right member of the target pair.

Parameters:
target - a non-null, modifiable pair of modifiable beans
left - if true, the left member is modified; if false, the right member is modified
Returns:
the original target pair, with either the right or left member replaced
Throws:
ModificationException

getName

public String getName()
Description copied from interface: NamedInstance
Implementing classes should return a name that will be comparable within some context

Specified by:
getName in interface NamedInstance
Returns:
a value that identifies an instance in some context. This parameter may be null for an anonymous instance, but if it is non-null, the value will be a trimmed String

getContext

public String getContext()
Description copied from interface: NamedInstance
The context in which this instance is named. If another instance has different context from this instance, then implementing classes should ensure that NamedInstance.compareTo(NamedInstance) returns the same (non-zero) value that is the result of comparing the contexts.

Specified by:
getContext in interface NamedInstance
Returns:
may be null if the context is implicit and well understood, and trimmed otherwise

compareContexts

public int compareContexts(NamedInstance namedInstance)
Description copied from interface: NamedInstance
Compares the context of this instance to the context of another instance using the context comparator of this instance.

Specified by:
compareContexts in interface NamedInstance

getContextComparator

public Comparator<String> getContextComparator()
Specified by:
getContextComparator in interface NamedInstance

compareTo

public int compareTo(NamedInstance namedInstance)
Description copied from interface: NamedInstance
Compares this instance to another instance using the comparator of this instance.

Specified by:
compareTo in interface Comparable<NamedInstance>
Specified by:
compareTo in interface NamedInstance

getNamedInstanceComparator

public Comparator<NamedInstance> getNamedInstanceComparator()
Specified by:
getNamedInstanceComparator in interface NamedInstance

compareTo

public int compareTo(PairModifier<T,P> o)


Copyright © 2011-2012. All Rights Reserved.