Class QueryTemplateManagement
java.lang.Object
org.gcube.informationsystem.resourceregistry.persistence.orientdb.base.ElementManagement<com.orientechnologies.orient.core.record.OVertex,ET>
org.gcube.informationsystem.resourceregistry.persistence.orientdb.base.EntityElementManagement<org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate,org.gcube.informationsystem.types.reference.entities.EntitySchema>
org.gcube.informationsystem.resourceregistry.persistence.orientdb.queries.templates.QueryTemplateManagement
public class QueryTemplateManagement
extends EntityElementManagement<org.gcube.informationsystem.queries.templates.reference.entities.QueryTemplate,org.gcube.informationsystem.types.reference.entities.EntitySchema>
- Author:
- Luca Frosini (ISTI - CNR)
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected booleanWhether hierarchical execution must use the active-only reader channel.protected org.gcube.informationsystem.resourceregistry.api.rest.ContextsPolicyThe contexts inclusion policy applied to the executed template's results.protected booleanWhether the executed template's underlying query should search descendant Contexts too.The supplied execution keys that declare no variable, set by the lastrun()call.protected MembershipViewThe view that selects the memberships listed by thecontextsmap of each result.protected StringThe name of the query template.protected org.gcube.com.fasterxml.jackson.databind.JsonNodeThe parameters for the query template.protected booleanFields inherited from class org.gcube.informationsystem.resourceregistry.persistence.orientdb.base.EntityElementManagement
IN_PREFIX, OUT_PREFIX, relationManagementsFields inherited from class org.gcube.informationsystem.resourceregistry.persistence.orientdb.base.ElementManagement
accessType, affectedInstances, AT, cachedType, complete, DELETED, DOLLAR, dryRun, element, elementClass, entryPoint, ignoredFields, ignoreKeys, ignoreStartWithKeys, jsonNode, limit, maskMetadata, metadataPolicy, oClass, oDatabaseDocument, offset, operation, polymorphic, preservePassedMetadata, reload, sanityCheckDeferred, self, typeName, UNDERSCORE, updateMode, uuid, workingEnvironment -
Constructor Summary
ConstructorsConstructorDescriptionCreates a newQueryTemplateManagementinstance.QueryTemplateManagement(com.orientechnologies.orient.core.db.document.ODatabaseDocument oDatabaseDocument) Creates a newQueryTemplateManagementinstance bound to the specified database. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidValidates that the schema type of the JSON node matches the configured type name.protected voidChecks if a template with the current name already exists in the database.protected voidValidates the submitted definition against the Query Template contract and replaces it with its normalized form before the generic checks.protected voidValidates that the template name matches the JSON property.protected booleanChecks that the submitted definition may replace the persisted one, following the Versioned Upsert Semantics and the Version Advancement rules.protected org.gcube.com.fasterxml.jackson.databind.JsonNodeAbstract method to create the complete JSON node representation of the element.Atomically creates or updates the element in the database (idempotent upsert).AppliesPUT /query-templates/{name}, the versioned upsert of a Query Template: creates it when the name is absent, updates it when the submitted version is an accepted advancement, and leaves it untouched when the submitted definition is the persisted one.Returns the supplied execution keys that declare no variable of the template, as found by the lastrun()call.getName()Returns the name of the query template.protected StringBufferHelper method to build the SQL SELECT query for resolving a template by name.protected org.gcube.informationsystem.resourceregistry.api.exceptions.AlreadyPresentExceptiongetSpecificAlreadyPresentException(String message) Converts a generic AlreadyPresentException into a subclass-specific AlreadyPresentException.protected org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundExceptiongetSpecificNotFoundException(org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException e) Converts a generic NotFoundException into a subclass-specific NotFoundException.protected EnvironmentReturns the active database working environment.booleanReports whether the lastquery(String)orrun()call was projection-based (i.e. the query contained an_emitblock).Executes a JSON query against the QueryTemplate collection, returning matchingQueryTemplatedefinitions (not their execution results).protected com.orientechnologies.orient.core.record.OVertexPersists a new element in the database (subclass hook).protected voidDeletes an existing element from the database (subclass hook).Retrieves all elements from the database and returns them as a JSON array string.protected com.orientechnologies.orient.core.record.OVertexUpdates an existing element in the database (subclass hook).com.orientechnologies.orient.core.record.OVertexDirectly queries and retrieves the OrientDB element from the database.run()Runs the template query after substituting its variables with the provided values, which are validated first (an omitted variable takes its default unless it is required), honouring thelimit,offset,polymorphic,hierarchical,contextsPolicy, andmetadataPolicyfields already configured on this instance via their respective setters, including the inherited metadata-masking directive.voidPerforms runtime validation of mandatory and not-null schema constraints that cannot be enforced directly by OrientDB in distributed mode.voidsetActiveOnlyHierarchical(boolean activeOnlyHierarchical) Sets whether hierarchical execution must use the active-only reader channel.voidsetContextsPolicy(org.gcube.informationsystem.resourceregistry.api.rest.ContextsPolicy contextsPolicy) Sets the contexts inclusion policy applied to the executed template's results.voidsetHierarchical(boolean hierarchical) Sets whether the executed template's underlying query should search descendant Contexts too.voidsetMembershipView(MembershipView membershipView) Sets the view that selects the memberships listed by thecontextsmap of each result.voidSets the name of the query template and validates its consistency.voidSets the parameters from a JSON string.voidsetParams(org.gcube.com.fasterxml.jackson.databind.JsonNode params) Sets the parameters from aJsonNode.protected voidValidates the query produced by substituting every default value: its root must be an Entity or Relation Type and the query must build.Methods inherited from class org.gcube.informationsystem.resourceregistry.persistence.orientdb.base.EntityElementManagement
addRelation, addToRelationManagement, createVertex, getBaseRelationManagementMethods inherited from class org.gcube.informationsystem.resourceregistry.persistence.orientdb.base.ElementManagement
addIgnoredFields, all, applyPrivacyMask, applyPrivacyMask, checkUUIDMatch, checkUUIDNotAlreadyInUse, cleanCachedSerialization, concludeTransaction, create, createOrUpdateElementWithResult, delete, exists, getAccessType, getAffectedInstances, getAllProperties, getCachedType, getCurrentODatabaseDocumentFromThreadLocal, getElement, getIgnoredFields, getLimit, getMandatoryErrorMessage, getMandatoryErrorMessage, getMetadataPolicy, getOClass, getOffset, getPropertyForJson, getPropertyMap, getTypeName, getUpdateMode, getUUID, internalCreate, internalCreateOrUdate, internalDelete, internalUpdate, isDryRun, isMaskMetadata, isPolymorphic, isPreservePassedMetadata, isReload, isSanityCheckDeferred, read, requireExplicitUUID, retrieveElementFromAnyContext, serializeAsAffectedInstance, serializeAsEndpointReference, serializeAsJsonNode, serializeSelfAsJsonNode, setAsEntryPoint, setDryRun, setElement, setElementType, setIgnoredFields, setJson, setJsonNode, setLimit, setMaskMetadata, setMetadataPolicy, setOClass, setODatabaseDocument, setOffset, setOperation, setPolymorphic, setPreservePassedMetadata, setProperty, setReload, setRequireExplicitUUID, setSanityCheckDeferred, setUpdateMode, setUUID, setWorkingEnvironment, typeSatified, update, updateProperties
-
Field Details
-
name
The name of the query template. -
params
protected org.gcube.com.fasterxml.jackson.databind.JsonNode paramsThe parameters for the query template. -
hierarchical
protected boolean hierarchicalWhether the executed template's underlying query should search descendant Contexts too. -
activeOnlyHierarchical
protected boolean activeOnlyHierarchicalWhether hierarchical execution must use the active-only reader channel. -
contextsPolicy
protected org.gcube.informationsystem.resourceregistry.api.rest.ContextsPolicy contextsPolicyThe contexts inclusion policy applied to the executed template's results. -
membershipView
The view that selects the memberships listed by thecontextsmap of each result. -
projection
protected boolean projection -
ignoredParams
The supplied execution keys that declare no variable, set by the lastrun()call.
-
-
Constructor Details
-
QueryTemplateManagement
public QueryTemplateManagement()Creates a newQueryTemplateManagementinstance. -
QueryTemplateManagement
public QueryTemplateManagement(com.orientechnologies.orient.core.db.document.ODatabaseDocument oDatabaseDocument) throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException Creates a newQueryTemplateManagementinstance bound to the specified database.- Parameters:
oDatabaseDocument- the database connection- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- if initialization fails
-
-
Method Details
-
checkNameMatch
protected void checkNameMatch() throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionValidates that the template name matches the JSON property.- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateException- if the name is missing or differsorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
-
setName
public void setName(String name) throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException Sets the name of the query template and validates its consistency.- Parameters:
name- the template name to set- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- if name validation fails
-
checkJsonNode
protected void checkJsonNode() throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionValidates the submitted definition against the Query Template contract and replaces it with its normalized form before the generic checks.- Overrides:
checkJsonNodein classElementManagement<com.orientechnologies.orient.core.record.OVertex,org.gcube.informationsystem.types.reference.entities.EntitySchema> - Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- if the definition is invalid
-
checkERMatch
protected void checkERMatch() throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionDescription copied from class:ElementManagementValidates that the schema type of the JSON node matches the configured type name.- Overrides:
checkERMatchin classElementManagement<com.orientechnologies.orient.core.record.OVertex,org.gcube.informationsystem.types.reference.entities.EntitySchema> - Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- if the schema types do not match
-
getName
Returns the name of the query template.- Returns:
- the template name
-
getWorkingEnvironment
protected Environment getWorkingEnvironment() throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionDescription copied from class:ElementManagementReturns the active database working environment.- Specified by:
getWorkingEnvironmentin classElementManagement<com.orientechnologies.orient.core.record.OVertex,org.gcube.informationsystem.types.reference.entities.EntitySchema> - Returns:
- the working environment
- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- if the environment cannot be resolved
-
createCompleteJsonNode
protected org.gcube.com.fasterxml.jackson.databind.JsonNode createCompleteJsonNode() throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionDescription copied from class:ElementManagementAbstract method to create the complete JSON node representation of the element.- Specified by:
createCompleteJsonNodein classElementManagement<com.orientechnologies.orient.core.record.OVertex,org.gcube.informationsystem.types.reference.entities.EntitySchema> - Returns:
- the complete JSON node representing the element and its relationships
- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- on serialization or mapping error
-
getSelectQuery
Helper method to build the SQL SELECT query for resolving a template by name.- Returns:
- the built SELECT query
-
checkIfNameAlreadyExists
protected void checkIfNameAlreadyExists() throws org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateAlreadyPresentExceptionChecks if a template with the current name already exists in the database.- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateAlreadyPresentException- if a template with the same name exists
-
tryTemplate
protected void tryTemplate() throws org.gcube.informationsystem.resourceregistry.api.exceptions.queries.InvalidQueryExceptionValidates the query produced by substituting every default value: its root must be an Entity or Relation Type and the query must build. The query is never executed, so the validation does not depend on the token Context or its state.- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.queries.InvalidQueryException- if the query produced by the default values is invalid
-
retrieveElement
public com.orientechnologies.orient.core.record.OVertex retrieveElement() throws org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionDescription copied from class:ElementManagementDirectly queries and retrieves the OrientDB element from the database.- Overrides:
retrieveElementin classElementManagement<com.orientechnologies.orient.core.record.OVertex,org.gcube.informationsystem.types.reference.entities.EntitySchema> - Returns:
- the loaded OrientDB element
- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException- if the element does not existorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- on database error
-
createOrUpdate
public String createOrUpdate() throws org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException, org.gcube.informationsystem.resourceregistry.api.exceptions.instances.AvailableInAnotherContextException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionDescription copied from class:ElementManagementAtomically creates or updates the element in the database (idempotent upsert).- Overrides:
createOrUpdatein classElementManagement<com.orientechnologies.orient.core.record.OVertex,org.gcube.informationsystem.types.reference.entities.EntitySchema> - Returns:
- the serialized JSON representation of the element
- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException- if the element to update does not existorg.gcube.informationsystem.resourceregistry.api.exceptions.instances.AvailableInAnotherContextException- if the element belongs to another contextorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- on database error
-
createOrUpdateWithResult
public QueryTemplateCreationResult createOrUpdateWithResult() throws org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException, org.gcube.informationsystem.resourceregistry.api.exceptions.instances.AvailableInAnotherContextException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionAppliesPUT /query-templates/{name}, the versioned upsert of a Query Template: creates it when the name is absent, updates it when the submitted version is an accepted advancement, and leaves it untouched when the submitted definition is the persisted one.createOrUpdate()is theEntityElementManagementcontract method shared with unrelated create/update paths that don't need the distinction; this method exists soPUT /query-templates/{name}can respond with the correct HTTP status (201 Created on genuine creation, 200 OK otherwise).- Returns:
- the outcome, carrying the serialized Query Template JSON and a created/updated flag
- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException- if the update path cannot locate a required resourceorg.gcube.informationsystem.resourceregistry.api.exceptions.instances.AvailableInAnotherContextException- if the Query Template is available in another contextorg.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateAlreadyPresentException- if the submission conflicts with the persisted Query Template, or a concurrent submission created the same nameorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- on any other persistence failure
-
checkUpdatable
protected boolean checkUpdatable() throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionChecks that the submitted definition may replace the persisted one, following the Versioned Upsert Semantics and the Version Advancement rules. The comparison covers the complete definition exceptidandmetadata.- Returns:
truewhen the submitted definition is the persisted one (same version and identical definition), so nothing has to be written- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.queries.templates.QueryTemplateAlreadyPresentException- if the submittediddiffers from the persisted one, or the submission conflicts with the persisted version, definition or changelogorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- if the persisted Query Template cannot be read, or has no version
-
reallyCreate
protected com.orientechnologies.orient.core.record.OVertex reallyCreate() throws org.gcube.informationsystem.resourceregistry.api.exceptions.AlreadyPresentException, org.gcube.informationsystem.resourceregistry.api.exceptions.queries.InvalidQueryException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionDescription copied from class:ElementManagementPersists a new element in the database (subclass hook).- Specified by:
reallyCreatein classElementManagement<com.orientechnologies.orient.core.record.OVertex,org.gcube.informationsystem.types.reference.entities.EntitySchema> - Returns:
- the persisted OrientDB vertex
- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.AlreadyPresentException- if the element already exists in the databaseorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- on any database errororg.gcube.informationsystem.resourceregistry.api.exceptions.queries.InvalidQueryException
-
reallyUpdate
protected com.orientechnologies.orient.core.record.OVertex reallyUpdate() throws org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionDescription copied from class:ElementManagementUpdates an existing element in the database (subclass hook).- Specified by:
reallyUpdatein classElementManagement<com.orientechnologies.orient.core.record.OVertex,org.gcube.informationsystem.types.reference.entities.EntitySchema> - Returns:
- the updated OrientDB vertex
- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException- if the element does not exist in the databaseorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- on any database error
-
reallyDelete
protected void reallyDelete() throws org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionDescription copied from class:ElementManagementDeletes an existing element from the database (subclass hook).- Specified by:
reallyDeletein classElementManagement<com.orientechnologies.orient.core.record.OVertex,org.gcube.informationsystem.types.reference.entities.EntitySchema> - Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException- if the element does not exist in the databaseorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- on any database error
-
getSpecificNotFoundException
protected org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException getSpecificNotFoundException(org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException e) Description copied from class:ElementManagementConverts a generic NotFoundException into a subclass-specific NotFoundException.- Specified by:
getSpecificNotFoundExceptionin classElementManagement<com.orientechnologies.orient.core.record.OVertex,org.gcube.informationsystem.types.reference.entities.EntitySchema> - Parameters:
e- the generic exception- Returns:
- the specific NotFoundException
-
getSpecificAlreadyPresentException
protected org.gcube.informationsystem.resourceregistry.api.exceptions.AlreadyPresentException getSpecificAlreadyPresentException(String message) Description copied from class:ElementManagementConverts a generic AlreadyPresentException into a subclass-specific AlreadyPresentException.- Specified by:
getSpecificAlreadyPresentExceptionin classElementManagement<com.orientechnologies.orient.core.record.OVertex,org.gcube.informationsystem.types.reference.entities.EntitySchema> - Parameters:
message- the exception message- Returns:
- the specific AlreadyPresentException
-
reallyGetAll
public String reallyGetAll() throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionDescription copied from class:ElementManagementRetrieves all elements from the database and returns them as a JSON array string.- Specified by:
reallyGetAllin classElementManagement<com.orientechnologies.orient.core.record.OVertex,org.gcube.informationsystem.types.reference.entities.EntitySchema> - Returns:
- JSON array string of all elements
- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- on database traversal or serialization error
-
query
public String query(String jsonQuery) throws org.gcube.informationsystem.resourceregistry.api.exceptions.queries.InvalidQueryException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException Executes a JSON query against the QueryTemplate collection, returning matchingQueryTemplatedefinitions (not their execution results).Honours the
limit,offset, andmetadataPolicyfields already configured on this instance viaElementManagement.setLimit(Integer),ElementManagement.setOffset(Integer), andElementManagement.setMetadataPolicy(org.gcube.informationsystem.resourceregistry.api.rest.MetadataPolicy).- Parameters:
jsonQuery- the JSON query payload describing the QueryTemplate search criteria- Returns:
- JSON array string of matching QueryTemplate definitions
- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.queries.InvalidQueryException- if the query is invalid or syntactically incorrectorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- on database or processing failure
-
setParams
public void setParams(String params) throws org.gcube.informationsystem.resourceregistry.api.exceptions.queries.InvalidQueryException Sets the parameters from a JSON string.- Parameters:
params- the JSON string representing the parameters- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.queries.InvalidQueryException- if the payload is malformed or is not a JSON object
-
setParams
public void setParams(org.gcube.com.fasterxml.jackson.databind.JsonNode params) throws org.gcube.informationsystem.resourceregistry.api.exceptions.queries.InvalidQueryException Sets the parameters from aJsonNode.- Parameters:
params- theJsonNoderepresenting the parameters- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.queries.InvalidQueryException- if the node is not a JSON object
-
setHierarchical
public void setHierarchical(boolean hierarchical) Sets whether the executed template's underlying query should search descendant Contexts too.- Parameters:
hierarchical-trueto expand the search boundary to descendant Contexts
-
setActiveOnlyHierarchical
public void setActiveOnlyHierarchical(boolean activeOnlyHierarchical) Sets whether hierarchical execution must use the active-only reader channel.- Parameters:
activeOnlyHierarchical-trueto hide non-active descendant Contexts
-
setContextsPolicy
public void setContextsPolicy(org.gcube.informationsystem.resourceregistry.api.rest.ContextsPolicy contextsPolicy) Sets the contexts inclusion policy applied to the executed template's results.- Parameters:
contextsPolicy- the contexts policy to set
-
setMembershipView
Sets the view that selects the memberships listed by thecontextsmap of each result.- Parameters:
membershipView- the membership view to apply
-
run
public String run() throws org.gcube.informationsystem.resourceregistry.api.exceptions.queries.InvalidQueryException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionRuns the template query after substituting its variables with the provided values, which are validated first (an omitted variable takes its default unless it is required), honouring thelimit,offset,polymorphic,hierarchical,contextsPolicy, andmetadataPolicyfields already configured on this instance via their respective setters, including the inherited metadata-masking directive. The supplied keys that declare no variable are reported bygetIgnoredParams().- Returns:
- the result as JSON string
- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.queries.InvalidQueryException- if the template execution parameters are invalid (a required variable omitted, an explicitnull, a type or constraint violation)org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- if an error occurs during query execution
-
isProjection
public boolean isProjection()Reports whether the lastquery(String)orrun()call was projection-based (i.e. the query contained an_emitblock). SeeInstancesJsonQueryExecutor.isProjection().- Returns:
trueif the last query was projection-based,falseotherwise
-
getIgnoredParams
Returns the supplied execution keys that declare no variable of the template, as found by the lastrun()call.- Returns:
- the ignored keys, empty when every supplied key declares a variable
-
sanityCheck
public void sanityCheck() throws org.gcube.informationsystem.resourceregistry.api.exceptions.types.SchemaViolationException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryExceptionDescription copied from class:ElementManagementPerforms runtime validation of mandatory and not-null schema constraints that cannot be enforced directly by OrientDB in distributed mode.- Overrides:
sanityCheckin classElementManagement<com.orientechnologies.orient.core.record.OVertex,org.gcube.informationsystem.types.reference.entities.EntitySchema> - Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.types.SchemaViolationException- if a schema constraint is violatedorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- on database lookup failure
-