public class KeyValueInstanceLoaderImpl extends java.lang.Object implements KeyValueInstanceLoader
KeyValueInstanceLoader.PostLoadEvent, KeyValueInstanceLoader.PreLoadEvent
Modifier and Type | Field and Description |
---|---|
protected org.springframework.context.ApplicationContext |
applicationContext |
protected Condition |
condition |
protected KeyValueContainer |
container |
protected DataContext |
dataContext |
protected java.util.function.Function<ValueLoadContext,KeyValueEntity> |
delegate |
protected EventHub |
events |
protected java.util.Map<java.lang.String,java.lang.Object> |
parameters |
protected java.lang.String |
query |
protected boolean |
softDeletion |
protected java.lang.String |
storeName |
Constructor and Description |
---|
KeyValueInstanceLoaderImpl(org.springframework.context.ApplicationContext applicationContext) |
Modifier and Type | Method and Description |
---|---|
Subscription |
addPostLoadListener(java.util.function.Consumer<KeyValueInstanceLoader.PostLoadEvent> listener)
Adds a listener to
KeyValueInstanceLoader.PostLoadEvent . |
Subscription |
addPreLoadListener(java.util.function.Consumer<KeyValueInstanceLoader.PreLoadEvent> listener)
Adds a listener to
KeyValueInstanceLoader.PreLoadEvent . |
ValueLoadContext |
createLoadContext()
Returns
ValueLoadContext which is created by the parameters of this loader. |
Condition |
getCondition()
Returns the root condition which is used together with the query when loading entities.
|
KeyValueContainer |
getContainer()
Returns the container which accepts loaded entities.
|
DataContext |
getDataContext()
Returns data context.
|
protected DataManager |
getDataManager() |
java.util.function.Function<ValueLoadContext,KeyValueEntity> |
getLoadDelegate()
Returns a function which will be used to load data instead of standard implementation.
|
java.lang.Object |
getParameter(java.lang.String name)
Returns a query parameter by its name.
|
java.util.Map<java.lang.String,java.lang.Object> |
getParameters()
Returns the map of query parameters.
|
java.lang.String |
getQuery()
Returns the query which is used for loading entities.
|
java.lang.String |
getStoreName()
Returns data store name.
|
boolean |
isSoftDeletion()
Returns true if the loader respects soft deletion, i.e.
|
void |
load()
Loads data to the connected container.
|
void |
removeParameter(java.lang.String name)
Removes a query parameter.
|
protected void |
sendPostLoadEvent(KeyValueEntity entity) |
protected boolean |
sendPreLoadEvent(ValueLoadContext loadContext) |
void |
setCondition(Condition condition)
Sets the root condition which will be used together with the query when loading entities.
|
void |
setContainer(KeyValueContainer container)
Sets the container which accepts loaded entities.
|
void |
setDataContext(DataContext dataContext)
Sets the data context for the loader.
|
void |
setLoadDelegate(java.util.function.Function<ValueLoadContext,KeyValueEntity> delegate)
Sets a function which will be used to load data instead of standard implementation.
|
void |
setParameter(java.lang.String name,
java.lang.Object value)
Sets a query parameter.
|
void |
setParameters(java.util.Map<java.lang.String,java.lang.Object> parameters)
Sets the map of query parameters.
|
void |
setQuery(java.lang.String query)
Sets a query which will be used for loading entities.
|
void |
setSoftDeletion(boolean softDeletion)
Set to false if you want to load softly deleted instances too.
|
void |
setStoreName(java.lang.String name)
Sets the data store name.
|
protected org.springframework.context.ApplicationContext applicationContext
protected DataContext dataContext
protected KeyValueContainer container
protected java.lang.String query
protected Condition condition
protected java.util.Map<java.lang.String,java.lang.Object> parameters
protected boolean softDeletion
protected java.lang.String storeName
protected java.util.function.Function<ValueLoadContext,KeyValueEntity> delegate
protected EventHub events
public KeyValueInstanceLoaderImpl(org.springframework.context.ApplicationContext applicationContext)
protected DataManager getDataManager()
@Nullable public DataContext getDataContext()
DataLoader
getDataContext
in interface DataLoader
public void setDataContext(DataContext dataContext)
DataLoader
setDataContext
in interface DataLoader
public void load()
DataLoader
load
in interface DataLoader
public ValueLoadContext createLoadContext()
KeyValueInstanceLoader
ValueLoadContext
which is created by the parameters of this loader. The ValueLoadContext
can be used with DataManager
to load data by the same conditions.createLoadContext
in interface KeyValueInstanceLoader
protected boolean sendPreLoadEvent(ValueLoadContext loadContext)
protected void sendPostLoadEvent(KeyValueEntity entity)
public KeyValueContainer getContainer()
KeyValueInstanceLoader
getContainer
in interface DataLoader
getContainer
in interface KeyValueInstanceLoader
public void setContainer(KeyValueContainer container)
KeyValueInstanceLoader
setContainer
in interface KeyValueInstanceLoader
public java.lang.String getQuery()
DataLoader
getQuery
in interface DataLoader
public void setQuery(java.lang.String query)
DataLoader
setQuery
in interface DataLoader
public Condition getCondition()
DataLoader
getCondition
in interface DataLoader
public void setCondition(Condition condition)
DataLoader
setCondition
in interface DataLoader
public java.util.Map<java.lang.String,java.lang.Object> getParameters()
DataLoader
getParameters
in interface DataLoader
public void setParameters(java.util.Map<java.lang.String,java.lang.Object> parameters)
DataLoader
setParameters
in interface DataLoader
public java.lang.Object getParameter(java.lang.String name)
DataLoader
getParameter
in interface DataLoader
public void setParameter(java.lang.String name, java.lang.Object value)
DataLoader
setParameter
in interface DataLoader
public void removeParameter(java.lang.String name)
DataLoader
removeParameter
in interface DataLoader
public java.util.function.Function<ValueLoadContext,KeyValueEntity> getLoadDelegate()
KeyValueInstanceLoader
getLoadDelegate
in interface KeyValueInstanceLoader
public void setLoadDelegate(java.util.function.Function<ValueLoadContext,KeyValueEntity> delegate)
KeyValueInstanceLoader
setLoadDelegate
in interface KeyValueInstanceLoader
public Subscription addPreLoadListener(java.util.function.Consumer<KeyValueInstanceLoader.PreLoadEvent> listener)
KeyValueInstanceLoader
KeyValueInstanceLoader.PreLoadEvent
.
You can also add an event listener declaratively using a controller method annotated with Subscribe
:
@Subscribe(id = "fooDl", target = Target.DATA_LOADER) private void onFooDlPreLoad(KeyValueInstanceLoader.PreLoadEvent event) { // handle event here }
addPreLoadListener
in interface KeyValueInstanceLoader
listener
- listenerpublic Subscription addPostLoadListener(java.util.function.Consumer<KeyValueInstanceLoader.PostLoadEvent> listener)
KeyValueInstanceLoader
KeyValueInstanceLoader.PostLoadEvent
.
You can also add an event listener declaratively using a controller method annotated with Subscribe
:
@Subscribe(id = "fooDl", target = Target.DATA_LOADER) private void onFooDlPostLoad(KeyValueInstanceLoader.PostLoadEvent event) { // handle event here }
addPostLoadListener
in interface KeyValueInstanceLoader
listener
- listenerpublic boolean isSoftDeletion()
DataLoader
isSoftDeletion
in interface DataLoader
public void setSoftDeletion(boolean softDeletion)
DataLoader
setSoftDeletion
in interface DataLoader
public java.lang.String getStoreName()
KeyValueInstanceLoader
getStoreName
in interface KeyValueInstanceLoader
public void setStoreName(java.lang.String name)
KeyValueInstanceLoader
setStoreName
in interface KeyValueInstanceLoader