在Eclipse中创建新的重构功能 - 编程入门网
ON_UNIT) {
element = element.getParent();
if (element == null)
return;
}
if (element.getElementType() == IJavaElement.COMPILATION_UNIT) {
if (!element.isReadOnly())
compilationUnits.add(element);
}
if (element.getElementType() < IJavaElement.COMPILATION_UNIT)
findWritableCompilationUnits(element);
}
接着完成checkInitialConditions函数,实现初始检查的具体操作。作为示 例,在本文工程中我们不进行任何具体的检查操作,只简单得给出初始检查成功 的信息,返回RefactoringStatus. INFO以使重构操作继续执行。checkInitialConditions函数代码如下: 清单 7
接着完成checkFinalConditions函数,实现获得用户输入参数后的后续检查 操作。在本文工程中,我们首先收集所有需要添加注释的以test 开头的方法, 判断是否不存在这样的方法,如果不存在给出出错信息,返回 RefactoringStatus.FATAL以结束重构操作;如果存在这样的方法,则给出后续 检查成功的信息,返回RefactoringStatus. INFO。checkFinalConditions函数代码如下: 清单 8
最后,创建Change对象的createChange函数是整个重构操作中最核心的代码 ,它的实现将在下面章节中介绍。 6 使用AST构造Change对象 在Eclipse中创建新的重构功能(6)时间:2010-12-02 IBM 志甘 春郭迎 林刘岳当我们找到了修改的位置时,我们有两个选择: 1. 通过IScanner接口扫描代码,然后通过IBuffer接口直接修改代码 2. 通过遍历和编辑AST树进行结构化的修改 DeveloperWorks提供的文章《扩展Eclipse的Java开发工具》中,给出了使用 IBuffer接口的例子。现在我们要讲述使用AST来遍历和修改Java源代码的方法。 AST是abstract syntax tree的缩写。它是Eclipse中的Java开发环境(JDT)为 我们提供的极为强大的源代码解析和编辑工具。 在使用AST树提供的功能之前,我们首先要创建AST树。由于AST树的构建是一 项费时的操作,JDT缺省情况下不将源代码解析为AST树。下面的代码演示了获得 一个ICompilationUnit对应的AST树的过程。在JDT提供的API中, ICompilationUnit接口用于表示一个可以被编译的源代码文件。在我们提供的例 子程序中,我们通过下面的代码将整个文件解析成为了一颗AST树。 清单 9
AST树中的每个节点都是ASTNode类型,通过Visit模式,我们可以访问一个 ASTNode包含的所有节点。下面的代码演示了访问一个AST节点并获得其中所有的 MethodDeclaration节点的方法。 清单 10
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |