Interface CompileProcessor


  • public interface CompileProcessor
    Процессор сборки метаданных
    • Method Detail

      • compile

        <D extends Compiled,​S> D compile​(S source,
                                               CompileContext<?,​?> context,
                                               Object... scopes)
        Собрать объект
        Type Parameters:
        S - Тип исходного объекта
        D - Тип собранного объекта
        Parameters:
        source - Исходный объект
        context - Контекст сборки
        scopes - Объекты, влияющие на последующую сборку. Должны быть разных классов.
        Returns:
        Собранный объект
      • mapAttributes

        Map<String,​Object> mapAttributes​(ExtensionAttributesAware source)
        Собрать дополнительные атрибуты
        Parameters:
        source - исходный объект с атрибутами
        Returns:
        собранные атрибуты
      • mapAndResolveAttributes

        Map<String,​Object> mapAndResolveAttributes​(ExtensionAttributesAware source)
        Собрать дополнительные атрибуты и превратить текст с ссылками в значениях в JS код
        Parameters:
        source - исходный объект с атрибутами
        Returns:
        собранные атрибуты
      • getScope

        <D> D getScope​(Class<D> scopeClass)
        Получить метаданную, оказывающую влияние на сборку
        Type Parameters:
        D - Тип скоупа
        Parameters:
        scopeClass - Класс метаданной
        Returns:
        Метаданная, оказывающая влияние на сборку, или null
      • getCompiled

        <D extends Compiled> D getCompiled​(CompileContext<D,​?> context)
        Получить собранный объект по идентификатору
        Type Parameters:
        D - Тип собранного объекта
        Parameters:
        context - Контекст сборки
        Returns:
        Собранный объект
      • getSource

        <S extends SourceMetadata> S getSource​(String id,
                                               Class<S> sourceClass)
        Получить исходный объект по идентификатору
        Type Parameters:
        S - Тип исходного объекта
        Parameters:
        id - Идентификатор
        sourceClass - Класс исходного объекта
        Returns:
        Исходный объект
      • getSource

        <S extends SourceMetadata> S getSource​(String id,
                                               Class<S> sourceClass,
                                               CompileProcessor processor)
        Получить исходный объект по идентификатору
        Type Parameters:
        S - Тип исходного объекта
        Parameters:
        id - Идентификатор
        sourceClass - Класс исходного объекта
        processor - Процессор исходных метаданных
        Returns:
        Исходный объект
      • addRoute

        <D extends Compiled> void addRoute​(CompileContext<D,​?> context)
        Зарегистрировать новый маршрут метаданных под контекст
        Parameters:
        context - Контекст сборки
      • addRoute

        <D extends Compiled> void addRoute​(String route,
                                           CompileContext<D,​?> context)
        Зарегистрировать новый маршрут метаданных под контекст
        Parameters:
        route - Шаблон URL
        context - Контекст сборки
      • resolve

        <T> T resolve​(String placeholder,
                      Class<T> clazz)
        Заменить плейсхолдер на значение и конвертировать в класс
        Type Parameters:
        T - Тип значения
        Parameters:
        placeholder - Плейсхолдер
        Returns:
        Значение
      • resolve

        Object resolve​(String placeholder,
                       String domain)
        Заменить плейсхолдер на значение конвертировать по домену
        Parameters:
        placeholder - значение для конвертации
        domain - Домен значения
        Returns:
        значение
      • resolve

        Object resolve​(String placeholder)
        Заменить плейсхолдер на значение и конвертировать с автоподбором типа
        Parameters:
        placeholder - значение для конвертации
        Returns:
        значение
      • resolveJS

        Object resolveJS​(String text,
                         Class<?> clazz)
        Превратить текст с ссылками в JS код
        Parameters:
        text - Текст
        clazz - Тип значения, если это не JS код
        Returns:
        JS код или объект типа clazz
      • resolveJS

        default String resolveJS​(String text)
        Превратить текст с ссылками в JS код
        Parameters:
        text - Текст
        Returns:
        JS код или исходная строка
      • getMessage

        String getMessage​(String messageCode,
                          Object... arguments)
        Получить локализованное сообщение по коду и аргументам
        Parameters:
        messageCode - Код сообщения
        arguments - Аргументы сообщения
        Returns:
        Локализованное сообщение
      • merge

        <S extends Source> S merge​(S source,
                                   S override)
        Заменить свойства исходной метаданной значениями перекрывающей метаданной, если они не пусты
        Type Parameters:
        S - Тип значения
        Parameters:
        source - Исходная метаданная
        override - Перекрывающая метаданная
        Returns:
        Исходная метаданная с перекрытыми свойствами
      • getExternalFile

        String getExternalFile​(String fileUri)
        Получить содержимое файла
        Parameters:
        fileUri - расположение файла
        Returns:
        Содержимое файла