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
FieldsModifier and TypeFieldDescriptionprotected CurrentUserProviderThe current user providerprotected DataSourceFactoryExtensionPointThe Data Source factory extension point.protected ObservationManagerThe observation managerprotected javax.jcr.RepositoryThe JCR repository.protected SiteManagerThe Site manager.static final StringData sources node name.static final StringPlugin root node name.static final StringPlugins root node name.static final StringConfiguration 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 StringQueries node name.static final StringQuery "parameters" property name.static final StringQuery "query string" property name.static final StringQuery "resultType" property name.static final StringJCR relative path to root node. -
Constructor Summary
Constructors -
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.voidremoveQuery(String siteName, String id) Remove a query.voidservice(ServiceManager serviceManager) updateQuery(String siteName, Map<String, Object> parameters) Updates a query.voidupdateQuery(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:
servicein interfaceServiceable- Throws:
ServiceException
-
getQueries
Description copied from interface:QueryDaoGet all the queries of a site.- Specified by:
getQueriesin 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:QueryDaoGet all the queries of a site.- Specified by:
getQueriesin 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:QueryDaoGet all the queries of a site.- Specified by:
getDataSourceQueriesin 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:QueryDaoGet all the queries of a site of a specific result type- Specified by:
getDataSourceQueriesin 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:QueryDaoGet all the queries of a site of a specific result type- Specified by:
getDataSourceQueriesin 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:QueryDaoGet a query from its id.- Specified by:
getQueryin 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:QueryDaoGet the query properties.- Specified by:
getQueryPropertiesin 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:QueryDaoAdds a query. -
addQuery
Description copied from interface:QueryDaoAdd a query and set its id.- Specified by:
addQueryin 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:QueryDaoUpdates a query.- Specified by:
updateQueryin 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:QueryDaoUpdate a query. Update the query specified by its id member with all the data.- Specified by:
updateQueryin 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:QueryDaoDeletes a query.- Specified by:
deleteQueryin 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:QueryDaoRemove a query.- Specified by:
removeQueryin 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.
-