/** * Gets Javadoc (DetailNode) tree of specified block comments. * @param blockComment Javadoc comment as a block comment * @return DetailNode tree */ private DetailNode getJavadocTree(DetailAST blockComment) { DetailNode javadocTree = blockCommentToJavadocTree.get(blockComment); if (javadocTree == null) { javadocTree = new JavadocDetailNodeParser().parseJavadocAsDetailNode(blockComment) .getTree(); blockCommentToJavadocTree.put(blockComment, javadocTree); } return javadocTree; }
/** * Parse block comment DetailAST as Javadoc DetailNode tree. * @param blockComment DetailAST * @return DetailNode tree */ public static DetailNode parseJavadocAsDetailNode(DetailAST blockComment) { final JavadocDetailNodeParser parser = new JavadocDetailNodeParser(); final ParseStatus status = parser.parseJavadocAsDetailNode(blockComment); if (status.getParseErrorMessage() != null) { throw new IllegalArgumentException(getParseErrorMessage(status.getParseErrorMessage())); } return status.getTree(); }
@Test public void testParseJavadocAsDetailNode() throws Exception { final DetailAST ast = JavaParser.parseFile( new File(getPath("InputJavadocDetailNodeParser.java")), JavaParser.Options.WITH_COMMENTS) .getNextSibling().getFirstChild().getFirstChild(); final JavadocDetailNodeParser parser = new JavadocDetailNodeParser(); final JavadocDetailNodeParser.ParseStatus status = parser.parseJavadocAsDetailNode(ast); final String actual = DetailNodeTreeStringPrinter.printTree(status.getTree(), "", ""); final String expected; // line separators in the input file while running this test on Windows are different, // so when we try to print tree, output also will have different line separators on windows // and linux. if (OS_NAME.startsWith("windows")) { expected = new String(Files.readAllBytes(Paths.get( getPath("ExpectedJavadocDetailNodeParserWindows.txt"))), StandardCharsets.UTF_8); } else { expected = new String(Files.readAllBytes(Paths.get( getPath("ExpectedJavadocDetailNodeParser.txt"))), StandardCharsets.UTF_8); } assertEquals("Invalid parse result", expected, actual); }
/** * Gets Javadoc (DetailNode) tree of specified block comments. * @param blockComment Javadoc comment as a block comment * @return DetailNode tree */ private DetailNode getJavadocTree(DetailAST blockComment) { DetailNode javadocTree = blockCommentToJavadocTree.get(blockComment); if (javadocTree == null) { javadocTree = new JavadocDetailNodeParser().parseJavadocAsDetailNode(blockComment) .getTree(); blockCommentToJavadocTree.put(blockComment, javadocTree); } return javadocTree; }
/** * Parse block comment DetailAST as Javadoc DetailNode tree. * @param blockComment DetailAST * @return DetailNode tree */ public static DetailNode parseJavadocAsDetailNode(DetailAST blockComment) { final JavadocDetailNodeParser parser = new JavadocDetailNodeParser(); final ParseStatus status = parser.parseJavadocAsDetailNode(blockComment); if (status.getParseErrorMessage() != null) { throw new IllegalArgumentException(getParseErrorMessage(status.getParseErrorMessage())); } return status.getTree(); }