zoukankan
html css js c++ java
EMF的一些总结(1)——关于Packages and Factories
Packages and Factories
package和factory类帮助你访问模型的metadata,或者创建模型的实例。
通过package可以轻松的获得模型的EClass对象,如:
EClass purchaseOrderClass
=
epo2Package.getPurchaseORder();
例外还有一种方法也可以通过package类对象获得model的EClass对象,如:
EClass purchaseOrderClass
=
(EClass)epo2Package.getEClassifier(
"
PurchaseOrder
"
);
可以通过类似的方法访问模型的属性、引用还有其他更多的信息。
tip: EEnum是EDataType的子类
获得package对象的方法:
1.通过加载外部.ecore文件,从加载的Resource对象中获取,如:
ResourceSet resourceSet
=
new
ResourceSetImpl();
URI fileURI
=
URI.createURI(
"
/ExtendedPO2.ecore
"
);
Resource resource
=
resourceSet.getResource(fileURI,
true
);
EPackage epo2Package
=
(EPackage)resource.getContents().get(
0
);
2.通过package registry来访问,package registry提供了namespace URIs到EPackage的映射关系。如果是插件方式的开发,通过定义扩展点可以在插件加载的时候把package对象注册到registry中,如:
<
extension point
=
"
org.eclipse.emf.ecore.generated_package
"
>
<
package
uri
=
"
http:///com/example/epo2.ecore
"
class
=
"
com.example.epo2.EPO2Package
"
/>
</
extension
>
如果不是插件开发方式,可以功过构造函数来将package注册到Registry实例中,如:
protected
EPackageImpl(String packageURI, EFactory factory)
{
super
();
Registry.INSTANCE.put(packageURI,
this
);
}
注册后可以功过下面代码获得package对象:
EPackage.Registry.INSTANCE.getEPackage()
查看全文
相关阅读:
LETTers比赛第十二场解题报告
LETTers练习赛第十场 第四题
LETTers练习赛第十场 第二题
LETTers练习赛第十场 第一题
LETTers练习赛十一场解题报告
RedHat Enterprise Linux 基本网络配置
c# 连接MySQL中文乱码问题的解决方法
[原]iBatis.Net(C#)系列一:简介及运行环境
ArcGIS 9.3 sp1 下载更新
[原]iBatis.Net(C#)系列二:SQL数据映射
原文地址:https://www.cnblogs.com/youngerbaby/p/391949.html
最新文章
C#中调用SQL存储过程
Mysql的性能优化
项目管理的五个过程和九大知识领域
在Centos的笔记本上更改盖子禁止休眠
IE滤镜与CSS3效果
一些前端开发的笔试题及答案(期待更好的答案)
兼容IE的内阴影和外阴影效果
jQuery瀑布流插件——jQuery.Waterfall
jQuery性能优化的28个建议
js,css三种方法解决IE6下position:fixed的Bug以及闪动问题
热门文章
swiper使用
ios签名signature失败,刷新页面成功
精品笑话
男人不成熟的35个标志
80句话,值得你珍藏一辈子
一生中最应珍惜的十种人
女人变心的5个经典表现
男人必须明白的22个道理
经典的15句话
LETTers练习赛第十场 第三题
Copyright © 2011-2022 走看看