From d973d83c3dc46680ab08356a15d72e27d3898616 Mon Sep 17 00:00:00 2001
From: Hendrik Jungnitsch <hendrik.jungnitsch@gedoplan.de>
Date: Di, 04 Okt 2022 14:38:22 +0200
Subject: [PATCH] exercise06

---
 src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailsProducer.java |   32 ++++++++++++++++++++++++++++++++
 1 files changed, 32 insertions(+), 0 deletions(-)

diff --git a/src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailsProducer.java b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailsProducer.java
index 3ceba94..9a50879 100644
--- a/src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailsProducer.java
+++ b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailsProducer.java
@@ -2,21 +2,53 @@
 
 import de.gedoplan.seminar.sbt.di.exercise.domain.Cocktail;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
 import org.springframework.web.context.annotation.RequestScope;
 
+import javax.annotation.PostConstruct;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
+@RequestScope
 @Configuration
 public class CocktailsProducer {
 
     @Autowired
     private CocktailService cocktailService;
 
+    private List<Cocktail> cocktailsAlcoholic;
+    private List<Cocktail> cocktailsNonAlcoholic;
+
+    @PostConstruct
+    private void init() {
+        Map<Boolean,List<Cocktail>> cocktails = cocktailService.findAll().stream()
+                .collect(Collectors.groupingBy(Cocktail::isAlcoholic));
+        cocktailsAlcoholic = cocktails.get(true);
+        cocktailsNonAlcoholic = cocktails.get(false);
+    }
+
+    @Primary
     @RequestScope
     @Bean
     protected List<Cocktail> getCocktails() {
         return cocktailService.findAll();
     }
+
+    @Qualifier("alcoholic")
+    @RequestScope
+    @Bean
+    protected List<Cocktail> getCocktailsAlcoholic() {
+        return cocktailsAlcoholic;
+    }
+
+    @Qualifier("non-alcoholic")
+    @RequestScope
+    @Bean
+    protected List<Cocktail> getCocktailsNonAlcoholic() {
+        return cocktailsNonAlcoholic;
+    }
 }

--
Gitblit v1.7.1