Interface SourceMerger<S>

  • Type Parameters:
    S - Тип метаданной
    Functional Interface:
    This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

    @FunctionalInterface
    public interface SourceMerger<S>
    Слияние двух метаданных в одну
    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      default <T,​D>
      void
      addIfNotNull​(T source, T override, java.util.function.BiConsumer<T,​D[]> setter, java.util.function.Function<T,​D[]> getter)
      Добавить элементы из второго геттера в массив элементов первого геттера
      S merge​(S source, S override)
      Заменить свойства исходной метаданной значениями перекрывающей метаданной, если они не пусты
      default void mergeExtAttributes​(ExtensionAttributesAware source, ExtensionAttributesAware override)
      Слияние дополнительных атрибутов
      default <D> void setIfNotNull​(java.util.function.Consumer<D> setter, java.util.function.Supplier<D> getter)
      Установить значение в сеттер, если в геттере оно не null
    • Method Detail

      • merge

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

        default <D> void setIfNotNull​(java.util.function.Consumer<D> setter,
                                      java.util.function.Supplier<D> getter)
        Установить значение в сеттер, если в геттере оно не null
        Type Parameters:
        D - Тип данных
        Parameters:
        setter - Сеттер
        getter - Геттер
      • addIfNotNull

        default <T,​D> void addIfNotNull​(T source,
                                              T override,
                                              java.util.function.BiConsumer<T,​D[]> setter,
                                              java.util.function.Function<T,​D[]> getter)
        Добавить элементы из второго геттера в массив элементов первого геттера