Class ResourceRegistryQueryTemplateClientImpl

  • All Implemented Interfaces:
    org.gcube.informationsystem.resourceregistry.api.request.RequestInfo, ResourceRegistryQueryTemplateClient

    public class ResourceRegistryQueryTemplateClientImpl
    extends org.gcube.informationsystem.resourceregistry.api.request.BaseRequestInfo
    implements ResourceRegistryQueryTemplateClient
    Default implementation of ResourceRegistryQueryTemplateClient, backed by HTTP calls to the Resource Registry service. Unlike the sibling Context/Schema clients, this implementation keeps no local cache: every operation is a direct round-trip to the server.
    Author:
    Luca Frosini (ISTI - CNR)
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected String address
      The base address of the Resource Registry Query Template service
      protected Map<String,​String> headers
      Additional HTTP headers to be included in requests
      protected boolean polymorphic
      Whether run(java.lang.String) executes a query template's underlying query polymorphically (including subtypes).
      • Fields inherited from class org.gcube.informationsystem.resourceregistry.api.request.BaseRequestInfo

        allMeta, contextsPolicy, hierarchicalMode, includeMeta, limit, membershipScope, offset
      • Fields inherited from interface org.gcube.informationsystem.resourceregistry.api.request.RequestInfo

        DEFAULT_LIMIT, DEFAULT_OFFSET, UNBOUNDED_LIMIT
    • Method Summary

      All Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      void addHeader​(String name, boolean value)
      Adds a custom HTTP header to be included in requests.
      void addHeader​(String name, String value)
      Adds a custom HTTP header to be included in requests.
      List<org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate> all()
      Retrieves all query templates from the Resource Registry.
      String create​(String queryTemplate)
      Deprecated.
      org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate create​(org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate queryTemplate)
      Deprecated.
      String createOrUpdate​(String queryTemplate)
      Creates a new query template, or updates the existing one with the same name (versioned upsert), from its JSON representation, which is sent as it is.
      org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate createOrUpdate​(org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate queryTemplate)
      Creates a new query template, or updates the existing one with the same name (versioned upsert).
      boolean delete​(String queryTemplateName)
      Deletes an existing query template from the Resource Registry by its name.
      boolean delete​(org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate queryTemplate)
      Deletes an existing query template from the Resource Registry.
      boolean exist​(String queryTemplateName)
      Checks if a query template exists in the Resource Registry using template name.
      boolean exist​(org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate queryTemplate)
      Checks if a query template exists in the Resource Registry.
      protected org.gcube.common.gxhttp.request.GXRequest getGXRequest()
      Creates and configures a new HTTP request with authorization headers and custom headers.
      boolean isPolymorphic()
      Whether ResourceRegistryQueryTemplateClient.run(java.lang.String) executes a query template's underlying query polymorphically (including subtypes).
      String jsonQuery​(String query)
      Executes a JSON Query against the Query Template collection itself (e.g.
      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.
      List<org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate> query​(String query)
      Executes a JSON Query against the Query Template collection itself and returns the matching definitions.
      org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate read​(String queryTemplateName)
      Reads an existing query template from the Resource Registry by its name.
      org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate read​(org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate queryTemplate)
      Reads an existing query template from the Resource Registry using a provided template object.
      String 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>
      run​(String name)
      Executes the named query template with no parameters.
      String run​(String name, String params)
      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>
      run​(String name, org.gcube.com.fasterxml.jackson.databind.JsonNode jsonNode)
      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 given QueryTemplate.
      <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 given QueryTemplate.
      String runGetString​(String name)
      Executes the named query template with no parameters and returns the results as a JSON array string.
      void setPolymorphic​(boolean polymorphic)
      Configures whether ResourceRegistryQueryTemplateClient.run(java.lang.String) executes a query template's underlying query polymorphically (including subtypes).
      String update​(String queryTemplate)
      Deprecated.
      org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate update​(org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate queryTemplate)
      Deprecated.
      • Methods inherited from class org.gcube.informationsystem.resourceregistry.api.request.BaseRequestInfo

        allMeta, getContextsPolicy, getLimit, getMembershipScope, getOffset, includeMeta, isHierarchicalMode, setAllMeta, setContextsPolicy, setHierarchicalMode, setIncludeMeta, setLimit, setMembershipScope, setOffset
      • Methods inherited from interface org.gcube.informationsystem.resourceregistry.api.request.RequestInfo

        allMeta, getContextsPolicy, getLimit, getMembershipScope, getOffset, includeMeta, isHierarchicalMode, serverResponses, setAllMeta, setContextsPolicy, setHierarchicalMode, setIncludeMeta, setLimit, setMembershipScope, setOffset
    • Field Detail

      • address

        protected final String address
        The base address of the Resource Registry Query Template service
      • headers

        protected Map<String,​String> headers
        Additional HTTP headers to be included in requests
      • polymorphic

        protected boolean polymorphic
        Whether run(java.lang.String) executes a query template's underlying query polymorphically (including subtypes).
    • Constructor Detail

      • ResourceRegistryQueryTemplateClientImpl

        public ResourceRegistryQueryTemplateClientImpl​(String address)
        Creates a new ResourceRegistryQueryTemplateClientImpl instance.
        Parameters:
        address - The base address of the Resource Registry Query Template service
    • Method Detail

      • addHeader

        public void addHeader​(String name,
                              String value)
        Adds a custom HTTP header to be included in requests.

        Invocation-specific options and immutable response metadata are available through RequestInfo.serverResponses().

        Specified by:
        addHeader in interface ResourceRegistryQueryTemplateClient
        Parameters:
        name - Header name
        value - Header value
      • addHeader

        public void addHeader​(String name,
                              boolean value)
        Adds a custom HTTP header to be included in requests.

        Invocation-specific options and immutable response metadata are available through RequestInfo.serverResponses().

        Specified by:
        addHeader in interface ResourceRegistryQueryTemplateClient
        Parameters:
        name - Header name
        value - boolean value
      • getGXRequest

        protected org.gcube.common.gxhttp.request.GXRequest getGXRequest()
        Creates and configures a new HTTP request with authorization headers and custom headers.
        Returns:
        A configured GXRequest instance ready for use
      • all

        public List<org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate> all()
                                                                                                 throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
        Retrieves all query templates from the Resource Registry.

        Invocation-specific options and immutable response metadata are available through RequestInfo.serverResponses(), including RFC 8288 pagination Link headers and X-Warning. Request options configured via ResourceRegistryRequestOptions may specify pagination (limit, offset) and metadataPolicy.

        Specified by:
        all in interface ResourceRegistryQueryTemplateClient
        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

        public 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 (versioned upsert). The name is taken from the given QueryTemplate, whose version and changelog are sent as they are.

        The server creates the template when the name is absent, updates it when the submitted version is higher than the persisted one, and leaves it untouched when the same version carries an identical definition. Every successful outcome returns the persisted representation.

        Invocation-specific options and immutable response metadata are available through RequestInfo.serverResponses(). Request options configured via ResourceRegistryRequestOptions may specify metadataPolicy.

        This method is a type-safe wrapper that delegates to createOrUpdate(String) for implementation details.
        Specified by:
        createOrUpdate in interface ResourceRegistryQueryTemplateClient
        Parameters:
        queryTemplate - the query template to create or update; must not be null and must have a non-blank name
        Returns:
        the created/updated query template, as returned by the server
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateAlreadyPresentException - if the submitted definition conflicts with the persisted one (same version with a different definition, lower or insufficiently advanced version, altered changelog history, different id)
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException - if the template definition is invalid or the operation fails
      • createOrUpdate

        public 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 (versioned upsert), from its JSON representation, which is sent as it is. The name is taken from the JSON name property. See ResourceRegistryQueryTemplateClient.createOrUpdate(QueryTemplate) for the outcomes.

        Invocation-specific options and immutable response metadata are available through RequestInfo.serverResponses(). Request options configured via ResourceRegistryRequestOptions may specify metadataPolicy.

        Specified by:
        createOrUpdate in interface ResourceRegistryQueryTemplateClient
        Parameters:
        queryTemplate - JSON representation of the query template to create or update; must not be null or blank
        Returns:
        JSON representation of the created/updated query template, as returned by the server
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateAlreadyPresentException - if the submitted definition conflicts with the persisted one (same version with a different definition, lower or insufficiently advanced version, altered changelog history, different id)
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException - if the template definition is invalid or the operation fails
      • exist

        public 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().

        Specified by:
        exist in interface ResourceRegistryQueryTemplateClient
        Parameters:
        queryTemplateName - The name of the query template to check for existence; must not be null or blank
        Returns:
        true if the query template exists and is accessible, false if not found
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException - If an error occurs during the existence check
      • exist

        public 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().

        This method is a type-safe wrapper that delegates to exist(String) for implementation details.
        Specified by:
        exist in interface ResourceRegistryQueryTemplateClient
        Parameters:
        queryTemplate - The query template to check for existence; must not be null and must have a valid name
        Returns:
        true if the query template exists and is accessible, false if not found
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException - If an error occurs during the existence check
      • read

        public 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 via ResourceRegistryRequestOptions may specify metadataPolicy.

        This method is a type-safe wrapper that delegates to read(String) for implementation details.
        Specified by:
        read in interface ResourceRegistryQueryTemplateClient
        Parameters:
        queryTemplate - Template object containing at least the name; must not be null
        Returns:
        The complete query template from the Resource Registry
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException - If no query template is found with the specified name
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException - If an error occurs during template retrieval
      • read

        public 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 canonical Content-Location, Link: rel="collection", and X-Warning. Request options configured via ResourceRegistryRequestOptions may specify metadataPolicy.

        This method is a type-safe wrapper that delegates to readAsString(String) for implementation details.
        Specified by:
        read in interface ResourceRegistryQueryTemplateClient
        Parameters:
        queryTemplateName - The name of the query template to read; must not be null or blank
        Returns:
        The complete query template from the Resource Registry
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException - If no query template is found with the specified name
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException - If an error occurs during template retrieval
      • readAsString

        public 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 canonical Content-Location, Link: rel="collection", and X-Warning. Request options configured via ResourceRegistryRequestOptions may specify metadataPolicy.

        Specified by:
        readAsString in interface ResourceRegistryQueryTemplateClient
        Parameters:
        queryTemplateName - The name of the query template to read; must not be null or blank
        Returns:
        JSON representation of the complete query template from the Resource Registry
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException - If no query template is found with the specified name
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException - If an error occurs during template retrieval
      • runGetString

        public 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 and ResourceRegistryRequestOptions configure polymorphic, hierarchicalMode, contextsPolicy, membershipScope, metadataPolicy, limit, and offset.

        This method is a convenience wrapper that delegates to run(String, String) with empty parameters for implementation details.
        Specified by:
        runGetString in interface ResourceRegistryQueryTemplateClient
        Parameters:
        name - the name of the query template to execute; must not be null or blank
        Returns:
        JSON array string containing the query results, or empty array string "[]" if no results match
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException - if no query template with the given name exists
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException - if the execution fails
      • run

        public <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. See ResourceRegistryQueryTemplateClient.runGetString(String) for the underlying contract.

        Invocation-specific options and immutable response metadata are available through RequestInfo.serverResponses(). Client options and ResourceRegistryRequestOptions configure polymorphic, hierarchicalMode, contextsPolicy, membershipScope, metadataPolicy, limit, and offset.

        This method is a type-safe wrapper that delegates to runGetString(String) for implementation details.
        Specified by:
        run in interface ResourceRegistryQueryTemplateClient
        Type Parameters:
        E - the expected Information System element type
        Parameters:
        name - the name of the query template to execute; must not be null or blank
        Returns:
        the query results, deserialized, or an empty list if no results match
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException - if no query template with the given name exists
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException - if the execution fails
      • run

        public <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 given QueryTemplate. See ResourceRegistryQueryTemplateClient.runGetString(String) for the underlying contract.

        Invocation-specific options and immutable response metadata are available through RequestInfo.serverResponses(). Client options and ResourceRegistryRequestOptions configure polymorphic, hierarchicalMode, contextsPolicy, membershipScope, metadataPolicy, limit, and offset.

        This method is a type-safe wrapper that delegates to run(String) for implementation details.
        Specified by:
        run in interface ResourceRegistryQueryTemplateClient
        Type Parameters:
        E - the expected Information System element type
        Parameters:
        queryTemplate - the query template to execute (only its name is used); must not be null
        Returns:
        the query results, deserialized, or an empty list if no results match
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException - if no query template with the given name exists
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException - if the execution fails
      • run

        public 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. See ResourceRegistryQueryTemplateClient.runGetString(String) for the underlying contract.

        Invocation-specific options and immutable response metadata are available through RequestInfo.serverResponses(). Client options and ResourceRegistryRequestOptions configure polymorphic, hierarchicalMode, contextsPolicy, membershipScope, metadataPolicy, limit, and offset.

        Specified by:
        run in interface ResourceRegistryQueryTemplateClient
        Parameters:
        name - the name of the query template to execute; must not be null or blank
        params - JSON object with parameter values for template substitution, or null/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:
        org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException - if no query template with the given name exists
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException - if the execution fails
      • run

        public <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. See ResourceRegistryQueryTemplateClient.run(String, String) for the underlying contract.

        Invocation-specific options and immutable response metadata are available through RequestInfo.serverResponses(). Client options and ResourceRegistryRequestOptions configure polymorphic, hierarchicalMode, contextsPolicy, membershipScope, metadataPolicy, limit, and offset.

        This method is a type-safe wrapper that delegates to run(String, String) for implementation details.
        Specified by:
        run in interface ResourceRegistryQueryTemplateClient
        Type Parameters:
        E - the expected Information System element type
        Parameters:
        name - the name of the query template to execute; must not be null or blank
        jsonNode - parameter values for template substitution, or null for defaults
        Returns:
        the query results, deserialized, or an empty list if no results match
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException - if no query template with the given name exists
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException - if the execution fails
      • run

        public <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 given QueryTemplate. See ResourceRegistryQueryTemplateClient.run(String, String) for the underlying contract.

        Invocation-specific options and immutable response metadata are available through RequestInfo.serverResponses(). Client options and ResourceRegistryRequestOptions configure polymorphic, hierarchicalMode, contextsPolicy, membershipScope, metadataPolicy, limit, and offset.

        This method is a type-safe wrapper that delegates to run(String, JsonNode) for implementation details.
        Specified by:
        run in interface ResourceRegistryQueryTemplateClient
        Type Parameters:
        E - the expected Information System element type
        Parameters:
        queryTemplate - the query template to execute (only its name is used); must not be null
        jsonNode - parameter values for template substitution, or null for defaults
        Returns:
        the query results, deserialized, or an empty list if no results match
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException - if no query template with the given name exists
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException - if the execution fails
      • delete

        public 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().

        This method is a type-safe wrapper that delegates to delete(String) for implementation details.
        Specified by:
        delete in interface ResourceRegistryQueryTemplateClient
        Parameters:
        queryTemplate - The query template to delete (must have a valid name); must not be null
        Returns:
        true if the query template was successfully deleted
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException - If no query template is found with the specified name
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException - If an error occurs during template deletion
      • delete

        public 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().

        Specified by:
        delete in interface ResourceRegistryQueryTemplateClient
        Parameters:
        queryTemplateName - The name of the query template to delete; must not be null or blank
        Returns:
        true if the query template was successfully deleted
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException - If no query template is found with the specified name
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException - If an error occurs during template deletion
      • jsonQuery

        public 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 to ResourceRegistryQueryTemplateClient.run(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 via ResourceRegistryRequestOptions may specify pagination (limit, offset) and metadataPolicy.

        Specified by:
        jsonQuery in interface ResourceRegistryQueryTemplateClient
        Parameters:
        query - JSON object describing the Query Template structure to search for; must not be null or blank
        Returns:
        JSON array string of matching query template definitions, or empty array string "[]" if none match
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.queries.InvalidQueryException - if the query syntax is invalid
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException - if the lookup fails
      • jsonQuery

        public 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. See ResourceRegistryQueryTemplateClient.jsonQuery(String) for the underlying contract.

        Invocation-specific options and immutable response metadata are available through RequestInfo.serverResponses(). Request options configured via ResourceRegistryRequestOptions may specify pagination (limit, offset) and metadataPolicy.

        This method is a type-safe wrapper that delegates to jsonQuery(String) for implementation details.
        Specified by:
        jsonQuery in interface ResourceRegistryQueryTemplateClient
        Parameters:
        jsonNode - JsonNode describing the Query Template structure to search for; must not be null
        Returns:
        the matching query template definitions, or an empty list if none match
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.queries.InvalidQueryException - if the query syntax is invalid
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException - if the lookup fails
      • query

        public 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 ResourceRegistryQueryTemplateClient.jsonQuery(String) followed by deserialization to a list of QueryTemplate entities.

        Invocation-specific options and immutable response metadata are available through RequestInfo.serverResponses(). Request options configured via ResourceRegistryRequestOptions may specify pagination (limit, offset) and metadataPolicy.

        Specified by:
        query in interface ResourceRegistryQueryTemplateClient
        Parameters:
        query - JSON Query-By-Example string describing the Query Template structure to search for; must not be null or blank
        Returns:
        a list of matching query templates, or an empty list if no query templates match
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.queries.InvalidQueryException - if the query syntax is invalid
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException - if the lookup fails or an error occurs during retrieval
      • create

        @Deprecated
        public org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate create​(org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate queryTemplate)
                                                                                              throws org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateAlreadyPresentException,
                                                                                                     org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
        Deprecated.
        Creates the Query Template; the Resource Registry 6.0.0 has one versioned upsert.
        Specified by:
        create in interface ResourceRegistryQueryTemplateClient
        Parameters:
        queryTemplate - the Query Template
        Returns:
        the Query Template as stored
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateAlreadyPresentException - if the stored version conflicts with the submitted one
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException - if an error occurs during the operation
      • create

        @Deprecated
        public String create​(String queryTemplate)
                      throws org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateAlreadyPresentException,
                             org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
        Deprecated.
        Creates the Query Template; the Resource Registry 6.0.0 has one versioned upsert.
        Specified by:
        create in interface ResourceRegistryQueryTemplateClient
        Parameters:
        queryTemplate - the JSON representation of the Query Template
        Returns:
        the JSON representation of the Query Template as stored
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateAlreadyPresentException - if the stored version conflicts with the submitted one
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException - if an error occurs during the operation
      • update

        @Deprecated
        public org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate update​(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
        Deprecated.
        Updates the Query Template; the Resource Registry 6.0.0 has one versioned upsert.
        Specified by:
        update in interface ResourceRegistryQueryTemplateClient
        Parameters:
        queryTemplate - the Query Template
        Returns:
        the Query Template as stored
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException - never thrown by the upsert, kept for the callers of the previous releases
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException - if an error occurs during the operation
      • update

        @Deprecated
        public String update​(String queryTemplate)
                      throws org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException,
                             org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
        Deprecated.
        Updates the Query Template; the Resource Registry 6.0.0 has one versioned upsert.
        Specified by:
        update in interface ResourceRegistryQueryTemplateClient
        Parameters:
        queryTemplate - the JSON representation of the Query Template
        Returns:
        the JSON representation of the Query Template as stored
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateNotFoundException - never thrown by the upsert, kept for the callers of the previous releases
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException - if an error occurs during the operation