filtering of collections.
authorerik <erik@77661180-640e-0410-b3a8-9f9b13e6d0e0>
Sun, 13 Apr 2008 08:23:33 +0000 (08:23 +0000)
committererik <erik@77661180-640e-0410-b3a8-9f9b13e6d0e0>
Sun, 13 Apr 2008 08:23:33 +0000 (08:23 +0000)
trunk/support/general/src/main/java/org/wamblee/collections/CollectionFilter.java [new file with mode: 0644]
trunk/support/general/src/test/java/org/wamblee/collections/CollectionFilterTest.java [new file with mode: 0644]
trunk/support/general/src/test/java/org/wamblee/test/AssertionUtils.java

diff --git a/trunk/support/general/src/main/java/org/wamblee/collections/CollectionFilter.java b/trunk/support/general/src/main/java/org/wamblee/collections/CollectionFilter.java
new file mode 100644 (file)
index 0000000..c52bf7b
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2008 the original author or authors.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */ 
+package org.wamblee.collections;
+
+import java.util.Collection;
+
+import org.wamblee.conditions.Condition;
+
+public class CollectionFilter {
+
+       public static <T> void filter(Collection<T> aFrom, Collection<T> aTo, Condition<T> aCondition) { 
+               for (T t: aFrom) { 
+                       if ( aCondition.matches(t)) { 
+                               aTo.add(t);
+                       }
+               }
+       }
+       
+}
diff --git a/trunk/support/general/src/test/java/org/wamblee/collections/CollectionFilterTest.java b/trunk/support/general/src/test/java/org/wamblee/collections/CollectionFilterTest.java
new file mode 100644 (file)
index 0000000..1e56eac
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2008 the original author or authors.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */ 
+package org.wamblee.collections;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.wamblee.conditions.Condition;
+import org.wamblee.test.AssertionUtils;
+
+import junit.framework.TestCase;
+
+public class CollectionFilterTest extends TestCase {
+       
+       public void testFilter() { 
+               List<String> list = Arrays.asList(new String[] { "x", "y", "z", "y" }); 
+               List<String> result = new ArrayList<String>();
+               CollectionFilter.filter(list, result, 
+                               new Condition<String>() { 
+                       @Override
+                       public boolean matches(String aObject) {
+                               return aObject.equals("y");
+                       }
+               });
+               AssertionUtils.assertEquals(new String[] { "y", "y" }, result.toArray());
+       }
+
+}
index 8d179db7ad1d488a9d53361c414b3adea6d1e5f8..fc4040721d9aabeffac4017ad0b5f4907caa0529 100644 (file)
@@ -16,6 +16,7 @@
 package org.wamblee.test;
 
 import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
@@ -35,6 +36,25 @@ public final class AssertionUtils {
     private AssertionUtils() {
         // Empty
     }
+    
+    /**
+     * Asserts that two collections are equal including equality of the elements. 
+     * @param aExpected
+     * @param aActual
+     */
+    public static void assertEquals(List aExpected, List aActual) { 
+       assertEquals(aExpected.toArray(), aActual.toArray());
+    }
+    
+    /**
+     * Asserts that two collections are equal including equality of the elements. 
+     * @param aMsg
+     * @param aExpected
+     * @param aActual
+     */
+    public static void assertEquals(String aMsg, List aExpected, List aActual) { 
+       assertEquals(aMsg, aExpected.toArray(), aActual.toArray());
+    }
 
     /**
      * Asserts that two object arrays are equal.