195
196 AllSubtasks(Predicate<Subtask<? extends T>> isDone) {
197 this.isDone = Objects.requireNonNull(isDone);
198 }
199
200 @Override
201 public boolean onFork(Subtask<? extends T> subtask) {
202 ensureUnavailable(subtask);
203 @SuppressWarnings("unchecked")
204 var s = (Subtask<T>) subtask;
205 subtasks.add(s);
206 return false;
207 }
208
209 @Override
210 public boolean onComplete(Subtask<? extends T> subtask) {
211 ensureCompleted(subtask);
212 return isDone.test(subtask);
213 }
214
215 @Override
216 public Stream<Subtask<T>> result() {
217 return subtasks.stream();
218 }
219 }
220 }
|
195
196 AllSubtasks(Predicate<Subtask<? extends T>> isDone) {
197 this.isDone = Objects.requireNonNull(isDone);
198 }
199
200 @Override
201 public boolean onFork(Subtask<? extends T> subtask) {
202 ensureUnavailable(subtask);
203 @SuppressWarnings("unchecked")
204 var s = (Subtask<T>) subtask;
205 subtasks.add(s);
206 return false;
207 }
208
209 @Override
210 public boolean onComplete(Subtask<? extends T> subtask) {
211 ensureCompleted(subtask);
212 return isDone.test(subtask);
213 }
214
215 @Override
216 public void onTimeout() {
217 // do nothing, this joiner does not throw TimeoutException
218 }
219
220 @Override
221 public Stream<Subtask<T>> result() {
222 return subtasks.stream();
223 }
224 }
225 }
|