私は次のようなものを使用しました:
- メソッドの宣言を検索し、IMethodを返します
- IMethodへの参照を検索し、それらのIMethodを記録します
- 返されたIMethodごとに、コンパイルユニットからASTを作成します
宣言または参照の検索は、次のコードのようになります。
SearchRequestor findMethod = ...; // do something with the search results
SearchEngine engine = new SearchEngine();
IJavaSearchScope workspaceScope = SearchEngine.createWorkspaceScope();
SearchPattern pattern = SearchPattern.createPattern(searchString,
IJavaSearchConstants.METHOD, IJavaSearchConstants.DECLARATIONS,
SearchPattern.R_EXACT_MATCH);
SearchParticipant[] participant = new SearchParticipant[] { SearchEngine
.getDefaultSearchParticipant() };
engine.search(pattern, participant, workspaceScope, findMethod,
monitor);
IMethod参照を取得したら、次を使用してASTにアクセスできます。
ASTParser parser = ASTParser.newParser(AST.JLS3);
parser.setResolveBindings(true);
if (methodToSearch.isBinary()) {
parser.setSource(methodToSearch.getClassFile());
} else {
parser.setSource(methodToSearch.getCompilationUnit());
}
CompilationUnit cu = (CompilationUnit) parser.createAST(null);
Java検索、Javaモデル、およびASTの詳細については、http ://help.eclipse.org/helios/index.jsp?topic = / org.eclipse.jdt.doc.isv / guide/jdt_int_core.htmを参照してください。