package net.toodarkpark.util.comparison; import java.util.*; import org.apache.commons.beanutils.PropertyUtils; import org.apache.commons.collections.Predicate; // convenience class for greaterthan/lessthan public class BetweenPredicate implements Predicate { protected AndPredicate qualif; public BetweenPredicate( Object aLesserValue, Object aGreaterValue ) { this( null, aLesserValue, aGreaterValue ); } public BetweenPredicate( Comparator aComparator, Object aLesserValue, Object aGreaterValue ) { super(); List qualifs = new ArrayList(); List gtQualifs = new ArrayList(); List ltQualifs = new ArrayList(); // greater than gtQualifs.add( new GreaterThanPredicate( aComparator, aGreaterValue ) ); gtQualifs.add( new EqualToPredicate( aComparator, aGreaterValue ) ); // combined qualifs.add( new OrPredicate( gtQualifs ) ); // less than ltQualifs.add( new LessThanPredicate( aComparator, aLesserValue ) ); ltQualifs.add( new EqualToPredicate( aComparator, aLesserValue ) ); // combined qualifs.add( new OrPredicate( ltQualifs ) ); qualif = new AndPredicate( qualifs ); } public boolean evaluate( Object comparison ) { return qualif.evaluateWithObject( comparison ); } }