io.vertx.json.schema

## Interface JsonSchema

-     public interface JsonSchema

  A Json-Schema holder. There are 2 kinds of Json-Schema's:
  - JSON Object based
  - Boolean based
  This is a common interface to handle all kinds of schemas.
  Author:
    Paulo Lopes

- - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `JsonSchema` | `annotate(String key, String value)` Annotates the schema.
    `boolean` | `containsKey(String key)` Checks if the given key is present in the schema object.
    `Set<String>` | `fieldNames()` Returns the field names on the underlying object.
    `<R> R` | `get(String key)` Get a type casted value by key.
    `<R> R` | `get(String key, R fallback)` Get a type casted value by key.
    `static JsonSchema` | `of(boolean bool)` Factory method to create a `JsonSchema` from a `Boolean`.
    `static JsonSchema` | `of(JsonObject json)` Factory method to create a `JsonSchema` from a `JsonObject`.
    `static JsonSchema` | `of(String id, JsonObject json)` Factory method to create a `JsonSchema` from a `JsonObject`.
    `JsonObject` | `resolve()` Tries to resolve all internal references.

- - ### Method Detail

    - #### of

          static JsonSchema of(JsonObject json)

      Factory method to create a `JsonSchema` from a `JsonObject`.
      Parameters:
        `json` - a JSON Object.
      Returns:
        a wrapper for the input object.

    - #### of

          static JsonSchema of(String id,
                               JsonObject json)

      Factory method to create a `JsonSchema` from a `JsonObject`.
      Parameters:
        `id` - will force the given id as the schema $id.
        `json` - a JSON Object.
      Returns:
        a wrapper for the input object.

    - #### of

          static JsonSchema of(boolean bool)

      Factory method to create a `JsonSchema` from a `Boolean`.
      Parameters:
        `bool` - a boolean.
      Returns:
        a wrapper for the input object.

    - #### annotate

          JsonSchema annotate(String key,
                              String value)

      Annotates the schema. An annotation is a extra key-value added to the schema that are not relevant for validation but can be used to store pre-computed state.
      Parameters:
        `key` - a key
        `value` - a value

    - #### get

          <R> R get(String key)

      Get a type casted value by key.
      Parameters:
        `key` - a key
      Returns:
        the value or `null`

    - #### get

          <R> R get(String key,
                    R fallback)

      Get a type casted value by key. If the key is missing, then the fallback value is returned.
      Parameters:
        `key` - a key
        `fallback` - fallback when key is not present
      Returns:
        the value or `null`

    - #### containsKey

          boolean containsKey(String key)

      Checks if the given key is present in the schema object.
      Parameters:
        `key` - a key
      Returns:
        `true` if present

    - #### fieldNames

          Set<String> fieldNames()

      Returns the field names on the underlying object.
      Returns:
        field names

    - #### resolve

          JsonObject resolve()

      Tries to resolve all internal references. External references are not resolved. The result is an object where all references have been resolved. Resolution of references is shallow This should normally not be a problem for this use case.
      Returns:
        a new `JsonObject` representing the schema with `$refs` replaced by their value.
      Throws:
        `SchemaException` - when the resolution is impossible. One of such cases is circular referencing.

Copyright © 2022 Eclipse. All rights reserved.