release 2.1.0

This commit is contained in:
tommyskeff
2024-03-12 07:27:51 +00:00
parent 49b701c736
commit 795ce04eb4
15 changed files with 143 additions and 56 deletions

View File

@@ -1,25 +1,24 @@
package dev.tommyjs.futur.impl;
import dev.tommyjs.futur.executor.PromiseExecutor;
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 PromiseExecutor executor;
private final Logger logger;
private final PromiseFactory factory;
public SimplePromise(ScheduledExecutorService executor, Logger logger, PromiseFactory factory) {
public SimplePromise(PromiseExecutor executor, Logger logger, PromiseFactory factory) {
this.executor = executor;
this.logger = logger;
this.factory = factory;
}
@Override
protected ScheduledExecutorService getExecutor() {
protected PromiseExecutor getExecutor() {
return executor;
}

View File

@@ -1,19 +1,18 @@
package dev.tommyjs.futur.impl;
import dev.tommyjs.futur.executor.PromiseExecutor;
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 PromiseExecutor executor;
private final Logger logger;
public SimplePromiseFactory(ScheduledExecutorService executor, Logger logger) {
public SimplePromiseFactory(PromiseExecutor executor, Logger logger) {
this.executor = executor;
this.logger = logger;
}

View File

@@ -0,0 +1,25 @@
package dev.tommyjs.futur.impl;
import dev.tommyjs.futur.executor.PromiseExecutor;
import dev.tommyjs.futur.promise.AbstractPromise;
import dev.tommyjs.futur.promise.PromiseFactory;
import org.slf4j.Logger;
public class StaticPromise<T> extends AbstractPromise<T> {
@Override
protected PromiseExecutor getExecutor() {
return StaticPromiseFactory.EXECUTOR;
}
@Override
protected Logger getLogger() {
return StaticPromiseFactory.LOGGER;
}
@Override
public PromiseFactory getFactory() {
return StaticPromiseFactory.INSTANCE;
}
}

View File

@@ -0,0 +1,48 @@
package dev.tommyjs.futur.impl;
import dev.tommyjs.futur.executor.PromiseExecutor;
import dev.tommyjs.futur.executor.SinglePoolExecutor;
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 org.slf4j.LoggerFactory;
import java.util.concurrent.Executors;
public class StaticPromiseFactory implements PromiseFactory {
public static final @NotNull PromiseFactory INSTANCE;
public static final @NotNull PromiseExecutor EXECUTOR;
public static final @NotNull Logger LOGGER;
static {
INSTANCE = new StaticPromiseFactory();
EXECUTOR = SinglePoolExecutor.create(1);
LOGGER = LoggerFactory.getLogger(StaticPromiseFactory.class);
}
private StaticPromiseFactory() {
}
@Override
public @NotNull <T> Promise<T> resolve(T value) {
AbstractPromise<T> promise = new StaticPromise<>();
promise.complete(value);
return promise;
}
@Override
public @NotNull <T> Promise<T> unresolved() {
return new StaticPromise<>();
}
@Override
public @NotNull <T> Promise<T> error(Throwable error) {
AbstractPromise<T> promise = new StaticPromise<>();
promise.completeExceptionally(error);
return promise;
}
}