if (piece.indexOf('=') >= 0) break; paths.add(unquote(piece)); if (directives == null) directives = new HashMap<String, Parameter>(); String unquoted = unquote(name); if (directives.containsKey(unquoted)) throw new IllegalStateException("Dupicate directive: " + unquoted); directives.put(unquoted, new AbstractParameter(unquote(value))); } else { seperator = piece.indexOf("="); if (attributes == null) attributes = new HashMap<String, Parameter>(); String unquoted = unquote(name); Parameter attribute = attributes.get(unquoted); if (attribute != null) { attributes.put(unquoted, attribute); attribute.addValue(unquote(value)); } else { throw new IllegalArgumentException("Path " + piece + " should appear before attributes and directives in " + clause);