2009-08-07 7 views
2

EclipseでJavaコードのインクリメンタルビルダーを開発中です。 Eclipseには、最後のビルド以降にどのリソースが変更されたかを示すResourceDeltaが用意されています。しかし、より詳細な情報を提供したいと思います。どのメソッドまたはどのフィールド定義が変更されたか。私が "お互いに比べて - >お互いに"見たいものと似た機能性があるようです。ただし、このコードはビルドエンジンからかなり切り離されており、ResourceDeltasと互換性がないようです。私が欲しいものを見つけ出すにはどうすればよいでしょうか?私が見ることができる最善の解決策は、2つのASTを比較することですが、私はそのための組み込みサポートも見つけられませんでした。Eclipseでの2つのASTの構造比較

答えて

2

JavaCoreは、IElementChangedListenerIJavaElementDeltaインターフェイスでこの情報を提供します。 Manipulating Java code

JavaCore.addElementChangedListener(new MyJavaElementChangeReporter(), ElementChangedEvent.POST_RECONCILE);

詳細利用可能JDTプラグイン開発ガイドから:ここではあなたが始めるために迅速なコードサンプルがあります。

+1

それは私が必要とするように見えます。どうもありがとう! – user66237

+0

ありがとうございます。私は@ user66237と同様の状況ですが、細かい変更を探しています。つまり、IJavaElementDelta.F_CONTENTフラグが設定されているときに、どのような変更が正確に得られるかを調べています。たとえば、メソッドの本体に新しいメソッド呼び出しがあるかどうかを知りたいとします。もしそうなら、どのメソッドが呼び出されているのか知りたいです。このAPIでこれを達成する方法はありますか? –