1 package saccubus.worker;
3 import java.util.concurrent.Callable;
6 * 途中経過を報告できるCallableです.
10 public abstract class Worker<T, V> implements Callable<T> {
11 private static int serialNumber = 0;
14 private final WorkerListener<V> listener;
16 public Worker(WorkerListener<V> listener) {
17 this.id = ++serialNumber;
18 this.listener = listener;
21 public final int getId() {
25 protected final void publish(V value) {
26 if (listener != null) {
27 listener.process(value);
31 public interface WorkerListener<V> {
33 void process(V progress);