rwaldhoff 2003/11/24 13:38:39 Modified: functor/src/test/org/apache/commons/functor/core/collection TestIsEmpty.java functor/src/java/org/apache/commons/functor/core/collection IsEmpty.java Log: support Strings and arrays in IsEmpty predicate, add tests Revision Changes Path 1.4 +14 -2 jakarta-commons-sandbox/functor/src/test/org/apache/commons/functor/core/collection/TestIsEmpty.java Index: TestIsEmpty.java =================================================================== RCS file: /home/cvs/jakarta-commons-sandbox/functor/src/test/org/apache/commons/functor/core/collection/TestIsEmpty.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- TestIsEmpty.java 24 Nov 2003 20:12:17 -0000 1.3 +++ TestIsEmpty.java 24 Nov 2003 21:38:39 -0000 1.4 @@ -143,6 +143,18 @@ } } + public void testTestArray() throws Exception { + assertTrue(! IsEmpty.instance().test(new int[10])); + assertTrue(! IsEmpty.instance().test(new Object[10])); + assertTrue(IsEmpty.instance().test(new int[0])); + assertTrue(IsEmpty.instance().test(new Object[0])); + } + + public void testTestString() throws Exception { + assertTrue(! IsEmpty.instance().test("xyzzy")); + assertTrue(IsEmpty.instance().test("")); + } + public void testEquals() throws Exception { UnaryPredicate p = new IsEmpty(); assertEquals(p,p); 1.3 +35 -3 jakarta-commons-sandbox/functor/src/java/org/apache/commons/functor/core/collection/IsEmpty.java Index: IsEmpty.java =================================================================== RCS file: /home/cvs/jakarta-commons-sandbox/functor/src/java/org/apache/commons/functor/core/collection/IsEmpty.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- IsEmpty.java 24 Nov 2003 20:12:17 -0000 1.2 +++ IsEmpty.java 24 Nov 2003 21:38:39 -0000 1.3 @@ -57,6 +57,7 @@ package org.apache.commons.functor.core.collection; import java.io.Serializable; +import java.lang.reflect.Array; import java.util.Collection; import org.apache.commons.functor.UnaryPredicate; @@ -71,9 +72,22 @@ // ------------------------------------------------------------------------ public IsEmpty() { } + + // instance methods + // ------------------------------------------------------------------------ public boolean test(Object obj) { - return ((Collection)obj).isEmpty(); + if(obj instanceof Collection) { + return test((Collection)obj); + } else if(obj instanceof String) { + return test((String)obj); + } else if(null != obj && obj.getClass().isArray()) { + return testArray(obj); + } else if(null == obj){ + throw new NullPointerException("Argument must not be null"); + } else { + throw new ClassCastException("Expected Collection, String or Array, found " + obj); + } } /** @@ -97,9 +111,27 @@ return "IsEmpty()"; } + private boolean test(Collection col) { + return col.isEmpty(); + } + + private boolean test(String str) { + return 0 == str.length(); + } + + private boolean testArray(Object array) { + return 0 == Array.getLength(array); + } + + // class methods + // ------------------------------------------------------------------------ + public static final IsEmpty instance() { return INSTANCE; } + + // class variables + // ------------------------------------------------------------------------ private static final IsEmpty INSTANCE = new IsEmpty();
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]