UrlDecoder Class — netty Architecture
Architecture documentation for the UrlDecoder class in HttpPostStandardRequestDecoder.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 9b054005_526c_b786_7ba7_c57595aa32ad["UrlDecoder"] aef5f11a_4b54_0423_5943_aa0ce050ca0a["HttpPostStandardRequestDecoder.java"] 9b054005_526c_b786_7ba7_c57595aa32ad -->|defined in| aef5f11a_4b54_0423_5943_aa0ce050ca0a 183a8c5f_e92a_096c_ee5a_bc86d5677d66["UrlDecoder()"] 9b054005_526c_b786_7ba7_c57595aa32ad -->|method| 183a8c5f_e92a_096c_ee5a_bc86d5677d66 f14266b0_69f9_4dca_8926_045fa8ecf4bb["process()"] 9b054005_526c_b786_7ba7_c57595aa32ad -->|method| f14266b0_69f9_4dca_8926_045fa8ecf4bb
Relationship Graph
Source Code
codec-http/src/main/java/io/netty/handler/codec/http/multipart/HttpPostStandardRequestDecoder.java lines 683–718
private static final class UrlDecoder implements ByteProcessor {
private final ByteBuf output;
private int nextEscapedIdx;
private byte hiByte;
UrlDecoder(ByteBuf output) {
this.output = output;
}
@Override
public boolean process(byte value) {
if (nextEscapedIdx != 0) {
if (nextEscapedIdx == 1) {
hiByte = value;
++nextEscapedIdx;
} else {
int hi = StringUtil.decodeHexNibble((char) hiByte);
int lo = StringUtil.decodeHexNibble((char) value);
if (hi == -1 || lo == -1) {
++nextEscapedIdx;
return false;
}
output.writeByte((hi << 4) + lo);
nextEscapedIdx = 0;
}
} else if (value == '%') {
nextEscapedIdx = 1;
} else if (value == '+') {
output.writeByte(' ');
} else {
output.writeByte(value);
}
return true;
}
}
Defined In
Source
Frequently Asked Questions
What is the UrlDecoder class?
UrlDecoder is a class in the netty codebase, defined in codec-http/src/main/java/io/netty/handler/codec/http/multipart/HttpPostStandardRequestDecoder.java.
Where is UrlDecoder defined?
UrlDecoder is defined in codec-http/src/main/java/io/netty/handler/codec/http/multipart/HttpPostStandardRequestDecoder.java at line 683.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free