com.vaadin.client.data.

Class CacheStrategy.AbstractBasicSymmetricalCacheStrategy

  • java.lang.Object
    • com.vaadin.client.data.CacheStrategy.AbstractBasicSymmetricalCacheStrategy
  • All Implemented Interfaces:

    CacheStrategy

    Direct Known Subclasses:

    CacheStrategy.DefaultCacheStrategy

    Enclosing interface:

    CacheStrategy

    public abstract static class CacheStrategy.AbstractBasicSymmetricalCacheStrategy
    extends Object
    implements CacheStrategy

    A helper class for creating a simple symmetric cache strategy that uses the same logic for both rows before and after the currently cached range.

    This simple approach rules out more advanced heuristics that would take the current scrolling direction or past scrolling behavior into account.

    • Constructor Detail

      • AbstractBasicSymmetricalCacheStrategy

        public AbstractBasicSymmetricalCacheStrategy()
    • Method Detail

      • onDataArrive

        public void onDataArrive​(double roundTripTime,
                                 int rowCount)

        Description copied from interface: CacheStrategy

        Called whenever data requested by the data source has arrived. This information can e.g. be used for measuring how long it takes to fetch different number of rows from the server.

        A cache strategy implementation cannot use this information to keep track of which items are in the cache since the data source might discard items without notifying the cache strategy.

        Specified by:

        onDataArrive in interface CacheStrategy

        Parameters:

        roundTripTime - the total number of milliseconds elapsed from requesting the data until the response was passed to the data source

        rowCount - the number of received rows

      • getMinCacheRange

        public Range getMinCacheRange​(Range displayedRange,
                                      Range cachedRange,
                                      Range estimatedAvailableRange)

        Description copied from interface: CacheStrategy

        Gets the minimum row range that should be cached. The data source will fetch new data if the currently cached range does not fill the entire minimum cache range.

        Specified by:

        getMinCacheRange in interface CacheStrategy

        Parameters:

        displayedRange - the range of currently displayed rows

        cachedRange - the range of currently cached rows

        estimatedAvailableRange - the estimated range of rows available for the data source

        Returns:

        the minimum range of rows that should be cached, should at least include the displayed range and should not exceed the total estimated available range

      • getMaxCacheRange

        public Range getMaxCacheRange​(Range displayedRange,
                                      Range cachedRange,
                                      Range estimatedAvailableRange)

        Description copied from interface: CacheStrategy

        Gets the maximum row range that should be cached. The data source will discard cached rows that are outside the maximum range.

        Specified by:

        getMaxCacheRange in interface CacheStrategy

        Parameters:

        displayedRange - the range of currently displayed rows

        cachedRange - the range of currently cached rows

        estimatedAvailableRange - the estimated range of rows available for the data source

        Returns:

        the maximum range of rows that should be cached, should at least include the displayed range and should not exceed the total estimated available range

      • getMaximumCacheSize

        public abstract int getMaximumCacheSize​(int pageSize)

        Gets the maximum number of extra items to cache in one direction.

        Parameters:

        pageSize - the current number of items used at once

        Returns:

        maximum of items to cache

      • getMinimumCacheSize

        public abstract int getMinimumCacheSize​(int pageSize)

        Gets the the minimum number of extra items to cache in one direction.

        Parameters:

        pageSize - the current number of items used at once

        Returns:

        minimum number of items to cache