Class ResourceMethodInvoker
- java.lang.Object
-
- org.glassfish.jersey.server.model.ResourceMethodInvoker
-
- All Implemented Interfaces:
javax.ws.rs.container.ResourceInfo
,Inflector<RequestProcessingContext,ContainerResponse>
,Endpoint
public class ResourceMethodInvoker extends java.lang.Object implements Endpoint, javax.ws.rs.container.ResourceInfo
Server-side request-responseinflector
for invoking methods of annotation-based resource classes.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ResourceMethodInvoker.Builder
Resource method invoker helper.
-
Field Summary
Fields Modifier and Type Field Description private boolean
canUseInvocableResponseType
private ResourceMethodDispatcher
dispatcher
private java.lang.reflect.Type
invocableResponseType
private ResourceMethod
method
private java.lang.annotation.Annotation[]
methodAnnotations
private java.lang.Iterable<javax.ws.rs.ext.ReaderInterceptor>
readerInterceptors
private java.util.List<RankedProvider<javax.ws.rs.container.ContainerRequestFilter>>
requestFilters
private java.lang.Class<?>
resourceClass
private java.lang.reflect.Method
resourceMethod
private java.util.List<RankedProvider<javax.ws.rs.container.ContainerResponseFilter>>
responseFilters
private java.lang.Iterable<javax.ws.rs.ext.WriterInterceptor>
writerInterceptors
-
Constructor Summary
Constructors Modifier Constructor Description private
ResourceMethodInvoker(ResourceMethodDispatcher.Provider dispatcherProvider, ResourceMethodInvocationHandlerProvider invocationHandlerProvider, ResourceMethod method, ProcessingProviders processingProviders, InjectionManager injectionManager, javax.ws.rs.core.Configuration globalConfig, ConfiguredValidator validator)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
addNameBoundFiltersAndInterceptors(ProcessingProviders processingProviders, java.util.Collection<RankedProvider<javax.ws.rs.container.ContainerRequestFilter>> targetRequestFilters, java.util.Collection<RankedProvider<javax.ws.rs.container.ContainerResponseFilter>> targetResponseFilters, java.util.Collection<RankedProvider<javax.ws.rs.ext.ReaderInterceptor>> targetReaderInterceptors, java.util.Collection<RankedProvider<javax.ws.rs.ext.WriterInterceptor>> targetWriterInterceptors, NameBound nameBound)
private <T> void
addNameBoundProviders(java.util.Collection<RankedProvider<T>> targetCollection, NameBound nameBound, javax.ws.rs.core.MultivaluedMap<java.lang.Class<? extends java.lang.annotation.Annotation>,RankedProvider<T>> nameBoundProviders, javax.ws.rs.core.MultivaluedMap<RankedProvider<T>,java.lang.Class<? extends java.lang.annotation.Annotation>> nameBoundProvidersInverse)
ContainerResponse
apply(RequestProcessingContext processingContext)
Transform data of a given type into a result of the different type.java.lang.Iterable<javax.ws.rs.ext.ReaderInterceptor>
getReaderInterceptors()
Get all writer interceptors applicable to theresource method
wrapped by this invoker.java.lang.Iterable<RankedProvider<javax.ws.rs.container.ContainerRequestFilter>>
getRequestFilters()
Get all bound request filters applicable to theresource method
wrapped by this invoker.java.lang.Class<?>
getResourceClass()
java.lang.reflect.Method
getResourceMethod()
java.lang.Iterable<RankedProvider<javax.ws.rs.container.ContainerResponseFilter>>
getResponseFilters()
Get all bound response filters applicable to theresource method
wrapped by this invoker.java.lang.Iterable<javax.ws.rs.ext.WriterInterceptor>
getWriterInterceptors()
Get all reader interceptors applicable to theresource method
wrapped by this invoker.private javax.ws.rs.core.Response
invoke(RequestProcessingContext context, java.lang.Object resource)
java.lang.String
toString()
private java.util.function.BiConsumer
whenComplete(RequestProcessingContext processingContext)
-
-
-
Field Detail
-
method
private final ResourceMethod method
-
methodAnnotations
private final java.lang.annotation.Annotation[] methodAnnotations
-
invocableResponseType
private final java.lang.reflect.Type invocableResponseType
-
canUseInvocableResponseType
private final boolean canUseInvocableResponseType
-
dispatcher
private final ResourceMethodDispatcher dispatcher
-
resourceMethod
private final java.lang.reflect.Method resourceMethod
-
resourceClass
private final java.lang.Class<?> resourceClass
-
requestFilters
private final java.util.List<RankedProvider<javax.ws.rs.container.ContainerRequestFilter>> requestFilters
-
responseFilters
private final java.util.List<RankedProvider<javax.ws.rs.container.ContainerResponseFilter>> responseFilters
-
readerInterceptors
private final java.lang.Iterable<javax.ws.rs.ext.ReaderInterceptor> readerInterceptors
-
writerInterceptors
private final java.lang.Iterable<javax.ws.rs.ext.WriterInterceptor> writerInterceptors
-
-
Constructor Detail
-
ResourceMethodInvoker
private ResourceMethodInvoker(ResourceMethodDispatcher.Provider dispatcherProvider, ResourceMethodInvocationHandlerProvider invocationHandlerProvider, ResourceMethod method, ProcessingProviders processingProviders, InjectionManager injectionManager, javax.ws.rs.core.Configuration globalConfig, ConfiguredValidator validator)
-
-
Method Detail
-
addNameBoundProviders
private <T> void addNameBoundProviders(java.util.Collection<RankedProvider<T>> targetCollection, NameBound nameBound, javax.ws.rs.core.MultivaluedMap<java.lang.Class<? extends java.lang.annotation.Annotation>,RankedProvider<T>> nameBoundProviders, javax.ws.rs.core.MultivaluedMap<RankedProvider<T>,java.lang.Class<? extends java.lang.annotation.Annotation>> nameBoundProvidersInverse)
-
addNameBoundFiltersAndInterceptors
private void addNameBoundFiltersAndInterceptors(ProcessingProviders processingProviders, java.util.Collection<RankedProvider<javax.ws.rs.container.ContainerRequestFilter>> targetRequestFilters, java.util.Collection<RankedProvider<javax.ws.rs.container.ContainerResponseFilter>> targetResponseFilters, java.util.Collection<RankedProvider<javax.ws.rs.ext.ReaderInterceptor>> targetReaderInterceptors, java.util.Collection<RankedProvider<javax.ws.rs.ext.WriterInterceptor>> targetWriterInterceptors, NameBound nameBound)
-
getResourceMethod
public java.lang.reflect.Method getResourceMethod()
- Specified by:
getResourceMethod
in interfacejavax.ws.rs.container.ResourceInfo
-
getResourceClass
public java.lang.Class<?> getResourceClass()
- Specified by:
getResourceClass
in interfacejavax.ws.rs.container.ResourceInfo
-
apply
public ContainerResponse apply(RequestProcessingContext processingContext)
Description copied from interface:Inflector
Transform data of a given type into a result of the different type.- Specified by:
apply
in interfaceInflector<RequestProcessingContext,ContainerResponse>
- Parameters:
processingContext
- data to be transformed into a result.- Returns:
- data transformation result. Return value must not be
null
.
-
whenComplete
private java.util.function.BiConsumer whenComplete(RequestProcessingContext processingContext)
-
invoke
private javax.ws.rs.core.Response invoke(RequestProcessingContext context, java.lang.Object resource)
-
getRequestFilters
public java.lang.Iterable<RankedProvider<javax.ws.rs.container.ContainerRequestFilter>> getRequestFilters()
Get all bound request filters applicable to theresource method
wrapped by this invoker.- Returns:
- All bound (dynamically or by name) request filters applicable to the
resource method
.
-
getResponseFilters
public java.lang.Iterable<RankedProvider<javax.ws.rs.container.ContainerResponseFilter>> getResponseFilters()
Get all bound response filters applicable to theresource method
wrapped by this invoker.- Returns:
- All bound (dynamically or by name) response filters applicable to the
resource method
.
-
getWriterInterceptors
public java.lang.Iterable<javax.ws.rs.ext.WriterInterceptor> getWriterInterceptors()
Get all reader interceptors applicable to theresource method
wrapped by this invoker.- Returns:
- All reader interceptors applicable to the
resource method
.
-
getReaderInterceptors
public java.lang.Iterable<javax.ws.rs.ext.ReaderInterceptor> getReaderInterceptors()
Get all writer interceptors applicable to theresource method
wrapped by this invoker.- Returns:
- All writer interceptors applicable to the
resource method
.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-