如何确定ASTRewrite中是否记录了任何更改

时间:2012-12-15 01:27:44

标签: eclipse-plugin eclipse-jdt

假设我有一个ASTRewrite实例,我无法做出假设(即通过可覆盖的方法返回)。我想测试重写是否实际存储了对编译单元的任何修改,否则它只是" identity"更改。怎么可能这样做?

我查了ASTRewrite的方法但是找不到任何有用的方法。所以我想正确的做法并不简单。

1 个答案:

答案 0 :(得分:1)

您可以使用 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
}

可以从以下链接找到更多帮助:

http://help.eclipse.org/helios/index.jsp?topic=%2Forg.eclipse.jdt.doc.isv%2Fguide%2Fjdt_api_manip.htm