Refactor functors from inner classes to subpackage

git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@131369 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Stephen Colebourne 2003-11-23 19:11:21 +00:00
parent c63ea40c90
commit 29e4020d3f
12 changed files with 1197 additions and 268 deletions

View File

@ -1,5 +1,5 @@
/*
* $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//collections/src/java/org/apache/commons/collections/PredicateUtils.java,v 1.12 2003/11/23 17:01:36 scolebourne Exp $
* $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//collections/src/java/org/apache/commons/collections/PredicateUtils.java,v 1.13 2003/11/23 19:11:21 scolebourne Exp $
* ====================================================================
*
* The Apache Software License, Version 1.1
@ -63,8 +63,19 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import org.apache.commons.collections.functors.EqualPredicate;
import org.apache.commons.collections.functors.ExceptionPredicate;
import org.apache.commons.collections.functors.FalsePredicate;
import org.apache.commons.collections.functors.FunctorException;
import org.apache.commons.collections.functors.IdentityPredicate;
import org.apache.commons.collections.functors.InstanceofPredicate;
import org.apache.commons.collections.functors.NotNullPredicate;
import org.apache.commons.collections.functors.NotPredicate;
import org.apache.commons.collections.functors.NullIsExceptionPredicate;
import org.apache.commons.collections.functors.NullIsFalsePredicate;
import org.apache.commons.collections.functors.NullIsTruePredicate;
import org.apache.commons.collections.functors.NullPredicate;
import org.apache.commons.collections.functors.TruePredicate;
/**
* <code>PredicateUtils</code> provides reference implementations and utilities
@ -91,30 +102,13 @@ import org.apache.commons.collections.functors.FunctorException;
* All the supplied predicates are Serializable.
*
* @since Commons Collections 3.0
* @version $Revision: 1.12 $ $Date: 2003/11/23 17:01:36 $
* @version $Revision: 1.13 $ $Date: 2003/11/23 19:11:21 $
*
* @author Stephen Colebourne
* @author Ola Berg
*/
public class PredicateUtils {
/**
* A predicate that always returns true
*/
private static final Predicate TRUE_PREDICATE = new ConstantPredicate(true);
/**
* A predicate that always returns false
*/
private static final Predicate FALSE_PREDICATE = new ConstantPredicate(false);
/**
* A predicate that returns true if the object is null
*/
private static final Predicate NULL_PREDICATE = new IdentityPredicate(null);
/**
* A predicate that returns true if the object is not null
*/
private static final Predicate NOT_NULL_PREDICATE = new NotPredicate(NULL_PREDICATE);
/**
* This class is not normally instantiated.
*/
@ -141,7 +135,7 @@ public class PredicateUtils {
* @return the predicate
*/
public static Predicate truePredicate() {
return TRUE_PREDICATE;
return TruePredicate.INSTANCE;
}
/**
@ -150,7 +144,7 @@ public class PredicateUtils {
* @return the predicate
*/
public static Predicate falsePredicate() {
return FALSE_PREDICATE;
return FalsePredicate.INSTANCE;
}
/**
@ -159,7 +153,7 @@ public class PredicateUtils {
* @return the predicate
*/
public static Predicate nullPredicate() {
return NULL_PREDICATE;
return NullPredicate.INSTANCE;
}
/**
@ -168,7 +162,7 @@ public class PredicateUtils {
* @return the predicate
*/
public static Predicate notNullPredicate() {
return NOT_NULL_PREDICATE;
return NotNullPredicate.INSTANCE;
}
/**
@ -179,10 +173,7 @@ public class PredicateUtils {
* @return the predicate
*/
public static Predicate equalPredicate(Object value) {
if (value == null) {
return NULL_PREDICATE;
}
return new EqualPredicate(value);
return EqualPredicate.getInstance(value);
}
/**
@ -193,10 +184,7 @@ public class PredicateUtils {
* @return the predicate
*/
public static Predicate identityPredicate(Object value) {
if (value == null) {
return NULL_PREDICATE;
}
return new IdentityPredicate(value);
return IdentityPredicate.getInstance(value);
}
/**
@ -209,10 +197,7 @@ public class PredicateUtils {
* @throws IllegalArgumentException if the class is null
*/
public static Predicate instanceofPredicate(Class type) {
if (type == null) {
throw new IllegalArgumentException("The type to check instanceof must not be null");
}
return new InstanceofPredicate(type);
return InstanceofPredicate.getInstance(type);
}
/**
@ -454,10 +439,7 @@ public class PredicateUtils {
* @throws IllegalArgumentException if the predicate is null
*/
public static Predicate notPredicate(Predicate predicate) {
if (predicate == null) {
throw new IllegalArgumentException("The predicate must not be null");
}
return new NotPredicate(predicate);
return NotPredicate.getInstance(predicate);
}
// Adaptors
@ -492,10 +474,7 @@ public class PredicateUtils {
* @throws IllegalArgumentException if the predicate is null.
*/
public static Predicate nullIsExceptionPredicate(Predicate predicate){
if (predicate == null) {
throw new IllegalArgumentException("The predicate must not be null");
}
return new NullIsExceptionPredicate( predicate);
return NullIsExceptionPredicate.getInstance(predicate);
}
/**
@ -508,10 +487,7 @@ public class PredicateUtils {
* @throws IllegalArgumentException if the predicate is null.
*/
public static Predicate nullIsFalsePredicate(Predicate predicate){
if (predicate == null) {
throw new IllegalArgumentException("The predicate must not be null");
}
return new NullIsFalsePredicate(predicate);
return NullIsFalsePredicate.getInstance(predicate);
}
/**
@ -524,10 +500,7 @@ public class PredicateUtils {
* @throws IllegalArgumentException if the predicate is null.
*/
public static Predicate nullIsTruePredicate(Predicate predicate){
if (predicate == null) {
throw new IllegalArgumentException("The predicate must not be null");
}
return new NullIsTruePredicate(predicate);
return NullIsTruePredicate.getInstance(predicate);
}
/**
@ -581,32 +554,6 @@ public class PredicateUtils {
return preds;
}
// ConstantPredicate
//----------------------------------------------------------------------------------
/**
* ConstantPredicate returns the same instance each time.
*/
private static class ConstantPredicate implements Predicate, Serializable {
/** The constant value to return each time */
private final boolean iConstant;
/**
* Constructor to store constant
*/
private ConstantPredicate(boolean constant) {
super();
iConstant = constant;
}
/**
* Always return constant
*/
public boolean evaluate(Object object) {
return iConstant;
}
}
// AllPredicate
//----------------------------------------------------------------------------------
@ -704,110 +651,6 @@ public class PredicateUtils {
}
}
// NotPredicate
//----------------------------------------------------------------------------------
/**
* NotPredicate returns the opposite of the wrapped predicate
*/
private static class NotPredicate implements Predicate, Serializable {
/** The predicate to call */
private final Predicate iPredicate;
/**
* Constructor
*/
private NotPredicate(Predicate predicate) {
super();
iPredicate = predicate;
}
/**
* Return true if the wrapped predicate returns false, and vice versa
*/
public boolean evaluate(Object object) {
return !iPredicate.evaluate(object);
}
}
// InstanceofPredicate
//----------------------------------------------------------------------------------
/**
* InstanceofPredicate checks the type of an object
*/
private static class InstanceofPredicate implements Predicate, Serializable {
/** The type to check for */
private final Class iType;
/**
* Constructor
*/
public InstanceofPredicate(Class type) {
super();
iType = type;
}
/**
* Return true if the object is an instanceof the type of the predicate.
*/
public boolean evaluate(Object object) {
return iType.isInstance(object);
}
}
// EqualPredicate
//----------------------------------------------------------------------------------
/**
* EqualPredicate that checks if the object is a particular value by equals().
*/
private static class EqualPredicate implements Predicate, Serializable {
/** The object to compare to */
private final Object iValue;
/**
* Constructor
*/
public EqualPredicate(Object value) {
super();
iValue = value;
}
/**
* Return true if the object is equals() to the value stored in the predicate.
*/
public boolean evaluate(Object object) {
return iValue.equals(object);
}
}
// IdentityPredicate
//----------------------------------------------------------------------------------
/**
* IdentityPredicate that checks if the object is a particular value by identity.
*/
private static class IdentityPredicate implements Predicate, Serializable {
/** The object to compare identity to */
private final Object iValue;
/**
* Constructor
*/
public IdentityPredicate(Object value) {
super();
iValue = value;
}
/**
* Return true if the object is equals() to the value stored in the predicate.
*/
public boolean evaluate(Object object) {
return iValue == object;
}
}
// UniquePredicate
//----------------------------------------------------------------------------------
@ -868,91 +711,4 @@ public class PredicateUtils {
}
}
// NullIsExceptionPredicate
//----------------------------------------------------------------------------------
/**
* NullIsExceptionPredicate returns an exception if null is passed in.
*/
private static class NullIsExceptionPredicate implements Predicate, Serializable {
/** The predicate to call */
private final Predicate iPredicate;
/**
* Constructor
*/
private NullIsExceptionPredicate(Predicate predicate){
super();
iPredicate = predicate;
}
/**
* Return an exception if null
*/
public boolean evaluate(Object object){
if (object == null) {
throw new FunctorException("NullIsExceptionPredicate: Input Object must not be null");
}
return iPredicate.evaluate(object);
}
}
// NullIsFalsePredicate
//----------------------------------------------------------------------------------
/**
* NullIsFalsePredicate returns false if null is passed in.
*/
private static class NullIsFalsePredicate implements Predicate, Serializable {
/** The predicate to call */
private final Predicate iPredicate;
/**
* Constructor
*/
private NullIsFalsePredicate(Predicate predicate){
super();
iPredicate = predicate;
}
/**
* Return false if null
*/
public boolean evaluate(Object object){
if (object == null) {
return false;
}
return iPredicate.evaluate(object);
}
}
// NullIsTruePredicate
//----------------------------------------------------------------------------------
/**
* NullIsTruePredicate returns true if null is passed in.
*/
private static class NullIsTruePredicate implements Predicate, Serializable {
/** The predicate to call */
private final Predicate iPredicate;
/**
* Constructor
*/
private NullIsTruePredicate(Predicate predicate){
super();
iPredicate = predicate;
}
/**
* Return true if null
*/
public boolean evaluate(Object object){
if (object == null) {
return true;
}
return iPredicate.evaluate(object);
}
}
}

View File

@ -0,0 +1,113 @@
/*
* $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//collections/src/java/org/apache/commons/collections/functors/EqualPredicate.java,v 1.1 2003/11/23 19:11:21 scolebourne Exp $
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowledgement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgement may appear in the software itself,
* if and wherever such third-party acknowledgements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.commons.collections.functors;
import java.io.Serializable;
import org.apache.commons.collections.Predicate;
/**
* Predicate implementation that returns true if the input is the same object
* as the one stored in this predicate by equals.
*
* @since Commons Collections 3.0
* @version $Revision: 1.1 $ $Date: 2003/11/23 19:11:21 $
*
* @author Stephen Colebourne
*/
public final class EqualPredicate implements Predicate, Serializable {
/** Serial version UID */
static final long serialVersionUID = 5633766978029907089L;
/** The value to compare to */
private final Object iValue;
/**
* Factory to create the identity predicate.
*
* @param object the object to compare to
* @return the predicate
* @throws IllegalArgumentException if the predicate is null
*/
public static Predicate getInstance(Object object) {
if (object == null) {
return NullPredicate.INSTANCE;
}
return new EqualPredicate(object);
}
/**
* Constructor that performs no validation.
* Use <code>getInstance</code> if you want that.
*
* @param object the object to compare to
*/
public EqualPredicate(Object object) {
super();
iValue = object;
}
/**
* Return the predicate result.
*/
public boolean evaluate(Object object) {
return (iValue.equals(object));
}
}

View File

@ -0,0 +1,94 @@
/*
* $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//collections/src/java/org/apache/commons/collections/functors/FalsePredicate.java,v 1.1 2003/11/23 19:11:21 scolebourne Exp $
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowledgement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgement may appear in the software itself,
* if and wherever such third-party acknowledgements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.commons.collections.functors;
import java.io.Serializable;
import org.apache.commons.collections.Predicate;
/**
* Predicate implementation that always returns false.
*
* @since Commons Collections 3.0
* @version $Revision: 1.1 $ $Date: 2003/11/23 19:11:21 $
*
* @author Stephen Colebourne
*/
public final class FalsePredicate implements Predicate, Serializable {
/** Serial version UID */
static final long serialVersionUID = 7533784454832764388L;
/** Singleton predicate instance */
public static final Predicate INSTANCE = new FalsePredicate();
/**
* Restricted constructor.
*/
private FalsePredicate() {
super();
}
/**
* Always return true.
*/
public boolean evaluate(Object object) {
return false;
}
}

View File

@ -0,0 +1,114 @@
/*
* $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//collections/src/java/org/apache/commons/collections/functors/IdentityPredicate.java,v 1.1 2003/11/23 19:11:21 scolebourne Exp $
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowledgement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgement may appear in the software itself,
* if and wherever such third-party acknowledgements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.commons.collections.functors;
import java.io.Serializable;
import org.apache.commons.collections.Predicate;
/**
* Predicate implementation that returns true if the input is the same object
* as the one stored in this predicate.
*
* @since Commons Collections 3.0
* @version $Revision: 1.1 $ $Date: 2003/11/23 19:11:21 $
*
* @author Stephen Colebourne
*/
public final class IdentityPredicate implements Predicate, Serializable {
/** Serial version UID */
static final long serialVersionUID = -89901658494523293L;
/** The value to compare to */
private final Object iValue;
/**
* Factory to create the identity predicate.
*
* @param object the object to compare to
* @return the predicate
* @throws IllegalArgumentException if the predicate is null
*/
public static Predicate getInstance(Object object) {
if (object == null) {
return NullPredicate.INSTANCE;
}
return new IdentityPredicate(object);
}
/**
* Constructor that performs no validation.
* Use <code>getInstance</code> if you want that.
*
* @param object the object to compare to
*/
public IdentityPredicate(Object object) {
super();
iValue = object;
}
/**
* Return the predicate result.
*/
public boolean evaluate(Object object) {
return (iValue == object);
}
}

View File

@ -0,0 +1,113 @@
/*
* $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//collections/src/java/org/apache/commons/collections/functors/InstanceofPredicate.java,v 1.1 2003/11/23 19:11:21 scolebourne Exp $
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowledgement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgement may appear in the software itself,
* if and wherever such third-party acknowledgements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.commons.collections.functors;
import java.io.Serializable;
import org.apache.commons.collections.Predicate;
/**
* Predicate implementation that returns true if the input is an instanceof
* the type stored in this predicate.
*
* @since Commons Collections 3.0
* @version $Revision: 1.1 $ $Date: 2003/11/23 19:11:21 $
*
* @author Stephen Colebourne
*/
public final class InstanceofPredicate implements Predicate, Serializable {
/** Serial version UID */
static final long serialVersionUID = -6682656911025165584L;
/** The type to compare to */
private final Class iType;
/**
* Factory to create the identity predicate.
*
* @param type the type to check for, may not be null
* @return the predicate
* @throws IllegalArgumentException if the class is null
*/
public static Predicate getInstance(Class type) {
if (type == null) {
throw new IllegalArgumentException("The type to check instanceof must not be null");
}
return new InstanceofPredicate(type);
}
/**
* Constructor that performs no validation.
* Use <code>getInstance</code> if you want that.
*
* @param object the object to compare to
*/
public InstanceofPredicate(Class type) {
super();
iType = type;
}
/**
* Return the predicate result.
*/
public boolean evaluate(Object object) {
return (iType.isInstance(object));
}
}

View File

@ -0,0 +1,94 @@
/*
* $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//collections/src/java/org/apache/commons/collections/functors/NotNullPredicate.java,v 1.1 2003/11/23 19:11:21 scolebourne Exp $
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowledgement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgement may appear in the software itself,
* if and wherever such third-party acknowledgements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.commons.collections.functors;
import java.io.Serializable;
import org.apache.commons.collections.Predicate;
/**
* Predicate implementation that returns true if the input is not null.
*
* @since Commons Collections 3.0
* @version $Revision: 1.1 $ $Date: 2003/11/23 19:11:21 $
*
* @author Stephen Colebourne
*/
public final class NotNullPredicate implements Predicate, Serializable {
/** Serial version UID */
static final long serialVersionUID = 7533784454832764388L;
/** Singleton predicate instance */
public static final Predicate INSTANCE = new NotNullPredicate();
/**
* Restricted constructor.
*/
private NotNullPredicate() {
super();
}
/**
* Return true if the object equals null.
*/
public boolean evaluate(Object object) {
return (object != null);
}
}

View File

@ -0,0 +1,112 @@
/*
* $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//collections/src/java/org/apache/commons/collections/functors/NotPredicate.java,v 1.1 2003/11/23 19:11:21 scolebourne Exp $
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowledgement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgement may appear in the software itself,
* if and wherever such third-party acknowledgements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.commons.collections.functors;
import java.io.Serializable;
import org.apache.commons.collections.Predicate;
/**
* Predicate implementation that returns the opposite of the decorated predicate.
*
* @since Commons Collections 3.0
* @version $Revision: 1.1 $ $Date: 2003/11/23 19:11:21 $
*
* @author Stephen Colebourne
*/
public final class NotPredicate implements Predicate, Serializable {
/** Serial version UID */
static final long serialVersionUID = -2654603322338049674L;
/** The predicate to decorate */
private final Predicate iPredicate;
/**
* Factory to create the not predicate.
*
* @param predicate the predicate to decorate, not null
* @return the predicate
* @throws IllegalArgumentException if the predicate is null
*/
public static Predicate getInstance(Predicate predicate) {
if (predicate == null) {
throw new IllegalArgumentException("Predicate must not be null");
}
return new NotPredicate(predicate);
}
/**
* Constructor that performs no validation.
* Use <code>getInstance</code> if you want that.
*
* @param predicate the predicate to call after the null check
*/
public NotPredicate(Predicate predicate) {
super();
iPredicate = predicate;
}
/**
* Return the negated predicate result.
*/
public boolean evaluate(Object object) {
return !(iPredicate.evaluate(object));
}
}

View File

@ -0,0 +1,115 @@
/*
* $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//collections/src/java/org/apache/commons/collections/functors/NullIsExceptionPredicate.java,v 1.1 2003/11/23 19:11:21 scolebourne Exp $
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowledgement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgement may appear in the software itself,
* if and wherever such third-party acknowledgements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.commons.collections.functors;
import java.io.Serializable;
import org.apache.commons.collections.Predicate;
/**
* Predicate implementation that throws an exception if the input is null.
*
* @since Commons Collections 3.0
* @version $Revision: 1.1 $ $Date: 2003/11/23 19:11:21 $
*
* @author Stephen Colebourne
*/
public final class NullIsExceptionPredicate implements Predicate, Serializable {
/** Serial version UID */
static final long serialVersionUID = 3243449850504576071L;
/** The predicate to decorate */
private final Predicate iPredicate;
/**
* Factory to create the null exception predicate.
*
* @param predicate the predicate to decorate, not null
* @return the predicate
* @throws IllegalArgumentException if the predicate is null
*/
public static Predicate getInstance(Predicate predicate) {
if (predicate == null) {
throw new IllegalArgumentException("Predicate must not be null");
}
return new NullIsExceptionPredicate(predicate);
}
/**
* Constructor that performs no validation.
* Use <code>getInstance</code> if you want that.
*
* @param predicate the predicate to call after the null check
*/
public NullIsExceptionPredicate(Predicate predicate) {
super();
iPredicate = predicate;
}
/**
* Return true if the object equals null else call the decorated predicate.
*/
public boolean evaluate(Object object) {
if (object == null) {
throw new FunctorException("Input Object must not be null");
}
return iPredicate.evaluate(object);
}
}

View File

@ -0,0 +1,115 @@
/*
* $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//collections/src/java/org/apache/commons/collections/functors/NullIsFalsePredicate.java,v 1.1 2003/11/23 19:11:21 scolebourne Exp $
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowledgement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgement may appear in the software itself,
* if and wherever such third-party acknowledgements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.commons.collections.functors;
import java.io.Serializable;
import org.apache.commons.collections.Predicate;
/**
* Predicate implementation that returns false if the input is null.
*
* @since Commons Collections 3.0
* @version $Revision: 1.1 $ $Date: 2003/11/23 19:11:21 $
*
* @author Stephen Colebourne
*/
public final class NullIsFalsePredicate implements Predicate, Serializable {
/** Serial version UID */
static final long serialVersionUID = -2997501534564735525L;
/** The predicate to decorate */
private final Predicate iPredicate;
/**
* Factory to create the null false predicate.
*
* @param predicate the predicate to decorate, not null
* @return the predicate
* @throws IllegalArgumentException if the predicate is null
*/
public static Predicate getInstance(Predicate predicate) {
if (predicate == null) {
throw new IllegalArgumentException("Predicate must not be null");
}
return new NullIsFalsePredicate(predicate);
}
/**
* Constructor that performs no validation.
* Use <code>getInstance</code> if you want that.
*
* @param predicate the predicate to call after the null check
*/
public NullIsFalsePredicate(Predicate predicate) {
super();
iPredicate = predicate;
}
/**
* Return false if the object equals null else call the decorated predicate.
*/
public boolean evaluate(Object object) {
if (object == null) {
return false;
}
return iPredicate.evaluate(object);
}
}

View File

@ -0,0 +1,115 @@
/*
* $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//collections/src/java/org/apache/commons/collections/functors/NullIsTruePredicate.java,v 1.1 2003/11/23 19:11:21 scolebourne Exp $
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowledgement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgement may appear in the software itself,
* if and wherever such third-party acknowledgements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.commons.collections.functors;
import java.io.Serializable;
import org.apache.commons.collections.Predicate;
/**
* Predicate implementation that returns true if the input is null.
*
* @since Commons Collections 3.0
* @version $Revision: 1.1 $ $Date: 2003/11/23 19:11:21 $
*
* @author Stephen Colebourne
*/
public final class NullIsTruePredicate implements Predicate, Serializable {
/** Serial version UID */
static final long serialVersionUID = -7625133768987126273L;
/** The predicate to decorate */
private final Predicate iPredicate;
/**
* Factory to create the null true predicate.
*
* @param predicate the predicate to decorate, not null
* @return the predicate
* @throws IllegalArgumentException if the predicate is null
*/
public static Predicate getInstance(Predicate predicate) {
if (predicate == null) {
throw new IllegalArgumentException("Predicate must not be null");
}
return new NullIsTruePredicate(predicate);
}
/**
* Constructor that performs no validation.
* Use <code>getInstance</code> if you want that.
*
* @param predicate the predicate to call after the null check
*/
public NullIsTruePredicate(Predicate predicate) {
super();
iPredicate = predicate;
}
/**
* Return true if the object equals null else call the decorated predicate.
*/
public boolean evaluate(Object object) {
if (object == null) {
return true;
}
return iPredicate.evaluate(object);
}
}

View File

@ -0,0 +1,94 @@
/*
* $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//collections/src/java/org/apache/commons/collections/functors/NullPredicate.java,v 1.1 2003/11/23 19:11:21 scolebourne Exp $
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowledgement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgement may appear in the software itself,
* if and wherever such third-party acknowledgements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.commons.collections.functors;
import java.io.Serializable;
import org.apache.commons.collections.Predicate;
/**
* Predicate implementation that returns true if the input is null.
*
* @since Commons Collections 3.0
* @version $Revision: 1.1 $ $Date: 2003/11/23 19:11:21 $
*
* @author Stephen Colebourne
*/
public final class NullPredicate implements Predicate, Serializable {
/** Serial version UID */
static final long serialVersionUID = 7533784454832764388L;
/** Singleton predicate instance */
public static final Predicate INSTANCE = new NullPredicate();
/**
* Restricted constructor.
*/
private NullPredicate() {
super();
}
/**
* Return true if the object equals null.
*/
public boolean evaluate(Object object) {
return (object == null);
}
}

View File

@ -0,0 +1,94 @@
/*
* $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//collections/src/java/org/apache/commons/collections/functors/TruePredicate.java,v 1.1 2003/11/23 19:11:21 scolebourne Exp $
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowledgement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgement may appear in the software itself,
* if and wherever such third-party acknowledgements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.commons.collections.functors;
import java.io.Serializable;
import org.apache.commons.collections.Predicate;
/**
* Predicate implementation that always returns true.
*
* @since Commons Collections 3.0
* @version $Revision: 1.1 $ $Date: 2003/11/23 19:11:21 $
*
* @author Stephen Colebourne
*/
public final class TruePredicate implements Predicate, Serializable {
/** Serial version UID */
static final long serialVersionUID = 3374767158756189740L;
/** Singleton predicate instance */
public static final Predicate INSTANCE = new TruePredicate();
/**
* Restricted constructor.
*/
private TruePredicate() {
super();
}
/**
* Always return true.
*/
public boolean evaluate(Object object) {
return true;
}
}