aboutsummaryrefslogtreecommitdiff
path: root/src/utils/lombok/javac/java7/CommentCollectingParser.java
diff options
context:
space:
mode:
authorRoel Spilker <r.spilker@gmail.com>2011-11-01 00:13:22 +0100
committerRoel Spilker <r.spilker@gmail.com>2011-11-01 00:13:22 +0100
commita9f334fde93a0b07820962bff0b602ef0be731cf (patch)
tree4b330e1907f27d36a685cef0458cab7a65e6f2ec /src/utils/lombok/javac/java7/CommentCollectingParser.java
parent70f778daa560a899abe91a4908cd37c70ff1f3b4 (diff)
downloadlombok-a9f334fde93a0b07820962bff0b602ef0be731cf.tar.gz
lombok-a9f334fde93a0b07820962bff0b602ef0be731cf.tar.bz2
lombok-a9f334fde93a0b07820962bff0b602ef0be731cf.zip
Fixed issue 284 now also for java7, introduced more stubbing
Diffstat (limited to 'src/utils/lombok/javac/java7/CommentCollectingParser.java')
-rw-r--r--src/utils/lombok/javac/java7/CommentCollectingParser.java33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/utils/lombok/javac/java7/CommentCollectingParser.java b/src/utils/lombok/javac/java7/CommentCollectingParser.java
new file mode 100644
index 00000000..7c3cdc71
--- /dev/null
+++ b/src/utils/lombok/javac/java7/CommentCollectingParser.java
@@ -0,0 +1,33 @@
+package lombok.javac.java7;
+
+import java.util.Map;
+
+import lombok.javac.Comment;
+
+import com.sun.tools.javac.parser.EndPosParser;
+import com.sun.tools.javac.parser.Lexer;
+import com.sun.tools.javac.parser.ParserFactory;
+import com.sun.tools.javac.tree.JCTree.JCCompilationUnit;
+import com.sun.tools.javac.util.List;
+
+class CommentCollectingParser extends EndPosParser {
+
+ private final Map<JCCompilationUnit, List<Comment>> commentsMap;
+ private final Lexer lexer;
+
+ protected CommentCollectingParser(ParserFactory fac, Lexer S,
+ boolean keepDocComments, boolean keepLineMap, Map<JCCompilationUnit, List<Comment>> commentsMap) {
+ super(fac, S, keepDocComments, keepLineMap);
+ lexer = S;
+ this.commentsMap = commentsMap;
+ }
+
+ public JCCompilationUnit parseCompilationUnit() {
+ JCCompilationUnit result = super.parseCompilationUnit();
+ if (lexer instanceof CommentCollectingScanner) {
+ List<Comment> comments = ((CommentCollectingScanner)lexer).getComments();
+ commentsMap.put(result, comments);
+ }
+ return result;
+ }
+} \ No newline at end of file