Class ListPaginatorWithAdvancedCache<T>

java.lang.Object
org.aksw.commons.rx.cache.range.ListPaginatorWithAdvancedCache<T>
Type Parameters:
T -
All Implemented Interfaces:
Function<com.google.common.collect.Range<Long>,io.reactivex.rxjava3.core.Flowable<T>>, ListPaginator<T>, RangedSupplier<Long,T>, org.aksw.commons.util.delegate.Unwrappable

public class ListPaginatorWithAdvancedCache<T> extends Object implements ListPaginator<T>
Caching list paginator implementation based on AdvancedRangeCacheImpl
Author:
raven
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected ListPaginator<T>
    The supplier for actually retrieving data from the backend
    protected org.aksw.commons.io.cache.AdvancedRangeCacheImpl<T[]>
     
    protected io.reactivex.rxjava3.core.Single<com.google.common.collect.Range<Long>>
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    ListPaginatorWithAdvancedCache(ListPaginator<T> backend, org.aksw.commons.io.cache.AdvancedRangeCacheImpl.Builder<T[]> cacheBuilder)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static <T> io.reactivex.rxjava3.core.Flowable<T>
    adapt(org.aksw.commons.io.buffer.array.ArrayOps<T[]> arrayOps, org.aksw.commons.io.input.ReadableChannelSource<T[]> source, com.google.common.collect.Range<Long> range)
     
    io.reactivex.rxjava3.core.Flowable<T>
    apply(com.google.common.collect.Range<Long> range)
     
    create(ListPaginator<T> backend, org.aksw.commons.io.cache.AdvancedRangeCacheImpl.Builder<T[]> builder)
     
    io.reactivex.rxjava3.core.Single<com.google.common.collect.Range<Long>>
    fetchCount(Long itemLimit, Long rowLimit)
     
    org.aksw.commons.io.cache.AdvancedRangeCacheImpl<T[]>
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface java.util.function.Function

    andThen, compose

    Methods inherited from interface org.aksw.commons.rx.lookup.ListPaginator

    batch, fetchList, map

    Methods inherited from interface org.aksw.commons.util.delegate.Unwrappable

    unwrap
  • Field Details

    • backend

      protected ListPaginator<T> backend
      The supplier for actually retrieving data from the backend
    • core

      protected org.aksw.commons.io.cache.AdvancedRangeCacheImpl<T[]> core
    • countSingle

      protected io.reactivex.rxjava3.core.Single<com.google.common.collect.Range<Long>> countSingle
  • Constructor Details

    • ListPaginatorWithAdvancedCache

      public ListPaginatorWithAdvancedCache(ListPaginator<T> backend, org.aksw.commons.io.cache.AdvancedRangeCacheImpl.Builder<T[]> cacheBuilder)
  • Method Details

    • create

      public static <T> ListPaginatorWithAdvancedCache<T> create(ListPaginator<T> backend, org.aksw.commons.io.cache.AdvancedRangeCacheImpl.Builder<T[]> builder)
    • getCore

      public org.aksw.commons.io.cache.AdvancedRangeCacheImpl<T[]> getCore()
    • fetchCount

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

      public io.reactivex.rxjava3.core.Flowable<T> apply(com.google.common.collect.Range<Long> range)
      Specified by:
      apply in interface Function<com.google.common.collect.Range<Long>,io.reactivex.rxjava3.core.Flowable<T>>
    • adapt

      public static <T> io.reactivex.rxjava3.core.Flowable<T> adapt(org.aksw.commons.io.buffer.array.ArrayOps<T[]> arrayOps, org.aksw.commons.io.input.ReadableChannelSource<T[]> source, com.google.common.collect.Range<Long> range)