Class ModelUtil

java.lang.Object
io.smallrye.openapi.runtime.util.ModelUtil

public class ModelUtil extends Object
Class with some convenience methods useful for working with the OAI data model.
Author:
eric.wittmann@gmail.com
  • Method Summary

    Modifier and Type
    Method
    Description
    static <V> Map<String,V>
    add(String key, V value, Map<String,V> map, Supplier<Map<String,V>> factory)
     
    static <V> List<V>
    add(V value, List<V> list)
     
    static <V> List<V>
    add(V value, List<V> list, Supplier<List<V>> factory)
     
    static void
    addTag(org.eclipse.microprofile.openapi.models.OpenAPI openApi, org.eclipse.microprofile.openapi.models.tags.Tag tag)
    Adds a Tag to the OpenAPI model.
    static org.eclipse.microprofile.openapi.models.Components
    components(org.eclipse.microprofile.openapi.models.OpenAPI openApi)
    Gets the Components from the OAI model.
    static <T extends org.eclipse.microprofile.openapi.models.Reference<T>>
    T
    dereference(org.eclipse.microprofile.openapi.models.OpenAPI openApi, T model)
     
    static <T> T
    getComponent(org.eclipse.microprofile.openapi.models.OpenAPI openApi, String ref)
    Gets the component type specified by the given `ref` from the OpenAPI model.
    static List<org.eclipse.microprofile.openapi.models.media.Schema>
    getParameterSchemas(org.eclipse.microprofile.openapi.models.parameters.Parameter parameter)
    Returns the list of Schemas defined for the given Parameter.
    static org.eclipse.microprofile.openapi.models.media.Schema
    getPropertySchema(org.eclipse.microprofile.openapi.models.media.Schema schema, String name)
    Gets the Schema associated with the named property of the given schema.
    static String
    Returns the name component of the ref.
    static boolean
    parameterHasSchema(org.eclipse.microprofile.openapi.models.parameters.Parameter parameter)
    Returns true only if the given Parameter has a schema defined for it.
    static org.eclipse.microprofile.openapi.models.Paths
    paths(org.eclipse.microprofile.openapi.models.OpenAPI openApi)
    Gets the Paths from the OAI model.
    static <V> void
    remove(List<V> list, V value)
     
    static <V> void
    remove(Map<String,V> map, String key)
     
    static <V> List<V>
    replace(List<V> modified, UnaryOperator<List<V>> factory)
     
    static <V> Map<String,V>
    replace(Map<String,V> modified, UnaryOperator<Map<String,V>> factory)
     
    static boolean
    requestBodyHasSchema(org.eclipse.microprofile.openapi.models.parameters.RequestBody requestBody)
    Returns true only if the given RequestBody has a schema defined for it.
    static org.eclipse.microprofile.openapi.models.responses.APIResponses
    responses(org.eclipse.microprofile.openapi.models.Operation operation)
    Gets the APIResponses child model from the given operation.
    static void
    setParameterSchema(org.eclipse.microprofile.openapi.models.parameters.Parameter parameter, org.eclipse.microprofile.openapi.models.media.Schema schema)
    Sets the given Schema on the given Parameter.
    static void
    setRequestBodySchema(org.eclipse.microprofile.openapi.models.parameters.RequestBody requestBody, org.eclipse.microprofile.openapi.models.media.Schema schema, String[] mediaTypes)
    Sets the given Schema on the given RequestBody.
    static <T> T
    supply(Supplier<T> source)
     
    static <V> List<V>
     
    static <V> Map<String,V>
     

    Methods inherited from class java.lang.Object

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

    • addTag

      public static void addTag(org.eclipse.microprofile.openapi.models.OpenAPI openApi, org.eclipse.microprofile.openapi.models.tags.Tag tag)
      Adds a Tag to the OpenAPI model. If a tag having the same name already exists in the model, the tags' attributes are merged, with the new tag's attributes overriding the value of any attributes specified on both.
      Parameters:
      openApi - the OpenAPI model
      tag - a new Tag to add
    • components

      public static org.eclipse.microprofile.openapi.models.Components components(org.eclipse.microprofile.openapi.models.OpenAPI openApi)
      Gets the Components from the OAI model. If it doesn't exist, creates it.
      Parameters:
      openApi - OpenAPI
      Returns:
      Components
    • dereference

      public static <T extends org.eclipse.microprofile.openapi.models.Reference<T>> T dereference(org.eclipse.microprofile.openapi.models.OpenAPI openApi, T model)
    • getComponent

      public static <T> T getComponent(org.eclipse.microprofile.openapi.models.OpenAPI openApi, String ref)
      Gets the component type specified by the given `ref` from the OpenAPI model.
      Type Parameters:
      T - the type of the component map's entry values
      Parameters:
      openApi - containing OpenAPI model
      ref - reference path to retrieve
      Returns:
      the component referenced by ref if present, otherwise null
    • paths

      public static org.eclipse.microprofile.openapi.models.Paths paths(org.eclipse.microprofile.openapi.models.OpenAPI openApi)
      Gets the Paths from the OAI model. If it doesn't exist, creates it.
      Parameters:
      openApi - OpenAPI
      Returns:
      Paths
    • responses

      public static org.eclipse.microprofile.openapi.models.responses.APIResponses responses(org.eclipse.microprofile.openapi.models.Operation operation)
      Gets the APIResponses child model from the given operation. If it's null then it will be created and returned.
      Parameters:
      operation - Operation
      Returns:
      APIResponses
    • getPropertySchema

      public static org.eclipse.microprofile.openapi.models.media.Schema getPropertySchema(org.eclipse.microprofile.openapi.models.media.Schema schema, String name)
      Gets the Schema associated with the named property of the given schema. When the property is not found or when no properties exist on the schema, returns null.
      Parameters:
      schema - the schema from which to retrieve the property
      name - name of the property
      Returns:
      schema for the named property if set, otherwise null
    • parameterHasSchema

      public static boolean parameterHasSchema(org.eclipse.microprofile.openapi.models.parameters.Parameter parameter)
      Returns true only if the given Parameter has a schema defined for it. A schema can be defined either via the parameter's "schema" property, or any "content.*.schema" property.
      Parameters:
      parameter - Parameter
      Returns:
      Whether the parameter has a schema
    • getParameterSchemas

      public static List<org.eclipse.microprofile.openapi.models.media.Schema> getParameterSchemas(org.eclipse.microprofile.openapi.models.parameters.Parameter parameter)
      Returns the list of Schemas defined for the given Parameter. A schema can be defined either via the parameter's "schema" property, or any "content.*.schema" property.
      Parameters:
      parameter - Parameter
      Returns:
      list of schemas, never null
    • setParameterSchema

      public static void setParameterSchema(org.eclipse.microprofile.openapi.models.parameters.Parameter parameter, org.eclipse.microprofile.openapi.models.media.Schema schema)
      Sets the given Schema on the given Parameter. This is tricky because the paramater may EITHER have a schema property or it may have a Content child which itself has zero or more MediaType children which will contain the Schema. The OpenAPI specification requires that a parameter have *either* a schema or a content, but not both.
      Parameters:
      parameter - Parameter
      schema - Schema
    • requestBodyHasSchema

      public static boolean requestBodyHasSchema(org.eclipse.microprofile.openapi.models.parameters.RequestBody requestBody)
      Returns true only if the given RequestBody has a schema defined for it. A schema would be found within the request body's Content/MediaType children.
      Parameters:
      requestBody - RequestBody
      Returns:
      Whether RequestBody has a schema
    • setRequestBodySchema

      public static void setRequestBodySchema(org.eclipse.microprofile.openapi.models.parameters.RequestBody requestBody, org.eclipse.microprofile.openapi.models.media.Schema schema, String[] mediaTypes)
      Sets the given Schema on the given RequestBody.
      Parameters:
      requestBody - RequestBody
      schema - Schema
      mediaTypes - String array
    • nameFromRef

      public static String nameFromRef(String ref)
      Returns the name component of the ref.
      Parameters:
      ref - String
      Returns:
      Name
    • unmodifiableMap

      public static <V> Map<String,V> unmodifiableMap(Map<String,V> map)
    • replace

      public static <V> Map<String,V> replace(Map<String,V> modified, UnaryOperator<Map<String,V>> factory)
    • add

      public static <V> Map<String,V> add(String key, V value, Map<String,V> map, Supplier<Map<String,V>> factory)
    • remove

      public static <V> void remove(Map<String,V> map, String key)
    • unmodifiableList

      public static <V> List<V> unmodifiableList(List<V> list)
    • replace

      public static <V> List<V> replace(List<V> modified, UnaryOperator<List<V>> factory)
    • add

      public static <V> List<V> add(V value, List<V> list)
    • add

      public static <V> List<V> add(V value, List<V> list, Supplier<List<V>> factory)
    • remove

      public static <V> void remove(List<V> list, V value)
    • supply

      public static <T> T supply(Supplier<T> source)