Skip to content

Commit 8bfc82b

Browse files
committed
Refactor LJDiagnostics
1 parent 5472ca7 commit 8bfc82b

File tree

2 files changed

+17
-42
lines changed

2 files changed

+17
-42
lines changed

liquidjava-verifier/src/main/java/liquidjava/diagnostics/LJDiagnostics.java

Lines changed: 4 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,34 @@
11
package liquidjava.diagnostics;
22

33
import java.util.ArrayList;
4-
import java.util.HashMap;
5-
64
import liquidjava.diagnostics.errors.LJError;
75
import liquidjava.diagnostics.warnings.LJWarning;
8-
import liquidjava.processor.context.PlacementInCode;
96

107
/**
11-
* Singleton class to store diagnostics information (errors, warnings, translation map) during the verification process
8+
* Singleton class to store diagnostics (errors and warnings) during the verification process
129
*
1310
* @see LJError
1411
* @see LJWarning
1512
*/
1613
public class LJDiagnostics {
17-
private static LJDiagnostics instance;
14+
public static final LJDiagnostics diagnostics = new LJDiagnostics();
1815

1916
private ArrayList<LJError> errors;
2017
private ArrayList<LJWarning> warnings;
21-
private HashMap<String, PlacementInCode> translationMap;
2218

2319
private LJDiagnostics() {
2420
this.errors = new ArrayList<>();
2521
this.warnings = new ArrayList<>();
26-
this.translationMap = new HashMap<>();
27-
}
28-
29-
public static LJDiagnostics getInstance() {
30-
if (instance == null)
31-
instance = new LJDiagnostics();
32-
return instance;
33-
}
34-
35-
public static LJDiagnostics add(LJError error) {
36-
LJDiagnostics instance = getInstance();
37-
instance.addError(error);
38-
return instance;
39-
}
40-
41-
public static LJDiagnostics add(LJWarning warning) {
42-
LJDiagnostics instance = getInstance();
43-
instance.addWarning(warning);
44-
return instance;
4522
}
4623

47-
public static LJDiagnostics add(HashMap<String, PlacementInCode> map) {
48-
LJDiagnostics instance = getInstance();
49-
instance.setTranslationMap(map);
50-
return instance;
51-
}
52-
53-
public void addError(LJError error) {
24+
public void add(LJError error) {
5425
this.errors.add(error);
5526
}
5627

57-
public void addWarning(LJWarning warning) {
28+
public void add(LJWarning warning) {
5829
this.warnings.add(warning);
5930
}
6031

61-
public void setTranslationMap(HashMap<String, PlacementInCode> map) {
62-
this.translationMap = map;
63-
}
64-
6532
public boolean foundError() {
6633
return !this.errors.isEmpty();
6734
}
@@ -78,10 +45,6 @@ public ArrayList<LJWarning> getWarnings() {
7845
return this.warnings;
7946
}
8047

81-
public HashMap<String, PlacementInCode> getTranslationMap() {
82-
return this.translationMap;
83-
}
84-
8548
public LJError getError() {
8649
return foundError() ? this.errors.get(0) : null;
8750
}
@@ -93,7 +56,6 @@ public LJWarning getWarning() {
9356
public void clear() {
9457
this.errors.clear();
9558
this.warnings.clear();
96-
this.translationMap.clear();
9759
}
9860

9961
@Override

liquidjava-verifier/src/main/java/liquidjava/diagnostics/errors/LJError.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package liquidjava.diagnostics.errors;
22

3+
import java.util.HashMap;
4+
35
import liquidjava.diagnostics.ErrorPosition;
6+
import liquidjava.processor.context.PlacementInCode;
47
import liquidjava.utils.Utils;
58
import spoon.reflect.cu.SourcePosition;
69
import spoon.reflect.declaration.CtElement;
@@ -15,12 +18,14 @@ public abstract class LJError extends Exception {
1518
private CtElement element;
1619
private ErrorPosition position;
1720
private SourcePosition location;
21+
private HashMap<String, PlacementInCode> translationTable;
1822

1923
public LJError(String title, String message, CtElement element) {
2024
super(message);
2125
this.title = title;
2226
this.message = message;
2327
this.element = element;
28+
this.translationTable = new HashMap<>();
2429
try {
2530
this.location = element.getPosition();
2631
this.position = ErrorPosition.fromSpoonPosition(element.getPosition());
@@ -50,6 +55,14 @@ public SourcePosition getLocation() {
5055
return location;
5156
}
5257

58+
public HashMap<String, PlacementInCode> getTranslationTable() {
59+
return translationTable;
60+
}
61+
62+
public void setTranslationTable(HashMap<String, PlacementInCode> translationTable) {
63+
this.translationTable = translationTable;
64+
}
65+
5366
@Override
5467
public abstract String toString();
5568

0 commit comments

Comments
 (0)