@Override public <T> MessageBodyReader<T> getMessageBodyReader(final Class<T> c, final Type t, final Annotation[] as, final MediaType mediaType, final PropertiesDelegate propertiesDelegate) { MessageBodyReader<T> p = null; if (legacyProviderOrdering) { if (mediaType != null) { p = _getMessageBodyReader(c, t, as, mediaType, mediaType, propertiesDelegate); if (p == null) { p = _getMessageBodyReader(c, t, as, mediaType, MediaTypes.getTypeWildCart(mediaType), propertiesDelegate); } } if (p == null) { p = _getMessageBodyReader(c, t, as, mediaType, MediaType.WILDCARD_TYPE, propertiesDelegate); } } else { p = _getMessageBodyReader(c, t, as, mediaType, readers, propertiesDelegate); } return p; }
@Override public <T> MessageBodyWriter<T> getMessageBodyWriter(final Class<T> c, final Type t, final Annotation[] as, final MediaType mediaType, final PropertiesDelegate propertiesDelegate) { MessageBodyWriter<T> p = null; if (legacyProviderOrdering) { if (mediaType != null) { p = _getMessageBodyWriter(c, t, as, mediaType, mediaType, propertiesDelegate); if (p == null) { p = _getMessageBodyWriter(c, t, as, mediaType, MediaTypes.getTypeWildCart(mediaType), propertiesDelegate); } } if (p == null) { p = _getMessageBodyWriter(c, t, as, mediaType, MediaType.WILDCARD_TYPE, propertiesDelegate); } } else { p = _getMessageBodyWriter(c, t, as, mediaType, writers, propertiesDelegate); } return p; }
final Set<MessageBodyReader> mbrs = Providers.getProviders(injectionManager, MessageBodyReader.class); addReaders(readers, customMbrs, true); mbrs.removeAll(customMbrs); addReaders(readers, mbrs, false); final Set<MessageBodyWriter> mbws = Providers.getProviders(injectionManager, MessageBodyWriter.class); addWriters(writers, customMbws, true); mbws.removeAll(customMbws); addWriters(writers, mbws, false);
@Override public Map<MediaType, List<MessageBodyReader>> getReaders(final MediaType mediaType) { final Map<MediaType, List<MessageBodyReader>> subSet = new KeyComparatorLinkedHashMap<>(MEDIA_TYPE_KEY_COMPARATOR); getCompatibleProvidersMap(mediaType, readers, subSet); return subSet; }
private List<ReaderModel> processMessageBodyReadersForType(final Class<?> clazz) { final List<ReaderModel> suitableReaders = new ArrayList<>(); final Class<?> wrapped = Primitives.wrap(clazz); for (final ReaderModel reader : readers) { if (reader.providedType() == null || reader.providedType() == clazz || reader.providedType().isAssignableFrom(wrapped)) { suitableReaders.add(reader); } } // Type -> Writer. suitableReaders.sort(WORKER_BY_TYPE_COMPARATOR); mbrTypeLookupCache.put(clazz, suitableReaders); // Type -> MediaType. typeToMediaTypeReadersCache.put(clazz, getMessageBodyWorkersMediaTypesByType(suitableReaders)); return suitableReaders; }
@Override public List<MessageBodyReader> getMessageBodyReadersForType(final Class<?> type) { return getReaderModelsForType(type).stream().map(MODEL_TO_READER).collect(Collectors.toList()); }
@Override public <T> MessageBodyWriter<T> getMessageBodyWriter(final Class<T> c, final Type t, final Annotation[] as, final MediaType mediaType) { return getMessageBodyWriter(c, t, as, mediaType, null); }
private static <T> void getCompatibleProvidersMap( final MediaType mediaType, final List<? extends AbstractEntityProviderModel<T>> set, final Map<MediaType, List<T>> subSet) { if (mediaType.isWildcardType()) { getCompatibleProvidersList(mediaType, set, subSet); } else if (mediaType.isWildcardSubtype()) { getCompatibleProvidersList(mediaType, set, subSet); getCompatibleProvidersList(MediaType.WILDCARD_TYPE, set, subSet); } else { getCompatibleProvidersList(mediaType, set, subSet); getCompatibleProvidersList( MediaTypes.getTypeWildCart(mediaType), set, subSet); getCompatibleProvidersList(MediaType.WILDCARD_TYPE, set, subSet); } }
@Override public Map<MediaType, List<MessageBodyReader>> getReaders(final MediaType mediaType) { final Map<MediaType, List<MessageBodyReader>> subSet = new KeyComparatorLinkedHashMap<>(MEDIA_TYPE_KEY_COMPARATOR); getCompatibleProvidersMap(mediaType, readers, subSet); return subSet; }
private List<ReaderModel> processMessageBodyReadersForType(final Class<?> clazz) { final List<ReaderModel> suitableReaders = new ArrayList<>(); final Class<?> wrapped = Primitives.wrap(clazz); for (final ReaderModel reader : readers) { if (reader.providedType() == null || reader.providedType() == clazz || reader.providedType().isAssignableFrom(wrapped)) { suitableReaders.add(reader); } } // Type -> Writer. suitableReaders.sort(WORKER_BY_TYPE_COMPARATOR); mbrTypeLookupCache.put(clazz, suitableReaders); // Type -> MediaType. typeToMediaTypeReadersCache.put(clazz, getMessageBodyWorkersMediaTypesByType(suitableReaders)); return suitableReaders; }
@Override public List<MessageBodyReader> getMessageBodyReadersForType(final Class<?> type) { return getReaderModelsForType(type).stream().map(MODEL_TO_READER).collect(Collectors.toList()); }
@Override public <T> MessageBodyWriter<T> getMessageBodyWriter(final Class<T> c, final Type t, final Annotation[] as, final MediaType mediaType) { return getMessageBodyWriter(c, t, as, mediaType, null); }
private static <T> void getCompatibleProvidersMap( final MediaType mediaType, final List<? extends AbstractEntityProviderModel<T>> set, final Map<MediaType, List<T>> subSet) { if (mediaType.isWildcardType()) { getCompatibleProvidersList(mediaType, set, subSet); } else if (mediaType.isWildcardSubtype()) { getCompatibleProvidersList(mediaType, set, subSet); getCompatibleProvidersList(MediaType.WILDCARD_TYPE, set, subSet); } else { getCompatibleProvidersList(mediaType, set, subSet); getCompatibleProvidersList( MediaTypes.getTypeWildCart(mediaType), set, subSet); getCompatibleProvidersList(MediaType.WILDCARD_TYPE, set, subSet); } }
@Override public <T> MessageBodyReader<T> getMessageBodyReader(final Class<T> c, final Type t, final Annotation[] as, final MediaType mediaType, final PropertiesDelegate propertiesDelegate) { MessageBodyReader<T> p = null; if (legacyProviderOrdering) { if (mediaType != null) { p = _getMessageBodyReader(c, t, as, mediaType, mediaType, propertiesDelegate); if (p == null) { p = _getMessageBodyReader(c, t, as, mediaType, MediaTypes.getTypeWildCart(mediaType), propertiesDelegate); } } if (p == null) { p = _getMessageBodyReader(c, t, as, mediaType, MediaType.WILDCARD_TYPE, propertiesDelegate); } } else { p = _getMessageBodyReader(c, t, as, mediaType, readers, propertiesDelegate); } return p; }
final Set<MessageBodyReader> mbrs = Providers.getProviders(injectionManager, MessageBodyReader.class); addReaders(readers, customMbrs, true); mbrs.removeAll(customMbrs); addReaders(readers, mbrs, false); final Set<MessageBodyWriter> mbws = Providers.getProviders(injectionManager, MessageBodyWriter.class); addWriters(writers, customMbws, true); mbws.removeAll(customMbws); addWriters(writers, mbws, false);
@Override public Map<MediaType, List<MessageBodyWriter>> getWriters(final MediaType mediaType) { final Map<MediaType, List<MessageBodyWriter>> subSet = new KeyComparatorLinkedHashMap<>(MEDIA_TYPE_KEY_COMPARATOR); getCompatibleProvidersMap(mediaType, writers, subSet); return subSet; }
private List<WriterModel> processMessageBodyWritersForType(final Class<?> clazz) { final List<WriterModel> suitableWriters = new ArrayList<>(); if (Response.class.isAssignableFrom(clazz)) { suitableWriters.addAll(writers); } else { final Class<?> wrapped = Primitives.wrap(clazz); for (final WriterModel model : writers) { if (model.providedType() == null || model.providedType() == clazz || model.providedType().isAssignableFrom(wrapped)) { suitableWriters.add(model); } } } // Type -> Writer. suitableWriters.sort(WORKER_BY_TYPE_COMPARATOR); mbwTypeLookupCache.put(clazz, suitableWriters); // Type -> MediaType. typeToMediaTypeWritersCache.put(clazz, getMessageBodyWorkersMediaTypesByType(suitableWriters)); return suitableWriters; }
@Override public List<MessageBodyReader> getMessageBodyReadersForType(final Class<?> type) { return getReaderModelsForType(type).stream().map(MODEL_TO_READER).collect(Collectors.toList()); }
@Override public <T> MessageBodyWriter<T> getMessageBodyWriter(final Class<T> c, final Type t, final Annotation[] as, final MediaType mediaType) { return getMessageBodyWriter(c, t, as, mediaType, null); }
private static <T> void getCompatibleProvidersMap( final MediaType mediaType, final List<? extends AbstractEntityProviderModel<T>> set, final Map<MediaType, List<T>> subSet) { if (mediaType.isWildcardType()) { getCompatibleProvidersList(mediaType, set, subSet); } else if (mediaType.isWildcardSubtype()) { getCompatibleProvidersList(mediaType, set, subSet); getCompatibleProvidersList(MediaType.WILDCARD_TYPE, set, subSet); } else { getCompatibleProvidersList(mediaType, set, subSet); getCompatibleProvidersList( MediaTypes.getTypeWildCart(mediaType), set, subSet); getCompatibleProvidersList(MediaType.WILDCARD_TYPE, set, subSet); } }