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; }