001 package org.junit.runner.manipulation;
002
003 /**
004 * Runners that allow filtering should implement this interface. Implement {@link #filter(Filter)}
005 * to remove tests that don't pass the filter.
006 *
007 * @since 4.0
008 */
009 public interface Filterable {
010
011 /**
012 * Remove tests that don't pass the parameter <code>filter</code>.
013 *
014 * @param filter the {@link Filter} to apply
015 * @throws NoTestsRemainException if all tests are filtered out
016 */
017 void filter(Filter filter) throws NoTestsRemainException;
018
019 }