コンテンツアシスト用に有効なJavaクラスをひっぱってくる

IJavaSearchScope scope = SearchEngine.createWorkspaceScope();

SearchEngine engine = new SearchEngine();

ISearchPattern pattern =
    SearchEngine.createSearchPattern(
        "java.lang.Str*",
        IJavaSearchConstants.TYPE,
        IJavaSearchConstants.DECLARATIONS,
        true);

engine.search(getWorkspace(), pattern, scope, this);

return (String[])proposals.toArray(new String[0]);

Javaエディタのコンテンツアシストをおっていくと最終的にSearchEngineクラスを利用してるもよう。ただ、このままだと検索ヒット数が増えるとちょっと遅い。また、この方法はキーワードによる検索はいけるが、サブクラスを探すとかは難しいようだ(インターフェイスを実装したクラスとかは探せるが)。特定のクラスのサブクラスなどを探す場合は次のページの方法が参考になる。


型の仲間達(サブクラス,スーパークラス)の取得方法
http://yoichiro.cocolog-nifty.com/eclipse/2004/03/post_5.html


Eclipseヘルプの Java 検索エンジンの使用 も参考になる。