in src/main/java/org/apache/commons/configuration2/convert/LegacyListDelimiterHandler.java [180:234]
protected Collection<String> splitString(final String s, final boolean trim) {
if (s.indexOf(getDelimiter()) < 0) {
return Collections.singleton(s);
}
final List<String> list = new ArrayList<>();
StringBuilder token = new StringBuilder();
int begin = 0;
boolean inEscape = false;
final char esc = ESCAPE.charAt(0);
while (begin < s.length()) {
final char c = s.charAt(begin);
if (inEscape) {
// last character was the escape marker
// can current character be escaped?
if (c != getDelimiter() && c != esc) {
// no, also add escape character
token.append(esc);
}
token.append(c);
inEscape = false;
} else if (c == getDelimiter()) {
// found a list delimiter -> add token and
// resetDefaultFileSystem buffer
String t = token.toString();
if (trim) {
t = t.trim();
}
list.add(t);
token = new StringBuilder();
} else if (c == esc) {
// eventually escape next character
inEscape = true;
} else {
token.append(c);
}
begin++;
}
// Trailing delimiter?
if (inEscape) {
token.append(esc);
}
// Add last token
String t = token.toString();
if (trim) {
t = t.trim();
}
list.add(t);
return list;
}