-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDynamicHelper.java
More file actions
39 lines (30 loc) · 1.07 KB
/
DynamicHelper.java
File metadata and controls
39 lines (30 loc) · 1.07 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
package node;
public class DynamicHelper {
private MathProcessing[] handlers;
public DynamicHelper(MathProcessing[] handlers) {
this.handlers = handlers;
}
public String process(String statement){
String[] parts = statement.split(MathProcessing.SEPARATER);
String keyword = parts[0]; // add value
MathProcessing theHandler = null;
for (MathProcessing handler: handlers){
if (keyword.equalsIgnoreCase(handler.getKeyword())){
theHandler = handler;
break;
}
}
double leftVal = Double.parseDouble(parts[1]);
double rightVal = Double.parseDouble(parts[2]);
double result = theHandler.doCalculation(leftVal, rightVal);
StringBuilder sb = new StringBuilder(20);
sb.append(leftVal);
sb.append(' ');
sb.append(theHandler.getSymbol());
sb.append(' ');
sb.append(rightVal);
sb.append(" = ");
sb.append(result);
return sb.toString();
}
}