Перейти к основному содержанию
`Ctrl`+`K`

# Работа в IntelliJ IDEA

## Подключение XSD-схем к редактору кода

Подключите XSD-схемы к редактору, чтобы проверять синтаксис и использовать подсказки при редактировании XML-файлов (avm.xml, odm.xml, global3.config.xml), необходимо подключить к редактору xsd-схемы. Схемы хранятся в библиотеке `C:\programs\gsf-cli\workspace\dists\pgdev\Global3se\server\lib\engine\engine-1.0.jar`.

xmlns | xsd-схема
--- | ---
http://www.global-system.ru/xsd/global3-module-1.0 | C:\programs\gsf-cli\workspace\dists\pgdev\Global3se\server\lib\engine\engine-1.0.jar!\schemas\global3-module-1.0.xsd
http://www.global-system.ru/xsd/global3-view-1.0 | C:\programs\gsf-cli\workspace\dists\pgdev\Global3se\server\lib\engine\engine-1.0.jar!\schemas\global3-view-1.0.xsd
http://www.global-system.ru/xsd/global3-view-template-1.0 | C:\programs\gsf-cli\workspace\dists\pgdev\Global3se\server\lib\engine\engine-1.0.jar!\schemas\global3-view-template-1.0.xsd
http://www.global-system.ru/xsd/global3.config.1.0 | C:\programs\gsf-cli\workspace\dists\pgdev\Global3se\server\lib\engine\engine-1.0.jar!\schemas\global3.config.1.0.xsd

Подключить схемы можно в настройках IDE IntelliJ IDEA:
`File > Settings > Languages & Frameworks > Schemas and DTDs`.

## Создание сущностей без конфигуратора

Допускается создание сущностей фреймворка в ручном режиме прямо в IDE IntelliJ IDEA.

### Создание Odm файла класса

Создание класса начинается с создания odm файла (объектно-документного представления сущности):

`application/{модуль}/src/main/resources/ru/bitec/app/{модуль}/{имя_сущности}.odm.xml`

Для создания можно воспользоваться файловым шаблоном из контекстного меню: `New > odm AllTypes`.

В качестве примера, откройте файл: `../bs/src/main/resources/ru/bitec/app/bs/Bs_Contras.odm.xml`.

### Использование генератора кода

Для формирования базового кода для работы с сущностями предназначена утилита `ru.bitec.app.gtk.meta.SourceGenerator`. Генератор подключен к IDE IntelliJ IDEA как внешняя утилита (External Tool). Чтобы запустить генератор кода, выберите в контекстном меню в обозревателе проекта или заголовка закладки: `External Tools > Generate sources`.

Примечание

Для настройки утилиты см. главу «Начало работы».

Запуск утилиты возможен от любого файла, относящегося к сущности:

- `*.orm.xml`;

- `*.odm.xml`;

- `*.avm.xml`;

- `*Avi.scala`;

- `*Dvi.scala`;

- `*Api.scala`;

- `*Dpi.scala`.

При работе утилиты создаются следующие файлы:

- В каталоге `../main/java/ru/bitec/app/{модуль}/`:

  - `{имя_сущности}.java` - pojo-класс сущности;

- В каталоге `../main/scala/ru/bitec/app/{модуль}/`:

  - `{имя_сущности}Dpi.scala` - неизменяемая бизнес-логика контроллера;

  - `{имя_сущности}Api.scala` - изменяемая бизнес-логика контроллера;

    Внимание

    Создается только если нет Api файла.

  - `{имя_сущности}Dvi.scala` - неизменяемая бизнес-логика представления (View). Шаблон;

  - `{имя_сущности}Avi.scala` - изменяемая бизнес-логика представления (View);

    Внимание

    Создается только если нет Avi файла.

- В каталоге `../main/resources/ru/bitec/app/{модуль}/`:

  - `{имя_сущности}.orm.xml` - метаданные сущности для Orm;

  - `{имя_сущности}.avm.xml` xml-разметка представления.

    Внимание

    Создается только если нет Avm файла.

При запуске формирования кода для сущности, у которой есть коллекции, также будут пересозданы коды для коллекций.

Для массовой перегенерации файлов можно вызвать перегенерацию для каталога, содержащего `odm.xml` файлы. В этом случае будут пересозданы исходные коды для всех `odm.xml` в каталоге.

При вызове перегенерации от корневого каталога проекта будут пересозданы исходные коды для всех сущностей.

### Тонкая настройка Orm

Для тонкой настройки формируемого `orm.xml` файла допускается создавать файл-шаблон c именем `{имя_класса}.erm.xml`, идентичный по формату файлу `{имя_класса}.orm.xml`, и включать в него элементы и свойства, необходимые для тонкой настройки. При формировании `orm.xml` будет прочитан `erm.xml`, и всё его содержимое будет добавлено в сформированный файл `orm.xml`.

### Обновление схемы БД

Для корректной работы системы схема БД должна быть согласована с кодом.

В процессе разработки модуля или при подключении нового модуля к проекту требуется обновлять схему БД специальной утилитой.

Так же, как и генератор кода, утилита обновления схемы БД может быть запущена от любой сущности системы. Таблицы создаются на основе метаданных, объявленных в файлах `*.odm.xml`. Создание таблиц с использованием EclipseLink отключено. Утилита генерации схемы запускается из контекстного меню: `External Tools > Generate Tables`.

Примечание

При обновлении бинарного кода в продакшн-режиме согласование схемы запускается автоматически после обновления jar файлов проекта.

Примечание

Для настройки утилиты смотри главу «Начало работы».

### Создание главной выборки приложения

Для создания нового прикладного приложения создайте в своём модуле Avi-класс, унаследованный от `ProjectApplicationAvi`.

Если требуется создать приложение с глобальными фильтрами, то Avi-класс должен быть унаследован от `Bs_ApplicationAvi`. Для создания файла `avm.xml` используйте шаблон «avm Application» в меню создания файлов IntelliJ Idea.

Avi-класс, должен быть зарегистрирован в файле META-INF/applications.xml своего модуля.