Package org.apache.cxf.jaxrs.provider
Class ProviderFactory
- java.lang.Object
-
- org.apache.cxf.jaxrs.provider.ProviderFactory
-
- Direct Known Subclasses:
ClientProviderFactory,MicroProfileClientProviderFactory,ServerProviderFactory
public abstract class ProviderFactory extends Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classProviderFactory.AbstractPriorityComparatorprotected static classProviderFactory.BindingPriorityComparatorstatic classProviderFactory.ClassComparatorprotected static classProviderFactory.NameKeyprotected static classProviderFactory.NameKeyComparatorprotected static classProviderFactory.NameKeyMap<T>static classProviderFactory.ProviderInfoClassComparator
-
Field Summary
Fields Modifier and Type Field Description static StringACTIVE_JAXRS_PROVIDER_KEYprotected static StringCLIENT_FACTORY_NAMEstatic StringDEFAULT_FILTER_NAME_BINDINGprotected static StringIGNORE_TYPE_VARIABLESstatic StringPROVIDER_SELECTION_PROPERTY_CHANGEDprotected Map<ProviderFactory.NameKey,ProviderInfo<javax.ws.rs.ext.ReaderInterceptor>>readerInterceptorsprotected static StringSERVER_FACTORY_NAMEprotected Map<ProviderFactory.NameKey,ProviderInfo<javax.ws.rs.ext.WriterInterceptor>>writerInterceptors
-
Constructor Summary
Constructors Modifier Constructor Description protectedProviderFactory(Bus bus)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected voidaddProviderToList(List<?> list, ProviderInfo<?> provider)voidclearProviders()voidclearThreadLocalProxies()protected static intcompareClasses(Class<?> expectedCls, Object o1, Object o2)protected static intcompareClasses(Object o1, Object o2)protected static intcompareCustomStatus(ProviderInfo<?> p1, ProviderInfo<?> p2)protected static booleanconstrainedTo(Class<?> providerCls, javax.ws.rs.RuntimeType type)Checks the presence ofConstrainedToannotation and, if present, applicability to the runtime type.<T> ContextProvider<T>createContextProvider(Type contextType, Message m)<T> javax.ws.rs.ext.ContextResolver<T>createContextResolver(Type contextType, Message m)<T> javax.ws.rs.ext.ContextResolver<T>createContextResolver(Type contextType, 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, Message m)<T> List<javax.ws.rs.ext.ReaderInterceptor>createMessageBodyReaderInterceptor(Class<T> bodyType, Type parameterType, Annotation[] parameterAnnotations, javax.ws.rs.core.MediaType mediaType, 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, Message m)<T> List<javax.ws.rs.ext.WriterInterceptor>createMessageBodyWriterInterceptor(Class<T> bodyType, Type parameterType, Annotation[] parameterAnnotations, javax.ws.rs.core.MediaType mediaType, Message m, Set<String> names)<T> javax.ws.rs.ext.ParamConverter<T>createParameterHandler(Class<T> paramType, Type genericType, Annotation[] anns, Message m)protected static ObjectcreateProvider(String className, Bus bus)static ProviderInfo<? extends Object>createProviderFromConstructor(Constructor<?> c, Map<Class<?>,Object> values, Bus theBus, boolean checkContexts, boolean custom)protected static booleanfilterContractSupported(ProviderInfo<?> provider, Class<?> providerCls, Class<?> contract)protected static <T> List<ProviderInfo<T>>getBoundFilters(Map<ProviderFactory.NameKey,ProviderInfo<T>> boundFilters, Set<String> names)BusgetBus()abstract javax.ws.rs.core.ConfigurationgetConfiguration(Message message)List<ProviderInfo<javax.ws.rs.ext.ContextResolver<?>>>getContextResolvers()javax.ws.rs.ext.MessageBodyWriter<?>getDefaultJaxbWriter()protected static Set<String>getFilterNameBindings(Bus bus, Object provider)protected static Set<String>getFilterNameBindings(ProviderInfo<?> p)protected static intgetFilterPriority(ProviderInfo<?> p, Class<?> providerCls)static ProviderFactorygetInstance(Message m)protected <T> booleanhandleMapper(ProviderInfo<T> em, Class<?> expectedType, Message m, Class<?> providerClass, boolean injectContext)protected <T> booleanhandleMapper(ProviderInfo<T> em, Class<?> expectedType, Message m, Class<?> providerClass, Class<?> commonBaseClass, boolean injectContext)protected static ProviderCacheinitCache(Bus theBus)protected static voidinitFactory(ProviderFactory factory)voidinitProviders(List<ClassResourceInfo> cris)protected voidinjectContextProxies(Collection<?>... providerLists)protected voidinjectContextProxiesIntoProvider(ProviderInfo<?> pi)protected voidinjectContextValues(ProviderInfo<?> pi, Message m)booleanisParamConverterContextsAvailable()protected static <T> voidmapInterceptorFilters(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)voidregisterUserProvider(Object provider)voidsetBus(Bus bus)protected voidsetBusProviders()protected voidsetCommonProviders(List<ProviderInfo<? extends Object>> theProviders, javax.ws.rs.RuntimeType type)voidsetProviderComparator(Comparator<?> providerComparator)protected abstract voidsetProviders(boolean custom, boolean busGlobal, Object... providers)voidsetSchemaLocations(List<String> schemas)voidsetUserProviders(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
-
-
Constructor Detail
-
ProviderFactory
protected ProviderFactory(Bus bus)
-
-
Method Detail
-
getBus
public Bus getBus()
-
initCache
protected static ProviderCache initCache(Bus theBus)
-
initFactory
protected static void initFactory(ProviderFactory factory)
-
getConfiguration
public abstract javax.ws.rs.core.Configuration getConfiguration(Message message)
-
createContextResolver
public <T> javax.ws.rs.ext.ContextResolver<T> createContextResolver(Type contextType, Message m)
-
createContextResolver
public <T> javax.ws.rs.ext.ContextResolver<T> createContextResolver(Type contextType, Message m, javax.ws.rs.core.MediaType type)
-
createContextProvider
public <T> ContextProvider<T> createContextProvider(Type contextType, Message m)
-
createParameterHandler
public <T> javax.ws.rs.ext.ParamConverter<T> createParameterHandler(Class<T> paramType, Type genericType, Annotation[] anns, Message m)
-
handleMapper
protected <T> boolean handleMapper(ProviderInfo<T> em, Class<?> expectedType, Message m, Class<?> providerClass, boolean injectContext)
-
handleMapper
protected <T> boolean handleMapper(ProviderInfo<T> em, Class<?> expectedType, 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, 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, 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, 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, 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, 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(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(Message m)
-
createProviderFromConstructor
public static ProviderInfo<? extends Object> createProviderFromConstructor(Constructor<?> c, Map<Class<?>,Object> values, 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)
-
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 ofConstrainedToannotation 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
-
-