Package io.smallrye.openapi.runtime.util
Class ModelUtil
java.lang.Object
io.smallrye.openapi.runtime.util.ModelUtil
Class with some convenience methods useful for working with the OAI data model.
- Author:
- eric.wittmann@gmail.com
-
Method Summary
Modifier and TypeMethodDescriptionstatic <V> List<V> static <V> List<V> static voidaddTag(org.eclipse.microprofile.openapi.models.OpenAPI openApi, org.eclipse.microprofile.openapi.models.tags.Tag tag) Adds aTagto theOpenAPImodel.static org.eclipse.microprofile.openapi.models.Componentscomponents(org.eclipse.microprofile.openapi.models.OpenAPI openApi) Gets theComponentsfrom the OAI model.static <T extends org.eclipse.microprofile.openapi.models.Reference<T>>
Tdereference(org.eclipse.microprofile.openapi.models.OpenAPI openApi, T model) static <T> TgetComponent(org.eclipse.microprofile.openapi.models.OpenAPI openApi, String ref) Gets the component type specified by the given `ref` from the OpenAPI model.getParameterMediaTypeSchemas(org.eclipse.microprofile.openapi.models.parameters.Parameter parameter) Returns the map ofSchemas defined for the givenParameterwith the schema's content type as the key (possibly null for the schema defined directly on the parameter.static List<org.eclipse.microprofile.openapi.models.media.Schema> getParameterSchemas(org.eclipse.microprofile.openapi.models.parameters.Parameter parameter) Returns the list ofSchemas defined for the givenParameter.static org.eclipse.microprofile.openapi.models.media.SchemagetPropertySchema(org.eclipse.microprofile.openapi.models.media.Schema schema, String name) Gets theSchemaassociated with the named property of the given schema.static StringnameFromRef(String ref) Returns the name component of the ref.static booleanparameterHasSchema(org.eclipse.microprofile.openapi.models.parameters.Parameter parameter) Returns true only if the givenParameterhas a schema defined for it.static org.eclipse.microprofile.openapi.models.Pathspaths(org.eclipse.microprofile.openapi.models.OpenAPI openApi) Gets thePathsfrom the OAI model.static <V> voidstatic <V> voidstatic <V> List<V> replace(List<V> modified, UnaryOperator<List<V>> factory) static booleanrequestBodyHasSchema(org.eclipse.microprofile.openapi.models.parameters.RequestBody requestBody) Returns true only if the givenRequestBodyhas a schema defined for it.static org.eclipse.microprofile.openapi.models.responses.APIResponsesresponses(org.eclipse.microprofile.openapi.models.Operation operation) Gets theAPIResponseschild model from the given operation.static voidsetParameterMediaTypeSchema(org.eclipse.microprofile.openapi.models.parameters.Parameter parameter, String contentType, org.eclipse.microprofile.openapi.models.media.Schema schema) Set a schema to the parameter for the given content type.static voidsetParameterSchema(org.eclipse.microprofile.openapi.models.parameters.Parameter parameter, org.eclipse.microprofile.openapi.models.media.Schema schema) Sets the givenSchemaon the givenParameter.static voidsetRequestBodySchema(org.eclipse.microprofile.openapi.models.parameters.RequestBody requestBody, org.eclipse.microprofile.openapi.models.media.Schema schema, String[] mediaTypes) Sets the givenSchemaon the givenRequestBody.static <T> Tstatic <V> List<V> unmodifiableList(List<V> list) unmodifiableMap(Map<String, V> map)
-
Method Details
-
addTag
public static void addTag(org.eclipse.microprofile.openapi.models.OpenAPI openApi, org.eclipse.microprofile.openapi.models.tags.Tag tag) Adds aTagto theOpenAPImodel. 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 modeltag- a newTagto add
-
components
public static org.eclipse.microprofile.openapi.models.Components components(org.eclipse.microprofile.openapi.models.OpenAPI openApi) Gets theComponentsfrom 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 modelref- 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 thePathsfrom 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 theAPIResponseschild 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 theSchemaassociated 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 propertyname- 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 givenParameterhas 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
-
getParameterMediaTypeSchemas
public static Map<String,org.eclipse.microprofile.openapi.models.media.Schema> getParameterMediaTypeSchemas(org.eclipse.microprofile.openapi.models.parameters.Parameter parameter) Returns the map ofSchemas defined for the givenParameterwith the schema's content type as the key (possibly null for the schema defined directly on the parameter. A schema can be defined either via the parameter's "schema" property, or any "content.*.schema" property.- Parameters:
parameter- Parameter- Returns:
- map of schemas by content type, never null
-
setParameterMediaTypeSchema
public static void setParameterMediaTypeSchema(org.eclipse.microprofile.openapi.models.parameters.Parameter parameter, String contentType, org.eclipse.microprofile.openapi.models.media.Schema schema) Set a schema to the parameter for the given content type. When the content type is null, the schema is set directly on the schema. Otherwise, the schema will be set in the parameter's content on a new or existingMediaTypeusing content type as its key.- Parameters:
parameter- The parametercontentType- The content type to which the schema applies (null allowed)schema- The schema
-
getParameterSchemas
public static List<org.eclipse.microprofile.openapi.models.media.Schema> getParameterSchemas(org.eclipse.microprofile.openapi.models.parameters.Parameter parameter) Returns the list ofSchemas defined for the givenParameter. 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 givenSchemaon the givenParameter. This is tricky because the paramater may EITHER have a schema property or it may have aContentchild which itself has zero or moreMediaTypechildren which will contain theSchema. The OpenAPI specification requires that a parameter have *either* a schema or a content, but not both.- Parameters:
parameter- Parameterschema- Schema
-
requestBodyHasSchema
public static boolean requestBodyHasSchema(org.eclipse.microprofile.openapi.models.parameters.RequestBody requestBody) Returns true only if the givenRequestBodyhas 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 givenSchemaon the givenRequestBody.- Parameters:
requestBody- RequestBodyschema- SchemamediaTypes- String array
-
nameFromRef
Returns the name component of the ref.- Parameters:
ref- String- Returns:
- Name
-
unmodifiableMap
-
replace
-
add
-
remove
-
unmodifiableList
-
replace
-
add
-
add
-
remove
-
supply
-