/* | |
******************************************************************************* | |
* Copyright (C) 2015, International Business Machines Corporation and * | |
* others. All Rights Reserved. * | |
******************************************************************************* | |
*/ | |
package com.ibm.icu.dev.tool.docs; | |
import com.sun.javadoc.Doc; | |
import com.sun.javadoc.Tag; | |
import com.sun.tools.doclets.internal.toolkit.taglets.Taglet; | |
import com.sun.tools.doclets.internal.toolkit.taglets.TagletOutput; | |
import com.sun.tools.doclets.internal.toolkit.taglets.TagletWriter; | |
/** | |
* The ICUTagletAdapter class is the abstract base class that adapts the ICUTaglet class to different implementations of the JavaDoc API. | |
* The methods in this class are meant to minimize the dual maintenance nature of supporting multiple JavaDoc APIs. | |
* | |
* This adapter supports the v7 and earlier JavaDoc API | |
*/ | |
public abstract class ICUTagletAdapter implements Taglet { | |
public abstract String toString(Tag tag); | |
public abstract String toString(Tag[] tags); | |
public TagletOutput getTagletOutput(Tag tag, TagletWriter writer) | |
throws IllegalArgumentException { | |
TagletOutput out = writer.getTagletOutputInstance(); | |
out.setOutput(toString(tag)); | |
return out; | |
} | |
public TagletOutput getTagletOutput(Doc holder, TagletWriter writer) | |
throws IllegalArgumentException { | |
TagletOutput out = writer.getTagletOutputInstance(); | |
Tag[] tags = holder.tags(getName()); | |
if (tags.length == 0) { | |
return null; | |
} | |
out.setOutput(toString(tags[0])); | |
return out; | |
} | |
} |