Package ru.bitel.bgbilling.kernel.dynamic.common.service

# Interface DynamicCodeService

@MTOM(enabled=true) public interface DynamicCodeService

- ## Method Summary

  Modifier and Type
  Method
  Description
  `CompilationResult`
  `compile(String className)`
  Компилирует исходник с заданным именем класса.
  `CompilationResult`
  `deleteClasses(String... classNames)`
  Удаляет заданные исходники.
  `CompilationResult`
  `deleteFiles(String... fileNames)`
  Нужен для удаления не java классов.
  `void`
  `deleteTepmlate(int id)`
  по переданному id удаляет пользовательский шаблон из таблицы
  `String`
  `generateCode(GeneratorOptions options)`
  Генерирует код-болванку для заданного имени класса-интерфейса
  `List<String>`
  `getClassNamesByInterface(String ifaceName)`
  Возвращает имена загруженных классов, имплементирующих заданный интерфейс.
  `List<DynamicClass>`
  `getDynamicClasses()`
  Возвращает список всех динамических классов.
  `List<DynamicClass>`
  `getDynamicClassesByInterface(String ifaceName)`
  Возвращает загруженные классы, имплементирующие заданный интерфейс.
  `void`
  `getDynJar(boolean common, jakarta.xml.ws.Holder<jakarta.activation.DataHandler> data)`
  Получить jar, состояющую из dyn-классов.
  `String`
  `getSource(String className)`
  Возвращает исходный код класса.
  `DynamicSourceData`
  `getSourceData(String className)`
  Возвращает код класса
  `ru.bitel.bgbilling.kernel.dynamic.common.templates.CustomTemplate`
  `getTemplateById(int id)`
  по id возвращает пользовательский шаблон, либо null, если не был найден шаблон с таким id
  `SearchResult<ru.bitel.bgbilling.kernel.dynamic.common.templates.CustomTemplate>`
  `getTemplateList(Page page)`
  Возвращает список пользовательских шаблонов из таблицы
  `boolean`
  `isClassExists(String className)`
  Проверяет, существует ли уже такое имя класса.
  `CompilationResult`
  `recompileAll()`
  Инициирует перекомпиляцию всех исходников.
  `List<RunMessage>`
  `run(String className, String[] parameters)`
  Запускает исходник с заданным именем класса.
  `void`
  `updateSource(String className, String source)`
  Сохранение исходного кода заданного класса.
  `void`
  `updateTemplate(ru.bitel.bgbilling.kernel.dynamic.common.templates.CustomTemplate customTemplate)`
  Обновляет пользовательский шаблон

- ## Method Details

  - ### updateSource

    void updateSource(String className, String source) throws Exception
    Сохранение исходного кода заданного класса.
    Parameters:
      `className` - имя класса
      `code` - исходный код
    Throws:
      `BGException`
      `Exception`

  - ### getSource

    String getSource(String className) throws Exception
    Возвращает исходный код класса.
    Parameters:
      `className` - имя класса
    Returns:
      исходный код
    Throws:
      `BGException`
      `Exception`

  - ### getSourceData

    DynamicSourceData getSourceData(String className) throws Exception
    Возвращает код класса
    Parameters:
      `className` - имя класса
    Returns:
      класс в виде масива байт
    Throws:
      `BGException`
      `Exception`

  - ### getDynamicClasses

    List<DynamicClass> getDynamicClasses() throws Exception
    Возвращает список всех динамических классов.
    Returns:
    Throws:
      `BGException`
      `Exception`

  - ### recompileAll

    CompilationResult recompileAll() throws Exception
    Инициирует перекомпиляцию всех исходников. Приводит к заполнению таблицы классов заново!
    Returns:
      сообщения компилятора
    Throws:
      `BGException`
      `Exception`

  - ### getClassNamesByInterface

    List<String> getClassNamesByInterface(String ifaceName) throws Exception
    Возвращает имена загруженных классов, имплементирующих заданный интерфейс.
    Parameters:
      `ifaceName` - имя интерфейса
    Returns:
    Throws:
      `BGException`
      `Exception`

  - ### getDynamicClassesByInterface

    List<DynamicClass> getDynamicClassesByInterface(String ifaceName) throws Exception
    Возвращает загруженные классы, имплементирующие заданный интерфейс.
    Parameters:
      `ifaceName` - имя интерфейса
    Returns:
    Throws:
      `BGException`
      `Exception`

  - ### compile

    CompilationResult compile(String className) throws Exception
    Компилирует исходник с заданным именем класса.
    Parameters:
      `className` -
    Returns:
      сообщения компилятора
    Throws:
      `BGException`
      `Exception`

  - ### deleteClasses

    CompilationResult deleteClasses(String... classNames) throws Exception
    Удаляет заданные исходники. Работа метода заключается в следующем:
    1) исходники переименовываются в bak-файлы;
    2) запускается полная перекомпиляция остальных исходников;
    3) если произошла ошибка компиляции, то удаление исходников откатывается;
    4) если ошибок нет, то
    а) удаляются bak-файлы;
    б) удаляются записи об этих классов из таблиц в БД.
    Parameters:
      `classNames` - имя классов для удаления
    Returns:
      сообщения компилятора
    Throws:
      `BGException`
      `Exception`

  - ### deleteFiles

    CompilationResult deleteFiles(String... fileNames) throws Exception
    Нужен для удаления не java классов. Удаляет просто файлы, не java классы.
    Throws:
      `Exception`

  - ### generateCode

    String generateCode(GeneratorOptions options) throws Exception
    Генерирует код-болванку для заданного имени класса-интерфейса
    Parameters:
      `iface` - имя класса-интерфейса
      `fullClassName` - имя создаваемого класса
      `defaultImports` - имена классов, импорты которых следует прописать независимо от их необходимости в коде
    Returns:
    Throws:
      `BGException`
      `Exception`

  - ### isClassExists

    boolean isClassExists(String className) throws Exception
    Проверяет, существует ли уже такое имя класса.
    Parameters:
      `className` - имя класса
    Returns:
    Throws:
      `BGException`
      `Exception`

  - ### run

    List<RunMessage> run(String className, String[] parameters) throws Exception
    Запускает исходник с заданным именем класса.
    Parameters:
      `className` - имя класса
      `parameters` - параметры метода main
    Returns:
      список строк сообщения
    Throws:
      `BGException`
      `Exception`

  - ### getDynJar

    void getDynJar(boolean common, jakarta.xml.ws.Holder<jakarta.activation.DataHandler> data) throws Exception
    Получить jar, состояющую из dyn-классов.
    Parameters:
      `common` - если true, то пропускаются классы-имплементации web-сервисов.
      `data` -
    Throws:
      `BGException`
      `Exception`

  - ### updateTemplate

    void updateTemplate(ru.bitel.bgbilling.kernel.dynamic.common.templates.CustomTemplate customTemplate) throws Exception
    Обновляет пользовательский шаблон
    Parameters:
      `customTemplate` - - шаблон
    Throws:
      `BGException`
      `Exception`

  - ### getTemplateById

    ru.bitel.bgbilling.kernel.dynamic.common.templates.CustomTemplate getTemplateById(int id) throws Exception
    по id возвращает пользовательский шаблон, либо null, если не был найден шаблон с таким id
    Parameters:
      `id` -
    Returns:
      CustomTemplate
    Throws:
      `BGException`
      `Exception`

  - ### getTemplateList

    SearchResult<ru.bitel.bgbilling.kernel.dynamic.common.templates.CustomTemplate> getTemplateList(Page page) throws Exception
    Возвращает список пользовательских шаблонов из таблицы
    Returns:
    Throws:
      `BGException`
      `Exception`

  - ### deleteTepmlate

    void deleteTepmlate(int id) throws Exception
    по переданному id удаляет пользовательский шаблон из таблицы
    Parameters:
      `id` -
    Throws:
      `BGException`
      `Exception`