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    }