Class MapPaginatorTransformItem<K,I,O>

java.lang.Object
org.aksw.commons.rx.lookup.MapPaginatorTransformItem<K,I,O>
Type Parameters:
K -
I -
O -
All Implemented Interfaces:
Function<com.google.common.collect.Range<Long>, io.reactivex.rxjava3.core.Flowable<Map.Entry<K,O>>>, ListPaginator<Map.Entry<K,O>>, MapPaginator<K,O>, RangedEntrySupplier<Long,K,O>, RangedSupplier<Long, Map.Entry<K,O>>, Unwrappable

public class MapPaginatorTransformItem<K,I,O> extends Object implements MapPaginator<K,O>
FIXME Possibly extend with generic transform instead of just value
Author:
raven
  • Field Details

    • delegate

      protected MapPaginator<K,I> delegate
    • fnTransformItem

      protected BiFunction<? super K, ? super I, ? extends O> fnTransformItem
  • Constructor Details

    • MapPaginatorTransformItem

      public MapPaginatorTransformItem(MapPaginator<K,I> delegate, BiFunction<? super K, ? super I, ? extends O> fnTransformItem)
  • Method Details

    • apply

      public io.reactivex.rxjava3.core.Flowable<Map.Entry<K,O>> apply(com.google.common.collect.Range<Long> range)
      / Map<K, O> result = new LinkedHashMap<K, O>(); / for(Entry<K, I> entry : map.entrySet()) { / K k = entry.getKey(); / I i = entry.getValue(); / O o = fnTransformItem.apply(i); / / result.put(k, o); / }
      Specified by:
      apply in interface Function<K,I>
    • fetchCount

      public io.reactivex.rxjava3.core.Single<com.google.common.collect.Range<Long>> fetchCount(Long itemLimit, Long rowLimit)
      Specified by:
      fetchCount in interface ListPaginator<K>
    • create

      public static <K,I,O> MapPaginatorTransformItem<K,I,O> create(MapPaginator<K,I> listService, BiFunction<? super K, ? super I, ? extends O> fnTransformItem)