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, 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 Stringdescription(io.micronaut.inject.ast.MethodElement element) Returns the description for the element.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.protected <T,A extends Annotation>
List<T>processOpenApiAnnotation(io.micronaut.inject.ast.Element element, io.micronaut.inject.visitor.VisitorContext context, Class<A> annotationType, Class<T> modelType, List<T> tagList) Converts annotation to model.protected voidprocessSecuritySchemes(io.micronaut.inject.ast.ClassElement element, io.micronaut.inject.visitor.VisitorContext context) ProcessesSecuritySchemeannotations.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, visitConstructor, visitEnumConstant, visitField, visitMethod
-
Constructor Details
-
OpenApiEndpointVisitor
public OpenApiEndpointVisitor() -
OpenApiEndpointVisitor
public OpenApiEndpointVisitor(boolean enabled) -
OpenApiEndpointVisitor
-
-
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.
-
description
Description copied from class:AbstractOpenApiEndpointVisitorReturns the description for the element.- Specified by:
descriptionin classAbstractOpenApiEndpointVisitor- Parameters:
element- The MethodElement.- Returns:
- The description for the element.
-
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.
-
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
-
processSecuritySchemes
protected void processSecuritySchemes(io.micronaut.inject.ast.ClassElement element, io.micronaut.inject.visitor.VisitorContext context) ProcessesSecuritySchemeannotations.- Parameters:
element- The elementcontext- The visitor context
-
processOpenApiAnnotation
protected <T,A extends Annotation> List<T> processOpenApiAnnotation(io.micronaut.inject.ast.Element element, io.micronaut.inject.visitor.VisitorContext context, Class<A> annotationType, Class<T> modelType, List<T> tagList) Converts annotation to model.- Type Parameters:
T- The model type.A- The annotation type.- Parameters:
element- The element to process.context- The context.annotationType- The annotation type.modelType- The model type.tagList- The initial list of models.- Returns:
- A list of model objects.
-