@Test public void testCombinedMediaTypesSorting() { final List<CombinedMediaType> sorted = Arrays.asList( CombinedMediaType.create( MediaType.valueOf("text/html"), new CombinedMediaType.EffectiveMediaType("text/html")), CombinedMediaType.create( MediaType.valueOf("text*"), new CombinedMediaType.EffectiveMediaType("text/html")), CombinedMediaType.create( MediaType.valueOf("text/html"), new CombinedMediaType.EffectiveMediaType("text/html;qs=0.5")), CombinedMediaType.create( MediaType.valueOf("text*"), new CombinedMediaType.EffectiveMediaType("text/html;qs=0.5")), CombinedMediaType.create( MediaType.valueOf("text/html;q=0.5"), new CombinedMediaType.EffectiveMediaType("text/html")), CombinedMediaType.create( MediaType.valueOf("text*;q=0.5"), new CombinedMediaType.EffectiveMediaType("text/html")), CombinedMediaType.create( MediaType.valueOf("text*"), new CombinedMediaType.EffectiveMediaType("text*"), new CombinedMediaType.EffectiveMediaType("text*;q=0.5"), new CombinedMediaType.EffectiveMediaType("text*"), new CombinedMediaType.EffectiveMediaType("**"), new CombinedMediaType.EffectiveMediaType("**;q=0.5"), new CombinedMediaType.EffectiveMediaType("*/*")) ); List<CombinedMediaType> unsorted = new ArrayList<>(sorted); Collections.shuffle(unsorted); Collections.sort(unsorted, CombinedMediaType.COMPARATOR); assertThat("Combined media type sorting has failed.", unsorted, equalTo(sorted)); }
static CombinedMediaType create(MediaType clientType, EffectiveMediaType serverType) { if (!clientType.isCompatible(serverType.getMediaType())) { return NO_MATCH; } final MediaType strippedClientType = MediaTypes.stripQualityParams(clientType); final MediaType strippedServerType = MediaTypes.stripQualityParams(serverType.getMediaType()); return new CombinedMediaType( MediaTypes.mostSpecific(strippedClientType, strippedServerType), MediaTypes.getQuality(clientType), QualitySourceMediaType.getQualitySource(serverType.getMediaType()), matchedWildcards(clientType, serverType)); }
CombinedMediaType { static CombinedMediaType create(MediaType clientType, EffectiveMediaType serverType) { if (!clientType.isCompatible(serverType.getMediaType())) { return NO_MATCH; } final MediaType strippedClientType = MediaTypes.stripQualityParams(clientType); final MediaType strippedServerType = MediaTypes.stripQualityParams(serverType.getMediaType()); return new CombinedMediaType( MediaTypes.mostSpecific(strippedClientType, strippedServerType), MediaTypes.getQuality(clientType), QualitySourceMediaType.getQualitySource(serverType.getMediaType()), matchedWildcards(clientType, serverType)); } }
CombinedMediaType { static CombinedMediaType create(MediaType clientType, EffectiveMediaType serverType) { if (!clientType.isCompatible(serverType.getMediaType())) { return NO_MATCH; } final MediaType strippedClientType = MediaTypes.stripQualityParams(clientType); final MediaType strippedServerType = MediaTypes.stripQualityParams(serverType.getMediaType()); return new CombinedMediaType( MediaTypes.mostSpecific(strippedClientType, strippedServerType), MediaTypes.getQuality(clientType), QualitySourceMediaType.getQualitySource(serverType.getMediaType()), matchedWildcards(clientType, serverType)); } private  CombinedMediaType(final MediaType combinedType, final int q, final int qs, final int d); }
CombinedMediaType { static CombinedMediaType create(MediaType clientType, EffectiveMediaType serverType) { if (!clientType.isCompatible(serverType.getMediaType())) { return NO_MATCH; } final MediaType strippedClientType = MediaTypes.stripQualityParams(clientType); final MediaType strippedServerType = MediaTypes.stripQualityParams(serverType.getMediaType()); return new CombinedMediaType( MediaTypes.mostSpecific(strippedClientType, strippedServerType), MediaTypes.getQuality(clientType), QualitySourceMediaType.getQualitySource(serverType.getMediaType()), matchedWildcards(clientType, serverType)); } private  CombinedMediaType(final MediaType combinedType, final int q, final int qs, final int d); @Override String toString(); }
CombinedMediaType { static CombinedMediaType create(MediaType clientType, EffectiveMediaType serverType) { if (!clientType.isCompatible(serverType.getMediaType())) { return NO_MATCH; } final MediaType strippedClientType = MediaTypes.stripQualityParams(clientType); final MediaType strippedServerType = MediaTypes.stripQualityParams(serverType.getMediaType()); return new CombinedMediaType( MediaTypes.mostSpecific(strippedClientType, strippedServerType), MediaTypes.getQuality(clientType), QualitySourceMediaType.getQualitySource(serverType.getMediaType()), matchedWildcards(clientType, serverType)); } private  CombinedMediaType(final MediaType combinedType, final int q, final int qs, final int d); @Override String toString();  }