DomainWildcardMappingBuilder Class — netty Architecture
Architecture documentation for the DomainWildcardMappingBuilder class in DomainWildcardMappingBuilder.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 66ff1c37_4c85_96b1_f0ce_54b11bf7df4c["DomainWildcardMappingBuilder"] 653d8053_2ce6_0eaa_6829_31ac8dec04c8["DomainWildcardMappingBuilder.java"] 66ff1c37_4c85_96b1_f0ce_54b11bf7df4c -->|defined in| 653d8053_2ce6_0eaa_6829_31ac8dec04c8 5b46eba4_c463_3c2f_5ba1_c39db1152360["DomainWildcardMappingBuilder()"] 66ff1c37_4c85_96b1_f0ce_54b11bf7df4c -->|method| 5b46eba4_c463_3c2f_5ba1_c39db1152360 283de08a_c687_7f87_4202_5366e00e7bb4["add()"] 66ff1c37_4c85_96b1_f0ce_54b11bf7df4c -->|method| 283de08a_c687_7f87_4202_5366e00e7bb4 3acf92cd_1ce0_94d9_7748_898f4ecdfcca["String()"] 66ff1c37_4c85_96b1_f0ce_54b11bf7df4c -->|method| 3acf92cd_1ce0_94d9_7748_898f4ecdfcca 1330a497_c83b_52cf_3629_f6d11f144441["build()"] 66ff1c37_4c85_96b1_f0ce_54b11bf7df4c -->|method| 1330a497_c83b_52cf_3629_f6d11f144441
Relationship Graph
Source Code
common/src/main/java/io/netty/util/DomainWildcardMappingBuilder.java lines 28–159
public class DomainWildcardMappingBuilder<V> {
private final V defaultValue;
private final Map<String, V> map;
/**
* Constructor with default initial capacity of the map holding the mappings
*
* @param defaultValue the default value for {@link Mapping#map(Object)} )} to return
* when nothing matches the input
*/
public DomainWildcardMappingBuilder(V defaultValue) {
this(4, defaultValue);
}
/**
* Constructor with initial capacity of the map holding the mappings
*
* @param initialCapacity initial capacity for the internal map
* @param defaultValue the default value for {@link Mapping#map(Object)} to return
* when nothing matches the input
*/
public DomainWildcardMappingBuilder(int initialCapacity, V defaultValue) {
this.defaultValue = checkNotNull(defaultValue, "defaultValue");
map = new LinkedHashMap<String, V>(initialCapacity);
}
/**
* Adds a mapping that maps the specified (optionally wildcard) host name to the specified output value.
* {@code null} values are forbidden for both hostnames and values.
* <p>
* <a href="https://tools.ietf.org/search/rfc6125#section-6.4">DNS wildcard</a> is supported as hostname. The
* wildcard will only match one sub-domain deep and only when wildcard is used as the most-left label.
*
* For example:
*
* <p>
* *.netty.io will match xyz.netty.io but NOT abc.xyz.netty.io
* </p>
*
* @param hostname the host name (optionally wildcard)
* @param output the output value that will be returned by {@link Mapping#map(Object)}
* when the specified host name matches the specified input host name
*/
public DomainWildcardMappingBuilder<V> add(String hostname, V output) {
map.put(normalizeHostName(hostname),
checkNotNull(output, "output"));
return this;
}
private String normalizeHostName(String hostname) {
checkNotNull(hostname, "hostname");
if (hostname.isEmpty() || hostname.charAt(0) == '.') {
throw new IllegalArgumentException("Hostname '" + hostname + "' not valid");
}
hostname = ImmutableDomainWildcardMapping.normalize(checkNotNull(hostname, "hostname"));
if (hostname.charAt(0) == '*') {
if (hostname.length() < 3 || hostname.charAt(1) != '.') {
throw new IllegalArgumentException("Wildcard Hostname '" + hostname + "'not valid");
}
return hostname.substring(1);
}
return hostname;
}
/**
* Creates a new instance of an immutable {@link Mapping}.
*
* @return new {@link Mapping} instance
*/
public Mapping<String, V> build() {
return new ImmutableDomainWildcardMapping<V>(defaultValue, map);
}
private static final class ImmutableDomainWildcardMapping<V> implements Mapping<String, V> {
private static final String REPR_HEADER = "ImmutableDomainWildcardMapping(default: ";
private static final String REPR_MAP_OPENING = ", map: ";
private static final String REPR_MAP_CLOSING = ")";
private final V defaultValue;
private final Map<String, V> map;
Source
Frequently Asked Questions
What is the DomainWildcardMappingBuilder class?
DomainWildcardMappingBuilder is a class in the netty codebase, defined in common/src/main/java/io/netty/util/DomainWildcardMappingBuilder.java.
Where is DomainWildcardMappingBuilder defined?
DomainWildcardMappingBuilder is defined in common/src/main/java/io/netty/util/DomainWildcardMappingBuilder.java at line 28.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free