package ini.trakem2.parallel; import java.util.concurrent.Callable; public abstract class TaskFactory<I,O> { /** Generates a Callable task for an ExecutorService to process @param input. * Unless overriden, will simply call process(input); */ public Callable<O> create(final I input) { return new Callable<O>() { public O call() { return process(input); } }; } /** The actual processing on the given @param input; * override to define a task to be performed over @param input. * By default does nothing and returns null. */ public O process(final I input) { return null; } }