隨筆:25 文章:1 評論:66 引用: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
閱讀(1131)
評論(0)
編輯
收藏
所屬分類:
程序點滴
、
學習筆記
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
吹一吹偶的新作品: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
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(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時,同時有多個設備發送,在同一時間接收到的會有丟失的情況,怎么解決呢?snmp4j自帶的ThreadPool類有沒有在這方面起到多線程作用?
--analyser
3.?re: 編程使用SDO[EMF兄弟篇]
我也在研究soa,如果你有sdo方面的代碼,麻煩您給我一份作為參考,謝謝
郵箱: litao5168@sohu.com 謝謝
--litao
4.?re: 編程使用SDO[EMF兄弟篇]
我也在研究soa,如果你有sdo方面的代碼,麻煩您給我一份作為參考,謝謝
--litao
5.?re: 編程使用SDO[EMF兄弟篇]
評論內容較長,點擊標題查看
--1984prince
Powered By:
博客園
模板提供
:
滬江博客
主站蜘蛛池模板:
免费a级黄色毛片
|
国产精品视_精品国产免费
|
99久久综合国产精品免费
|
亚洲av无码成人黄网站在线观看
|
三级网站在线免费观看
|
国产亚洲一区二区三区在线不卡
|
亚洲另类激情综合偷自拍
|
99精品一区二区免费视频
|
亚洲精品免费在线视频
|
成人免费午夜在线观看
|
色偷偷亚洲男人天堂
|
亚洲欧洲精品成人久久奇米网
|
亚洲а∨天堂久久精品9966
|
99久久免费精品国产72精品九九
|
亚洲大尺度无码无码专线一区
|
免费一级毛片清高播放
|
中文字幕av免费专区
|
亚洲日本va午夜中文字幕一区
|
久久九九兔免费精品6
|
亚洲熟伦熟女专区hd高清
|
国产一级一片免费播放i
|
美女被免费网站91色
|
99亚洲精品高清一二区
|
免费看的一级毛片
|
一区二区三区免费精品视频
|
亚洲成Av人片乱码色午夜
|
免费大片黄在线观看yw
|
尤物视频在线免费观看
|
精品亚洲成a人片在线观看少妇
|
免费a级毛片无码a∨蜜芽试看
|
狼色精品人妻在线视频免费
|
亚洲国产精品不卡在线电影
|
国产精品视频免费一区二区
|
www成人免费视频
|
亚洲国产成人91精品
|
亚洲午夜精品一级在线播放放
|
99久久国产免费-99久久国产免费
|
亚洲欧美国产国产一区二区三区
|
亚洲色欲久久久综合网东京热
|
精品香蕉在线观看免费
|
gogo免费在线观看
|