View Javadoc
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  }