org.jboss.resteasy.spi
Class ResteasyProviderFactory

java.lang.Object
  extended by javax.ws.rs.ext.RuntimeDelegate
      extended by org.jboss.resteasy.spi.ResteasyProviderFactory
All Implemented Interfaces:
Configurable, Providers, HeaderValueProcessor
Direct Known Subclasses:
ThreadLocalResteasyProviderFactory

public class ResteasyProviderFactory
extends RuntimeDelegate
implements Providers, HeaderValueProcessor, Configurable

Version:
$Revision: 1 $
Author:
Bill Burke

Nested Class Summary
protected static class ResteasyProviderFactory.SortedKey<T>
          Allow us to sort message body implementations that are more specific for their types i.e.
 
Nested classes/interfaces inherited from class javax.ws.rs.ext.RuntimeDelegate
RuntimeDelegate.HeaderDelegate<T>
 
Field Summary
protected  boolean builtinsRegistered
           
protected  Set<DynamicFeature> clientDynamicFeatures
           
protected  List<ClientErrorInterceptor> clientErrorInterceptors
           
protected  Map<Class<?>,ClientExceptionMapper> clientExceptionMappers
           
protected  InterceptorRegistry<ClientExecutionInterceptor> clientExecutionInterceptorRegistry
           
protected  ReaderInterceptorRegistry clientReaderInterceptorRegistry
           
protected  JaxrsInterceptorRegistry<ClientRequestFilter> clientRequestFilters
           
protected  JaxrsInterceptorRegistry<ClientResponseFilter> clientResponseFilters
           
protected  WriterInterceptorRegistry clientWriterInterceptorRegistry
           
protected  ContainerRequestFilterRegistry containerRequestFilterRegistry
           
protected  ContainerResponseFilterRegistry containerResponseFilterRegistry
           
protected  Map<Class<?>,MediaTypeMap<ResteasyProviderFactory.SortedKey<ContextResolver>>> contextResolvers
           
protected static ThreadLocalStack<Map<Class<?>,Object>> contextualData
           
protected  Set<Feature> enabledFeatures
           
protected  Map<Class<?>,ExceptionMapper> exceptionMappers
           
protected  Set<Class<?>> featureClasses
           
protected  Set<Object> featureInstances
           
protected  Map<Class<?>,RuntimeDelegate.HeaderDelegate> headerDelegates
           
protected  InjectorFactory injectorFactory
           
protected static ResteasyProviderFactory instance
           
protected static int maxForwards
           
protected  MediaTypeMap<ResteasyProviderFactory.SortedKey<MessageBodyReader>> messageBodyReaders
           
protected  MediaTypeMap<ResteasyProviderFactory.SortedKey<MessageBodyWriter>> messageBodyWriters
           
protected  List<ParamConverterProvider> paramConverterProviders
           
protected  ResteasyProviderFactory parent
           
protected static AtomicReference<ResteasyProviderFactory> pfr
           
protected  LegacyPrecedence precedence
           
protected  Map<String,Object> properties
           
protected  Set<Class<?>> providerClasses
           
protected  Set<Object> providerInstances
           
static boolean registerBuiltinByDefault
           
protected  boolean registerBuiltins
           
protected  Set<DynamicFeature> serverDynamicFeatures
           
protected  ReaderInterceptorRegistry serverReaderInterceptorRegistry
           
protected  WriterInterceptorRegistry serverWriterInterceptorRegistry
           
protected  Map<Class<?>,StringConverter> stringConverters
           
protected  Map<Class<?>,Class<? extends StringParameterUnmarshaller>> stringParameterUnmarshallers
           
 
Fields inherited from class javax.ws.rs.ext.RuntimeDelegate
JAXRS_RUNTIME_DELEGATE_PROPERTY
 
Constructor Summary
ResteasyProviderFactory()
           
ResteasyProviderFactory(ResteasyProviderFactory parent)
          Copies a specific component registry when a new provider is added.
 
Method Summary
 void addClientErrorInterceptor(ClientErrorInterceptor handler)
          Add a ClientErrorInterceptor to this provider factory instance.
 void addClientExceptionMapper(Class<? extends ClientExceptionMapper<?>> providerClass)
           
 void addClientExceptionMapper(ClientExceptionMapper<?> provider)
           
 void addClientExceptionMapper(ClientExceptionMapper<?> provider, Class<?> providerClass)
           
 void addClientExceptionMapper(ClientExceptionMapper<?> provider, Type exceptionType)
           
static Map<Class<?>,Object> addContextDataLevel()
           
protected  void addContextResolver(Class<? extends ContextResolver> resolver, boolean builtin)
           
protected  void addContextResolver(ContextResolver provider)
           
protected  void addContextResolver(ContextResolver provider, boolean builtin)
           
protected  void addContextResolver(ContextResolver provider, Class providerClass, boolean builtin)
           
protected  void addContextResolver(ContextResolver provider, Type typeParameter, Class providerClass, boolean builtin)
           
protected  void addExceptionMapper(Class<? extends ExceptionMapper> providerClass)
           
protected  void addExceptionMapper(ExceptionMapper provider)
           
protected  void addExceptionMapper(ExceptionMapper provider, Class providerClass)
           
protected  void addExceptionMapper(ExceptionMapper provider, Type exceptionType)
           
 void addHeaderDelegate(Class clazz, RuntimeDelegate.HeaderDelegate header)
           
protected  void addMessageBodyReader(Class<? extends MessageBodyReader> provider, boolean isBuiltin)
           
protected  void addMessageBodyReader(MessageBodyReader provider)
           
protected  void addMessageBodyReader(MessageBodyReader provider, boolean isBuiltin)
           
protected  void addMessageBodyReader(MessageBodyReader provider, Class providerClass, boolean isBuiltin)
          Specify the provider class.
protected  void addMessageBodyWriter(Class<? extends MessageBodyWriter> provider, boolean isBuiltin)
           
protected  void addMessageBodyWriter(MessageBodyWriter provider)
           
protected  void addMessageBodyWriter(MessageBodyWriter provider, Class providerClass, boolean isBuiltin)
          Specify the provider class.
protected  void addStringConverter(Class<? extends StringConverter> resolver)
           
protected  void addStringConverter(StringConverter provider)
           
protected  void addStringConverter(StringConverter provider, Class providerClass)
           
protected  void addStringConverter(StringConverter provider, Type typeParameter)
           
 void addStringParameterUnmarshaller(Class<? extends StringParameterUnmarshaller> provider)
           
 void appendInterceptorPrecedence(String precedence)
          Append interceptor predence
static void clearContextData()
           
static void clearInstanceIfEqual(ResteasyProviderFactory factory)
           
<T> ConstructorInjector
createConstructorInjector(Class<? extends T> clazz)
           
<T> T
createEndpoint(Application applicationConfig, Class<T> endpointType)
          this is a spec method that is unsupported.
<T> RuntimeDelegate.HeaderDelegate<T>
createHeaderDelegate(Class<T> tClass)
          Obtain an instance of a RuntimeDelegate.HeaderDelegate for the supplied class.
<T> T
createProviderInstance(Class<? extends T> clazz)
          Create an instance of a class using provider allocation rules of the specification as well as the InjectorFactory only does constructor injection
 Response.ResponseBuilder createResponseBuilder()
          Create a new instance of a Response.ResponseBuilder.
<T> StringParameterUnmarshaller<T>
createStringParameterUnmarshaller(Class<T> clazz)
           
 UriBuilder createUriBuilder()
          Create a new instance of a UriBuilder.
 Variant.VariantListBuilder createVariantListBuilder()
          Create a new instance of a Variant.VariantListBuilder.
 Set<DynamicFeature> getClientDynamicFeatures()
           
 List<ClientErrorInterceptor> getClientErrorInterceptors()
          Return the list of currently registered ClientErrorInterceptor instances.
<T extends Throwable>
ClientExceptionMapper<T>
getClientExceptionMapper(Class<T> type)
           
protected  Map<Class<?>,ClientExceptionMapper> getClientExceptionMappers()
           
 InterceptorRegistry<ClientExecutionInterceptor> getClientExecutionInterceptorRegistry()
           
 ReaderInterceptorRegistry getClientReaderInterceptorRegistry()
           
 JaxrsInterceptorRegistry<ClientRequestFilter> getClientRequestFilters()
           
 JaxrsInterceptorRegistry<ClientResponseFilter> getClientResponseFilters()
           
 WriterInterceptorRegistry getClientWriterInterceptorRegistry()
           
 ContainerRequestFilterRegistry getContainerRequestFilterRegistry()
           
 ContainerResponseFilterRegistry getContainerResponseFilterRegistry()
           
static
<T> T
getContextData(Class<T> type)
           
static int getContextDataLevelCount()
           
static Map<Class<?>,Object> getContextDataMap()
           
<T> ContextResolver<T>
getContextResolver(Class<T> contextType, MediaType mediaType)
          Get a context resolver for a particular type of context and media type.
protected  Map<Class<?>,MediaTypeMap<ResteasyProviderFactory.SortedKey<ContextResolver>>> getContextResolvers()
           
 List<ContextResolver> getContextResolvers(Class<?> clazz, MediaType type)
           
 Collection<Feature> getEnabledFeatures()
          Get the immutable set of features that have been successfully configured within the current configurable context.
<T extends Throwable>
ExceptionMapper<T>
getExceptionMapper(Class<T> type)
          Get an exception mapping provider for a particular class of exception.
protected  Map<Class<?>,ExceptionMapper> getExceptionMappers()
           
 Set<Class<?>> getFeatureClasses()
          Get the immutable set of registered feature classes to be instantiated, injected and Feature.configure(Configurable) configured} in the scope of the configured instance.
 Set<Object> getFeatureInstances()
          Get the immutable set of registered feature instances to be Feature.configure(Configurable) configured} in the scope of the configured instance.
protected  Map<Class<?>,RuntimeDelegate.HeaderDelegate> getHeaderDelegates()
           
 InjectorFactory getInjectorFactory()
           
static ResteasyProviderFactory getInstance()
          Initializes ResteasyProviderFactory singleton if not set
<T> MessageBodyReader<T>
getMessageBodyReader(Class<T> type, Type genericType, Annotation[] annotations, MediaType mediaType)
          Get a message body reader that matches a set of criteria.
protected  MediaTypeMap<ResteasyProviderFactory.SortedKey<MessageBodyReader>> getMessageBodyReaders()
           
<T> MessageBodyWriter<T>
getMessageBodyWriter(Class<T> type, Type genericType, Annotation[] annotations, MediaType mediaType)
          Get a message body writer that matches a set of criteria.
protected  MediaTypeMap<ResteasyProviderFactory.SortedKey<MessageBodyWriter>> getMessageBodyWriters()
           
 Map<String,Object> getMutableProperties()
           
 ParamConverter getParamConverter(Class clazz, Type genericType, Annotation[] annotations)
           
protected  List<ParamConverterProvider> getParamConverterProviders()
           
 ResteasyProviderFactory getParent()
           
protected  LegacyPrecedence getPrecedence()
           
 Map<String,Object> getProperties()
          Get the immutable bag of configuration properties.
 Object getProperty(String name)
          Get the value for the property with a given name.
 Set<Class<?>> getProviderClasses()
          Copy
 Set<Object> getProviderInstances()
          Copy
 Set<DynamicFeature> getServerDynamicFeatures()
           
 ReaderInterceptorRegistry getServerReaderInterceptorRegistry()
           
 WriterInterceptorRegistry getServerWriterInterceptorRegistry()
           
 StringConverter getStringConverter(Class<?> clazz)
           
protected  Map<Class<?>,StringConverter> getStringConverters()
           
protected  Map<Class<?>,Class<? extends StringParameterUnmarshaller>> getStringParameterUnmarshallers()
           
protected  void initialize()
           
<T> T
injectedInstance(Class<? extends T> clazz)
          Property and constructor injection using the InjectorFactory
 void injectProperties(Class declaring, Object obj)
           
 void injectProperties(Object obj)
           
 void insertInterceptorPrecedenceAfter(String after, String newPrecedence)
           
 void insertInterceptorPrecedenceBefore(String before, String newPrecedence)
           
protected  boolean isA(Class target, Class type, Class<?>[] contracts)
           
protected  boolean isA(Object target, Class type, Class<?>[] contracts)
           
 boolean isBuiltinsRegistered()
           
 boolean isRegisterBuiltins()
           
static ResteasyProviderFactory peekInstance()
          Will not initialize singleton if not set
static
<T> T
popContextData(Class<T> type)
           
static
<T> void
pushContext(Class<T> type, T data)
           
static void pushContextDataMap(Map<Class<?>,Object> map)
           
 Configurable register(Class<?> providerClass)
          Register a provider or a feature class to be instantiated and used in the scope of the configured instance.
 Configurable register(Class<?> providerClass, int bindingPriority)
          Register a provider or a feature class to be instantiated and used in the scope of the configured instance.
<T> Configurable
register(Class<T> providerClass, Class<? super T>... contracts)
          Register a provider or a feature class to be instantiated and used in the scope of the configured instance.
<T> Configurable
register(Class<T> providerClass, int bindingPriority, Class<? super T>... contracts)
          Register a provider or a feature class to be instantiated and used in the scope of the configured instance.
 Configurable register(Object provider)
          Register a provider or a feature ("singleton") instance to be used in the scope of the configured instance.
<T> Configurable
register(Object provider, Class<? super T>... contracts)
          Register a provider or a feature ("singleton") instance to be used in the scope of the configured instance.
 Configurable register(Object provider, int bindingPriority)
          Register a provider or a feature ("singleton") instance to be used in the scope of the configured instance.
<T> Configurable
register(Object provider, int bindingPriority, Class<? super T>... contracts)
          Register a provider or a feature ("singleton") instance to be used in the scope of the configured instance.
protected  void registerDefaultInterceptorPrecedences()
           
protected  void registerDefaultInterceptorPrecedences(InterceptorRegistry registry)
           
 void registerProvider(Class provider)
           
 void registerProvider(Class provider, boolean isBuiltin)
          Register a @Provider class.
 void registerProvider(Class provider, boolean isBuiltin, int bindingPriority, Class<?>... contracts)
           
 void registerProviderInstance(Object provider)
          Register a @Provider object.
 void registerProviderInstance(Object provider, int bindingPriority, Class<?>... contracts)
           
static void removeContextDataLevel()
           
 void setBuiltinsRegistered(boolean builtinsRegistered)
           
 void setInjectorFactory(InjectorFactory injectorFactory)
           
static void setInstance(ResteasyProviderFactory factory)
           
 Configurable setProperties(Map<String,?> properties)
          Set new configuration properties replacing all previously set properties.
 Configurable setProperty(String name, Object value)
          Set the new configuration property, if already set, the existing value of the property will be updated.
static void setRegisterBuiltinByDefault(boolean registerBuiltinByDefault)
           
 void setRegisterBuiltins(boolean registerBuiltins)
           
 String toHeaderString(Object object)
          Convert an object to a header string.
 String toString(Object object, Class clazz, Type genericType, Annotation[] annotations)
          Convert an object to a string.
 
Methods inherited from class javax.ws.rs.ext.RuntimeDelegate
setInstance
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

pfr

protected static AtomicReference<ResteasyProviderFactory> pfr

contextualData

protected static ThreadLocalStack<Map<Class<?>,Object>> contextualData

maxForwards

protected static int maxForwards

instance

protected static volatile ResteasyProviderFactory instance

registerBuiltinByDefault

public static boolean registerBuiltinByDefault

messageBodyReaders

protected MediaTypeMap<ResteasyProviderFactory.SortedKey<MessageBodyReader>> messageBodyReaders

messageBodyWriters

protected MediaTypeMap<ResteasyProviderFactory.SortedKey<MessageBodyWriter>> messageBodyWriters

exceptionMappers

protected Map<Class<?>,ExceptionMapper> exceptionMappers

clientExceptionMappers

protected Map<Class<?>,ClientExceptionMapper> clientExceptionMappers

contextResolvers

protected Map<Class<?>,MediaTypeMap<ResteasyProviderFactory.SortedKey<ContextResolver>>> contextResolvers

stringConverters

protected Map<Class<?>,StringConverter> stringConverters

paramConverterProviders

protected List<ParamConverterProvider> paramConverterProviders

stringParameterUnmarshallers

protected Map<Class<?>,Class<? extends StringParameterUnmarshaller>> stringParameterUnmarshallers

headerDelegates

protected Map<Class<?>,RuntimeDelegate.HeaderDelegate> headerDelegates

precedence

protected LegacyPrecedence precedence

serverReaderInterceptorRegistry

protected ReaderInterceptorRegistry serverReaderInterceptorRegistry

serverWriterInterceptorRegistry

protected WriterInterceptorRegistry serverWriterInterceptorRegistry

containerRequestFilterRegistry

protected ContainerRequestFilterRegistry containerRequestFilterRegistry

containerResponseFilterRegistry

protected ContainerResponseFilterRegistry containerResponseFilterRegistry

clientRequestFilters

protected JaxrsInterceptorRegistry<ClientRequestFilter> clientRequestFilters

clientResponseFilters

protected JaxrsInterceptorRegistry<ClientResponseFilter> clientResponseFilters

clientReaderInterceptorRegistry

protected ReaderInterceptorRegistry clientReaderInterceptorRegistry

clientWriterInterceptorRegistry

protected WriterInterceptorRegistry clientWriterInterceptorRegistry

clientExecutionInterceptorRegistry

protected InterceptorRegistry<ClientExecutionInterceptor> clientExecutionInterceptorRegistry

clientErrorInterceptors

protected List<ClientErrorInterceptor> clientErrorInterceptors

builtinsRegistered

protected boolean builtinsRegistered

registerBuiltins

protected boolean registerBuiltins

injectorFactory

protected InjectorFactory injectorFactory

parent

protected ResteasyProviderFactory parent

serverDynamicFeatures

protected Set<DynamicFeature> serverDynamicFeatures

clientDynamicFeatures

protected Set<DynamicFeature> clientDynamicFeatures

enabledFeatures

protected Set<Feature> enabledFeatures

properties

protected Map<String,Object> properties

providerClasses

protected Set<Class<?>> providerClasses

providerInstances

protected Set<Object> providerInstances

featureClasses

protected Set<Class<?>> featureClasses

featureInstances

protected Set<Object> featureInstances
Constructor Detail

ResteasyProviderFactory

public ResteasyProviderFactory()

ResteasyProviderFactory

public ResteasyProviderFactory(ResteasyProviderFactory parent)
Copies a specific component registry when a new provider is added. Otherwise delegates to the parent.

Parameters:
parent -
Method Detail

initialize

protected void initialize()

getServerDynamicFeatures

public Set<DynamicFeature> getServerDynamicFeatures()

getClientDynamicFeatures

public Set<DynamicFeature> getClientDynamicFeatures()

getMessageBodyReaders

protected MediaTypeMap<ResteasyProviderFactory.SortedKey<MessageBodyReader>> getMessageBodyReaders()

getMessageBodyWriters

protected MediaTypeMap<ResteasyProviderFactory.SortedKey<MessageBodyWriter>> getMessageBodyWriters()

getExceptionMappers

protected Map<Class<?>,ExceptionMapper> getExceptionMappers()

getClientExceptionMappers

protected Map<Class<?>,ClientExceptionMapper> getClientExceptionMappers()

getContextResolvers

protected Map<Class<?>,MediaTypeMap<ResteasyProviderFactory.SortedKey<ContextResolver>>> getContextResolvers()

getStringConverters

protected Map<Class<?>,StringConverter> getStringConverters()

getParamConverterProviders

protected List<ParamConverterProvider> getParamConverterProviders()

getStringParameterUnmarshallers

protected Map<Class<?>,Class<? extends StringParameterUnmarshaller>> getStringParameterUnmarshallers()

getProviderClasses

public Set<Class<?>> getProviderClasses()
Copy

Specified by:
getProviderClasses in interface Configurable
Returns:
See Also:
Configurable.getProviderInstances()

getProviderInstances

public Set<Object> getProviderInstances()
Copy

Specified by:
getProviderInstances in interface Configurable
Returns:
See Also:
Configurable.getProviderClasses()

getPrecedence

protected LegacyPrecedence getPrecedence()

getParent

public ResteasyProviderFactory getParent()

registerDefaultInterceptorPrecedences

protected void registerDefaultInterceptorPrecedences(InterceptorRegistry registry)

registerDefaultInterceptorPrecedences

protected void registerDefaultInterceptorPrecedences()

appendInterceptorPrecedence

public void appendInterceptorPrecedence(String precedence)
Append interceptor predence

Parameters:
precedence -

insertInterceptorPrecedenceAfter

public void insertInterceptorPrecedenceAfter(String after,
                                             String newPrecedence)
Parameters:
after - put newPrecedence after this
newPrecedence -

insertInterceptorPrecedenceBefore

public void insertInterceptorPrecedenceBefore(String before,
                                              String newPrecedence)
Parameters:
before - put newPrecedence before this
newPrecedence -

pushContext

public static <T> void pushContext(Class<T> type,
                                   T data)

pushContextDataMap

public static void pushContextDataMap(Map<Class<?>,Object> map)

getContextDataMap

public static Map<Class<?>,Object> getContextDataMap()

getContextData

public static <T> T getContextData(Class<T> type)

popContextData

public static <T> T popContextData(Class<T> type)

clearContextData

public static void clearContextData()

addContextDataLevel

public static Map<Class<?>,Object> addContextDataLevel()

getContextDataLevelCount

public static int getContextDataLevelCount()

removeContextDataLevel

public static void removeContextDataLevel()

peekInstance

public static ResteasyProviderFactory peekInstance()
Will not initialize singleton if not set

Returns:

clearInstanceIfEqual

public static void clearInstanceIfEqual(ResteasyProviderFactory factory)

setInstance

public static void setInstance(ResteasyProviderFactory factory)

getInstance

public static ResteasyProviderFactory getInstance()
Initializes ResteasyProviderFactory singleton if not set

Returns:

setRegisterBuiltinByDefault

public static void setRegisterBuiltinByDefault(boolean registerBuiltinByDefault)

isRegisterBuiltins

public boolean isRegisterBuiltins()

setRegisterBuiltins

public void setRegisterBuiltins(boolean registerBuiltins)

getInjectorFactory

public InjectorFactory getInjectorFactory()

setInjectorFactory

public void setInjectorFactory(InjectorFactory injectorFactory)

getClientExecutionInterceptorRegistry

public InterceptorRegistry<ClientExecutionInterceptor> getClientExecutionInterceptorRegistry()

getServerReaderInterceptorRegistry

public ReaderInterceptorRegistry getServerReaderInterceptorRegistry()

getServerWriterInterceptorRegistry

public WriterInterceptorRegistry getServerWriterInterceptorRegistry()

getContainerRequestFilterRegistry

public ContainerRequestFilterRegistry getContainerRequestFilterRegistry()

getContainerResponseFilterRegistry

public ContainerResponseFilterRegistry getContainerResponseFilterRegistry()

getClientReaderInterceptorRegistry

public ReaderInterceptorRegistry getClientReaderInterceptorRegistry()

getClientWriterInterceptorRegistry

public WriterInterceptorRegistry getClientWriterInterceptorRegistry()

getClientRequestFilters

public JaxrsInterceptorRegistry<ClientRequestFilter> getClientRequestFilters()

getClientResponseFilters

public JaxrsInterceptorRegistry<ClientResponseFilter> getClientResponseFilters()

isBuiltinsRegistered

public boolean isBuiltinsRegistered()

setBuiltinsRegistered

public void setBuiltinsRegistered(boolean builtinsRegistered)

createUriBuilder

public UriBuilder createUriBuilder()
Description copied from class: RuntimeDelegate
Create a new instance of a UriBuilder.

Specified by:
createUriBuilder in class RuntimeDelegate
Returns:
new UriBuilder instance.
See Also:
UriBuilder

createResponseBuilder

public Response.ResponseBuilder createResponseBuilder()
Description copied from class: RuntimeDelegate
Create a new instance of a Response.ResponseBuilder.

Specified by:
createResponseBuilder in class RuntimeDelegate
Returns:
new ResponseBuilder instance.
See Also:
Response.ResponseBuilder

createVariantListBuilder

public Variant.VariantListBuilder createVariantListBuilder()
Description copied from class: RuntimeDelegate
Create a new instance of a Variant.VariantListBuilder.

Specified by:
createVariantListBuilder in class RuntimeDelegate
Returns:
new VariantListBuilder instance.
See Also:
Variant.VariantListBuilder

createHeaderDelegate

public <T> RuntimeDelegate.HeaderDelegate<T> createHeaderDelegate(Class<T> tClass)
Description copied from class: RuntimeDelegate
Obtain an instance of a RuntimeDelegate.HeaderDelegate for the supplied class. An implementation is required to support the following values for type: CacheControl, Cookie, EntityTag, Link, NewCookie, MediaType and java.util.Date.

Specified by:
createHeaderDelegate in class RuntimeDelegate
Type Parameters:
T - header type.
Parameters:
tClass - the class of the header.
Returns:
an instance of HeaderDelegate for the supplied type.
See Also:
RuntimeDelegate.HeaderDelegate

getHeaderDelegates

protected Map<Class<?>,RuntimeDelegate.HeaderDelegate> getHeaderDelegates()

addHeaderDelegate

public void addHeaderDelegate(Class clazz,
                              RuntimeDelegate.HeaderDelegate header)

addMessageBodyReader

protected void addMessageBodyReader(Class<? extends MessageBodyReader> provider,
                                    boolean isBuiltin)

addMessageBodyReader

protected void addMessageBodyReader(MessageBodyReader provider)

addMessageBodyReader

protected void addMessageBodyReader(MessageBodyReader provider,
                                    boolean isBuiltin)

addMessageBodyReader

protected void addMessageBodyReader(MessageBodyReader provider,
                                    Class providerClass,
                                    boolean isBuiltin)
Specify the provider class. This is there jsut in case the provider instance is a proxy. Proxies tend to lose generic type information

Parameters:
provider -
providerClass -
isBuiltin -

addMessageBodyWriter

protected void addMessageBodyWriter(Class<? extends MessageBodyWriter> provider,
                                    boolean isBuiltin)

addMessageBodyWriter

protected void addMessageBodyWriter(MessageBodyWriter provider)

addMessageBodyWriter

protected void addMessageBodyWriter(MessageBodyWriter provider,
                                    Class providerClass,
                                    boolean isBuiltin)
Specify the provider class. This is there jsut in case the provider instance is a proxy. Proxies tend to lose generic type information

Parameters:
provider -
providerClass -
isBuiltin -

getMessageBodyReader

public <T> MessageBodyReader<T> getMessageBodyReader(Class<T> type,
                                                     Type genericType,
                                                     Annotation[] annotations,
                                                     MediaType mediaType)
Description copied from interface: Providers
Get a message body reader that matches a set of criteria. The set of readers is first filtered by comparing the supplied value of mediaType with the value of each reader's Consumes, ensuring the supplied value of type is assignable to the generic type of the reader, and eliminating those that do not match. The list of matching readers is then ordered with those with the best matching values of Consumes (x/y > x/* > */*) sorted first. Finally, the MessageBodyReader.isReadable(Class, Type, Annotation[], MediaType) method is called on each reader in order using the supplied criteria and the first reader that returns true is selected and returned.

Specified by:
getMessageBodyReader in interface Providers
Type Parameters:
T - type of the the object that is to be read.
Parameters:
type - the class of the object that is to be read.
genericType - the type of object to be produced. E.g. if the message body is to be converted into a method parameter, this will be the formal type of the method parameter as returned by Class.getGenericParameterTypes.
annotations - an array of the annotations on the declaration of the artifact that will be initialized with the produced instance. E.g. if the message body is to be converted into a method parameter, this will be the annotations on that parameter returned by Class.getParameterAnnotations.
mediaType - the media type of the data that will be read.
Returns:
a MessageBodyReader that matches the supplied criteria or null if none is found.

addExceptionMapper

protected void addExceptionMapper(Class<? extends ExceptionMapper> providerClass)

addExceptionMapper

protected void addExceptionMapper(ExceptionMapper provider)

addExceptionMapper

protected void addExceptionMapper(ExceptionMapper provider,
                                  Class providerClass)

addExceptionMapper

protected void addExceptionMapper(ExceptionMapper provider,
                                  Type exceptionType)

addClientExceptionMapper

public void addClientExceptionMapper(Class<? extends ClientExceptionMapper<?>> providerClass)

addClientExceptionMapper

public void addClientExceptionMapper(ClientExceptionMapper<?> provider)

addClientExceptionMapper

public void addClientExceptionMapper(ClientExceptionMapper<?> provider,
                                     Class<?> providerClass)

addClientExceptionMapper

public void addClientExceptionMapper(ClientExceptionMapper<?> provider,
                                     Type exceptionType)

addClientErrorInterceptor

public void addClientErrorInterceptor(ClientErrorInterceptor handler)
Add a ClientErrorInterceptor to this provider factory instance. Duplicate handlers are ignored. (For Client Proxy API only)


getClientErrorInterceptors

public List<ClientErrorInterceptor> getClientErrorInterceptors()
Return the list of currently registered ClientErrorInterceptor instances.


addContextResolver

protected void addContextResolver(Class<? extends ContextResolver> resolver,
                                  boolean builtin)

addContextResolver

protected void addContextResolver(ContextResolver provider)

addContextResolver

protected void addContextResolver(ContextResolver provider,
                                  boolean builtin)

addContextResolver

protected void addContextResolver(ContextResolver provider,
                                  Class providerClass,
                                  boolean builtin)

addContextResolver

protected void addContextResolver(ContextResolver provider,
                                  Type typeParameter,
                                  Class providerClass,
                                  boolean builtin)

addStringConverter

protected void addStringConverter(Class<? extends StringConverter> resolver)

addStringConverter

protected void addStringConverter(StringConverter provider)

addStringConverter

protected void addStringConverter(StringConverter provider,
                                  Class providerClass)

addStringConverter

protected void addStringConverter(StringConverter provider,
                                  Type typeParameter)

addStringParameterUnmarshaller

public void addStringParameterUnmarshaller(Class<? extends StringParameterUnmarshaller> provider)

getContextResolvers

public List<ContextResolver> getContextResolvers(Class<?> clazz,
                                                 MediaType type)

getParamConverter

public ParamConverter getParamConverter(Class clazz,
                                        Type genericType,
                                        Annotation[] annotations)

getStringConverter

public StringConverter getStringConverter(Class<?> clazz)

createStringParameterUnmarshaller

public <T> StringParameterUnmarshaller<T> createStringParameterUnmarshaller(Class<T> clazz)

registerProvider

public void registerProvider(Class provider)

toString

public String toString(Object object,
                       Class clazz,
                       Type genericType,
                       Annotation[] annotations)
Convert an object to a string. First try StringConverter then, object.ToString()

Parameters:
object -
Returns:

toHeaderString

public String toHeaderString(Object object)
Description copied from interface: HeaderValueProcessor
Convert an object to a header string. First try StringConverter, then HeaderDelegate, then object.toString()

Specified by:
toHeaderString in interface HeaderValueProcessor
Returns:

registerProvider

public void registerProvider(Class provider,
                             boolean isBuiltin)
Register a @Provider class. Can be a MessageBodyReader/Writer or ExceptionMapper.

Parameters:
provider -

isA

protected boolean isA(Class target,
                      Class type,
                      Class<?>[] contracts)

isA

protected boolean isA(Object target,
                      Class type,
                      Class<?>[] contracts)

registerProvider

public void registerProvider(Class provider,
                             boolean isBuiltin,
                             int bindingPriority,
                             Class<?>... contracts)

registerProviderInstance

public void registerProviderInstance(Object provider)
Register a @Provider object. Can be a MessageBodyReader/Writer or ExceptionMapper.

Parameters:
provider -

registerProviderInstance

public void registerProviderInstance(Object provider,
                                     int bindingPriority,
                                     Class<?>... contracts)

getExceptionMapper

public <T extends Throwable> ExceptionMapper<T> getExceptionMapper(Class<T> type)
Description copied from interface: Providers
Get an exception mapping provider for a particular class of exception. Returns the provider whose generic type is the nearest superclass of type.

Specified by:
getExceptionMapper in interface Providers
Type Parameters:
T - type of the exception handled by the exception mapping provider.
Parameters:
type - the class of exception.
Returns:
an ExceptionMapper for the supplied type or null if none is found.

getClientExceptionMapper

public <T extends Throwable> ClientExceptionMapper<T> getClientExceptionMapper(Class<T> type)

getMessageBodyWriter

public <T> MessageBodyWriter<T> getMessageBodyWriter(Class<T> type,
                                                     Type genericType,
                                                     Annotation[] annotations,
                                                     MediaType mediaType)
Description copied from interface: Providers
Get a message body writer that matches a set of criteria. The set of writers is first filtered by comparing the supplied value of mediaType with the value of each writer's Produces, ensuring the supplied value of type is assignable to the generic type of the reader, and eliminating those that do not match. The list of matching writers is then ordered with those with the best matching values of Produces (x/y > x/* > */*) sorted first. Finally, the MessageBodyWriter.isWriteable(Class, Type, Annotation[], MediaType) method is called on each writer in order using the supplied criteria and the first writer that returns true is selected and returned.

Specified by:
getMessageBodyWriter in interface Providers
Type Parameters:
T - type of the object that is to be written.
Parameters:
type - the class of the object that is to be written.
genericType - the type of object to be written. E.g. if the message body is to be produced from a field, this will be the declared type of the field as returned by Field.getGenericType.
annotations - an array of the annotations on the declaration of the artifact that will be written. E.g. if the message body is to be produced from a field, this will be the annotations on that field returned by Field.getDeclaredAnnotations.
mediaType - the media type of the data that will be written.
Returns:
a MessageBodyReader that matches the supplied criteria or null if none is found.

createEndpoint

public <T> T createEndpoint(Application applicationConfig,
                            Class<T> endpointType)
                 throws IllegalArgumentException,
                        UnsupportedOperationException
this is a spec method that is unsupported. it is an optional method anyways.

Specified by:
createEndpoint in class RuntimeDelegate
Type Parameters:
T - endpoint type.
Parameters:
applicationConfig -
endpointType -
Returns:
Throws:
IllegalArgumentException
UnsupportedOperationException

getContextResolver

public <T> ContextResolver<T> getContextResolver(Class<T> contextType,
                                                 MediaType mediaType)
Description copied from interface: Providers
Get a context resolver for a particular type of context and media type. The set of resolvers is first filtered by comparing the supplied value of mediaType with the value of each resolver's Produces, ensuring the generic type of the context resolver is assignable to the supplied value of contextType, and eliminating those that do not match. If only one resolver matches the criteria then it is returned. If more than one resolver matches then the list of matching resolvers is ordered with those with the best matching values of Produces (x/y > x/* > */*) sorted first. A proxy is returned that delegates calls to ContextResolver.getContext(java.lang.Class) to each matching context resolver in order and returns the first non-null value it obtains or null if all matching context resolvers return null.

Specified by:
getContextResolver in interface Providers
Type Parameters:
T - type of the context.
Parameters:
contextType - the class of context desired.
mediaType - the media type of data for which a context is required.
Returns:
a matching context resolver instance or null if no matching context providers are found.

createProviderInstance

public <T> T createProviderInstance(Class<? extends T> clazz)
Create an instance of a class using provider allocation rules of the specification as well as the InjectorFactory only does constructor injection

Type Parameters:
T -
Parameters:
clazz -
Returns:

createConstructorInjector

public <T> ConstructorInjector createConstructorInjector(Class<? extends T> clazz)

injectedInstance

public <T> T injectedInstance(Class<? extends T> clazz)
Property and constructor injection using the InjectorFactory

Type Parameters:
T -
Parameters:
clazz -
Returns:

injectProperties

public void injectProperties(Class declaring,
                             Object obj)

injectProperties

public void injectProperties(Object obj)

getMutableProperties

public Map<String,Object> getMutableProperties()

getProperties

public Map<String,Object> getProperties()
Description copied from interface: Configurable
Get the immutable bag of configuration properties.

Specified by:
getProperties in interface Configurable
Returns:
the immutable view of configuration properties.

getProperty

public Object getProperty(String name)
Description copied from interface: Configurable
Get the value for the property with a given name.

Specified by:
getProperty in interface Configurable
Parameters:
name - property name.
Returns:
the property value for the specified property name or null if the property with such name is not configured.

setProperties

public Configurable setProperties(Map<String,?> properties)
Description copied from interface: Configurable
Set new configuration properties replacing all previously set properties.

Specified by:
setProperties in interface Configurable
Parameters:
properties - new set of configuration properties. The content of the map will replace any existing properties set on the configurable instance.
Returns:
the updated configurable instance.

setProperty

public Configurable setProperty(String name,
                                Object value)
Description copied from interface: Configurable
Set the new configuration property, if already set, the existing value of the property will be updated. Setting a null value into a property effectively removes the property from the property bag.

Specified by:
setProperty in interface Configurable
Parameters:
name - property name.
value - (new) property value. null value removes the property with the given name.
Returns:
the updated configurable instance.

getEnabledFeatures

public Collection<Feature> getEnabledFeatures()
Description copied from interface: Configurable
Get the immutable set of features that have been successfully configured within the current configurable context.

The returned set contains the features that have already been successfully configured in this configuration context.

Note that a registered features may not be immediately available in the collection of enabled features returned this method. Implementations MAY decide to defer the feature instantiation and/or configuration to a later point in time, yet the order in which features have been registered MUST be preserved during the feature configuration phase. This method is expected to provide up-to-date information only when invoked from a feature configuration method or once the configured instance has been fully initialized.

Specified by:
getEnabledFeatures in interface Configurable
Returns:
the enabled feature set. The returned value shall never be null.

getFeatureClasses

public Set<Class<?>> getFeatureClasses()
Description copied from interface: Configurable
Get the immutable set of registered feature classes to be instantiated, injected and Feature.configure(Configurable) configured} in the scope of the configured instance.

Specified by:
getFeatureClasses in interface Configurable
Returns:
the immutable set of registered feature classes. The returned value shall never be null.
See Also:
Configurable.getFeatureInstances()

getFeatureInstances

public Set<Object> getFeatureInstances()
Description copied from interface: Configurable
Get the immutable set of registered feature instances to be Feature.configure(Configurable) configured} in the scope of the configured instance.

When the configured instance is initialized the set of feature instances will be combined with and take precedence over the instantiated registered feature classes.

Specified by:
getFeatureInstances in interface Configurable
Returns:
the immutable set of registered feature instances. The returned value shall never be null.
See Also:
Configurable.getFeatureClasses()

register

public Configurable register(Class<?> providerClass)
Description copied from interface: Configurable
Register a provider or a feature class to be instantiated and used in the scope of the configured instance. The registered class is registered as a provider of all the recognized JAX-RS or implementation-specific extension contracts including Feature contract.

As opposed to the instances registered via Configurable.register(Object) method, classes registered using this method are instantiated and properly injected by the JAX-RS implementation provider. In case of a conflict between a registered feature and/or provider instance and instantiated registered class, the registered instance takes precedence and the registered class will not be instantiated in such case.

Specified by:
register in interface Configurable
Parameters:
providerClass - provider class to be instantiated and used in the scope of the configured instance.
Returns:
the updated configurable instance.

register

public Configurable register(Class<?> providerClass,
                             int bindingPriority)
Description copied from interface: Configurable
Register a provider or a feature class to be instantiated and used in the scope of the configured instance.

This registration method provides same functionality as Configurable.register(Class) except that any provider binding priority specified on the provider class using @BindingPriority annotation is overridden with the supplied bindingPriority value.

Note that in case the binding priority is not applicable to any particular provider contract registered for the provider class, the supplied bindingPriority value will be ignored for that contract.

Specified by:
register in interface Configurable
Parameters:
providerClass - provider class to be instantiated and used in the scope of the configured instance.
bindingPriority - the overriding binding priority for the registered contract(s).
Returns:
the updated configurable instance.

register

public <T> Configurable register(Class<T> providerClass,
                                 Class<? super T>... contracts)
Description copied from interface: Configurable
Register a provider or a feature class to be instantiated and used in the scope of the configured instance.

This registration method provides same functionality as Configurable.register(Class) except the provider class is only registered as a provider of the listed contracts. Note that in case the Feature interface is not listed explicitly, the provider class is not recognized as a JAX-RS feature.

Specified by:
register in interface Configurable
Parameters:
providerClass - provider class to be instantiated and used in the scope of the configured instance.
contracts - the specific set of contracts implemented by the provider class for which the provider should be registered. If omitted, the provider class will be registered as a provider of all recognized contracts implemented by the provider class.
Returns:
the updated configurable instance.

register

public <T> Configurable register(Class<T> providerClass,
                                 int bindingPriority,
                                 Class<? super T>... contracts)
Description copied from interface: Configurable
Register a provider or a feature class to be instantiated and used in the scope of the configured instance.

This registration method provides same functionality as Configurable.register(Class, Class[]) except that any provider binding priority specified on the provider class using @BindingPriority annotation is overridden with the supplied bindingPriority value.

Note that in case the binding priority is not applicable to any particular provider contract registered for the provider class, the supplied bindingPriority value will be ignored for that contract.

Specified by:
register in interface Configurable
Parameters:
providerClass - provider class to be instantiated and used in the scope of the configured instance.
bindingPriority - the overriding binding priority for the registered contract(s).
contracts - the specific set of contracts implemented by the provider class for which the provider should be registered. If omitted, the provider class will be registered as a provider of all recognized contracts implemented by the provider class.
Returns:
the updated configurable instance.

register

public Configurable register(Object provider)
Description copied from interface: Configurable
Register a provider or a feature ("singleton") instance to be used in the scope of the configured instance. The registered instance is registered as a provider of all the recognized JAX-RS or implementation-specific extension contracts including Feature contract.

As opposed to the instances registered via Configurable.register(Object) method, classes registered using this method used "as is", i.e. are not managed or injected by the JAX-RS implementation provider. In case of a conflict between a registered feature and/or provider instance and instantiated registered class, the registered instance takes precedence and the registered class will not be instantiated in such case.

Specified by:
register in interface Configurable
Parameters:
provider - a provider instance to be registered in the scope of the configured instance.
Returns:
the updated configurable instance.

register

public Configurable register(Object provider,
                             int bindingPriority)
Description copied from interface: Configurable
Register a provider or a feature ("singleton") instance to be used in the scope of the configured instance.

This registration method provides same functionality as Configurable.register(Object) except that any provider binding priority specified on the provider using @BindingPriority annotation is overridden with the supplied bindingPriority value.

Note that in case the binding priority is not applicable to any particular provider contract registered for the provider, the supplied bindingPriority value will be ignored for that contract.

Specified by:
register in interface Configurable
Parameters:
provider - provider class to be instantiated and used in the scope of the configured instance.
bindingPriority - the overriding binding priority for the registered contract(s).
Returns:
the updated configurable instance.

register

public <T> Configurable register(Object provider,
                                 Class<? super T>... contracts)
Description copied from interface: Configurable
Register a provider or a feature ("singleton") instance to be used in the scope of the configured instance.

This registration method provides same functionality as Configurable.register(Object) except the provider is only registered as a provider of the listed contracts. Note that in case the Feature interface is not listed explicitly, the provider is not recognized as a JAX-RS feature.

Specified by:
register in interface Configurable
Parameters:
provider - a provider instance to be registered in the scope of the configured instance.
contracts - the specific set of contracts implemented by the provider class for which the provider should be registered. If omitted, the provider class will be registered as a provider of all recognized contracts implemented by the provider class.
Returns:
the updated configurable instance.

register

public <T> Configurable register(Object provider,
                                 int bindingPriority,
                                 Class<? super T>... contracts)
Description copied from interface: Configurable
Register a provider or a feature ("singleton") instance to be used in the scope of the configured instance.

This registration method provides same functionality as Configurable.register(Object, Class[]) except that any provider binding priority specified on the provider using @BindingPriority annotation is overridden with the supplied bindingPriority value.

Note that in case the binding priority is not applicable to any particular provider contract registered for the provider, the supplied bindingPriority value will be ignored for that contract.

Specified by:
register in interface Configurable
Parameters:
provider - a provider instance to be registered in the scope of the configured instance.
bindingPriority - the overriding binding priority for the registered contract(s).
contracts - the specific set of contracts implemented by the provider class for which the provider should be registered. If omitted, the provider class will be registered as a provider of all recognized contracts implemented by the provider class.
Returns:
the updated configurable instance.


Copyright © 2013. All Rights Reserved.