Tworzenie szablonów JET (Java Emitter Templates) środowiska EMFT (Eclipse Modeling Framework Technologies) do generowania niestandardowego kodu

Środowisko robocze korzysta z szablonów JET EMFT podczas generowania kodu pureQuery. Tę domyślną transformację JET można zastąpić własną.

Informacje o tym zadaniu:

Przesłanianie domyślnej transformacji JET środowiska roboczego do tworzenia kodu pureQuery obejmuje utworzenie projektu JET EMFT, utworzenie szablonów oraz ustawienie środowiska roboczego do korzystania z transformacji JET użytkownika.

Ważne: Nie trzeba tworzyć dokumentów XML, aby korzystać z nich jako modeli wejściowych dla transformacji JET. Podczas generowania niestandardowego kodu pureQuery kreator automatycznie tworzy dokument XML w oparciu o obiekt, na którym bazuje kod. Ten dokument XML jest plikiem przejściowym i nie jest zapisywany.
Należy jednak znać format dokumentu XML tworzonego przez kreator. Schemat można znaleźć we wtyczce com.ibm.datatools.javatool.transform.codegen. Można także zapoznać się z poniższymi przykładowymi dokumentami XML, które są oparte na tym schemacie:

Do generowania kodu niestandardowego wykorzystywane są kreatory generowania kodu pureQuery, które odpowiadają przesłanianym szablonom. Na przykład jeśli przesłaniany jest szablon GenTableBean.jet, niestandardowy kod można wygenerować za pomocą kreatora Generowanie kodu pureQuery dla tabeli.

Informacje na temat szablonów JET EMFT (które są teraz nazywane szablonami JET typu model-tekst) znajdują się w serwisie WWW pod adresem www.eclipse.org.

Procedura:

Aby utworzyć i skonfigurować szablony JET EMFT do generowania niestandardowego kodu dla aplikacji pureQuery:

  1. Utwórz projekt transformacji JET EMFT. Kliknij prawym przyciskiem myszy w Eksploratorze pakietów i wybierz opcje Nowy > Projekt. W kreatorze Nowy projekt wybierz opcje Transformacje EMFT JET > Projekt transformacji EMFT JET.
  2. Zmodyfikuj plik manifest.mf projektu. Ten plik musi określać, że przesłaniana jest domyślna transformacja kodu pureQuery.

    Jeśli ma być używana klasa DBHelper, czyli klasa we wtyczce com.ibm.datatools.javatool.transform.codegen, która otrzymuje informacje o połączeniu z bazą danych wymagane przez transformację, plik manifestu musi określać zależność od wtyczki com.ibm.datatools.javatool.transform.codegen. Wewnątrz tej wtyczki znajduje się dokumentacja tej klasy.

    1. Kliknij dwukrotnie plik manifest.mf w projekcie, aby otworzyć go do edycji.
    2. Kliknij zakładkę Rozszerzenia.
    3. W polu overrides wpisz com.ibm.datatools.javatool.transform.codegen.
    4. Opcjonalne: Kliknij zakładkę Zależności i dodaj wtyczkę com.ibm.datatools.javatool.transform.codegen jako wtyczkę wymaganą, jeśli ma być używana klasa DBHelper.
    5. Zapisz i zamknij plik.
  3. W projekcie transformacji JET EMFT usuń plik dump.jet. Można także usunąć plik main.jet, jeśli transformacja ma korzystać z pliku main.jet z transformacji com.ibm.datatools.javatool.transform.codegen.
  4. W katalogu templates projektu transformacji JET EMFT utwórz szablony przesłaniające szablony w transformacji com.ibm.datatools.javatool.transform.codegen. Aby przesłonić jeden z domyślnych szablonów pureQuery, utwórz szablon o takiej samej nazwie. Jeśli domyślny szablon nie zostanie przesłonięty, środowisko robocze kontynuuje korzystanie z niego podczas generowania odpowiadającego mu kodu pureQuery.

    Poniższa tabela prezentuje listę szablonów, które znajdują się w tej transformacji.

    Tabela 1. Szablony w transformacji com.ibm.datatools.javatool.transform.codegen
    Nazwa szablonu Opis
    GenProcedureInlineJunit.jet Wykorzystywany, gdy w kreatorze Generowanie kodu pureQuery dla procedury składowanej zaznaczone są oba pola wyboru Generuj klasę testową ze składnią wywołania metody wstawianej i Generuj przypadki testowe JUnit.

    Generuje przypadek testowy JUnit, który zawiera metody wstawiane do wywoływania odpowiedniej procedury składowanej.

    GenProcedureInlineSample.jet Wykorzystywany, gdy w kreatorze Generowanie kodu pureQuery dla procedury składowanej zaznaczone jest pole wyboru Generuj klasę testową ze składnią wywołania metody wstawianej.

    Generuje klasę testową języka Java, która zawiera metody wstawiane do wywoływania odpowiedniej procedury składowanej.

    GenProcedureInterface.jet Wykorzystywany, gdy w kreatorze Generowanie kodu pureQuery dla procedury składowanej zaznaczone jest pole wyboru Generuj interfejs języka Java dla procedury składowanej.

    Generuje interfejs Java, który zawiera metody z adnotacją do wywoływania odpowiedniej procedury składowanej.

    GenProcedureInterfaceJunit.jet Wykorzystywany, gdy w kreatorze Generowanie kodu pureQuery dla procedury składowanej zaznaczone są pola wyboru Generuj interfejs języka Java dla procedury składowanej, Generuj klasę testową dla interfejsu języka Java dla procedury składowanej i Generuj przypadki testowe JUnit.

    Generuje przypadek testowy JUnit, który zawiera metody z adnotacją do wywoływania odpowiedniej procedury składowanej.

    GenProcedureInterfaceTest.jet Wykorzystywany, gdy w kreatorze Generowanie kodu pureQuery dla procedury składowanej zaznaczone są pola wyboru Generuj interfejs języka Java dla procedury składowanej i Generuj klasę testową dla interfejsu języka Java dla procedury składowanej.

    Generuje klasę testową do testowania implementacji odpowiedniego interfejsu.

    GenProcedureParmBean.jet Wykorzystywany, gdy procedura składowana przetwarzana przez kreator Generowanie kodu pureQuery dla procedury składowanej ma parametry.

    Generuje komponent bean pureQuery, który zawiera pola reprezentujące parametry procedury składowanej.

    GenSampleUtil.jet

    Generuje klasę, która zawiera metody statyczne wywoływane przez klasy testowe podczas ich wykonywania. Te metody wyświetlają w widoku Konsola wyniki działania klas testowych.

    Ta klasa zawiera także kod do ustanawiania połączeń z bazą danych dla klas testowych.

    GenSQLBean.jet Wykorzystywany po kliknięciu przycisku Zakończ w kreatorze Generowanie komponentu bean dla tabeli wynikowej SQL.

    Generuje komponent bean pureQuery, który reprezentuje tabelę wynikową instrukcji SQL SELECT.

    GenTableBean.jet Wykorzystywany podczas generowania komponentu bean w kreatorze Generowanie kodu pureQuery dla tabeli.

    Generuje komponent bean pureQuery, który zawiera pola reprezentujące kolumny tabeli lub widoku.

    GenTableInlineJunit.jet Wykorzystywany, gdy w kreatorze Generowanie kodu pureQuery dla tabeli zaznaczone są oba pola wyboru Generuj klasę testową ze składnią wywołania metody wstawianej i Generuj przypadki testowe JUnit.

    Generuje przypadek testowy JUnit, który zawiera metody wstawiane używane do uzyskiwania dostępu do odpowiedniego obiektu bazy danych.

    GenTableInlineSample.jet Wykorzystywany, gdy w kreatorze Generowanie kodu pureQuery dla tabeli zaznaczone jest pole wyboru Generuj klasę testową ze składnią wywołania metody wstawianej.

    Generuje klasę testową języka Java, która zawiera metody wstawiane używane do uzyskiwania dostępu do odpowiedniego obiektu bazy danych.

    GenTableInterface.jet Wykorzystywany, gdy w kreatorze Generowanie kodu pureQuery dla tabeli zaznaczone jest pole wyboru Generuj interfejs języka Java dla tabeli.

    Generuje interfejs języka Java, który zawiera metody z adnotacją używane do uzyskiwania dostępu do odpowiedniego obiektu bazy danych.

    GenTableInterfaceJUnit.jet Wykorzystywany, gdy w kreatorze Generowanie kodu pureQuery dla tabeli zaznaczone są pola wyboru Generuj interfejs języka Java dla tabeli, Generuj klasę testową dla interfejsu języka Java dla tabeli i Generuj przypadki testowe JUnit.

    Generuje przypadek testowy JUnit do testowania implementacji odpowiedniego interfejsu.

    GenTableInterfaceTest.jet Wykorzystywany, gdy w kreatorze Generowanie kodu pureQuery dla tabeli zaznaczone są oba pola wyboru Generuj interfejs języka Java dla tabeli i Generuj klasę testową dla interfejsu języka Java dla tabeli.

    Generuje klasę testową do testowania implementacji odpowiedniego interfejsu.

  5. Na stronie preferencji Transformacje pureQuery należy określić, której transformacji ma używać środowisko robocze:
    1. Wybierz kolejno opcje Okno > Preferencje.
    2. Wybierz opcje Dane > pureQuery > Transformacje pureQuery.
    3. W polu Identyfikator transformacji wybierz nazwę projektu transformacji JET EMFT.
Pojęcia pokrewne
Generowanie kodu pureQuery na podstawie obiektów bazy danych
Zadania pokrewne
Generowanie kodu pureQuery na podstawie komponentów bean
Generowanie komponentów bean pureQuery do przechowywania tabel wynikowych instrukcji SQL SELECT
Generowanie klas implementacji z pomocą plików konfiguracyjnych XML
Tworzenie aplikacji pureQuery w środowisku roboczym
Generowanie kodu pureQuery na podstawie procedur składowanych
Generowanie kodu pureQuery na podstawie aliasów, tabel lub widoków
Odsyłacze pokrewne
Przykładowy plik wejściowy XML dla szablonów JET pureQuery dla tabel lub widoków
Przykładowy plik wejściowy XML dla szablonów JET pureQuery dla procedur składowanych
Przykładowy plik wejściowy XML dla transformacji JET instrukcji SQL dla komponentów bean pureQuery
Informacje pokrewne
Tworzenie doskonalszego kodu w środowisku Eclipse za pomocą szablonów JET

Opinia