Skip to content

Commit 8d08477

Browse files
committed
Adding bounded generics in Promise/Promises/DependentPromise
1 parent 616e69a commit 8d08477

File tree

3 files changed

+19
-19
lines changed

3 files changed

+19
-19
lines changed

src/main/java/net/tascalate/concurrent/DependentPromise.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ public T getNow(T valueIfAbsent) {
129129
return completionStage.getNow(valueIfAbsent);
130130
}
131131

132-
public T getNow(Supplier<T> valueIfAbsent) {
132+
public T getNow(Supplier<? extends T> valueIfAbsent) {
133133
return completionStage.getNow(valueIfAbsent);
134134
}
135135

@@ -203,31 +203,31 @@ public DependentPromise<T> onTimeout(T value, Duration duration, boolean cancelO
203203
return onTimeout(() -> value, duration, enlistOrigin);
204204
}
205205

206-
public DependentPromise<T> onTimeout(Supplier<T> supplier, long timeout, TimeUnit unit) {
206+
public DependentPromise<T> onTimeout(Supplier<? extends T> supplier, long timeout, TimeUnit unit) {
207207
return onTimeout(supplier, timeout, unit, true);
208208
}
209209

210-
public DependentPromise<T> onTimeout(Supplier<T> supplier, long timeout, TimeUnit unit, boolean cancelOnTimeout) {
210+
public DependentPromise<T> onTimeout(Supplier<? extends T> supplier, long timeout, TimeUnit unit, boolean cancelOnTimeout) {
211211
return onTimeout(supplier, Promises.toDuration(timeout, unit), false);
212212
}
213213

214-
public DependentPromise<T> onTimeout(Supplier<T> supplier, long timeout, TimeUnit unit, boolean cancelOnTimeout, boolean enlistOrigin) {
214+
public DependentPromise<T> onTimeout(Supplier<? extends T> supplier, long timeout, TimeUnit unit, boolean cancelOnTimeout, boolean enlistOrigin) {
215215
return onTimeout(supplier, Promises.toDuration(timeout, unit), enlistOrigin);
216216
}
217217

218-
public DependentPromise<T> onTimeout(Supplier<T> supplier, Duration duration) {
218+
public DependentPromise<T> onTimeout(Supplier<? extends T> supplier, Duration duration) {
219219
return onTimeout(supplier, duration, true);
220220
}
221221

222-
public DependentPromise<T> onTimeout(Supplier<T> supplier, Duration duration, boolean cancelOnTimeout) {
222+
public DependentPromise<T> onTimeout(Supplier<? extends T> supplier, Duration duration, boolean cancelOnTimeout) {
223223
return onTimeout(supplier, duration, cancelOnTimeout, false);
224224
}
225225

226-
public DependentPromise<T> onTimeout(Supplier<T> supplier, Duration duration, boolean cancelOnTimeout, boolean enlistOrigin) {
227-
Function<T, Supplier<T>> valueToSupplier = v -> () -> v;
226+
public DependentPromise<T> onTimeout(Supplier<? extends T> supplier, Duration duration, boolean cancelOnTimeout, boolean enlistOrigin) {
227+
Function<T, Supplier<? extends T>> valueToSupplier = v -> () -> v;
228228

229229
// timeout converted to supplier
230-
Promise<Supplier<T>> onTimeout = Promises
230+
Promise<Supplier<? extends T>> onTimeout = Promises
231231
.delay(duration)
232232
.dependent()
233233
.thenApply(d -> supplier, true);

src/main/java/net/tascalate/concurrent/Promise.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ default public T getNow(T valueIfAbsent) {
4545
return getNow(() -> valueIfAbsent);
4646
}
4747

48-
default public T getNow(Supplier<T> valueIfAbsent) {
48+
default public T getNow(Supplier<? extends T> valueIfAbsent) {
4949
if (isDone()) {
5050
try {
5151
return get();
@@ -98,23 +98,23 @@ default Promise<T> onTimeout(T value, Duration duration, boolean cancelOnTimeout
9898
return onTimeout(() -> value, duration, cancelOnTimeout);
9999
}
100100

101-
default Promise<T> onTimeout(Supplier<T> supplier, long timeout, TimeUnit unit) {
101+
default Promise<T> onTimeout(Supplier<? extends T> supplier, long timeout, TimeUnit unit) {
102102
return onTimeout(supplier, timeout, unit, true);
103103
}
104104

105-
default Promise<T> onTimeout(Supplier<T> supplier, long timeout, TimeUnit unit, boolean cancelOnTimeout) {
105+
default Promise<T> onTimeout(Supplier<? extends T> supplier, long timeout, TimeUnit unit, boolean cancelOnTimeout) {
106106
return onTimeout(supplier, Promises.toDuration(timeout, unit), cancelOnTimeout);
107107
}
108108

109-
default Promise<T> onTimeout(Supplier<T> supplier, Duration duration) {
109+
default Promise<T> onTimeout(Supplier<? extends T> supplier, Duration duration) {
110110
return onTimeout(supplier, duration, true);
111111
}
112112

113-
default Promise<T> onTimeout(Supplier<T> supplier, Duration duration, boolean cancelOnTimeout) {
114-
Function<T, Supplier<T>> valueToSupplier = v -> () -> v;
113+
default Promise<T> onTimeout(Supplier<? extends T> supplier, Duration duration, boolean cancelOnTimeout) {
114+
Function<T, Supplier<? extends T>> valueToSupplier = v -> () -> v;
115115

116116
// timeout converted to supplier
117-
Promise<Supplier<T>> onTimeout = Promises
117+
Promise<Supplier<? extends T>> onTimeout = Promises
118118
.delay(duration)
119119
.dependent()
120120
.thenApply(d -> supplier, true);

src/main/java/net/tascalate/concurrent/Promises.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ public static <T> Promise<T> from(CompletionStage<T> stage) {
9999
return result;
100100
}
101101

102-
static <T, R> Promise<R> from(CompletionStage<T> stage,
102+
static <T, R> Promise<R> from(CompletionStage<? extends T> stage,
103103
Function<? super T, ? extends R> resultConverter,
104104
Function<? super Throwable, ? extends Throwable> errorConverter) {
105105

@@ -111,13 +111,13 @@ static <T, R> Promise<R> from(CompletionStage<T> stage,
111111
return result;
112112
}
113113

114-
public static <T> Promise<T> task(CompletionStage<T> stage, Executor executor) {
114+
public static <T> Promise<T> task(CompletionStage<? extends T> stage, Executor executor) {
115115
return CompletableTask.asyncOn(executor)
116116
.dependent()
117117
.thenCombineAsync(stage, (u, v) -> v, PromiseOrigin.PARAM_ONLY);
118118
}
119119

120-
private static <T, R> CompletablePromise<R> createLinkedPromise(CompletionStage<T> stage) {
120+
private static <T, R> CompletablePromise<R> createLinkedPromise(CompletionStage<? extends T> stage) {
121121
return new CompletablePromise<R>() {
122122
@Override
123123
public boolean cancel(boolean mayInterruptIfRunning) {

0 commit comments

Comments
 (0)