package org.mulgara.doclet;
// Java 2 standard packages
import java.io.IOException;
import java.util.Arrays;
// Third party packages
import com.sun.javadoc.ClassDoc; // Sun javadoc
import com.sun.javadoc.RootDoc;
import com.sun.tools.doclets.ClassTree;
import com.sun.tools.doclets.DocletAbortException;
import com.sun.tools.doclets.standard.Standard; // Sun standard doclet
/**
* Custom doclet for Mulgara project.
*
* @author <a href="http://staff.pisoftware.com/raboczi">Simon Raboczi</a>
*/
public class MulgaraDoclet extends Standard
{
/**
* Doclet entry point.
*/
public static boolean start(RootDoc root) throws IOException
{
try {
MulgaraDoclet doclet = new MulgaraDoclet();
doclet.configuration();
doclet.startGeneration(root);
return true;
}
catch (DocletAbortException e) { return false; }
}
/**
* Instantiate {@link RcsClassWriter} for each Class within the ClassDoc[]
* passed to it and generate Documentation for that.
*/
protected void generateClassCycle(ClassDoc[] arr,
ClassTree classtree,
boolean nopackage)
{
Arrays.sort(arr);
for(int i = 0; i < arr.length; i++) {
if (configuration.nodeprecated &&
arr[i].tags("deprecated").length > 0) { continue; }
ClassDoc prev = (i == 0)? null: arr[i-1];
ClassDoc curr = arr[i];
ClassDoc next = (i+1 == arr.length)? null: arr[i+1];
RcsClassWriter.generate(configuration, curr, prev, next, classtree,
nopackage);
}
}
}