シグネチャー

あー、難しい。ちょっと気合い入れて調べる必要があるかなー。KijimunaのJava5対応でも必要そうだし。とりあえず、

  • IMethodとか(org.eclipse.jdt.coreパッケージ)
  • MethodDeclarationとか(org.eclipse.jdt.core.domパッケージ)
    • Javaソースを、同パッケージのASTParserでSAXみたいにパースしたときの要素。MethodDeclarationはJavaソースに対応する要素なので、完全クラス名は得られない。ソースに書いてある通りのクラス名が得られる。

MethodDeclarationから完全クラス名を得るには、importをパースしてクラス名から完全クラス名を作る必要がありそう。となると、カレントパッケージやjava.langパッケージなど、importを省略できるパッケージについて特別扱いが必要。という方向で作っていたけど、これは面倒くさい。
IJavaProject.findType(fullName)を使ってITypeを取得し、そこからIMethodを取得した方が楽そう。こちらの方法を試してみようかな。

追記:JavaDocコメントを得る

コンパイル結果のIMethodからは取得できません。ソースをパースした結果のMethodDeclarationからgetJavaDoc()で取得できます。

追記:IMethod.getSignature()って

ViewerFilter.select()で渡されるelementがIMethodのインスタンスのとき、getSignature()はパッケージ無しのクラス名のシグネチャーでした。分け判らない。