0
This repository has been archived on 2022-03-25. You can view files and clone it, but cannot push or open issues or pull requests.
Files
ghast-tools/src/main/java/ghast/scheduler/JavaScheduleTask.java

34 lines
704 B
Java

package ghast.scheduler;
import lombok.RequiredArgsConstructor;
import java.util.concurrent.Future;
import java.util.function.Supplier;
@RequiredArgsConstructor
public class JavaScheduleTask implements ScheduleTask {
private final Supplier<Future<?>> generator;
private Future<?> future;
@Override
public void start() {
if (future == null || future.isDone()) {
future = generator.get();
}
}
@Override
public boolean isCanceled() {
return future == null || future.isCancelled();
}
@Override
public void cancel() {
if (future != null) {
future.cancel(true);
future = null;
}
}
}