想定できない (つまり、オーバーライド可能なメソッドによって返される) ASTRewrite のインスタンスがあるとします。書き換えが実際にコンパイル単位への変更を保存するかどうか、または単に「アイデンティティ」の変更であるかどうかをテストしたいと思います。これはどのように行うことができますか?
ASTRewriteのメソッドを調べましたが、役立つものを見つけることができませんでした。したがって、それを行う正しい方法は簡単ではないと思います。
想定できない (つまり、オーバーライド可能なメソッドによって返される) ASTRewrite のインスタンスがあるとします。書き換えが実際にコンパイル単位への変更を保存するかどうか、または単に「アイデンティティ」の変更であるかどうかをテストしたいと思います。これはどのように行うことができますか?
ASTRewriteのメソッドを調べましたが、役立つものを見つけることができませんでした。したがって、それを行う正しい方法は簡単ではないと思います。
TextEditを使用して、AST に適用された編集を確認できます。
TextEdit edits = rewrite.rewriteAST(document, compUnit.getJavaProject().getOptions(true));
AST で変更が行われない場合、編集は空になります。それ以外の場合は、オフセットを使用して AST への追加と削除が含まれます。
getLength()
メソッドを使用して TextEdit が空かどうかを確認できます。
// If edits available, write them to the file.
if (edits.getLength() != 0) {
// do something
}
詳細なヘルプは、以下のリンクから見つけることができます: