Skip to content

Механизм контекстов BSL #2928

Open
@alkoleft

Description

@alkoleft

Описание

Добавить функциональность работы с контекстами исполнения (набор доступных методов и свойств).

Описание предлагаемых изменений

Предлагаю добавить базовый набор механизмов работы с контекстами:

  • Провайдер контекстов - инкапсулирует логику получения контекста
  • Базовый класс контекстов - от него наследуются все реализации
  • Контекст "объединение" - нужен для создания составных контекстов (глобальный = контекст конифгурации + контекст платформы)
  • Фильтруемый контекст - нужен для уточнения контекста (публичный клиентский контекст)

Также для демонстрации и лучшего понимания добавить:

  • Контекст конфигурации - строится на основе метаданных и дерева символов.
  • Контекст объекта метаданных - содержит данные о публичных методах менеджера
  • Контекст модуля - содержит данных о переменных/реквизитах модуля и данные обо всех методах

Пример использования

    var configurationScope = provider.getConfigurationScope();
    configurationScope.getMethod("ГлобальнаяСервернаяПроцедура").get();

    var property = configurationScope.getProperty("ПервыйОбщийМодуль").get();
    provider.getScope(property).getMethod("НеУстаревшаяПроцедура").get();
    provider.getScope(property).getMethod("УстаревшаяФункция").get();

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions