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);
}
}