Class ExceptionMapperFactory
- All Implemented Interfaces:
ExceptionMappers
Exception mappers implementation that aggregates
exception mappers and server as the main entry point for exception mapper
instance lookup.- Author:
- Paul Sandoz, Santiago Pericas-Geertsen (Santiago.PericasGeertsen at oracle.com), Marek Potociar, Jakub Podlesak
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classConfigurator which initializes and registerExceptionMappersinstance intoInjectionManagerandBootstrapBag. -
Constructor Summary
ConstructorsConstructorDescriptionExceptionMapperFactory(InjectionManager injectionManager) Create new exception mapper factory initialized withinjection managerinstance that will be used to look up all providers implementingExceptionMapperinterface. -
Method Summary
Modifier and TypeMethodDescription<T extends Throwable>
ExceptionMapper<T>Get an exception mapping provider for a particular class of exception.<T extends Throwable>
ExceptionMapper<T>findMapping(T exceptionInstance) Get an exception mapping provider for a particular exception instance.
-
Constructor Details
-
ExceptionMapperFactory
Create new exception mapper factory initialized withinjection managerinstance that will be used to look up all providers implementingExceptionMapperinterface.- Parameters:
injectionManager- injection manager.
-
-
Method Details
-
findMapping
Description copied from interface:ExceptionMappersGet an exception mapping provider for a particular exception instance.This method is similar to method
ExceptionMappers.find(Class). In addition it takes into an account the result of theExtendedExceptionMapper.isMappable(Throwable)of any mapper that implements JerseyExtendedExceptionMapperAPI. If an extended exception mapper returnsfalsefromisMappable(Throwable), the mapper is disregarded from the search. Exception mapping providers are checked one by one until a first provider returnstruefrom theisMappable(Throwable)method or until a first provider is found which best supports the exception type and does not implementExtendedExceptionMapperAPI (i.e. it is a standard JAX-RSExceptionMapper). The order in which the providers are checked is determined by the distance of the declared exception mapper type and the actual exception type.Note that if an exception mapping provider does not implement
ExtendedExceptionMapperit is always considered applicable for a given exception instance.- Specified by:
findMappingin interfaceExceptionMappers- Type Parameters:
T- type of the exception handled by the exception mapping provider.- Parameters:
exceptionInstance- exception to be handled by the exception mapping provider.- Returns:
- an
ExceptionMapperfor the supplied exception instance type ornullif none is found.
-
find
Description copied from interface:ExceptionMappersGet an exception mapping provider for a particular class of exception. Returns the provider whose generic type is the nearest superclass oftype.- Specified by:
findin interfaceExceptionMappers- Type Parameters:
T- type of the exception handled by the exception mapping provider.- Parameters:
type- the class of exception.- Returns:
- an
ExceptionMapperfor the supplied type ornullif none is found.
-