JavaParser Source Viewer

Home|JavaParser/com/github/javaparser/printer/concretesyntaxmodel/CsmOrphanCommentsEnding.java
1/*
2 * Copyright (C) 2007-2010 JĂșlio Vilmar Gesser.
3 * Copyright (C) 2011, 2013-2020 The JavaParser Team.
4 *
5 * This file is part of JavaParser.
6 *
7 * JavaParser can be used either under the terms of
8 * a) the GNU Lesser General Public License as published by
9 *     the Free Software Foundation, either version 3 of the License, or
10 *     (at your option) any later version.
11 * b) the terms of the Apache License
12 *
13 * You should have received a copy of both licenses in LICENCE.LGPL and
14 * LICENCE.APACHE. Please refer to those files for details.
15 *
16 * JavaParser is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19 * GNU Lesser General Public License for more details.
20 */
21
22package com.github.javaparser.printer.concretesyntaxmodel;
23
24import com.github.javaparser.ast.Node;
25import com.github.javaparser.ast.comments.Comment;
26import com.github.javaparser.printer.SourcePrinter;
27
28import java.util.LinkedList;
29import java.util.List;
30
31import static com.github.javaparser.utils.PositionUtils.sortByBeginPosition;
32
33public class CsmOrphanCommentsEnding implements CsmElement {
34
35    @Override
36    public void prettyPrint(Node nodeSourcePrinter printer) {
37        List<Nodeeverything = new LinkedList<>();
38        everything.addAll(node.getChildNodes());
39        sortByBeginPosition(everything);
40        if (everything.isEmpty()) {
41            return;
42        }
43
44        int commentsAtEnd = 0;
45        boolean findingComments = true;
46        while (findingComments && commentsAtEnd < everything.size()) {
47            Node last = everything.get(everything.size() - 1 - commentsAtEnd);
48            findingComments = (last instanceof Comment);
49            if (findingComments) {
50                commentsAtEnd++;
51            }
52        }
53        for (int i = 0i < commentsAtEndi++) {
54            Comment c = (Comment)everything.get(everything.size() - commentsAtEnd + i);
55            CsmComment.process(cprinter);
56        }
57    }
58
59}
60
MembersX
CsmOrphanCommentsEnding:prettyPrint:Block:Block:c
CsmOrphanCommentsEnding:prettyPrint:Block:Block:last
CsmOrphanCommentsEnding:prettyPrint:Block:commentsAtEnd
CsmOrphanCommentsEnding:prettyPrint:Block:everything
CsmOrphanCommentsEnding:prettyPrint
CsmOrphanCommentsEnding:prettyPrint:Block:findingComments
Members
X