1 package ini
.trakem2
.parallel
;
3 import java
.util
.concurrent
.Callable
;
4 import java
.util
.concurrent
.atomic
.AtomicInteger
;
6 public abstract class CountingTaskFactory
<I
,O
> extends TaskFactory
<I
,O
> {
8 private AtomicInteger count
= new AtomicInteger(0);
10 /** Generates a Callable task for an ExecutorService to process @param input.
11 * Unless overriden, will simply call process(input);
14 public Callable
<O
> create(final I input
) {
15 return new Callable
<O
>() {
17 return process(input
, count
.getAndIncrement());
22 /** The actual processing on the given @param input;
23 * override to define a task to be performed over @param input.
24 * By default does nothing and returns null. */
25 public O
process(final I input
, final int index
) { return null; }