ImmutableDomainNameMapping Class — netty Architecture
Architecture documentation for the ImmutableDomainNameMapping class in DomainNameMappingBuilder.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 3d0847f8_b839_0e5d_4c34_8fa3423b62b5["ImmutableDomainNameMapping"] 294da090_10a1_718d_ed47_827fca44dc48["DomainNameMappingBuilder.java"] 3d0847f8_b839_0e5d_4c34_8fa3423b62b5 -->|defined in| 294da090_10a1_718d_ed47_827fca44dc48 0fafaa25_b5ef_2039_472b_aefea59f1fb0["ImmutableDomainNameMapping()"] 3d0847f8_b839_0e5d_4c34_8fa3423b62b5 -->|method| 0fafaa25_b5ef_2039_472b_aefea59f1fb0 db385a5c_0a41_07fd_a53c_353473c35f3f["add()"] 3d0847f8_b839_0e5d_4c34_8fa3423b62b5 -->|method| db385a5c_0a41_07fd_a53c_353473c35f3f 441838a1_c85c_1c1e_d8fd_ceba5034210b["V()"] 3d0847f8_b839_0e5d_4c34_8fa3423b62b5 -->|method| 441838a1_c85c_1c1e_d8fd_ceba5034210b d87c2b1b_91cb_53c0_c9ee_afbaae0a38a6["asMap()"] 3d0847f8_b839_0e5d_4c34_8fa3423b62b5 -->|method| d87c2b1b_91cb_53c0_c9ee_afbaae0a38a6 d5301318_3a63_60d5_7961_c8f8ce2164ef["String()"] 3d0847f8_b839_0e5d_4c34_8fa3423b62b5 -->|method| d5301318_3a63_60d5_7961_c8f8ce2164ef 248a8fa7_3b6d_8e20_58b0_cb60a0188e17["estimateBufferSize()"] 3d0847f8_b839_0e5d_4c34_8fa3423b62b5 -->|method| 248a8fa7_3b6d_8e20_58b0_cb60a0188e17 60be4061_cb84_9458_3bc4_4e9197fcf07f["StringBuilder()"] 3d0847f8_b839_0e5d_4c34_8fa3423b62b5 -->|method| 60be4061_cb84_9458_3bc4_4e9197fcf07f
Relationship Graph
Source Code
common/src/main/java/io/netty/util/DomainNameMappingBuilder.java lines 93–205
private static final class ImmutableDomainNameMapping<V> extends DomainNameMapping<V> {
private static final String REPR_HEADER = "ImmutableDomainNameMapping(default: ";
private static final String REPR_MAP_OPENING = ", map: {";
private static final String REPR_MAP_CLOSING = "})";
private static final int REPR_CONST_PART_LENGTH =
REPR_HEADER.length() + REPR_MAP_OPENING.length() + REPR_MAP_CLOSING.length();
private final String[] domainNamePatterns;
private final V[] values;
private final Map<String, V> map;
@SuppressWarnings("unchecked")
private ImmutableDomainNameMapping(V defaultValue, Map<String, V> map) {
super(null, defaultValue);
Set<Map.Entry<String, V>> mappings = map.entrySet();
int numberOfMappings = mappings.size();
domainNamePatterns = new String[numberOfMappings];
values = (V[]) new Object[numberOfMappings];
final Map<String, V> mapCopy = new LinkedHashMap<String, V>(map.size());
int index = 0;
for (Map.Entry<String, V> mapping : mappings) {
final String hostname = normalizeHostname(mapping.getKey());
final V value = mapping.getValue();
domainNamePatterns[index] = hostname;
values[index] = value;
mapCopy.put(hostname, value);
++index;
}
this.map = Collections.unmodifiableMap(mapCopy);
}
@Override
@Deprecated
public DomainNameMapping<V> add(String hostname, V output) {
throw new UnsupportedOperationException(
"Immutable DomainNameMapping does not support modification after initial creation");
}
@Override
public V map(String hostname) {
if (hostname != null) {
hostname = normalizeHostname(hostname);
int length = domainNamePatterns.length;
for (int index = 0; index < length; ++index) {
if (matches(domainNamePatterns[index], hostname)) {
return values[index];
}
}
}
return defaultValue;
}
@Override
public Map<String, V> asMap() {
return map;
}
@Override
public String toString() {
String defaultValueStr = defaultValue.toString();
int numberOfMappings = domainNamePatterns.length;
if (numberOfMappings == 0) {
return REPR_HEADER + defaultValueStr + REPR_MAP_OPENING + REPR_MAP_CLOSING;
}
String pattern0 = domainNamePatterns[0];
String value0 = values[0].toString();
int oneMappingLength = pattern0.length() + value0.length() + 3; // 2 for separator ", " and 1 for '='
int estimatedBufferSize = estimateBufferSize(defaultValueStr.length(), numberOfMappings, oneMappingLength);
StringBuilder sb = new StringBuilder(estimatedBufferSize)
.append(REPR_HEADER).append(defaultValueStr).append(REPR_MAP_OPENING);
appendMapping(sb, pattern0, value0);
for (int index = 1; index < numberOfMappings; ++index) {
Source
Frequently Asked Questions
What is the ImmutableDomainNameMapping class?
ImmutableDomainNameMapping is a class in the netty codebase, defined in common/src/main/java/io/netty/util/DomainNameMappingBuilder.java.
Where is ImmutableDomainNameMapping defined?
ImmutableDomainNameMapping is defined in common/src/main/java/io/netty/util/DomainNameMappingBuilder.java at line 93.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free