Class JsonSchemaGenerator

java.lang.Object
dev.metaschema.schemagen.AbstractSchemaGenerator<com.fasterxml.jackson.core.JsonGenerator,dev.metaschema.schemagen.json.impl.JsonDatatypeManager,dev.metaschema.schemagen.json.impl.JsonGenerationState>
dev.metaschema.schemagen.json.JsonSchemaGenerator
All Implemented Interfaces:
ISchemaGenerator

public class JsonSchemaGenerator extends AbstractSchemaGenerator<com.fasterxml.jackson.core.JsonGenerator,dev.metaschema.schemagen.json.impl.JsonDatatypeManager,dev.metaschema.schemagen.json.impl.JsonGenerationState>
Generates JSON Schema documents from Metaschema modules.

This generator produces JSON Schema draft-07 compatible schemas that can be used to validate JSON and YAML content conforming to the Metaschema model.

  • Constructor Details

    • JsonSchemaGenerator

      public JsonSchemaGenerator()
      Constructs a new JSON schema generator using a default JSON factory.
    • JsonSchemaGenerator

      public JsonSchemaGenerator(@NonNull com.fasterxml.jackson.core.JsonFactory jsonFactory)
      Constructs a new JSON schema generator using the specified JSON factory.
      Parameters:
      jsonFactory - the Jackson JSON factory to use for creating JSON generators
  • Method Details

    • getJsonFactory

      @NonNull public com.fasterxml.jackson.core.JsonFactory getJsonFactory()
      Retrieves the JSON factory used by this generator.
      Returns:
      the JSON factory instance
    • newWriter

      protected com.fasterxml.jackson.core.JsonGenerator newWriter(Writer out)
      Description copied from class: AbstractSchemaGenerator
      Create a new writer to use to write the schema.

      The caller owns the returned writer and is responsible for closing it.

      Specified by:
      newWriter in class AbstractSchemaGenerator<com.fasterxml.jackson.core.JsonGenerator,dev.metaschema.schemagen.json.impl.JsonDatatypeManager,dev.metaschema.schemagen.json.impl.JsonGenerationState>
      Parameters:
      out - the Writer to write the schema content to
      Returns:
      the schema writer
    • newGenerationState

      protected dev.metaschema.schemagen.json.impl.JsonGenerationState newGenerationState(IModule module, com.fasterxml.jackson.core.JsonGenerator schemaWriter, IConfiguration<SchemaGenerationFeature<?>> configuration)
      Description copied from class: AbstractSchemaGenerator
      Create a new schema generation state object.
      Specified by:
      newGenerationState in class AbstractSchemaGenerator<com.fasterxml.jackson.core.JsonGenerator,dev.metaschema.schemagen.json.impl.JsonDatatypeManager,dev.metaschema.schemagen.json.impl.JsonGenerationState>
      Parameters:
      module - the Metaschema module to generate the schema for
      schemaWriter - the writer to use to write the schema
      configuration - the generation configuration
      Returns:
      the schema generation state used for context and writing
    • generateSchema

      protected void generateSchema(dev.metaschema.schemagen.json.impl.JsonGenerationState state)
      Description copied from class: AbstractSchemaGenerator
      Called to generate the actual schema content.
      Specified by:
      generateSchema in class AbstractSchemaGenerator<com.fasterxml.jackson.core.JsonGenerator,dev.metaschema.schemagen.json.impl.JsonDatatypeManager,dev.metaschema.schemagen.json.impl.JsonGenerationState>
      Parameters:
      state - the generation state object