Hendrik Jungnitsch
2022-09-30 20bc6bff6fe3c06c24c9a35bdf7bb0d894ee6c85
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package de.gedoplan.seminar.sbt.di.exercise.service;
 
import de.gedoplan.seminar.sbt.di.exercise.domain.CocktailOrder;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.event.EventListener;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
 
import java.util.concurrent.atomic.AtomicInteger;
 
@Component
public class CocktailCounter {
  private AtomicInteger count = new AtomicInteger();
 
  @Autowired
  Logger logger;
 
  @EventListener
  @Async
  public void countCocktail(CocktailOrder cocktailOrder) {
    int cocktailCount = cocktailOrder
        .getOrderDetails()
        .values()
        .stream()
        .mapToInt(Integer::intValue)
        .sum();
 
    if (this.logger.isDebugEnabled()) {
      this.logger.info("Cocktail count ordered: " + cocktailCount);
    }
 
    int currentCount = this.count.addAndGet(cocktailCount);
    this.logger.info("Cocktail count total: " + currentCount);
  }
 
}