-
Notifications
You must be signed in to change notification settings - Fork 151
Expand file tree
/
Copy pathCalcManager.java
More file actions
57 lines (47 loc) · 1.63 KB
/
CalcManager.java
File metadata and controls
57 lines (47 loc) · 1.63 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
package calcproject.service;
import java.util.List;
import calcproject.engine.Calculator;
import calcproject.models.CalcResultRecordModel;
import calcproject.repository.CalcResultRecordRepository;
import calcproject.view.CalcInput;
import calcproject.view.CalcOutput;
import calcproject.view.Command;
public class CalcManager {
private final CalcResultRecordRepository calcResultRecordRepository;
private final CalcInput calcInput;
private final CalcOutput calcOutput;
private final Calculator calculator;
public CalcManager(CalcResultRecordRepository calcResultRecordRepository, CalcInput calcInput,
CalcOutput calcOutput,
Calculator calculator) {
this.calcResultRecordRepository = calcResultRecordRepository;
this.calcInput = calcInput;
this.calcOutput = calcOutput;
this.calculator = calculator;
}
public void startCalcManager() {
Command cmd = null;
do {
cmd = calcInput.getCmd();
executeCmd(cmd);
} while (cmd != Command.EXIT);
}
private void executeCmd(Command cmd) {
switch (cmd) {
case INQUIRY:
List<CalcResultRecordModel> calcResultRecordModels = calcResultRecordRepository.loadCalcResultRecords();
calcOutput.showRecord(calcResultRecordModels);
break;
case CALCULATE:
String expression = calcInput.getExpression();
double calcResult = calculator.calculateExpression(expression);
CalcResultRecordModel calcResultRecordModel = new CalcResultRecordModel(expression, calcResult);
calcResultRecordRepository.saveCalcResultRecord(calcResultRecordModel);
calcOutput.showCalcResult(calcResultRecordModel);
break;
default:
calcOutput.showExitMessage();
break;
}
}
}