Class EffectiveTldFinder.EffectiveTLD

  • Enclosing class:
    EffectiveTldFinder

    public static class EffectiveTldFinder.EffectiveTLD
    extends Object
    EffectiveTLD objects hold one line of the public suffix list:
    • the suffix (com, co.uk, etc.)
    • for IDN suffixes: both the ASCII and IDN variant (xn--p1ai and рф)
    • and the properties required to parse host/domain names given in the public suffix list:
      • whether it's a wildcard suffix (*.kawasaki.jp),
      • or an exception to a wildcard rule (!city.kawasaki.jp,
      • or whether the suffix is in the private domain section
    • for Internationalized Domain Names (IDNs) both the Unicode and ASCII representation
    In addition, EffectiveTLD is used to hold the result of a public suffix match returned by EffectiveTldFinder.getEffectiveTLD(String, boolean). A match result also includes the literally matched suffix which is distinct from the public suffix in case of wildcard suffixes or, eventually, for Internationalized Domain Names (IDNs).
    • Constructor Detail

      • EffectiveTLD

        public EffectiveTLD​(String line,
                            boolean isPrivateDomain)
                     throws IllegalArgumentException
        Parse one non-empty, non-comment line in the public suffix list and hold the public suffix and its properties in the created object.
        Parameters:
        line - non-empty, non-comment line in the public suffix list
        isPrivateDomain - whether line is in the section of "PRIVATE DOMAINS" of the public suffix list
        Throws:
        IllegalArgumentException - if the input line contains non-ASCII Unicode characters prohibited in IDNs, cf. IDN.toASCII(String)
    • Method Detail

      • getNameVariants

        public Set<String> getNameVariants()
        Generate name variants caused by Internationalized Domain Names: every IDN part of a eTLD can be replaced by its punycoded ASCII variant. For two-part IDN eTLDs this will generate 4 variants.
        Returns:
        set of variant names
      • getSuffix

        public String getSuffix()
        Returns:
        the public suffix string from the public suffix list, for Unicode suffixes the ASCII (Punycode) representation
      • getUnicodeDomain

        public String getUnicodeDomain()
        Returns:
        the Unicode version of a public suffix or null if it's not an IDN suffix
      • isWild

        @Deprecated
        public boolean isWild()
        Deprecated.
        since 1.6 - replaced by isWildcard()
        Returns:
        true if the public suffix (effective TLD) is a wildcard suffix (e.g., *.kawasaki.jp)
      • isWildcard

        public boolean isWildcard()
        Returns:
        true if the public suffix (effective TLD) is a wildcard suffix (e.g., *.kawasaki.jp)
      • isException

        public boolean isException()
        Returns:
        true if the public suffix (effective TLD) is an exception to a wildcard suffix (e.g., !city.kawasaki.jp)