diff options
Diffstat (limited to 'javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/comments/CommentsCollection.java')
-rw-r--r-- | javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/comments/CommentsCollection.java | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/comments/CommentsCollection.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/comments/CommentsCollection.java new file mode 100644 index 000000000..ac94c61d5 --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_src/proper_source/com/github/javaparser/ast/comments/CommentsCollection.java @@ -0,0 +1,104 @@ +/* + * Copyright (C) 2007-2010 JĂșlio Vilmar Gesser. + * Copyright (C) 2011, 2013-2015 The JavaParser Team. + * + * This file is part of JavaParser. + * + * JavaParser can be used either under the terms of + * a) the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * b) the terms of the Apache License + * + * You should have received a copy of both licenses in LICENCE.LGPL and + * LICENCE.APACHE. Please refer to those files for details. + * + * JavaParser is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + */ + +package com.github.javaparser.ast.comments; + +import java.util.LinkedList; +import java.util.List; + +/** + * Set of comments produced by CommentsParser. + */ +public class CommentsCollection { + private List<LineComment> lineComments = new LinkedList<LineComment>(); + private List<BlockComment> blockComments = new LinkedList<BlockComment>(); + private List<JavadocComment> javadocComments = new LinkedList<JavadocComment>(); + + public List<LineComment> getLineComments(){ + return lineComments; + } + + public List<BlockComment> getBlockComments(){ + return blockComments; + } + + public List<JavadocComment> getJavadocComments(){ + return javadocComments; + } + + public void addComment(LineComment lineComment){ + this.lineComments.add(lineComment); + } + + public void addComment(BlockComment blockComment){ + this.blockComments.add(blockComment); + } + + public void addComment(JavadocComment javadocComment){ + this.javadocComments.add(javadocComment); + } + + public boolean contains(Comment comment){ + for (Comment c : getAll()){ + // we tollerate a difference of one element in the end column: + // it depends how \r and \n are calculated... + if ( c.getBeginLine()==comment.getBeginLine() && + c.getBeginColumn()==comment.getBeginColumn() && + c.getEndLine()==comment.getEndLine() && + Math.abs(c.getEndColumn()-comment.getEndColumn())<2 ){ + return true; + } + } + return false; + } + + public List<Comment> getAll(){ + List<Comment> comments = new LinkedList<Comment>(); + comments.addAll(lineComments); + comments.addAll(blockComments); + comments.addAll(javadocComments); + return comments; + } + + public int size(){ + return lineComments.size()+blockComments.size()+javadocComments.size(); + } + + public CommentsCollection minus(CommentsCollection other){ + CommentsCollection result = new CommentsCollection(); + for (LineComment comment : lineComments){ + if (!other.contains(comment)){ + result.lineComments.add(comment); + } + } + for (BlockComment comment : blockComments){ + if (!other.contains(comment)){ + result.blockComments.add(comment); + } + } + for (JavadocComment comment : javadocComments){ + if (!other.contains(comment)){ + result.javadocComments.add(comment); + } + } + return result; + } +} |