--- old/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ReturnTaglet.java Fri Jan 22 12:20:10 2016 +++ /dev/null Fri Jan 22 12:20:10 2016 @@ -1,97 +0,0 @@ -/* - * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package com.sun.tools.doclets.internal.toolkit.taglets; - -import com.sun.javadoc.*; -import com.sun.tools.doclets.internal.toolkit.Content; -import com.sun.tools.doclets.internal.toolkit.util.*; - -/** - * A taglet that represents the @return tag. - * - *
This is NOT part of any supported API.
- * If you write code that depends on this, you do so at your own risk.
- * This code and its internal interfaces are subject to change or
- * deletion without notice.
- *
- * @author Jamie Ho
- * @since 1.4
- */
-public class ReturnTaglet extends BaseExecutableMemberTaglet
- implements InheritableTaglet {
-
- public ReturnTaglet() {
- name = "return";
- }
-
- /**
- * {@inheritDoc}
- */
- public void inherit(DocFinder.Input input, DocFinder.Output output) {
- Tag[] tags = input.element.tags("return");
- if (tags.length > 0) {
- output.holder = input.element;
- output.holderTag = tags[0];
- output.inlineTags = input.isFirstSentence ?
- tags[0].firstSentenceTags() : tags[0].inlineTags();
- }
- }
-
- /**
- * Return true if this Taglet
- * is used in constructor documentation.
- * @return true if this Taglet
- * is used in constructor documentation and false
- * otherwise.
- */
- public boolean inConstructor() {
- return false;
- }
-
- /**
- * {@inheritDoc}
- */
- public Content getTagletOutput(Doc holder, TagletWriter writer) {
- Type returnType = ((MethodDoc) holder).returnType();
- Tag[] tags = holder.tags(name);
-
- //Make sure we are not using @return tag on method with void return type.
- if (returnType.isPrimitive() && returnType.typeName().equals("void")) {
- if (tags.length > 0) {
- writer.getMsgRetriever().warning(holder.position(),
- "doclet.Return_tag_on_void_method");
- }
- return null;
- }
- //Inherit @return tag if necessary.
- if (tags.length == 0) {
- DocFinder.Output inheritedDoc =
- DocFinder.search(writer.configuration(), new DocFinder.Input((MethodDoc) holder, this));
- tags = inheritedDoc.holderTag == null ? tags : new Tag[] {inheritedDoc.holderTag};
- }
- return tags.length > 0 ? writer.returnTagOutput(tags[0]) : null;
- }
-}
--- /dev/null Fri Jan 22 12:20:10 2016
+++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/ReturnTaglet.java Fri Jan 22 12:20:10 2016
@@ -0,0 +1,115 @@
+/*
+ * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package jdk.javadoc.internal.doclets.toolkit.taglets;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.lang.model.element.Element;
+import javax.lang.model.element.ExecutableElement;
+import javax.lang.model.type.TypeMirror;
+
+import com.sun.source.doctree.DocTree;
+import jdk.javadoc.internal.doclets.toolkit.Content;
+import jdk.javadoc.internal.doclets.toolkit.util.CommentHelper;
+import jdk.javadoc.internal.doclets.toolkit.util.DocFinder;
+import jdk.javadoc.internal.doclets.toolkit.util.DocFinder.Input;
+import jdk.javadoc.internal.doclets.toolkit.util.Utils;
+
+import static com.sun.source.doctree.DocTree.Kind.*;
+
+/**
+ * A taglet that represents the @return tag.
+ *
+ *
This is NOT part of any supported API.
+ * If you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.
+ *
+ * @author Jamie Ho
+ * @since 1.4
+ */
+public class ReturnTaglet extends BaseExecutableMemberTaglet implements InheritableTaglet {
+
+ public ReturnTaglet() {
+ name = RETURN.tagName;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void inherit(DocFinder.Input input, DocFinder.Output output) {
+ List extends DocTree> tags = input.utils.getBlockTags(input.element, DocTree.Kind.RETURN);
+ CommentHelper ch = input.utils.getCommentHelper(input.element);
+ if (!tags.isEmpty()) {
+ output.holder = input.element;
+ output.holderTag = tags.get(0);
+ output.inlineTags = input.isFirstSentence
+ ? ch.getFirstSentenceTrees(input.utils.configuration, output.holderTag)
+ : ch.getDescription(input.utils.configuration, output.holderTag);
+ }
+ }
+
+ /**
+ * Return true if this Taglet
+ * is used in constructor documentation.
+ * @return true if this Taglet
+ * is used in constructor documentation and false
+ * otherwise.
+ */
+ public boolean inConstructor() {
+ return false;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public Content getTagletOutput(Element holder, TagletWriter writer) {
+ Utils utils = writer.configuration().utils;
+ TypeMirror returnType = utils.getReturnType((ExecutableElement)holder);
+ List extends DocTree> tags = utils.getBlockTags(holder, name);
+
+ //Make sure we are not using @return tag on method with void return type.
+ if (returnType != null && utils.isVoid(returnType)) {
+ if (!tags.isEmpty()) {
+ writer.getMsgRetriever().warning(holder, "doclet.Return_tag_on_void_method");
+ }
+ return null;
+ }
+ if (!tags.isEmpty())
+ return writer.returnTagOutput(holder, tags.get(0));
+ //Inherit @return tag if necessary.
+ List