Eclipse插件开发中的Java项目模型(共12页).doc
《Eclipse插件开发中的Java项目模型(共12页).doc》由会员分享,可在线阅读,更多相关《Eclipse插件开发中的Java项目模型(共12页).doc(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上Eclipse插件开发中的Java项目模型Eclipse插件开发中的Java项目模型是比较重要的内容,也是我们最长接触到的。本文将详细的为大家讲解Java项目模型。AD: Java项目模型 Eclipse的项目有很多种,包括Java项目、C+项目、C#项目等,每种项目都有自己的特点。我们最常接触到的项目就是Java项目,因此我们重点来讲解一下Java项目模型。Java模型是用来对与创建、编辑和构建Java程序相关联的对象进行建模的一些类。Java模型类是在org.eclipse.jdt.core中定义的。这些类实现资源的特定于Java的行为,并进一步将Java资源分解
2、成模型元素。Java模型的继承结构图如图3.13所示。图3.13 Java模型的继承结构图IJavaElement的子类接口还有IMethod、IType等,在这里没有全部列出。Java模型中的类结构比较简单,级次也非常少。下面介绍一下各个接口的主要方法。(1) IJavaElementexists:判断元素是否存在。处理Java元素与处理资源对象相似。当使用Java元素时,实际上是在使用某些底层的模型对象的句柄。必须使用exists()来确定元素是否真正存在于工作空间中。getElementName:返回元素的名称。getJavaModel:返回其对应的JavaModel,返回值类型是IJa
3、vaModel。getJavaProject:返回元素对应的Java工程,返回值类型是IJavaProject。getParent:返回父元素,返回值类型是IJavaElement。getResource:返回元素对应的资源,返回值类型是IResource。(2) IClassFile 此接口代表编译后的class二进制文件。isClass:判断是否是Java类。isInterface:判断是否是接口。(3) ICompilationUnit 此接口代表Java源文件。getAllTypes:返回此文件中定义的所有类型,返回值类型是IType。一个Java文件中可以定义多个类型。getPrim
4、ary:返回主类型,返回值类型是ICompilationUnit。(4) IJavaModel 此接口表示根 Java 元素,对应于工作空间。是所有具有 Java 性质的项目的父类。它对于Java项目的作用和IWorkspaceRoot对于IProject的作用相似。contains:判断是否存在指定的资源。getJavaProject:返回指定名字的Java项目,返回值类型是IJavaProject。getJavaProjects:返回所有的Java项目,返回值类型是IJavaProject。getWorkspace:返回所在的工作空间。(5) IJavaProject 此接口表示Java项
5、目。IJavaElement findElement(IPath path):返回项目的path路径下的Java元素。IPackageFragment findPackageFragment(IPath path):返回项目的path路径下的IPackageFragment。IPackageFragmentRoot findPackageFragmentRoot(IPath path):返回项目的path路径下的IPackageFragmentRoot。findType:根据一个全名取得此元素的类型,此类有数个重载方法,返回值类型为IType。getAllPackageFragmentRoot
6、s:返回所有的IPackageFragmentRoot,返回值类型是IPackageFragmentRoot。getOutputLocation:返回输出路径,返回值类型是IPath。getRequiredProjectNames:返回依赖项目,返回值类型是字符串数组。setOutputLocation:设定输出路径。(6) IPackageFragment 此接口表示整个包或者包的一部分。createCompilationUnit:创建一个ICompilationUnit,返回值类型是ICompilationUnit。getClassFile:返回指定名称对应的IClassFile,返回值类
7、型是IClassFile。getClassFiles:返回所有的IClassFile,返回值类型是IClassFile。getCompilationUnit:返回指定名称对应的ICompilationUnit,返回值类型是ICompilationUnit。getCompilationUnits:返回所有ICompilationUnit,返回值类型是ICompilationUnit。getKind:判断此包是源码包还是普通包,返回值是int型,如等于IPackage- FragmentRoot.K_SOURCE则是源文件包,如等于IPackageFragmentRoot.K_BINARY则为普通
8、包。hasSubpackages:是否有子包。(7) IPackageFragmentRoot 此接口表示一组包段,并将各段映射至底层资源,它可以是文件夹、JAR或ZIP文件。createPackageFragment:创建一个IPackageFragment,返回值类型是IPackage- Fragment。getKind:此包段是源码包段还是二进制包段,返回值类型是int,如果等于IPackageFragmentRoot.K_SOURCE则是源文件包段,如果等于IPackageFragment- Root.K_BINARY则为二进制包段。getPackageFragment:根据包名返回对
9、应的IPackageFragment。常用工具类(1) JavaCore(定义在org.eclipse.jdt.core包下)JavaCore从Plugin继承,它是JDT插件的生命周期管理器。不过对于第三方插件开发人员来说,它的重要性更多地体现在它提供的一些工具类方法中。IJavaElement create(IFile file):从文件创建对应的Java元素。IJavaElement create(IFolder folder):从文件夹创建对应的Java元素。IJavaProject create(IProject project):得到IProject对应的IJavaProject。
10、IJavaElement create(IResource resource):从资源创建对应的Java元素。IJavaModel create(IWorkspaceRoot root):从工作空间根目录得到对应的IJavaModel。IClassFile createClassFileFrom(IFile file):从文件创建对应的IClassFile。ICompilationUnit createCompilationUnitFrom(IFile file):从文件创建对应的ICompilationUnit。style=LINE-HEIGHT: 17.5pt; TEXT-INDENT:
11、21pt(2) JavaUI(定义在org.eclipse.jdt.ui包下)JavaUI中定义了常用的Java插件界面相关的方法。createPackageDialog:创建一个包选择对话框,返回值是SelectionDialog。createTypeDialog:创建一个类型选择对话框,返回值是SelectionDialog。IEditorPart openInEditor(IJavaElement element):用编辑器打开指定的Java元素并返回编辑器实例。revealInEditor(IEditorPart part, IJavaElement element):在编辑器中定位元
12、素element。插件开发中经常会碰到一些常用的技巧,掌握这些技巧可以极大地提高插件的开发效率,并且可以减小插件的体积。下面列出一些常见的技巧。(1) 由一个普通项目得到Java项目Java项目是一种特殊的项目,需要注意的是IJavaProject并不是从IProject继承的。不能将一个IProject对象强制转换成一个IJavaProject对象,也不能把一个IJavaProject实例赋值给IProject变量。由IProject项目得到Java项目的方式:IJavaProject javaPoject = JavaCore.create(IProject); 由IJavaProject
13、得到IProject的方式:调用IJavaProject的IProject getProject();(2)得到工作空间中的所有Java项目我们可以首先得到工作空间中的所有项目,然后逐个进行转换。不过这不免麻烦了一些,下面介绍更好的方式。IJavaModel是所有Java项目的根,通过它就可以得到所有的Java项目:1. IWorkspaceRootroot=ResourcesPlugin.getWorkspace().getRoot(); 2. IJavaModeljModel=JavaCore.create(root); 3. IJavaProjectjProject=jModel.get
14、JavaProjects();(3) 打开Java编辑器并显示Java编译单元的特定成员代码如下:1. voidshowMethod(IMembermember) 2. ICompilationUnitcu=member.getCompilationUnit(); 3. IEditorPartjavaEditor=JavaUI.openInEditor(cu); 4. JavaUI.revealInEditor(javaEditor,member); 5. (4) 在工程下创建一个com.cownew包,并创建一个Hello.java文件(5) 打开【打开类型】对话框以下代码段使用 JavaU
15、I 类来打开【打开类型】对话框:1. newProgressMonitorDialog(parent), 2. SearchEngine.createWorkspaceScope(),用类似方法还可以创建【打开包】和【打开主要类型】对话框。(6) 打包指定的文件我们写一些工具的时候也许需要把文件打成jar包,然后进行发布到应用服务器等操作,调用JDT提供的类可简化这个操作(用到的打Jar包的类都在org.eclipse.ui.jarpackager下):1. JarPackageDatadescription=newJarPackageData(); 2. IPathlocation=newP
16、ath(C:/cownew.jar); 3. description.setJarLocation(location); 4. description.setSaveManifest(true); 5. description.setManifestMainClass(mainType); 6. description.setElements(filestoExport); 7. IJarExportRunnablerunnable= 8. description.createJarExportRunnable(parentShell); 9. newProgressMonitorDialog
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Eclipse 插件 开发 中的 Java 项目 模型 12
限制150内