protected String parseParameterizedValue(String line, Map<String, Object> atts, Map<String, String> dirs) {
IllegalArgumentAssertion.assertNotNull(line, "line");
String mainvalue = null;
for (String part : ElementParser.parseDelimitedString(line, ';', true)) {
if (part.indexOf(":=") > 0) {
int index = part.indexOf(":=");
String key = part.substring(0, index);
String value = unquote(part.substring(index + 2));
dirs.put(key.trim(), value);
} else if (part.indexOf('=') > 0) {
int index = part.indexOf('=');
String keystr = part.substring(0, index);
Object value = getAttributeValue(keystr, part.substring(index + 1));
atts.put(getAttributeKey(keystr), value);
} else if (mainvalue == null) {
mainvalue = part;
} else {
throw new IllegalArgumentException("Cannot parse: " + line);
}
}
return mainvalue;
}