package com.crawljax.condition.browserwaiter;
import java.util.List;
import javax.inject.Inject;
import net.jcip.annotations.ThreadSafe;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.crawljax.browser.EmbeddedBrowser;
import com.crawljax.core.configuration.CrawlRules;
import com.google.common.collect.ImmutableList;
/**
* Checks the wait conditions.
*/
@ThreadSafe
public class WaitConditionChecker {
private static final Logger LOGGER = LoggerFactory.getLogger(WaitConditionChecker.class
.getName());
private ImmutableList<WaitCondition> waitConditions;
@Inject
public WaitConditionChecker(CrawlRules rules) {
waitConditions = rules.getPreCrawlConfig().getWaitConditions();
}
/**
* @return the waitConditions
*/
public List<WaitCondition> getWaitConditions() {
return waitConditions;
}
/**
* @param browser
* The browser to use.
*/
public void wait(EmbeddedBrowser browser) {
if (waitConditions == null) {
return;
}
for (WaitCondition waitCondition : waitConditions) {
LOGGER.info("Checking WaitCondition for url: " + waitCondition.getUrl());
waitCondition.testAndWait(browser);
}
}
}