Package org.ametys.core.datasource
Class AbstractDataSourceManager
- java.lang.Object
-
- org.ametys.runtime.plugin.component.AbstractLogEnabled
-
- org.ametys.core.datasource.AbstractDataSourceManager
-
- All Implemented Interfaces:
LogEnabled,Disposable,Initializable,Component,Serviceable
- Direct Known Subclasses:
LDAPDataSourceManager,SQLDataSourceManager
public abstract class AbstractDataSourceManager extends AbstractLogEnabled implements Component, Initializable, Serviceable, Disposable
Abstract component to handle data source
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classAbstractDataSourceManager.DataSourceDefinitionThis class represents the definition of a data source
-
Field Summary
Fields Modifier and Type Field Description protected CurrentUserProvider_currentUserProviderThe current user providerprivate DataSourceConsumerExtensionPoint_dataSourceConsumerEPprotected Map<String,AbstractDataSourceManager.DataSourceDefinition>_dataSourcesDefThe data source definitionsprivate long_lastUpdateprotected ObservationManager_observationManagerThe observation managerstatic StringDEFAULT_DATASOURCE_SUFFIXThe suffix of any default data source
-
Constructor Summary
Constructors Constructor Description AbstractDataSourceManager()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description AbstractDataSourceManager.DataSourceDefinitionadd(I18nizableText name, I18nizableText description, Map<String,Object> parameters, boolean isPrivate)Add a data sourceprotected voidcheckDataSources()Check that the used data sources are indeed availableabstract voidcheckParameters(Map<String,Object> parameters)Checks the parameters of a data sourceprotected abstract voidcreateDataSource(AbstractDataSourceManager.DataSourceDefinition dataSource)Creates a data source from its configurationvoiddelete(Collection<String> dataSourceIds, boolean forceDeletion)Delete data sourcesprotected abstract voiddeleteDataSource(AbstractDataSourceManager.DataSourceDefinition dataSource)Deletes a data sourcevoiddispose()protected abstract Map<String,AbstractDataSourceManager.DataSourceDefinition>doReadConfiguration(File file)Actually read configuration.AbstractDataSourceManager.DataSourceDefinitionedit(String id, I18nizableText name, I18nizableText description, Map<String,Object> parameters, boolean isPrivate)Edit a data sourceprotected abstract voideditDataSource(AbstractDataSourceManager.DataSourceDefinition dataSource)Edit a data source from its configurationAbstractDataSourceManager.DataSourceDefinitiongetDataSourceDefinition(String id)Get the data source definition or null if not foundMap<String,AbstractDataSourceManager.DataSourceDefinition>getDataSourceDefinitions(boolean includePrivate, boolean includeInternal, boolean includeDefault)Get the data source definitionsprotected abstract StringgetDataSourcePrefixId()Get the prefix for data source identifierAbstractDataSourceManager.DataSourceDefinitiongetDefaultDataSourceDefinition()Get the default data source for this typeStringgetDefaultDataSourceId()Get the id of the default data sourceabstract FilegetFileConfiguration()Get the file configuration of data sourcesvoidinitialize()protected abstract voidinternalSetDefaultDataSource()Set a default data source internallyprotected voidreadConfiguration()Read and update the data sources configurationprotected voidsaveConfiguration()Save the configured data sourcesprotected voidsaxDataSource(ContentHandler handler, AbstractDataSourceManager.DataSourceDefinition dataSource)SAX an instance of data sourcevoidservice(ServiceManager serviceManager)AbstractDataSourceManager.DataSourceDefinitionsetDefaultDataSource(String id)Set the data source with the given id as the default data source-
Methods inherited from class org.ametys.runtime.plugin.component.AbstractLogEnabled
getLogger, setLogger
-
-
-
-
Field Detail
-
DEFAULT_DATASOURCE_SUFFIX
public static final String DEFAULT_DATASOURCE_SUFFIX
The suffix of any default data source- See Also:
- Constant Field Values
-
_observationManager
protected ObservationManager _observationManager
The observation manager
-
_currentUserProvider
protected CurrentUserProvider _currentUserProvider
The current user provider
-
_dataSourcesDef
protected Map<String,AbstractDataSourceManager.DataSourceDefinition> _dataSourcesDef
The data source definitions
-
_lastUpdate
private long _lastUpdate
-
_dataSourceConsumerEP
private DataSourceConsumerExtensionPoint _dataSourceConsumerEP
-
-
Constructor Detail
-
AbstractDataSourceManager
public AbstractDataSourceManager()
-
-
Method Detail
-
service
public void service(ServiceManager serviceManager) throws ServiceException
- Specified by:
servicein interfaceServiceable- Throws:
ServiceException
-
initialize
public void initialize() throws Exception
- Specified by:
initializein interfaceInitializable- Throws:
Exception
-
getFileConfiguration
public abstract File getFileConfiguration()
Get the file configuration of data sources- Returns:
- the file
-
getDataSourcePrefixId
protected abstract String getDataSourcePrefixId()
Get the prefix for data source identifier- Returns:
- the id prefix
-
checkParameters
public abstract void checkParameters(Map<String,Object> parameters) throws ItemCheckerTestFailureException
Checks the parameters of a data source- Parameters:
parameters- the parameters of the data source- Throws:
ItemCheckerTestFailureException- if the test failed
-
createDataSource
protected abstract void createDataSource(AbstractDataSourceManager.DataSourceDefinition dataSource)
Creates a data source from its configuration- Parameters:
dataSource- the data source configuration
-
editDataSource
protected abstract void editDataSource(AbstractDataSourceManager.DataSourceDefinition dataSource)
Edit a data source from its configuration- Parameters:
dataSource- the data source configuration
-
deleteDataSource
protected abstract void deleteDataSource(AbstractDataSourceManager.DataSourceDefinition dataSource)
Deletes a data source- Parameters:
dataSource- the data source configuration
-
internalSetDefaultDataSource
protected abstract void internalSetDefaultDataSource()
Set a default data source internally
-
getDataSourceDefinitions
public Map<String,AbstractDataSourceManager.DataSourceDefinition> getDataSourceDefinitions(boolean includePrivate, boolean includeInternal, boolean includeDefault)
Get the data source definitions- Parameters:
includePrivate- true to include private data sourcesincludeInternal- true to include internal data sources. Not used by default.includeDefault- true to include an additional data source definition for each default data source- Returns:
- the data source definitions
-
getDataSourceDefinition
public AbstractDataSourceManager.DataSourceDefinition getDataSourceDefinition(String id)
Get the data source definition or null if not found- Parameters:
id- the id of data source- Returns:
- the data source definition or null if not found
-
add
public AbstractDataSourceManager.DataSourceDefinition add(I18nizableText name, I18nizableText description, Map<String,Object> parameters, boolean isPrivate)
Add a data source- Parameters:
name- the namedescription- the descriptionparameters- the parametersisPrivate- true if private- Returns:
- the created data source definition
-
edit
public AbstractDataSourceManager.DataSourceDefinition edit(String id, I18nizableText name, I18nizableText description, Map<String,Object> parameters, boolean isPrivate)
Edit a data source- Parameters:
id- the idname- the namedescription- the descriptionparameters- the parametersisPrivate- true if private- Returns:
- the edited data source definition
-
delete
public void delete(Collection<String> dataSourceIds, boolean forceDeletion)
Delete data sources- Parameters:
dataSourceIds- the ids of the data sources to deleteforceDeletion- Force the remove event the datasource seems to be in use
-
setDefaultDataSource
public AbstractDataSourceManager.DataSourceDefinition setDefaultDataSource(String id)
Set the data source with the given id as the default data source- Parameters:
id- the id of the data source- Returns:
- the
AbstractDataSourceManager.DataSourceDefinitionof the data source set as default
-
getDefaultDataSourceDefinition
public AbstractDataSourceManager.DataSourceDefinition getDefaultDataSourceDefinition()
Get the default data source for this type- Returns:
- the definition object of the default data source. Can return null if no datasource is defined.
-
getDefaultDataSourceId
public String getDefaultDataSourceId()
Get the id of the default data source- Returns:
- the id of the default data source
-
readConfiguration
protected final void readConfiguration()
Read and update the data sources configuration
-
doReadConfiguration
protected abstract Map<String,AbstractDataSourceManager.DataSourceDefinition> doReadConfiguration(File file)
Actually read configuration.- Parameters:
file- the definitions file.- Returns:
- all definitions.
-
saveConfiguration
protected void saveConfiguration()
Save the configured data sources
-
saxDataSource
protected void saxDataSource(ContentHandler handler, AbstractDataSourceManager.DataSourceDefinition dataSource) throws SAXException
SAX an instance of data source- Parameters:
handler- the content handler to sax intodataSource- the data source- Throws:
SAXException- if an error occurred while SAXing
-
checkDataSources
protected void checkDataSources()
Check that the used data sources are indeed available
-
dispose
public void dispose()
- Specified by:
disposein interfaceDisposable
-
-