随笔:24 文章:1 评论:65 引用:0
steeven
BlogJava
首页
发新随笔
发新文章
联系
聚合
管理
EMF之ResourceSet探索(2)
来看看ResourceSet.createResource(URI):Resource方法,从URI到Resource的过程如下:
1. getResourceFactoryRegistry()
public
Resource.Factory.Registry getResourceFactoryRegistry()
{
if
(resourceFactoryRegistry
==
null
)
{
//
可以自行Set一个注册表实现,没有的话用系统缺省注册表
resourceFactoryRegistry
=
new
ResourceFactoryRegistryImpl()
{
public
Resource.Factory delegatedGetFactory(URI uri)
{
return
Resource.Factory.Registry.INSTANCE.getFactory(uri);
}
}
;
//
代理系统注册表,注意这个应该是正宗的。
}
return
resourceFactoryRegistry;
}
所以自己new 出来的ResourceSet可以向注册表中任意添加工厂实现。
2. 调用注册表的getFactory(URI), 实现如下:
public
Resource.Factory getFactory(URI uri)
{
String protocol
=
uri.scheme();
Object resourceFactory
=
protocolToFactoryMap.get(protocol);
//
先根据protocol查找
if
(resourceFactory
==
null
)
{
String extension
=
uri.fileExtension();
resourceFactory
=
extensionToFactoryMap.get(extension);
//
找不到再根据扩展名查找
if
(resourceFactory
==
null
)
{
resourceFactory
=
extensionToFactoryMap.get(
"
*
"
);
//
尝试查找缺省扩展
if
(resourceFactory
==
null
)
{
resourceFactory
=
delegatedGetFactory(uri);
//
自行实现可以扩展此方法解析。
}
}
}
//
Descriptor可以用于编程使用
return
resourceFactory
instanceof
Resource.Factory.Descriptor
?
((Resource.Factory.Descriptor)resourceFactory).createFactory() :
(Resource.Factory)resourceFactory;
}
查找一个工厂居然这么复杂!正因为这么复杂,才能支持platform/file/fttp等众多千奇百怪的URI
不同类型的工厂加工出不同类型的Resource, 才会输出为XSD/XML/XMI/....
如果直接操作系统注册表要小心。EMF中定义了几个扩展点,可以实现类似目的。
已知的ResourceFactory实现有:XSD/ECore/EMOF/XML/XMI,XSD的输出方法的介绍可以参考Eclipse Development using the Graphical Editing Framework and the Eclipse Modeling Framework电子书。
发表于 2006-05-26 00:02
steeven
阅读(753)
评论(0)
编辑
收藏
所属分类:
程序点滴
、
学习笔记
IT新闻
新用户注册
刷新评论列表
标题
姓名
主页
验证码
*
内容(请不要发表任何与政治相关的内容)
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
相关链接:
网站导航:
博客园
BlogJava
博客生活
IT博客网
C++博客
PHP博客
博客园社区
管理博客
教师博客
天文博客
汽车博客
足球博客
股票博客
电子博客
管理
相关文章:
吹一吹偶的新作品:skype remote desktop
GWT开发中的几个问题
开发过程中的鸡生蛋蛋生鸡的问题
监听Swing窗口的键盘鼠标事件
GWT做的guess number
EMF之ResourceSet探索(4)
EMF之ResourceSet探索(3)
EMF之ResourceSet探索(2)
EMF之ResourceSet探索(1)
Annotation Wizard for EMF插件
CALENDER
<
2006年5月
>
日
一
二
三
四
五
六
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(7)
给我留言
查看公开留言
查看私人留言
随笔分类
学习笔记(11)
(rss)
程序点滴(16)
(rss)
胡思乱想(8)
(rss)
随笔档案
2006年12月 (1)
2006年7月 (2)
2006年6月 (7)
2006年5月 (8)
2006年4月 (2)
2006年3月 (1)
2006年1月 (2)
2005年12月 (1)
文章档案
2006年8月 (1)
相册
annotation_wizard
samples
我的链接
我在csdn上的窝
(rss)
很久没打理了
我在MSN上的窝
(rss)
我在博客园的窝
(rss)
我在天涯上的窝
搜索
最新评论
1. re: SNMP亲密接触
请问,我在接收Trap时,同时有多个设备发送,在同一时间接收到的会有丢失的情况,怎么解决呢?snmp4j自带的ThreadPool类有没有在这方面起到多线程作用?
--analyser
2. re: 编程使用SDO[EMF兄弟篇]
我也在研究soa,如果你有sdo方面的代码,麻烦您给我一份作为参考,谢谢
--litao
3. re: 编程使用SDO[EMF兄弟篇]
我也在研究soa,如果你有sdo方面的代码,麻烦您给我一份作为参考,谢谢
邮箱: litao5168@sohu.com 谢谢
--litao
4. re: 编程使用SDO[EMF兄弟篇]
评论内容较长,点击标题查看
--1984prince
5. re: SNMP亲密接触
请问SNMP4j在获取iftable的时候出现乱码如何解决?
--sunnybay1
Powered By:
博客园
模板提供
:
沪江博客