release 2.0.0

This commit is contained in:
tommyskeff
2024-01-02 22:49:44 +00:00
parent d879cbcbfb
commit 0a05da2aeb
28 changed files with 183 additions and 659 deletions

View File

@@ -0,0 +1,36 @@
package dev.tommyjs.futur.impl;
import dev.tommyjs.futur.promise.AbstractPromise;
import dev.tommyjs.futur.promise.PromiseFactory;
import org.slf4j.Logger;
import java.util.concurrent.ScheduledExecutorService;
public class SimplePromise<T> extends AbstractPromise<T> {
private final ScheduledExecutorService executor;
private final Logger logger;
private final PromiseFactory factory;
public SimplePromise(ScheduledExecutorService executor, Logger logger, PromiseFactory factory) {
this.executor = executor;
this.logger = logger;
this.factory = factory;
}
@Override
protected ScheduledExecutorService getExecutor() {
return executor;
}
@Override
protected Logger getLogger() {
return logger;
}
@Override
public PromiseFactory getFactory() {
return factory;
}
}

View File

@@ -0,0 +1,40 @@
package dev.tommyjs.futur.impl;
import dev.tommyjs.futur.promise.AbstractPromise;
import dev.tommyjs.futur.promise.Promise;
import dev.tommyjs.futur.promise.PromiseFactory;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
import java.util.concurrent.ScheduledExecutorService;
public class SimplePromiseFactory implements PromiseFactory {
private final ScheduledExecutorService executor;
private final Logger logger;
public SimplePromiseFactory(ScheduledExecutorService executor, Logger logger) {
this.executor = executor;
this.logger = logger;
}
@Override
public @NotNull <T> Promise<T> resolve(T value) {
AbstractPromise<T> promise = new SimplePromise<>(executor, logger, this);
promise.complete(value);
return promise;
}
@Override
public @NotNull <T> Promise<T> unresolved() {
return new SimplePromise<>(executor, logger, this);
}
@Override
public @NotNull <T> Promise<T> error(Throwable error) {
AbstractPromise<T> promise = new SimplePromise<>(executor, logger, this);
promise.completeExceptionally(error);
return promise;
}
}