Class ProviderBinder
java.lang.Object
org.exoplatform.services.rest.impl.ProviderBinder
- All Implemented Interfaces:
javax.ws.rs.ext.Providers,ExtendedProviders
- Direct Known Subclasses:
ApplicationProviders
Prepared set of providers. Users of JAX-RS implementation are not expected to
use this class directly. @Context annotation should be used to obtain
actual set of providers in RESTful services. As alternative method :
ApplicationContext context = ApplicationContextImpl.getCurrent(); Providers providers = context.getProviders();
- Version:
- $Id: $
- Author:
- Andrey Parfonov
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final Map<Class<?>, MediaTypeMap<ObjectFactory<ProviderDescriptor>>> Context resolvers.protected final Map<Class<? extends Throwable>, ObjectFactory<ProviderDescriptor>> Exception mappers.protected final UriPatternMap<ObjectFactory<FilterDescriptor>> Method invoking filters.protected final ResourceDescriptorVisitorValidator.protected final MediaTypeMultivaluedMap<ObjectFactory<ProviderDescriptor>> Read message body providers.protected final UriPatternMap<ObjectFactory<FilterDescriptor>> Request filters.protected final UriPatternMap<ObjectFactory<FilterDescriptor>> Response filters.protected final MediaTypeMultivaluedMap<ObjectFactory<ProviderDescriptor>> Read message body providers. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddContextResolver(Class<? extends javax.ws.rs.ext.ContextResolver> clazz) Add per-request ContextResolver.voidaddContextResolver(Class<? extends javax.ws.rs.ext.ContextResolver> clazz, javax.ws.rs.ext.ContextResolver instance, ComponentLifecycleScope scope) voidaddContextResolver(javax.ws.rs.ext.ContextResolver instance) Add singleton ContextResolver.voidaddExceptionMapper(Class<? extends javax.ws.rs.ext.ExceptionMapper> clazz) Add per-request ExceptionMapper.voidaddExceptionMapper(Class<? extends javax.ws.rs.ext.ExceptionMapper> clazz, javax.ws.rs.ext.ExceptionMapper instance, ComponentLifecycleScope scope) voidaddExceptionMapper(javax.ws.rs.ext.ExceptionMapper instance) Add singleton ExceptionMapper.voidaddMessageBodyReader(Class<? extends javax.ws.rs.ext.MessageBodyReader> clazz) Add per-request MessageBodyReader.voidaddMessageBodyReader(Class<? extends javax.ws.rs.ext.MessageBodyReader> clazz, javax.ws.rs.ext.MessageBodyReader instance, ComponentLifecycleScope scope) voidaddMessageBodyReader(javax.ws.rs.ext.MessageBodyReader instance) Add singleton MessageBodyReader.voidaddMessageBodyWriter(Class<? extends javax.ws.rs.ext.MessageBodyWriter> clazz) Add per-request MessageBodyWriter.voidaddMessageBodyWriter(Class<? extends javax.ws.rs.ext.MessageBodyWriter> clazz, javax.ws.rs.ext.MessageBodyWriter instance, ComponentLifecycleScope scope) voidaddMessageBodyWriter(javax.ws.rs.ext.MessageBodyWriter instance) Add singleton MessageBodyWriter.voidaddMethodInvokerFilter(Class<? extends MethodInvokerFilter> clazz) Add per-request MethodInvokerFilter.voidaddMethodInvokerFilter(Class<? extends MethodInvokerFilter> clazz, MethodInvokerFilter instance, ComponentLifecycleScope scope) voidaddMethodInvokerFilter(MethodInvokerFilter instance) Add singleton MethodInvokerFilter.voidaddRequestFilter(Class<? extends RequestFilter> clazz) Add per-request RequestFilter.voidaddRequestFilter(Class<? extends RequestFilter> clazz, RequestFilter instance, ComponentLifecycleScope scope) voidaddRequestFilter(RequestFilter instance) Add singleton RequestFilter.voidaddResponseFilter(Class<? extends ResponseFilter> clazz) Add per-request ResponseFilter.voidaddResponseFilter(Class<? extends ResponseFilter> clazz, ResponseFilter instance, ComponentLifecycleScope scope) voidaddResponseFilter(ResponseFilter instance) Add singleton ResponseFilter.protected <T> javax.ws.rs.ext.ContextResolver<T> doGetContextResolver(MediaTypeMap<ObjectFactory<ProviderDescriptor>> pm, Class<T> contextType, javax.ws.rs.core.MediaType mediaType) protected <T> javax.ws.rs.ext.MessageBodyReader<T> doGetMessageBodyReader(Class<T> type, Type genericType, Annotation[] annotations, javax.ws.rs.core.MediaType mediaType) Looking for message body reader according to supplied entity class, entity generic type, annotations and content type.protected <T> javax.ws.rs.ext.MessageBodyWriter<T> doGetMessageBodyWriter(Class<T> type, Type genericType, Annotation[] annotations, javax.ws.rs.core.MediaType mediaType) Looking for message body writer according to supplied entity class, entity generic type, annotations and content type.List<javax.ws.rs.core.MediaType> getAcceptableWriterMediaTypes(Class<?> type, Type genericType, Annotation[] annotations) Get list of most acceptable writer's media type for specified type.<T> javax.ws.rs.ext.ContextResolver<T> getContextResolver(Class<T> contextType, javax.ws.rs.core.MediaType mediaType) <T extends Throwable>
javax.ws.rs.ext.ExceptionMapper<T> getExceptionMapper(Class<T> type) static ProviderBinderGet actual set of providers.protected List<ObjectFactory<FilterDescriptor>> <T> javax.ws.rs.ext.MessageBodyReader<T> getMessageBodyReader(Class<T> type, Type genericType, Annotation[] annotations, javax.ws.rs.core.MediaType mediaType) <T> javax.ws.rs.ext.MessageBodyWriter<T> getMessageBodyWriter(Class<T> type, Type genericType, Annotation[] annotations, javax.ws.rs.core.MediaType mediaType) getRequestFilters(String path) getResponseFilters(String path) protected voidinit()Add prepared providers.static voidsetInstance(ProviderBinder inst) Set actual set of providers.
-
Field Details
-
writeProviders
Read message body providers.- See Also:
-
readProviders
Read message body providers.- See Also:
-
exceptionMappers
Exception mappers.- See Also:
-
contextResolvers
Context resolvers.- See Also:
-
requestFilters
Request filters.- See Also:
-
responseFilters
Response filters.- See Also:
-
invokerFilters
Method invoking filters.- See Also:
-
rdv
Validator.
-
-
Constructor Details
-
ProviderBinder
public ProviderBinder()
-
-
Method Details
-
getInstance
Get actual set of providers. Users of JAX-RS implementation are not expected to call this method.- Returns:
- actual set of providers
-
setInstance
Set actual set of providers. Users of JAX-RS implementation are not expected to call this method.- Parameters:
inst- actual set of providers
-
init
protected void init()Add prepared providers. -
addContextResolver
Add per-request ContextResolver.- Parameters:
clazz- class of implementation ContextResolver
-
addContextResolver
public void addContextResolver(javax.ws.rs.ext.ContextResolver instance) Add singleton ContextResolver.- Parameters:
instance- ContextResolver instance
-
addExceptionMapper
Add per-request ExceptionMapper.- Parameters:
clazz- class of implementation ExceptionMapper
-
addExceptionMapper
public void addExceptionMapper(javax.ws.rs.ext.ExceptionMapper instance) Add singleton ExceptionMapper.- Parameters:
instance- ExceptionMapper instance
-
addMessageBodyReader
Add per-request MessageBodyReader.- Parameters:
clazz- class of implementation MessageBodyReader
-
addMessageBodyReader
public void addMessageBodyReader(javax.ws.rs.ext.MessageBodyReader instance) Add singleton MessageBodyReader.- Parameters:
instance- MessageBodyReader instance
-
addMessageBodyWriter
Add per-request MessageBodyWriter.- Parameters:
clazz- class of implementation MessageBodyWriter
-
addMessageBodyWriter
public void addMessageBodyWriter(javax.ws.rs.ext.MessageBodyWriter instance) Add singleton MessageBodyWriter.- Parameters:
instance- MessageBodyWriter instance
-
getAcceptableWriterMediaTypes
public List<javax.ws.rs.core.MediaType> getAcceptableWriterMediaTypes(Class<?> type, Type genericType, Annotation[] annotations) Get list of most acceptable writer's media type for specified type.- Specified by:
getAcceptableWriterMediaTypesin interfaceExtendedProviders- Parameters:
type- typegenericType- generic typeannotations- annotations- Returns:
- sorted acceptable media type collection
- See Also:
-
getContextResolver
public <T> javax.ws.rs.ext.ContextResolver<T> getContextResolver(Class<T> contextType, javax.ws.rs.core.MediaType mediaType) - Specified by:
getContextResolverin interfacejavax.ws.rs.ext.Providers
-
getExceptionMapper
- Specified by:
getExceptionMapperin interfacejavax.ws.rs.ext.Providers
-
getMessageBodyReader
public <T> javax.ws.rs.ext.MessageBodyReader<T> getMessageBodyReader(Class<T> type, Type genericType, Annotation[] annotations, javax.ws.rs.core.MediaType mediaType) - Specified by:
getMessageBodyReaderin interfacejavax.ws.rs.ext.Providers
-
getMessageBodyWriter
public <T> javax.ws.rs.ext.MessageBodyWriter<T> getMessageBodyWriter(Class<T> type, Type genericType, Annotation[] annotations, javax.ws.rs.core.MediaType mediaType) - Specified by:
getMessageBodyWriterin interfacejavax.ws.rs.ext.Providers
-
addMethodInvokerFilter
Add per-request MethodInvokerFilter.- Parameters:
clazz- class of implementation MethodInvokerFilter
-
addMethodInvokerFilter
Add singleton MethodInvokerFilter.- Parameters:
instance- MethodInvokerFilter instance
-
addRequestFilter
Add per-request RequestFilter.- Parameters:
clazz- class of implementation RequestFilter
-
addRequestFilter
Add singleton RequestFilter.- Parameters:
instance- RequestFilter instance
-
addResponseFilter
Add per-request ResponseFilter.- Parameters:
clazz- class of implementation ResponseFilter
-
addResponseFilter
Add singleton ResponseFilter.- Parameters:
instance- ResponseFilter instance
-
getMethodInvokerFilters
- Specified by:
getMethodInvokerFiltersin interfaceExtendedProviders- Parameters:
path- request path- Returns:
- acceptable method invocation filters
-
getRequestFilters
- Specified by:
getRequestFiltersin interfaceExtendedProviders- Parameters:
path- request path- Returns:
- acceptable request filters
-
getResponseFilters
- Specified by:
getResponseFiltersin interfaceExtendedProviders- Parameters:
path- request path- Returns:
- acceptable response filters
-
getMatchedFilters
protected List<ObjectFactory<FilterDescriptor>> getMatchedFilters(String path, UriPatternMap<ObjectFactory<FilterDescriptor>> m) - Parameters:
path- request pathm- filter map- Returns:
- acceptable filter
- See Also:
-
doGetContextResolver
protected <T> javax.ws.rs.ext.ContextResolver<T> doGetContextResolver(MediaTypeMap<ObjectFactory<ProviderDescriptor>> pm, Class<T> contextType, javax.ws.rs.core.MediaType mediaType) - Type Parameters:
T- context resolver actual type argument- Parameters:
pm- MediaTypeMap that contains ProviderFactories that may produce objects that are instance of TcontextType- context typemediaType- media type that can be used to restrict context resolver choose- Returns:
- ContextResolver or null if nothing was found
-
doGetMessageBodyReader
protected <T> javax.ws.rs.ext.MessageBodyReader<T> doGetMessageBodyReader(Class<T> type, Type genericType, Annotation[] annotations, javax.ws.rs.core.MediaType mediaType) Looking for message body reader according to supplied entity class, entity generic type, annotations and content type.- Type Parameters:
T- message body reader actual type argument- Parameters:
type- entity typegenericType- entity generic typeannotations- annotationsmediaType- entity content type- Returns:
- message body reader or null if no one was found.
-
doGetMessageBodyWriter
protected <T> javax.ws.rs.ext.MessageBodyWriter<T> doGetMessageBodyWriter(Class<T> type, Type genericType, Annotation[] annotations, javax.ws.rs.core.MediaType mediaType) Looking for message body writer according to supplied entity class, entity generic type, annotations and content type.- Type Parameters:
T- message body writer actual type argument- Parameters:
type- entity typegenericType- entity generic typeannotations- annotationsmediaType- content type in which entity should be represented- Returns:
- message body writer or null if no one was found.
-
addContextResolver
public void addContextResolver(Class<? extends javax.ws.rs.ext.ContextResolver> clazz, javax.ws.rs.ext.ContextResolver instance, ComponentLifecycleScope scope) - Parameters:
clazz- ContextResolver classinstance- ContextResolver instance, may be null if not singleton instancescope- ComponentLifecycleScope
-
addMessageBodyReader
public void addMessageBodyReader(Class<? extends javax.ws.rs.ext.MessageBodyReader> clazz, javax.ws.rs.ext.MessageBodyReader instance, ComponentLifecycleScope scope) - Parameters:
clazz- MessageBodyreader classinstance- MessageBodyReader, may be null if not singleton instancescope- ComponentLifecycleScope
-
addMessageBodyWriter
public void addMessageBodyWriter(Class<? extends javax.ws.rs.ext.MessageBodyWriter> clazz, javax.ws.rs.ext.MessageBodyWriter instance, ComponentLifecycleScope scope) - Parameters:
clazz- MessageBodyWriter classinstance- MessageBodyWriter, may be null if not singleton instancescope- ComponentLifecycleScope
-
addExceptionMapper
public void addExceptionMapper(Class<? extends javax.ws.rs.ext.ExceptionMapper> clazz, javax.ws.rs.ext.ExceptionMapper instance, ComponentLifecycleScope scope) - Parameters:
clazz- ExceptionMapper classinstance- ExceptionMapper instance, may be null if not singleton instancescope- ComponentLifecycleScope
-
addRequestFilter
public void addRequestFilter(Class<? extends RequestFilter> clazz, RequestFilter instance, ComponentLifecycleScope scope) - Parameters:
clazz- RequestFilter classinstance- RequestFilter instance, may be null if not singleton instancescope- ComponentLifecycleScope
-
addResponseFilter
public void addResponseFilter(Class<? extends ResponseFilter> clazz, ResponseFilter instance, ComponentLifecycleScope scope) - Parameters:
clazz- ResponseFilter classinstance- ResponseFilter instance, may be null if not singleton instancescope- ComponentLifecycleScope
-
addMethodInvokerFilter
public void addMethodInvokerFilter(Class<? extends MethodInvokerFilter> clazz, MethodInvokerFilter instance, ComponentLifecycleScope scope) - Parameters:
clazz- MethodInvokerFilter classinstance- MethodInvokerFilter instance, may be null if not singleton instancescope- ComponentLifecycleScope
-