-
Notifications
You must be signed in to change notification settings - Fork 164
Expand file tree
/
Copy pathFlusher.java
More file actions
71 lines (63 loc) · 2.33 KB
/
Flusher.java
File metadata and controls
71 lines (63 loc) · 2.33 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
71
package com.acme.edu;
import com.acme.edu.saver.Saver;
import com.acme.edu.saver.SystemOutSaver;
public class Flusher {
private final Saver saver;
public Flusher() {
this.saver = new SystemOutSaver();
}
public Flusher(Saver saver) {
this.saver = saver;
}
public void flush(String message) {
saver.save(message);
}
public void flush(StatesDTO statesDTO) {
switch (statesDTO.getPrevTypeCodeEnum()) {
case BOOLEAN: {
saver.save(statesDTO.getPrevTypeCodeEnum().getTypeReference() + statesDTO.getPrevBoolean());
break;
}
case CHAR: {
saver.save(statesDTO.getPrevTypeCodeEnum().getTypeReference() + statesDTO.getPrevChar());
break;
}
case STRING: {
stringCase(statesDTO);
break;
}
case BYTE: {
saver.save(statesDTO.getPrevTypeCodeEnum().getTypeReference() + statesDTO.getByteSum());
statesDTO.clearByteSum();
break;
}
case INTEGER: {
saver.save(statesDTO.getPrevTypeCodeEnum().getTypeReference() + statesDTO.getIntegerSum());
statesDTO.clearIntegerSum();
break;
}
case ARRAY_INT: {
saver.save(statesDTO.getPrevTypeCodeEnum().getTypeReference() + statesDTO.getArrayIntSum());
statesDTO.clearArrayIntSum();
break;
}
case MATRIX_INT: {
saver.save(statesDTO.getPrevTypeCodeEnum().getTypeReference() + statesDTO.getMatrixIntSum());
statesDTO.clearMatrixIntSum();
break;
}
default:
break;
}
}
private void stringCase(StatesDTO statesDTO) {
statesDTO.incSimilarStringCounter();
if (statesDTO.getSimilarStringCounter() > 1) {
saver.save(statesDTO.getPrevTypeCodeEnum().getTypeReference() + statesDTO.getPrevString() + " (x" + statesDTO.getSimilarStringCounter() + ")");
} else {
saver.save(statesDTO.getPrevTypeCodeEnum().getTypeReference() + statesDTO.getPrevString());
}
statesDTO.setPrevString(null);
statesDTO.clearSimilarStringCounter();
}
}