隨筆: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一個(gè)注冊表實(shí)現(xiàn),沒有的話用系統(tǒng)缺省注冊表
??????resourceFactoryRegistry?
=
????????
new
?ResourceFactoryRegistryImpl()
????????
{
??????????
public
?Resource.Factory?delegatedGetFactory(URI?uri)
??????????
{
????????????
return
?Resource.Factory.Registry.INSTANCE.getFactory(uri);
??????????}
????????}
;?
//
代理系統(tǒng)注冊表,注意這個(gè)應(yīng)該是正宗的。
????}
????
return
?resourceFactoryRegistry;
??}
所以自己new 出來的ResourceSet可以向注冊表中任意添加工廠實(shí)現(xiàn)。
2. 調(diào)用注冊表的getFactory(URI), 實(shí)現(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ù)擴(kuò)展名查找
??????
if
?(resourceFactory?
==
?
null
)
??????
{
????????resourceFactory?
=
?extensionToFactoryMap.get(
"
*
"
);?
//
嘗試查找缺省擴(kuò)展
????????
if
?(resourceFactory?
==
?
null
)
????????
{
??????????resourceFactory?
=
?delegatedGetFactory(uri);?
//
自行實(shí)現(xiàn)可以擴(kuò)展此方法解析。
????????}
??????}
????}
????
//
Descriptor可以用于編程使用
????
return
?
??????resourceFactory?
instanceof
?Resource.Factory.Descriptor?
?
????????((Resource.Factory.Descriptor)resourceFactory).createFactory()?:
????????(Resource.Factory)resourceFactory;
??}
查找一個(gè)工廠居然這么復(fù)雜!正因?yàn)檫@么復(fù)雜,才能支持platform/file/fttp等眾多千奇百怪的URI
不同類型的工廠加工出不同類型的Resource, 才會(huì)輸出為XSD/XML/XMI/....
如果直接操作系統(tǒng)注冊表要小心。EMF中定義了幾個(gè)擴(kuò)展點(diǎn),可以實(shí)現(xiàn)類似目的。
已知的ResourceFactory實(shí)現(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
閱讀(1140)
評論(0)
編輯
收藏
所屬分類:
程序點(diǎn)滴
、
學(xué)習(xí)筆記
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關(guān)文章:
吹一吹偶的新作品:skype remote desktop
GWT開發(fā)中的幾個(gè)問題
開發(fā)過程中的雞生蛋蛋生雞的問題
監(jiān)聽Swing窗口的鍵盤鼠標(biāo)事件
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)
給我留言
查看公開留言
查看私人留言
隨筆分類
學(xué)習(xí)筆記(11)
(rss)
程序點(diǎn)滴(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兄弟篇]
最近也在看這個(gè),有沒有好點(diǎn)的文章和代碼啊,有的話麻煩給些,謝謝,郵箱:
huanggenping2002@163.com
--zebrahgp
2.?re: SNMP親密接觸
請問,我在接收Trap時(shí),同時(shí)有多個(gè)設(shè)備發(fā)送,在同一時(shí)間接收到的會(huì)有丟失的情況,怎么解決呢?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)容較長,點(diǎn)擊標(biāo)題查看
--1984prince
Powered By:
博客園
模板提供
:
滬江博客
主站蜘蛛池模板:
亚洲欧洲日产国码在线观看
|
亚洲中文字幕乱码AV波多JI
|
**真实毛片免费观看
|
久久综合久久综合亚洲
|
亚洲第一永久AV网站久久精品男人的天堂AV
|
成人免费乱码大片A毛片
|
亚洲制服丝袜精品久久
|
国产亚洲情侣一区二区无
|
毛片免费全部播放无码
|
免费一级毛suv好看的国产网站
|
精品国产成人亚洲午夜福利
|
免费国产在线观看不卡
|
精品女同一区二区三区免费站
|
亚洲Av永久无码精品黑人
|
亚洲人成电影网站
|
亚洲精品国产精品乱码不卡
|
国产在线jyzzjyzz免费麻豆
|
一级做a爰片性色毛片免费网站
|
亚洲精品熟女国产
|
亚洲精品无码久久不卡
|
国产免费看JIZZ视频
|
久久久久久久久久国产精品免费
|
亚洲Av永久无码精品一区二区
|
亚洲视频欧洲视频
|
中文字幕不卡亚洲
|
国产成人啪精品视频免费网
|
最近免费中文字幕mv电影
|
尤物视频在线免费观看
|
亚洲人成网站在线在线观看
|
久久亚洲精品成人AV
|
久久亚洲高清综合
|
日本大片在线看黄a∨免费
|
久久精品国产免费观看
|
毛片免费在线观看
|
www免费插插视频
|
国产精品亚洲专区无码WEB
|
亚洲精品在线电影
|
亚洲成AV人片在线观看
|
红杏亚洲影院一区二区三区
|
国产性生交xxxxx免费
|
成人性生交视频免费观看
|