Package org.apache.cxf.jaxrs.provider
Class ProviderFactory
- java.lang.Object
-
- org.apache.cxf.jaxrs.provider.ProviderFactory
-
- Direct Known Subclasses:
ServerProviderFactory
public abstract class ProviderFactory extends Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
ProviderFactory.AbstractPriorityComparator
protected static class
ProviderFactory.BindingPriorityComparator
static class
ProviderFactory.ClassComparator
protected static class
ProviderFactory.NameKey
protected static class
ProviderFactory.NameKeyComparator
protected static class
ProviderFactory.NameKeyMap<T>
static class
ProviderFactory.ProviderInfoClassComparator
-
Field Summary
Fields Modifier and Type Field Description static String
ACTIVE_JAXRS_PROVIDER_KEY
protected static String
CLIENT_FACTORY_NAME
static String
DEFAULT_FILTER_NAME_BINDING
protected static String
IGNORE_TYPE_VARIABLES
static String
PROVIDER_SELECTION_PROPERTY_CHANGED
protected Map<ProviderFactory.NameKey,ProviderInfo<javax.ws.rs.ext.ReaderInterceptor>>
readerInterceptors
protected static String
SERVER_FACTORY_NAME
protected Map<ProviderFactory.NameKey,ProviderInfo<javax.ws.rs.ext.WriterInterceptor>>
writerInterceptors
-
Constructor Summary
Constructors Modifier Constructor Description protected
ProviderFactory(org.apache.cxf.Bus bus)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
addProviderToList(List<?> list, ProviderInfo<?> provider)
void
clearProviders()
void
clearThreadLocalProxies()
protected static int
compareClasses(Class<?> expectedCls, Object o1, Object o2)
protected static int
compareClasses(Object o1, Object o2)
protected static int
compareCustomStatus(ProviderInfo<?> p1, ProviderInfo<?> p2)
protected static boolean
constrainedTo(Class<?> providerCls, javax.ws.rs.RuntimeType type)
Checks the presence ofConstrainedTo
annotation and, if present, applicability to the runtime type.<T> ContextProvider<T>
createContextProvider(Type contextType, org.apache.cxf.message.Message m)
<T> javax.ws.rs.ext.ContextResolver<T>
createContextResolver(Type contextType, org.apache.cxf.message.Message m)
<T> javax.ws.rs.ext.ContextResolver<T>
createContextResolver(Type contextType, org.apache.cxf.message.Message m, javax.ws.rs.core.MediaType type)
<T> javax.ws.rs.ext.MessageBodyReader<T>
createMessageBodyReader(Class<T> type, Type genericType, Annotation[] annotations, javax.ws.rs.core.MediaType mediaType, org.apache.cxf.message.Message m)
<T> List<javax.ws.rs.ext.ReaderInterceptor>
createMessageBodyReaderInterceptor(Class<T> bodyType, Type parameterType, Annotation[] parameterAnnotations, javax.ws.rs.core.MediaType mediaType, org.apache.cxf.message.Message m, boolean checkMbrNow, Set<String> names)
<T> javax.ws.rs.ext.MessageBodyWriter<T>
createMessageBodyWriter(Class<T> type, Type genericType, Annotation[] annotations, javax.ws.rs.core.MediaType mediaType, org.apache.cxf.message.Message m)
<T> List<javax.ws.rs.ext.WriterInterceptor>
createMessageBodyWriterInterceptor(Class<T> bodyType, Type parameterType, Annotation[] parameterAnnotations, javax.ws.rs.core.MediaType mediaType, org.apache.cxf.message.Message m, Set<String> names)
<T> javax.ws.rs.ext.ParamConverter<T>
createParameterHandler(Class<T> paramType, Type genericType, Annotation[] anns, org.apache.cxf.message.Message m)
protected static Object
createProvider(String className, org.apache.cxf.Bus bus)
static ProviderInfo<? extends Object>
createProviderFromConstructor(Constructor<?> c, Map<Class<?>,Object> values, org.apache.cxf.Bus theBus, boolean checkContexts, boolean custom)
protected static boolean
filterContractSupported(ProviderInfo<?> provider, Class<?> providerCls, Class<?> contract)
protected static <T> List<ProviderInfo<T>>
getBoundFilters(Map<ProviderFactory.NameKey,ProviderInfo<T>> boundFilters, Set<String> names)
org.apache.cxf.Bus
getBus()
abstract javax.ws.rs.core.Configuration
getConfiguration(org.apache.cxf.message.Message message)
List<ProviderInfo<javax.ws.rs.ext.ContextResolver<?>>>
getContextResolvers()
javax.ws.rs.ext.MessageBodyWriter<?>
getDefaultJaxbWriter()
protected static Set<String>
getFilterNameBindings(org.apache.cxf.Bus bus, Object provider)
protected static Set<String>
getFilterNameBindings(ProviderInfo<?> p)
protected static int
getFilterPriority(ProviderInfo<?> p, Class<?> providerCls)
static ProviderFactory
getInstance(org.apache.cxf.message.Message m)
protected <T> boolean
handleMapper(ProviderInfo<T> em, Class<?> expectedType, org.apache.cxf.message.Message m, Class<?> providerClass, boolean injectContext)
protected <T> boolean
handleMapper(ProviderInfo<T> em, Class<?> expectedType, org.apache.cxf.message.Message m, Class<?> providerClass, Class<?> commonBaseClass, boolean injectContext)
protected static ProviderCache
initCache(org.apache.cxf.Bus theBus)
protected static void
initFactory(ProviderFactory factory)
void
initProviders(List<ClassResourceInfo> cris)
protected void
injectContextProxies(Collection<?>... providerLists)
protected void
injectContextProxiesIntoProvider(ProviderInfo<?> pi)
protected void
injectContextValues(ProviderInfo<?> pi, org.apache.cxf.message.Message m)
boolean
isParamConverterContextsAvailable()
protected static <T> void
mapInterceptorFilters(Map<ProviderFactory.NameKey,ProviderInfo<T>> map, List<ProviderInfo<T>> filters, Class<?> providerCls, boolean ascending)
protected List<ProviderInfo<? extends Object>>
prepareProviders(boolean custom, boolean busGlobal, Object[] providers, ProviderInfo<javax.ws.rs.core.Application> application)
void
registerUserProvider(Object provider)
void
setBus(org.apache.cxf.Bus bus)
protected void
setBusProviders()
protected void
setCommonProviders(List<ProviderInfo<? extends Object>> theProviders, javax.ws.rs.RuntimeType type)
void
setProviderComparator(Comparator<?> providerComparator)
protected abstract void
setProviders(boolean custom, boolean busGlobal, Object... providers)
void
setSchemaLocations(List<String> schemas)
void
setUserProviders(List<?> userProviders)
Use for injection of entityProviders
-
-
-
Field Detail
-
DEFAULT_FILTER_NAME_BINDING
public static final String DEFAULT_FILTER_NAME_BINDING
- See Also:
- Constant Field Values
-
PROVIDER_SELECTION_PROPERTY_CHANGED
public static final String PROVIDER_SELECTION_PROPERTY_CHANGED
- See Also:
- Constant Field Values
-
ACTIVE_JAXRS_PROVIDER_KEY
public static final String ACTIVE_JAXRS_PROVIDER_KEY
- See Also:
- Constant Field Values
-
SERVER_FACTORY_NAME
protected static final String SERVER_FACTORY_NAME
- See Also:
- Constant Field Values
-
CLIENT_FACTORY_NAME
protected static final String CLIENT_FACTORY_NAME
- See Also:
- Constant Field Values
-
IGNORE_TYPE_VARIABLES
protected static final String IGNORE_TYPE_VARIABLES
- See Also:
- Constant Field Values
-
readerInterceptors
protected Map<ProviderFactory.NameKey,ProviderInfo<javax.ws.rs.ext.ReaderInterceptor>> readerInterceptors
-
writerInterceptors
protected Map<ProviderFactory.NameKey,ProviderInfo<javax.ws.rs.ext.WriterInterceptor>> writerInterceptors
-
-
Method Detail
-
getBus
public org.apache.cxf.Bus getBus()
-
initCache
protected static ProviderCache initCache(org.apache.cxf.Bus theBus)
-
initFactory
protected static void initFactory(ProviderFactory factory)
-
getConfiguration
public abstract javax.ws.rs.core.Configuration getConfiguration(org.apache.cxf.message.Message message)
-
createContextResolver
public <T> javax.ws.rs.ext.ContextResolver<T> createContextResolver(Type contextType, org.apache.cxf.message.Message m)
-
createContextResolver
public <T> javax.ws.rs.ext.ContextResolver<T> createContextResolver(Type contextType, org.apache.cxf.message.Message m, javax.ws.rs.core.MediaType type)
-
createContextProvider
public <T> ContextProvider<T> createContextProvider(Type contextType, org.apache.cxf.message.Message m)
-
createParameterHandler
public <T> javax.ws.rs.ext.ParamConverter<T> createParameterHandler(Class<T> paramType, Type genericType, Annotation[] anns, org.apache.cxf.message.Message m)
-
handleMapper
protected <T> boolean handleMapper(ProviderInfo<T> em, Class<?> expectedType, org.apache.cxf.message.Message m, Class<?> providerClass, boolean injectContext)
-
handleMapper
protected <T> boolean handleMapper(ProviderInfo<T> em, Class<?> expectedType, org.apache.cxf.message.Message m, Class<?> providerClass, Class<?> commonBaseClass, boolean injectContext)
-
createMessageBodyReaderInterceptor
public <T> List<javax.ws.rs.ext.ReaderInterceptor> createMessageBodyReaderInterceptor(Class<T> bodyType, Type parameterType, Annotation[] parameterAnnotations, javax.ws.rs.core.MediaType mediaType, org.apache.cxf.message.Message m, boolean checkMbrNow, Set<String> names)
-
createMessageBodyWriterInterceptor
public <T> List<javax.ws.rs.ext.WriterInterceptor> createMessageBodyWriterInterceptor(Class<T> bodyType, Type parameterType, Annotation[] parameterAnnotations, javax.ws.rs.core.MediaType mediaType, org.apache.cxf.message.Message m, Set<String> names)
-
createMessageBodyReader
public <T> javax.ws.rs.ext.MessageBodyReader<T> createMessageBodyReader(Class<T> type, Type genericType, Annotation[] annotations, javax.ws.rs.core.MediaType mediaType, org.apache.cxf.message.Message m)
-
createMessageBodyWriter
public <T> javax.ws.rs.ext.MessageBodyWriter<T> createMessageBodyWriter(Class<T> type, Type genericType, Annotation[] annotations, javax.ws.rs.core.MediaType mediaType, org.apache.cxf.message.Message m)
-
setBusProviders
protected void setBusProviders()
-
setProviders
protected abstract void setProviders(boolean custom, boolean busGlobal, Object... providers)
-
setCommonProviders
protected void setCommonProviders(List<ProviderInfo<? extends Object>> theProviders, javax.ws.rs.RuntimeType type)
-
isParamConverterContextsAvailable
public boolean isParamConverterContextsAvailable()
-
injectContextValues
protected void injectContextValues(ProviderInfo<?> pi, org.apache.cxf.message.Message m)
-
addProviderToList
protected void addProviderToList(List<?> list, ProviderInfo<?> provider)
-
injectContextProxies
protected void injectContextProxies(Collection<?>... providerLists)
-
injectContextProxiesIntoProvider
protected void injectContextProxiesIntoProvider(ProviderInfo<?> pi)
-
getContextResolvers
public List<ProviderInfo<javax.ws.rs.ext.ContextResolver<?>>> getContextResolvers()
-
registerUserProvider
public void registerUserProvider(Object provider)
-
setUserProviders
public void setUserProviders(List<?> userProviders)
Use for injection of entityProviders- Parameters:
userProviders
- the userProviders to set
-
compareCustomStatus
protected static int compareCustomStatus(ProviderInfo<?> p1, ProviderInfo<?> p2)
-
clearThreadLocalProxies
public void clearThreadLocalProxies()
-
clearProviders
public void clearProviders()
-
setBus
public void setBus(org.apache.cxf.Bus bus)
-
getBoundFilters
protected static <T> List<ProviderInfo<T>> getBoundFilters(Map<ProviderFactory.NameKey,ProviderInfo<T>> boundFilters, Set<String> names)
-
initProviders
public void initProviders(List<ClassResourceInfo> cris)
-
getInstance
public static ProviderFactory getInstance(org.apache.cxf.message.Message m)
-
createProviderFromConstructor
public static ProviderInfo<? extends Object> createProviderFromConstructor(Constructor<?> c, Map<Class<?>,Object> values, org.apache.cxf.Bus theBus, boolean checkContexts, boolean custom)
-
mapInterceptorFilters
protected static <T> void mapInterceptorFilters(Map<ProviderFactory.NameKey,ProviderInfo<T>> map, List<ProviderInfo<T>> filters, Class<?> providerCls, boolean ascending)
-
getFilterNameBindings
protected static Set<String> getFilterNameBindings(ProviderInfo<?> p)
-
getFilterNameBindings
protected static Set<String> getFilterNameBindings(org.apache.cxf.Bus bus, Object provider)
-
getFilterPriority
protected static int getFilterPriority(ProviderInfo<?> p, Class<?> providerCls)
-
filterContractSupported
protected static boolean filterContractSupported(ProviderInfo<?> provider, Class<?> providerCls, Class<?> contract)
-
prepareProviders
protected List<ProviderInfo<? extends Object>> prepareProviders(boolean custom, boolean busGlobal, Object[] providers, ProviderInfo<javax.ws.rs.core.Application> application)
-
getDefaultJaxbWriter
public javax.ws.rs.ext.MessageBodyWriter<?> getDefaultJaxbWriter()
-
setProviderComparator
public void setProviderComparator(Comparator<?> providerComparator)
-
constrainedTo
protected static boolean constrainedTo(Class<?> providerCls, javax.ws.rs.RuntimeType type)
Checks the presence ofConstrainedTo
annotation and, if present, applicability to the runtime type.- Parameters:
providerCls
- provider classtype
- runtime type- Returns:
- "true" if provider could be used with runtime type, "false" otherwise
-
-