diff -r 000000000000 -r 959103a6100f src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/LegacyTaglet.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/LegacyTaglet.java Wed Apr 27 01:34:52 2016 +0800 @@ -0,0 +1,142 @@ +/* + * Copyright (c) 2003, 2013, 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.formats.html.markup.RawHtml; +import com.sun.tools.doclets.internal.toolkit.Content; + +/** + * This taglet acts as a wrapper to enable + * {@link com.sun.tools.doclets.Taglet} type taglets to work + * with the current version of Javadoc. + * Note: this taglet only works with legacy taglets (those compatible with + * Javadoc 1.4.x) that writes strings. + * This taglet is able to wrap most most legacy taglets because + * the standard doclet is the only known doclet to use legacy taglets. + * + *

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. + * + * @since 1.5 + * @author Jamie Ho + */ + +public class LegacyTaglet implements Taglet { + + private com.sun.tools.doclets.Taglet legacyTaglet; + + public LegacyTaglet(com.sun.tools.doclets.Taglet t) { + legacyTaglet = t; + } + + /** + * {@inheritDoc} + */ + public boolean inField() { + return legacyTaglet.isInlineTag() || legacyTaglet.inField(); + } + + /** + * {@inheritDoc} + */ + public boolean inConstructor() { + return legacyTaglet.isInlineTag() || legacyTaglet.inConstructor(); + } + + /** + * {@inheritDoc} + */ + public boolean inMethod() { + return legacyTaglet.isInlineTag() || legacyTaglet.inMethod(); + } + + /** + * {@inheritDoc} + */ + public boolean inOverview() { + return legacyTaglet.isInlineTag() || legacyTaglet.inOverview(); + } + + /** + * {@inheritDoc} + */ + public boolean inPackage() { + return legacyTaglet.isInlineTag() || legacyTaglet.inPackage(); + } + + /** + * {@inheritDoc} + */ + public boolean inType() { + return legacyTaglet.isInlineTag() || legacyTaglet.inType(); + } + + /** + * Return true if this Taglet + * is an inline tag. + * @return true if this Taglet + * is an inline tag and false otherwise. + */ + public boolean isInlineTag() { + return legacyTaglet.isInlineTag(); + } + + /** + * {@inheritDoc} + */ + public String getName() { + return legacyTaglet.getName(); + } + + /** + * {@inheritDoc} + */ + public Content getTagletOutput(Tag tag, TagletWriter writer) + throws IllegalArgumentException { + Content output = writer.getOutputInstance(); + output.addContent(new RawHtml(legacyTaglet.toString(tag))); + return output; + } + + /** + * {@inheritDoc} + */ + public Content getTagletOutput(Doc holder, TagletWriter writer) + throws IllegalArgumentException { + Content output = writer.getOutputInstance(); + Tag[] tags = holder.tags(getName()); + if (tags.length > 0) { + String tagString = legacyTaglet.toString(tags); + if (tagString != null) { + output.addContent(new RawHtml(tagString)); + } + } + return output; + } +}