class MediaType {

    public MediaType withCharset(final String charset) {
        return new MediaType(this.type, this.subtype, charset, createParametersMap(this.parameters));
    }

    public  MediaType(final String type, final String subtype, final Map<String, String> parameters);
    public  MediaType(final String type, final String subtype);
    public  MediaType(final String type, final String subtype, final String charset);
    public  MediaType();
    private  MediaType(final String type, final String subtype, final String charset, Map<String, String> parameterMap);

}