package com.algocrafts.selenium;
import com.algocrafts.objectcache.SelfPopulatingCache;
import org.openqa.selenium.WebDriver;
import org.slf4j.Logger;
import java.util.function.Supplier;
import static org.slf4j.LoggerFactory.getLogger;
public interface CachedWebDriverSupplier<T extends WebDriver> extends Supplier<T> {
SelfPopulatingCache<CachedWebDriverSupplier<?>, ? extends WebDriver> store
= SelfPopulatingCache.create((CachedWebDriverSupplier<?> supplier) -> supplier.init());
Logger logger = getLogger(CachedWebDriverSupplier.class);
T init();
@SuppressWarnings("unchecked")
default T get() {
return (T) store.valueOf(this);
}
}