public abstract class MDRepositoryBean<T extends DataSourceAware> extends Object implements Initializable, UnregisterAware, RegistrarBeanWithDefaultBeanClass
Modifier and Type | Class and Description |
---|---|
static class |
MDRepositoryBean.MDRepositoryConfigBean<A extends DataSourceAware>
MDRepositoryConfigBean is bean responsible for basic management and initialization of repository for domain.
|
static class |
MDRepositoryBean.SelectorType
Determines behaviour of MDRepositoryBean.
|
Modifier and Type | Field and Description |
---|---|
protected ConcurrentHashMap<String,String> |
aliases |
protected MDRepositoryBean.SelectorType |
dataSourceSelection |
Constructor and Description |
---|
MDRepositoryBean() |
Modifier and Type | Method and Description |
---|---|
void |
beforeUnregister()
Method called before bean unregister.
|
protected abstract Class<? extends T> |
findClassForDataSource(DataSource dataSource)
Method returns class implementing repository which supports data source instance provided in parameter.
|
String |
getName()
Returns name of a bean
|
protected Map<String,T> |
getRepositories()
Provides access to unmodifiable map domain to repository instance
|
protected T |
getRepository(String domain)
Provides repository instance for passed domain name
|
void |
initialize()
Method will be called, when bean will be created, configured and ready to use.
|
protected void |
initializeRepository(String domain,
T repo)
Method called to initialized passed repository instance for passed domain.
|
protected void |
onDataSourceChange(DataSourceBean.DataSourceChangedEvent event) |
void |
register(Kernel kernel)
Method called when bean is being registered allowing developer to programatically register other beans.
|
void |
registerIfNotExists(String name) |
protected Stream<T> |
repositoriesStream()
Provides access to all available repository instances
|
void |
setDataSourceBean(DataSourceBean dataSourceBean) |
void |
unregister(Kernel kernel)
Method called while bean is being unregistered.
|
protected void |
updateDataSourceAware(String domain,
T newRepo,
T oldRepo)
Method called when repository instance for domain changes.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getDefaultBeanClass
@ConfigField(desc="Map of aliases for data sources to use") protected ConcurrentHashMap<String,String> aliases
@ConfigField(desc="Create repositories for: every UserRepository, every data source, listed data sources") protected MDRepositoryBean.SelectorType dataSourceSelection
public String getName()
public void setDataSourceBean(DataSourceBean dataSourceBean)
public void registerIfNotExists(String name)
public void register(Kernel kernel)
RegistrarBean
register
in interface RegistrarBean
kernel
- - instance from local scopepublic void unregister(Kernel kernel)
RegistrarBean
unregister
in interface RegistrarBean
kernel
- - instance from local scopepublic void initialize()
Initializable
initialize
in interface Initializable
public void beforeUnregister()
UnregisterAware
beforeUnregister
in interface UnregisterAware
protected abstract Class<? extends T> findClassForDataSource(DataSource dataSource) throws DBInitException
dataSource
- DBInitException
protected Stream<T> repositoriesStream()
protected Map<String,T> getRepositories()
protected T getRepository(String domain)
domain
- @HandleEvent protected void onDataSourceChange(DataSourceBean.DataSourceChangedEvent event)
protected void initializeRepository(String domain, T repo)
domain
- repo
- Copyright © 2004–2019 "Tigase, Inc.". All rights reserved.