Skip to content

Commit c264a05

Browse files
authored
Merge pull request #130 from scijava/scijava-progress/task-access
Progress enhancements
2 parents 0b65d2b + 8d954da commit c264a05

File tree

31 files changed

+1455
-1373
lines changed

31 files changed

+1455
-1373
lines changed

scijava-ops-api/src/main/java/org/scijava/ops/api/Hints.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,23 @@ public Hints plus(String... hints) {
8383
return new Hints(newHints);
8484
}
8585

86+
/**
87+
* Reutrns a <b>new</b> {@link Hints} with:
88+
* <ol>
89+
* <li>All hints in this {@link Hints}</li>
90+
* <li>All hints in {@code other}</li>
91+
* </ol>
92+
*
93+
* @param other the other {@link Hints} object
94+
* @return a <b>new</b> {@link Hints} containing the union of the two sets of
95+
* hints
96+
*/
97+
public Hints plus(Hints other) {
98+
Set<String> newHints = new HashSet<>(this.hints);
99+
newHints.addAll(other.hints);
100+
return new Hints(newHints);
101+
}
102+
86103
/**
87104
* Returns a <b>new</b> {@link Hints} with <b>only</b> the hints in this
88105
* {@link Hints} that are not also in {@code hints}

scijava-ops-engine/src/main/java/org/scijava/ops/engine/BaseOpHints.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,4 +86,15 @@ private DependencyMatching() {
8686

8787
}
8888

89+
public static final class Progress {
90+
91+
private Progress() {
92+
// Prevent instantiation of static utility class
93+
}
94+
95+
public static final String PREFIX = "progress";
96+
public static final String TRACK = PREFIX + ".TRACK";
97+
98+
}
99+
89100
}

scijava-ops-engine/src/main/java/org/scijava/ops/engine/OpDependencyMember.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929

3030
package org.scijava.ops.engine;
3131

32+
import org.scijava.ops.api.Hints;
3233
import org.scijava.struct.ItemIO;
3334
import org.scijava.struct.Member;
3435

@@ -39,7 +40,7 @@ public interface OpDependencyMember<T> extends Member<T> {
3940

4041
String getDependencyName();
4142

42-
boolean isAdaptable();
43+
Hints hints();
4344

4445
// -- Member methods --
4546

scijava-ops-engine/src/main/java/org/scijava/ops/engine/adapt/complexLift/ComputersToFunctionsAndLift.java

Lines changed: 33 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939

4040
import org.scijava.function.Computers;
4141
import org.scijava.function.Functions;
42+
import org.scijava.ops.engine.BaseOpHints.Adaptation;
4243
import org.scijava.ops.spi.OpDependency;
4344
import org.scijava.ops.spi.Op;
4445
import org.scijava.ops.spi.OpClass;
@@ -58,9 +59,9 @@ public static class Computer1ToFunction1AndLiftViaSource<I, O> implements
5859
Function<Computers.Arity1<I, O>, Function<Iterable<I>, Iterable<O>>>, Op
5960
{
6061

61-
@OpDependency(name = "engine.adapt", adaptable = false)
62+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
6263
Function<Computers.Arity1<I, O>, Function<I, O>> adaptor;
63-
@OpDependency(name = "engine.adapt", adaptable = false)
64+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
6465
Function<Function<I, O>, Function<Iterable<I>, Iterable<O>>> lifter;
6566

6667
/**
@@ -82,9 +83,9 @@ public static class Computer2ToFunction2AndLiftViaSource<I1, I2, O> implements
8283
Op
8384
{
8485

85-
@OpDependency(name = "engine.adapt", adaptable = false)
86+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
8687
Function<Computers.Arity2<I1, I2, O>, BiFunction<I1, I2, O>> adaptor;
87-
@OpDependency(name = "engine.adapt", adaptable = false)
88+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
8889
Function<BiFunction<I1, I2, O>, BiFunction<Iterable<I1>, Iterable<I2>, Iterable<O>>> lifter;
8990

9091
/**
@@ -107,9 +108,9 @@ public static class Computer3ToFunction3AndLiftViaSource<I1, I2, I3, O>
107108
Op
108109
{
109110

110-
@OpDependency(name = "engine.adapt", adaptable = false)
111+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
111112
Function<Computers.Arity3<I1, I2, I3, O>, Functions.Arity3<I1, I2, I3, O>> adaptor;
112-
@OpDependency(name = "engine.adapt", adaptable = false)
113+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
113114
Function<Functions.Arity3<I1, I2, I3, O>, Functions.Arity3<Iterable<I1>, Iterable<I2>, Iterable<I3>, Iterable<O>>> lifter;
114115

115116
/**
@@ -133,9 +134,9 @@ public static class Computer4ToFunction4AndLiftViaSource<I1, I2, I3, I4, O>
133134
Op
134135
{
135136

136-
@OpDependency(name = "engine.adapt", adaptable = false)
137+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
137138
Function<Computers.Arity4<I1, I2, I3, I4, O>, Functions.Arity4<I1, I2, I3, I4, O>> adaptor;
138-
@OpDependency(name = "engine.adapt", adaptable = false)
139+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
139140
Function<Functions.Arity4<I1, I2, I3, I4, O>, Functions.Arity4<Iterable<I1>, Iterable<I2>, Iterable<I3>, Iterable<I4>, Iterable<O>>> lifter;
140141

141142
/**
@@ -159,9 +160,9 @@ public static class Computer5ToFunction5AndLiftViaSource<I1, I2, I3, I4, I5, O>
159160
Op
160161
{
161162

162-
@OpDependency(name = "engine.adapt", adaptable = false)
163+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
163164
Function<Computers.Arity5<I1, I2, I3, I4, I5, O>, Functions.Arity5<I1, I2, I3, I4, I5, O>> adaptor;
164-
@OpDependency(name = "engine.adapt", adaptable = false)
165+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
165166
Function<Functions.Arity5<I1, I2, I3, I4, I5, O>, Functions.Arity5<Iterable<I1>, Iterable<I2>, Iterable<I3>, Iterable<I4>, Iterable<I5>, Iterable<O>>> lifter;
166167

167168
/**
@@ -185,9 +186,9 @@ public static class Computer6ToFunction6AndLiftViaSource<I1, I2, I3, I4, I5, I6,
185186
Op
186187
{
187188

188-
@OpDependency(name = "engine.adapt", adaptable = false)
189+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
189190
Function<Computers.Arity6<I1, I2, I3, I4, I5, I6, O>, Functions.Arity6<I1, I2, I3, I4, I5, I6, O>> adaptor;
190-
@OpDependency(name = "engine.adapt", adaptable = false)
191+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
191192
Function<Functions.Arity6<I1, I2, I3, I4, I5, I6, O>, Functions.Arity6<Iterable<I1>, Iterable<I2>, Iterable<I3>, Iterable<I4>, Iterable<I5>, Iterable<I6>, Iterable<O>>> lifter;
192193

193194
/**
@@ -211,9 +212,9 @@ public static class Computer7ToFunction7AndLiftViaSource<I1, I2, I3, I4, I5, I6,
211212
Op
212213
{
213214

214-
@OpDependency(name = "engine.adapt", adaptable = false)
215+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
215216
Function<Computers.Arity7<I1, I2, I3, I4, I5, I6, I7, O>, Functions.Arity7<I1, I2, I3, I4, I5, I6, I7, O>> adaptor;
216-
@OpDependency(name = "engine.adapt", adaptable = false)
217+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
217218
Function<Functions.Arity7<I1, I2, I3, I4, I5, I6, I7, O>, Functions.Arity7<Iterable<I1>, Iterable<I2>, Iterable<I3>, Iterable<I4>, Iterable<I5>, Iterable<I6>, Iterable<I7>, Iterable<O>>> lifter;
218219

219220
/**
@@ -237,9 +238,9 @@ public static class Computer8ToFunction8AndLiftViaSource<I1, I2, I3, I4, I5, I6,
237238
Op
238239
{
239240

240-
@OpDependency(name = "engine.adapt", adaptable = false)
241+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
241242
Function<Computers.Arity8<I1, I2, I3, I4, I5, I6, I7, I8, O>, Functions.Arity8<I1, I2, I3, I4, I5, I6, I7, I8, O>> adaptor;
242-
@OpDependency(name = "engine.adapt", adaptable = false)
243+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
243244
Function<Functions.Arity8<I1, I2, I3, I4, I5, I6, I7, I8, O>, Functions.Arity8<Iterable<I1>, Iterable<I2>, Iterable<I3>, Iterable<I4>, Iterable<I5>, Iterable<I6>, Iterable<I7>, Iterable<I8>, Iterable<O>>> lifter;
244245

245246
/**
@@ -263,9 +264,9 @@ public static class Computer9ToFunction9AndLiftViaSource<I1, I2, I3, I4, I5, I6,
263264
Op
264265
{
265266

266-
@OpDependency(name = "engine.adapt", adaptable = false)
267+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
267268
Function<Computers.Arity9<I1, I2, I3, I4, I5, I6, I7, I8, I9, O>, Functions.Arity9<I1, I2, I3, I4, I5, I6, I7, I8, I9, O>> adaptor;
268-
@OpDependency(name = "engine.adapt", adaptable = false)
269+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
269270
Function<Functions.Arity9<I1, I2, I3, I4, I5, I6, I7, I8, I9, O>, Functions.Arity9<Iterable<I1>, Iterable<I2>, Iterable<I3>, Iterable<I4>, Iterable<I5>, Iterable<I6>, Iterable<I7>, Iterable<I8>, Iterable<I9>, Iterable<O>>> lifter;
270271

271272
/**
@@ -289,9 +290,9 @@ public static class Computer10ToFunction10AndLiftViaSource<I1, I2, I3, I4, I5, I
289290
Op
290291
{
291292

292-
@OpDependency(name = "engine.adapt", adaptable = false)
293+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
293294
Function<Computers.Arity10<I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, O>, Functions.Arity10<I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, O>> adaptor;
294-
@OpDependency(name = "engine.adapt", adaptable = false)
295+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
295296
Function<Functions.Arity10<I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, O>, Functions.Arity10<Iterable<I1>, Iterable<I2>, Iterable<I3>, Iterable<I4>, Iterable<I5>, Iterable<I6>, Iterable<I7>, Iterable<I8>, Iterable<I9>, Iterable<I10>, Iterable<O>>> lifter;
296297

297298
/**
@@ -316,9 +317,9 @@ public static class Computer11ToFunction11AndLiftViaSource<I1, I2, I3, I4, I5, I
316317
Op
317318
{
318319

319-
@OpDependency(name = "engine.adapt", adaptable = false)
320+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
320321
Function<Computers.Arity11<I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, O>, Functions.Arity11<I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, O>> adaptor;
321-
@OpDependency(name = "engine.adapt", adaptable = false)
322+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
322323
Function<Functions.Arity11<I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, O>, Functions.Arity11<Iterable<I1>, Iterable<I2>, Iterable<I3>, Iterable<I4>, Iterable<I5>, Iterable<I6>, Iterable<I7>, Iterable<I8>, Iterable<I9>, Iterable<I10>, Iterable<I11>, Iterable<O>>> lifter;
323324

324325
/**
@@ -343,9 +344,9 @@ public static class Computer12ToFunction12AndLiftViaSource<I1, I2, I3, I4, I5, I
343344
Op
344345
{
345346

346-
@OpDependency(name = "engine.adapt", adaptable = false)
347+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
347348
Function<Computers.Arity12<I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, O>, Functions.Arity12<I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, O>> adaptor;
348-
@OpDependency(name = "engine.adapt", adaptable = false)
349+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
349350
Function<Functions.Arity12<I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, O>, Functions.Arity12<Iterable<I1>, Iterable<I2>, Iterable<I3>, Iterable<I4>, Iterable<I5>, Iterable<I6>, Iterable<I7>, Iterable<I8>, Iterable<I9>, Iterable<I10>, Iterable<I11>, Iterable<I12>, Iterable<O>>> lifter;
350351

351352
/**
@@ -370,9 +371,9 @@ public static class Computer13ToFunction13AndLiftViaSource<I1, I2, I3, I4, I5, I
370371
Op
371372
{
372373

373-
@OpDependency(name = "engine.adapt", adaptable = false)
374+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
374375
Function<Computers.Arity13<I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, O>, Functions.Arity13<I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, O>> adaptor;
375-
@OpDependency(name = "engine.adapt", adaptable = false)
376+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
376377
Function<Functions.Arity13<I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, O>, Functions.Arity13<Iterable<I1>, Iterable<I2>, Iterable<I3>, Iterable<I4>, Iterable<I5>, Iterable<I6>, Iterable<I7>, Iterable<I8>, Iterable<I9>, Iterable<I10>, Iterable<I11>, Iterable<I12>, Iterable<I13>, Iterable<O>>> lifter;
377378

378379
/**
@@ -397,9 +398,9 @@ public static class Computer14ToFunction14AndLiftViaSource<I1, I2, I3, I4, I5, I
397398
Op
398399
{
399400

400-
@OpDependency(name = "engine.adapt", adaptable = false)
401+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
401402
Function<Computers.Arity14<I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, O>, Functions.Arity14<I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, O>> adaptor;
402-
@OpDependency(name = "engine.adapt", adaptable = false)
403+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
403404
Function<Functions.Arity14<I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, O>, Functions.Arity14<Iterable<I1>, Iterable<I2>, Iterable<I3>, Iterable<I4>, Iterable<I5>, Iterable<I6>, Iterable<I7>, Iterable<I8>, Iterable<I9>, Iterable<I10>, Iterable<I11>, Iterable<I12>, Iterable<I13>, Iterable<I14>, Iterable<O>>> lifter;
404405

405406
/**
@@ -424,9 +425,9 @@ public static class Computer15ToFunction15AndLiftViaSource<I1, I2, I3, I4, I5, I
424425
Op
425426
{
426427

427-
@OpDependency(name = "engine.adapt", adaptable = false)
428+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
428429
Function<Computers.Arity15<I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, O>, Functions.Arity15<I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, O>> adaptor;
429-
@OpDependency(name = "engine.adapt", adaptable = false)
430+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
430431
Function<Functions.Arity15<I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, O>, Functions.Arity15<Iterable<I1>, Iterable<I2>, Iterable<I3>, Iterable<I4>, Iterable<I5>, Iterable<I6>, Iterable<I7>, Iterable<I8>, Iterable<I9>, Iterable<I10>, Iterable<I11>, Iterable<I12>, Iterable<I13>, Iterable<I14>, Iterable<I15>, Iterable<O>>> lifter;
431432

432433
/**
@@ -451,9 +452,9 @@ public static class Computer16ToFunction16AndLiftViaSource<I1, I2, I3, I4, I5, I
451452
Op
452453
{
453454

454-
@OpDependency(name = "engine.adapt", adaptable = false)
455+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
455456
Function<Computers.Arity16<I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, I16, O>, Functions.Arity16<I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, I16, O>> adaptor;
456-
@OpDependency(name = "engine.adapt", adaptable = false)
457+
@OpDependency(name = "engine.adapt", hints = { Adaptation.FORBIDDEN })
457458
Function<Functions.Arity16<I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, I16, O>, Functions.Arity16<Iterable<I1>, Iterable<I2>, Iterable<I3>, Iterable<I4>, Iterable<I5>, Iterable<I6>, Iterable<I7>, Iterable<I8>, Iterable<I9>, Iterable<I10>, Iterable<I11>, Iterable<I12>, Iterable<I13>, Iterable<I14>, Iterable<I15>, Iterable<I16>, Iterable<O>>> lifter;
458459

459460
/**

0 commit comments

Comments
 (0)