Package org.dataloader
Class DataLoaderRegistry
java.lang.Object
org.dataloader.DataLoaderRegistry
- Direct Known Subclasses:
ScheduledDataLoaderRegistry
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 -
Field Summary
Fields -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivate
-
Method Summary
Modifier and TypeMethodDescriptioncombine
(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
(String key, Function<String, DataLoader<?, ?>> mappingFunction) Computes a data loader if absent or return it if it was already registered at that key.void
This will calledDataLoader.dispatch()
on each of the registeredDataLoader
sint
Similar todispatchAll()
, this callsDataLoader.dispatch()
on each of the registeredDataLoader
s, but returns the number of dispatches.int
<K,
V> DataLoader <K, V> getDataLoader
(String key) Returns the dataloader that was registered under the specified keyList
<DataLoader<?, ?>> Map
<String, DataLoader<?, ?>> getKeys()
static DataLoaderRegistry.Builder
register
(String key, DataLoader<?, ?> dataLoader) This will register a new dataloaderunregister
(String key) This will unregister a new dataloader
-
Field Details
-
dataLoaders
-
-
Constructor Details
-
DataLoaderRegistry
public DataLoaderRegistry() -
DataLoaderRegistry
-
-
Method Details
-
register
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(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 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
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
- Returns:
- the currently registered data loaders
-
getDataLoadersMap
- Returns:
- the currently registered data loaders as a map
-
unregister
This will unregister a new dataloader- Parameters:
key
- the key of the data loader to unregister- Returns:
- this registry
-
getDataLoader
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
- Returns:
- the keys of the data loaders in this registry
-
dispatchAll
public void dispatchAll()This will 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
- Returns:
- a combined set of statistics for all data loaders in this registry presented as the sum of all their statistics
-
newRegistry
- Returns:
- A builder of
DataLoaderRegistry
s
-