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;
}

関連リンク


この記事は

選択肢 投票
おもしろかった 3  
そうでもない 0  

現在のアクセス:7649


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-12-14 (火) 11:32:34 (857d)