-
Notifications
You must be signed in to change notification settings - Fork 273
Expand file tree
/
Copy pathIntervalManager.java
More file actions
53 lines (44 loc) · 1.46 KB
/
Copy pathIntervalManager.java
File metadata and controls
53 lines (44 loc) · 1.46 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
package subway.controller;
import subway.controller.constants.SelectOptionConstants;
import subway.viewer.IntervalInputViewer;
import java.util.Scanner;
public class IntervalManager {
private Scanner scanner;
IntervalManager(Scanner scanner) {
this.scanner = scanner;
}
public void processSector() {
boolean happenedError;
do {
IntervalInputViewer.askMainScreen();
happenedError = checkSectorStatus();
} while (happenedError);
}
private boolean checkSectorStatus() {
try {
String unit = scanner.nextLine();
isValidUnit(unit);
goUnit(scanner, unit);
return false;
} catch (Exception error) {
return true;
}
}
private void isValidUnit(String unit) {
if (!SelectOptionConstants.INTERVAL_OPTION.contains(unit)) {
System.out.println();
System.out.println(SelectOptionConstants.OPTION_ERROR);
throw new IllegalArgumentException(SelectOptionConstants.OPTION_ERROR);
}
}
private void goUnit(Scanner scanner, String unit) {
for (IntervalSectors intervalSector : IntervalSectors.values()) {
filterUnit(intervalSector, scanner, unit);
}
}
private void filterUnit(IntervalSectors candidate, Scanner scanner, String unit) {
if (candidate.getOption().equals(unit)) {
candidate.processUnit(scanner);
}
}
}