}
private void parse() {
parsed = true;
RawField f = getRawField();
RawBody body = RawFieldParser.DEFAULT.parseRawBody(f);
String main = body.getValue();
String type = null;
String subtype = null;
if (main != null) {
main = main.toLowerCase().trim();
int index = main.indexOf('/');
boolean valid = false;
if (index != -1) {
type = main.substring(0, index).trim();
subtype = main.substring(index + 1).trim();
if (type.length() > 0 && subtype.length() > 0) {
main = type + "/" + subtype;
valid = true;
}
}
if (!valid) {
if (monitor.isListening()) {
monitor.warn("Invalid Content-Type: " + body, "Content-Type value ignored");
}
main = null;
type = null;
subtype = null;
}
}
mimeType = main;
mediaType = type;
subType = subtype;
parameters.clear();
for (NameValuePair nmp: body.getParams()) {
String name = nmp.getName().toLowerCase(Locale.US);
parameters.put(name, nmp.getValue());
}
}