mirror of
https://github.com/tommyskeff/futur4j.git
synced 2026-01-18 07:16:45 +00:00
release 2.0.0
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user