carbidecpp20devenv/plugins/org.eclipse.test.source_3.3.0.v20080507/src/org.junit4_4.3.1/junitsrc/org/junit/internal/requests/FilterRequest.java
changeset 1 82d1d1de1a01
--- /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/internal/requests/FilterRequest.java	Wed Mar 18 17:21:00 2009 -0500
@@ -0,0 +1,42 @@
+/**
+ * 
+ */
+package org.junit.internal.requests;
+
+import org.junit.runner.Request;
+import org.junit.runner.Runner;
+import org.junit.runner.manipulation.Filter;
+import org.junit.runner.manipulation.NoTestsRemainException;
+
+/**
+ * A filtered {@link Request}.
+ */
+public final class FilterRequest extends Request {
+	private final Request fRequest;
+	private final Filter fFilter;
+
+	/**
+	 * Creates a filtered Request
+	 * @param classRequest a {@link Request} describing your Tests
+	 * @param filter {@link Filter} to apply to the Tests described in 
+	 * <code>classRequest</code>
+	 */
+	public FilterRequest(Request classRequest, Filter filter) {
+		fRequest= classRequest;
+		fFilter= filter;
+	}
+
+	/** @inheritDoc */
+	@Override 
+	public Runner getRunner() {
+		try {
+			Runner runner= fRequest.getRunner();
+			fFilter.apply(runner);
+			return runner;
+		} catch (NoTestsRemainException e) {
+			return Request.errorReport(Filter.class, new Exception(String
+					.format("No tests found matching %s from %s", fFilter
+							.describe(), fRequest.toString()))).getRunner();
+		}
+	}
+}
\ No newline at end of file