Class MediaType

java.lang.Object
software.amazon.smithy.utils.MediaType

public final class MediaType extends Object
Implements a simple media type parser based on the Content-Type grammar defined in RFC 7231.

The type, subtype, and parameter names are all canonicalized to lowercase strings.

  • Method Details

    • from

      public static MediaType from(String value)
      Create a parsed MediaType from the given string.
      Parameters:
      value - Media type to parse (e.g., application/json).
      Returns:
      Returns the parsed media type.
      Throws:
      RuntimeException - if the media type is invalid.
    • isJson

      public static boolean isJson(String mediaType)
      Detects if the given media type string is JSON, meaning it is "application/json" or uses the "+json" structured syntax suffix.
      Parameters:
      mediaType - Media type to parse and test if it's JSON.
      Returns:
      Returns true if the given media type is JSON.
    • getType

      public String getType()
      Gets the "type" of the media type.
      Returns:
      Returns the type (e.g., "application").
    • getSubtype

      public String getSubtype()
      Gets the "subtype" of the media type.
      Returns:
      Returns the subtype (e.g., "json", "foo+json").
    • getSubtypeWithoutSuffix

      public String getSubtypeWithoutSuffix()
      Gets the "subtype" of the media type with no structured syntax suffix.

      For example given, "application/foo+json", this method returns "foo". Given "application/foo+baz+json", this method returns "foo+baz".

      Returns:
      Returns the subtype (e.g., "json", "foo+json").
    • getParameters

      public Map<String,String> getParameters()
      Gets the immutable map of parameters.
      Returns:
      Returns the parameters.
    • getSuffix

      public Optional<String> getSuffix()
      Gets the optional structured syntax suffix.

      For example given, "application/foo+json", this method returns "json". Given "application/foo+baz+json", this method returns "json". Given "application/json", this method returns an empty Optional.

      Returns:
      Returns the optional structured syntax suffix value with no "+".
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object