package net.thucydides.core.scheduling;
import java.util.concurrent.TimeUnit;
public abstract class TimeSchedule<T> {
protected final ThucydidesFluentWait<T> fluentWait;
private final int amount;
public TimeSchedule(ThucydidesFluentWait<T> fluentWait, int amount) {
this.fluentWait = fluentWait;
this.amount = amount;
}
abstract protected ThucydidesFluentWait<T> updateWaitBy(int amount, TimeUnit unit);
public ThucydidesFluentWait<T> milliseconds() {
return updateWaitBy(amount, TimeUnit.MILLISECONDS);
}
public ThucydidesFluentWait<T> second() {
return updateWaitBy(amount, TimeUnit.SECONDS);
}
public ThucydidesFluentWait<T> seconds() {
return updateWaitBy(amount, TimeUnit.SECONDS);
}
public ThucydidesFluentWait<T> minute() {
return updateWaitBy(amount, TimeUnit.MINUTES);
}
public ThucydidesFluentWait<T> minutes() {
return updateWaitBy(amount, TimeUnit.MINUTES);
}
public ThucydidesFluentWait<T> hour() {
return updateWaitBy(amount, TimeUnit.HOURS);
}
public ThucydidesFluentWait<T> hours() {
return updateWaitBy(amount, TimeUnit.HOURS);
}
}