Interface ResourceRegistryQueryTemplateClient
- All Superinterfaces:
org.gcube.informationsystem.resourceregistry.api.request.RequestInfo
- All Known Implementing Classes:
ResourceRegistryQueryTemplateClientImpl
The interface is the authoritative caller-facing contract. Stable invocation options are represented by immutable request options, while HTTP metadata is available through the opt-in response executor without changing ordinary domain-oriented return values.
- Author:
- Luca Frosini (ISTI - CNR)
-
Field Summary
Fields inherited from interface org.gcube.informationsystem.resourceregistry.api.request.RequestInfo
DEFAULT_LIMIT, DEFAULT_OFFSET, UNBOUNDED_LIMIT -
Method Summary
Modifier and TypeMethodDescriptionvoidDeprecated.voidDeprecated.use per-request custom headers fromResourceRegistryRequestOptionsList<org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate>all()Retrieves all query templates from the Resource Registry.createOrUpdate(String queryTemplate) Creates a new query template, or updates the existing one with the same name (upsert), from its JSON representation.org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplatecreateOrUpdate(org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate queryTemplate) Creates a new query template, or updates the existing one with the same name (upsert).booleanDeletes an existing query template from the Resource Registry by its name.booleandelete(org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate queryTemplate) Deletes an existing query template from the Resource Registry.booleanChecks if a query template exists in the Resource Registry using template name.booleanexist(org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate queryTemplate) Checks if a query template exists in the Resource Registry.booleanWhetherrun(java.lang.String)executes a query template's underlying query polymorphically (including subtypes).Executes a JSON Query against the Query Template collection itself (e.g. by name), as opposed torun(String), which executes a named template's own stored query.List<org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate>jsonQuery(org.gcube.com.fasterxml.jackson.databind.JsonNode jsonNode) Executes a JSON Query against the Query Template collection itself and deserializes the matching definitions.default List<org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate>list()Alias forall().List<org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate>Executes a JSON Query against the Query Template collection itself and returns the matching definitions.org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplateReads an existing query template from the Resource Registry by its name.org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplateread(org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate queryTemplate) Reads an existing query template from the Resource Registry using a provided template object.readAsString(String queryTemplateName) Reads an existing query template from the Resource Registry as JSON string.<E extends org.gcube.informationsystem.model.reference.ERElement>
List<E>Executes the named query template with no parameters.Executes the named query template, substituting the given JSON parameter values into its template variables.<E extends org.gcube.informationsystem.model.reference.ERElement>
List<E>Executes the named query template, substituting the given parameter values.<E extends org.gcube.informationsystem.model.reference.ERElement>
List<E>run(org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate queryTemplate) Executes the query template with no parameters; the name is taken from the givenQueryTemplate.<E extends org.gcube.informationsystem.model.reference.ERElement>
List<E>run(org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate queryTemplate, org.gcube.com.fasterxml.jackson.databind.JsonNode jsonNode) Executes the query template, substituting the given parameter values; the name is taken from the givenQueryTemplate.runGetString(String name) Executes the named query template with no parameters and returns the results as a JSON array string.voidsetPolymorphic(boolean polymorphic) Configures whetherrun(java.lang.String)executes a query template's underlying query polymorphically (including subtypes).Methods inherited from interface org.gcube.informationsystem.resourceregistry.api.request.RequestInfo
allMeta, getLimit, getOffset, includeContexts, includeMeta, isHierarchicalMode, serverResponses, setAllMeta, setHierarchicalMode, setIncludeContexts, setIncludeMeta, setLimit, setOffset
-
Method Details
-
addHeader
Deprecated.use per-request custom headers fromResourceRegistryRequestOptionsAdds a custom HTTP header to be included in requests.Invocation-specific options and immutable response metadata are available through
RequestInfo.serverResponses().- Parameters:
name- Header namevalue- Header value
-
addHeader
Deprecated.use per-request custom headers fromResourceRegistryRequestOptionsAdds a custom HTTP header to be included in requests.Invocation-specific options and immutable response metadata are available through
RequestInfo.serverResponses().- Parameters:
name- Header namevalue- boolean value
-
all
List<org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate> all() throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionRetrieves all query templates from the Resource Registry.Invocation-specific options and immutable response metadata are available through
RequestInfo.serverResponses(), including RFC 8288 paginationLinkheaders andX-Warning. Request options configured viaResourceRegistryRequestOptionsmay specify pagination (limit,offset) andmetadataPolicy.- Returns:
- List of all query templates accessible to the current user, or an empty list if none exist
- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- If an error occurs during query template retrieval
-
list
default List<org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate> list() throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionAlias forall().- Returns:
- List of all query templates accessible to the current user, or an empty list if none exist
- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- If an error occurs during query template retrieval
-
createOrUpdate
org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate createOrUpdate(org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate queryTemplate) throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException Creates a new query template, or updates the existing one with the same name (upsert). The name is taken from the givenQueryTemplate.Invocation-specific options and immutable response metadata are available through
RequestInfo.serverResponses(). Request options configured viaResourceRegistryRequestOptionsmay specifymetadataPolicy.- Parameters:
queryTemplate- the query template to create or update; must not benulland must have a non-blank name- Returns:
- the created/updated query template, as returned by the server
- Throws:
IllegalArgumentException- ifqueryTemplateisnullorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- if the template definition is invalid or the operation fails
-
createOrUpdate
String createOrUpdate(String queryTemplate) throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException Creates a new query template, or updates the existing one with the same name (upsert), from its JSON representation. The name is taken from the JSONnameproperty.Invocation-specific options and immutable response metadata are available through
RequestInfo.serverResponses(). Request options configured viaResourceRegistryRequestOptionsmay specifymetadataPolicy.- Parameters:
queryTemplate- JSON representation of the query template to create or update; must not benullor blank- Returns:
- JSON representation of the created/updated query template, as returned by the server
- Throws:
IllegalArgumentException- ifqueryTemplateisnullor blankorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- if the template definition is invalid or the operation fails
-
exist
boolean exist(org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate queryTemplate) throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException Checks if a query template exists in the Resource Registry.Invocation-specific options and immutable response metadata are available through
RequestInfo.serverResponses().- Parameters:
queryTemplate- The query template to check for existence; must not benulland must have a valid name- Returns:
- true if the query template exists and is accessible, false if not found
- Throws:
IllegalArgumentException- ifqueryTemplateisnullorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- If an error occurs during the existence check
-
exist
boolean exist(String queryTemplateName) throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException Checks if a query template exists in the Resource Registry using template name.Invocation-specific options and immutable response metadata are available through
RequestInfo.serverResponses().- Parameters:
queryTemplateName- The name of the query template to check for existence; must not benullor blank- Returns:
- true if the query template exists and is accessible, false if not found
- Throws:
IllegalArgumentException- ifqueryTemplateNameisnullor blankorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- If an error occurs during the existence check
-
read
org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate read(org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate queryTemplate) throws org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException Reads an existing query template from the Resource Registry using a provided template object.Invocation-specific options and immutable response metadata are available through
RequestInfo.serverResponses(). Request options configured viaResourceRegistryRequestOptionsmay specifymetadataPolicy.- Parameters:
queryTemplate- Template object containing at least the name; must not benull- Returns:
- The complete query template from the Resource Registry
- Throws:
IllegalArgumentException- ifqueryTemplateisnullorg.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException- If no query template is found with the specified nameorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- If an error occurs during template retrieval
-
read
org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate read(String queryTemplateName) throws org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException Reads an existing query template from the Resource Registry by its name.Invocation-specific options and immutable response metadata are available through
RequestInfo.serverResponses(), including canonicalContent-Location,Link: rel="collection", andX-Warning. Request options configured viaResourceRegistryRequestOptionsmay specifymetadataPolicy.- Parameters:
queryTemplateName- The name of the query template to read; must not benullor blank- Returns:
- The complete query template from the Resource Registry
- Throws:
IllegalArgumentException- ifqueryTemplateNameisnullor blankorg.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException- If no query template is found with the specified nameorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- If an error occurs during template retrieval
-
readAsString
String readAsString(String queryTemplateName) throws org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException Reads an existing query template from the Resource Registry as JSON string.Invocation-specific options and immutable response metadata are available through
RequestInfo.serverResponses(), including canonicalContent-Location,Link: rel="collection", andX-Warning. Request options configured viaResourceRegistryRequestOptionsmay specifymetadataPolicy.- Parameters:
queryTemplateName- The name of the query template to read; must not benullor blank- Returns:
- JSON representation of the complete query template from the Resource Registry
- Throws:
IllegalArgumentException- ifqueryTemplateNameisnullor blankorg.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException- If no query template is found with the specified nameorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- If an error occurs during template retrieval
-
runGetString
String runGetString(String name) throws org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException Executes the named query template with no parameters and returns the results as a JSON array string.Invocation-specific options and immutable response metadata are available through
RequestInfo.serverResponses(). Client options andResourceRegistryRequestOptionsconfigurepolymorphic,hierarchicalMode,includeContexts,metadataPolicy,limit, andoffset.- Parameters:
name- the name of the query template to execute; must not benullor blank- Returns:
- JSON array string containing the query results, or empty array string "[]" if no results match
- Throws:
IllegalArgumentException- ifnameisnullor blankorg.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException- if no query template with the given name existsorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- if the execution fails
-
run
<E extends org.gcube.informationsystem.model.reference.ERElement> List<E> run(String name) throws org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException Executes the named query template with no parameters. SeerunGetString(String)for the underlying contract.Invocation-specific options and immutable response metadata are available through
RequestInfo.serverResponses(). Client options andResourceRegistryRequestOptionsconfigurepolymorphic,hierarchicalMode,includeContexts,metadataPolicy,limit, andoffset.- Type Parameters:
E- the expected Information System element type- Parameters:
name- the name of the query template to execute; must not benullor blank- Returns:
- the query results, deserialized, or an empty list if no results match
- Throws:
IllegalArgumentException- ifnameisnullor blankorg.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException- if no query template with the given name existsorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- if the execution fails
-
run
<E extends org.gcube.informationsystem.model.reference.ERElement> List<E> run(org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate queryTemplate) throws org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException Executes the query template with no parameters; the name is taken from the givenQueryTemplate. SeerunGetString(String)for the underlying contract.Invocation-specific options and immutable response metadata are available through
RequestInfo.serverResponses(). Client options andResourceRegistryRequestOptionsconfigurepolymorphic,hierarchicalMode,includeContexts,metadataPolicy,limit, andoffset.- Type Parameters:
E- the expected Information System element type- Parameters:
queryTemplate- the query template to execute (only its name is used); must not benull- Returns:
- the query results, deserialized, or an empty list if no results match
- Throws:
IllegalArgumentException- ifqueryTemplateisnullorg.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException- if no query template with the given name existsorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- if the execution fails
-
run
String run(String name, String params) throws org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException Executes the named query template, substituting the given JSON parameter values into its template variables. SeerunGetString(String)for the underlying contract.Invocation-specific options and immutable response metadata are available through
RequestInfo.serverResponses(). Client options andResourceRegistryRequestOptionsconfigurepolymorphic,hierarchicalMode,includeContexts,metadataPolicy,limit, andoffset.- Parameters:
name- the name of the query template to execute; must not benullor blankparams- JSON object with parameter values for template substitution, ornull/empty for defaults; parameters omitted fall back to their declared default value, if any- Returns:
- JSON array string containing the query results, or empty array string "[]" if no results match
- Throws:
IllegalArgumentException- ifnameisnullor blankorg.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException- if no query template with the given name existsorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- if the execution fails
-
run
<E extends org.gcube.informationsystem.model.reference.ERElement> List<E> run(String name, org.gcube.com.fasterxml.jackson.databind.JsonNode jsonNode) throws org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException Executes the named query template, substituting the given parameter values. Seerun(String, String)for the underlying contract.Invocation-specific options and immutable response metadata are available through
RequestInfo.serverResponses(). Client options andResourceRegistryRequestOptionsconfigurepolymorphic,hierarchicalMode,includeContexts,metadataPolicy,limit, andoffset.- Type Parameters:
E- the expected Information System element type- Parameters:
name- the name of the query template to execute; must not benullor blankjsonNode- parameter values for template substitution, ornullfor defaults- Returns:
- the query results, deserialized, or an empty list if no results match
- Throws:
IllegalArgumentException- ifnameisnullor blankorg.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException- if no query template with the given name existsorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- if the execution fails
-
run
<E extends org.gcube.informationsystem.model.reference.ERElement> List<E> run(org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate queryTemplate, org.gcube.com.fasterxml.jackson.databind.JsonNode jsonNode) throws org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException Executes the query template, substituting the given parameter values; the name is taken from the givenQueryTemplate. Seerun(String, String)for the underlying contract.Invocation-specific options and immutable response metadata are available through
RequestInfo.serverResponses(). Client options andResourceRegistryRequestOptionsconfigurepolymorphic,hierarchicalMode,includeContexts,metadataPolicy,limit, andoffset.- Type Parameters:
E- the expected Information System element type- Parameters:
queryTemplate- the query template to execute (only its name is used); must not benulljsonNode- parameter values for template substitution, ornullfor defaults- Returns:
- the query results, deserialized, or an empty list if no results match
- Throws:
IllegalArgumentException- ifqueryTemplateisnullorg.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException- if no query template with the given name existsorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- if the execution fails
-
delete
boolean delete(org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate queryTemplate) throws org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException Deletes an existing query template from the Resource Registry.Invocation-specific options and immutable response metadata are available through
RequestInfo.serverResponses().- Parameters:
queryTemplate- The query template to delete (must have a valid name); must not benull- Returns:
- true if the query template was successfully deleted
- Throws:
IllegalArgumentException- ifqueryTemplateisnullorg.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException- If no query template is found with the specified nameorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- If an error occurs during template deletion
-
delete
boolean delete(String queryTemplateName) throws org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException Deletes an existing query template from the Resource Registry by its name.Invocation-specific options and immutable response metadata are available through
RequestInfo.serverResponses().- Parameters:
queryTemplateName- The name of the query template to delete; must not benullor blank- Returns:
- true if the query template was successfully deleted
- Throws:
IllegalArgumentException- ifqueryTemplateNameisnullor blankorg.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException- If no query template is found with the specified nameorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- If an error occurs during template deletion
-
isPolymorphic
boolean isPolymorphic()Whetherrun(java.lang.String)executes a query template's underlying query polymorphically (including subtypes). Default:true.Invocation-specific options and immutable response metadata are available through
RequestInfo.serverResponses().- Returns:
- the currently configured polymorphic flag
-
setPolymorphic
void setPolymorphic(boolean polymorphic) Configures whetherrun(java.lang.String)executes a query template's underlying query polymorphically (including subtypes).Invocation-specific options and immutable response metadata are available through
RequestInfo.serverResponses().- Parameters:
polymorphic-trueto include subtypes (default),falsefor exact type match only
-
jsonQuery
String jsonQuery(String query) throws org.gcube.informationsystem.resourceregistry.api.exceptions.queries.InvalidQueryException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException Executes a JSON Query against the Query Template collection itself (e.g. by name), as opposed torun(String), which executes a named template's own stored query.Invocation-specific options and immutable response metadata are available through
RequestInfo.serverResponses(). Request options configured viaResourceRegistryRequestOptionsmay specify pagination (limit,offset) andmetadataPolicy.- Parameters:
query- JSON object describing the Query Template structure to search for; must not benullor blank- Returns:
- JSON array string of matching query template definitions, or empty array string "[]" if none match
- Throws:
IllegalArgumentException- ifqueryisnullor blankorg.gcube.informationsystem.resourceregistry.api.exceptions.queries.InvalidQueryException- if the query syntax is invalidorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- if the lookup fails
-
jsonQuery
List<org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate> jsonQuery(org.gcube.com.fasterxml.jackson.databind.JsonNode jsonNode) throws org.gcube.informationsystem.resourceregistry.api.exceptions.queries.InvalidQueryException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException Executes a JSON Query against the Query Template collection itself and deserializes the matching definitions. SeejsonQuery(String)for the underlying contract.Invocation-specific options and immutable response metadata are available through
RequestInfo.serverResponses(). Request options configured viaResourceRegistryRequestOptionsmay specify pagination (limit,offset) andmetadataPolicy.- Parameters:
jsonNode- JsonNode describing the Query Template structure to search for; must not benull- Returns:
- the matching query template definitions, or an empty list if none match
- Throws:
IllegalArgumentException- ifjsonNodeisnullorg.gcube.informationsystem.resourceregistry.api.exceptions.queries.InvalidQueryException- if the query syntax is invalidorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- if the lookup fails
-
query
List<org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate> query(String query) throws org.gcube.informationsystem.resourceregistry.api.exceptions.queries.InvalidQueryException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException Executes a JSON Query against the Query Template collection itself and returns the matching definitions.Convenience alias delegating to
jsonQuery(String)followed by deserialization to a list ofQueryTemplateentities.Invocation-specific options and immutable response metadata are available through
RequestInfo.serverResponses(). Request options configured viaResourceRegistryRequestOptionsmay specify pagination (limit,offset) andmetadataPolicy.- Parameters:
query- JSON Query-By-Example string describing the Query Template structure to search for; must not benullor blank- Returns:
- a list of matching query templates, or an empty list if no query templates match
- Throws:
IllegalArgumentException- ifqueryisnullor blankorg.gcube.informationsystem.resourceregistry.api.exceptions.queries.InvalidQueryException- if the query syntax is invalidorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- if the lookup fails or an error occurs during retrieval
-
ResourceRegistryRequestOptions