12d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert// © 2016 and later: Unicode, Inc. and others. 22d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert// License & terms of use: http://www.unicode.org/copyright.html#License 32d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert/* 42d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert ******************************************************************************* 52d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert * Copyright (C) 2015, International Business Machines Corporation and * 62d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert * others. All Rights Reserved. * 72d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert ******************************************************************************* 82d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert */ 92d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubertpackage com.ibm.icu.dev.tool.docs; 102d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 112d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubertimport com.sun.javadoc.Doc; 122d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubertimport com.sun.javadoc.Tag; 132d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubertimport com.sun.tools.doclets.internal.toolkit.taglets.Taglet; 142d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubertimport com.sun.tools.doclets.internal.toolkit.taglets.TagletOutput; 152d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubertimport com.sun.tools.doclets.internal.toolkit.taglets.TagletWriter; 162d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 172d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert/** 182d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert * The ICUTagletAdapter class is the abstract base class that adapts the ICUTaglet class to different implementations of the JavaDoc API. 192d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert * The methods in this class are meant to minimize the dual maintenance nature of supporting multiple JavaDoc APIs. 202d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert * 212d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert * This adapter supports the v7 and earlier JavaDoc API 222d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert */ 232d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubertpublic abstract class ICUTagletAdapter implements Taglet { 242d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 252d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert public abstract String toString(Tag tag); 262d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 272d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert public abstract String toString(Tag[] tags); 282d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 292d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert public TagletOutput getTagletOutput(Tag tag, TagletWriter writer) 302d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert throws IllegalArgumentException { 312d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 322d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert TagletOutput out = writer.getTagletOutputInstance(); 332d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert out.setOutput(toString(tag)); 342d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert return out; 352d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert } 362d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 372d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert public TagletOutput getTagletOutput(Doc holder, TagletWriter writer) 382d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert throws IllegalArgumentException { 392d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 402d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert TagletOutput out = writer.getTagletOutputInstance(); 412d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert Tag[] tags = holder.tags(getName()); 422d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert if (tags.length == 0) { 432d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert return null; 442d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert } 452d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert out.setOutput(toString(tags[0])); 462d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert return out; 472d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert } 482d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 492d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert} 50