Class DataLoaderOptions


  • @PublicApi
    public class DataLoaderOptions
    extends java.lang.Object
    Configuration options for DataLoader instances.
    • Constructor Detail

      • DataLoaderOptions

        public DataLoaderOptions()
        Creates a new data loader options with default settings.
      • DataLoaderOptions

        public DataLoaderOptions​(DataLoaderOptions other)
        Clones the provided data loader options.
        Parameters:
        other - the other options instance
    • Method Detail

      • newOptions

        public static DataLoaderOptions newOptions()
        Returns:
        a new default data loader options that you can then customize
      • batchingEnabled

        public boolean batchingEnabled()
        Option that determines whether to use batching (the default), or not.
        Returns:
        true when batching is enabled, false otherwise
      • setBatchingEnabled

        public DataLoaderOptions setBatchingEnabled​(boolean batchingEnabled)
        Sets the option that determines whether batch loading is enabled.
        Parameters:
        batchingEnabled - true to enable batch loading, false otherwise
        Returns:
        the data loader options for fluent coding
      • cachingEnabled

        public boolean cachingEnabled()
        Option that determines whether to use caching of futures (the default), or not.
        Returns:
        true when caching is enabled, false otherwise
      • setCachingEnabled

        public DataLoaderOptions setCachingEnabled​(boolean cachingEnabled)
        Sets the option that determines whether caching is enabled.
        Parameters:
        cachingEnabled - true to enable caching, false otherwise
        Returns:
        the data loader options for fluent coding
      • cachingExceptionsEnabled

        public boolean cachingExceptionsEnabled()
        Option that determines whether to cache exceptional values (the default), or not. For short-lived caches (that is request caches) it makes sense to cache exceptions since it's likely the key is still poisoned. However, if you have long-lived caches, then it may make sense to set this to false since the downstream system may have recovered from its failure mode.
        Returns:
        true when exceptional values are cached is enabled, false otherwise
      • setCachingExceptionsEnabled

        public DataLoaderOptions setCachingExceptionsEnabled​(boolean cachingExceptionsEnabled)
        Sets the option that determines whether exceptional values are cache enabled.
        Parameters:
        cachingExceptionsEnabled - true to enable caching exceptional values, false otherwise
        Returns:
        the data loader options for fluent coding
      • cacheKeyFunction

        public java.util.Optional<CacheKey> cacheKeyFunction()
        Gets an (optional) function to invoke for creation of the cache key, if caching is enabled.

        If missing the cache key defaults to the key type parameter of the data loader of type K.

        Returns:
        an optional with the function, or empty optional
      • setCacheKeyFunction

        public DataLoaderOptions setCacheKeyFunction​(CacheKey<?> cacheKeyFunction)
        Sets the function to use for creating the cache key, if caching is enabled.
        Parameters:
        cacheKeyFunction - the cache key function to use
        Returns:
        the data loader options for fluent coding
      • cacheMap

        public java.util.Optional<CacheMap<?,​?>> cacheMap()
        Gets the (optional) cache map implementation that is used for caching, if caching is enabled.

        If missing a standard LinkedHashMap will be used as the cache implementation.

        Returns:
        an optional with the cache map instance, or empty
      • setCacheMap

        public DataLoaderOptions setCacheMap​(CacheMap<?,​?> cacheMap)
        Sets the cache map implementation to use for caching, if caching is enabled.
        Parameters:
        cacheMap - the cache map instance
        Returns:
        the data loader options for fluent coding
      • maxBatchSize

        public int maxBatchSize()
        Gets the maximum number of keys that will be presented to the BatchLoader function before they are split into multiple class
        Returns:
        the maximum batch size or -1 if there is no limit
      • setMaxBatchSize

        public DataLoaderOptions setMaxBatchSize​(int maxBatchSize)
        Sets the maximum number of keys that will be presented to the BatchLoader function before they are split into multiple class
        Parameters:
        maxBatchSize - the maximum batch size
        Returns:
        the data loader options for fluent coding
      • getStatisticsCollector

        public StatisticsCollector getStatisticsCollector()
        Returns:
        the statistics collector to use with these options
      • setStatisticsCollector

        public DataLoaderOptions setStatisticsCollector​(java.util.function.Supplier<StatisticsCollector> statisticsCollector)
        Sets the statistics collector supplier that will be used with these data loader options. Since it uses the supplier pattern, you can create a new statistics collector on each call, or you can reuse a common value
        Parameters:
        statisticsCollector - the statistics collector to use
        Returns:
        the data loader options for fluent coding
      • getBatchLoaderContextProvider

        public BatchLoaderContextProvider getBatchLoaderContextProvider()
        Returns:
        the batch environment provider that will be used to give context to batch load functions
      • setBatchLoaderContextProvider

        public DataLoaderOptions setBatchLoaderContextProvider​(BatchLoaderContextProvider contextProvider)
        Sets the batch loader environment provider that will be used to give context to batch load functions
        Parameters:
        contextProvider - the batch loader context provider
        Returns:
        the data loader options for fluent coding
      • valueCache

        public java.util.Optional<ValueCache<?,​?>> valueCache()
        Gets the (optional) cache store implementation that is used for value caching, if caching is enabled.

        If missing, a no-op implementation will be used.

        Returns:
        an optional with the cache store instance, or empty
      • setValueCache

        public DataLoaderOptions setValueCache​(ValueCache<?,​?> valueCache)
        Sets the value cache implementation to use for caching values, if caching is enabled.
        Parameters:
        valueCache - the value cache instance
        Returns:
        the data loader options for fluent coding
      • setBatchLoaderScheduler

        public DataLoaderOptions setBatchLoaderScheduler​(BatchLoaderScheduler batchLoaderScheduler)
        Sets in a new BatchLoaderScheduler that allows the call to a BatchLoader function to be scheduled to some future time.
        Parameters:
        batchLoaderScheduler - the scheduler
        Returns:
        the data loader options for fluent coding