隨筆:25 文章:1 評論:66 引用:0
steeven
BlogJava
首頁
發(fā)新隨筆
發(fā)新文章
聯(lián)系
聚合
管理
EMF之ResourceSet探索(2)
來看看ResourceSet.createResource(URI):Resource方法,從URI到Resource的過程如下:
1. getResourceFactoryRegistry()
??
public
?Resource.Factory.Registry?getResourceFactoryRegistry()
??
{
????
if
?(resourceFactoryRegistry?
==
?
null
)
????
{
//
可以自行Set一個注冊表實現(xiàn),沒有的話用系統(tǒng)缺省注冊表
??????resourceFactoryRegistry?
=
????????
new
?ResourceFactoryRegistryImpl()
????????
{
??????????
public
?Resource.Factory?delegatedGetFactory(URI?uri)
??????????
{
????????????
return
?Resource.Factory.Registry.INSTANCE.getFactory(uri);
??????????}
????????}
;?
//
代理系統(tǒng)注冊表,注意這個應(yīng)該是正宗的。
????}
????
return
?resourceFactoryRegistry;
??}
所以自己new 出來的ResourceSet可以向注冊表中任意添加工廠實現(xiàn)。
2. 調(diào)用注冊表的getFactory(URI), 實現(xiàn)如下:
?
public
?Resource.Factory?getFactory(URI?uri)
??
{
????String?protocol?
=
?uri.scheme();
????Object?resourceFactory?
=
??protocolToFactoryMap.get(protocol);?
//
先根據(jù)protocol查找
????
if
?(resourceFactory?
==
?
null
)
????
{
??????String?extension?
=
?uri.fileExtension();
??????resourceFactory?
=
?extensionToFactoryMap.get(extension);?
//
找不到再根據(jù)擴展名查找
??????
if
?(resourceFactory?
==
?
null
)
??????
{
????????resourceFactory?
=
?extensionToFactoryMap.get(
"
*
"
);?
//
嘗試查找缺省擴展
????????
if
?(resourceFactory?
==
?
null
)
????????
{
??????????resourceFactory?
=
?delegatedGetFactory(uri);?
//
自行實現(xiàn)可以擴展此方法解析。
????????}
??????}
????}
????
//
Descriptor可以用于編程使用
????
return
?
??????resourceFactory?
instanceof
?Resource.Factory.Descriptor?
?
????????((Resource.Factory.Descriptor)resourceFactory).createFactory()?:
????????(Resource.Factory)resourceFactory;
??}
查找一個工廠居然這么復雜!正因為這么復雜,才能支持platform/file/fttp等眾多千奇百怪的URI
不同類型的工廠加工出不同類型的Resource, 才會輸出為XSD/XML/XMI/....
如果直接操作系統(tǒng)注冊表要小心。EMF中定義了幾個擴展點,可以實現(xiàn)類似目的。
已知的ResourceFactory實現(xiàn)有:XSD/ECore/EMOF/XML/XMI,XSD的輸出方法的介紹可以參考Eclipse Development using the Graphical Editing Framework and the Eclipse Modeling Framework電子書。
發(fā)表于 2006-05-26 00:02
steeven
閱讀(1131)
評論(0)
編輯
收藏
所屬分類:
程序點滴
、
學習筆記
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
網(wǎng)站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關(guān)文章:
吹一吹偶的新作品:skype remote desktop
GWT開發(fā)中的幾個問題
開發(fā)過程中的雞生蛋蛋生雞的問題
監(jiān)聽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
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(10)
給我留言
查看公開留言
查看私人留言
隨筆分類
學習筆記(11)
(rss)
程序點滴(16)
(rss)
胡思亂想(8)
(rss)
隨筆檔案
2009年5月 (1)
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: 編程使用SDO[EMF兄弟篇]
最近也在看這個,有沒有好點的文章和代碼啊,有的話麻煩給些,謝謝,郵箱:
huanggenping2002@163.com
--zebrahgp
2.?re: SNMP親密接觸
請問,我在接收Trap時,同時有多個設(shè)備發(fā)送,在同一時間接收到的會有丟失的情況,怎么解決呢?snmp4j自帶的ThreadPool類有沒有在這方面起到多線程作用?
--analyser
3.?re: 編程使用SDO[EMF兄弟篇]
我也在研究soa,如果你有sdo方面的代碼,麻煩您給我一份作為參考,謝謝
郵箱: litao5168@sohu.com 謝謝
--litao
4.?re: 編程使用SDO[EMF兄弟篇]
我也在研究soa,如果你有sdo方面的代碼,麻煩您給我一份作為參考,謝謝
--litao
5.?re: 編程使用SDO[EMF兄弟篇]
評論內(nèi)容較長,點擊標題查看
--1984prince
Powered By:
博客園
模板提供
:
滬江博客
主站蜘蛛池模板:
在线观看日本免费a∨视频
|
成年人免费的视频
|
AV在线播放日韩亚洲欧
|
亚洲av无码成人影院一区
|
女人18毛片水真多免费看
|
无码囯产精品一区二区免费
|
亚洲精品中文字幕乱码三区
|
av永久免费网站在线观看
|
亚洲国产精品无码久久一线
|
99久热只有精品视频免费看
|
亚洲精品第五页中文字幕
|
波多野结衣在线免费视频
|
亚洲国产aⅴ成人精品无吗
|
国产精品无码一二区免费
|
日本一区二区在线免费观看
|
国产伦精品一区二区三区免费迷
|
久久亚洲中文无码咪咪爱
|
亚洲男人在线无码视频
|
可以免费观看的毛片
|
亚洲成AV人片久久
|
国产免费直播在线观看视频
|
www一区二区www免费
|
亚洲AV福利天堂一区二区三
|
国产日本一线在线观看免费
|
国产成人亚洲精品电影
|
亚洲人精品午夜射精日韩
|
国产亚洲AV无码AV男人的天堂
|
91热久久免费精品99
|
精品久久久久久亚洲综合网
|
中文字幕第一页亚洲
|
亚洲精品免费在线视频
|
猫咪免费观看人成网站在线
|
亚洲AV综合色区无码一区
|
国产精品久久久久久久久久免费
|
精品在线观看免费
|
亚洲国产老鸭窝一区二区三区
|
永久免费AV无码网站在线观看
|
中文字幕视频在线免费观看
|
亚洲精品无码你懂的
|
亚洲精品高清国产一线久久
|
成年男女免费视频网站
|