Class JcrQueryDao
- java.lang.Object
-
- org.apache.avalon.framework.logger.AbstractLogEnabled
-
- org.ametys.plugins.externaldata.data.jcr.JcrQueryDao
-
- All Implemented Interfaces:
QueryDao
,Component
,LogEnabled
,Serviceable
public class JcrQueryDao extends AbstractLogEnabled implements QueryDao, Serviceable, Component
JCR implementation of the Query DAO. This class manages DataSource and Query objects, storing them in the JCR repository.
-
-
Field Summary
Fields Modifier and Type Field Description protected CurrentUserProvider
_currentUserProvider
The current user providerprotected DataSourceFactoryExtensionPoint
_dataSourceFactoryEP
The Data Source factory extension point.protected ObservationManager
_observationManager
The observation managerprotected Repository
_repository
The JCR repository.protected SiteManager
_siteManager
The Site manager.static String
DATASOURCES_NODE
Data sources node name.static String
PLUGIN_NODE
Plugin root node name.static String
PLUGINS_NODE
Plugins root node name.static String
PROPERTY_CONF_PREFIX
Configuration properties prefix.static String
PROPERTY_DATASOURCE
"Type" property name.static String
PROPERTY_DESCRIPTION
"Description" property name.static String
PROPERTY_NAME
"Name" property name.static String
PROPERTY_TYPE
"Type" property name.static String
QUERIES_NODE
Queries node name.static String
QUERY_PROPERTY_PARAMETERS
Query "parameters" property name.static String
QUERY_PROPERTY_QUERYSTRING
Query "query string" property name.static String
QUERY_PROPERTY_RESULTTYPE
Query "resultType" property name.static String
ROOT_REPO
JCR relative path to root node.
-
Constructor Summary
Constructors Constructor Description JcrQueryDao()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Query
_extractQuery(Node node)
Create a data source from a node.protected void
_fillQueryNode(Query query, Node node)
Store the query properties into the JCR node.protected Map<String,String>
_getAdditionalConf(Node node)
Get additional configuration from properties.protected Collection<String>
_getMultipleProperty(Node node, String propertyName)
Get the values of a string array property.protected String
_getNotExistingNodeName(Node container, String baseName)
Get a name for a node which doesn't already exist in this node.protected Node
_getPluginNode(String siteName)
Get the plugin root node in a site storage space.protected Node
_getQueriesNode(String siteName)
Get the queries root node.protected Query.ResultType
_getResultType(String value, Query.ResultType defaultValue)
Get a a result typeprotected Query.ResultType
_getResultType(Node node, Query.ResultType defaultValue)
Get a single property value.protected String
_getSingleProperty(Node node, String propertyName, String defaultValue)
Get a single property value.Map<String,String>
addQuery(String siteName, Map<String,Object> parameters)
Adds a query.String
addQuery(String siteName, Query query)
Add a query and set its id.Map<String,String>
deleteQuery(String siteName, String id)
Deletes a query.Map<String,Query>
getDataSourceQueries(String siteName, String dataSourceId)
Get all the queries of a site.Map<String,Query>
getDataSourceQueries(String siteName, String dataSourceId, DataSourceClientInteraction.DataSourceType dataSourceType, Query.ResultType resultType)
Get all the queries of a site of a specific result typeMap<String,Query>
getDataSourceQueries(String siteName, String dataSourceId, Query.ResultType resultType)
Get all the queries of a site of a specific result typeMap<String,Query>
getQueries(String siteName)
Get all the queries of a site.Map<String,Query>
getQueries(String siteName, DataSourceClientInteraction.DataSourceType type)
Get all the queries of a site.Query
getQuery(String siteName, String id)
Get a query from its id.Map<String,Object>
getQueryProperties(String id, String siteName)
Get the query properties.void
removeQuery(String siteName, String id)
Remove a query.void
service(ServiceManager serviceManager)
Map<String,String>
updateQuery(String siteName, Map<String,Object> parameters)
Updates a query.void
updateQuery(String siteName, Query query)
Update a query.-
Methods inherited from class org.apache.avalon.framework.logger.AbstractLogEnabled
enableLogging, getLogger, setupLogger, setupLogger, setupLogger
-
-
-
-
Field Detail
-
ROOT_REPO
public static final String ROOT_REPO
JCR relative path to root node.- See Also:
- Constant Field Values
-
PLUGINS_NODE
public static final String PLUGINS_NODE
Plugins root node name.- See Also:
- Constant Field Values
-
PLUGIN_NODE
public static final String PLUGIN_NODE
Plugin root node name.- See Also:
- Constant Field Values
-
DATASOURCES_NODE
public static final String DATASOURCES_NODE
Data sources node name.- See Also:
- Constant Field Values
-
QUERIES_NODE
public static final String QUERIES_NODE
Queries node name.- See Also:
- Constant Field Values
-
PROPERTY_NAME
public static final String PROPERTY_NAME
"Name" property name.- See Also:
- Constant Field Values
-
PROPERTY_DESCRIPTION
public static final String PROPERTY_DESCRIPTION
"Description" property name.- See Also:
- Constant Field Values
-
PROPERTY_TYPE
public static final String PROPERTY_TYPE
"Type" property name.- See Also:
- Constant Field Values
-
PROPERTY_DATASOURCE
public static final String PROPERTY_DATASOURCE
"Type" property name.- See Also:
- Constant Field Values
-
PROPERTY_CONF_PREFIX
public static final String PROPERTY_CONF_PREFIX
Configuration properties prefix.- See Also:
- Constant Field Values
-
QUERY_PROPERTY_QUERYSTRING
public static final String QUERY_PROPERTY_QUERYSTRING
Query "query string" property name.- See Also:
- Constant Field Values
-
QUERY_PROPERTY_PARAMETERS
public static final String QUERY_PROPERTY_PARAMETERS
Query "parameters" property name.- See Also:
- Constant Field Values
-
QUERY_PROPERTY_RESULTTYPE
public static final String QUERY_PROPERTY_RESULTTYPE
Query "resultType" property name.- See Also:
- Constant Field Values
-
_dataSourceFactoryEP
protected DataSourceFactoryExtensionPoint _dataSourceFactoryEP
The Data Source factory extension point.
-
_repository
protected Repository _repository
The JCR repository.
-
_siteManager
protected SiteManager _siteManager
The Site manager.
-
_currentUserProvider
protected CurrentUserProvider _currentUserProvider
The current user provider
-
_observationManager
protected ObservationManager _observationManager
The observation manager
-
-
Constructor Detail
-
JcrQueryDao
public JcrQueryDao()
-
-
Method Detail
-
service
public void service(ServiceManager serviceManager) throws ServiceException
- Specified by:
service
in interfaceServiceable
- Throws:
ServiceException
-
getQueries
public Map<String,Query> getQueries(String siteName) throws DataInclusionException
Description copied from interface:QueryDao
Get all the queries of a site.- Specified by:
getQueries
in interfaceQueryDao
- Parameters:
siteName
- the site name.- Returns:
- the queries as a Map.
- Throws:
DataInclusionException
- if an error occurs while manipulating the data sources
-
getQueries
public Map<String,Query> getQueries(String siteName, DataSourceClientInteraction.DataSourceType type) throws DataInclusionException
Description copied from interface:QueryDao
Get all the queries of a site.- Specified by:
getQueries
in interfaceQueryDao
- Parameters:
siteName
- the site name.type
- the query type- Returns:
- the queries as a Map.
- Throws:
DataInclusionException
- if an error occurs while manipulating the data sources
-
getDataSourceQueries
public Map<String,Query> getDataSourceQueries(String siteName, String dataSourceId) throws DataInclusionException
Description copied from interface:QueryDao
Get all the queries of a site.- Specified by:
getDataSourceQueries
in interfaceQueryDao
- Parameters:
siteName
- the site name.dataSourceId
- the id of the data source- Returns:
- the queries as a Map.
- Throws:
DataInclusionException
- if an error occurs while manipulating the data sources
-
getDataSourceQueries
public Map<String,Query> getDataSourceQueries(String siteName, String dataSourceId, Query.ResultType resultType) throws DataInclusionException
Description copied from interface:QueryDao
Get all the queries of a site of a specific result type- Specified by:
getDataSourceQueries
in interfaceQueryDao
- Parameters:
siteName
- the site name.dataSourceId
- the id of the data sourceresultType
- Filter on result type- Returns:
- the queries as a Map.
- Throws:
DataInclusionException
- if an error occurs while manipulating the data sources
-
getDataSourceQueries
public Map<String,Query> getDataSourceQueries(String siteName, String dataSourceId, DataSourceClientInteraction.DataSourceType dataSourceType, Query.ResultType resultType) throws DataInclusionException
Description copied from interface:QueryDao
Get all the queries of a site of a specific result type- Specified by:
getDataSourceQueries
in interfaceQueryDao
- Parameters:
siteName
- the site name.dataSourceId
- the id of the data sourcedataSourceType
- the query typeresultType
- Filter on result type- Returns:
- the queries as a Map.
- Throws:
DataInclusionException
- if an error occurs while manipulating the data sources
-
getQuery
public Query getQuery(String siteName, String id) throws DataInclusionException
Description copied from interface:QueryDao
Get a query from its id.- Specified by:
getQuery
in interfaceQueryDao
- Parameters:
siteName
- the site name.id
- the query id.- Returns:
- the Query.
- Throws:
DataInclusionException
- if an error occurs while manipulating the data sources
-
getQueryProperties
public Map<String,Object> getQueryProperties(String id, String siteName) throws DataInclusionException
Description copied from interface:QueryDao
Get the query properties.- Specified by:
getQueryProperties
in interfaceQueryDao
- Parameters:
id
- The query idsiteName
- The site name- Returns:
- The properties of the query in a result map.
- Throws:
DataInclusionException
- if an error occurs while manipulating the data sources
-
addQuery
public Map<String,String> addQuery(String siteName, Map<String,Object> parameters) throws Exception
Description copied from interface:QueryDao
Adds a query.
-
addQuery
public String addQuery(String siteName, Query query) throws DataInclusionException
Description copied from interface:QueryDao
Add a query and set its id.- Specified by:
addQuery
in interfaceQueryDao
- Parameters:
siteName
- the site namequery
- the query to add. The id member doesn't need to be specified.- Returns:
- id of the newly created data source.
- Throws:
DataInclusionException
- if an error occurs while manipulating the data sources
-
updateQuery
public Map<String,String> updateQuery(String siteName, Map<String,Object> parameters) throws Exception
Description copied from interface:QueryDao
Updates a query.- Specified by:
updateQuery
in interfaceQueryDao
- Parameters:
siteName
- The site nameparameters
- The params needed to update the query- Returns:
- The id of the updated query and its type, or an error
- Throws:
Exception
- if an error occurs when updating the query
-
updateQuery
public void updateQuery(String siteName, Query query) throws DataInclusionException
Description copied from interface:QueryDao
Update a query. Update the query specified by its id member with all the data.- Specified by:
updateQuery
in interfaceQueryDao
- Parameters:
siteName
- the site namequery
- the query to update.- Throws:
DataInclusionException
- if an error occurs while manipulating the data sources
-
deleteQuery
public Map<String,String> deleteQuery(String siteName, String id) throws Exception
Description copied from interface:QueryDao
Deletes a query.- Specified by:
deleteQuery
in interfaceQueryDao
- Parameters:
siteName
- the site nameid
- The id of the query to delete- Returns:
- The id of the deleted query, or an error
- Throws:
Exception
- if an error occurs when deleting the query
-
removeQuery
public void removeQuery(String siteName, String id) throws DataInclusionException
Description copied from interface:QueryDao
Remove a query.- Specified by:
removeQuery
in interfaceQueryDao
- Parameters:
siteName
- the site nameid
- the query id.- Throws:
DataInclusionException
- if an error occurs while manipulating the data sources
-
_extractQuery
protected Query _extractQuery(Node node) throws RepositoryException, DataInclusionException
Create a data source from a node.- Parameters:
node
- the data source node.- Returns:
- the data source.
- Throws:
RepositoryException
- if an error occurs when exploring the repositoryDataInclusionException
- if an error occurs while manipulating the data sources
-
_getSingleProperty
protected String _getSingleProperty(Node node, String propertyName, String defaultValue) throws RepositoryException
Get a single property value.- Parameters:
node
- the JCR node.propertyName
- the name of the property to get.defaultValue
- the default value if the property does not exist.- Returns:
- the single property value.
- Throws:
RepositoryException
- if a repository error occurs.
-
_getResultType
protected Query.ResultType _getResultType(String value, Query.ResultType defaultValue) throws RepositoryException
Get a a result type- Parameters:
value
- the valuedefaultValue
- the default result type- Returns:
- the result type for the value
- Throws:
RepositoryException
- if an error occurs when exploring the repository
-
_getResultType
protected Query.ResultType _getResultType(Node node, Query.ResultType defaultValue) throws RepositoryException
Get a single property value.- Parameters:
node
- the nodedefaultValue
- the default result type- Returns:
- the result type for the value
- Throws:
RepositoryException
- if an error occurs when exploring the repository
-
_getMultipleProperty
protected Collection<String> _getMultipleProperty(Node node, String propertyName) throws RepositoryException
Get the values of a string array property.- Parameters:
node
- the node.propertyName
- the name of the property to get.- Returns:
- the values.
- Throws:
RepositoryException
- if a repository error occurs.
-
_getAdditionalConf
protected Map<String,String> _getAdditionalConf(Node node) throws RepositoryException
Get additional configuration from properties.- Parameters:
node
- the node- Returns:
- the additional configuration as a Map.
- Throws:
RepositoryException
- if a repository error occurs.
-
_fillQueryNode
protected void _fillQueryNode(Query query, Node node) throws RepositoryException
Store the query properties into the JCR node.- Parameters:
query
- the querysnode
- the query node- Throws:
RepositoryException
- if a repository error occurs.
-
_getNotExistingNodeName
protected String _getNotExistingNodeName(Node container, String baseName) throws RepositoryException
Get a name for a node which doesn't already exist in this node.- Parameters:
container
- the container node.baseName
- the base wanted node name.- Returns:
- the name, free to be taken.
- Throws:
RepositoryException
- if a repository error occurs.
-
_getPluginNode
protected Node _getPluginNode(String siteName) throws RepositoryException
Get the plugin root node in a site storage space.- Parameters:
siteName
- the site name.- Returns:
- the plugin root node.
- Throws:
RepositoryException
- if a repository error occurs.
-
_getQueriesNode
protected Node _getQueriesNode(String siteName) throws RepositoryException
Get the queries root node.- Parameters:
siteName
- the name of the site- Returns:
- the queries root node.
- Throws:
RepositoryException
- if a repository error occurs.
-
-