Skip to content

Commit 773832a

Browse files
committed
fix: Refactor Layered Architecture pattern iluwatar#2936
1 parent 7460e46 commit 773832a

File tree

4 files changed

+22
-18
lines changed

4 files changed

+22
-18
lines changed

layers/src/main/java/com/iluwatar/layers/Runner.java

+10
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@
3232
import lombok.extern.slf4j.Slf4j;
3333
import org.springframework.beans.factory.annotation.Autowired;
3434
import org.springframework.boot.CommandLineRunner;
35+
import org.springframework.boot.SpringApplication;
36+
import org.springframework.boot.autoconfigure.domain.EntityScan;
37+
import org.springframework.context.annotation.ComponentScan;
38+
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
3539
import org.springframework.stereotype.Component;
3640
import service.CakeBakingService;
3741
import view.CakeViewImpl;
@@ -44,6 +48,8 @@
4448
* It uses the CakeBakingService to save new layers and toppings and to bake new cakes.
4549
* It also handles exceptions that might occur during the cake baking process.</p>
4650
*/
51+
@EntityScan(basePackages = "entity")
52+
@ComponentScan(basePackages = {"com.iluwatar.layers", "service", "dto", "exception", "view", "dao"})
4753
@Component
4854
@Slf4j
4955
public class Runner implements CommandLineRunner {
@@ -64,6 +70,10 @@ public void run(String... args) {
6470
cakeView.render();
6571
}
6672

73+
public static void main(String[] args) {
74+
SpringApplication.run(Runner.class, args);
75+
}
76+
6777
/**
6878
* Initializes the example data.
6979
*/

layers/src/main/java/dto/CakeInfo.java

+4-5
Original file line numberDiff line numberDiff line change
@@ -26,22 +26,21 @@
2626
package dto;
2727

2828
import java.util.List;
29-
import java.util.Optional;
3029

3130
/**
3231
* DTO for cakes.
3332
*/
3433
public class CakeInfo {
3534

36-
public final Optional<Long> id;
35+
public final Long id;
3736
public final CakeToppingInfo cakeToppingInfo;
3837
public final List<CakeLayerInfo> cakeLayerInfos;
3938

4039
/**
4140
* Constructor.
4241
*/
4342
public CakeInfo(Long id, CakeToppingInfo cakeToppingInfo, List<CakeLayerInfo> cakeLayerInfos) {
44-
this.id = Optional.of(id);
43+
this.id = id;
4544
this.cakeToppingInfo = cakeToppingInfo;
4645
this.cakeLayerInfos = cakeLayerInfos;
4746
}
@@ -50,7 +49,7 @@ public CakeInfo(Long id, CakeToppingInfo cakeToppingInfo, List<CakeLayerInfo> ca
5049
* Constructor.
5150
*/
5251
public CakeInfo(CakeToppingInfo cakeToppingInfo, List<CakeLayerInfo> cakeLayerInfos) {
53-
this.id = Optional.empty();
52+
this.id = null;
5453
this.cakeToppingInfo = cakeToppingInfo;
5554
this.cakeLayerInfos = cakeLayerInfos;
5655
}
@@ -66,7 +65,7 @@ public int calculateTotalCalories() {
6665

6766
@Override
6867
public String toString() {
69-
return String.format("CakeInfo id=%d topping=%s layers=%s totalCalories=%d", id.orElse(-1L),
68+
return String.format("CakeInfo id=%d topping=%s layers=%s totalCalories=%d", id,
7069
cakeToppingInfo, cakeLayerInfos, calculateTotalCalories());
7170
}
7271
}

layers/src/main/java/dto/CakeLayerInfo.java

+4-6
Original file line numberDiff line numberDiff line change
@@ -25,22 +25,20 @@
2525

2626
package dto;
2727

28-
import java.util.Optional;
29-
3028
/**
3129
* DTO for cake layers.
3230
*/
3331
public class CakeLayerInfo {
3432

35-
public final Optional<Long> id;
33+
public final Long id;
3634
public final String name;
3735
public final int calories;
3836

3937
/**
4038
* Constructor.
4139
*/
4240
public CakeLayerInfo(Long id, String name, int calories) {
43-
this.id = Optional.of(id);
41+
this.id = id;
4442
this.name = name;
4543
this.calories = calories;
4644
}
@@ -49,13 +47,13 @@ public CakeLayerInfo(Long id, String name, int calories) {
4947
* Constructor.
5048
*/
5149
public CakeLayerInfo(String name, int calories) {
52-
this.id = Optional.empty();
50+
this.id = null;
5351
this.name = name;
5452
this.calories = calories;
5553
}
5654

5755
@Override
5856
public String toString() {
59-
return String.format("CakeLayerInfo id=%d name=%s calories=%d", id.orElse(-1L), name, calories);
57+
return String.format("CakeLayerInfo id=%d name=%s calories=%d", id, name, calories);
6058
}
6159
}

layers/src/main/java/dto/CakeToppingInfo.java

+4-7
Original file line numberDiff line numberDiff line change
@@ -25,23 +25,20 @@
2525

2626
package dto;
2727

28-
29-
import java.util.Optional;
30-
3128
/**
3229
* DTO for cake toppings.
3330
*/
3431
public class CakeToppingInfo {
3532

36-
public final Optional<Long> id;
33+
public final Long id;
3734
public final String name;
3835
public final int calories;
3936

4037
/**
4138
* Constructor.
4239
*/
4340
public CakeToppingInfo(Long id, String name, int calories) {
44-
this.id = Optional.of(id);
41+
this.id = id;
4542
this.name = name;
4643
this.calories = calories;
4744
}
@@ -50,14 +47,14 @@ public CakeToppingInfo(Long id, String name, int calories) {
5047
* Constructor.
5148
*/
5249
public CakeToppingInfo(String name, int calories) {
53-
this.id = Optional.empty();
50+
this.id = null;
5451
this.name = name;
5552
this.calories = calories;
5653
}
5754

5855
@Override
5956
public String toString() {
60-
return String.format("CakeToppingInfo id=%d name=%s calories=%d", id.orElse(-1L), name,
57+
return String.format("CakeToppingInfo id=%d name=%s calories=%d", id, name,
6158
calories);
6259
}
6360
}

0 commit comments

Comments
 (0)