Package io.micronaut.openapi.visitor
Class OpenApiEndpointVisitor
java.lang.Object
io.micronaut.openapi.visitor.AbstractOpenApiEndpointVisitor
io.micronaut.openapi.visitor.OpenApiEndpointVisitor
- All Implemented Interfaces:
io.micronaut.core.order.Ordered
,io.micronaut.core.util.Toggleable
,io.micronaut.inject.visitor.TypeElementVisitor<Object,
Object>
@SupportedOptions("micronaut.openapi.enabled")
public class OpenApiEndpointVisitor
extends AbstractOpenApiEndpointVisitor
implements io.micronaut.inject.visitor.TypeElementVisitor<Object,Object>
A
TypeElementVisitor
the builds the Swagger model from Micronaut
controllers at compile time.- Since:
- 1.4
- Author:
- croudet
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.micronaut.inject.visitor.TypeElementVisitor
io.micronaut.inject.visitor.TypeElementVisitor.VisitorKind
-
Field Summary
Fields inherited from class io.micronaut.openapi.visitor.AbstractOpenApiEndpointVisitor
classExternalDocs, classTags
Fields inherited from interface io.micronaut.core.order.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
-
Constructor Summary
ConstructorsConstructorDescriptionOpenApiEndpointVisitor
(boolean enabled) OpenApiEndpointVisitor
(boolean enabled, String description, List<io.micronaut.core.annotation.AnnotationValue<io.swagger.v3.oas.annotations.extensions.Extension>> additionalExtensions, List<io.micronaut.core.annotation.AnnotationValue<io.swagger.v3.oas.annotations.tags.Tag>> additionalTags, List<io.micronaut.core.annotation.AnnotationValue<io.swagger.v3.oas.annotations.security.SecurityRequirement>> additionalSecurityRequirements) -
Method Summary
Modifier and TypeMethodDescriptionprotected List<io.micronaut.http.MediaType>
consumesMediaTypes
(io.micronaut.inject.ast.MethodElement element) Returns the consumes media types.protected String
getClassDescription
(io.micronaut.inject.visitor.VisitorContext context) Returns the description for the class.protected String
getMethodDescription
(io.micronaut.inject.visitor.VisitorContext context) Returns the description for the method.int
getOrder()
protected List<io.swagger.v3.oas.models.tags.Tag>
getUserDefinedClassTags
(io.micronaut.inject.ast.ClassElement element, io.micronaut.inject.visitor.VisitorContext context) Returns the class tags.protected io.micronaut.http.HttpMethod
httpMethod
(io.micronaut.inject.ast.MethodElement element) Returns the HttpMethod of the element.protected boolean
ignore
(io.micronaut.inject.ast.ClassElement element, io.micronaut.inject.visitor.VisitorContext context) Returns true if the specified element should not be processed.protected boolean
ignore
(io.micronaut.inject.ast.MethodElement element, io.micronaut.inject.visitor.VisitorContext context) Returns true if the specified element should not be processed.protected List<io.swagger.v3.oas.models.security.SecurityRequirement>
methodSecurityRequirements
(io.micronaut.inject.ast.MethodElement element, io.micronaut.inject.visitor.VisitorContext context) Returns the security requirements at method level.protected List<io.swagger.v3.oas.models.servers.Server>
methodServers
(io.micronaut.inject.ast.MethodElement element, io.micronaut.inject.visitor.VisitorContext context) Returns the servers at method level.operationExtensions
(io.micronaut.inject.ast.MethodElement element, io.micronaut.inject.visitor.VisitorContext context) Returns the extensions at method level.protected List<io.micronaut.http.MediaType>
producesMediaTypes
(io.micronaut.inject.ast.MethodElement element) Returns the produces media types.void
start
(io.micronaut.inject.visitor.VisitorContext context) protected List<io.micronaut.http.uri.UriMatchTemplate>
uriMatchTemplates
(io.micronaut.inject.ast.MethodElement element, io.micronaut.inject.visitor.VisitorContext context) Returns the uri paths of the element.void
visitClass
(io.micronaut.inject.ast.ClassElement element, io.micronaut.inject.visitor.VisitorContext context) Executed when a class is encountered that matches the generic class.Methods inherited from class io.micronaut.openapi.visitor.AbstractOpenApiEndpointVisitor
visitMethod
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.micronaut.core.util.Toggleable
isEnabled
Methods inherited from interface io.micronaut.inject.visitor.TypeElementVisitor
finish, getClassType, getElementType, getSupportedAnnotationNames, getSupportedOptions, getVisitorKind, visitConstructor, visitEnumConstant, visitField, visitMethod
-
Constructor Details
-
OpenApiEndpointVisitor
public OpenApiEndpointVisitor() -
OpenApiEndpointVisitor
public OpenApiEndpointVisitor(boolean enabled) -
OpenApiEndpointVisitor
public OpenApiEndpointVisitor(boolean enabled, String description, List<io.micronaut.core.annotation.AnnotationValue<io.swagger.v3.oas.annotations.extensions.Extension>> additionalExtensions, List<io.micronaut.core.annotation.AnnotationValue<io.swagger.v3.oas.annotations.tags.Tag>> additionalTags, List<io.micronaut.core.annotation.AnnotationValue<io.swagger.v3.oas.annotations.security.SecurityRequirement>> additionalSecurityRequirements)
-
-
Method Details
-
start
public void start(io.micronaut.inject.visitor.VisitorContext context) -
visitClass
public void visitClass(io.micronaut.inject.ast.ClassElement element, io.micronaut.inject.visitor.VisitorContext context) Description copied from class:AbstractOpenApiEndpointVisitor
Executed when a class is encountered that matches the generic class.- Specified by:
visitClass
in interfaceio.micronaut.inject.visitor.TypeElementVisitor<Object,
Object> - Overrides:
visitClass
in classAbstractOpenApiEndpointVisitor
- Parameters:
element
- The elementcontext
- The visitor context
-
ignore
protected boolean ignore(io.micronaut.inject.ast.ClassElement element, io.micronaut.inject.visitor.VisitorContext context) Description copied from class:AbstractOpenApiEndpointVisitor
Returns true if the specified element should not be processed.- Specified by:
ignore
in classAbstractOpenApiEndpointVisitor
- Parameters:
element
- The ClassElement.context
- The context.- Returns:
- true if the specified element should not be processed.
-
ignore
protected boolean ignore(io.micronaut.inject.ast.MethodElement element, io.micronaut.inject.visitor.VisitorContext context) Description copied from class:AbstractOpenApiEndpointVisitor
Returns true if the specified element should not be processed.- Specified by:
ignore
in classAbstractOpenApiEndpointVisitor
- Parameters:
element
- The ClassElement.context
- The context.- Returns:
- true if the specified element should not be processed.
-
httpMethod
protected io.micronaut.http.HttpMethod httpMethod(io.micronaut.inject.ast.MethodElement element) Description copied from class:AbstractOpenApiEndpointVisitor
Returns the HttpMethod of the element.- Specified by:
httpMethod
in classAbstractOpenApiEndpointVisitor
- Parameters:
element
- The MethodElement.- Returns:
- The HttpMethod of the element.
-
uriMatchTemplates
protected List<io.micronaut.http.uri.UriMatchTemplate> uriMatchTemplates(io.micronaut.inject.ast.MethodElement element, io.micronaut.inject.visitor.VisitorContext context) Description copied from class:AbstractOpenApiEndpointVisitor
Returns the uri paths of the element.- Specified by:
uriMatchTemplates
in classAbstractOpenApiEndpointVisitor
- Parameters:
element
- The MethodElement.context
- The context- Returns:
- The uri paths of the element.
-
consumesMediaTypes
protected List<io.micronaut.http.MediaType> consumesMediaTypes(io.micronaut.inject.ast.MethodElement element) Description copied from class:AbstractOpenApiEndpointVisitor
Returns the consumes media types.- Specified by:
consumesMediaTypes
in classAbstractOpenApiEndpointVisitor
- Parameters:
element
- The MethodElement.- Returns:
- The consumes media types.
-
producesMediaTypes
protected List<io.micronaut.http.MediaType> producesMediaTypes(io.micronaut.inject.ast.MethodElement element) Description copied from class:AbstractOpenApiEndpointVisitor
Returns the produces media types.- Specified by:
producesMediaTypes
in classAbstractOpenApiEndpointVisitor
- Parameters:
element
- The MethodElement.- Returns:
- The produces media types.
-
getClassDescription
Description copied from class:AbstractOpenApiEndpointVisitor
Returns the description for the class.- Specified by:
getClassDescription
in classAbstractOpenApiEndpointVisitor
- Parameters:
context
- the visitor context- Returns:
- The description for the class.
-
getMethodDescription
Description copied from class:AbstractOpenApiEndpointVisitor
Returns the description for the method.- Specified by:
getMethodDescription
in classAbstractOpenApiEndpointVisitor
- Parameters:
context
- the visitor context- Returns:
- The description for the method.
-
getUserDefinedClassTags
protected List<io.swagger.v3.oas.models.tags.Tag> getUserDefinedClassTags(io.micronaut.inject.ast.ClassElement element, io.micronaut.inject.visitor.VisitorContext context) Description copied from class:AbstractOpenApiEndpointVisitor
Returns the class tags.- Specified by:
getUserDefinedClassTags
in classAbstractOpenApiEndpointVisitor
- Parameters:
element
- The ClassElement.context
- The context.- Returns:
- The class tags.
-
methodServers
protected List<io.swagger.v3.oas.models.servers.Server> methodServers(io.micronaut.inject.ast.MethodElement element, io.micronaut.inject.visitor.VisitorContext context) Description copied from class:AbstractOpenApiEndpointVisitor
Returns the servers at method level.- Specified by:
methodServers
in classAbstractOpenApiEndpointVisitor
- Parameters:
element
- The MethodElement.context
- The context.- Returns:
- The servers.
-
operationExtensions
protected Map<String,Object> operationExtensions(io.micronaut.inject.ast.MethodElement element, io.micronaut.inject.visitor.VisitorContext context) Description copied from class:AbstractOpenApiEndpointVisitor
Returns the extensions at method level.- Specified by:
operationExtensions
in classAbstractOpenApiEndpointVisitor
- Parameters:
element
- The MethodElement.context
- The context.- Returns:
- The extensions.
-
methodSecurityRequirements
protected List<io.swagger.v3.oas.models.security.SecurityRequirement> methodSecurityRequirements(io.micronaut.inject.ast.MethodElement element, io.micronaut.inject.visitor.VisitorContext context) Description copied from class:AbstractOpenApiEndpointVisitor
Returns the security requirements at method level.- Specified by:
methodSecurityRequirements
in classAbstractOpenApiEndpointVisitor
- Parameters:
element
- The MethodElement.context
- The context.- Returns:
- The security requirements.
-
getOrder
public int getOrder()- Specified by:
getOrder
in interfaceio.micronaut.core.order.Ordered
-