-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Expand file tree
/
Copy pathInputController.java
More file actions
70 lines (56 loc) · 2.28 KB
/
Copy pathInputController.java
File metadata and controls
70 lines (56 loc) · 2.28 KB
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package lotto.controller;
import java.util.List;
import lotto.util.NumberConverter;
import lotto.util.StringParser;
import lotto.validator.NumberValidator;
import lotto.view.InputView;
public class InputController {
private final InputView inputView;
private final NumberConverter numberConverter;
private final StringParser stringParser;
private final NumberValidator numberValidator;
public InputController(InputView inputView, NumberConverter numberConverter, StringParser stringParser, NumberValidator numberValidator) {
this.inputView = inputView;
this.numberConverter = numberConverter;
this.stringParser = stringParser;
this.numberValidator = numberValidator;
}
public Integer getMoney() {
String input = inputView.getMoney();
try {
numberValidator.isNumber(input);
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
getMoney();
}
return numberConverter.convertToInteger(input);
}
public List<Integer> getWinningNumbers() {
List<Integer> winningNumbers;
List<String> input = stringParser.parse(inputView.getWinningNumber());
try {
numberValidator.isNumber(input);
winningNumbers = numberConverter.convertToInteger(input);
numberValidator.checkCountOfNumber(winningNumbers);
numberValidator.isDuplicateNumber(winningNumbers);
numberValidator.checkInRange(winningNumbers);
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
getWinningNumbers();
}
return numberConverter.convertToInteger(input);
}
public Integer getBonusNumber(List<Integer> winningNumbers) {
String input = inputView.getBonusNumber();
try {
numberValidator.isNumber(input);
Integer bonusNumber = numberConverter.convertToInteger(input);
numberValidator.checkInRange(bonusNumber);
numberValidator.isDuplicateNumber(winningNumbers, bonusNumber);
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
getBonusNumber(winningNumbers);
}
return numberConverter.convertToInteger(input);
}
}