© Copyright International Business Machines Corporation 2006. Všechna práva vyhrazena. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
Při autorizaci transformací z modelu na model, pokud je cílem model UML 2, předvolené profily UML se automaticky nenamapují. Například profil UML default.epx se automaticky nenamapuje. Musíte tyto profily namapovat ručně, nebo použít základní strukturuUMLDefaultLibrariesAddRule. Můžete ručně přidat toto základní struktura do transformace, pokud je cílem model UML EClass.
Chcete-li přidat základní strukturu do transformace, přidejte do transformace následující kód:
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
protected void addTransformElements(Registry registry) {
add(new UMLDefaultLibrariesAddRule());
addGeneratedTransformElements(registry);
// Můžete přidat více prvků transformace za ty vygenerované zde
// Nezapomeňte odstranit značku @generated nebo k ní přidat NOT
}
Chcete-li v autorizaci transformací modelu na model mít podporu "kombinování" v cílovém modelu, musíte mít rozšíření "org.eclipse.core.runtime.contentTypes" v modulu plug-in v pracovním prostoru Eclipse. Můžete uvést toto rozšíření v modulu plug-in, který má název domény odvozený z domény cílového modelu. Další informace o tomto rozšíření viz dokumentace k bodům rozšíření v projektu Porovnání/sloučení. To vám umožňuje sestavit sofistikovanou strategii kombinování pro cílový model. Pro jednodušší strategii EMF můžete uvést následující rozšíření (nahraďte "xxx" rozšířením cílového souboru):
<extension
point="org.eclipse.core.runtime.contentTypes">
<file-association
content-type="com.ibm.xtools.comparemerge.emf.emfContentType"
file-extensions="xxx"/>
</extension>
Při autorizaci transformací z modelu na model musí mít modely Ecore, které uvedete jako vstup nebo výstup, odpovídající modely genmodel. Pro vytvoření modelů genmodel můžete použít průvodce modely EMF. Ujistěte se, že vygenerujete kód po vytvoření modelů genmodel. Modely genmodel musí být registrovány ve vývojovém pracovním prostředí nebo musí být ve stejné cestě jako odpovídající modely Ecore. Modely genmodel musí mít příponu názvu souboru .genmodel, podobný název a stejný případ jako modely Ecore. Jinak stroj autorizace transformací model genmodel nenajde. Pokud stroj autorizace transformací požadované modely genmodel nenajde, zakáže generování kódu.
Když vytvoříte konfiguraci transformací pro transformace z modelu na model, musíte uvést soubor, který představuje cílový model, i když je soubor prázdný. Nemůžete uvést URI jako cílový zásobník.
Chcete-li vytvořit prázdný model Ecore, na Hlavní stránce editoru nebo průvodce konfigurací transformace klepněte na tlačítko Vytvořit nový cílový kontejner a uveďte soubor, který má rozšíření cílového modelu.
Pro integraci transformace z modelu na model jako předního konce transformace JET (model na text), musíte ručně přidat instanci základní struktury JETRule do pravidel 'postProcessing' transformace RootTransformation, která je umístěna poskytovateli transformací. Následující příkaz zobrazuje kód, který musíte zahrnout do třídy poskytovatele transformace. Musíte nahradit 'xxx' ID transformace JET.
/**
* Vytvoří kořenovou transformaci. Zde můžete přidat další pravidla pro transformaci
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param transform Kořenová transformace
* @generated NOT
*/
protected RootTransformation createRootTransformation(ITransformationDescriptor descriptor) {
return new RootTransformation(descriptor, new MainTransform()) {
protected void addPostProcessingRules() {
add(new JETRule("xxx"));
}
};
}
Pro generování transformací pro vstupní nebo výstupní modely UML uveďte metamodel UML jako kořenový vstup, kořenový výstup nebo obojí ve specifikaci mapování. Přidání profilu UML do specifikace mapování nepřidá automaticky také metamodel UML.
Náhradní řešení: Přidejte metamodel UML klepnutím na tlačítko Přidat model v průvodci a editoru mapování transformací model-to-model.
Koncové body konektorů pro mapování mohou zmizet, pokud uživatel přepne filtrování funkce ze "Základní" na režim "Okamžité" nebo "Pokročilé", vytvoří mapování a potom přepne zpět na režim filtrování "Základní". To může způsobit, že se objeví mapovací konektory s koncovými body, které nic nespojují. To ovlivní pouze vzhled mapování. Mapování a zdrojový kód, který transformace generuje z mapování, nebude ovlivněn.
Náhradní řešení: Opravte vzhled mapování uvedením režimu filtrování, který se používal při vytváření mapování.
Pokud soubor mapování již neobsahuje žádné mapování, které uvádí prvky z modelu jako vstupy nebo výstupy, model bude "uvolněn" z mapovacího souboru. Kontrola kvůli nepoužívaným modelům se provádí, kdykoliv je odstraněn vstup nebo výstup z mapování. V souborech mapování se uchovávají dva oddělené seznamy pro vstupy a výstupy.
Náhradní řešení: Musíte přidat model do mapovacího souboru, než budete moci vybrat prvky z daného modelu, jako vstupy nebo výstupy z mapování. Klepněte na tlačítko Přidat model v editoru mapování, abyste přidali model do mapovacího souboru.
V konfiguračním editoru transformace pro generované transformace model-to-model může být uvedena volba runSilent s libovolným režimem sloučení, včetně 'automatického' nebo 'vizuálního'. Pokud je režim sloučení nastaven na automatický nebo vizuální, volba runSilent vynutí strategii tichého sloučení, pokud se na cílovém modelu nachází podpora kombinování. Jinak se použije strategie sloučení s přepisem.
Při vytváření modelu mapování transformací z metamodelu Ecore na metamodel UML s profily, měli byste ověřit URI profilu, který se použije v cílových modelech UML. Předvoleně se použije URI profilu, který uvedete v editoru mapování. Pokud uvedete URI prostředku, převede se na URI ekvivalentního modulu plug-in.
Náhradní řešení: Můžete uvést jiné URI ve vlastnosti pro přepsání profileURI na stránce vlastností. Klepněte na kořenovou sekci v editoru mapování, abyste zobrazili stránku vlastností. Pozn.: Pokud používáte registrovaný profil, můžete uvést URI, s nímž je profil registrován, pokud se liší od profilu, který se použije automaticky. Tady může selhání způsobit implementaci registrovaného profilu více než jednou do sady prostředků, což může způsobit problémy se sloučením nebo kombinováním.
Při generování kódu z modelů mapování v transformacích model-to-model se vygenerují základní soubory projektu, jako je plugin.xml a manifest.mf, pokud nejsou nalezeny. Možná budete muset upravit tyto soubory po jejich vygenerování.
Náhradní řešení:
- Pokud přidáváte vstupní nebo výstupní modely do mapovacího souboru, musíte upravit soubor manifest.mf. Přidejte závislosti pro moduly plug-in, které obsahují generovaný kód modelu pro vstupní/výstupní model. Přidání těchto závislostí by mělo opravit chyby kompilace, které jsou výsledkem pokusu o přístup ke třídám, které jsou v těchto modulech plug-in. Můžete přidat závislosti na modul plug-in, který obsahuje generovaný kód pro nový vstupní/výstupní model.
- Pokud vytváříte mapovací model v modulu plug-in Java, který obsahuje soubory plugin.xml a manifest.mf, musíte přidat požadované závislosti k souboru manifest.mf. Přidejte závislost na autorizaci transformačních algoritmů a závislost na vstupních/výstupních modelech. Musíte také přidat rozšíření com.ibm.xtools.transform.core.transformationProviders k souboru plugin.xml.