// Copyright © 2011-2013, Esko Luontola <www.orfjackal.net>
// This software is released under the Apache License 2.0.
// The license text is at http://www.apache.org/licenses/LICENSE-2.0
package fi.jumi.core.drivers;
import fi.jumi.api.drivers.Driver;
import javax.annotation.concurrent.NotThreadSafe;
import java.util.*;
@NotThreadSafe
public class CompositeDriverFinder implements DriverFinder {
private final DriverFinder[] finders;
public CompositeDriverFinder(List<DriverFinder> finders) {
this(finders.toArray(new DriverFinder[finders.size()]));
}
public CompositeDriverFinder(DriverFinder... finders) {
this.finders = finders;
}
@Override
public Driver findTestClassDriver(Class<?> testClass) {
for (DriverFinder finder : finders) {
Driver driver = finder.findTestClassDriver(testClass);
if (driver != DRIVER_NOT_FOUND) {
return driver;
}
}
throw new IllegalArgumentException(testClass + " was not recognized as a compatible test class; tried " + Arrays.toString(finders));
}
}