Class JsonSchema

java.lang.Object
org.apache.juneau.dto.jsonschema.JsonSchema
Direct Known Subclasses:
JsonSchemaProperty, JsonSchemaRef

@Bean(typeName="schema", properties="id,$schema,$ref, title,description,type,definitions,properties,patternProperties,dependencies,items,multipleOf,maximum,exclusiveMaximum,minimum,exclusiveMinimum,maxLength,minLength,pattern,additionalItems,maxItems,minItems,uniqueItems,maxProperties,minProperties,required,additionalProperties,enum,allOf,anyOf,oneOf,not") public class JsonSchema extends Object
Represents a top-level schema object bean in the JSON-Schema core specification.
  • Constructor Details

    • JsonSchema

      public JsonSchema()
      Default constructor.
  • Method Details

    • getName

      public String getName()
      Bean property getter: name.
      Returns:
      The value of the name property on this bean, or null if it is not set.
    • setName

      public JsonSchema setName(String name)
      Bean property setter: name.
      Parameters:
      name - The new value for the name property on this bean.
      Returns:
      This object.
    • getId

      public URI getId()
      Bean property getter: id.
      Returns:
      The value of the id property on this bean, or null if it is not set.
    • setId

      public JsonSchema setId(Object id)
      Bean property setter: id.

      The value can be of any of the following types: URI, URL, String. Strings must be valid URIs.

      URIs defined by UriResolver can be used for values.

      Parameters:
      id - The new value for the id property on this bean.
      Returns:
      This object.
    • getSchemaVersionUri

      @Beanp("$schema") public URI getSchemaVersionUri()
      Bean property getter: $schema.
      Returns:
      The value of the $schema property on this bean, or null if it is not set.
    • setSchemaVersionUri

      @Beanp("$schema") public JsonSchema setSchemaVersionUri(Object schemaVersion)
      Bean property setter: $schema.

      The value can be of any of the following types: URI, URL, String. Strings must be valid URIs.

      URIs defined by UriResolver can be used for values.

      Parameters:
      schemaVersion - The new value for the schemaVersion property on this bean.
      Returns:
      This object.
    • getTitle

      public String getTitle()
      Bean property getter: title.
      Returns:
      The value of the title property, or null if it is not set.
    • setTitle

      public JsonSchema setTitle(String title)
      Bean property setter: title.
      Parameters:
      title - The new value for the title property on this bean.
      Returns:
      This object.
    • getDescription

      Bean property getter: description.
      Returns:
      The value of the description property, or null if it is not set.
    • setDescription

      public JsonSchema setDescription(String description)
      Bean property setter: description.
      Parameters:
      description - The new value for the description property on this bean.
      Returns:
      This object.
    • getType

      Bean property getter: type.
      Returns:
      The value of the type property on this bean, or null if it is not set. Can be either a JsonType or JsonTypeArray depending on what value was used to set it.
    • getTypeAsJsonType

      Bean property getter: type.

      Convenience method for returning the type property when it is a JsonType value.

      Returns:
      The currently set value, or null if the property is not set, or is set as a JsonTypeArray.
    • getTypeAsJsonTypeArray

      Bean property getter: type.

      Convenience method for returning the type property when it is a JsonTypeArray value.

      Returns:
      The currently set value, or null if the property is not set, or is set as a JsonType.
    • setType

      public JsonSchema setType(Object type)
      Bean property setter: type.
      Parameters:
      type - The new value for the type property on this bean. This object must be of type JsonType or JsonTypeArray.
      Returns:
      This object.
      Throws:
      BeanRuntimeException - If invalid object type passed in.
    • addTypes

      public JsonSchema addTypes(JsonType... types)
      Bean property appender: type.
      Parameters:
      types - The list of items to append to the type property on this bean.
      Returns:
      This object.
    • getDefinitions

      Bean property getter: definitions.
      Returns:
      The value of the definitions property on this bean, or null if it is not set.
    • setDefinitions

      Bean property setter: definitions.
      Parameters:
      definitions - The new value for the definitions property on this bean.
      Returns:
      This object.
    • addDefinition

      public JsonSchema addDefinition(String name, JsonSchema definition)
      Bean property appender: definitions.
      Parameters:
      name - The key in the definitions map entry.
      definition - The value in the definitions map entry.
      Returns:
      This object.
    • getProperties

      Bean property getter: properties.
      Returns:
      The value of the properties property on this bean, or null if it is not set.
    • getProperty

      public JsonSchema getProperty(String name)
      Returns the property with the specified name.

      This is equivalent to calling getProperty(name, false).

      Parameters:
      name - The property name.
      Returns:
      The property with the specified name, or null if no property is specified.
    • getProperty

      public JsonSchema getProperty(String name, boolean resolve)
      Returns the property with the specified name.

      If resolve is true, the property object will automatically be resolved by calling resolve(). Therefore, getProperty(name, true) is equivalent to calling getProperty(name).resolve(), except it's safe from a potential NullPointerException.

      Parameters:
      name - The property name.
      resolve - If true, calls resolve() on object before returning.
      Returns:
      The property with the specified name, or null if no property is specified.
    • setProperties

      Bean property setter: properties.
      Parameters:
      properties - The new value for the properties property on this bean.
      Returns:
      This object.
    • addProperties

      public JsonSchema addProperties(JsonSchema... properties)
      Bean property appender: properties.

      Properties must have their name property set on them when using this method.

      Parameters:
      properties - The list of items to append to the properties property on this bean.
      Returns:
      This object.
      Throws:
      BeanRuntimeException - If property is found without a set name property.
    • getPatternProperties

      Bean property getter: patternProperties.
      Returns:
      The value of the patternProperties property on this bean, or null if it is not set.
    • setPatternProperties

      public JsonSchema setPatternProperties(Map<String,JsonSchema> patternProperties)
      Bean property setter: patternProperties.
      Parameters:
      patternProperties - The new value for the patternProperties property on this bean.
      Returns:
      This object.
    • addPatternProperties

      Bean property appender: patternProperties.

      Properties must have their name property set to the pattern string when using this method.

      Parameters:
      properties - The list of items to append to the patternProperties property on this bean.
      Returns:
      This object.
      Throws:
      BeanRuntimeException - If property is found without a set name property.
    • getDependencies

      Bean property getter: dependencies.
      Returns:
      The value of the dependencies property on this bean, or null if it is not set.
    • setDependencies

      Bean property setter: dependencies.
      Parameters:
      dependencies - The new value for the dependencies property on this bean.
      Returns:
      This object.
    • addDependency

      public JsonSchema addDependency(String name, JsonSchema dependency)
      Bean property appender: dependencies.
      Parameters:
      name - The key of the entry in the dependencies map.
      dependency - The value of the entry in the dependencies map.
      Returns:
      This object.
    • getItems

      Bean property getter: items.
      Returns:
      The value of the items property on this bean, or null if it is not set. Can be either a JsonSchema or JsonSchemaArray depending on what value was used to set it.
    • getItemsAsSchema

      Bean property getter: items.

      Convenience method for returning the items property when it is a JsonSchema value.

      Returns:
      The currently set value, or null if the property is not set, or is set as a JsonSchemaArray.
    • getItemsAsSchemaArray

      Bean property getter: items.

      Convenience method for returning the items property when it is a JsonSchemaArray value.

      Returns:
      The currently set value, or null if the property is not set, or is set as a JsonSchema.
    • setItems

      public JsonSchema setItems(Object items)
      Bean property setter: items.
      Parameters:
      items - The new value for the items property on this bean. This object must be of type JsonSchema or JsonSchemaArray.
      Returns:
      This object.
      Throws:
      BeanRuntimeException - If invalid object type passed in.
    • addItems

      public JsonSchema addItems(JsonSchema... items)
      Bean property appender: items.
      Parameters:
      items - The list of items to append to the items property on this bean.
      Returns:
      This object.
    • getMultipleOf

      Bean property getter: multipleOf.
      Returns:
      The value of the multipleOf property on this bean, or null if it is not set.
    • setMultipleOf

      public JsonSchema setMultipleOf(Number multipleOf)
      Bean property setter: multipleOf.
      Parameters:
      multipleOf - The new value for the multipleOf property on this bean.
      Returns:
      This object.
    • getMaximum

      public Number getMaximum()
      Bean property getter: maximum.
      Returns:
      The value of the maximum property on this bean, or null if it is not set.
    • setMaximum

      public JsonSchema setMaximum(Number maximum)
      Bean property setter: maximum.
      Parameters:
      maximum - The new value for the maximum property on this bean.
      Returns:
      This object.
    • isExclusiveMaximum

      Bean property getter: exclusiveMaximum.
      Returns:
      The value of the exclusiveMaximum property on this bean, or null if it is not set.
    • setExclusiveMaximum

      public JsonSchema setExclusiveMaximum(Boolean exclusiveMaximum)
      Bean property setter: exclusiveMaximum.
      Parameters:
      exclusiveMaximum - The new value for the exclusiveMaximum property on this bean.
      Returns:
      This object.
    • getMinimum

      public Number getMinimum()
      Bean property getter: minimum.
      Returns:
      The value of the minimum property on this bean, or null if it is not set.
    • setMinimum

      public JsonSchema setMinimum(Number minimum)
      Bean property setter: minimum.
      Parameters:
      minimum - The new value for the minimum property on this bean.
      Returns:
      This object.
    • isExclusiveMinimum

      Bean property getter: exclusiveMinimum.
      Returns:
      The value of the exclusiveMinimum property on this bean, or null if it is not set.
    • setExclusiveMinimum

      public JsonSchema setExclusiveMinimum(Boolean exclusiveMinimum)
      Bean property setter: exclusiveMinimum.
      Parameters:
      exclusiveMinimum - The new value for the exclusiveMinimum property on this bean.
      Returns:
      This object.
    • getMaxLength

      Bean property getter: maxLength.
      Returns:
      The value of the maxLength property on this bean, or null if it is not set.
    • setMaxLength

      public JsonSchema setMaxLength(Integer maxLength)
      Bean property setter: maxLength.
      Parameters:
      maxLength - The new value for the maxLength property on this bean.
      Returns:
      This object.
    • getMinLength

      Bean property getter: minLength.
      Returns:
      The value of the minLength property on this bean, or null if it is not set.
    • setMinLength

      public JsonSchema setMinLength(Integer minLength)
      Bean property setter: minLength.
      Parameters:
      minLength - The new value for the minLength property on this bean.
      Returns:
      This object.
    • getPattern

      public String getPattern()
      Bean property getter: pattern.
      Returns:
      The value of the pattern property on this bean, or null if it is not set.
    • setPattern

      public JsonSchema setPattern(String pattern)
      Bean property setter: pattern.
      Parameters:
      pattern - The new value for the pattern property on this bean.
      Returns:
      This object.
    • getAdditionalItems

      Bean property getter: additionalItems.
      Returns:
      The value of the additionalItems property on this bean, or null if it is not set. Can be either a Boolean or JsonSchemaArray depending on what value was used to set it.
    • getAdditionalItemsAsBoolean

      Bean property getter: additionalItems.

      Convenience method for returning the additionalItems property when it is a Boolean value.

      Returns:
      The currently set value, or null if the property is not set, or is set as a JsonSchemaArray.
    • getAdditionalItemsAsSchemaArray

      Bean property getter: additionalItems.

      Convenience method for returning the additionalItems property when it is a JsonSchemaArray value.

      Returns:
      The currently set value, or null if the property is not set, or is set as a Boolean.
    • setAdditionalItems

      public JsonSchema setAdditionalItems(Object additionalItems)
      Bean property setter: additionalItems.
      Parameters:
      additionalItems - The new value for the additionalItems property on this bean. This object must be of type Boolean or JsonSchemaArray.
      Returns:
      This object.
      Throws:
      BeanRuntimeException - If invalid object type passed in.
    • addAdditionalItems

      public JsonSchema addAdditionalItems(JsonSchema... additionalItems)
      Bean property appender: additionalItems.
      Parameters:
      additionalItems - The list of items to append to the additionalItems property on this bean.
      Returns:
      This object.
    • getMaxItems

      public Integer getMaxItems()
      Bean property getter: maxItems.
      Returns:
      The value of the maxItems property on this bean, or null if it is not set.
    • setMaxItems

      public JsonSchema setMaxItems(Integer maxItems)
      Bean property setter: maxItems.
      Parameters:
      maxItems - The new value for the maxItems property on this bean.
      Returns:
      This object.
    • getMinItems

      public Integer getMinItems()
      Bean property getter: minItems.
      Returns:
      The value of the minItems property on this bean, or null if it is not set.
    • setMinItems

      public JsonSchema setMinItems(Integer minItems)
      Bean property setter: minItems.
      Parameters:
      minItems - The new value for the minItems property on this bean.
      Returns:
      This object.
    • getUniqueItems

      Bean property getter: uniqueItems.
      Returns:
      The value of the uniqueItems property on this bean, or null if it is not set.
    • setUniqueItems

      public JsonSchema setUniqueItems(Boolean uniqueItems)
      Bean property setter: uniqueItems.
      Parameters:
      uniqueItems - The new value for the uniqueItems property on this bean.
      Returns:
      This object.
    • getMaxProperties

      Bean property getter: maxProperties.
      Returns:
      The value of the maxProperties property on this bean, or null if it is not set.
    • setMaxProperties

      public JsonSchema setMaxProperties(Integer maxProperties)
      Bean property setter: maxProperties.
      Parameters:
      maxProperties - The new value for the maxProperties property on this bean.
      Returns:
      This object.
    • getMinProperties

      Bean property getter: minProperties.
      Returns:
      The value of the minProperties property on this bean, or null if it is not set.
    • setMinProperties

      public JsonSchema setMinProperties(Integer minProperties)
      Bean property setter: minProperties.
      Parameters:
      minProperties - The new value for the minProperties property on this bean.
      Returns:
      This object.
    • getRequired

      public List<String> getRequired()
      Bean property getter: required.
      Returns:
      The value of the required property on this bean, or null if it is not set.
    • setRequired

      public JsonSchema setRequired(List<String> required)
      Bean property setter: required.
      Parameters:
      required - The new value for the required property on this bean.
      Returns:
      This object.
    • addRequired

      public JsonSchema addRequired(List<String> required)
      Bean property appender: required.
      Parameters:
      required - The list of items to append to the required property on this bean.
      Returns:
      This object.
    • addRequired

      public JsonSchema addRequired(String... required)
      Bean property appender: required.
      Parameters:
      required - The list of items to append to the required property on this bean.
      Returns:
      This object.
    • addRequired

      public JsonSchema addRequired(JsonSchemaProperty... properties)
      Bean property appender: required.
      Parameters:
      properties - The list of items to append to the required property on this bean.
      Returns:
      This object.
    • getAdditionalProperties

      Bean property getter: additionalProperties.
      Returns:
      The value of the additionalProperties property on this bean, or null if it is not set. Can be either a Boolean or JsonSchemaArray depending on what value was used to set it.
    • getAdditionalPropertiesAsBoolean

      Bean property getter: additionalProperties.

      Convenience method for returning the additionalProperties property when it is a Boolean value.

      Returns:
      The currently set value, or null if the property is not set, or is set as a JsonSchema.
    • getAdditionalPropertiesAsSchema

      Bean property getter: additionalProperties.

      Convenience method for returning the additionalProperties property when it is a JsonSchema value.

      Returns:
      The currently set value, or null if the property is not set, or is set as a Boolean.
    • setAdditionalProperties

      Bean property setter: additionalProperties.
      Parameters:
      additionalProperties - The new value for the additionalProperties property on this bean. This object must be of type Boolean or JsonSchema.
      Returns:
      This object.
      Throws:
      BeanRuntimeException - If invalid object type passed in.
    • getEnum

      public List<String> getEnum()
      Bean property getter: enum.
      Returns:
      The value of the enum property on this bean, or null if it is not set.
    • setEnum

      public JsonSchema setEnum(List<String> _enum)
      Bean property setter: enum.
      Parameters:
      _enum - The new value for the enum property on this bean.
      Returns:
      This object.
    • addEnum

      public JsonSchema addEnum(String... _enum)
      Bean property appender: enum.
      Parameters:
      _enum - The list of items to append to the enum property on this bean.
      Returns:
      This object.
    • getAllOf

      Bean property getter: allOf.
      Returns:
      The value of the allOf property on this bean, or null if it is not set.
    • setAllOf

      Bean property setter: allOf.
      Parameters:
      allOf - The new value for the allOf property on this bean.
      Returns:
      This object.
    • addAllOf

      public JsonSchema addAllOf(JsonSchema... allOf)
      Bean property appender: allOf.
      Parameters:
      allOf - The list of items to append to the allOf property on this bean.
      Returns:
      This object.
    • getAnyOf

      Bean property getter: anyOf.
      Returns:
      The value of the anyOf property on this bean, or null if it is not set.
    • setAnyOf

      Bean property setter: anyOf.
      Parameters:
      anyOf - The new value of the anyOf property on this bean.
      Returns:
      This object.
    • addAnyOf

      public JsonSchema addAnyOf(JsonSchema... anyOf)
      Bean property appender: anyOf.
      Parameters:
      anyOf - The list of items to append to the anyOf property on this bean.
      Returns:
      This object.
    • getOneOf

      Bean property getter: oneOf.
      Returns:
      The value of the oneOf property on this bean, or null if it is not set.
    • setOneOf

      Bean property setter: oneOf.
      Parameters:
      oneOf - The new value for the oneOf property on this bean.
      Returns:
      This object.
    • addOneOf

      public JsonSchema addOneOf(JsonSchema... oneOf)
      Bean property appender: oneOf.
      Parameters:
      oneOf - The list of items to append to the oneOf property on this bean.
      Returns:
      This object.
    • getNot

      public JsonSchema getNot()
      Bean property getter: not.
      Returns:
      The value of the not property on this bean, or null if it is not set.
    • setNot

      Bean property setter: not.
      Parameters:
      not - The new value for the not property on this bean.
      Returns:
      This object.
    • getRef

      @Beanp("$ref") public URI getRef()
      Bean property getter: $ref.
      Returns:
      The value of the $ref property on this bean, or null if it is not set.
    • setRef

      @Beanp("$ref") public JsonSchema setRef(Object ref)
      Bean property setter: $ref.

      The value can be of any of the following types: URI, URL, String. Strings must be valid URIs.

      URIs defined by UriResolver can be used for values.

      Parameters:
      ref - The new value for the $ref property on this bean.
      Returns:
      This object.
    • setMaster

      protected void setMaster(JsonSchema master)
      Sets the master schema for this schema and all child schema objects.

      All child elements in a schema should point to a single "master" schema in order to locate registered JsonSchemaMap objects for resolving external schemas.

      Parameters:
      master - The master schema to associate on this and all children. Can be null.
    • resolve

      public JsonSchema resolve()
      Resolve schema if reference.

      If this schema is a reference to another schema (has its $ref property set), this method will retrieve the referenced schema from the schema map registered with this schema.

      If this schema is not a reference, or no schema map is registered with this schema, this method is a no-op and simply returns this object.

      Returns:
      The referenced schema, or null.
    • setSchemaMap

      Associates a schema map with this schema for resolving other schemas identified through $ref properties.
      Parameters:
      schemaMap - The schema map to associate with this schema. Can be null.
      Returns:
      This object.
    • toString

      public String toString()
      Overrides:
      toString in class Object