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, classTagsFields 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 StringgetClassDescription(io.micronaut.inject.visitor.VisitorContext context) Returns the description for the class.protected StringgetMethodDescription(io.micronaut.inject.visitor.VisitorContext context) Returns the description for the method.intgetOrder()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.HttpMethodhttpMethod(io.micronaut.inject.ast.MethodElement element) Returns the HttpMethod of the element.protected booleanignore(io.micronaut.inject.ast.ClassElement element, io.micronaut.inject.visitor.VisitorContext context) Returns true if the specified element should not be processed.protected booleanignore(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.voidstart(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.voidvisitClass(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
visitMethodMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.micronaut.core.util.Toggleable
isEnabledMethods inherited from interface io.micronaut.inject.visitor.TypeElementVisitor
finish, getClassType, getElementType, getSupportedAnnotationNames, getSupportedOptions, getVisitorKind, query, 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:AbstractOpenApiEndpointVisitorExecuted when a class is encountered that matches the generic class.- Specified by:
visitClassin interfaceio.micronaut.inject.visitor.TypeElementVisitor<Object,Object> - Overrides:
visitClassin 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:AbstractOpenApiEndpointVisitorReturns true if the specified element should not be processed.- Specified by:
ignorein 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:AbstractOpenApiEndpointVisitorReturns true if the specified element should not be processed.- Specified by:
ignorein 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:AbstractOpenApiEndpointVisitorReturns the HttpMethod of the element.- Specified by:
httpMethodin 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:AbstractOpenApiEndpointVisitorReturns the uri paths of the element.- Specified by:
uriMatchTemplatesin 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:AbstractOpenApiEndpointVisitorReturns the consumes media types.- Specified by:
consumesMediaTypesin 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:AbstractOpenApiEndpointVisitorReturns the produces media types.- Specified by:
producesMediaTypesin classAbstractOpenApiEndpointVisitor- Parameters:
element- The MethodElement.- Returns:
- The produces media types.
-
getClassDescription
Description copied from class:AbstractOpenApiEndpointVisitorReturns the description for the class.- Specified by:
getClassDescriptionin classAbstractOpenApiEndpointVisitor- Parameters:
context- the visitor context- Returns:
- The description for the class.
-
getMethodDescription
Description copied from class:AbstractOpenApiEndpointVisitorReturns the description for the method.- Specified by:
getMethodDescriptionin 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:AbstractOpenApiEndpointVisitorReturns the class tags.- Specified by:
getUserDefinedClassTagsin 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:AbstractOpenApiEndpointVisitorReturns the servers at method level.- Specified by:
methodServersin 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:AbstractOpenApiEndpointVisitorReturns the extensions at method level.- Specified by:
operationExtensionsin 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:AbstractOpenApiEndpointVisitorReturns the security requirements at method level.- Specified by:
methodSecurityRequirementsin classAbstractOpenApiEndpointVisitor- Parameters:
element- The MethodElement.context- The context.- Returns:
- The security requirements.
-
getOrder
public int getOrder()- Specified by:
getOrderin interfaceio.micronaut.core.order.Ordered
-