-
Eclipse
插件开发中的
Java
项目模型
Eclipse
插件开发中的
Java
项目模型是比较重要的内容,也是我们最长接触到的。本文将详细的为大家讲解
Java
项目模型。
AD
:
Java
项目模型
Eclipse
的项目有很多种,包
括
Java
项目、
C++
项目、
C#
项目等,每种项目都有自己的特点。我们
最常接触
到的项目就是
Java
项目,
因此我们重点来讲解一下
Java
项目模型。
< br>
Java
模型是用来对与创建、编辑和构建
Java
程序相关联的对象进行建模的一些类。
J
ava
模型类是在中定义
的。这些类实现资源的特定于
Java
的行为,并进一步将
Java
资源分解成模型元素。
Java
模型的继承结构图如图所示。
图
Java
模型的继承结构图
IJav
aElement
的子类接口还有
IMethod
、
IType
等,在这里没有全部列出。
Java
模型中的类结构比较简单,
级次也非常少
。
下面介绍一下各个接口的主要方法。
(1)
IJavaElement
exists
:判断元素是否存在。处理
Java
元素与处理资源对象相
似。当使用
Java
元素时,实际上是在使用某
些底层的模型对象的句柄。必须使用
exists()
来确定元素是否真正存在于工作空间中。
getElemen
tName
:返回元素的名称。
ge
tJavaModel
:返回其对应的
JavaModel
p>
,返回值类型是
IJavaModel
。<
/p>
getJ
avaProject
:返回元素对应的
Java
工程,返回值类型是
IJavaProject
。<
/p>
getParent
:返回父元素,返
回值类型是
IJavaElement
。
getResource
:返回元素对应的资源,返回值类
型是
IResource
。
(2)
IClassFile
此接口代表编译后的
class
p>
二进制文件。
isClass
:判断是否是
Java
类。
isInterface
:判断是否是接口。
(3)
ICompilationUnit
此接口代表
Java
源文件。
ge
tAllTypes
:返回此文件中定义的所有类型,返回值类型是
IType[]
。一个
Java
文
件中可以定义多个类型。
getPrimary
:返回主类型,返回值类型是
ICompilationUnit
。
(4)
IJavaModel
此接口表示根
Java
元素,对应于工作空间。是所有具有
Java
性质的项目的父类。它对于
Java
项目的作用
p>
和
IWorkspaceRoot
对于
p>
IProject
的作用相似。
contains
:判断是否存在指定的资源。
getJavaProject
:返回指定名字的
Java
项目,返回值类型是
IJavaProje
ct
。
getJavaProjec
ts
:返回所有的
Java
项目,返回
值类型是
IJavaProject[]
。
getWorkspace
:返回所在的工作空间。
p>
(5)
IJavaProject
此接口表示
Java
项目。
IJavaElement findElement(IPath path)
:返回项目的
path
路径下的
Java
元素。
IPackageFragment
findPackageFragment(IPath path)
:返回项目的
p>
path
路径下的
IPackageFra
gment
。
IPackageFragmentRoot
findPackageFragmentRoot(IPath path)
:返回项
目的
path
路径下的
IPackag
eFragmentRoot
。
fi
ndType
:根据一个全名取得此元素的类型,此类有数个重载方法,返回值类型为<
/p>
IType
。
getAllPackageFragmentRoots
:
返
回所有的
IPackageFragmentRoot
,
返回值类型是
IPackageFragmentRoot[]
。
getOutputLocation<
/p>
:返回输出路径,返回值类型是
IPath
。
getRequiredProjectNames
p>
:返回依赖项目,返回值类型是字符串数组。
setOutputLocation
:设定输出路径。
(6)
IPackageFragment
此接口表示整个包或者包的一部分。
createCompilationUnit
:创建一个
IC
ompilationUnit
,返回值类型是
ICompil
ationUnit
。
getCla
ssFile
:返回指定名称对应的
IClassFile
p>
,返回值类型是
IClassFile
。<
/p>
getClassFiles
:返回所
有的
IClassFile
,返回值类型是
IClassFile[]
。
g
etCompilationUnit
:返回指定名称对应的
I
CompilationUnit
,返回值类型是
ICompi
lationUnit
。
getCo
mpilationUnits
:返回所有
ICompilat
ionUnit
,返回值类型是
ICompilationUn
it[]
。
getKind
:判断此包是源码包还是普通包,返回值是
int
型,如等于
IPackage-
则是源文件包,如等于则为
普通包。
hasSubpackages
:是否有子包。
(7)
IPackageFragmentRoot
此接口表示一
组包段,并将各段映射至底层资源,它可以是文件夹、
JAR
或
ZIP
文件。
createPackageFragment
:创建一个
I
PackageFragment
,返回值类型是
IPacka
ge- Fragment
。
getKind
:此包段是源码包段
还是二进制包段,返回值类型是
int
,如果等于则是源文件包
段,如果等于
IPackageFragment-
则为二进制包段。
getPacka
geFragment
:根据包名返回对应的
IPackage
Fragment
。
常用工具类
(1)
JavaCore(
定义在包下
)
<
/p>
JavaCore
从
Plugin
继承,它是
JDT
插件的生命周期管理器。不
过对于第三方插件开发人员来说,它的重要
性更多地体现在它提供的一些工具类方法中。
IJavaElement create(IFile f
ile)
:从文件创建对应的
Java
元素。
IJavaElement
create(IFolder folder)
:从文件夹创建对应的
Java
元素。
IJavaProject create(IProject project)
p>
:得到
IProject
对应的
IJavaProject
。
IJavaElement create(IResource resource)
:从资源创建对应的
Java
元素。<
/p>
IJavaModel
create(IWorkspaceRoot root)
:从工作空间根目录得到对
应的
IJavaModel
。
IClassFile createClassFileFrom(IFile fi
le)
:从文件创建对应的
IClassFile
。
ICompilationUnit
createCompilationUnitFrom(IFile file)
:从
文件创建对应的
ICompilationUnit
。
style=
JavaUI(
定义在包下
)
JavaUI
中定义了常用的
Java
插件界面相关的方法。
createPac
kageDialog
:创建一个包选择对话框,返回值是
Se
lectionDialog
。
cr
eateTypeDialog
:创建一个类型选择对话框,返回值是
< br>SelectionDialog
。
IEditorPart openInEditor(IJavaElement e
lement)
:用编辑器打开指定的
Java
元素并返回编辑器实例。
revealInEditor(IEditorPart part,
IJavaElement element)
:在编辑器中定位元素
< br>element
。
插件开发中
经常会碰到一些常用的技巧,掌握这些技巧可以极大地提高插件的开发效率,并且可以减小插件
< br>的体积。下面列出一些常见的技巧。
(1)
由一个普通项目得到
Java
项目
p>
Java
项目是一种特殊的项目,
需要注意的是
IJavaProject
并不
是从
IProject
继承的。
不能将
一个
IProject
对象强制转换成一个
IJavaProject
对象,也不能把一个
IJava
Project
实例赋值给
IProject
< br>变量。
由
IProject<
/p>
项目得到
Java
项目的方式:
IJavaProject javaPoject =
(IProject);
由
IJa
vaProject
得到
IProject
的方式:
调用
IJavaPro
ject
的
IProject
getProject();
(2)
得到工作空间中的所有
Java
项目
我们可以首先得到工作空间中的所有项目,然后逐个进行转换。不过这不免麻烦了一些,
下面介绍更好的方
式。
IJavaModel
< br>是所有
Java
项目的根,通过它就可以得到所有的
p>
Java
项目:
1.
2.
3.
IWorkspaceRoot
root
=
().getRoot();
IJavaModel
jModel
=
(root);
IJavaProject
jProject[]
=
();
(3)
打开
Java
编辑器并显示
Java<
/p>
编译单元的特定成员
代码如下:
1.
2.
3.
4.
5.
void
showMethod(IMember
member)
{
ICompilationUnit
cu
=
();
IEditorPart
javaEditor
=
(cu);
(javaEditor,
member);
}
(4)
在工程下创建一个包,并创建一个文件
(5)
打开【打开类型】对话框
以下代码段使用
JavaUI
类来打开【打开类型】对话框:
1.
2.
new
ProgressMonitorDialog(parent),
(),
-
-
-
-
-
-
-
-
-
上一篇:电力电子系统以热阻为基础的热设计探讨
下一篇:数据结构中的英文词汇