@Test public void testCombinedMediaTypeComparator() { final Comparator<CombinedMediaType> comparator = CombinedMediaType.COMPARATOR; CombinedMediaType c1; CombinedMediaType c2; c1 = CombinedMediaType.create( MediaType.valueOf("text/html"), new CombinedMediaType.EffectiveMediaType("text/html")); c2 = CombinedMediaType.create( MediaType.valueOf("text/html"), new CombinedMediaType.EffectiveMediaType("text/html")); assertThat(comparator.compare(c1, c2), equalTo(0)); c1 = CombinedMediaType.create( MediaType.valueOf("text/html"), new CombinedMediaType.EffectiveMediaType("text/html;qs=0.7")); c2 = CombinedMediaType.create( MediaType.valueOf("application/xml"), new CombinedMediaType.EffectiveMediaType("application/xml;qs=0.7")); assertThat(comparator.compare(c1, c2), equalTo(0)); c1 = CombinedMediaType.create( MediaType.valueOf("text/html;q=0.5"), new CombinedMediaType.EffectiveMediaType("text/html")); c2 = CombinedMediaType.create( MediaType.valueOf("application/xml;q=0.5"), new CombinedMediaType.EffectiveMediaType("application/xml")); assertThat(comparator.compare(c1, c2), equalTo(0)); c1 = CombinedMediaType.create( MediaType.valueOf("text/html"), new CombinedMediaType.EffectiveMediaType("text/html")); c2 = CombinedMediaType.create( MediaType.valueOf("text*"), new CombinedMediaType.EffectiveMediaType("text/html")); assertThat(comparator.compare(c1, c2), lessThan(0)); c1 = CombinedMediaType.create( MediaType.valueOf("text/html"), new CombinedMediaType.EffectiveMediaType("text/html")); c2 = CombinedMediaType.create( MediaType.valueOf("text/*"), new CombinedMediaType.EffectiveMediaType("text/*")); assertThat(comparator.compare(c1, c2), lessThan(0)); c1 = CombinedMediaType.create( MediaType.valueOf("text/html"), new CombinedMediaType.EffectiveMediaType("text/html;qs=0.5")); c2 = CombinedMediaType.create( MediaType.valueOf("text/*"), new CombinedMediaType.EffectiveMediaType("text/*")); assertThat(comparator.compare(c1, c2), lessThan(0)); c1 = CombinedMediaType.create( MediaType.valueOf("text/html;q=0.5"), new CombinedMediaType.EffectiveMediaType("text/html")); c2 = CombinedMediaType.create( MediaType.valueOf("text/*"), new CombinedMediaType.EffectiveMediaType("text/*")); assertThat(comparator.compare(c1, c2), lessThan(0)); c1 = CombinedMediaType.create( MediaType.valueOf("text/html"), new CombinedMediaType.EffectiveMediaType("text/html;qs=0.8")); c2 = CombinedMediaType.create( MediaType.valueOf("application/xml"), new CombinedMediaType.EffectiveMediaType("application/xml;qs=0.7")); assertThat(comparator.compare(c1, c2), lessThan(0)); c1 = CombinedMediaType.create( MediaType.valueOf("text/html;q=0.8"), new CombinedMediaType.EffectiveMediaType("text/html")); c2 = CombinedMediaType.create( MediaType.valueOf("application/xml;q=0.7"), new CombinedMediaType.EffectiveMediaType("application/xml")); assertThat(comparator.compare(c1, c2), lessThan(0)); }
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();  }