© Copyright International Business Machines Corporation 2006. Minden jog fenntartva. Az USA kormányzati felhasználóinak jogkorlátozása: A használatot, a másolást és a nyilvánosságra hozatalt az IBM Corporation vállalattal kötött GSA ADP Schedule Contract korlátozza.
Ha a modell-modell átalakítások tartalomszerzésekor a cél egy UML 2 modell, akkor az alapértelmezett UML profilok nem kerülnek automatikusan leképezésre. A default.epx ULM profil például nem kerül automatikusan leképezésre. Ezeket a profilokat manuálisan kell leképezni, vagy az UMLDefaultLibrariesAddRule keretrendszert kell használni. Ezt a keretrendszert manuálisan adhatja hozzá az átalakításhoz, ha a cél egy EClass UML modell.
Ha hozzá szeretné adni a keretrendszert az átalakításhoz, akkor adja hozzá a következő kódot az átalakításhoz:
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
protected void addTransformElements(Registry registry) {
add(new UMLDefaultLibrariesAddRule());
addGeneratedTransformElements(registry);
// Az előállított átalakítási elemek után itt továbbiakat adhat hozzá
// Ne felejtse el eltávolítani a @generated címkét, vagy hozzáadni a NOT karaktersorozatot
}
Ha egy modell-modell átalakítás tartalomszerzésekor "beégetés" támogatásra van szükség a cél modellben, akkor az "org.eclipse.core.runtime.contentTypes" kiterjesztésnek benne kell lennie egy bedolgozóban az Eclipse munkaterületen. Ezt a kiterjesztést olyan bedolgozóban adhatja meg, amely rendelkezik a cél modell tartományból származó tartománynévvel. A kiterjesztésről további információkat az Projekt összehasonlítása/összefésülése rész kiterjesztési pont dokumentációjában talál. Ez lehetővé teszi összetett beégetési stratégia létrehozását a cél modellhez. Egyszerűbb EMF stratégiáknál megadhatja a következő kiterjesztést (az "xxx" a célfájl kiterjesztése):
<extension
point="org.eclipse.core.runtime.contentTypes">
<file-association
content-type="com.ibm.xtools.comparemerge.emf.emfContentType"
file-extensions="xxx"/>
</extension>
Modell-modell átalakítások tartalomszerzésekor a bemenetként vagy kimenetként megadott Ecore modelleknek megfelelő genmodellekkel kell rendelkezniük. A genmodellek létrehozásához használhatja az EMF modell varázslót. Győződjön meg róla, hogy a genmodellek létrehozása után előállította a kódot. A genmodelleket be kell jegyezni a fejlesztői munkaterületen, vagy ugyanazon az elérési úton kell lenniük, mint a megfelelő Ecore modellek. A genmodelleknek .genmodel fájlkiterjesztéssel kell rendelkezniük, hasonló névvel, és azonos kis- és nagybetűkkel mint az Ecore modellek. Ellenkező esetben az átalakítás tartalomszerző alrendszere nem találja meg a genmodellt. Ha az átalakítás tartalomszerző alrendszere nem találja meg a szükséges genmodelleket, akkor letiltja a kód előállítást.
Ha egy modell-modell átalakításhoz átalakítási konfigurációt hoz létre, akkor meg kell adnia a cél modellt képviselő fájlt, még akkor is, ha a fájl üres. Cél tárolónak nem adhat meg a URI-t.
Üres Ecore modell létrehozásához kattintson az Új cél tároló létrehozása gombra az átalakítási konfiguráció szerkesztő vagy varázsló főoldalán, majd adjon meg egy olyan fájlt, amelynek a kiterjesztése megegyezik a cél modell kiterjesztésével.
Ha egy modell-modell átalakítást egy JET (modell-szöveg) átalakítás felületeként szeretne integrálni, akkor egy JETRule keretrendszer példányt manuálisan hozzá kell adnia az átalakítás szolgáltatón található RootTransformation 'postProcessing' szabályaihoz. A következő példa az átalakítás szolgáltató osztályba befoglalandó kódot mutatja be. Az 'xxx' helyére írja be a JET átalakítás azonosítóját.
/**
* Gyökér átalakítást hoz létre. Itt adhat hozzá további átalakítási szabályokat
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param transform The root transformation
* @generated NOT
*/
protected RootTransformation createRootTransformation(ITransformationDescriptor descriptor) {
return new RootTransformation(descriptor, new MainTransform()) {
protected void addPostProcessingRules() {
add(new JETRule("xxx"));
}
};
}
Az UML modell kimenettel vagy bemenettel rendelkező átalakítások előállításakor adjon meg egy UML metamodellt a leképezés meghatározás gyökér bemeneteként és/vagy gyökér kimeneteként. Az UML profil leképezési meghatározáshoz adása nem adja hozzá automatikusan az UML metamodellt.
Kerülő megoldás: Adja hozzá az UML metamodellt. Ehhez kattintson a Modell hozzáadása gombra a Modell-modell átalakítás leképezés varázslóban vagy szerkesztőben.
A leképezés kapcsolatok végpontjai eltűnhetnek, ha a felhasználó az "Alapszintű" szűrésről átvált a "Köztes" vagy a "Speciális" módba, leképezéseket hoz létre, majd visszavált az "Alapszintű" szűrőmódba. Ennek hatására megjelenhetnek az olyan leképezés kapcsolatok, amelyek végpontjai semmihez nem csatlakoznak. Ez csak a leképezések megjelenésére van hatással. Nem értinti a leképezéseket és a kódot, amelyet az átalakítás a leképezésből előállít.
Kerülő megoldás: Javítsa ki a leképezések megjelenését. Ehhez állítsa be azt a szűrőmódot, amely a leképezések létrehozásakor volt érvényben.
Amikor egy leképezési fájl már nem tartalmaz olyan leképezéseket, amik leképezési bemenetként vagy kimenetként adnak meg bizonyos elemeket egy adott modellhez, akkor az a modell "kiesik" a leképezési fájlból. A nem használt modellek ellenőrzése mindig lefut, valahányszor egy leképezési bemenet vagy kimenet törlődik. A leképezési fájlban külön lista van a bemenetekhez és kimenetekhez.
Kerülő megoldás: Először hozzá kell adnia a modellt a leképezés fájlhoz, és csak utána választhatja ki a modell elemeit leképezés bemenetnek vagy kimenetnek. A modell leképezés fájlhoz való hozzáadásához kattintson a Modell hozzáadása gombra a Leképezés szerkesztőben.
Az előállított modell-modell átalaktások átalakítás konfiguráció szerkesztőjében a runSilent beállítás számos összefésülési móddal megadható, így az 'automatikus' és a 'vizuális' móddal is. Ha az összefésülési mód automatikusra vagy vizuálisra van állítva, akkor a runSilent beállítás kikényszeríti a csendes összefésülési stratégiát, amennyiben a cél modellhez megtalálható a beégetés támogatás. Ellenkező esetben egy felülíró összefésülési stratégia kerül alkalmazásra.
Ha profilokkal rendelkező Ecore metamodell - UML metamodell leképezésből hoz létre átalakítási leképezés modellt, akkor meg kell adnia a cél UML modellekben használandó profil URI-t. A rendszer alapértelmezésben a leképezés szerkesztőben megadott profil URI-jét használja. Ha megad egy forrás URI-t, akkor a rendszer átalakítja egy megfelelő bedolgozó URI-vé.
Kerülő megoldás: Megadhat egy másik URI-t a tulajdonságok oldal profileURI újradefiniáló tulajdonságában. A tulajdonság oldal megjelenítéséhez kattintson a gyökér szakaszra a leképezés szerkesztőben. Megjegyzés: Ha bejegyzett profilt használ, akkor megadhatja azt az URI-t, amellyel a profil be van jegyezve, amennyiben az nem egyezik meg az automatikusan használt profilban található URI-vel. Ha ezt nem teszi meg, akkor a bejegyzett profil többször is betöltésre kerül az erőforráskészletbe, ami problémákat okoz az összefésüléskor vagy a beégetéskor.
Ha modell-modell átalakításokban található leképező modellekből állít elő kódot, akkor a rendszer előállítja az alapszintű projektfájlokat, például a plugin.xml és a manifest.mf fájlt, amennyiben a fájlok nem találhatók. Elképzelhető hogy ez előállítás után szerkesztenie kell ezeket a fájlokat.
Kerülő megoldás:
- Ha bemeneti vagy kimeneti modelleket ad hozzá a leképezés fájlhoz, akkor szerkesztenie kell a manifest.mf fájlt. Adja hozzá a bemeneti/kimeneti modell előállított modell kódját tartalmazó bedolgozók függőségeit. Ezeknek a függőségeknek a hozzáadása kijavítja azokat a fordítási hibákat, amelyeket az ezekben a bedolgozókban található osztályok hozzáférései okoznak. Hozzáadhatja annak a bedolgozónak a függőségét, amely az új bemeneti/kimeneti modell előállított kódját tartalmazza.
- Ha olyan Java bedolgozóban hoz létre leképezés modellt, amely tartalmazza a plugin.xml és a manifest.mf fájlokat, akkor hozzá kell adnia a szükséges függőségeket a manifest.mf fájlhoz. Adja hozzá az átalakítás tartalomszerzés függőségét és a bemeneti/kimeneti modellek függőségeit. A com.ibm.xtools.transform.core.transformationProviders kiterjesztést is hozzá kell adnia a plugin.xml fájlhoz.