src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/SeeTaglet.java

Print this page

        

*** 1,7 **** /* ! * 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 --- 1,7 ---- /* ! * Copyright (c) 2001, 2015, 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
*** 21,36 **** * 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 @see tag. * * <p><b>This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. --- 21,45 ---- * 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.List; + import javax.lang.model.element.Element; + + 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 @see tag. * * <p><b>This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk.
*** 41,76 **** * @since 1.4 */ public class SeeTaglet extends BaseTaglet implements InheritableTaglet { public SeeTaglet() { ! name = "see"; } /** * {@inheritDoc} */ public void inherit(DocFinder.Input input, DocFinder.Output output) { ! Tag[] tags = input.element.seeTags(); ! if (tags.length > 0) { output.holder = input.element; ! output.holderTag = tags[0]; ! output.inlineTags = input.isFirstSentence ? ! tags[0].firstSentenceTags() : tags[0].inlineTags(); } } /** * {@inheritDoc} */ ! public Content getTagletOutput(Doc holder, TagletWriter writer) { ! SeeTag[] tags = holder.seeTags(); ! if (tags.length == 0 && holder instanceof MethodDoc) { ! DocFinder.Output inheritedDoc = ! DocFinder.search(writer.configuration(), new DocFinder.Input((MethodDoc) holder, this)); if (inheritedDoc.holder != null) { ! tags = inheritedDoc.holder.seeTags(); } } ! return writer.seeTagOutput(holder, tags); } } --- 50,90 ---- * @since 1.4 */ public class SeeTaglet extends BaseTaglet implements InheritableTaglet { public SeeTaglet() { ! name = SEE.tagName; } /** * {@inheritDoc} */ public void inherit(DocFinder.Input input, DocFinder.Output output) { ! List<? extends DocTree> tags = input.utils.getSeeTrees(input.element); ! if (!tags.isEmpty()) { ! CommentHelper ch = input.utils.getCommentHelper(input.element); output.holder = input.element; ! output.holderTag = tags.get(0); ! output.inlineTags = input.isFirstSentence ! ? ch.getFirstSentenceTrees(input.utils.configuration, output.holderTag) ! : ch.getReference(output.holderTag); } } /** * {@inheritDoc} */ ! public Content getTagletOutput(Element holder, TagletWriter writer) { ! Utils utils = writer.configuration().utils; ! List<? extends DocTree> tags = utils.getSeeTrees(holder); ! Element e = holder; ! if (tags.isEmpty() && utils.isExecutableElement(holder)) { ! Input input = new DocFinder.Input(utils, holder, this); ! DocFinder.Output inheritedDoc = DocFinder.search(writer.configuration(), input); if (inheritedDoc.holder != null) { ! tags = utils.getSeeTrees(inheritedDoc.holder); ! e = inheritedDoc.holder; } } ! return writer.seeTagOutput(e, tags); } }