From 60b6410ef54f289e8db1cf90503ccd6ed7d51975 Mon Sep 17 00:00:00 2001 From: Danny van Bruggen Date: Tue, 19 Feb 2019 18:35:04 +0100 Subject: [PATCH] Support {@systemProperty } tag --- .../javaparser/javadoc/JavadocTest.java | 29 +++++++++++++++---- .../javadoc/description/JavadocInlineTag.java | 1 + 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/javaparser-core-testing/src/test/java/com/github/javaparser/javadoc/JavadocTest.java b/javaparser-core-testing/src/test/java/com/github/javaparser/javadoc/JavadocTest.java index 82641ab636..857f0ae76b 100644 --- a/javaparser-core-testing/src/test/java/com/github/javaparser/javadoc/JavadocTest.java +++ b/javaparser-core-testing/src/test/java/com/github/javaparser/javadoc/JavadocTest.java @@ -33,7 +33,9 @@ import static com.github.javaparser.StaticJavaParser.parse; import static com.github.javaparser.StaticJavaParser.parseJavadoc; +import static com.github.javaparser.javadoc.description.JavadocInlineTag.Type.*; import static com.github.javaparser.utils.Utils.EOL; +import static java.util.stream.Collectors.toList; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -88,13 +90,30 @@ void descriptionAndBlockTagsAreRetrievable() { void inlineTagsAreParsable() { String docText = "Returns the {@link TOFilename}s of all files that existed during the requested" + EOL + - "{@link TOVersion}." + EOL + + "{@link TOVersion}. Set {@systemProperty JAVA_HOME} correctly." + EOL + "" + EOL + "@param versionID the id of the {@link TOVersion}." + EOL + "@return the filenames" + EOL + "@throws InvalidIDException if the {@link IPersistence} doesn't recognize the given versionID." + EOL; - String javadoc = parseJavadoc(docText).toText(); - assertTrue(javadoc.contains("{@link TOVersion}")); + Javadoc javadoc = parseJavadoc(docText); + + List inlineTags = javadoc.getDescription().getElements().stream() + .filter(element -> element instanceof JavadocInlineTag) + .map(element -> (JavadocInlineTag) element) + .collect(toList()); + + assertEquals("link", inlineTags.get(0).getName()); + assertEquals(" TOFilename", inlineTags.get(0).getContent()); + assertEquals(LINK, inlineTags.get(0).getType()); + assertEquals("link", inlineTags.get(1).getName()); + assertEquals(" TOVersion", inlineTags.get(1).getContent()); + assertEquals(LINK, inlineTags.get(1).getType()); + assertEquals("systemProperty", inlineTags.get(2).getName()); + assertEquals(" JAVA_HOME", inlineTags.get(2).getContent()); + assertEquals(SYSTEM_PROPERTY, inlineTags.get(2).getType()); + + String javadocText = javadoc.toText(); + assertTrue(javadocText.contains("{@link TOVersion}")); } @Test @@ -131,7 +150,7 @@ void descriptionModificationWorks() { assertEquals(0, description.getElements().size()); - JavadocDescriptionElement inlineTag = new JavadocInlineTag("inheritDoc", JavadocInlineTag.Type.INHERIT_DOC, ""); + JavadocDescriptionElement inlineTag = new JavadocInlineTag("inheritDoc", INHERIT_DOC, ""); assertTrue(description.addElement(inlineTag)); assertEquals(1, description.getElements().size()); @@ -147,7 +166,7 @@ void issue1533() { List elements = compilationUnit.getType(0).getJavadoc().get().getDescription().getElements(); assertEquals(3, elements.size()); assertEquals(new JavadocSnippet("hallo "), elements.get(0)); - assertEquals(new JavadocInlineTag("link", JavadocInlineTag.Type.LINK, " Foo"), elements.get(1)); + assertEquals(new JavadocInlineTag("link", LINK, " Foo"), elements.get(1)); assertEquals(new JavadocSnippet(" welt"), elements.get(2)); } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/javadoc/description/JavadocInlineTag.java b/javaparser-core/src/main/java/com/github/javaparser/javadoc/description/JavadocInlineTag.java index 4c9bc50903..d503041bbe 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/javadoc/description/JavadocInlineTag.java +++ b/javaparser-core/src/main/java/com/github/javaparser/javadoc/description/JavadocInlineTag.java @@ -57,6 +57,7 @@ public enum Type { LINKPLAIN, LITERAL, VALUE, + SYSTEM_PROPERTY, UNKNOWN; Type() {