プラグインからType Hierarchy

っぽいことができる。というか、まんまType Hierarchyなのかな。


使用するメソッドは、IJavaProject#newTypeHierarchy。
引数は

  • IType:階層化する型
  • IRegion:階層化する対象

戻り値はITypeHierarchy(まんまじゃん)。


特定ソースフォルダ配下のテストケースの階層を見る場合は、
こんな感じ。


IJavaProject javaProject = ・・・
IPackageFragmentRoot root = ・・・

// IType
IType test = javaProject.findType("junit.framework.TestCase");

// IRegion
IRegion region = JavaCore.newRegion();
region.add(root);

ITypeHierarchy hierarchy = javaProject.newTypeHierarchy(test, region, null);
IType[] subtypes= hierarchy.getAllSubtypes(test);

Eclipse内部での、JUnit3系のテストケースの検索は、
このようなイメージでやってるみたい。



ITypeHierarchyには他にもメソッドがいっぱいあるけど、
めんどいからこのへんで。

Type HierarchyじゃなくてJava Searchをやりたい場合は、
マニュアルの「JDT Core>Using the Java search engine」にあるやつ(だと思う)。