o.get(MSGCTXT_KEY)
);
}
private static Map<String, String> parseRecursive(String query, Map<String, String> accumulator) {
MatchResult keyMatch = keyRegex.exec(query);
String key, remainder;
if (keyMatch != null) {
key = keyMatch.getGroup(1);
remainder = keyMatch.getGroup(2);
} else {
key = KEYS[DEFAULT_KEY];
remainder = query;
}
MatchResult valMatch = valRegex.exec(remainder);
String val, nextPart;
if (valMatch != null) {
val = valMatch.getGroup(1);
nextPart = valMatch.getGroup(2);
} else {
val = remainder;
nextPart = "";
}
if (KEYS_WITH_SINGLE_VALUE.contains(key)) {
MatchResult wordMatch = leadingWordRegex.exec(val);
if (wordMatch != null) {
val = wordMatch.getGroup(1);
String otherWords = wordMatch.getGroup(2);
if (!Strings.isNullOrEmpty(otherWords.trim())) {
joinValue(accumulator, KEYS[DEFAULT_KEY], otherWords);
}
}
}