carbidecpp20devenv/plugins/org.eclipse.test.source_3.3.0.v20080507/src/org.junit4_4.3.1/junitsrc/org/junit/runner/manipulation/Filter.java
changeset 0 20e4ed35fd3f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/carbidecpp20devenv/plugins/org.eclipse.test.source_3.3.0.v20080507/src/org.junit4_4.3.1/junitsrc/org/junit/runner/manipulation/Filter.java	Fri Apr 03 17:08:57 2009 +0100
@@ -0,0 +1,56 @@
+package org.junit.runner.manipulation;
+
+import org.junit.runner.Description;
+import org.junit.runner.Request;
+import org.junit.runner.Runner;
+
+/**
+ * The canonical case of filtering is when you want to run a single test method in a class. Rather
+ * than introduce runner API just for that one case, JUnit provides a general filtering mechanism.
+ * If you want to filter the tests to be run, extend <code>Filter</code> and apply an instance of
+ * your filter to the {@link org.junit.runner.Request} before running it (see 
+ * {@link org.junit.runner.JUnitCore#run(Request)}. Alternatively, apply a <code>Filter</code> to 
+ * a {@link org.junit.runner.Runner} before running tests (for example, in conjunction with 
+ * {@link org.junit.runner.RunWith}.
+ */
+public abstract class Filter {
+	/**
+	 * A null <code>Filter</code> that passes all tests through.
+	 */
+	public static Filter ALL= new Filter() {
+		@Override
+		public boolean shouldRun(Description description) {
+			return true;
+		}
+
+		@Override
+		public String describe() {
+			return "all tests";
+		}
+	};
+
+	/**
+	 * @param description the description of the test to be run
+	 * @return <code>true</code> if the test should be run
+	 */
+	public abstract boolean shouldRun(Description description);
+
+	/**
+	 * Invoke with a {@link org.junit.runner.Runner} to cause all tests it intends to run
+	 * to first be checked with the filter. Only those that pass the filter will be run.
+	 * @param runner the runner to be filtered by the receiver
+	 * @throws NoTestsRemainException if the receiver removes all tests
+	 */
+	public void apply(Runner runner) throws NoTestsRemainException {
+		if (runner instanceof Filterable) {
+			Filterable filterable= (Filterable)runner;
+			filterable.filter(this);
+		}
+	}
+
+	/**
+	 * Returns a textual description of this Filter
+	 * @return a textual description of this Filter
+	 */
+	public abstract String describe();
+}