    001    package org.junit.runner;
    002
    003    import org.junit.runner.manipulation.Filter;
    004
    005    /**
    006     * Extend this class to create a factory that creates {@link Filter}.
    007     */
    008    public interface FilterFactory {
    009        /**
    010         * Creates a {@link Filter} given a {@link FilterFactoryParams} argument.
    011         *
    012         * @param params Parameters needed to create the {@link Filter}
    013         */
    014        Filter createFilter(FilterFactoryParams params) throws FilterNotCreatedException;
    015
    016        /**
    017         * Exception thrown if the {@link Filter} cannot be created.
    018         */
    019        @SuppressWarnings("serial")
    020        class FilterNotCreatedException extends Exception {
    021            public FilterNotCreatedException(Exception exception) {
    022                super(exception.getMessage(), exception);
    023            }
    024        }
    025    }