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()
查看全文
相关阅读:
shell 脚本语法
discuz pre_forum_postposition表说明
PHP调试工具Xdebug安装配置教程
检查用户头像状态的脚本
PHP 性能监测
Mysql 索引优化
MySQL主从复制配置
vue mixin 混入
vue渲染方式:render和template的区别
vue自定义指令directive Vue.directive() directives
原文地址:https://www.cnblogs.com/youngerbaby/p/391949.html
最新文章
Python学习————作业(文件处理)
Python学习————集合
Python学习————作业
Python学习————字典类型
Python学习————元组
Python学习————列表类型
Python学习————流程控制之for循环
Python学习————数字类型
Python学习————字符串类型
Python学习————作业
热门文章
51Nod1417 天堂里的游戏
51Nod2206 低买高卖
51Nod2522 和为K的倍数
51Nod1278 相离的圆
51Nod2488 矩形并的面积
51Nod2518 和为S
51Nod2489 小b和灯泡
欧拉函数
51Nod1070 Bash游戏 V4
微信客服消息
Copyright © 2011-2022 走看看