2012-12-15 32 views
1

假设我有一个ASTRewrite的实例,我不能做出假设(即通过可重写的方法返回)。我想测试重写是否实际存储对编译单元的任何修改,否则它仅仅是“身份”更改。这怎么可能呢?如何找出在ASTRewrite中是否有任何更改记录

我去了ASTRewrite的方法,但无法找到任何有用的东西。所以我想正确的做法并不简单。

回答

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

+0

谢谢您的回答。我已经想到了这一点,但无法想出一个方法来检查TextEdit是否为空。 – Artium

+0

用您的查询更新了答案。 –

相关问题