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 and Context.CHILDREN_PROPERTY are excluded from
generic property constraint evaluation: they are complex/nested structures, not simple scalar
filters. Context.HISTORY can neither be filtered on nor projected: the history of a
Context is served by its dedicated endpoint only. 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, BACKEND_LINK_FIELD_PREFIXES, BACKEND_LINK_FIELDS, BACKEND_TYPE_NAME_FIELD, breadcrumb, CREATED_BY_PATH, declaredPropertyResolver, ELEMENT_INDEX_PATTERN, encryptedTypeParameters, entryPoint, FALSE_CONDITION, FIELD_NAME_PATTERN, fieldNamesToRemove, fieldsToEmit, IS_NULL, jsonNode, LAST_UPDATE_BY_PATH, logger, maskMetadata, objectMapper, operandValidator, OPERATOR_PREFIX, polymorphic, position, projection, queryParameterIndex, queryParameters, RECORD_ATTRIBUTE_PREFIX, size, type, unqueryableFields -
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
addComparisonConstraint, addConstraints, addFieldToEmit, addLogicalConstraints, createMatchQuery, createQuery, evaluateNode, excludeEncrypted, generateAlias, getAlias, getAlias, getBreadcrumb, getChildrenBreadcrumb, getFieldOperand, getFieldReference, getKey, getPosition, getPropertyDomain, getQueryParameters, getRequiredType, getScalarValue, getScalarValue, getType, getValue, isEntryPoint, isProjection, isSensitiveField, resolveFieldName, setBreadcrumb, setEntryPoint, setMaskMetadata, setPolymorphic, setPosition, setProjection, validateEmittedField, validateLogicalCondition, 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
-