Class ModelUtil


  • public class ModelUtil
    extends Object
    Class with some convenience methods useful for working with the OAI data model.
    Author:
    [email protected]
    • Method Summary

      All Methods Static Methods Concrete Methods 
      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, 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> 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 nameFromRef​(String ref)
      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 <V> List<V> unmodifiableList​(List<V> list)  
      static <V> Map<String,​V> unmodifiableMap​(Map<String,​V> map)  
    • Method Detail

      • 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
      • 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)
      • remove

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

        public static <V> List<V> unmodifiableList​(List<V> list)
      • remove

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