Skip to content

Commit 79e7950

Browse files
make use of logger and take in sourceFolder
1 parent e766f1b commit 79e7950

File tree

2 files changed

+54
-11
lines changed

2 files changed

+54
-11
lines changed
Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,41 @@
11
package anthonisen.felix;
22

3-
import com.github.javaparser.utils.Log;
4-
53
import anthonisen.felix.astParsing.Covariancer;
64

5+
import javax.annotation.processing.Messager;
6+
import javax.lang.model.element.AnnotationMirror;
7+
import javax.lang.model.element.AnnotationValue;
8+
import javax.lang.model.element.Element;
9+
import javax.tools.Diagnostic;
10+
711
class Main {
812
public static void main(String[] args) {
9-
Log.setAdapter(new Log.StandardOutStandardErrorAdapter());
10-
Covariancer manip = new Covariancer();
11-
manip.makeCovariant();
13+
Covariancer manip = new Covariancer(new StdoutMessager(), "example");
14+
manip.makeCovariant("Herd.java");
15+
manip.applyChanges();
16+
}
17+
}
18+
19+
class StdoutMessager implements Messager {
20+
@Override
21+
public void printMessage(Diagnostic.Kind kind, CharSequence msg) {
22+
System.out.println("[" + kind + "]: " + msg);
23+
}
24+
25+
@Override
26+
public void printMessage(Diagnostic.Kind kind, CharSequence msg, Element e) {
27+
System.out.println("[" + kind + "]: " + msg + " Element: " + e);
28+
}
29+
30+
@Override
31+
public void printMessage(Diagnostic.Kind kind, CharSequence msg, Element e, AnnotationMirror a) {
32+
System.out.println("[" + kind + "]: " + msg + " Element: " + e + " AnnotationMirror: " + a);
33+
}
34+
35+
@Override
36+
public void printMessage(Diagnostic.Kind kind, CharSequence msg, Element e, AnnotationMirror a,
37+
AnnotationValue v) {
38+
System.out.println(
39+
"[" + kind + "]: " + msg + " Element: " + e + " AnnotationMirror: " + a + " AnnotationValue: " + v);
1240
}
1341
}

src/main/java/anthonisen/felix/astParsing/Covariancer.java

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,27 @@
2020
import java.util.HashSet;
2121
import java.util.Map;
2222
import java.util.Set;
23+
import javax.annotation.processing.Messager;
24+
import javax.tools.Diagnostic.Kind;
2325

2426
public class Covariancer {
27+
private Messager messager;
28+
private String sourceFolder;
29+
private SourceRoot sourceRoot;
2530

26-
public void makeCovariant() {
27-
String sourceFolder = "example";
28-
SourceRoot sourceRoot = new SourceRoot(
31+
public Covariancer(Messager messager, String sourceFolder) {
32+
this.messager = messager;
33+
this.sourceFolder = sourceFolder;
34+
sourceRoot = new SourceRoot(
2935
CodeGenerationUtils.mavenModuleRoot(Covariancer.class).resolve(sourceFolder));
36+
}
37+
38+
public void makeCovariant(String cls) {
39+
messager.printMessage(Kind.NOTE, "Now parsing AST's");
3040
MethodCollector collector = new MethodCollector(Arrays.asList("T"));
3141
Map<String, MethodData> methodMap = new HashMap<>();
3242
Set<ClassData> classesToWatch = new HashSet<>();
33-
sourceRoot.parse("", "Herd.java").accept(collector, methodMap);
43+
sourceRoot.parse("", cls).accept(collector, methodMap);
3444

3545
File dir = Paths.get(sourceFolder).toFile();
3646
assert dir.exists();
@@ -52,6 +62,11 @@ public void makeCovariant() {
5262

5363
}
5464
}
55-
sourceRoot.saveAll(CodeGenerationUtils.mavenModuleRoot(Covariancer.class).resolve(Paths.get("output")));
65+
66+
}
67+
68+
public void applyChanges() {
69+
this.sourceRoot.saveAll(
70+
CodeGenerationUtils.mavenModuleRoot(Covariancer.class).resolve(Paths.get(sourceFolder + "/output")));
5671
}
57-
}
72+
}

0 commit comments

Comments
 (0)