Search in sources :

Example 1 with LineComment

use of com.github.javaparser.ast.comments.LineComment in project javaparser by javaparser.

the class GeneratedJavaParserTokenManagerBase method createCommentFromToken.

/**
 * Since comments are completely captured in a single token, including their delimiters, deconstruct them here so we
 * can turn them into nodes later on.
 */
static Comment createCommentFromToken(Token token) {
    String commentText = token.image;
    if (token.kind == JAVADOC_COMMENT) {
        return new JavadocComment(tokenRange(token), commentText.substring(3, commentText.length() - 2));
    } else if (token.kind == MULTI_LINE_COMMENT) {
        return new BlockComment(tokenRange(token), commentText.substring(2, commentText.length() - 2));
    } else if (token.kind == SINGLE_LINE_COMMENT) {
        // line comments have their end of line character(s) included, and we don't want that.
        Range range = new Range(pos(token.beginLine, token.beginColumn), pos(token.endLine, token.endColumn));
        while (commentText.endsWith("\r") || commentText.endsWith("\n")) {
            commentText = commentText.substring(0, commentText.length() - 1);
        }
        range = range.withEnd(pos(range.begin.line, range.begin.column + commentText.length()));
        LineComment comment = new LineComment(tokenRange(token), commentText.substring(2));
        comment.setRange(range);
        return comment;
    }
    throw new AssertionError("Unexpectedly got passed a non-comment token.");
}
Also used : BlockComment(com.github.javaparser.ast.comments.BlockComment) JavadocComment(com.github.javaparser.ast.comments.JavadocComment) LineComment(com.github.javaparser.ast.comments.LineComment)

Example 2 with LineComment

use of com.github.javaparser.ast.comments.LineComment in project javaparser by javaparser.

the class CommentsInserter method attributeLineCommentToNodeOrChild.

private boolean attributeLineCommentToNodeOrChild(Node node, LineComment lineComment) {
    // let's give to it the comment
    if (node.getBegin().line == lineComment.getBegin().line && !node.hasComment()) {
        if (!(node instanceof Comment)) {
            node.setComment(lineComment);
        }
        return true;
    } else {
        // try with all the children, sorted by reverse position (so the
        // first one is the nearest to the comment
        List<Node> children = new LinkedList<Node>();
        children.addAll(node.getChildrenNodes());
        PositionUtils.sortByBeginPosition(children);
        Collections.reverse(children);
        for (Node child : children) {
            if (attributeLineCommentToNodeOrChild(child, lineComment)) {
                return true;
            }
        }
        return false;
    }
}
Also used : LineComment(com.github.javaparser.ast.comments.LineComment) Comment(com.github.javaparser.ast.comments.Comment) Node(com.github.javaparser.ast.Node)

Example 3 with LineComment

use of com.github.javaparser.ast.comments.LineComment in project javaparser by javaparser.

the class NodeTest method hasJavaDocCommentNegativeCaseLineComment.

@Test
public void hasJavaDocCommentNegativeCaseLineComment() {
    ClassOrInterfaceDeclaration decl = new ClassOrInterfaceDeclaration(EnumSet.noneOf(Modifier.class), false, "Foo");
    decl.setComment(new LineComment("foo"));
    assertEquals(false, decl.hasJavaDocComment());
}
Also used : ClassOrInterfaceDeclaration(com.github.javaparser.ast.body.ClassOrInterfaceDeclaration) LineComment(com.github.javaparser.ast.comments.LineComment) Test(org.junit.Test)

Example 4 with LineComment

use of com.github.javaparser.ast.comments.LineComment in project javaparser by javaparser.

the class NodeWithJavadocTest method removeJavaDocNegativeCaseCommentNotJavaDoc.

@Test
public void removeJavaDocNegativeCaseCommentNotJavaDoc() {
    ClassOrInterfaceDeclaration decl = new ClassOrInterfaceDeclaration(EnumSet.noneOf(Modifier.class), false, "Foo");
    decl.setComment(new LineComment("A comment"));
    assertEquals(false, decl.removeJavaDocComment());
    assertTrue(decl.getComment().isPresent());
}
Also used : ClassOrInterfaceDeclaration(com.github.javaparser.ast.body.ClassOrInterfaceDeclaration) LineComment(com.github.javaparser.ast.comments.LineComment) Modifier(com.github.javaparser.ast.Modifier) Test(org.junit.Test)

Example 5 with LineComment

use of com.github.javaparser.ast.comments.LineComment in project javaparser by javaparser.

the class ModifierVisitor method visit.

@Override
@Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator")
public Visitable visit(final LineComment n, final A arg) {
    Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null);
    n.setComment(comment);
    return n;
}
Also used : com.github.javaparser.ast.type(com.github.javaparser.ast.type) Pair(com.github.javaparser.utils.Pair) ArrayList(java.util.ArrayList) com.github.javaparser.ast.stmt(com.github.javaparser.ast.stmt) com.github.javaparser.ast.body(com.github.javaparser.ast.body) JavadocComment(com.github.javaparser.ast.comments.JavadocComment) Generated(javax.annotation.Generated) List(java.util.List) LineComment(com.github.javaparser.ast.comments.LineComment) Optional(java.util.Optional) com.github.javaparser.ast(com.github.javaparser.ast) Comment(com.github.javaparser.ast.comments.Comment) com.github.javaparser.ast.modules(com.github.javaparser.ast.modules) com.github.javaparser.ast.expr(com.github.javaparser.ast.expr) BlockComment(com.github.javaparser.ast.comments.BlockComment) JavadocComment(com.github.javaparser.ast.comments.JavadocComment) LineComment(com.github.javaparser.ast.comments.LineComment) Comment(com.github.javaparser.ast.comments.Comment) BlockComment(com.github.javaparser.ast.comments.BlockComment) Generated(javax.annotation.Generated)

Aggregations

LineComment (com.github.javaparser.ast.comments.LineComment)8 Test (org.junit.Test)5 ClassOrInterfaceDeclaration (com.github.javaparser.ast.body.ClassOrInterfaceDeclaration)4 BlockComment (com.github.javaparser.ast.comments.BlockComment)4 Comment (com.github.javaparser.ast.comments.Comment)4 JavadocComment (com.github.javaparser.ast.comments.JavadocComment)4 com.github.javaparser.ast (com.github.javaparser.ast)1 CompilationUnit (com.github.javaparser.ast.CompilationUnit)1 Modifier (com.github.javaparser.ast.Modifier)1 Node (com.github.javaparser.ast.Node)1 com.github.javaparser.ast.body (com.github.javaparser.ast.body)1 FieldDeclaration (com.github.javaparser.ast.body.FieldDeclaration)1 VariableDeclarator (com.github.javaparser.ast.body.VariableDeclarator)1 com.github.javaparser.ast.expr (com.github.javaparser.ast.expr)1 com.github.javaparser.ast.modules (com.github.javaparser.ast.modules)1 com.github.javaparser.ast.stmt (com.github.javaparser.ast.stmt)1 com.github.javaparser.ast.type (com.github.javaparser.ast.type)1 Pair (com.github.javaparser.utils.Pair)1 ArrayList (java.util.ArrayList)1 List (java.util.List)1