Uwagi do wydania tworzenia transformacji

© Copyright International Business Machines Corporation 2006. Wszelkie prawa zastrzeżone. Ograniczone prawa na rzecz rządu Stanów Zjednoczonych - używanie produktów, tworzenie ich duplikatów oraz ujawnianie informacji o nich podlega zastrzeżeniom zawartym w umowie GSA ADP Schedule zawartej z firmą IBM Corp.

Uwagi do wydania

1.0 Ograniczenia
   1.1 Domyślne profile UML nie są automatycznie odwzorowywane podczas tworzenia odwzorowania z modelu do języka UML
   1.2 W transformacjach typu model-model obsługa złączania jest dostępna tylko dla modeli docelowych o rozszerzeniu contentTypes
   1.3 Podczas tworzenia transformacji typu model-model, dla modeli Ecore określonych jako wejściowe lub wyjściowe muszą istnieć odpowiadające im modele genmodel
   1.4 W konfiguracji transformacji typu model-model jako kontener docelowy należy określić plik
   1.5 Integracja tworzenia transformacji z transformacjami JET nie jest automatyczna
2.0 Znane problemy oraz sposoby ich obejścia
   2.1 Metamodele UML nie są dodawane automatycznie do odwzorowań typu model-model
   2.2 Transformacje "do" i "z" filtrowanych właściwości mogą pojawiać się w edytorze odwzorowań jako uszkodzone
   2.3 Usunięcie tylko odniesienia do modelu w pliku odwzorowań powoduje usunięcie modelu z pliku odwzorowań
   2.4 Opcję runSilent można wybrać w edytorze konfigurowania transformacji typu model-model tylko wtedy, gdy jako tryb scalania wybrano tryb automatyczny lub wizualny
   2.5 Jeśli identyfikator rejestrowania profilu nie jest wykorzystywany, podczas odwzorowywania z modelu do języka UML za pomocą zarejestrowanego profilu mogą wystąpić błędy scalania
   2.6 Podczas generowania kodu z modeli odwzorowań podstawowe pliki projektu, łącznie z 'plugin.xml' i 'MANIFEST.MF' nie są generowane ponownie

1.0 Ograniczenia

1.1 Domyślne profile UML nie są automatycznie odwzorowywane podczas tworzenia odwzorowania z modelu do języka UML

Jeśli podczas tworzenia transformacji typu model-model docelowym modelem jest model w specyfikacji UML 2, domyślne profile UML nie są odwzorowywane automatycznie. Na przykład profil UML default.epx nie jest odwzorowywany automatycznie. Takie profile należy odwzorować ręcznie lub użyć środowiska UMLDefaultLibrariesAddRule. To środowisko można dodać ręcznie do transformacji, jeśli docelowym modelem jest model UML EClass.

Aby dodać środowisko do transformacji, należy dodać do niej następujący kod:

    /**
     * <!-- początek-dokumentu-użytkownika -->
     * <!-- koniec-dokumentu-użytkownika -->
     * @generated NOT
     */
    protected void addTransformElements(Registry registry) {
 add(new UMLDefaultLibrariesAddRule());
     addGeneratedTransformElements(registry);
     // W tym miejscu można dodać więcej elementów transformacji po wygenerowanych
     // Należy pamiętać o usunięciu znacznika @generated lub dodać do niego klauzulę NOT
    }

1.2 W transformacjach typu model-model, obsługa złączania jest dostępna tylko dla modeli docelowych o rozszerzeniu contentTypes

Podczas tworzenia transformacji typu model-model, aby zapewnić obsługę "złączania" w modelu docelowym, we wtyczce obszaru roboczego Eclipse wymagane jest rozszerzenie "org.eclipse.core.runtime.contentTypes". To rozszerzenie można określić we wtyczce, która ma nazwę domeny pobraną z domeny modelu docelowego. Więcej informacji na temat tego rozszerzenia zawiera dokumentacja punktu rozszerzenia w projekcie Porównaj/scal. Umożliwia to budowanie bardziej wyrafinowanej strategii złączania dla modelu docelowego. W przypadku prostszej strategii EMF można określić następujące rozszerzenie (znaki "xxx" należy zastąpić rozszerzeniem pliku docelowego):

<extension
  point="org.eclipse.core.runtime.contentTypes">
  <file-association
   content-type="com.ibm.xtools.comparemerge.emf.emfContentType"
  file-extensions="xxx"/>
 </extension>

1.3 Podczas tworzenia transformacji typu model-model, dla modeli Ecore określonych jako wejściowe lub wyjściowe muszą istnieć odpowiadające im modele genmodel

Podczas tworzenia transformacji typu model-model, dla modeli Ecore określonych jako wejściowe lub wyjściowe muszą istnieć odpowiadające im modele genmodel. Aby utworzyć modele genmodel, można skorzystać z kreatora Model EMF. Po utworzeniu modeli genmodel należy się upewnić, czy został wygenerowany kod. Modele genmodel muszą być zarejestrowane w programistycznym środowisku wykonawczym lub muszą znajdować się w tej samej ścieżce, co odpowiadające im modele Ecore. Modele genmodel muszą mieć rozszerzenie pliku .genmodel, podobną nazwę oraz tę samą wielkość liter, co modele Ecore. W przeciwnym razie mechanizm tworzenia transformacji nie będzie mógł odszukać modelu genmodel. Jeśli mechanizm tworzenia transformacji nie będzie mógł odnaleźć wymaganych modeli genmodels, zablokuje generowanie kodu.

1.4 W konfiguracji transformacji typu model-model jako kontener docelowy należy określić plik

Podczas tworzenia konfiguracji dla transformacji typu model-model należy określić plik, który reprezentuje model docelowy, nawet jeśli plik jest pusty. Jako docelowego kontenera nie można określić adresu URI.

Aby utworzyć pusty model Ecore, na stronie głównej edytora lub kreatora konfigurowania transformacji należy kliknąć przycisk Utwórz nowy kontener docelowy i określić plik, który ma rozszerzenie modelu docelowego.

1.5 Integracja tworzenia transformacji z transformacjami JET nie jest automatyczna

Aby integrować transformację typu model-model jako frontową dla transformacji typu JET (model-tekst), należy ręcznie dodać instancję środowiska JETRule do reguł 'postProcessing' transformacji RootTransformation, która znajduje się u dostawcy transformacji. Poniższy przykład zawiera kod, który należy dołączyć do klasy dostawcy transformacji. Znaki 'xxx' należy zastąpić identyfikatorem transformacji JET.

    /**
     * Tworzy transformację główną. Tutaj można dodać więcej reguł do transformacji
     * <!-- początek-dokumentu-użytkownika -->
     * <!-- koniec-dokumentu-użytkownika -->
     * @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"));
                   }
        };
   }

2.0 Znane problemy oraz sposoby ich obejścia

2.1 Metamodele UML nie są dodawane automatycznie do odwzorowań typu model-model

Aby wygenerować transformacje, które pobierają lub wysyłają modele UML, metamodel UML należy określić jako główny element wejściowy i/lub wyjściowy specyfikacji odwzorowania. Dodawanie profilu UML do specyfikacji odwzorowania nie powoduje automatycznego dodania metamodelu UML.

Sposób obejścia: Metamodel UML należy dodać, klikając przycisk Dodaj model w kreatorze lub edytorze Odwzorowanie transformacji model-model.

2.2 Transformacje "do" i "z" filtrowanych właściwości mogą pojawiać się w edytorze odwzorowań jako uszkodzone

Punkty końcowe konektorów odwzorowań mogą nie być widoczne, jeśli użytkownik przełącza opcję filtrowania z "Podstawowe" na "Pośrednie" lub "Zaawansowane", a następnie tworzy odwzorowania i z powrotem przełącza tryb filtrowania na "Podstawowe". Może to spowodować, że konektory odwzorowań będą wyświetlane z punktami końcowymi, które łączą z niczym. Wpływa to tylko na wygląd odwzorowań. Nie ma to wpływu na odwzorowania ani na kod źródłowy, który transformacja generuje z odwzorowań.

Sposób obejścia: Należy poprawić wygląd odwzorowania, podając tryb filtrowania, który był aktywny podczas tworzenia odwzorowania.

2.3 Usunięcie tylko odniesienia do modelu w pliku odwzorowań powoduje usunięcie modelu z pliku odwzorowań

Gdy plik odwzorowań nie zawiera już żadnych odwzorowań, które określają składniki z modelu jako dane wejściowe lub wyjściowe, model jest "usuwany" z pliku odwzorowań. Sprawdzanie nieużywanych modeli jest przeprowadzane za każdym razem, gdy usuwane są dane wejściowe lub wyjściowe. Dla danych wejściowych i wyjściowych w pliku odwzorowań utrzymywane są osobne listy.

Sposób obejścia: Zanim będzie można wybrać składniki z danego modelu jako dane wejściowe lub wyjściowe odwzorowania, należy dodać model do pliku odwzorowań. Aby do pliku odwzorowań dodać model, w edytorze odwzorowań należy kliknąć przycisk Dodaj model.

2.4 Opcję runSilent można wybrać w edytorze konfigurowania transformacji typu model-model tylko wtedy, gdy jako tryb scalania wybrano tryb automatyczny lub wizualny

W edytorze konfigurowania transformacji dla wygenerowanych transformacji typu model-model można określić opcję runSilent z dowolnym trybem scalania, włącznie z 'automatycznym' lub 'wizualnym'. Jeśli tryb scalania jest automatyczny lub wizualny, opcja runSilent wymusza strategię cichego scalania, jeśli w modelu docelowym znaleziono obsługę złączania. W przeciwnym razie wykorzystana zostanie strategia nadpisywania scalania.

2.5 Jeśli identyfikator rejestrowania profilu nie jest wykorzystywany, podczas odwzorowywania z modelu do języka UML za pomocą zarejestrowanego profilu mogą wystąpić błędy scalania

Podczas tworzenia modelu odwzorowywania transformacji z metamodelu Ecore do metamodelu UML z wykorzystaniem profili, należy sprawdzić adres URI profilu, który zostanie użyty w docelowych modelach UML. Domyślnie wykorzystywany jest adres URI profilu określonego w edytorze odwzorowań. Jeśli podany zostanie adres URI zasobu, jest on przekształcany do odpowiedniego adresu URI wtyczki.

Sposób obejścia: We właściwości nadpisywania profileURI na stronie właściwości można określić inny adres URI. Należy kliknąć sekcję główną edytora odwzorowań, aby wyświetlić stronę właściwości. Uwaga: W przypadku korzystania z zarejestrowanego profilu innego niż profil wykorzystywany automatycznie, można określić adres URI, za pomocą którego zarejestrowany jest ten profil. Niepowodzenie tej operacji może spowodować, że zarejestrowany profil zostanie załadowany do zestawu zasobów więcej niż jeden raz, co może spowodować problemy ze scalaniem lub złączaniem.

2.6 Podczas generowania kodu z modeli odwzorowań podstawowe pliki projektu, łącznie z 'plugin.xml' i 'MANIFEST.MF' nie są generowane ponownie

Podczas generowania kodu z modeli odwzorowań w transformacjach typu model-model podstawowe pliki projektu, takie jak plugin.xml i manifest.mf są generowane, jeśli nie można ich odnaleźć. Po ich wygenerowaniu konieczna może być ich edycja.

Sposób obejścia: