-
Notifications
You must be signed in to change notification settings - Fork 274
Expand file tree
/
Copy pathEntireSystem.java
More file actions
52 lines (43 loc) · 1.47 KB
/
EntireSystem.java
File metadata and controls
52 lines (43 loc) · 1.47 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
package subway.controller;
import subway.controller.constants.QuestionNumber;
import subway.controller.constants.SelectOptionConstants;
import subway.viewer.SystemInputViewer;
import java.util.Scanner;
public class EntireSystem {
private Scanner scanner;
public EntireSystem(Scanner scanner) {
this.scanner = scanner;
}
public void runProgram() {
String sector;
do {
SystemInputViewer.askMainScreen();
sector = scanner.nextLine();
isValidSector(sector);
goSector(sector);
} while (!sector.equals(QuestionNumber.TERMINATE.getOption()));
}
private void isValidSector(String sector) {
try {
isContainSectorList(sector);
} catch (Exception error) {
System.out.println();
System.out.println(SelectOptionConstants.OPTION_ERROR);
}
}
private void isContainSectorList(String sector) {
if (!SelectOptionConstants.ENTIRE_SECTOR.contains(sector)) {
throw new IllegalArgumentException(SelectOptionConstants.OPTION_ERROR);
}
}
private void goSector(String sector) {
for (EntireSet entireOption : EntireSet.values()) {
filterSector(entireOption, scanner, sector);
}
}
private void filterSector(EntireSet candidate, Scanner scanner, String option) {
if (candidate.getOption().equals(option)) {
candidate.processSet(scanner);
}
}
}