gradle: разделение на gradle-module's
This commit is contained in:
33
tools/src/main/java/ghast/scheduler/JavaScheduleTask.java
Normal file
33
tools/src/main/java/ghast/scheduler/JavaScheduleTask.java
Normal file
@@ -0,0 +1,33 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user