Consumer.java

package ch.hslu.exercises.sw08.ex4;

import java.util.List;
import java.util.concurrent.Callable;

/**
 * Konsument, der soviele Integer Werte aus einer Liste liest, wie er nur kann.
 */
public final class Consumer implements Callable<Long> {

    private final List<Integer> list;

    /**
     * Erzeugt einen Konsumenten, der soviel Integer-Werte ausliest, wie er nur
     * kann.
     *
     * @param list Queue zum Lesen der Integer-Werte.
     */
    public Consumer(final List<Integer> list) {
        this.list = list;
    }

    /**
     * Liefert die Summe aller ausgelesener Werte.
     *
     * @return Summe.
     * @throws java.lang.Exception falls Ausnahmen passieren.
     */
    @Override
    public Long call() throws Exception {
        long sum = 0;
        for (Integer integer : list) {
            sum += integer;
        }
        return sum;
    }
}