org.junit.experimental.categories.CategoryFilterFactory Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of virtdata-lib-curves4 Show documentation
Show all versions of virtdata-lib-curves4 Show documentation
Statistical sampling library for use in virtdata libraries, based
on apache commons math 4
package org.junit.experimental.categories;
import java.util.ArrayList;
import java.util.List;
import org.junit.internal.Classes;
import org.junit.runner.FilterFactory;
import org.junit.runner.FilterFactoryParams;
import org.junit.runner.manipulation.Filter;
/**
* Implementation of FilterFactory for Category filtering.
*/
abstract class CategoryFilterFactory implements FilterFactory {
/**
* Creates a {@link org.junit.experimental.categories.Categories.CategoryFilter} given a
* {@link FilterFactoryParams} argument.
*
* @param params Parameters needed to create the {@link Filter}
*/
public Filter createFilter(FilterFactoryParams params) throws FilterNotCreatedException {
try {
return createFilter(parseCategories(params.getArgs()));
} catch (ClassNotFoundException e) {
throw new FilterNotCreatedException(e);
}
}
/**
* Creates a {@link org.junit.experimental.categories.Categories.CategoryFilter} given an array of classes.
*
* @param categories Category classes.
*/
protected abstract Filter createFilter(List> categories);
private List> parseCategories(String categories) throws ClassNotFoundException {
List> categoryClasses = new ArrayList>();
for (String category : categories.split(",")) {
Class categoryClass = Classes.getClass(category);
categoryClasses.add(categoryClass);
}
return categoryClasses;
}
}