Interface Joiner<T,​S extends Selection<T>,​E,​F extends Fetcher<T,​S,​E>,​ID>

  • Type Parameters:
    T - Тип модели (DTO)
    S - Тип выборки Selection
    E - Тип отображаемой сущности
    F - Тип Fetcher
    ID - Тип, по которому идентифицируются сущности

    public interface Joiner<T,​S extends Selection<T>,​E,​F extends Fetcher<T,​S,​E>,​ID>
    Группировщик запросов
    • Method Detail

      • getId

        @NonNull
        ID getId​(E entity)
        Returns:
        Идентификатор отображаемой сущности
      • resolveIterable

        Joiner.Resolution<T,​E,​ID> resolveIterable​(Iterable<? extends F> fetchers,
                                                              S selection,
                                                              SelectionPropagation propagation)
        Данный метод не должен использоваться напрямую. Вместо него следует использовать методы resolve*, определенные ниже
      • resolve

        default T resolve​(F fetcher,
                          S selection)
      • resolveCollection

        default <C extends Collection<T>> C resolveCollection​(Collection<? extends F> fetchers,
                                                              S selection,
                                                              Supplier<? extends C> collectionSupplier)
        Модели дублирующихся fetcher-ов (для которых Fetcher.getUnderlyingEntity() вернул одну и ту же сущность) в результирующей коллекции продублированы не будут
      • resolveCollection

        default List<T> resolveCollection​(Collection<? extends F> fetchers,
                                          S selection)
        Модели дублирующихся fetcher-ов (для которых Fetcher.getUnderlyingEntity() вернул одну и ту же сущность) в результирующем списке продублированы не будут
      • resolveStreamable

        default <I extends org.springframework.data.util.Streamable<T>> I resolveStreamable​(org.springframework.data.util.Streamable<? extends F> fetchers,
                                                                                            S selection)
        Throws:
        IndexOutOfBoundsException - если в fetchers два или более fetcher-а вернули одну и ту же сущность (метод Fetcher.getUnderlyingEntity())