Class JsonSchema

java.lang.Object
com.fasterxml.jackson.module.jsonSchema.JsonSchema
Direct Known Subclasses:
HyperSchema, SimpleTypeSchema, UnionTypeSchema

public abstract class JsonSchema extends Object
The type wraps the json schema specification at : Json JsonSchema Draft
JSON (JavaScript Object Notation) JsonSchema defines the media type "application/schema+json", a JSON based format for defining the structure of JSON data. JSON JsonSchema provides a contract for what JSON data is required for a given application and how to interact with it. JSON JsonSchema is intended to define validation, documentation, hyperlink navigation, and interaction control of JSON data.
JSON (JavaScript Object Notation) JsonSchema is a JSON media type for defining the structure of JSON data. JSON JsonSchema provides a contract for what JSON data is required for a given application and how to interact with it. JSON JsonSchema is intended to define validation, documentation, hyperlink navigation, and interaction control of JSON data.
An example JSON JsonSchema provided by the JsonSchema draft:
        {
          "name":"Product",
          "properties":{
            "id":{
              "type":"number",
              "description":"Product identifier",
              "required":true
            },
            "name":{
              "description":"Name of the product",
              "type":"string",
              "required":true
            },
            "price":{
              "required":true,
              "type": "number",
              "minimum":0,
              "required":true
            },
            "tags":{
              "type":"array",
              "items":{
                "type":"string"
              }
            }
          },
          "links":[
            {
              "rel":"full",
              "href":"{id}"
            },
            {
              "rel":"comments",
              "href":"comments/?id={id}"
            }
          ]
        }
 
Author:
jphelan
  • Constructor Details

    • JsonSchema

      protected JsonSchema()
  • Method Details

    • asAnySchema

      public AnySchema asAnySchema()
      Attempt to return this JsonSchema as an AnySchema
      Returns:
      this as an AnySchema if possible, or null otherwise
    • asArraySchema

      public ArraySchema asArraySchema()
      Attempt to return this JsonSchema as an ArraySchema
      Returns:
      this as an ArraySchema if possible, or null otherwise
    • asBooleanSchema

      public BooleanSchema asBooleanSchema()
      Attempt to return this JsonSchema as a BooleanSchema
      Returns:
      this as a BooleanSchema if possible, or null otherwise
    • asContainerSchema

      @Deprecated public ContainerTypeSchema asContainerSchema()
      Deprecated.
      Since 2.7
    • asContainerTypeSchema

      public ContainerTypeSchema asContainerTypeSchema()
      Attempt to return this JsonSchema as a ContainerTypeSchema
      Returns:
      this as an ContainerTypeSchema if possible, or null otherwise
      Since:
      2.7
    • asIntegerSchema

      public IntegerSchema asIntegerSchema()
      Attempt to return this JsonSchema as an IntegerSchema
      Returns:
      this as an IntegerSchema if possible, or null otherwise
    • asNullSchema

      public NullSchema asNullSchema()
      Attempt to return this JsonSchema as a NullSchema
      Returns:
      this as a NullSchema if possible, or null otherwise
    • asNumberSchema

      public NumberSchema asNumberSchema()
      Attempt to return this JsonSchema as a NumberSchema
      Returns:
      this as a NumberSchema if possible, or null otherwise
    • asObjectSchema

      public ObjectSchema asObjectSchema()
      Attempt to return this JsonSchema as an ObjectSchema
      Returns:
      this as an ObjectSchema if possible, or null otherwise
    • asSimpleTypeSchema

      public SimpleTypeSchema asSimpleTypeSchema()
      Attempt to return this JsonSchema as a SimpleTypeSchema
      Returns:
      this as a SimpleTypeSchema if possible, or null otherwise
    • asStringSchema

      public StringSchema asStringSchema()
      Attempt to return this JsonSchema as a StringSchema
      Returns:
      this as a StringSchema if possible, or null otherwise
    • asUnionTypeSchema

      public UnionTypeSchema asUnionTypeSchema()
      Attempt to return this JsonSchema as an UnionTypeSchema
      Returns:
      this as a UnionTypeSchema if possible, or null otherwise
    • asValueSchemaSchema

      @Deprecated public ValueTypeSchema asValueSchemaSchema()
      Deprecated.
      Since 2.7
    • asValueTypeSchema

      public ValueTypeSchema asValueTypeSchema()
      Attempt to return this JsonSchema as a ValueTypeSchema
      Returns:
      this as a ValueTypeSchema if possible, or null otherwise
      Since:
      2.7
    • getId

      public String getId()
    • get$ref

      public String get$ref()
    • get$schema

      public String get$schema()
    • getDisallow

      public JsonSchema[] getDisallow()
    • getExtends

      public JsonSchema[] getExtends()
    • getRequired

      public Boolean getRequired()
    • getReadonly

      public Boolean getReadonly()
    • getDescription

      public String getDescription()
    • getType

      public abstract com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatTypes getType()
    • isAnySchema

      public boolean isAnySchema()
      determine if this JsonSchema is an AnySchema.
      Returns:
      true if this JsonSchema is an AnySchema, false otherwise
    • isArraySchema

      public boolean isArraySchema()
      determine if this JsonSchema is an ArraySchema.
      Returns:
      true if this JsonSchema is an ArraySchema, false otherwise
    • isBooleanSchema

      public boolean isBooleanSchema()
      determine if this JsonSchema is an BooleanSchema.
      Returns:
      true if this JsonSchema is an BooleanSchema, false otherwise
    • isContainerTypeSchema

      public boolean isContainerTypeSchema()
      determine if this JsonSchema is an ContainerTypeSchema.
      Returns:
      true if this JsonSchema is an ContainerTypeSchema, false otherwise
    • isIntegerSchema

      public boolean isIntegerSchema()
      determine if this JsonSchema is an IntegerSchema.
      Returns:
      true if this JsonSchema is an IntegerSchema, false otherwise
    • isNullSchema

      public boolean isNullSchema()
      determine if this JsonSchema is an NullSchema.
      Returns:
      true if this JsonSchema is an NullSchema, false otherwise
    • isNumberSchema

      public boolean isNumberSchema()
      determine if this JsonSchema is an NumberSchema.
      Returns:
      true if this JsonSchema is an NumberSchema, false otherwise
    • isObjectSchema

      public boolean isObjectSchema()
      determine if this JsonSchema is an ObjectSchema.
      Returns:
      true if this JsonSchema is an ObjectSchema, false otherwise
    • isSimpleTypeSchema

      public boolean isSimpleTypeSchema()
      determine if this JsonSchema is an SimpleTypeSchema.
      Returns:
      true if this JsonSchema is an SimpleTypeSchema, false otherwise
    • isStringSchema

      public boolean isStringSchema()
      determine if this JsonSchema is an StringSchema.
      Returns:
      true if this JsonSchema is an StringSchema, false otherwise
    • isUnionTypeSchema

      public boolean isUnionTypeSchema()
      determine if this JsonSchema is an UnionTypeSchema.
      Returns:
      true if this JsonSchema is an UnionTypeSchema, false otherwise
    • isValueTypeSchema

      public boolean isValueTypeSchema()
      determine if this JsonSchema is an ValueTypeSchema.
      Returns:
      true if this JsonSchema is an ValueTypeSchema, false otherwise
    • set$ref

      public void set$ref(String $ref)
    • set$schema

      public void set$schema(String $schema)
    • setDisallow

      public void setDisallow(JsonSchema[] disallow)
    • setExtends

      public void setExtends(JsonSchema[] extendsextends)
    • setId

      public void setId(String id)
    • setRequired

      public void setRequired(Boolean required)
    • setReadonly

      public void setReadonly(Boolean readonly)
    • setDescription

      public void setDescription(String description)
    • enrichWithBeanProperty

      public void enrichWithBeanProperty(com.fasterxml.jackson.databind.BeanProperty beanProperty)
      Override this to add information specific to the property of bean For example, bean validation annotations could be used to specify value constraints in the schema
      Parameters:
      beanProperty -
    • minimalForFormat

      public static JsonSchema minimalForFormat(com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatTypes format)
      Create a schema which verifies only that an object is of the given format.
      Parameters:
      format - the format to expect
      Returns:
      the schema verifying the given format
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • _equals

      protected boolean _equals(JsonSchema that)
    • equals

      protected static boolean equals(Object object1, Object object2)
      A utility method allowing to easily chain calls to equals() on members without taking any risk regarding the ternary operator precedence.
      Returns:
      (object1 == null ? object2 == null : object1.equals(object2))
    • arraysEqual

      protected static <T> boolean arraysEqual(T[] arr1, T[] arr2)