When using the Predicate interface, I thought it would be useful to be
able to negate a predicate rather than writing a new one with the
opposite behavior.  Soon afterwards, I encountered a real need for
such a thing, so I wrote it.  If you think this would be useful to add
to the library (as I do IMHO), feel free to do so, or let me know how
I can be of help in doing so.  Here it is:

-----

import org.apache.commons.collections.Predicate;

/**
 * Wraps a Predicate and reverses its return value.
 */
public class NegatingPredicate implements Predicate
{
    
    private Predicate predicate;

    /**
     * Creates an instance with the specified Predicate.
     *
     * @param p the predicate to wrap and reverse
     */
    NegatingPredicate(Predicate p) {
        predicate = p;
    }

    /**
     * Gets the result of the wrapped Predicate and negates it.
     *
     * @param o the object to evaluate
     */
    public boolean evaluate(Object o) {
        return ! predicate.evaluate(o);
    }
}

-----

- Keith Bennett


__________________________________
Do you Yahoo!?
Free Pop-Up Blocker - Get it now
http://companion.yahoo.com/

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to