Skip to content

Commit 1a1e490

Browse files
committed
Change output of Function adapters to List
This allows adaptors to adapt Function<I, O> -> Function<List<I>, List<O>> without creating another Op
1 parent 36d26ba commit 1a1e490

5 files changed

Lines changed: 135 additions & 53 deletions

File tree

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

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434

3535
package org.scijava.ops.adapt.complexLift;
3636

37+
import java.util.List;
3738
import java.util.function.Function;
3839

3940
import org.scijava.core.Priority;
@@ -58,15 +59,15 @@ public class ComputersToFunctionsAndLift {
5859
@Parameter(key = "fromOp")
5960
@Parameter(key = "toOp")
6061
public static class Computer1ToFunction1AndLiftViaSource<I, O>
61-
implements Function<Computers.Arity1<I, O>, Function<Iterable<I>, Iterable<O>>> {
62+
implements Function<Computers.Arity1<I, O>, Function<Iterable<I>, List<O>>> {
6263

6364
@OpDependency(name = "create", adaptable = false)
6465
Producer<O> creator;
6566
@OpDependency(name = "adapt", adaptable = false)
66-
Function<Function<I, O>, Function<Iterable<I>, Iterable<O>>> lifter;
67+
Function<Function<I, O>, Function<Iterable<I>, List<O>>> lifter;
6768

6869
@Override
69-
public Function<Iterable<I>, Iterable<O>> apply(Computers.Arity1<I, O> computer) {
70+
public Function<Iterable<I>, List<O>> apply(Computers.Arity1<I, O> computer) {
7071
Function<I, O> adapted = (in) -> {
7172
O out = creator.create();
7273
computer.compute(in, out);
@@ -81,15 +82,15 @@ public Function<Iterable<I>, Iterable<O>> apply(Computers.Arity1<I, O> computer)
8182
@Parameter(key = "fromOp")
8283
@Parameter(key = "toOp")
8384
public static class Computer1ToFunction1AndLiftViaFunction<I, O>
84-
implements Function<Computers.Arity1<I, O>, Function<Iterable<I>, Iterable<O>>> {
85+
implements Function<Computers.Arity1<I, O>, Function<Iterable<I>, List<O>>> {
8586

8687
@OpDependency(name = "create", adaptable = false)
8788
Function<I, O> creator;
8889
@OpDependency(name = "adapt", adaptable = false)
89-
Function<Function<I, O>, Function<Iterable<I>, Iterable<O>>> lifter;
90+
Function<Function<I, O>, Function<Iterable<I>, List<O>>> lifter;
9091

9192
@Override
92-
public Function<Iterable<I>, Iterable<O>> apply(Computers.Arity1<I, O> computer) {
93+
public Function<Iterable<I>, List<O>> apply(Computers.Arity1<I, O> computer) {
9394
Function<I, O> adapted = (in) -> {
9495
O out = creator.apply(in);
9596
computer.compute(in, out);

0 commit comments

Comments
 (0)