MCPcopy Create free account
hub / github.com/traneio/future / ValueFuture

Class ValueFuture

future-java/src/main/java/io/trane/future/ValueFuture.java:10–135  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8import java.util.logging.Logger;
9
10final class ValueFuture<T> implements SatisfiedFuture<T> {
11
12 private static final Logger logger = Logger.getLogger(ExceptionFuture.class.getName());
13
14 final T value;
15
16 protected ValueFuture(final T value) {
17 this.value = value;
18 }
19
20 @Override
21 public final <R> Future<R> map(final Function<? super T, ? extends R> f) {
22 try {
23 return new ValueFuture<>(f.apply(value));
24 } catch (final Throwable ex) {
25 return new ExceptionFuture<>(ex);
26 }
27 }
28
29 @Override
30 public final <R> Future<R> flatMap(final Function<? super T, ? extends Future<R>> f) {
31 try {
32 return f.apply(value);
33 } catch (final Throwable ex) {
34 return new ExceptionFuture<>(ex);
35 }
36 }
37
38 @Override
39 public <R> Future<R> transform(final Transformer<? super T, ? extends R> t) {
40 try {
41 return new ValueFuture<>(t.onValue(value));
42 } catch (final Throwable ex) {
43 return new ExceptionFuture<>(ex);
44 }
45 }
46
47 @Override
48 public <R> Future<R> transformWith(final Transformer<? super T, ? extends Future<R>> t) {
49 try {
50 return t.onValue(value);
51 } catch (final Throwable ex) {
52 return new ExceptionFuture<>(ex);
53 }
54 }
55
56 @Override
57 public <U, R> Future<R> biMap(final Future<U> other, final BiFunction<? super T, ? super U, ? extends R> f) {
58 return other.map(u -> f.apply(value, u));
59 }
60
61 @Override
62 public <U, R> Future<R> biFlatMap(final Future<U> other,
63 final BiFunction<? super T, ? super U, ? extends Future<R>> f) {
64 return other.flatMap(u -> f.apply(value, u));
65 }
66
67 @Override

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…