make other modules compatible with 1.2.0

This commit is contained in:
tommyskeff
2023-12-22 17:59:04 +00:00
parent 173e34810c
commit 6fc6c9f236
9 changed files with 55 additions and 58 deletions

View File

@@ -1,33 +0,0 @@
package dev.tommyjs.futur.promise;
import dev.tommyjs.futur.scheduler.Scheduler;
import org.slf4j.Logger;
public class PooledPromise<T> extends AbstractPromise<T> {
private final Scheduler scheduler;
private final Logger logger;
private final PromiseFactory factory;
public PooledPromise(Scheduler scheduler, Logger logger, PromiseFactory factory) {
this.scheduler = scheduler;
this.logger = logger;
this.factory = factory;
}
@Override
protected Scheduler getScheduler() {
return scheduler;
}
@Override
protected Logger getLogger() {
return logger;
}
@Override
public PromiseFactory getFactory() {
return factory;
}
}

View File

@@ -1,41 +0,0 @@
package dev.tommyjs.futur.promise;
import dev.tommyjs.futur.scheduler.Scheduler;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
public class PooledPromiseFactory implements PromiseFactory {
private final Scheduler scheduler;
private final Logger logger;
public PooledPromiseFactory(Scheduler scheduler, Logger logger) {
this.scheduler = scheduler;
this.logger = logger;
}
@Override
public @NotNull <T> Promise<T> resolve(T value) {
AbstractPromise<T> promise = new PooledPromise<>(scheduler, logger, this);
promise.setCompletion(new PromiseCompletion<>(value));
return promise;
}
@Override
public @NotNull <T> Promise<T> unresolved() {
return new PooledPromise<>(scheduler, logger, this);
}
@Override
public @NotNull <T> Promise<T> error(Throwable error) {
AbstractPromise<T> promise = new PooledPromise<>(scheduler, logger, this);
promise.completeExceptionally(error);
return promise;
}
@Override
public @NotNull Promise<Void> start() {
return resolve(null);
}
}

View File

@@ -1,35 +0,0 @@
package dev.tommyjs.test;
import dev.tommyjs.futur.promise.PooledPromiseFactory;
import dev.tommyjs.futur.promise.Promise;
import dev.tommyjs.futur.promise.PromiseFactory;
import dev.tommyjs.futur.scheduler.Scheduler;
import dev.tommyjs.futur.scheduler.SingleExecutorScheduler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
public class Test {
public static void main(String[] args) throws InterruptedException {
Scheduler scheduler = new SingleExecutorScheduler(Executors.newScheduledThreadPool(4));
Logger logger = LoggerFactory.getLogger(Test.class);
PromiseFactory factory = new PooledPromiseFactory(scheduler, logger);
Thread.sleep(2000);
Promise.start(factory)
.thenRunAsync(() -> {
System.out.println("HI");
})
.thenApplyDelayedAsync(_v -> {
return "ABC";
}, 1L, TimeUnit.SECONDS)
.thenConsumeSync(t -> {
System.out.println(t);
});
}
}