|
Javaの開発プラットフォームとしてとても使いやすいEclipseですが、ソースコードなどを解析するEclipseプラグインなども、比較的容易に開発することができます。 Eclipseにはいろいろなコード解析方法が存在し、ちょっとややこしいです。とりあえず書きにメモっとく事にします。 ICompilationUnit?を起点にして、ソースコードを順次解析する方法 †Eclipse/プラグイン開発のTIPS集/org.eclipse.jdt.core.ICompilationUnit に書いたとおり、ICompilationUnit? はIParentというインタフェースを実装していて、これのメソッド IJavaElement[] getChildren() throws JavaModelException; を用いることで、ソースコードを上から順次解析することができます。 CompilationUnit?に対して、Visitorパターンを用いてコードを走査する方法 †ソースコードを解析するパーサASTParserに書いたとおり、 org.eclipse.jdt.core.ICompilationUnit?からorg.eclipse.jdt.core.dom.CompilationUnit? を生成し、そのインスタンスに対してVisitorパタンを適用してソースコードを走査することができます。 TIPS集 †パッケージエクスプローラからICompilationUnit? †アクションやハンドラ経由でパッケージエクスプローラからICompilationUnit?を取得したいケースがありますが、以下のようにやればOKですね。 public Object execute(ExecutionEvent event) throws ExecutionException {
ISelection selection = HandlerUtil.getActiveMenuSelectionChecked(event);
if (selection instanceof IStructuredSelection) {
IStructuredSelection sselection = (IStructuredSelection) selection;
Object firstElement = sselection.getFirstElement();
if (firstElement instanceof ICompilationUnit) {
ICompilationUnit unit = (ICompilationUnit) firstElement;
// 色々処理。
}
}
}
return null;
}
関連リンク †この記事は 現在のアクセス:8100 |