Class DataLoaderRegistry

java.lang.Object
org.dataloader.DataLoaderRegistry
Direct Known Subclasses:
ScheduledDataLoaderRegistry

@PublicApi public class DataLoaderRegistry extends Object
This allows data loaders to be registered together into a single place so they can be dispatched as one. It also allows you to retrieve data loaders by name from a central place
  • Field Details

  • Constructor Details

    • DataLoaderRegistry

      public DataLoaderRegistry()
    • DataLoaderRegistry

      private DataLoaderRegistry(DataLoaderRegistry.Builder builder)
  • Method Details

    • register

      public DataLoaderRegistry register(String key, DataLoader<?,?> dataLoader)
      This will register a new dataloader
      Parameters:
      key - the key to put the data loader under
      dataLoader - the data loader to register
      Returns:
      this registry
    • computeIfAbsent

      public <K, V> DataLoader<K,V> computeIfAbsent(String key, Function<String,DataLoader<?,?>> mappingFunction)
      Computes a data loader if absent or return it if it was already registered at that key.

      Note: The entire method invocation is performed atomically, so the function is applied at most once per key.

      Type Parameters:
      K - the type of keys
      V - the type of values
      Parameters:
      key - the key of the data loader
      mappingFunction - the function to compute a data loader
      Returns:
      a data loader
    • combine

      public DataLoaderRegistry combine(DataLoaderRegistry registry)
      This will combine all the current data loaders in this registry and all the data loaders from the specified registry and return a new combined registry
      Parameters:
      registry - the registry to combine into this registry
      Returns:
      a new combined registry
    • getDataLoaders

      public List<DataLoader<?,?>> getDataLoaders()
      Returns:
      the currently registered data loaders
    • getDataLoadersMap

      public Map<String,DataLoader<?,?>> getDataLoadersMap()
      Returns:
      the currently registered data loaders as a map
    • unregister

      public DataLoaderRegistry unregister(String key)
      This will unregister a new dataloader
      Parameters:
      key - the key of the data loader to unregister
      Returns:
      this registry
    • getDataLoader

      public <K, V> DataLoader<K,V> getDataLoader(String key)
      Returns the dataloader that was registered under the specified key
      Type Parameters:
      K - the type of keys
      V - the type of values
      Parameters:
      key - the key of the data loader
      Returns:
      a data loader or null if its not present
    • getKeys

      public Set<String> getKeys()
      Returns:
      the keys of the data loaders in this registry
    • dispatchAll

      public void dispatchAll()
      This will called DataLoader.dispatch() on each of the registered DataLoaders
    • dispatchAllWithCount

      public int dispatchAllWithCount()
      Similar to dispatchAll(), this calls DataLoader.dispatch() on each of the registered DataLoaders, but returns the number of dispatches.
      Returns:
      total number of entries that were dispatched from registered DataLoaders.
    • dispatchDepth

      public int dispatchDepth()
      Returns:
      The sum of all batched key loads that need to be dispatched from all registered DataLoaders
    • getStatistics

      public Statistics getStatistics()
      Returns:
      a combined set of statistics for all data loaders in this registry presented as the sum of all their statistics
    • newRegistry

      public static DataLoaderRegistry.Builder newRegistry()
      Returns:
      A builder of DataLoaderRegistrys