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; } 関連リンク †この記事は 現在のアクセス:7899 |