@SuppressWarnings("unchecked") private static <T> List<MediaType> getMessageBodyWorkersMediaTypesByType( final List<? extends AbstractEntityProviderModel<T>> workerModels) { final Set<MediaType> mediaTypeSet = new HashSet<>(); for (final AbstractEntityProviderModel<T> model : workerModels) { mediaTypeSet.addAll(model.declaredTypes()); } final List<MediaType> mediaTypes = new ArrayList<>(mediaTypeSet); mediaTypes.sort(MediaTypes.PARTIAL_ORDER_COMPARATOR); return mediaTypes; }
@SuppressWarnings("unchecked") private static <T> List<MediaType> getMessageBodyWorkersMediaTypesByType( final List<? extends AbstractEntityProviderModel<T>> workerModels) { final Set<MediaType> mediaTypeSet = new HashSet<>(); for (final AbstractEntityProviderModel<T> model : workerModels) { mediaTypeSet.addAll(model.declaredTypes()); } final List<MediaType> mediaTypes = new ArrayList<>(mediaTypeSet); mediaTypes.sort(MediaTypes.PARTIAL_ORDER_COMPARATOR); return mediaTypes; }
private static <T> void getCompatibleProvidersList( final MediaType mediaType, final List<? extends AbstractEntityProviderModel<T>> set, final Map<MediaType, List<T>> subSet) { final List<T> providers = set.stream() .filter(model -> model.declaredTypes().contains(mediaType)) .map(AbstractEntityProviderModel::provider) .collect(Collectors.toList()); if (!providers.isEmpty()) { subSet.put(mediaType, Collections.unmodifiableList(providers)); } }
private static <T> void getCompatibleProvidersList( final MediaType mediaType, final List<? extends AbstractEntityProviderModel<T>> set, final Map<MediaType, List<T>> subSet) { final List<T> providers = set.stream() .filter(model -> model.declaredTypes().contains(mediaType)) .map(AbstractEntityProviderModel::provider) .collect(Collectors.toList()); if (!providers.isEmpty()) { subSet.put(mediaType, Collections.unmodifiableList(providers)); } }
@Override public int compare(final AbstractEntityProviderModel<?> o1, final AbstractEntityProviderModel<?> o2) { final Class<?> o1ProviderClassParam = o1.providedType(); final Class<?> o2ProviderClassParam = o2.providedType(); if (o1ProviderClassParam == o2ProviderClassParam) { // Compare producible media types. return compare(o2.declaredTypes(), o1.declaredTypes()); } else if (o1ProviderClassParam.isAssignableFrom(o2ProviderClassParam)) { return 1; } else if (o2ProviderClassParam.isAssignableFrom(o1ProviderClassParam)) { return -1; } return 0; }
@Override public int compare(final AbstractEntityProviderModel<?> o1, final AbstractEntityProviderModel<?> o2) { final Class<?> o1ProviderClassParam = o1.providedType(); final Class<?> o2ProviderClassParam = o2.providedType(); if (o1ProviderClassParam == o2ProviderClassParam) { // Compare producible media types. return compare(o2.declaredTypes(), o1.declaredTypes()); } else if (o1ProviderClassParam.isAssignableFrom(o2ProviderClassParam)) { return 1; } else if (o2ProviderClassParam.isAssignableFrom(o1ProviderClassParam)) { return -1; } return 0; }
@Override public int compare(final AbstractEntityProviderModel<T> modelA, final AbstractEntityProviderModel<T> modelB) { if (modelA.isCustom() ^ modelB.isCustom()) { return (modelA.isCustom()) ? -1 : 1; } final MediaType mtA = modelA.declaredTypes().get(0); final MediaType mtB = modelB.declaredTypes().get(0); final int mediaTypeComparison = MediaTypes.PARTIAL_ORDER_COMPARATOR.compare(mtA, mtB); if (mediaTypeComparison != 0 && !mtA.isCompatible(mtB)) { return mediaTypeComparison; } return distanceComparator.compare(modelA.provider(), modelB.provider()); } }
@Override public int compare(final AbstractEntityProviderModel<T> modelA, final AbstractEntityProviderModel<T> modelB) { if (modelA.isCustom() ^ modelB.isCustom()) { return (modelA.isCustom()) ? -1 : 1; } final MediaType mtA = modelA.declaredTypes().get(0); final MediaType mtB = modelB.declaredTypes().get(0); final int mediaTypeComparison = MediaTypes.PARTIAL_ORDER_COMPARATOR.compare(mtA, mtB); if (mediaTypeComparison != 0 && !mtA.isCompatible(mtB)) { return mediaTypeComparison; } return distanceComparator.compare(modelA.provider(), modelB.provider()); } }
@SuppressWarnings("unchecked") private <T> boolean isCompatible(final AbstractEntityProviderModel<T> model, final Class c, final MediaType mediaType) { if (model.providedType().equals(Object.class) || // looks weird. Could/(should?) be separated to Writer/Reader check model.providedType().isAssignableFrom(c) || c.isAssignableFrom(model.providedType()) ) { for (final MediaType mt : model.declaredTypes()) { if (mediaType == null) { return true; } if (mediaType.isCompatible(mt)) { return true; } } } return false; }
@SuppressWarnings("unchecked") private <T> boolean isCompatible(final AbstractEntityProviderModel<T> model, final Class c, final MediaType mediaType) { if (model.providedType().equals(Object.class) || // looks weird. Could/(should?) be separated to Writer/Reader check model.providedType().isAssignableFrom(c) || c.isAssignableFrom(model.providedType()) ) { for (final MediaType mt : model.declaredTypes()) { if (mediaType == null) { return true; } if (mediaType.isCompatible(mt)) { return true; } } } return false; }
@Override public int compare(final AbstractEntityProviderModel<T> modelA, final AbstractEntityProviderModel<T> modelB) { final int distance = compareTypeDistances(modelA.providedType(), modelB.providedType()); if (distance != 0) { return distance; } final int mediaTypeComparison = getMediaTypeDistance(wantedMediaType, modelA.declaredTypes()) - getMediaTypeDistance(wantedMediaType, modelB.declaredTypes()); if (mediaTypeComparison != 0) { return mediaTypeComparison; } if (modelA.isCustom() ^ modelB.isCustom()) { return (modelA.isCustom()) ? -1 : 1; } return 0; }
@Override public int compare(final AbstractEntityProviderModel<T> modelA, final AbstractEntityProviderModel<T> modelB) { final int distance = compareTypeDistances(modelA.providedType(), modelB.providedType()); if (distance != 0) { return distance; } final int mediaTypeComparison = getMediaTypeDistance(wantedMediaType, modelA.declaredTypes()) - getMediaTypeDistance(wantedMediaType, modelB.declaredTypes()); if (mediaTypeComparison != 0) { return mediaTypeComparison; } if (modelA.isCustom() ^ modelB.isCustom()) { return (modelA.isCustom()) ? -1 : 1; } return 0; }
for (final MediaType mt : model.declaredTypes()) { List<MessageBodyWriter> writerList = writersCache.get(mt);
for (final MediaType mt : model.declaredTypes()) { List<MessageBodyWriter> writerList = writersCache.get(mt);
@SuppressWarnings("unchecked") private static <T> List<MediaType> getMessageBodyWorkersMediaTypesByType( final List<? extends AbstractEntityProviderModel<T>> workerModels) { final Set<MediaType> mediaTypeSet = new HashSet<>(); for (final AbstractEntityProviderModel<T> model : workerModels) { mediaTypeSet.addAll(model.declaredTypes()); } final List<MediaType> mediaTypes = new ArrayList<>(mediaTypeSet); mediaTypes.sort(MediaTypes.PARTIAL_ORDER_COMPARATOR); return mediaTypes; }
@SuppressWarnings("unchecked") private static <T> List<MediaType> getMessageBodyWorkersMediaTypesByType( final List<? extends AbstractEntityProviderModel<T>> workerModels) { final Set<MediaType> mediaTypeSet = new HashSet<>(); for (final AbstractEntityProviderModel<T> model : workerModels) { mediaTypeSet.addAll(model.declaredTypes()); } final List<MediaType> mediaTypes = new ArrayList<>(mediaTypeSet); mediaTypes.sort(MediaTypes.PARTIAL_ORDER_COMPARATOR); return mediaTypes; }
private static <T> void getCompatibleProvidersList( final MediaType mediaType, final List<? extends AbstractEntityProviderModel<T>> set, final Map<MediaType, List<T>> subSet) { final List<T> providers = set.stream() .filter(model -> model.declaredTypes().contains(mediaType)) .map(AbstractEntityProviderModel::provider) .collect(Collectors.toList()); if (!providers.isEmpty()) { subSet.put(mediaType, Collections.unmodifiableList(providers)); } }
@SuppressWarnings("unchecked") private static <T> List<MediaType> getMessageBodyWorkersMediaTypesByType( final List<? extends AbstractEntityProviderModel<T>> workerModels) { final Set<MediaType> mediaTypeSet = Sets.newHashSet(); for (final AbstractEntityProviderModel<T> model : workerModels) { mediaTypeSet.addAll(model.declaredTypes()); } final List<MediaType> mediaTypes = Lists.newArrayList(mediaTypeSet); Collections.sort(mediaTypes, MediaTypes.PARTIAL_ORDER_COMPARATOR); return mediaTypes; }
@SuppressWarnings("unchecked") private static <T> List<MediaType> getMessageBodyWorkersMediaTypesByType( final List<? extends AbstractEntityProviderModel<T>> workerModels) { final Set<MediaType> mediaTypeSet = Sets.newHashSet(); for (final AbstractEntityProviderModel<T> model : workerModels) { mediaTypeSet.addAll(model.declaredTypes()); } final List<MediaType> mediaTypes = Lists.newArrayList(mediaTypeSet); Collections.sort(mediaTypes, MediaTypes.PARTIAL_ORDER_COMPARATOR); return mediaTypes; }
@Override public int compare(final AbstractEntityProviderModel<T> modelA, final AbstractEntityProviderModel<T> modelB) { if (modelA.isCustom() ^ modelB.isCustom()) { return (modelA.isCustom()) ? -1 : 1; } final MediaType mtA = modelA.declaredTypes().get(0); final MediaType mtB = modelB.declaredTypes().get(0); final int mediaTypeComparison = MediaTypes.PARTIAL_ORDER_COMPARATOR.compare(mtA, mtB); if (mediaTypeComparison != 0 && !mtA.isCompatible(mtB)) { return mediaTypeComparison; } return distanceComparator.compare(modelA.provider(), modelB.provider()); } }