Class BaseJsonValidator

    • Field Detail

      • suppressSubSchemaRetrieval

        protected final boolean suppressSubSchemaRetrieval
      • schemaNode

        protected final com.fasterxml.jackson.databind.JsonNode schemaNode
    • Method Detail

      • equals

        protected static boolean equals​(double n1,
                                        double n2)
      • debug

        protected static void debug​(org.slf4j.Logger logger,
                                    com.fasterxml.jackson.databind.JsonNode node,
                                    com.fasterxml.jackson.databind.JsonNode rootNode,
                                    JsonNodePath instanceLocation)
      • checkDiscriminatorMatch

        protected static void checkDiscriminatorMatch​(DiscriminatorContext currentDiscriminatorContext,
                                                      com.fasterxml.jackson.databind.node.ObjectNode discriminator,
                                                      String discriminatorPropertyValue,
                                                      JsonSchema jsonSchema)
        Checks based on the current DiscriminatorContext whether the provided JsonSchema a match against against the current discriminator.
        Parameters:
        currentDiscriminatorContext - the currently active DiscriminatorContext
        discriminator - the discriminator to use for the check
        discriminatorPropertyValue - the value of the discriminator/propertyName field
        jsonSchema - the JsonSchema to check
      • registerAndMergeDiscriminator

        protected static void registerAndMergeDiscriminator​(DiscriminatorContext currentDiscriminatorContext,
                                                            com.fasterxml.jackson.databind.node.ObjectNode discriminator,
                                                            JsonSchema schema,
                                                            JsonNodePath instanceLocation)
        Rolls up all nested and compatible discriminators to the root discriminator of the type. Detects attempts to redefine the propertyName or mappings.
        Parameters:
        currentDiscriminatorContext - the currently active DiscriminatorContext
        discriminator - the discriminator to use for the check
        schema - the value of the discriminator/propertyName field
        instanceLocation - the logging prefix
      • getSchemaLocation

        public SchemaLocation getSchemaLocation()
        Description copied from interface: JsonValidator
        The schema location is the canonical URI of the schema object plus a JSON Pointer fragment indicating the subschema that produced a result. In contrast with the evaluation path, the schema location MUST NOT include by-reference applicators such as $ref or $dynamicRef.
        Specified by:
        getSchemaLocation in interface JsonValidator
        Returns:
        the schema location
      • getEvaluationPath

        public JsonNodePath getEvaluationPath()
        Description copied from interface: JsonValidator
        The evaluation path is the set of keys, starting from the schema root, through which evaluation passes to reach the schema object that produced a specific result.
        Specified by:
        getEvaluationPath in interface JsonValidator
        Returns:
        the evaluation path
      • getSchemaNode

        public com.fasterxml.jackson.databind.JsonNode getSchemaNode()
      • getParentSchema

        public JsonSchema getParentSchema()
        Gets the parent schema.

        This is the lexical parent schema.

        Returns:
        the parent schema
      • getNodeFieldType

        protected String getNodeFieldType()
      • atRoot

        protected JsonNodePath atRoot()
        Get the root path.
        Returns:
        The path.
      • hasAdjacentKeywordInEvaluationPath

        protected boolean hasAdjacentKeywordInEvaluationPath​(String keyword)
        Determines if the keyword exists adjacent in the evaluation path.

        This does not check if the keyword exists in the current meta schema as this can be a cross-draft case where the properties keyword is in a Draft 7 schema and the unevaluatedProperties keyword is in an outer Draft 2020-12 schema.

        The fact that the validator exists in the evaluation path implies that the keyword was valid in whatever meta schema for that schema it was created for.

        Parameters:
        keyword - the keyword to check
        Returns:
        true if found
      • collectAnnotations

        protected boolean collectAnnotations​(ExecutionContext executionContext)
        Determine if annotations should be reported.
        Parameters:
        executionContext - the execution context
        Returns:
        true if annotations should be reported
      • collectAnnotations

        protected boolean collectAnnotations​(ExecutionContext executionContext,
                                             String keyword)
        Determine if annotations should be reported.
        Parameters:
        executionContext - the execution context
        keyword - the keyword
        Returns:
        true if annotations should be reported