public static List<MediaType> intersectMimeTypes(List<MediaType> mimeTypesA, MediaType mimeTypeB) { return intersectMimeTypes(mimeTypesA, Collections.singletonList(mimeTypeB), false); }
public static List<MediaType> intersectMimeTypes(List<MediaType> mimeTypesA, MediaType mimeTypeB) { return intersectMimeTypes(mimeTypesA, Collections.singletonList(mimeTypeB), false); }
private static List<MediaType> intersectSortMediaTypes(List<MediaType> acceptTypes, List<MediaType> producesTypes, final boolean checkDistance) { List<MediaType> all = intersectMimeTypes(acceptTypes, producesTypes, true, checkDistance); if (all.size() > 1) { all.sort(new Comparator<MediaType>() { public int compare(MediaType mt1, MediaType mt2) { int result = compareMediaTypes(mt1, mt2, null); if (result == 0) { result = compareQualityAndDistance(mt1, mt2, checkDistance); } return result; } }); } return all; }
private static List<MediaType> intersectSortMediaTypes(List<MediaType> acceptTypes, List<MediaType> producesTypes, final boolean checkDistance) { List<MediaType> all = intersectMimeTypes(acceptTypes, producesTypes, true, checkDistance); if (all.size() > 1) { Collections.sort(all, new Comparator<MediaType>() { public int compare(MediaType mt1, MediaType mt2) { int result = compareMediaTypes(mt1, mt2, null); if (result == 0) { result = compareQualityAndDistance(mt1, mt2, checkDistance); } return result; } }); } return all; }
protected boolean isRedirectPossible(HttpHeaders headers) { List<MediaType> clientTypes = headers.getAcceptableMediaTypes(); return !JAXRSUtils.intersectMimeTypes(clientTypes, HTML_MEDIA_TYPES, false) .isEmpty(); } }
public static List<MediaType> intersectMimeTypes(List<MediaType> requiredMediaTypes, List<MediaType> userMediaTypes, boolean addRequiredParamsIfPossible, boolean addDistanceParameter) { final AccumulatingIntersector intersector = new AccumulatingIntersector(addRequiredParamsIfPossible, addDistanceParameter); intersectMimeTypes(requiredMediaTypes, userMediaTypes, intersector); return new ArrayList<>(intersector.getSupportedMimeTypeList()); }
protected boolean isRedirectPossible(HttpHeaders headers) { List<MediaType> clientTypes = headers.getAcceptableMediaTypes(); return !JAXRSUtils.intersectMimeTypes(clientTypes, HTML_MEDIA_TYPES, false) .isEmpty(); } }
public static boolean matchMimeTypes(MediaType requestContentType, MediaType acceptContentType, OperationResourceInfo ori) { if (intersectMimeTypes(ori.getConsumeTypes(), requestContentType).size() != 0 && intersectMimeTypes(ori.getProduceTypes(), acceptContentType).size() != 0) { return true; } return false; }
public static boolean matchProduceTypes(MediaType acceptContentType, OperationResourceInfo ori) { return !intersectMimeTypes(ori.getProduceTypes(), acceptContentType).isEmpty(); }
public static boolean matchConsumeTypes(MediaType requestContentType, OperationResourceInfo ori) { return !intersectMimeTypes(ori.getConsumeTypes(), requestContentType).isEmpty(); }
public static boolean doMimeTypesIntersect(List<MediaType> requiredMediaTypes, List<MediaType> userMediaTypes) { final NonAccumulatingIntersector intersector = new NonAccumulatingIntersector(); intersectMimeTypes(requiredMediaTypes, userMediaTypes, intersector); return intersector.doIntersect(); }
public static List<MediaType> intersectMimeTypes(String mimeTypesA, String mimeTypesB) { return intersectMimeTypes(parseMediaTypes(mimeTypesA), parseMediaTypes(mimeTypesB), false); }
public static List<MediaType> intersectMimeTypes(String mimeTypesA, String mimeTypesB) { return intersectMimeTypes(parseMediaTypes(mimeTypesA), parseMediaTypes(mimeTypesB), false); }
private MediaType checkFinalContentType(MediaType mt, List<WriterInterceptor> writers) { if (mt.isWildcardType() || mt.isWildcardSubtype()) { int mbwIndex = writers.size() == 1 ? 0 : writers.size() - 1; MessageBodyWriter<Object> writer = ((WriterInterceptorMBW)writers.get(mbwIndex)).getMBW(); Produces pm = writer.getClass().getAnnotation(Produces.class); if (pm != null) { List<MediaType> sorted = JAXRSUtils.sortMediaTypes(JAXRSUtils.getMediaTypes(pm.value()), JAXRSUtils.MEDIA_TYPE_QS_PARAM); mt = JAXRSUtils.intersectMimeTypes(sorted, mt).get(0); if (mt.isWildcardType() || mt.isWildcardSubtype()) { return MediaType.APPLICATION_OCTET_STREAM_TYPE; } } else { return MediaType.APPLICATION_OCTET_STREAM_TYPE; } } return mt; }
private MediaType checkFinalContentType(MediaType mt, List<WriterInterceptor> writers, boolean checkWriters) { if (checkWriters) { int mbwIndex = writers.size() == 1 ? 0 : writers.size() - 1; MessageBodyWriter<Object> writer = ((WriterInterceptorMBW)writers.get(mbwIndex)).getMBW(); Produces pm = writer.getClass().getAnnotation(Produces.class); if (pm != null) { List<MediaType> sorted = JAXRSUtils.sortMediaTypes(JAXRSUtils.getMediaTypes(pm.value()), JAXRSUtils.MEDIA_TYPE_QS_PARAM); mt = JAXRSUtils.intersectMimeTypes(sorted, mt).get(0); } } if (mt.isWildcardType() || mt.isWildcardSubtype()) { if ("application".equals(mt.getType()) || mt.isWildcardType()) { mt = MediaType.APPLICATION_OCTET_STREAM_TYPE; } else { throw ExceptionUtils.toNotAcceptableException(null, null); } } return mt; }
private <T> boolean matchesReaderCriterias(ProviderInfo<MessageBodyReader<?>> pi, Class<T> type, Type genericType, Annotation[] annotations, MediaType mediaType, Message m) { MessageBodyReader<?> ep = pi.getProvider(); List<MediaType> supportedMediaTypes = JAXRSUtils.getProviderConsumeTypes(ep); List<MediaType> availableMimeTypes = JAXRSUtils.intersectMimeTypes(Collections.singletonList(mediaType), supportedMediaTypes, false); if (availableMimeTypes.size() == 0) { return false; } if (this != SHARED_FACTORY || !isJaxbBasedProvider(ep)) { injectContextValues(pi, m); } return ep.isReadable(type, genericType, annotations, mediaType); }
List<MediaType> mTypes = JAXRSUtils.getProduceTypes( cr.getProvider().getClass().getAnnotation(Produces.class)); if (JAXRSUtils.intersectMimeTypes(mTypes, type).size() > 0) { injectContextValues(cr, m); candidates.add((ContextResolver<T>)cr.getProvider());
|| JAXRSUtils.intersectMimeTypes(acceptMediaTypes, mt).size() != 0; if (mtMatched) { handleVaryValues(varyValues, HttpHeaders.ACCEPT);
private <T> boolean matchesWriterCriterias(ProviderInfo<MessageBodyWriter<?>> pi, Class<T> type, Type genericType, Annotation[] annotations, MediaType mediaType, Message m) { MessageBodyWriter<?> ep = pi.getProvider(); List<MediaType> supportedMediaTypes = JAXRSUtils.getProviderProduceTypes(ep); List<MediaType> availableMimeTypes = JAXRSUtils.intersectMimeTypes(Collections.singletonList(mediaType), supportedMediaTypes, false); if (availableMimeTypes.size() == 0) { return false; } if ((this != SHARED_FACTORY || !isJaxbBasedProvider(ep)) && m.get(ACTIVE_JAXRS_PROVIDER_KEY) != ep) { injectContextValues(pi, m); } return ep.isWriteable(type, genericType, annotations, mediaType); }
Message m) throws IOException, WebApplicationException { List<MediaType> types = JAXRSUtils.intersectMimeTypes(ori.getConsumeTypes(), contentType);