Package io.netty.util

Class DomainWildcardMappingBuilder<V>

java.lang.Object
io.netty.util.DomainWildcardMappingBuilder<V>
Type Parameters:
V - the type of the value that we map to.

public class DomainWildcardMappingBuilder<V> extends Object
Builder that allows to build Mappings that support DNS wildcard matching.
  • Field Details

    • defaultValue

      private final V defaultValue
    • map

      private final Map<String,V> map
  • Constructor Details

    • DomainWildcardMappingBuilder

      public DomainWildcardMappingBuilder(V defaultValue)
      Constructor with default initial capacity of the map holding the mappings
      Parameters:
      defaultValue - the default value for Mapping.map(Object) )} to return when nothing matches the input
    • DomainWildcardMappingBuilder

      public DomainWildcardMappingBuilder(int initialCapacity, V defaultValue)
      Constructor with initial capacity of the map holding the mappings
      Parameters:
      initialCapacity - initial capacity for the internal map
      defaultValue - the default value for Mapping.map(Object) to return when nothing matches the input
  • Method Details

    • add

      public DomainWildcardMappingBuilder<V> add(String hostname, V output)
      Adds a mapping that maps the specified (optionally wildcard) host name to the specified output value. null values are forbidden for both hostnames and values.

      DNS wildcard 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:

      *.netty.io will match xyz.netty.io but NOT abc.xyz.netty.io

      Parameters:
      hostname - the host name (optionally wildcard)
      output - the output value that will be returned by Mapping.map(Object) when the specified host name matches the specified input host name
    • normalizeHostName

      private String normalizeHostName(String hostname)
    • build

      public Mapping<String,V> build()
      Creates a new instance of an immutable Mapping.
      Returns:
      new Mapping instance