Interface SchemaRepository


  • public interface SchemaRepository
    A repository is a holder of dereferenced schemas, it can be used to create validator instances for a specific schema.

    This is to be used when multiple schema objects compose the global schema to be used for validation.

    Author:
    Paulo Lopes
    • Method Detail

      • create

        static SchemaRepository create​(JsonSchemaOptions options)
        Create a repository with some initial configuration.
        Parameters:
        options - the initial configuration
        Returns:
        a repository
      • preloadMetaSchema

        SchemaRepository preloadMetaSchema​(FileSystem fs)
        Preloads the repository with the meta schemas for the related @link Draft version. The related draft version is determined from the JsonSchemaOptions, in case that no draft is set in the options an IllegalStateException is thrown.
        Parameters:
        fs - The Vert.x file system to load the related schema meta files from classpath
        Returns:
        a repository
      • preloadMetaSchema

        SchemaRepository preloadMetaSchema​(FileSystem fs,
                                           Draft draft)
        Preloads the repository with the meta schemas for the related draft version.
        Parameters:
        fs - The Vert.x file system to load the related schema meta files from classpath
        draft - The draft version of the meta files to load
        Returns:
        a repository
      • validator

        Validator validator​(JsonSchema schema)
        A new validator instance using this repository options.
        Parameters:
        schema - the start validation schema
        Returns:
        the validator
      • validator

        Validator validator​(String ref)
        A new validator instance using this repository options. This is the preferred way to create a validator as it avoids reparsing schemas and reuses the cache in the repository.
        Parameters:
        ref - the start validation reference in JSON pointer format
        Returns:
        the validator
      • validator

        Validator validator​(String ref,
                            JsonSchemaOptions options)
        A new validator instance overriding this repository options. This is the preferred way to create a validator as it avoids reparsing schemas and reuses the cache in the repository.
        Parameters:
        ref - the start validation reference in JSON pointer format
        options - the options to be using on the validator instance
        Returns:
        the validator
      • validator

        default Validator validator​(JsonSchema schema,
                                    JsonSchemaOptions options)
        A new validator instance overriding this repository options. The given schema will not be referenced to the repository.
        Parameters:
        schema - the start validation schema
        options - the options to be using on the validator instance
        Returns:
        the validator
      • validator

        Validator validator​(JsonSchema schema,
                            JsonSchemaOptions options,
                            boolean dereference)
        A new validator instance overriding this repository options.
        Parameters:
        schema - the start validation schema
        options - the options to be using on the validator instance
        dereference - if true the schema will be dereferenced before validation
        Returns:
        the validator
      • resolve

        JsonObject resolve​(JsonObject schema)
        Resolve all $ref in the given JsonObject. The resolution algrithm is not aware of other specifications. When resolving OpenAPI documents (which only allow $ref at specific locations) you should validate if the document is valid before performing a resolution. It is important to note that any sibling elements of a $ref is ignored. This is because $ref works by replacing itself and everything on its level with the definition it is pointing at.
        Parameters:
        schema - the JSON object to resolve.
        Returns:
        a new JSON object with all the $ref replaced by actual object references.
        Throws:
        IllegalArgumentException - when the input JSON is not valid.
        UnsupportedOperationException - reducing the JSON pointer to a value is undefined.
      • find

        JsonSchema find​(String pointer)
        Look up a schema using a JSON pointer notation
        Parameters:
        pointer - the JSON pointer
        Returns:
        the schema