Class SchemaFactory

java.lang.Object
io.smallrye.openapi.runtime.io.schema.SchemaFactory

public class SchemaFactory extends Object
Author:
Marc Savy <marc@rhymewithgravy.com>
  • Method Summary

    Modifier and Type
    Method
    Description
    static org.eclipse.microprofile.openapi.models.media.Schema
    enumToSchema(AnnotationScannerContext context, org.jboss.jandex.Type enumType)
    Convert a Jandex enum class type to a Schema model.
    static org.eclipse.microprofile.openapi.models.media.Schema
    includeTypeSchema(AnnotationScannerContext context, org.eclipse.microprofile.openapi.models.media.Schema schema, org.jboss.jandex.Type type)
     
    static org.eclipse.microprofile.openapi.models.media.Schema
    readSchema(AnnotationScannerContext context, org.eclipse.microprofile.openapi.models.media.Schema schema, org.jboss.jandex.AnnotationInstance annotation, Map<String,Object> defaults)
     
    static org.eclipse.microprofile.openapi.models.media.Schema
    readSchema(AnnotationScannerContext context, org.eclipse.microprofile.openapi.models.media.Schema schema, org.jboss.jandex.AnnotationInstance annotation, org.jboss.jandex.ClassInfo clazz, boolean registerSchema)
    Populates the schema using the @Schema on the provided class.
    static org.eclipse.microprofile.openapi.models.media.Schema
    readSchema(AnnotationScannerContext context, org.jboss.jandex.AnnotationInstance schemaAnnotation)
    Reads a Schema annotation into a model.
    static org.eclipse.microprofile.openapi.models.media.Schema
    readSchema(AnnotationScannerContext context, org.jboss.jandex.AnnotationValue value)
    Reads a Schema annotation into a model.
    static org.eclipse.microprofile.openapi.models.media.Schema
    schemaRegistration(AnnotationScannerContext context, org.jboss.jandex.Type type, org.eclipse.microprofile.openapi.models.media.Schema schema)
    Register the provided schema in the SchemaRegistry if allowed.
    static org.eclipse.microprofile.openapi.models.media.Schema
    typeToSchema(AnnotationScannerContext context, org.jboss.jandex.Type type)
    Converts a Jandex type to a Schema model.
    static org.eclipse.microprofile.openapi.models.media.Schema
    typeToSchema(AnnotationScannerContext context, org.jboss.jandex.Type type, org.jboss.jandex.AnnotationInstance schemaAnnotation)
    Converts a Jandex type to a Schema model.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • readSchema

      public static org.eclipse.microprofile.openapi.models.media.Schema readSchema(AnnotationScannerContext context, org.jboss.jandex.AnnotationValue value)
      Reads a Schema annotation into a model.
      Parameters:
      context - scanning context
      value - the annotation value
      Returns:
      Schema model
    • readSchema

      public static org.eclipse.microprofile.openapi.models.media.Schema readSchema(AnnotationScannerContext context, org.jboss.jandex.AnnotationInstance schemaAnnotation)
      Reads a Schema annotation into a model.
      Parameters:
      context - scanning context
      schemaAnnotation - the @Schema annotation
      Returns:
      Schema model
    • readSchema

      public static org.eclipse.microprofile.openapi.models.media.Schema readSchema(AnnotationScannerContext context, org.eclipse.microprofile.openapi.models.media.Schema schema, org.jboss.jandex.AnnotationInstance annotation, org.jboss.jandex.ClassInfo clazz, boolean registerSchema)
      Populates the schema using the @Schema on the provided class. If the schema has already been registered (in components), the existing registration will be replaced.
      Parameters:
      context - scanning context
      schema - schema model to populate
      annotation - schema annotation to read
      clazz - the class annotated with @Schema
      Returns:
      the schema, possibly replaced if implementation has been specified in the annotation
    • readSchema

      public static org.eclipse.microprofile.openapi.models.media.Schema readSchema(AnnotationScannerContext context, org.eclipse.microprofile.openapi.models.media.Schema schema, org.jboss.jandex.AnnotationInstance annotation, Map<String,Object> defaults)
    • includeTypeSchema

      public static org.eclipse.microprofile.openapi.models.media.Schema includeTypeSchema(AnnotationScannerContext context, org.eclipse.microprofile.openapi.models.media.Schema schema, org.jboss.jandex.Type type)
    • typeToSchema

      public static org.eclipse.microprofile.openapi.models.media.Schema typeToSchema(AnnotationScannerContext context, org.jboss.jandex.Type type)
      Converts a Jandex type to a Schema model.
      Parameters:
      context - scanning context
      type - the implementation type of the item to scan
      Returns:
      Schema model
    • typeToSchema

      public static org.eclipse.microprofile.openapi.models.media.Schema typeToSchema(AnnotationScannerContext context, org.jboss.jandex.Type type, org.jboss.jandex.AnnotationInstance schemaAnnotation)
      Converts a Jandex type to a Schema model.
      Parameters:
      context - scanning context
      type - the implementation type of the item to scan
      Returns:
      Schema model
    • enumToSchema

      public static org.eclipse.microprofile.openapi.models.media.Schema enumToSchema(AnnotationScannerContext context, org.jboss.jandex.Type enumType)
      Convert a Jandex enum class type to a Schema model. Adds each enum constant name to the list of the given schema's enumeration list. Enumeration values are obtained preferring values from any method annotated with Jackson's `@JsonValue`, if present. The enum class must be loaded in the context's ClassLoader to perform the value extraction. If the annotation is not present, is not located on a supplier method, or any reflection error occurs, the enumeration values will default to the enum constant names listed in the ClassInfo. The given type must be found in the index.
      Parameters:
      context - scanning context
      enumType - type containing Java Enum constants
      Returns:
      Schema model
      See Also:
    • schemaRegistration

      public static org.eclipse.microprofile.openapi.models.media.Schema schemaRegistration(AnnotationScannerContext context, org.jboss.jandex.Type type, org.eclipse.microprofile.openapi.models.media.Schema schema)
      Register the provided schema in the SchemaRegistry if allowed.
      Parameters:
      context - scanning context
      type - the type of the schema to register
      schema - a schema
      Returns:
      a reference to the registered schema or the input schema when registration is not allowed/possible