快速业务通道

在Eclipse中创建新的重构功能 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
用户界面来引 导用户完成重构工作。不需要我们做任何工作,Eclipse已经通过 RefactoringWizard为我们提供了预览页面、条件检查页面以及Undo/Redo等功能 。我们需要继承这个类从而为重构过程提供特定的用户界面。

2. Refactoring类:Refactoring类完成具体的定位和修改代码功能。为了建 立新的Refactoring,我们需要继承这个类并实现重构的逻辑部分。

3. AST和ASTParser:在Refactoring类中,我们需要对代码进行定位和修改 ,这可以通过AST机制来完成。AST是abstract syntax tree的简称,它能够将 Java代码解析成为一个树形结构。在利用了AST树之后,对源代码的修改变成了 对AST树的遍历、更改节点属性,以及插入和删除节点等。

一个典型的重构操作流程如下所示:

1. 用户选择要进行重构的对象,通过菜单项或按钮启动重构操作。

2. 创建具体的Refactoring类,弹出RefactoringWizard。

3. RefactoringWizard与用户交互,引导用户输入必要的参数; RefactoringWizard调用Refactoring类的函数进行条件检查。

4. Refactoring类创建AST,并利用其对源代码进行定位和修改。这里进行的 修改并不直接应用到源代码上,而是被保存成Change对象,供Refactoring框架 使用。

5. RefactoringWizard调用Refactoring类的函数,获得重构内容的详细描述 信息(即第4步生成的Change对象),显示在预览界面上,待用户确认。

6. 用户确认后Refactoring框架将修改代码,重构操作结束。

接下来,我们将详细介绍新建重构类型的各个步骤。

在Eclipse中创建新的重构功能(3)

时间:2010-12-02 IBM 志甘 春郭迎 林刘岳

4 创建插件工程

在大家对整个系统构架有了一个大概的了解之后,我们的介绍就从创建工程 开始。大家都知道Eclipse提供了很好的扩展性,通过创建插件就能把我们要添 加的重构功能无缝的插入到Eclipse平台中。创建插件工程的方法在很多地方都 有介绍,这里不再详细讲解。如果需要基础的插件开发知识,我们可以参考《 开发 Eclipse 插件》,树立基本的插件开发意识。

通过菜单 File -> New-> Project,选择Plug-in Project。点击Next ,出现对话框,输入项目名称manage.annotation,接受其他选项的默认值。点 击Next,出现插件属性设置的对话框,继续接受默认值。点击Next,出现选择插 件模板对话框,该工程要在Refactor菜单中添加一个新的菜单项,所以这里我们 采用"Hello,World"的插件模板。点击Next,修改"Action类名称"的值为 AnnotationManageAction,点击 Finish按钮。至此,一个最基本Eclipse工作台 的插件工程就被创建出来了。

插件工程创建后,缺省进入Plug-in开发****图,Plug-in Manifest编辑器自 动打开,显示这个插件工程的基本信息,如对其他插件的依赖,扩展点,构建 (build)的配置信息等等。由于该工程需要用到其他插件的功能,必须为其添加 到其他插件的依赖。在Plug-in Manifest编辑器点击Dependencies页面,在该页 面中的Required Plug-ins列表中通过Add按钮添加如下的插件:

清单 2

org.eclipse.jface.text org.eclipse.ltk.core.refactoring org.eclipse.ltk.ui.refactoring org.eclipse.jdt org.eclipse.jdt.core

或者也可以通过直接修改MANIFEST.MF文件完成。操作完成后察看 MANIFEST.MF文件,注意Require-Bundle列表中是否出现了新添加的这几项。 MANIFEST.MF文件如下:

清单 3

Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Annotation Plug-in Bundle-SymbolicName: manage.annotation; singleton:=true Bundle-Version: 1.0.0 Bundle-Activator: manage.annotation.AnnotationPlugin Bundle-Localization: plugin Require-Bundle: org.eclipse.

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号