public class OpenApiApplicationVisitor
extends java.lang.Object
implements io.micronaut.inject.visitor.TypeElementVisitor<io.swagger.v3.oas.annotations.OpenAPIDefinition,java.lang.Object>
Constructor and Description |
---|
OpenApiApplicationVisitor() |
Modifier and Type | Method and Description |
---|---|
protected io.swagger.v3.oas.models.media.Schema |
bindArraySchemaAnnotationValue(io.micronaut.inject.visitor.VisitorContext context,
io.micronaut.inject.ast.Element element,
io.swagger.v3.oas.models.media.Schema schemaToBind,
io.micronaut.core.annotation.AnnotationValue<io.swagger.v3.oas.annotations.media.ArraySchema> schemaAnn,
io.micronaut.inject.ast.ClassElement jsonViewClass)
Binds the array schema for the given element.
|
protected io.swagger.v3.oas.models.media.Schema |
bindSchemaAnnotationValue(io.micronaut.inject.visitor.VisitorContext context,
io.micronaut.inject.ast.Element element,
io.swagger.v3.oas.models.media.Schema schemaToBind,
io.micronaut.core.annotation.AnnotationValue<io.swagger.v3.oas.annotations.media.Schema> schemaAnn,
io.micronaut.inject.ast.ClassElement jsonViewClass)
Binds the schema for the given element.
|
protected io.swagger.v3.oas.models.media.Schema |
bindSchemaForElement(io.micronaut.inject.visitor.VisitorContext context,
io.micronaut.inject.ast.TypedElement element,
io.micronaut.inject.ast.ClassElement elementType,
io.swagger.v3.oas.models.media.Schema schemaToBind,
io.micronaut.inject.ast.ClassElement jsonViewClass)
Binds the schema for the given element.
|
static java.lang.String |
expandProperties(java.lang.String s,
java.util.List<Pair<java.lang.String,java.lang.String>> properties,
io.micronaut.inject.visitor.VisitorContext context) |
void |
finish(io.micronaut.inject.visitor.VisitorContext context) |
int |
getOrder() |
java.util.Set<java.lang.String> |
getSupportedOptions() |
protected boolean |
isElementNotNullable(io.micronaut.inject.ast.Element element,
io.micronaut.inject.ast.Element classElement) |
protected void |
processJavaxValidationAnnotations(io.micronaut.inject.ast.Element element,
io.micronaut.inject.ast.ClassElement elementType,
io.swagger.v3.oas.models.media.Schema schemaToBind) |
protected <T,A extends java.lang.annotation.Annotation> |
processOpenApiAnnotation(io.micronaut.inject.ast.Element element,
io.micronaut.inject.visitor.VisitorContext context,
java.lang.Class<A> annotationType,
java.lang.Class<T> modelType,
java.util.List<T> tagList)
Converts annotation to model.
|
protected void |
processSchemaProperty(io.micronaut.inject.visitor.VisitorContext context,
io.micronaut.inject.ast.TypedElement element,
io.micronaut.inject.ast.ClassElement elementType,
io.micronaut.inject.ast.Element classElement,
io.swagger.v3.oas.models.media.Schema parentSchema,
io.swagger.v3.oas.models.media.Schema propertySchema)
Processes a schema property.
|
protected void |
processSecuritySchemes(io.micronaut.inject.ast.ClassElement element,
io.micronaut.inject.visitor.VisitorContext context)
Processes
SecurityScheme
annotations. |
protected io.swagger.v3.oas.models.media.Schema |
readSchema(io.micronaut.core.annotation.AnnotationValue<io.swagger.v3.oas.annotations.media.Schema> schemaValue,
io.swagger.v3.oas.models.OpenAPI openAPI,
io.micronaut.inject.visitor.VisitorContext context,
io.micronaut.inject.ast.Element type,
java.util.Map<java.lang.String,io.micronaut.inject.ast.ClassElement> typeArgs,
java.util.List<io.micronaut.http.MediaType> mediaTypes,
io.micronaut.inject.ast.ClassElement jsonViewClass)
Reads schema.
|
static java.lang.String |
replacePlaceholders(java.lang.String value,
io.micronaut.inject.visitor.VisitorContext context) |
static com.fasterxml.jackson.databind.JsonNode |
resolvePlaceholders(com.fasterxml.jackson.databind.node.ArrayNode anode,
java.util.function.UnaryOperator<java.lang.String> propertyExpander) |
static com.fasterxml.jackson.databind.JsonNode |
resolvePlaceholders(com.fasterxml.jackson.databind.JsonNode node,
java.util.function.UnaryOperator<java.lang.String> propertyExpander) |
static com.fasterxml.jackson.databind.JsonNode |
resolvePlaceholders(com.fasterxml.jackson.databind.node.ObjectNode onode,
java.util.function.UnaryOperator<java.lang.String> propertyExpander) |
protected io.swagger.v3.oas.models.media.Schema |
resolveSchema(io.micronaut.inject.ast.Element definingElement,
io.micronaut.inject.ast.ClassElement type,
io.micronaut.inject.visitor.VisitorContext context,
java.util.List<io.micronaut.http.MediaType> mediaTypes,
io.micronaut.inject.ast.ClassElement jsonViewClass)
Resolves the schema for the given type element.
|
protected io.swagger.v3.oas.models.media.Schema |
resolveSchema(io.swagger.v3.oas.models.OpenAPI openAPI,
io.micronaut.inject.ast.Element definingElement,
io.micronaut.inject.ast.ClassElement type,
io.micronaut.inject.visitor.VisitorContext context,
java.util.List<io.micronaut.http.MediaType> mediaTypes,
io.micronaut.inject.ast.ClassElement jsonViewClass,
JavadocDescription fieldJavadoc,
JavadocDescription classJavadoc)
Resolves the schema for the given type element.
|
protected java.util.Map<java.lang.CharSequence,java.lang.Object> |
toValueMap(java.util.Map<java.lang.CharSequence,java.lang.Object> values,
io.micronaut.inject.visitor.VisitorContext context,
io.micronaut.inject.ast.ClassElement jsonViewClass)
Convert the values to a map.
|
void |
visitClass(io.micronaut.inject.ast.ClassElement element,
io.micronaut.inject.visitor.VisitorContext context) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
public java.util.Set<java.lang.String> getSupportedOptions()
getSupportedOptions
in interface io.micronaut.inject.visitor.TypeElementVisitor<io.swagger.v3.oas.annotations.OpenAPIDefinition,java.lang.Object>
public void visitClass(io.micronaut.inject.ast.ClassElement element, io.micronaut.inject.visitor.VisitorContext context)
visitClass
in interface io.micronaut.inject.visitor.TypeElementVisitor<io.swagger.v3.oas.annotations.OpenAPIDefinition,java.lang.Object>
public static com.fasterxml.jackson.databind.JsonNode resolvePlaceholders(com.fasterxml.jackson.databind.node.ArrayNode anode, java.util.function.UnaryOperator<java.lang.String> propertyExpander)
public static com.fasterxml.jackson.databind.JsonNode resolvePlaceholders(com.fasterxml.jackson.databind.node.ObjectNode onode, java.util.function.UnaryOperator<java.lang.String> propertyExpander)
public static com.fasterxml.jackson.databind.JsonNode resolvePlaceholders(com.fasterxml.jackson.databind.JsonNode node, java.util.function.UnaryOperator<java.lang.String> propertyExpander)
public static java.lang.String expandProperties(java.lang.String s, java.util.List<Pair<java.lang.String,java.lang.String>> properties, io.micronaut.inject.visitor.VisitorContext context)
public static java.lang.String replacePlaceholders(java.lang.String value, io.micronaut.inject.visitor.VisitorContext context)
public void finish(io.micronaut.inject.visitor.VisitorContext context)
finish
in interface io.micronaut.inject.visitor.TypeElementVisitor<io.swagger.v3.oas.annotations.OpenAPIDefinition,java.lang.Object>
public int getOrder()
getOrder
in interface io.micronaut.core.order.Ordered
protected java.util.Map<java.lang.CharSequence,java.lang.Object> toValueMap(java.util.Map<java.lang.CharSequence,java.lang.Object> values, io.micronaut.inject.visitor.VisitorContext context, @Nullable io.micronaut.inject.ast.ClassElement jsonViewClass)
values
- The valuescontext
- The visitor contextjsonViewClass
- Class from JsonView annotation@Nullable protected io.swagger.v3.oas.models.media.Schema resolveSchema(@Nullable io.micronaut.inject.ast.Element definingElement, io.micronaut.inject.ast.ClassElement type, io.micronaut.inject.visitor.VisitorContext context, java.util.List<io.micronaut.http.MediaType> mediaTypes, @Nullable io.micronaut.inject.ast.ClassElement jsonViewClass)
definingElement
- The defining elementtype
- The type elementcontext
- The contextmediaTypes
- An optional media typejsonViewClass
- Class from JsonView annotation@Nullable protected io.swagger.v3.oas.models.media.Schema resolveSchema(io.swagger.v3.oas.models.OpenAPI openAPI, @Nullable io.micronaut.inject.ast.Element definingElement, io.micronaut.inject.ast.ClassElement type, io.micronaut.inject.visitor.VisitorContext context, java.util.List<io.micronaut.http.MediaType> mediaTypes, @Nullable io.micronaut.inject.ast.ClassElement jsonViewClass, JavadocDescription fieldJavadoc, JavadocDescription classJavadoc)
openAPI
- The OpenAPI objectdefiningElement
- The defining elementtype
- The type elementcontext
- The contextmediaTypes
- An optional media typefieldJavadoc
- Field-level java docclassJavadoc
- Class-level java docjsonViewClass
- Class from JsonView annotationprotected void processSchemaProperty(io.micronaut.inject.visitor.VisitorContext context, io.micronaut.inject.ast.TypedElement element, io.micronaut.inject.ast.ClassElement elementType, @Nullable io.micronaut.inject.ast.Element classElement, io.swagger.v3.oas.models.media.Schema parentSchema, io.swagger.v3.oas.models.media.Schema propertySchema)
context
- The visitor contextelement
- The elementelementType
- The element typeclassElement
- The class elementparentSchema
- The parent schemapropertySchema
- The property schemaprotected boolean isElementNotNullable(io.micronaut.inject.ast.Element element, @Nullable io.micronaut.inject.ast.Element classElement)
protected io.swagger.v3.oas.models.media.Schema bindSchemaForElement(io.micronaut.inject.visitor.VisitorContext context, io.micronaut.inject.ast.TypedElement element, io.micronaut.inject.ast.ClassElement elementType, io.swagger.v3.oas.models.media.Schema schemaToBind, @Nullable io.micronaut.inject.ast.ClassElement jsonViewClass)
context
- The contextelement
- The elementelementType
- The element typeschemaToBind
- The schema to bindjsonViewClass
- Class from JsonView annotationprotected void processJavaxValidationAnnotations(io.micronaut.inject.ast.Element element, io.micronaut.inject.ast.ClassElement elementType, io.swagger.v3.oas.models.media.Schema schemaToBind)
protected io.swagger.v3.oas.models.media.Schema bindSchemaAnnotationValue(io.micronaut.inject.visitor.VisitorContext context, io.micronaut.inject.ast.Element element, io.swagger.v3.oas.models.media.Schema schemaToBind, io.micronaut.core.annotation.AnnotationValue<io.swagger.v3.oas.annotations.media.Schema> schemaAnn, @Nullable io.micronaut.inject.ast.ClassElement jsonViewClass)
context
- The contextelement
- The elementschemaToBind
- The schema to bindschemaAnn
- The schema annotationjsonViewClass
- Class from JsonView annotationprotected io.swagger.v3.oas.models.media.Schema bindArraySchemaAnnotationValue(io.micronaut.inject.visitor.VisitorContext context, io.micronaut.inject.ast.Element element, io.swagger.v3.oas.models.media.Schema schemaToBind, io.micronaut.core.annotation.AnnotationValue<io.swagger.v3.oas.annotations.media.ArraySchema> schemaAnn, @Nullable io.micronaut.inject.ast.ClassElement jsonViewClass)
context
- The contextelement
- The elementschemaToBind
- The schema to bindschemaAnn
- The schema annotationjsonViewClass
- Class from JsonView annotationprotected io.swagger.v3.oas.models.media.Schema readSchema(io.micronaut.core.annotation.AnnotationValue<io.swagger.v3.oas.annotations.media.Schema> schemaValue, io.swagger.v3.oas.models.OpenAPI openAPI, io.micronaut.inject.visitor.VisitorContext context, @Nullable io.micronaut.inject.ast.Element type, java.util.Map<java.lang.String,io.micronaut.inject.ast.ClassElement> typeArgs, java.util.List<io.micronaut.http.MediaType> mediaTypes, @Nullable io.micronaut.inject.ast.ClassElement jsonViewClass) throws com.fasterxml.jackson.core.JsonProcessingException
schemaValue
- annotation valueopenAPI
- The OpenApicontext
- The VisitorContexttype
- type elementtypeArgs
- type argumentsmediaTypes
- The media types of schemajsonViewClass
- Class from JsonView annotationcom.fasterxml.jackson.core.JsonProcessingException
- when Json parsing failsprotected void processSecuritySchemes(io.micronaut.inject.ast.ClassElement element, io.micronaut.inject.visitor.VisitorContext context)
SecurityScheme
annotations.element
- The elementcontext
- The visitor contextprotected <T,A extends java.lang.annotation.Annotation> java.util.List<T> processOpenApiAnnotation(io.micronaut.inject.ast.Element element, io.micronaut.inject.visitor.VisitorContext context, java.lang.Class<A> annotationType, java.lang.Class<T> modelType, java.util.List<T> tagList)
T
- The model type.A
- The annotation type.element
- The element to process.context
- The context.annotationType
- The annotation type.modelType
- The model type.tagList
- The initial list of models.