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
JCR implementation of the Query DAO.
This class manages DataSource and Query objects, storing them in the JCR repository.
-
Field Summary
Modifier and TypeFieldDescriptionprotected CurrentUserProvider
The current user providerprotected DataSourceFactoryExtensionPoint
The Data Source factory extension point.protected ObservationManager
The observation managerprotected javax.jcr.Repository
The JCR repository.protected SiteManager
The Site manager.static final String
Data sources node name.static final String
Plugin root node name.static final String
Plugins root node name.static final String
Configuration properties prefix.static final String
"Type" property name.static final String
"Description" property name.static final String
"Name" property name.static final String
"Type" property name.static final String
Queries node name.static final String
Query "parameters" property name.static final String
Query "query string" property name.static final String
Query "resultType" property name.static final String
JCR relative path to root node. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected Query
_extractQuery
(javax.jcr.Node node) Create a data source from a node.protected void
_fillQueryNode
(Query query, javax.jcr.Node node) Store the query properties into the JCR node._getAdditionalConf
(javax.jcr.Node node) Get additional configuration from properties.protected Collection<String>
_getMultipleProperty
(javax.jcr.Node node, String propertyName) Get the values of a string array property.protected String
_getNotExistingNodeName
(javax.jcr.Node container, String baseName) Get a name for a node which doesn't already exist in this node.protected javax.jcr.Node
_getPluginNode
(String siteName) Get the plugin root node in a site storage space.protected javax.jcr.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
(javax.jcr.Node node, Query.ResultType defaultValue) Get a single property value.protected String
_getSingleProperty
(javax.jcr.Node node, String propertyName, String defaultValue) Get a single property value.Adds a query.Add a query and set its id.deleteQuery
(String siteName, String id) Deletes a query.getDataSourceQueries
(String siteName, String dataSourceId) Get all the queries of a site.getDataSourceQueries
(String siteName, String dataSourceId, DataSourceClientInteraction.DataSourceType dataSourceType, Query.ResultType resultType) Get all the queries of a site of a specific result typegetDataSourceQueries
(String siteName, String dataSourceId, Query.ResultType resultType) Get all the queries of a site of a specific result typegetQueries
(String siteName) Get all the queries of a site.getQueries
(String siteName, DataSourceClientInteraction.DataSourceType type) Get all the queries of a site.Get a query from its id.getQueryProperties
(String id, String siteName) Get the query properties.void
removeQuery
(String siteName, String id) Remove a query.void
service
(ServiceManager serviceManager) 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 Details
-
ROOT_REPO
JCR relative path to root node.- See Also:
-
PLUGINS_NODE
Plugins root node name.- See Also:
-
PLUGIN_NODE
Plugin root node name.- See Also:
-
DATASOURCES_NODE
Data sources node name.- See Also:
-
QUERIES_NODE
Queries node name.- See Also:
-
PROPERTY_NAME
"Name" property name.- See Also:
-
PROPERTY_DESCRIPTION
"Description" property name.- See Also:
-
PROPERTY_TYPE
"Type" property name.- See Also:
-
PROPERTY_DATASOURCE
"Type" property name.- See Also:
-
PROPERTY_CONF_PREFIX
Configuration properties prefix.- See Also:
-
QUERY_PROPERTY_QUERYSTRING
Query "query string" property name.- See Also:
-
QUERY_PROPERTY_PARAMETERS
Query "parameters" property name.- See Also:
-
QUERY_PROPERTY_RESULTTYPE
Query "resultType" property name.- See Also:
-
_dataSourceFactoryEP
The Data Source factory extension point. -
_repository
The JCR repository. -
_siteManager
The Site manager. -
_currentUserProvider
The current user provider -
_observationManager
The observation manager
-
-
Constructor Details
-
JcrQueryDao
public JcrQueryDao()
-
-
Method Details
-
service
- Specified by:
service
in interfaceServiceable
- Throws:
ServiceException
-
getQueries
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
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
Description copied from interface:QueryDao
Adds a query. -
addQuery
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 ExceptionDescription 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
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
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
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(javax.jcr.Node node) throws javax.jcr.RepositoryException, DataInclusionException Create a data source from a node.- Parameters:
node
- the data source node.- Returns:
- the data source.
- Throws:
javax.jcr.RepositoryException
- if an error occurs when exploring the repositoryDataInclusionException
- if an error occurs while manipulating the data sources
-
_getSingleProperty
protected String _getSingleProperty(javax.jcr.Node node, String propertyName, String defaultValue) throws javax.jcr.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:
javax.jcr.RepositoryException
- if a repository error occurs.
-
_getResultType
protected Query.ResultType _getResultType(String value, Query.ResultType defaultValue) throws javax.jcr.RepositoryException Get a a result type- Parameters:
value
- the valuedefaultValue
- the default result type- Returns:
- the result type for the value
- Throws:
javax.jcr.RepositoryException
- if an error occurs when exploring the repository
-
_getResultType
protected Query.ResultType _getResultType(javax.jcr.Node node, Query.ResultType defaultValue) throws javax.jcr.RepositoryException Get a single property value.- Parameters:
node
- the nodedefaultValue
- the default result type- Returns:
- the result type for the value
- Throws:
javax.jcr.RepositoryException
- if an error occurs when exploring the repository
-
_getMultipleProperty
protected Collection<String> _getMultipleProperty(javax.jcr.Node node, String propertyName) throws javax.jcr.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:
javax.jcr.RepositoryException
- if a repository error occurs.
-
_getAdditionalConf
protected Map<String,String> _getAdditionalConf(javax.jcr.Node node) throws javax.jcr.RepositoryException Get additional configuration from properties.- Parameters:
node
- the node- Returns:
- the additional configuration as a Map.
- Throws:
javax.jcr.RepositoryException
- if a repository error occurs.
-
_fillQueryNode
protected void _fillQueryNode(Query query, javax.jcr.Node node) throws javax.jcr.RepositoryException Store the query properties into the JCR node.- Parameters:
query
- the querysnode
- the query node- Throws:
javax.jcr.RepositoryException
- if a repository error occurs.
-
_getNotExistingNodeName
protected String _getNotExistingNodeName(javax.jcr.Node container, String baseName) throws javax.jcr.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:
javax.jcr.RepositoryException
- if a repository error occurs.
-
_getPluginNode
Get the plugin root node in a site storage space.- Parameters:
siteName
- the site name.- Returns:
- the plugin root node.
- Throws:
javax.jcr.RepositoryException
- if a repository error occurs.
-
_getQueriesNode
Get the queries root node.- Parameters:
siteName
- the name of the site- Returns:
- the queries root node.
- Throws:
javax.jcr.RepositoryException
- if a repository error occurs.
-