Class JsonQueryContext
Context entity.
Like QueryTemplate, a Context is a flat, standalone entity with no
graph relations to traverse in the sense the JSON Query engine cares about — it is
always the entry point of the query, hence extending JsonQueryElement directly
rather than JsonQueryERElement. (Parent/child Context links exist, but are a
distinct hierarchy-navigation concern handled by ContextRepository, not by
graph traversal in this query engine.)
Lives in the standalone package rather than entities: Context
is its own top-level AccessType category, not an ENTITY (Resource/Facet),
so grouping it alongside JsonQueryResource/JsonQueryFacet would misrepresent
its taxonomy — the same category error originally made with the ER-element inheritance.
Context.PARENT_PROPERTY, Context.CHILDREN_PROPERTY, and
Context.HISTORY are excluded from generic property constraint evaluation:
they are complex/nested structures, not simple scalar filters. Filterable fields
include name, path, state, effectiveState, and
standard base fields (e.g. metadata.createdBy).
- Author:
- Luca Frosini (ISTI - CNR)
-
Field Summary
Fields inherited from class org.gcube.informationsystem.resourceregistry.queries.json.base.JsonQueryElement
accessType, alias, breadcrumb, entryPoint, fieldNamesToRemove, fieldsToEmit, jsonNode, logger, objectMapper, polymorphic, position, projection, queryParameterIndex, queryParameters, size, type -
Constructor Summary
ConstructorsConstructorDescriptionJsonQueryContext(org.gcube.com.fasterxml.jackson.databind.JsonNode jsonQuery) Creates a newJsonQueryContextinstance for the specified JSON query subtree. -
Method Summary
Modifier and TypeMethodDescriptionprotected StringBuffergetSpecificMatchQuery(List<JsonQueryElement> childrenBreadcrumb) Generates the specific MATCH query snippet for this element's subclass (subclass hook).Methods inherited from class org.gcube.informationsystem.resourceregistry.queries.json.base.JsonQueryElement
addConstraints, addFieldToEmit, createMatchQuery, createQuery, evaluateNode, generateAlias, getAlias, getAlias, getBreadcrumb, getChildrenBreadcrumb, getKey, getPosition, getQueryParameters, getScalarValue, getType, getValue, isEntryPoint, isProjection, setBreadcrumb, setEntryPoint, setPolymorphic, setPosition, setProjection, validateType, wrapMatchQuery
-
Constructor Details
-
JsonQueryContext
public JsonQueryContext(org.gcube.com.fasterxml.jackson.databind.JsonNode jsonQuery) throws org.gcube.informationsystem.resourceregistry.api.exceptions.types.SchemaException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException Creates a newJsonQueryContextinstance for the specified JSON query subtree.- Parameters:
jsonQuery- the JSON query node representing the context- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.types.SchemaException- if schema validation failsorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- on database or lookup error
-
-
Method Details
-
getSpecificMatchQuery
protected StringBuffer getSpecificMatchQuery(List<JsonQueryElement> childrenBreadcrumb) throws org.gcube.informationsystem.resourceregistry.api.exceptions.types.SchemaException, org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException Description copied from class:JsonQueryElementGenerates the specific MATCH query snippet for this element's subclass (subclass hook).- Specified by:
getSpecificMatchQueryin classJsonQueryElement- Parameters:
childrenBreadcrumb- the list of child query elements visited- Returns:
- the MATCH query snippet string buffer
- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.types.SchemaException- if schema validation failsorg.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException- on database error
-