unescapeCsvFields() — netty Function Reference
Architecture documentation for the unescapeCsvFields() function in StringUtil.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD bd846ba1_12ef_ee83_8fdc_f5983f04e319["unescapeCsvFields()"] 2bdecda8_5186_4936_ca05_ebee455a476a["StringUtil"] bd846ba1_12ef_ee83_8fdc_f5983f04e319 -->|defined in| 2bdecda8_5186_4936_ca05_ebee455a476a 9ae04130_cb77_ad88_9318_e6bd1d7cbcd4["length()"] bd846ba1_12ef_ee83_8fdc_f5983f04e319 -->|calls| 9ae04130_cb77_ad88_9318_e6bd1d7cbcd4 style bd846ba1_12ef_ee83_8fdc_f5983f04e319 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
common/src/main/java/io/netty/util/internal/StringUtil.java lines 495–557
public static List<CharSequence> unescapeCsvFields(CharSequence value) {
List<CharSequence> unescaped = new ArrayList<CharSequence>(2);
StringBuilder current = InternalThreadLocalMap.get().stringBuilder();
boolean quoted = false;
int last = value.length() - 1;
for (int i = 0; i <= last; i++) {
char c = value.charAt(i);
if (quoted) {
switch (c) {
case DOUBLE_QUOTE:
if (i == last) {
// Add the last field and return
unescaped.add(current.toString());
return unescaped;
}
char next = value.charAt(++i);
if (next == DOUBLE_QUOTE) {
// 2 double-quotes should be unescaped to one
current.append(DOUBLE_QUOTE);
break;
}
if (next == COMMA) {
// This is the end of a field. Let's start to parse the next field.
quoted = false;
unescaped.add(current.toString());
current.setLength(0);
break;
}
// double-quote followed by other character is invalid
throw newInvalidEscapedCsvFieldException(value, i - 1);
default:
current.append(c);
}
} else {
switch (c) {
case COMMA:
// Start to parse the next field
unescaped.add(current.toString());
current.setLength(0);
break;
case DOUBLE_QUOTE:
if (current.length() == 0) {
quoted = true;
break;
}
// double-quote appears without being enclosed with double-quotes
// fall through
case LINE_FEED:
// fall through
case CARRIAGE_RETURN:
// special characters appears without being enclosed with double-quotes
throw newInvalidEscapedCsvFieldException(value, i);
default:
current.append(c);
}
}
}
if (quoted) {
throw newInvalidEscapedCsvFieldException(value, last);
}
unescaped.add(current.toString());
return unescaped;
}
Domain
Subdomains
Calls
Source
Frequently Asked Questions
What does unescapeCsvFields() do?
unescapeCsvFields() is a function in the netty codebase, defined in common/src/main/java/io/netty/util/internal/StringUtil.java.
Where is unescapeCsvFields() defined?
unescapeCsvFields() is defined in common/src/main/java/io/netty/util/internal/StringUtil.java at line 495.
What does unescapeCsvFields() call?
unescapeCsvFields() calls 1 function(s): length.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free