Package org.dataloader
Class DataLoaderRegistry
- java.lang.Object
-
- org.dataloader.DataLoaderRegistry
-
- Direct Known Subclasses:
ScheduledDataLoaderRegistry
@PublicApi public class DataLoaderRegistry extends java.lang.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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
DataLoaderRegistry.Builder
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Map<java.lang.String,DataLoader<?,?>>
dataLoaders
-
Constructor Summary
Constructors Constructor Description DataLoaderRegistry()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description 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<K,V>
DataLoader<K,V>computeIfAbsent(java.lang.String key, java.util.function.Function<java.lang.String,DataLoader<?,?>> mappingFunction)
Computes a data loader if absent or return it if it was already registered at that key.void
dispatchAll()
This will be calledDataLoader.dispatch()
on each of the registeredDataLoader
sint
dispatchAllWithCount()
Similar todispatchAll()
, this callsDataLoader.dispatch()
on each of the registeredDataLoader
s, but returns the number of dispatches.int
dispatchDepth()
<K,V>
DataLoader<K,V>getDataLoader(java.lang.String key)
Returns the dataloader that was registered under the specified keyjava.util.List<DataLoader<?,?>>
getDataLoaders()
java.util.Map<java.lang.String,DataLoader<?,?>>
getDataLoadersMap()
java.util.Set<java.lang.String>
getKeys()
Statistics
getStatistics()
static DataLoaderRegistry.Builder
newRegistry()
DataLoaderRegistry
register(java.lang.String key, DataLoader<?,?> dataLoader)
This will register a new dataloaderDataLoaderRegistry
unregister(java.lang.String key)
This will unregister a new dataloader
-
-
-
Field Detail
-
dataLoaders
protected final java.util.Map<java.lang.String,DataLoader<?,?>> dataLoaders
-
-
Method Detail
-
register
public DataLoaderRegistry register(java.lang.String key, DataLoader<?,?> dataLoader)
This will register a new dataloader- Parameters:
key
- the key to put the data loader underdataLoader
- the data loader to register- Returns:
- this registry
-
computeIfAbsent
public <K,V> DataLoader<K,V> computeIfAbsent(java.lang.String key, java.util.function.Function<java.lang.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 keysV
- the type of values- Parameters:
key
- the key of the data loadermappingFunction
- 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 java.util.List<DataLoader<?,?>> getDataLoaders()
- Returns:
- the currently registered data loaders
-
getDataLoadersMap
public java.util.Map<java.lang.String,DataLoader<?,?>> getDataLoadersMap()
- Returns:
- the currently registered data loaders as a map
-
unregister
public DataLoaderRegistry unregister(java.lang.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(java.lang.String key)
Returns the dataloader that was registered under the specified key- Type Parameters:
K
- the type of keysV
- the type of values- Parameters:
key
- the key of the data loader- Returns:
- a data loader or null if its not present
-
getKeys
public java.util.Set<java.lang.String> getKeys()
- Returns:
- the keys of the data loaders in this registry
-
dispatchAll
public void dispatchAll()
This will be calledDataLoader.dispatch()
on each of the registeredDataLoader
s
-
dispatchAllWithCount
public int dispatchAllWithCount()
Similar todispatchAll()
, this callsDataLoader.dispatch()
on each of the registeredDataLoader
s, but returns the number of dispatches.- Returns:
- total number of entries that were dispatched from registered
DataLoader
s.
-
dispatchDepth
public int dispatchDepth()
- Returns:
- The sum of all batched key loads that need to be dispatched from all registered
DataLoader
s
-
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
DataLoaderRegistry
s
-
-