Class ExceptionMapperFactory
- java.lang.Object
-
- org.glassfish.jersey.internal.ExceptionMapperFactory
-
- All Implemented Interfaces:
ExceptionMappers
public class ExceptionMapperFactory extends Object implements 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 Classes Modifier and Type Class Description static class
ExceptionMapperFactory.ExceptionMappersConfigurator
Configurator which initializes and registerExceptionMappers
instance intoInjectionManager
andBootstrapBag
.
-
Constructor Summary
Constructors Constructor Description ExceptionMapperFactory(org.glassfish.jersey.internal.inject.InjectionManager injectionManager)
Create new exception mapper factory initialized withinjection manager
instance that will be used to look up all providers implementingExceptionMapper
interface.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T extends Throwable>
ExceptionMapper<T>find(Class<T> type)
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 Detail
-
ExceptionMapperFactory
public ExceptionMapperFactory(org.glassfish.jersey.internal.inject.InjectionManager injectionManager)
Create new exception mapper factory initialized withinjection manager
instance that will be used to look up all providers implementingExceptionMapper
interface.- Parameters:
injectionManager
- injection manager.
-
-
Method Detail
-
findMapping
public <T extends Throwable> ExceptionMapper<T> findMapping(T exceptionInstance)
Description copied from interface:ExceptionMappers
Get 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 JerseyExtendedExceptionMapper
API. If an extended exception mapper returnsfalse
fromisMappable(Throwable)
, the mapper is disregarded from the search. Exception mapping providers are checked one by one until a first provider returnstrue
from theisMappable(Throwable)
method or until a first provider is found which best supports the exception type and does not implementExtendedExceptionMapper
API (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
ExtendedExceptionMapper
it is always considered applicable for a given exception instance.- Specified by:
findMapping
in 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
ExceptionMapper
for the supplied exception instance type ornull
if none is found.
-
find
public <T extends Throwable> ExceptionMapper<T> find(Class<T> type)
Description copied from interface:ExceptionMappers
Get an exception mapping provider for a particular class of exception. Returns the provider whose generic type is the nearest superclass oftype
.- Specified by:
find
in interfaceExceptionMappers
- 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 ornull
if none is found.
-
-