package ch.vorburger.webdriver.runner.core.sugar; import com.google.common.base.Function; import com.google.common.collect.Iterables; import ch.vorburger.webdriver.runner.core.WebDriverProvider; import ch.vorburger.webdriver.runner.core.WebDriverRunnerConfiguration; import ch.vorburger.webdriver.runner.core.providers.RecyclingDriverProvider; public abstract class AbstractWebDriverRunnerConfiguration implements WebDriverRunnerConfiguration { @Override public Iterable<WebDriverProvider> getWebDriverProviders() { return getRecyclingProviders(doGetWebDriverProviders()); } public abstract Iterable<WebDriverProvider> doGetWebDriverProviders(); protected Iterable<WebDriverProvider> getRecyclingProviders(Iterable<WebDriverProvider> providers) { return Iterables.transform(providers, new Function<WebDriverProvider, WebDriverProvider>() { public WebDriverProvider apply(WebDriverProvider provider) { return new RecyclingDriverProvider(provider); } }); } }