Home / Class/ ImmutableDomainWildcardMapping Class — netty Architecture

ImmutableDomainWildcardMapping Class — netty Architecture

Architecture documentation for the ImmutableDomainWildcardMapping class in DomainWildcardMappingBuilder.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  1b688622_d3ad_614c_6e06_5e6f7bf6585c["ImmutableDomainWildcardMapping"]
  653d8053_2ce6_0eaa_6829_31ac8dec04c8["DomainWildcardMappingBuilder.java"]
  1b688622_d3ad_614c_6e06_5e6f7bf6585c -->|defined in| 653d8053_2ce6_0eaa_6829_31ac8dec04c8
  065c7eed_c01c_c1c0_0a1b_73d5a27a73d6["ImmutableDomainWildcardMapping()"]
  1b688622_d3ad_614c_6e06_5e6f7bf6585c -->|method| 065c7eed_c01c_c1c0_0a1b_73d5a27a73d6
  3dbdfbfa_85e8_6086_2783_ed1a8d86ce53["V()"]
  1b688622_d3ad_614c_6e06_5e6f7bf6585c -->|method| 3dbdfbfa_85e8_6086_2783_ed1a8d86ce53
  d33fa659_e844_479c_869c_14e039b1beec["String()"]
  1b688622_d3ad_614c_6e06_5e6f7bf6585c -->|method| d33fa659_e844_479c_869c_14e039b1beec

Relationship Graph

Source Code

common/src/main/java/io/netty/util/DomainWildcardMappingBuilder.java lines 101–158

    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;

        ImmutableDomainWildcardMapping(V defaultValue, Map<String, V> map) {
            this.defaultValue = defaultValue;
            this.map = new LinkedHashMap<String, V>(map);
        }

        @Override
        public V map(String hostname) {
            if (hostname != null) {
                hostname = normalize(hostname);

                // Let's try an exact match first
                V value = map.get(hostname);
                if (value != null) {
                    return value;
                }

                // No exact match, let's try a wildcard match.
                int idx = hostname.indexOf('.');
                if (idx != -1) {
                    value = map.get(hostname.substring(idx));
                    if (value != null) {
                        return value;
                    }
                }
            }

            return defaultValue;
        }

        @SuppressWarnings("deprecation")
        static String normalize(String hostname) {
            return DomainNameMapping.normalizeHostname(hostname);
        }

        @Override
        public String toString() {
            StringBuilder sb = new StringBuilder();
            sb.append(REPR_HEADER).append(defaultValue).append(REPR_MAP_OPENING).append('{');

            for (Map.Entry<String, V> entry : map.entrySet()) {
                String hostname = entry.getKey();
                if (hostname.charAt(0) == '.') {
                    hostname = '*' + hostname;
                }
                sb.append(hostname).append('=').append(entry.getValue()).append(", ");
            }
            sb.setLength(sb.length() - 2);
            return sb.append('}').append(REPR_MAP_CLOSING).toString();
        }
    }

Frequently Asked Questions

What is the ImmutableDomainWildcardMapping class?
ImmutableDomainWildcardMapping is a class in the netty codebase, defined in common/src/main/java/io/netty/util/DomainWildcardMappingBuilder.java.
Where is ImmutableDomainWildcardMapping defined?
ImmutableDomainWildcardMapping is defined in common/src/main/java/io/netty/util/DomainWildcardMappingBuilder.java at line 101.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free