| /* |
| * 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; |
| } |
| } |