Class ProviderBinder

java.lang.Object
org.exoplatform.services.rest.impl.ProviderBinder
All Implemented Interfaces:
javax.ws.rs.ext.Providers, ExtendedProviders
Direct Known Subclasses:
ApplicationProviders

public class ProviderBinder extends Object implements ExtendedProviders
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 Details

  • Constructor Details

    • ProviderBinder

      public ProviderBinder()
  • Method Details

    • getInstance

      public static ProviderBinder getInstance()
      Get actual set of providers. Users of JAX-RS implementation are not expected to call this method.
      Returns:
      actual set of providers
    • setInstance

      public static void setInstance(ProviderBinder inst)
      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

      public void addContextResolver(Class<? extends javax.ws.rs.ext.ContextResolver> clazz)
      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

      public void addExceptionMapper(Class<? extends javax.ws.rs.ext.ExceptionMapper> clazz)
      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

      public void addMessageBodyReader(Class<? extends javax.ws.rs.ext.MessageBodyReader> clazz)
      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

      public void addMessageBodyWriter(Class<? extends javax.ws.rs.ext.MessageBodyWriter> clazz)
      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:
      getAcceptableWriterMediaTypes in interface ExtendedProviders
      Parameters:
      type - type
      genericType - generic type
      annotations - 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:
      getContextResolver in interface javax.ws.rs.ext.Providers
    • getExceptionMapper

      public <T extends Throwable> javax.ws.rs.ext.ExceptionMapper<T> getExceptionMapper(Class<T> type)
      Specified by:
      getExceptionMapper in interface javax.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:
      getMessageBodyReader in interface javax.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:
      getMessageBodyWriter in interface javax.ws.rs.ext.Providers
    • addMethodInvokerFilter

      public void addMethodInvokerFilter(Class<? extends MethodInvokerFilter> clazz)
      Add per-request MethodInvokerFilter.
      Parameters:
      clazz - class of implementation MethodInvokerFilter
    • addMethodInvokerFilter

      public void addMethodInvokerFilter(MethodInvokerFilter instance)
      Add singleton MethodInvokerFilter.
      Parameters:
      instance - MethodInvokerFilter instance
    • addRequestFilter

      public void addRequestFilter(Class<? extends RequestFilter> clazz)
      Add per-request RequestFilter.
      Parameters:
      clazz - class of implementation RequestFilter
    • addRequestFilter

      public void addRequestFilter(RequestFilter instance)
      Add singleton RequestFilter.
      Parameters:
      instance - RequestFilter instance
    • addResponseFilter

      public void addResponseFilter(Class<? extends ResponseFilter> clazz)
      Add per-request ResponseFilter.
      Parameters:
      clazz - class of implementation ResponseFilter
    • addResponseFilter

      public void addResponseFilter(ResponseFilter instance)
      Add singleton ResponseFilter.
      Parameters:
      instance - ResponseFilter instance
    • getMethodInvokerFilters

      public List<ObjectFactory<FilterDescriptor>> getMethodInvokerFilters(String path)
      Specified by:
      getMethodInvokerFilters in interface ExtendedProviders
      Parameters:
      path - request path
      Returns:
      acceptable method invocation filters
    • getRequestFilters

      public List<ObjectFactory<FilterDescriptor>> getRequestFilters(String path)
      Specified by:
      getRequestFilters in interface ExtendedProviders
      Parameters:
      path - request path
      Returns:
      acceptable request filters
    • getResponseFilters

      public List<ObjectFactory<FilterDescriptor>> getResponseFilters(String path)
      Specified by:
      getResponseFilters in interface ExtendedProviders
      Parameters:
      path - request path
      Returns:
      acceptable response filters
    • getMatchedFilters

      Parameters:
      path - request path
      m - 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 T
      contextType - context type
      mediaType - 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 type
      genericType - entity generic type
      annotations - annotations
      mediaType - 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 type
      genericType - entity generic type
      annotations - annotations
      mediaType - 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 class
      instance - ContextResolver instance, may be null if not singleton instance
      scope - ComponentLifecycleScope
    • addMessageBodyReader

      public void addMessageBodyReader(Class<? extends javax.ws.rs.ext.MessageBodyReader> clazz, javax.ws.rs.ext.MessageBodyReader instance, ComponentLifecycleScope scope)
      Parameters:
      clazz - MessageBodyreader class
      instance - MessageBodyReader, may be null if not singleton instance
      scope - ComponentLifecycleScope
    • addMessageBodyWriter

      public void addMessageBodyWriter(Class<? extends javax.ws.rs.ext.MessageBodyWriter> clazz, javax.ws.rs.ext.MessageBodyWriter instance, ComponentLifecycleScope scope)
      Parameters:
      clazz - MessageBodyWriter class
      instance - MessageBodyWriter, may be null if not singleton instance
      scope - ComponentLifecycleScope
    • addExceptionMapper

      public void addExceptionMapper(Class<? extends javax.ws.rs.ext.ExceptionMapper> clazz, javax.ws.rs.ext.ExceptionMapper instance, ComponentLifecycleScope scope)
      Parameters:
      clazz - ExceptionMapper class
      instance - ExceptionMapper instance, may be null if not singleton instance
      scope - ComponentLifecycleScope
    • addRequestFilter

      public void addRequestFilter(Class<? extends RequestFilter> clazz, RequestFilter instance, ComponentLifecycleScope scope)
      Parameters:
      clazz - RequestFilter class
      instance - RequestFilter instance, may be null if not singleton instance
      scope - ComponentLifecycleScope
    • addResponseFilter

      public void addResponseFilter(Class<? extends ResponseFilter> clazz, ResponseFilter instance, ComponentLifecycleScope scope)
      Parameters:
      clazz - ResponseFilter class
      instance - ResponseFilter instance, may be null if not singleton instance
      scope - ComponentLifecycleScope
    • addMethodInvokerFilter

      public void addMethodInvokerFilter(Class<? extends MethodInvokerFilter> clazz, MethodInvokerFilter instance, ComponentLifecycleScope scope)
      Parameters:
      clazz - MethodInvokerFilter class
      instance - MethodInvokerFilter instance, may be null if not singleton instance
      scope - ComponentLifecycleScope