@@ -17,22 +17,12 @@ public List<StudyCafePass> readStudyCafePasses() {
1717 try {
1818 List <String > lines = Files .readAllLines (Paths .get ("src/main/resources/cleancode/studycafe/pass-list.csv" ));
1919 List <StudyCafePass > studyCafePasses = new ArrayList <>();
20- for (String line : lines ) {
21- String [] values = line .split ("," );
22- StudyCafePassType studyCafePassType = StudyCafePassType .valueOf (values [0 ]);
23- int duration = Integer .parseInt (values [1 ]);
24- int price = Integer .parseInt (values [2 ]);
25- double discountRate = Double .parseDouble (values [3 ]);
26- var pass = switch (studyCafePassType ) {
27- case HOURLY -> StudyCafePass .hourlyOf (duration , price , discountRate );
28- case WEEKLY -> StudyCafePass .weeklyOf (duration , price , discountRate );
29- case FIXED ->
30- StudyCafePass .fixedOf (duration , price , discountRate , lockerPasses .stream ().filter ((lockerPass -> lockerPass .isCompatible (duration ))).findFirst ().orElse (null ));
31- };
32- studyCafePasses .add (pass );
33- }
34-
35- return studyCafePasses ;
20+ return lines .stream ().map (line -> line .split ("," ))
21+ .map (values -> {
22+ int duration = Integer .parseInt (values [1 ]);
23+ StudyCafeLockerPass locker = lockerPasses .stream ().filter ((lockerPass -> lockerPass .isCompatible (duration ))).findFirst ().orElse (null );
24+ return StudyCafePass .of (values , locker );
25+ }).toList ();
3626 } catch (IOException e ) {
3727 throw new RuntimeException ("파일을 읽는데 실패했습니다." , e );
3828 }
@@ -41,17 +31,8 @@ public List<StudyCafePass> readStudyCafePasses() {
4131 private List <StudyCafeLockerPass > readLockerPasses () {
4232 try {
4333 List <String > lines = Files .readAllLines (Paths .get ("src/main/resources/cleancode/studycafe/locker.csv" ));
44- List <StudyCafeLockerPass > lockerPasses = new ArrayList <>();
45- for (String line : lines ) {
46- String [] values = line .split ("," );
47- int duration = Integer .parseInt (values [1 ]);
48- int price = Integer .parseInt (values [2 ]);
49-
50- StudyCafeLockerPass lockerPass = StudyCafeLockerPass .of (duration , price );
51- lockerPasses .add (lockerPass );
52- }
53-
54- return lockerPasses ;
34+ return lines .stream ().map (line -> line .split ("," ))
35+ .map (StudyCafeLockerPass ::fromValues ).toList ();
5536 } catch (IOException e ) {
5637 throw new RuntimeException ("파일을 읽는데 실패했습니다." , e );
5738 }
0 commit comments