@@ -25,13 +25,13 @@ public CakeBakingServiceImpl() {
2525
2626 @ Override
2727 public void bakeNewCake (CakeInfo cakeInfo ) throws CakeBakingException {
28- List <CakeToppingInfo > allToppings = getAllToppings ();
28+ List <CakeToppingInfo > allToppings = getAvailableToppings ();
2929 List <CakeToppingInfo > matchingToppings = allToppings .stream ()
3030 .filter ((t ) -> t .name .equals (cakeInfo .cakeToppingInfo .name )).collect (Collectors .toList ());
3131 if (matchingToppings .isEmpty ()) {
3232 throw new CakeBakingException (String .format ("Topping %s is not available" , cakeInfo .cakeToppingInfo .name ));
3333 }
34- List <CakeLayer > allLayers = getAllLayerEntities ();
34+ List <CakeLayer > allLayers = getAvailableLayerEntities ();
3535 Set <CakeLayer > foundLayers = new HashSet <>();
3636 for (CakeLayerInfo info : cakeInfo .cakeLayerInfos ) {
3737 Optional <CakeLayer > found = allLayers .stream ().filter ((layer ) -> layer .getName ().equals (info .name )).findFirst ();
@@ -69,46 +69,56 @@ public void saveNewLayer(CakeLayerInfo layerInfo) {
6969 bean .save (new CakeLayer (layerInfo .name , layerInfo .calories ));
7070 }
7171
72- private List <CakeTopping > getAllToppingEntities () {
72+ private List <CakeTopping > getAvailableToppingEntities () {
7373 CakeToppingDao bean = context .getBean (CakeToppingDao .class );
7474 List <CakeTopping > result = new ArrayList <>();
7575 Iterator <CakeTopping > iterator = bean .findAll ().iterator ();
7676 while (iterator .hasNext ()) {
77- result .add (iterator .next ());
77+ CakeTopping topping = iterator .next ();
78+ if (topping .getCake () == null ) {
79+ result .add (topping );
80+ }
7881 }
7982 return result ;
8083 }
8184
8285 @ Override
83- public List <CakeToppingInfo > getAllToppings () {
86+ public List <CakeToppingInfo > getAvailableToppings () {
8487 CakeToppingDao bean = context .getBean (CakeToppingDao .class );
8588 List <CakeToppingInfo > result = new ArrayList <>();
8689 Iterator <CakeTopping > iterator = bean .findAll ().iterator ();
8790 while (iterator .hasNext ()) {
8891 CakeTopping next = iterator .next ();
89- result .add (new CakeToppingInfo (next .getId (), next .getName (), next .getCalories ()));
92+ if (next .getCake () == null ) {
93+ result .add (new CakeToppingInfo (next .getId (), next .getName (), next .getCalories ()));
94+ }
9095 }
9196 return result ;
9297 }
9398
94- private List <CakeLayer > getAllLayerEntities () {
99+ private List <CakeLayer > getAvailableLayerEntities () {
95100 CakeLayerDao bean = context .getBean (CakeLayerDao .class );
96101 List <CakeLayer > result = new ArrayList <>();
97102 Iterator <CakeLayer > iterator = bean .findAll ().iterator ();
98103 while (iterator .hasNext ()) {
99- result .add (iterator .next ());
104+ CakeLayer next = iterator .next ();
105+ if (next .getCake () == null ) {
106+ result .add (next );
107+ }
100108 }
101109 return result ;
102110 }
103111
104112 @ Override
105- public List <CakeLayerInfo > getAllLayers () {
113+ public List <CakeLayerInfo > getAvailableLayers () {
106114 CakeLayerDao bean = context .getBean (CakeLayerDao .class );
107115 List <CakeLayerInfo > result = new ArrayList <>();
108116 Iterator <CakeLayer > iterator = bean .findAll ().iterator ();
109117 while (iterator .hasNext ()) {
110118 CakeLayer next = iterator .next ();
111- result .add (new CakeLayerInfo (next .getId (), next .getName (), next .getCalories ()));
119+ if (next .getCake () == null ) {
120+ result .add (new CakeLayerInfo (next .getId (), next .getName (), next .getCalories ()));
121+ }
112122 }
113123 return result ;
114124 }
0 commit comments