use of org.glassfish.jersey.server.mvc.internal.TemplateInflector in project jersey by jersey.
the class AbstractErrorTemplateMapper method getErrorTemplate.
/**
* Get an {@link ErrorTemplate} annotation from resource method / class the throwable was raised from.
*
* @return an error template annotation or {@code null} if the method is not annotated.
*/
private ErrorTemplate getErrorTemplate() {
final ExtendedUriInfo uriInfo = uriInfoProvider.get();
final ResourceMethod matchedResourceMethod = uriInfo.getMatchedResourceMethod();
if (matchedResourceMethod != null) {
final Invocable invocable = matchedResourceMethod.getInvocable();
ErrorTemplate errorTemplate = invocable.getHandlingMethod().getAnnotation(ErrorTemplate.class);
if (errorTemplate == null) {
Class<?> handlerClass = invocable.getHandler().getHandlerClass();
if (invocable.isInflector() && TemplateInflector.class.isAssignableFrom(invocable.getHandler().getHandlerClass())) {
handlerClass = ((TemplateInflector) invocable.getHandler().getInstance(null)).getModelClass();
}
errorTemplate = handlerClass.getAnnotation(ErrorTemplate.class);
}
return errorTemplate;
}
return null;
}
Aggregations