Interface SourceProcessor


  • public interface SourceProcessor
    Процессор исходных метаданных
    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      <T extends SourceMetadata>
      void
      checkForExists​(String id, Class<T> metadataClass, String errorMessage)
      Проверить метаданную на существование
      void checkId​(IdAware metadata, String errorMessage)
      Проверить идентификатор метаданной по соглашениям об именовании
      default void checkIdExistence​(IdAware metadata, String errorMessage)
      Проверка, что у метаданной задан идентификатор
      default <T extends IdAware>
      void
      checkIdsUnique​(Collection<T> list, String errorMessage)
      Проверить уникальность идентификаторов в коллекции
      default <T extends IdAware>
      void
      checkIdsUnique​(T[] list, String errorMessage)
      Проверить уникальность идентификаторов в массиве
      default void checkNotNull​(Object something, String errorMessage)
      Проверить, что объект не null
      String getMessage​(String messageCode, Object... arguments)
      Получить локализованное сообщение по коду и аргументам
      <T extends SourceMetadata>
      T
      getOrThrow​(String id, Class<T> metadataClass)
      Получить исходную метаданную по идентификатору или бросить исключение, если метаданная невалидна
      <D> D getScope​(Class<D> scopeClass)
      Получить метаданную, оказывающую влияние на валидацию
      <S extends SourceMetadata>
      S
      getSource​(String id, Class<S> sourceClass)
      Получить исходный объект по идентификатору
      <S extends Source>
      S
      merge​(S source, S override)
      Заменить свойства исходной метаданной значениями перекрывающей метаданной, если они не пусты
      Object resolve​(String placeholder)
      Заменить плейсхолдер на значение и конвертировать с автоподбором типа
      <T> T resolve​(String placeholder, Class<T> clazz)
      Заменить плейсхолдер на значение и конвертировать в класс
      Object resolve​(String placeholder, String domain)
      Заменить плейсхолдер на значение конвертировать по домену
      default <T> Stream<T> safeStreamOf​(Collection<T> values)
      Получить поток значений из коллекции
      default <T> Stream<T> safeStreamOf​(T[] values)
      Получить поток значений из массива
      <T extends Source>
      void
      validate​(T metadata, Object... scope)
      Провалидировать вложенную метаданную
    • Method Detail

      • validate

        <T extends Source> void validate​(T metadata,
                                         Object... scope)
        Провалидировать вложенную метаданную
        Type Parameters:
        T - Тип метаданной
        Parameters:
        metadata - Исходная метаданная
        scope - Объекты, влияющие на внутренние валидации. Должны быть разных классов.
      • merge

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

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

        <T extends SourceMetadata> T getOrThrow​(String id,
                                                Class<T> metadataClass)
        Получить исходную метаданную по идентификатору или бросить исключение, если метаданная невалидна
        Type Parameters:
        T - Тип метаданной
        Parameters:
        id - Идентификатор
        metadataClass - Класс метаданной
        Returns:
        Метаданная или null
      • getScope

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

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

        default void checkNotNull​(Object something,
                                  String errorMessage)
        Проверить, что объект не null
        Parameters:
        something - Объект
        errorMessage - Сообщение о том, какой объект не должен быть null
      • checkForExists

        <T extends SourceMetadata> void checkForExists​(String id,
                                                       Class<T> metadataClass,
                                                       String errorMessage)
        Проверить метаданную на существование
        Type Parameters:
        T - Тип метаданной
        Parameters:
        id - Идентификатор метаданной
        metadataClass - Класс метаданной
        errorMessage - Сообщение о том, какой метаданной не существует
      • checkId

        void checkId​(IdAware metadata,
                     String errorMessage)
        Проверить идентификатор метаданной по соглашениям об именовании
        Parameters:
        metadata - Метаданная
        errorMessage - Сообщение о том, какой идентификатор не соответствует соглашениям об именовании
      • safeStreamOf

        default <T> Stream<T> safeStreamOf​(T[] values)
        Получить поток значений из массива
        Type Parameters:
        T - Тип значений
        Parameters:
        values - Массив значений
        Returns:
        Поток значений или пустой поток, если массив null
      • safeStreamOf

        default <T> Stream<T> safeStreamOf​(Collection<T> values)
        Получить поток значений из коллекции
        Type Parameters:
        T - Тип значений
        Parameters:
        values - Коллекция значений
        Returns:
        Поток значений или пустой поток, если коллекция null
      • checkIdExistence

        default void checkIdExistence​(IdAware metadata,
                                      String errorMessage)
        Проверка, что у метаданной задан идентификатор
        Parameters:
        metadata - Валидируемая метаданная
        errorMessage - Сообщение об ошибке
      • checkIdsUnique

        default <T extends IdAware> void checkIdsUnique​(T[] list,
                                                        String errorMessage)
        Проверить уникальность идентификаторов в массиве
        Type Parameters:
        T - Тип значений
        Parameters:
        list - Массив значений
        errorMessage - Сообщение в случае не уникальности
      • checkIdsUnique

        default <T extends IdAware> void checkIdsUnique​(Collection<T> list,
                                                        String errorMessage)
        Проверить уникальность идентификаторов в коллекции
        Type Parameters:
        T - Тип значений
        Parameters:
        list - Коллекция значений
        errorMessage - Сообщение в случае не уникальности