    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    }