問題/問題是否有可能在EMF中擁有ESuperType的POJO?
給出一個簡單的Java類與非EMF感知API來如
public class BankAccount {
String ownerName;
int accountNumber;
// ...
}
,也讓我們假設我不允許更改或重新編譯這個類(因爲它來自API)。
是否有任何簡單的方法可以將此類用作EMF中的EClass的ESuperType? (當然,單個類只是一個例子,我需要包裝一個由30-50個類組成的API ...)。
自己的想法
就個人而言,我認爲這是不可能的開箱。
我只能想到兩種方式,都有相當的努力,不容易實現。
創建反映原類(
EBankAccount
,具有ownerName
和accountNumber
作爲EAttributes
)Ecore模型和公用方法/機制,通過複製其字段到對應EStructuralFeatures
包裝了原始對象,並將EAdapter
S的負責同步兩個對象。掛鉤到EMF.CodeGen中,並在那裏做一些魔術,這樣就可以在生成的代碼中使原始類作爲超類,同時仍然實現EMF合約(=實現接口等) 。
但也許有一些EMF(或現有的擴展)隱藏功能,沿着這些線做一些事情,我不知道它?
+1爲「實例類型名稱」屬性。我從來沒有用過它。我會玩弄它,看看它有什麼... –