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 }