CountTask.java

package ch.hslu.exercises.sw08.ex2;

import java.util.concurrent.Callable;

/**
 * Eine Zähl-Aufgabe mit der man Counters testen kann.
 */
public class CountTask implements Callable<Integer> {

    private final Counter counter;
    private final int counts;

    /**
     * Erzeugt eine Zähl-Aufgabe.
     *
     * @param counter zu testender Counter.
     * @param counts  Anzahl Zähldruchläufe.
     */
    public CountTask(Counter counter, int counts) {
        this.counter = counter;
        this.counts = counts;
    }

    @Override
    public Integer call() {
        for (int i = 0; i < counts; i++) {
            counter.increment();
        }
        for (int i = 0; i < counts; i++) {
            counter.decrement();
        }
        return counter.get();
    }
}