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.");
}
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;
}
}
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());
}
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());
}
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;
}
Aggregations