Class SchemaRepository

java.lang.Object
io.vertx.mutiny.json.schema.SchemaRepository
All Implemented Interfaces:
MutinyDelegate

public class SchemaRepository extends Object implements MutinyDelegate
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.

NOTE: This class has been automatically generated from the original non Mutiny-ified interface.

Author:
Paulo Lopes
See Also:
  • SchemaRepository
  • Field Details

  • Constructor Details

    • SchemaRepository

      public SchemaRepository(io.vertx.json.schema.SchemaRepository delegate)
      Create a new instance of SchemaRepository delegating to the given (non-null) instance of SchemaRepository.
    • SchemaRepository

      public SchemaRepository(Object delegate)
  • Method Details

    • getDelegate

      public io.vertx.json.schema.SchemaRepository getDelegate()
      Get the delegate instance.

      This method returns the instance on which this shim is delegating the calls. And so, give you access to the bare API.

      Specified by:
      getDelegate in interface MutinyDelegate
      Returns:
      the delegate instance
    • create

      public static SchemaRepository create(io.vertx.json.schema.JsonSchemaOptions options)
      Create a repository with some initial configuration.
      Parameters:
      options - the initial configuration
      Returns:
      a repository
    • create

      public static SchemaRepository create(io.vertx.json.schema.JsonSchemaOptions options, JsonFormatValidator jsonFormatValidator)
      Create a repository with some initial configuration.
      Parameters:
      options - the initial configuration
      Returns:
      a repository
    • dereference

      public SchemaRepository dereference(JsonSchema schema) throws io.vertx.json.schema.SchemaException
      Dereferences a schema to the repository.
      Parameters:
      schema - a new schema to list
      Returns:
      a repository
      Throws:
      when - a schema is already present for the same id
      io.vertx.json.schema.SchemaException
    • dereference

      public SchemaRepository dereference(String uri, JsonSchema schema) throws io.vertx.json.schema.SchemaException
      Dereferences a schema to the repository.
      Parameters:
      uri - the source of the schema used for de-referencing, optionally relative to JsonSchemaOptions.getBaseUri().
      schema - a new schema to list
      Returns:
      a repository
      Throws:
      when - a schema is already present for the same id
      io.vertx.json.schema.SchemaException
    • preloadMetaSchema

      public 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

      public SchemaRepository preloadMetaSchema(FileSystem fs, io.vertx.json.schema.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

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

      public 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

      public Validator validator(String ref, io.vertx.json.schema.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

      public Validator validator(JsonSchema schema, io.vertx.json.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

      public Validator validator(JsonSchema schema, io.vertx.json.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

      public io.vertx.core.json.JsonObject resolve(io.vertx.core.json.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:
      when - the input JSON is not valid.
      reducing - the JSON pointer to a value is undefined.
    • find

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

      public static SchemaRepository newInstance(io.vertx.json.schema.SchemaRepository delegate)
      Creates a new instance of the SchemaRepository.
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object