/** * */ package org.junit.internal.builders; import java.util.Arrays; import java.util.List; import org.junit.runner.Runner; import org.junit.runners.model.RunnerBuilder; public class AllDefaultPossibilitiesBuilder extends RunnerBuilder { private final boolean fCanUseSuiteMethod; public AllDefaultPossibilitiesBuilder(boolean canUseSuiteMethod) { fCanUseSuiteMethod= canUseSuiteMethod; } @Override public Runner runnerForClass(Class testClass) throws Throwable { List builders= Arrays.asList( ignoredBuilder(), annotatedBuilder(), suiteMethodBuilder(), junit3Builder(), junit4Builder()); for (RunnerBuilder each : builders) { Runner runner= each.safeRunnerForClass(testClass); if (runner != null) return runner; } return null; } protected JUnit4Builder junit4Builder() { return new JUnit4Builder(); } protected JUnit3Builder junit3Builder() { return new JUnit3Builder(); } protected AnnotatedBuilder annotatedBuilder() { return new AnnotatedBuilder(this); } protected IgnoredBuilder ignoredBuilder() { return new IgnoredBuilder(); } protected RunnerBuilder suiteMethodBuilder() { if (fCanUseSuiteMethod) return new SuiteMethodBuilder(); return new NullBuilder(); } }