package net.toodarkpark.util.comparison; import java.util.*; import org.apache.commons.collections.Predicate; /* * Are two objects equal? */ public class EqualToPredicate implements Predicate { protected Object comparisonValue; protected Comparator comparator; protected boolean ignoreCase; private EqualToPredicate() { super(); comparator = null; comparisonValue = null; ignoreCase = false; } public EqualToPredicate( Comparator aComparator, Object aComparisonValue, boolean aIgnoreCase ) { this(); comparator = aComparator; comparisonValue = aComparisonValue; ignoreCase = aIgnoreCase; } public EqualToPredicate( Object aComparisonValue ) { this( null, aComparisonValue, false ); } public EqualToPredicate( Object aComparisonValue ) { this( null, aComparisonValue, false ); } public EqualToPredicate( Object aComparisonValue, boolean aIgnoreCase ) { this( null, aComparisonValue, aIgnoreCase ); } public boolean evaluate( Object value ) throws ClassCastException, NullPointerException { boolean returnValue = false; if( ignoreCase == false ) { if( comparator != null ) { returnValue = comparator.compare( comparisonValue, value ); } else { returnValue = (Comparable)comparisonValue.compare( value ); } } else { if( comparisonValue instanceof String && value instanceof String ) { returnValue = ((String)comparisonValue).equalsIgnoreCase( (String)value ); } } return returnValue; } }