@SuppressWarnings("unchecked") public <T extends Throwable> ResponseExceptionMapper<T> createResponseExceptionMapper( Message m, Class<?> paramType) { return (ResponseExceptionMapper<T>)responseExceptionMappers.stream() .filter(em -> handleMapper(em, paramType, m, ResponseExceptionMapper.class, true)) .map(ProviderInfo::getProvider) .sorted(new ProviderFactory.ClassComparator(paramType)) .findFirst() .orElse(null); }
@SuppressWarnings("unchecked") public <T extends Throwable> ResponseExceptionMapper<T> createResponseExceptionMapper( Message m, Class<?> paramType) { return (ResponseExceptionMapper<T>)responseExceptionMappers.stream() .filter(em -> handleMapper(em, paramType, m, ResponseExceptionMapper.class, true)) .map(ProviderInfo::getProvider) .sorted(new ProviderFactory.ClassComparator(paramType)) .findFirst() .orElse(null); }
@SuppressWarnings("unchecked") private <T extends Throwable> ExceptionMapper<T> doCreateExceptionMapper( Class<?> exceptionType, Message m) { List<ExceptionMapper<?>> candidates = new LinkedList<ExceptionMapper<?>>(); for (ProviderInfo<ExceptionMapper<?>> em : exceptionMappers) { handleMapper(candidates, em, exceptionType, m, ExceptionMapper.class, true); } if (candidates.size() == 0) { return null; } Collections.sort(candidates, new ClassComparator(exceptionType)); return (ExceptionMapper<T>) candidates.get(0); }
return candidates.get(0); } else { Collections.sort(candidates, new ClassComparator()); return new ContextResolverProxy<T>(candidates);
return null; Collections.sort(candidates, new ClassComparator()); return (MessageBodyWriter<T>) candidates.get(0);
return null; Collections.sort(candidates, new ClassComparator()); return (MessageBodyReader<T>) candidates.get(0);
@SuppressWarnings({ "unchecked", "rawtypes" }) @Override public <T> ParamConverter<T> getConverter(Class<T> rawType, Type genericType, Annotation[] annotations) { List<ParameterHandler<?>> candidates = new LinkedList<ParameterHandler<?>>(); for (ProviderInfo<ParameterHandler<?>> em : paramHandlers) { handleMapper(candidates, em, rawType, null, ParameterHandler.class, true); } if (candidates.size() == 0) { return null; } Collections.sort(candidates, new ClassComparator()); return new LegacyParamConverter((ParameterHandler<T>) candidates.get(0)); }
@SuppressWarnings("unchecked") public <T extends Throwable> ResponseExceptionMapper<T> createResponseExceptionMapper( Message m, Class<?> paramType) { List<ResponseExceptionMapper<?>> candidates = new LinkedList<ResponseExceptionMapper<?>>(); for (ProviderInfo<ResponseExceptionMapper<?>> em : responseExceptionMappers) { handleMapper(candidates, em, paramType, m, ResponseExceptionMapper.class, true); } if (candidates.size() == 0) { return null; } Collections.sort(candidates, new ClassComparator(paramType)); return (ResponseExceptionMapper<T>) candidates.get(0); }
public ProviderInfoClassComparator(Class<?> expectedCls) { this.comp = new ClassComparator(expectedCls); this.defaultComp = true; } public ProviderInfoClassComparator(Comparator<Object> comp) {