Создание Java Emitter Templates (JET) Eclipse Modeling Framework Technologies (EMFT) для генерирования настроенного кода

Инструментальная среда использует шаблоны JET EMFT для генерирования кода pureQuery. Можно заменить это преобразование JET по умолчанию на ваше собственное.

Об этой задаче:

Переопределение преобразования JET по умолчанию для инструментальной среды включает в себя создание проекта JET EMFT, создание шаблонов и указание инструментальной среде использовать ваше преобразование JET.

Важное замечание: Не требуется создавать документы XML для использования в качестве входных моделей для вашего преобразования JET. Когда вы генерируете настроенный код pureQuery, мастер создает XML автоматически на основе объекта, на котором базируется код. Этот XML используется временно и не сохраняется.
Однако надо знать формат XML, который создают мастера. Эту схему можно найти в подключаемом модуле com.ibm.datatools.javatool.transform.codegen. Можно также просмотреть следующие примеры документов XML, основанных на этой схеме:

Чтобы сгенерировать настроенный код, вы используете мастера по генерированию кода pureQuery, соответствующие переопределяемым шаблонам. Например, если вы переопределяете шаблон GenTableBean.jet, можно генерировать настроенный код при помощи мастера Генерировать код pureQuery для таблицы.

Информацию о JET EMFT (называемом Model-To-Text JET) можно найти на сайте www.eclipse.org.

Порядок действий:

Чтобы создать и сконфигурировать шаблоны JET EMFT для генерирования настроенного кода программ pureQuery:

  1. Создайте проект преобразования JET EMFT. Щелкните правой кнопкой мыши в проводнике пакетов и выберите Новый > Проект. В мастере Новый проект выберите Преобразования JET EMFT > Проект преобразований JET EMFT.
  2. Отредактируйте файл manifest.mf для вашего проекта Этот файл должен указывать, что вы переопределяете преобразование pureQuery по умолчанию.

    Если вы хотите использовать класс DBHelper - класс подключаемого модуля com.ibm.datatools.javatool.transform.codegen, который получает информацию о соединении с базой данных, необходимой для преобразования, в файле manifest должна быть указана зависимость от подключаемого модуля com.ibm.datatools.javatool.transform.codegen. В этом подключаемом модуле находится документация для данного класса.

    1. Щелкните дважды по файлу manifest.mf в вашем проекте, чтобы открыть этот файл для редактирования.
    2. Щелкните по вкладке Расширения.
    3. В поле переопределения введите com.ibm.datatools.javatool.transform.codegen.
    4. Необязательно: Если вы хотите использовать класс DBHelper, щелкните по вкладке Зависимости и добавьте подключаемый модуль com.ibm.datatools.javatool.transform.codegen в качестве необходимого.
    5. Сохраните и закройте этот файл.
  3. В проекте преобразования JET EMFT удалите файл dump.jet. Можно также удалить файл main.jet, если вы собираетесь использовать файл main.jet из преобразования com.ibm.datatools.javatool.transform.codegen.
  4. В каталоге templates вашего проекта JET EMFT создайте шаблоны, которые переопределят шаблоны в преобразовании com.ibm.datatools.javatool.transform.codegen. Чтобы переопределить шаблон pureQuery по умолчанию, создайте шаблон с тем же именем. Если вы не переопределите шаблон по умолчанию, инструментальная среда продолжит использовать его при генерировании соответствующего кода pureQuery.

    Ниже в таблице перечислены шаблоны, используемые в этом преобразовании.

    Табл. 1. Шаблоны в преобразовании com.ibm.datatools.javatool.transform.codegen
    Имя шаблона Описание
    GenProcedureInlineJunit.jet Используется, когда вы включаете оба переключателя Генерировать тестовый класс с синтаксисом вызова встроенного метода и Генерировать тестовые наборы JUnit в мастере Генерировать код pureQuery для хранимой процедуры.

    Генерирует тестовый набор JUnit со встроенными методами для вызова соответствующей хранимой процедуры.

    GenProcedureInlineSample.jet Используется, когда вы включаете переключатель Генерировать тестовый класс с синтаксисом вызова встроенного метода в мастере Генерировать код pureQuery для хранимой процедуры.

    Генерирует тестовый класс Java со встроенными методами для вызова соответствующей хранимой процедуры.

    GenProcedureInterface.jet Используется, когда вы включаете переключатель Генерировать интерфейс Java для хранимой процедуры в мастере Генерировать код pureQuery для хранимой процедуры.

    Генерирует интерфейс Java с аннотированными методами для вызова соответствующей хранимой процедуры.

    GenProcedureInterfaceJunit.jet Используется, когда вы включаете переключатели Генерировать интерфейс Java для хранимой процедуры, Генерировать тестовый класс для интерфейса Java хранимой процедуры и Генерировать тестовые наборы JUnit в мастере Генерировать код pureQuery для хранимой процедуры.

    Генерирует тестовый набор JUnit с аннотированными методами для вызова соответствующей хранимой процедуры.

    GenProcedureInterfaceTest.jet Используется, когда вы включаете оба переключателя Генерировать интерфейс Java для хранимой процедуры и Генерировать тестовый класс для интерфейса Java хранимой процедуры в мастере Генерировать код pureQuery для хранимой процедуры.

    Генерирует тестовый класс для реализации соответствующего интерфейса.

    GenProcedureParmBean.jet Используется, когда у хранимой процедуры в мастере Генерировать код pureQuery для хранимой процедуры есть параметры.

    Генерирует функцию bean pureQuery с полями, которые представляет параметры этой хранимой процедуры.

    GenSampleUtil.jet

    Генерирует класс, который содержит статические методы, вызываемые тестовыми классами при выполнении. Эти методы выводят на консоль результаты выполнения тестовых классов.

    Этот класс содержит также код, устанавливающий соединения с базами данных для тестовых классов.

    GenSQLBean.jet Используется, когда вы нажимаете кнопку Готово в мастере Генерировать функцию bean для набора результатов SQL.

    Генерирует функцию bean pureQuery, представляющую набор результатов из оператора SQL.

    GenTableBean.jet Используется, когда вы генерируете функцию bean из мастера Генерировать код pureQuery для таблицы.

    Генерирует функцию bean pureQuery с полями, которые представляет столбцы таблицы или производной таблицы.

    GenTableInlineJunit.jet Используется, когда вы включаете оба переключателя Генерировать тестовый класс с синтаксисом вызова встроенного метода и Генерировать тестовые наборы JUnit в мастере Генерировать код pureQuery для таблицы.

    Генерирует тестовый набор JUnit со встроенными методами для обращения к соответствующему объекту базы данных.

    GenTableInlineSample.jet Используется, когда вы включаете переключатель Генерировать тестовый класс с синтаксисом вызова встроенного метода в мастере Генерировать код pureQuery для таблицы.

    Генерирует тестовый класс Java со встроенными методами для обращения к соответствующему объекту базы данных.

    GenTableInterface.jet Используется, когда вы включаете переключатель Генерировать интерфейс Java для таблицы в мастере Генерировать код pureQuery для таблицы.

    Генерирует интерфейс Java с аннотированными методами для обращения к соответствующему объекту базы данных.

    GenTableInterfaceJUnit.jet Используется, когда вы включаете переключатели Генерировать интерфейс Java для таблицы, Генерировать тестовый класс для интерфейса Java таблицы и Генерировать тестовые наборы JUnit в мастере Генерировать код pureQuery для таблицы.

    Генерирует тестовый класс для проверки реализации соответствующего интерфейса.

    GenTableInterfaceTest.jet Используется, когда вы включаете оба переключателя Генерировать интерфейс Java для таблицы и Генерировать тестовый класс для интерфейса Java таблицы в мастере Генерировать код pureQuery для таблицы.

    Генерирует тестовый класс для реализации соответствующего интерфейса.

  5. На странице Предпочтения преобразований pureQuery укажите, какое преобразование должна использовать инструментальная среда.
    1. Выберите Окно > Предпочтения.
    2. Выберите Данные > pureQuery > Преобразования pureQuery.
    3. В поле ID преобразования выберите имя вашего проекта преобразования JET EMFT.
Понятия, связанные с данным
Генерирование кода pureQuery из объектов базы данных
Задачи, связанные с данной
Генерирование кода pureQuery из функций bean
Генерирование функций bean pureQuery для наборов результатов операторов SQL SELECT
Генерирование классов реализации при помощи файлов конфигурации XML
Разработка программ pureQuery при помощи инструментальной среды
Генерирование кода pureQuery из хранимых процедур
Генерирование кода pureQuery из алиасов, таблиц и производных таблиц
Ссылки, связанные с данной
Пример ввода XML для шаблонов pureQuery JET таблиц или производных таблиц
Пример ввода XML для шаблонов pureQuery JET хранимых процедур
Пример ввода XML для преобразований JET операторов SQL в функции beans pureQuery
Информация, связанная с данной
Создание большего и лучшего кода в Eclipse при помощи JET

Отзыв