/*-
* Copyright © 2011 Diamond Light Source Ltd.
*
* This file is part of GDA.
*
* GDA is free software: you can redistribute it and/or modify it under the
* terms of the GNU General Public License version 3 as published by the Free
* Software Foundation.
*
* GDA is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along
* with GDA. If not, see <http://www.gnu.org/licenses/>.
*/
package gda.observable;
/**
* An interface implemented by objects that perform an (if statement like) test on an object.
* <p>
* Note that there are library implementations of Predicate that we could choose:
* <UL>
* <li>http://commons.apache.org/collections/apidocs/org/apache/commons/collections/Predicate.html (Not generic)
* <li>http://guava-libraries.googlecode.com/svn-history/r13/trunk/javadoc/com/google/common/base/Predicate.html (Not
* part of gda)
* </UL>
*
* @param <T> The type of object tested by an implementation
*/
public interface Predicate<T> {
/**
* Apply the implementations test to an object.
*
* @param object
* @return true if the Object meets some requirement
*/
boolean apply(T object);
}