Java Tips


Docletを作成するには


DocletはJavadoc toolを使って、Javaのソースコードのコメントを処理するためのプログラムです。
Javadoc toolではJava APIドキュメントを得ることができますが、Docletを使用することで自分の自由にコメントの処理を作ることが出来ます。
以下の例では、getTargetMethodメソッドが@mycommentというコメントのつけられたメソッド名の一覧を返します。
コンパイルには、j2sdkのlib\tools.jarをクラスパスに指定する必要があります。
import java.util.Vector;

import com.sun.javadoc.ClassDoc;
import com.sun.javadoc.MethodDoc;
import com.sun.javadoc.RootDoc;
import com.sun.javadoc.Tag;

public class ExtractClientMethodsDoclet
{
	// class variable, not instance variable
	public static Vector targetMethods = new Vector();

	// cannot make instance
	private ExtractClientMethodsDoclet()
	{
	}

	public static boolean start(RootDoc root)
	{ 
		String tagName = "myComment";
		writeContents(root.classes(), tagName);
		return true;
	}

	private static void writeContents(ClassDoc[] classes, String tagName) 
	{
		targetMethods = new Vector();
		
		// for each class
		for (int i=0; i < classes.length; i++) 
		{
			// for each methods
			MethodDoc[] methods = classes[i].methods();
			for (int j=0; j < methods.length; j++) 
			{
				// for each tags
				Tag[] tags = methods[j].tags(tagName);
				if (tags.length > 0)
				{
					//System.out.println(methods[j].name());
					targetMethods.add(methods[j].name().toString());
				}
			}
		}
	}

	public static String[] getTargetMethods()
	{
		String[] methods = new String[targetMethods.size()];
		for(int i=0; i < targetMethods.size(); i++)
		{
			methods[i] = (String)targetMethods.elementAt(i);
		}
		return methods;
	}
}



目次に戻る
Copyright(c) 2008 WoodenSoldier Software