// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。

Javaの開発プラットフォームとしてとても使いやすいEclipseですが、ソースコードなどを解析するEclipseプラグインなども、比較的容易に開発することができます。

Eclipseにはいろいろなコード解析方法が存在し、ちょっとややこしいです。とりあえず書きにメモっとく事にします。

**ICompilationUnitを起点にして、ソースコードを順次解析する方法 [#m21cf123]
Eclipse/プラグイン開発のTIPS集/org.eclipse.jdt.core.ICompilationUnit に書いたとおり、ICompilationUnit はIParentというインタフェースを実装していて、これのメソッド
 IJavaElement[] getChildren() throws JavaModelException;
を用いることで、ソースコードを上から順次解析することができます。

**CompilationUnitに対して、Visitorパターンを用いてコードを走査する方法 [#gfadb319]
[[ソースコードを解析するパーサASTParser>Eclipse/プラグイン開発のTIPS集/ソースコードを解析するパーサASTParser]]に書いたとおり、 org.eclipse.jdt.core.ICompilationUnitからorg.eclipse.jdt.core.dom.CompilationUnit を生成し、そのインスタンスに対してVisitorパタンを適用してソースコードを走査することができます。


**TIPS集 [#p101f5a1]
*** パッケージエクスプローラからICompilationUnit [#w6b2b07d]
アクションやハンドラ経由でパッケージエクスプローラから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;
 }



----
この記事は
#vote(おもしろかった,そうでもない)

#comment
#topicpath


SIZE(10){現在のアクセス:&counter;}


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS