Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

1 EMF2VIATRA Live prototípus Valahol az erdőben, 21/11/2008.

Hasonló előadás


Az előadások a következő témára: "1 EMF2VIATRA Live prototípus Valahol az erdőben, 21/11/2008."— Előadás másolata:

1 1 EMF2VIATRA Live prototípus Valahol az erdőben, 21/11/2008

2 2 Cél  Eclipse EMF előnyei:  Elterjedt, kiforrott technológia  Ipari alkalmazásokban is elfogadott  Viatra előnyei:  Lehetőség komplex modelltranszformációkra  Inkrementális mintaillesztés, triggerek  Cél: EMF „működés” Viatra modelltér felett  Lehetőleg minimális változtatások EMF oldalon  Folyamatos kétirányú szinkron az EMF EObject struktúra és a Viatra modelltér entitásai/relációi között  (Alternatív lehetőség: EMF feletti mintaillesztés közvetlenül ) Valahol az erdőben, 21/11/2008

3 3 Ötlet  EMF elemek perzisztálása Viatra modelltérben  Ötlet: CDO technológia  Viatra notifikációk delegálása EMF felé  Alacsony szintű notifikációkból (new entity/relation) magas szintűt delegálni (new ENotification) Valahol az erdőben, 21/11/2008

4 4 Perzisztálás  Statikus rész  Ecore.ecore  kompakt viatra-ecore metamodell  Resource  Kitüntetett elem alatt lévő modellrész  metamodell és modell importer  Dinamikus rész:  ResourceSet  Viatra framework  Modell manipuláció saját EStore implementáción keresztül (ViatraStore)  Saját InternalEObject tárolja a hozzá tartozó Viatra elemet  Reflective Feature delegation (minden eGet()-, eSet()-en keresztül) Valahol az erdőben, 21/11/2008

5  Nem internál elemek változatlanok  EMF felöl átlátszó  EStoreEObjectImpl  Delegál minden manipulációs hívást egy ESore implementációnak  ViatraObjectImpl  Tárolja az adott EObject-hez tartozó Viatra Entity-t. 5 Osztályhierarchia Valahol az erdőben, 21/11/2008 InternalViatraObject EStoreEObjectImpl EObjectImpl InternalEObject ViatraObjectImpl EObject BasicEObjectImpl CompanyImpl

6 6 Példa : Company.getName() Valahol az erdőben, 21/11/2008 EStoreEObjectImpl CompanyImpl ViatraStore:EStore VIATRA framework getName() eDynamicGet(name_EStrFeature) get(company_Eobj, name_EStrFeature) EMF2Viatra getViatraEntity(company_Eobj) getViatraRelation(name_EStrFeature) Viatra2EMF getObject (company_viatraEntity, name_viatraRelation)

7 7 Notifikáció delegálás  Cél: Ha a ViatraStore által látott kép változik, akkor legyen notifikáció  Kihívás: Egy adott EMF notifikáció különböző VIATRA szekvenciából állhat elő  ViartaNotificationListener  ICoreNotificationListener implementáció  Főleg instanceOf változás figyelése  Resource állítja rá a framework-re Valahol az erdőben, 21/11/2008

8 8 TODO  Implementációs TODO  Hiányos ViatraStore  Hiányos ViatraNotificationListener  Koncepcionális TODO  Nem perzisztált EMF elemek állapotának tárolása Valahol az erdőben, 21/11/2008


Letölteni ppt "1 EMF2VIATRA Live prototípus Valahol az erdőben, 21/11/2008."

Hasonló előadás


Google Hirdetések