01: /*
02: * Copyright 2001-2004 The Apache Software Foundation
03: *
04: * Licensed under the Apache License, Version 2.0 (the "License");
05: * you may not use this file except in compliance with the License.
06: * You may obtain a copy of the License at
07: *
08: * http://www.apache.org/licenses/LICENSE-2.0
09: *
10: * Unless required by applicable law or agreed to in writing, software
11: * distributed under the License is distributed on an "AS IS" BASIS,
12: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13: * See the License for the specific language governing permissions and
14: * limitations under the License.
15: */
16: package org.apache.commons.collections;
17:
18: /**
19: * Defines a functor interface implemented by classes that perform a predicate
20: * test on an object.
21: * <p>
22: * A <code>Predicate</code> is the object equivalent of an <code>if</code> statement.
23: * It uses the input object to return a true or false value, and is often used in
24: * validation or filtering.
25: * <p>
26: * Standard implementations of common predicates are provided by
27: * {@link PredicateUtils}. These include true, false, instanceof, equals, and,
28: * or, not, method invokation and null testing.
29: *
30: * @since Commons Collections 1.0
31: * @version $Revision: 155406 $ $Date: 2005-02-26 12:55:26 +0000 (Sat, 26 Feb 2005) $
32: *
33: * @author James Strachan
34: * @author Stephen Colebourne
35: */
36: public interface Predicate {
37:
38: /**
39: * Use the specified parameter to perform a test that returns true or false.
40: *
41: * @param object the object to evaluate, should not be changed
42: * @return true or false
43: * @throws ClassCastException (runtime) if the input is the wrong class
44: * @throws IllegalArgumentException (runtime) if the input is invalid
45: * @throws FunctorException (runtime) if the predicate encounters a problem
46: */
47: public boolean evaluate(Object object);
48:
49: }
|