MediaType { @Override public boolean equals(@Nullable Object obj) { if (obj == this) { return true; } else if (obj instanceof MediaType) { MediaType that = (MediaType) obj; return type.equals(that.type) && subtype.equals(that.subtype) && parametersAsMap().equals(that.parametersAsMap()); } else { return false; } } private  MediaType(String type, String subtype, ImmutableListMultimap<String, String> parameters); String type(); String subtype(); @SuppressWarnings({ "unchecked", "rawtypes" }) Map<String, List<String>> parameters(); @Nullable Charset charset(); Charset charset(Charset defaultCharset); MediaType withoutParameters(); MediaType withParameters(Map<String, ? extends Iterable<String>> parameters); MediaType withParameters(String attribute, Iterable<String> values); MediaType withParameter(String attribute, String value); MediaType withCharset(Charset charset); boolean hasWildcard(); int numWildcards(); boolean is(MediaType mediaTypeRange); boolean belongsTo(MediaType mediaTypeRange); float qualityFactor(float defaultValueIfNotSpecified); float qualityFactor(); String nameWithoutParameters(); static MediaType create(String type, String subtype); static MediaType parse(String input); @Override boolean equals(@Nullable Object obj); @Override int hashCode(); @Override String toString(); static final MediaType ANY_TYPE; static final MediaType ANY_TEXT_TYPE; static final MediaType ANY_IMAGE_TYPE; static final MediaType ANY_AUDIO_TYPE; static final MediaType ANY_VIDEO_TYPE; static final MediaType ANY_APPLICATION_TYPE; static final MediaType CACHE_MANIFEST_UTF_8; static final MediaType CSS_UTF_8; static final MediaType CSV_UTF_8; static final MediaType HTML_UTF_8; static final MediaType I_CALENDAR_UTF_8; static final MediaType PLAIN_TEXT_UTF_8; static final MediaType EVENT_STREAM; static final MediaType TEXT_JAVASCRIPT_UTF_8; static final MediaType TSV_UTF_8; static final MediaType VCARD_UTF_8; static final MediaType WML_UTF_8; static final MediaType XML_UTF_8; static final MediaType VTT_UTF_8; static final MediaType BMP; static final MediaType CRW; static final MediaType GIF; static final MediaType ICO; static final MediaType JPEG; static final MediaType PNG; static final MediaType PSD; static final MediaType SVG_UTF_8; static final MediaType TIFF; static final MediaType WEBP; static final MediaType MP4_AUDIO; static final MediaType MPEG_AUDIO; static final MediaType OGG_AUDIO; static final MediaType WEBM_AUDIO; static final MediaType L16_AUDIO; static final MediaType L24_AUDIO; static final MediaType BASIC_AUDIO; static final MediaType AAC_AUDIO; static final MediaType VORBIS_AUDIO; static final MediaType WMA_AUDIO; static final MediaType WAX_AUDIO; static final MediaType VND_REAL_AUDIO; static final MediaType VND_WAVE_AUDIO; static final MediaType MP4_VIDEO; static final MediaType MPEG_VIDEO; static final MediaType OGG_VIDEO; static final MediaType QUICKTIME; static final MediaType WEBM_VIDEO; static final MediaType WMV; static final MediaType FLV_VIDEO; static final MediaType THREE_GPP_VIDEO; static final MediaType THREE_GPP2_VIDEO; static final MediaType APPLICATION_XML_UTF_8; static final MediaType ATOM_UTF_8; static final MediaType BZIP2; static final MediaType DART_UTF_8; static final MediaType APPLE_PASSBOOK; static final MediaType EOT; static final MediaType EPUB; static final MediaType FORM_DATA; static final MediaType KEY_ARCHIVE; static final MediaType APPLICATION_BINARY; static final MediaType GEO_JSON; static final MediaType GZIP; static final MediaType HAL_JSON; static final MediaType JAVASCRIPT_UTF_8; static final MediaType JOSE; static final MediaType JOSE_JSON; static final MediaType JSON_UTF_8; static final MediaType JSON; static final MediaType JSON_PATCH; static final MediaType JSON_SEQ; static final MediaType MANIFEST_JSON_UTF_8; static final MediaType KML; static final MediaType KMZ; static final MediaType MBOX; static final MediaType APPLE_MOBILE_CONFIG; static final MediaType MICROSOFT_EXCEL; static final MediaType MICROSOFT_OUTLOOK; static final MediaType MICROSOFT_POWERPOINT; static final MediaType MICROSOFT_WORD; static final MediaType WASM_APPLICATION; static final MediaType NACL_APPLICATION; static final MediaType NACL_PORTABLE_APPLICATION; static final MediaType OCTET_STREAM; static final MediaType OGG_CONTAINER; static final MediaType OOXML_DOCUMENT; static final MediaType OOXML_PRESENTATION; static final MediaType OOXML_SHEET; static final MediaType OPENDOCUMENT_GRAPHICS; static final MediaType OPENDOCUMENT_PRESENTATION; static final MediaType OPENDOCUMENT_SPREADSHEET; static final MediaType OPENDOCUMENT_TEXT; static final MediaType PDF; static final MediaType POSTSCRIPT; static final MediaType PROTOBUF; static final MediaType RDF_XML_UTF_8; static final MediaType RTF_UTF_8; static final MediaType SFNT; static final MediaType SHOCKWAVE_FLASH; static final MediaType SKETCHUP; static final MediaType SOAP_XML_UTF_8; static final MediaType TAR; static final MediaType WOFF; static final MediaType WOFF2; static final MediaType XHTML_UTF_8; static final MediaType XRD_UTF_8; static final MediaType ZIP; }
@Test public void testEquals() { new EqualsTester() .addEqualityGroup( MediaType.create("text", "plain"), MediaType.create("TEXT", "PLAIN"), MediaType.parse("text/plain"), MediaType.parse("TEXT/PLAIN"), MediaType.create("text", "plain").withParameter("a", "1").withoutParameters()) .addEqualityGroup( MediaType.create("text", "plain").withCharset(UTF_8), MediaType.create("text", "plain").withParameter("CHARSET", "UTF-8"), MediaType.create("text", "plain") .withParameters(ImmutableMultimap.of("charset", "utf-8").asMap()), MediaType.parse("text/plain;charset=utf-8"), MediaType.parse("text/plain; charset=utf-8"), MediaType.parse("text/plain; charset=utf-8"), MediaType.parse("text/plain; \tcharset=utf-8"), MediaType.parse("text/plain; \r\n\tcharset=utf-8"), MediaType.parse("text/plain; CHARSET=utf-8"), MediaType.parse("text/plain; charset=\"utf-8\""), MediaType.parse("text/plain; charset=\"\\u\\tf-\\8\""), MediaType.parse("text/plain; charset=UTF-8"), MediaType.parse("text/plain ; charset=utf-8")) .addEqualityGroup(MediaType.parse("text/plain; charset=utf-8; charset=utf-8")) .addEqualityGroup( MediaType.create("text", "plain").withParameter("a", "value"), MediaType.create("text", "plain").withParameter("A", "value")) .addEqualityGroup( MediaType.create("text", "plain").withParameter("a", "VALUE"), MediaType.create("text", "plain").withParameter("A", "VALUE")) .addEqualityGroup( MediaType.create("text", "plain") .withParameters(ImmutableListMultimap.of("a", "1", "a", "2").asMap()), MediaType.create("text", "plain") .withParameters(ImmutableListMultimap.of("a", "2", "a", "1").asMap())) .addEqualityGroup(MediaType.create("text", "csv")) .addEqualityGroup(MediaType.create("application", "atom+xml")) .testEquals(); }