Package io.micronaut.web.router
Class DefaultUrlRouteInfo<T,R>
java.lang.Object
io.micronaut.web.router.DefaultRouteInfo<R>
io.micronaut.web.router.DefaultRequestMatcher<T,R>
io.micronaut.web.router.DefaultUrlRouteInfo<T,R>
- Type Parameters:
T
- The targetR
- The result
- All Implemented Interfaces:
AnnotationMetadataProvider
,AnnotationSource
,UriMatcher
,MethodBasedRouteInfo<T,
,R> RequestMatcher
,RouteInfo<R>
,UriRouteInfo<T,
,R> Comparable<UriRouteInfo<T,
R>>
@Internal
public final class DefaultUrlRouteInfo<T,R>
extends DefaultRequestMatcher<T,R>
implements UriRouteInfo<T,R>
The default
UriRouteInfo
implementation.- Since:
- 4.0.0
- Author:
- Denis Stepanov
-
Field Summary
Fields inherited from class io.micronaut.web.router.DefaultRouteInfo
annotationMetadata, consumesMediaTypes, consumesMediaTypesContainsAll, declaringType, definedStatus, isWebSocketRoute, producesMediaTypes, producesMediaTypesContainsAll, returnType
Fields inherited from interface io.micronaut.core.annotation.AnnotationSource
EMPTY
Fields inherited from interface io.micronaut.web.router.RouteInfo
DEFAULT_PRODUCES
-
Constructor Summary
ConstructorDescriptionDefaultUrlRouteInfo
(HttpMethod httpMethod, UriMatchTemplate uriMatchTemplate, Charset defaultCharset, MethodExecutionHandle<T, R> targetMethod, @Nullable String bodyArgumentName, @Nullable Argument<?> bodyArgument, List<MediaType> consumesMediaTypes, List<MediaType> producesMediaTypes, List<Predicate<HttpRequest<?>>> predicates, Integer port, ConversionService conversionService, ExecutorSelector executorSelector, MessageBodyHandlerRegistry messageBodyHandlerRegistry) -
Method Summary
Modifier and TypeMethodDescriptionint
String[]
getExecutor
(ThreadSelection threadSelection) LikeRouteInfo.getRequestBodyType()
, but excludes body arguments that may match only a part of the body (i.e.final MessageBodyReader<?>
getPort()
boolean
isVoid()
Match this route within the given URI and produce aRouteMatch
if a match is found.boolean
resolveArgumentBinders
(RequestBinderRegistry requestBinderRegistry) toString()
Match this route within the given URI and produce aRouteMatch
if a match is found.Methods inherited from class io.micronaut.web.router.DefaultRequestMatcher
matching
Methods inherited from class io.micronaut.web.router.DefaultRouteInfo
doesConsume, doesProduce, doesProduce, explicitlyConsumes, explicitlyProduces, findStatus, getAnnotationMetadata, getConsumes, getDeclaringType, getMessageBodyWriter, getProduces, getResponseBodyType, getReturnType, isAsync, isAsyncOrReactive, isCompletable, isErrorRoute, isPermitsRequestBody, isReactive, isSingleResult, isSpecifiedSingle, isSuspended, isWebSocketRoute
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface io.micronaut.core.annotation.AnnotationMetadataProvider
findAnnotation, findAnnotation, findDeclaredAnnotation, findDeclaredAnnotation, getAnnotationMetadata, getTargetAnnotationMetadata, isAnnotationPresent, isDeclaredAnnotationPresent, synthesize, synthesizeAll, synthesizeAnnotationsByType, synthesizeDeclared, synthesizeDeclared, synthesizeDeclaredAnnotationsByType
Methods inherited from interface io.micronaut.core.annotation.AnnotationSource
getAnnotation, getAnnotation, getDeclaredAnnotation, getDeclaredAnnotation, isAnnotationPresent, isDeclaredAnnotationPresent, synthesize, synthesizeDeclared
Methods inherited from interface io.micronaut.web.router.MethodBasedRouteInfo
getArgumentNames, getTargetMethod, resolveArgumentBinders
Methods inherited from interface io.micronaut.web.router.RequestMatcher
matching
Methods inherited from interface io.micronaut.web.router.RouteInfo
doesConsume, doesProduce, doesProduce, explicitlyConsumes, explicitlyProduces, findStatus, getBodyArgument, getBodyType, getConsumes, getDeclaringType, getFullRequestBodyType, getMessageBodyReader, getMessageBodyWriter, getProduces, getRequestBodyType, getResponseBodyType, getReturnType, isAsync, isAsyncOrReactive, isCompletable, isErrorRoute, isPermitsRequestBody, isReactive, isResponseBodyJsonFormattable, isSingleResult, isSpecifiedSingle, isSuspended, isVoid, isWebSocketRoute, needsRequestBody
Methods inherited from interface io.micronaut.web.router.UriRouteInfo
getHttpMethodName, match, tryMatch
-
Constructor Details
-
DefaultUrlRouteInfo
public DefaultUrlRouteInfo(HttpMethod httpMethod, UriMatchTemplate uriMatchTemplate, Charset defaultCharset, MethodExecutionHandle<T, R> targetMethod, @Nullable @Nullable String bodyArgumentName, @Nullable @Nullable Argument<?> bodyArgument, List<MediaType> consumesMediaTypes, List<MediaType> producesMediaTypes, List<Predicate<HttpRequest<?>>> predicates, Integer port, ConversionService conversionService, ExecutorSelector executorSelector, MessageBodyHandlerRegistry messageBodyHandlerRegistry)
-
-
Method Details
-
getHttpMethod
- Specified by:
getHttpMethod
in interfaceUriRouteInfo<T,
R> - Returns:
- The HTTP method for this route
-
getUriMatchTemplate
- Specified by:
getUriMatchTemplate
in interfaceUriRouteInfo<T,
R> - Returns:
- The
UriMatchTemplate
used to match URIs
-
match
Description copied from interface:UriRouteInfo
Match this route within the given URI and produce aRouteMatch
if a match is found.- Specified by:
match
in interfaceUriMatcher
- Specified by:
match
in interfaceUriRouteInfo<T,
R> - Parameters:
uri
- The URI- Returns:
- An
Optional
ofRouteMatch
-
tryMatch
Description copied from interface:UriRouteInfo
Match this route within the given URI and produce aRouteMatch
if a match is found.- Specified by:
tryMatch
in interfaceUriRouteInfo<T,
R> - Parameters:
uri
- The URI- Returns:
- A null or a
RouteMatch
-
getPort
- Specified by:
getPort
in interfaceUriRouteInfo<T,
R> - Returns:
- The port the route listens to, or null if the default port
-
compareTo
- Specified by:
compareTo
in interfaceComparable<T>
-
toString
-
getExecutor
- Specified by:
getExecutor
in interfaceRouteInfo<T>
- Overrides:
getExecutor
in classDefaultRouteInfo<R>
- Parameters:
threadSelection
- The thread selection- Returns:
- The route executor
-
getMessageBodyReader
- Specified by:
getMessageBodyReader
in interfaceRouteInfo<T>
- Returns:
- The message body reader. if any.
-
resolveArgumentBinders
public RequestArgumentBinder<Object>[] resolveArgumentBinders(RequestBinderRegistry requestBinderRegistry) - Specified by:
resolveArgumentBinders
in interfaceMethodBasedRouteInfo<T,
R>
-
isVoid
public boolean isVoid()- Specified by:
isVoid
in interfaceRouteInfo<T>
- Overrides:
isVoid
in classDefaultRouteInfo<R>
- Returns:
- Does the route return void
-
getTargetMethod
- Specified by:
getTargetMethod
in interfaceMethodBasedRouteInfo<T,
R> - Returns:
- The
MethodExecutionHandle
-
getRequestBodyType
- Specified by:
getRequestBodyType
in interfaceRouteInfo<T>
- Overrides:
getRequestBodyType
in classDefaultRouteInfo<R>
- Returns:
- The argument that represents the body of the request
-
getFullRequestBodyType
Description copied from interface:RouteInfo
LikeRouteInfo.getRequestBodyType()
, but excludes body arguments that may match only a part of the body (i.e. that have no@Body
annotation, or where the@Body
has a value set).- Specified by:
getFullRequestBodyType
in interfaceRouteInfo<T>
- Returns:
- The argument that represents the body
-
getArgumentNames
- Specified by:
getArgumentNames
in interfaceMethodBasedRouteInfo<T,
R>
-
needsRequestBody
public boolean needsRequestBody()- Specified by:
needsRequestBody
in interfaceRouteInfo<T>
- Overrides:
needsRequestBody
in classDefaultRouteInfo<R>
- Returns:
- true if the route needs request body to be read
-