From 20ed8568c2428adab9f7b9eea0379baebbcb5901 Mon Sep 17 00:00:00 2001 From: Rick Ossendrijver Date: Thu, 6 Oct 2022 13:16:39 +0200 Subject: [PATCH] Improve interface and let BugPatternData also implement it --- docgen/pom.xml | 16 +++++----- .../plugin/BugPatternExtractor.java | 29 +++++++++---------- .../plugin/BugPatternTestsExtractor.java | 3 +- .../errorprone/plugin/DocExtractor.java | 3 +- .../errorprone/plugin/DocgenTaskListener.java | 13 +++++---- error-prone-contrib/pom.xml | 28 ++++++++++++++++++ 6 files changed, 59 insertions(+), 33 deletions(-) diff --git a/docgen/pom.xml b/docgen/pom.xml index 17728230..3bde7f77 100644 --- a/docgen/pom.xml +++ b/docgen/pom.xml @@ -1,16 +1,15 @@ - + 4.0.0 - error-prone-support tech.picnic.error-prone-support + error-prone-support 0.3.1-SNAPSHOT docgen - Picnic :: Error Prone Support :: Docgen Docgen. @@ -28,6 +27,10 @@ ${groupId.error-prone} error_prone_core + + com.fasterxml.jackson.core + jackson-databind + com.google.auto.service auto-service-annotations @@ -46,10 +49,5 @@ com.google.guava guava - - com.fasterxml.jackson.core - jackson-databind - - - \ No newline at end of file + diff --git a/docgen/src/main/java/tech/picnic/errorprone/plugin/BugPatternExtractor.java b/docgen/src/main/java/tech/picnic/errorprone/plugin/BugPatternExtractor.java index b95345a2..4d3028b4 100644 --- a/docgen/src/main/java/tech/picnic/errorprone/plugin/BugPatternExtractor.java +++ b/docgen/src/main/java/tech/picnic/errorprone/plugin/BugPatternExtractor.java @@ -1,18 +1,15 @@ package tech.picnic.errorprone.plugin; -//public final class BugPatternExtractor implements DocExtractor { -// @Override -// public BugPatternTestData extractData(ClassTree tree, VisitorState state) { -// String name = tree.getSimpleName().toString().replace("Test", ""); -// ScanBugCheckerTestData scanner = new ScanBugCheckerTestData(state); -// -// tree.getMembers().stream() -// .filter(MethodTree.class::isInstance) -// .map(MethodTree.class::cast) -// .filter(m -> BUG_PATTERN_TEST.matches(m, state)) -// .forEach(m -> scanner.scan(m, null)); -// -// return BugPatternTestData.create( -// name, scanner.getIdentification(), scanner.getInput(), scanner.getOutput()); -// } -//} +import com.google.errorprone.BugPattern; +import com.google.errorprone.VisitorState; +import com.sun.source.tree.ClassTree; +import com.sun.source.util.TaskEvent; +import tech.picnic.errorprone.plugin.objects.BugPatternData; + +public final class BugPatternExtractor implements DocExtractor { + @Override + public BugPatternData extractData(ClassTree tree, TaskEvent taskEvent, VisitorState state) { + BugPattern annotation = taskEvent.getTypeElement().getAnnotation(BugPattern.class); + return BugPatternData.create(annotation, taskEvent.getTypeElement().getSimpleName().toString()); + } +} diff --git a/docgen/src/main/java/tech/picnic/errorprone/plugin/BugPatternTestsExtractor.java b/docgen/src/main/java/tech/picnic/errorprone/plugin/BugPatternTestsExtractor.java index f11a7a2a..4abdde12 100644 --- a/docgen/src/main/java/tech/picnic/errorprone/plugin/BugPatternTestsExtractor.java +++ b/docgen/src/main/java/tech/picnic/errorprone/plugin/BugPatternTestsExtractor.java @@ -13,6 +13,7 @@ import com.sun.source.tree.ClassTree; import com.sun.source.tree.ExpressionTree; import com.sun.source.tree.MethodInvocationTree; import com.sun.source.tree.MethodTree; +import com.sun.source.util.TaskEvent; import com.sun.source.util.TreeScanner; import java.util.List; import javax.annotation.Nullable; @@ -37,7 +38,7 @@ public final class BugPatternTestsExtractor implements DocExtractor { - T extractData(ClassTree tree, VisitorState state); + T extractData(ClassTree tree, TaskEvent taskEvent, VisitorState state); } diff --git a/docgen/src/main/java/tech/picnic/errorprone/plugin/DocgenTaskListener.java b/docgen/src/main/java/tech/picnic/errorprone/plugin/DocgenTaskListener.java index b0aa56aa..c0d13ab8 100644 --- a/docgen/src/main/java/tech/picnic/errorprone/plugin/DocgenTaskListener.java +++ b/docgen/src/main/java/tech/picnic/errorprone/plugin/DocgenTaskListener.java @@ -52,17 +52,18 @@ final class DocgenTaskListener implements TaskListener { } if (isBugPatternTest(tree)) { - BugPatternTestData testData = new BugPatternTestsExtractor().extractData(tree, state); + BugPatternTestData testData = + new BugPatternTestsExtractor().extractData(tree, taskEvent, state); System.out.println(testData); writeToFile(testData, "bug-pattern-test-data.jsonl"); - } else { + } else if(isBugPattern(tree)) { - BugPattern annotation = taskEvent.getTypeElement().getAnnotation(BugPattern.class); - BugPatternData bugPatternData = - BugPatternData.create(annotation, taskEvent.getTypeElement().getSimpleName().toString()); + BugPatternData data = new BugPatternExtractor().extractData(tree, taskEvent, state); System.out.println("Analysing: " + taskEvent.getTypeElement().getSimpleName()); - writeToFile(bugPatternData, "bug-pattern-data.jsonl"); + writeToFile(data, "bug-pattern-data.jsonl"); + } else { + System.out.println("~~~~~~~~~!!!!~~~~~~~NOW ANALYSING: " + tree.getSimpleName().toString()); } } diff --git a/error-prone-contrib/pom.xml b/error-prone-contrib/pom.xml index e8681ecd..dbbf20a2 100644 --- a/error-prone-contrib/pom.xml +++ b/error-prone-contrib/pom.xml @@ -238,4 +238,32 @@ + + + + docgen + + + + org.codehaus.mojo + build-helper-maven-plugin + + + add-test-source + + add-test-source + + generate-test-sources + + + src/test/resources + + + + + + + + +