1 package ch.hslu.exercises.sw08.ex4;
2
3 import java.util.List;
4 import java.util.concurrent.Callable;
5
6 /**
7 * Produzent, der eine maximale Anzahl Werte produziert und diese in eine Queue
8 * speichert.
9 */
10 public final class Producer implements Callable<Long> {
11
12 private final List<Integer> list;
13 private final int maxRange;
14
15 /**
16 * Erzeugt einen Produzent, der eine bestimmte Anzahl Integer-Werte
17 * produziert.
18 *
19 * @param list Queue zum Speichern der Integer-Werte.
20 * @param max Anzahl Integer-Werte.
21 */
22 public Producer(final List<Integer> list, final int max) {
23 this.list = list;
24 this.maxRange = max;
25 }
26
27 /**
28 * Liefert die Summe aller zusammengezählter Integer Werte.
29 *
30 * @return Summe.
31 * @throws java.lang.Exception falls Ausnahmen passieren.
32 */
33 @Override
34 public Long call() throws Exception {
35 long sum = 0;
36 for (int i = 1; i <= maxRange; i++) {
37 sum += i;
38 list.add(i);
39 }
40 return sum;
41 }
42 }