@Override public T scan(DocTree docTree, Void unused) { if (clazz.isInstance(docTree)) { return clazz.cast(docTree); } return super.scan(docTree, null); } }.scan(docTreePath.getLeaf(), null);
@Override public Void visitParam(ParamTree paramTree, Void unused) { if (paramTree.isTypeParameter() && paramTree.getName().getName().contentEquals(name)) { DocSourcePositions positions = JavacTrees.instance(state.context).getSourcePositions(); CompilationUnitTree compilationUnitTree = state.getPath().getCompilationUnit(); int startPos = (int) positions.getStartPosition( compilationUnitTree, docCommentTree, paramTree.getName()); int endPos = (int) positions.getEndPosition( compilationUnitTree, docCommentTree, paramTree.getName()); fixBuilder.replace(startPos, endPos, typeVarReplacement); } return super.visitParam(paramTree, null); } },
/** * Scan a list of nodes. */ public R scan(Iterable<? extends DocTree> nodes, P p) { R r = null; if (nodes != null) { boolean first = true; for (DocTree node : nodes) { r = (first ? scan(node, p) : scanAndReduce(node, p, r)); first = false; } } return r; }
@Override public Void visitText(TextTree node, Void aVoid) { buffer.append(node.getBody()); return super.visitText(node, aVoid); } };
@Override public Void visitEntity(EntityTree node, Void aVoid) { writer.append(EntityUtils.unescapeEntity(node.getName().toString())); return super.visitEntity(node, aVoid); }
@Override public Void visitUnknownBlockTag(UnknownBlockTagTree node, Void v) { writer.append("@").append(node.getTagName()).append(" "); return super.visitUnknownBlockTag(node, v); }
/** * Handles both literal and code. We generate the asciidoc output using {@literal `}. */ @Override public Void visitLiteral(LiteralTree node, Void aVoid) { writer.append("`").append(node.getBody().getBody()).append("`"); return super.visitLiteral(node, aVoid); }
/** * Scan a list of nodes. */ public R scan(Iterable<? extends DocTree> nodes, P p) { R r = null; if (nodes != null) { boolean first = true; for (DocTree node : nodes) { r = (first ? scan(node, p) : scanAndReduce(node, p, r)); first = false; } } return r; }
@Override public Void visitText(TextTree node, Void v) { String body = node.getBody(); Matcher matcher = Helper.LANG_PATTERN.matcher(body); int prev = 0; while (matcher.find()) { writer.append(body, prev, matcher.start()); if (matcher.group(1) != null) { // \$lang writer.append("$lang"); } else { writer.append(generator.getName()); } prev = matcher.end(); } writer.append(body, prev, body.length()); return super.visitText(node, v); }
@Override public R visitSerialField(SerialFieldTree node, P p) { R r = scan(node.getName(), p); r = scanAndReduce(node.getType(), p, r); r = scanAndReduce(node.getDescription(), p, r); return r; }
@Override public R visitSee(SeeTree node, P p) { return scan(node.getReference(), p); }
@Override public Void visitParam(ParamTree paramTree, Void unused) { if (paramTree.isTypeParameter() && paramTree.getName().getName().contentEquals(name)) { DocSourcePositions positions = JavacTrees.instance(state.context).getSourcePositions(); CompilationUnitTree compilationUnitTree = state.getPath().getCompilationUnit(); int startPos = (int) positions.getStartPosition( compilationUnitTree, docCommentTree, paramTree.getName()); int endPos = (int) positions.getEndPosition( compilationUnitTree, docCommentTree, paramTree.getName()); fixBuilder.replace(startPos, endPos, typeVarReplacement); } return super.visitParam(paramTree, null); } },
@Override public R visitDocComment(DocCommentTree node, P p) { R r = scan(node.getFirstSentence(), p); r = scanAndReduce(node.getBody(), p, r); r = scanAndReduce(node.getBlockTags(), p, r); return r; }
@Override public R visitUnknownInlineTag(UnknownInlineTagTree node, P p) { return scan(node.getContent(), p); }
@Override public R visitLink(LinkTree node, P p) { R r = scan(node.getReference(), p); r = scanAndReduce(node.getLabel(), p, r); return r; }
@Override public R visitValue(ValueTree node, P p) { return scan(node.getReference(), p); }