歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

使用EMF建立模型並生成Java代碼

接上文:http://www.linuxidc.com/Linux/2011-10/44812.htm

EMF實際上定義了2種meta model,分別稱為Ecore和Genmodel。Ecore包含了模型的定義,我們在創建EMF模型的時候,也是通過新建和編輯Ecore文件來進行。Genmodel包含了自動生成Java代碼(模型的POJO類)的信息,比如怎樣生成POJO,生成的POJO放到哪裡。當對Ecore進行修改時,Genmodel自動獲得更新。


創建一個EMF項目(或者plugin項目也可),然後建立一個Ecore模型。



打開Properties視圖,自行定義model的名稱,namespace prefix,以及namespace url。



右鍵點擊新建好的csdn模型,添加child。

child有5種支持類型。

EAnnotation是與Teneo結合,用作和hibernate以及數據庫schema之間的mapping;

EClass是指模型裡面的一個類;

EData Type代表數據的類型,比如int,float,或者java.util.Date



筆者創建了一個叫Blog的EClass,通過Properties視圖可以修改這個EClass的屬性,通過右擊Blog,可以添加新的child或者sibling。

其中EReference是一個指向其他EClass的鏈接,比如可以用來定義Blog類中包含的類成員變量,或者可以理解為數據庫中的foreign key。




在Ecore創建完成後,新建一個genmodel (EMF Generator Model),在“New EMF Generator Model”這一步選擇Ecore model



選擇剛才建立的csdn.ecore,然後點擊Load




點擊Finish後,genmodel生成完畢。


在Properties視圖中可以配置genmodel,比如Base Package可以定義將生成的代碼放到哪個路徑底下。



右擊生成的genmodel,可以選擇生成各種代碼,其中“Generate Model Code”會生成模型類和其他相關Java類。



生成的Java代碼分為3個包,model.csdn,model.csdn.impl,model.csdn.util。

model包裡面主要有所有EClass的接口文件(所有接口均繼承自EObject,因此所有的EClass都是EObject的子類),以及非常重要的Factory文件(用來創建EClass文件的實例,Factory類的eInstance.createXXX()方法是創建實例的唯一方法);

model.impl包裡面主要是model包中接口文件的具體類;

model.util包裡面有AdapterFactory。

Copyright © Linux教程網 All Rights Reserved