JavaModel

概述:JavaModel是JDT的工程模型

 

模型中出现的接口:

IJavaElement:模型的最基本接口,所有的javamodel都会实现此接口,接口定义的内容很简单,就是获取一些模型或者资源。主要有getElementName,getElementType,getJavaModel,getJavaProject,getParent,getPath,getResource。

 

IJavaModel:jdt的root模型,与eclipse的IWorkspaceRoot相对应,可以用下面代码获取IJavaModel

JavaCore.create(workspace.getRoot())

contains:判断资源是否是java资源

copy:delete:getWorkspace:move:都是些见文识意的方法,具体用的时候再学习细节

 

IJavaProject:jdt工程模型

findElement:各种找子元素的方法

findPackageFragment:找包节点对象

findPackageFragmentRoot:包的root跟包节点有所不同,root是编译路径的起始位置

findType:会获得一个IType是java源码和class的模型的父接口,所有这里可以获取这两种文件的模型对象

getOptions和getOption返回的是java文件的模板格式之类的描述,还有对应的setXX方法

setRawClasspath:动态改变编译路径的方法,其实就是帮你修改每个java工程下面的“.classpath”文件

newTypeHierarchy:去掉这个new,这一类型的方法都是描述java文件的本地修改记录的

 

IPackageFragmentRoot:包的根节点,一个root对象包含一组IPackageFragment,当然IPackageFragment内部也是可以嵌套的。但是为啥还要有个IPackageFragmentRoot呢?是因为JDT会为每个工程设置编译路径,去找相应的jar或者class或者java。

 

 

IPackageFragment:包,有两种类型的子节点IClassFile和ICompilationUnit,此接口里面很多操作ICompilationUnit和IClassFile节点的方法

 

ICompilationUnit:有三类子节点IPackageDeclaration,IImportContainer,IType这部分是跟AST重叠的一部分。ICompilationUnit对于JDT的理解是很重要的,因为大部分使用JDT的功能都是用来操作java文件。

becomeWorkingCopy:中文意思成为工作拷贝,就是把当前编辑单元在内存中拷贝一个副本,对这个副本的所有修改,都是在内存中的修改。

void commitWorkingCopy(boolean force, IProgressMonitor monitor) throws JavaModelException;:提交工作副本,相当于持久化,force参数如果是true就直接覆盖,false碰到冲突就报异常。

原则上,所有对ICompilationUnit内部节点的操作都直接使用AST进行处理,因为它更专业,而ICompilationUnit本身处理持久和加载之类的事情。

discardWorkingCopy:销毁副本,施放资源。

getPrimary:返回一个主要的编辑单元

 

CompilationUnit:这个类不是AST里面的编辑单元,而是ICompilationUnit的实现类,它同时继承了Openable,所以它具备关闭和打开的能力。

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值