Producer.java
package ch.hslu.exercises.sw08.ex4;
import java.util.List;
import java.util.concurrent.Callable;
/**
* Produzent, der eine maximale Anzahl Werte produziert und diese in eine Queue
* speichert.
*/
public final class Producer implements Callable<Long> {
private final List<Integer> list;
private final int maxRange;
/**
* Erzeugt einen Produzent, der eine bestimmte Anzahl Integer-Werte
* produziert.
*
* @param list Queue zum Speichern der Integer-Werte.
* @param max Anzahl Integer-Werte.
*/
public Producer(final List<Integer> list, final int max) {
this.list = list;
this.maxRange = max;
}
/**
* Liefert die Summe aller zusammengezählter Integer Werte.
*
* @return Summe.
* @throws java.lang.Exception falls Ausnahmen passieren.
*/
@Override
public Long call() throws Exception {
long sum = 0;
for (int i = 1; i <= maxRange; i++) {
sum += i;
list.add(i);
}
return sum;
}
}