//Dstl (c) Crown Copyright 2017
package uk.gov.dstl.baleen.javadoc;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import com.sun.javadoc.ClassDoc;
import com.sun.javadoc.FieldDoc;
import com.sun.javadoc.Tag;
import com.sun.tools.doclets.Taglet;
/**
* An abstract class implementing common functionality between the different Baleen Javadoc taglets.
*
*
*/
public abstract class AbstractBaleenTaglet implements Taglet {
@Override
public boolean inConstructor() {
return false;
}
@Override
public boolean inField() {
return false;
}
@Override
public boolean inMethod() {
return false;
}
@Override
public boolean inOverview() {
return false;
}
@Override
public boolean inPackage() {
return false;
}
@Override
public boolean inType() {
return false;
}
@Override
public boolean isInlineTag() {
return false;
}
@Override
public String toString(Tag tag) {
Tag[] tags = new Tag[1];
tags[0] = tag;
return toString(tags);
}
@Override
public abstract String toString(Tag[] tags);
/**
* Return a list of fields for this class and all it's superclasses
*/
protected static List<FieldDoc> getFields(ClassDoc classDoc){
List<FieldDoc> ret = new ArrayList<>();
ClassDoc parent = classDoc.superclass();
if(parent != null){
ret.addAll(getFields(parent));
}
ret.addAll(Arrays.asList(classDoc.fields()));
return ret;
}
}