@Beta @GwtCompatible public final class InternetDomainName extends Object
com or foo.co.uk. Only syntactic analysis is performed; no DNS lookups or other
 network interactions take place. Thus there is no guarantee that the domain
 actually exists on the internet.
 One common use of this class is to determine whether a given string is
 likely to represent an addressable domain on the web -- that is, for a
 candidate string "xxx", might browsing to "http://xxx/"
 result in a webpage being displayed? In the past, this test was frequently
 done by determining whether the domain ended with a public suffix but was not itself a public suffix. However,
 this test is no longer accurate. There are many domains which are both public
 suffixes and addressable as hosts; "uk.com" is one example. As a
 result, the only useful test to determine if a domain is a plausible web host
 is hasPublicSuffix(). This will return true for many domains
 which (currently) are not hosts, such as "com", but given that any
 public suffix may become a host without warning, it is better to err on the
 side of permissiveness and thus avoid spurious rejection of valid sites.
 
During construction, names are normalized in two ways:
'.') are
 converted to the ASCII period.
 The normalized values will be returned from toString() and
 parts(), and will be reflected in the result of
 equals(Object).
 
 Internationalized domain names such as 网络.cn are supported, as
 are the equivalent IDNA
 Punycode-encoded versions.
| Modifier and Type | Method and Description | 
|---|---|
| InternetDomainName | child(String leftParts)Creates and returns a new  InternetDomainNameby prepending the
 argument and a dot to the current name. | 
| boolean | equals(Object object)Equality testing is based on the text supplied by the caller,
 after normalization as described in the class documentation. | 
| static InternetDomainName | from(String domain)Returns an instance of  InternetDomainNameafter lenient
 validation. | 
| int | hashCode() | 
| boolean | hasParent()Indicates whether this domain is composed of two or more parts. | 
| boolean | hasPublicSuffix()Indicates whether this domain name ends in a public suffix, including if it is a public suffix itself. | 
| boolean | isPublicSuffix()Indicates whether this domain name represents a public suffix, as
 defined by the Mozilla Foundation's
 Public Suffix List (PSL). | 
| boolean | isTopPrivateDomain()Indicates whether this domain name is composed of exactly one subdomain
 component followed by a public suffix. | 
| boolean | isUnderPublicSuffix()Indicates whether this domain name ends in a public suffix, while not being a public suffix itself. | 
| static boolean | isValid(String name)Indicates whether the argument is a syntactically valid domain name using
 lenient validation. | 
| InternetDomainName | parent()Returns an  InternetDomainNamethat is the immediate ancestor of
 this one; that is, the current domain with the leftmost part removed. | 
| ImmutableList<String> | parts()Returns the individual components of this domain name, normalized to all
 lower case. | 
| InternetDomainName | publicSuffix()Returns the public suffix portion of the
 domain name, or  nullif no public suffix is present. | 
| InternetDomainName | topPrivateDomain()Returns the portion of this domain name that is one level beneath the
 public suffix. | 
| String | toString()Returns the domain name, normalized to all lower case. | 
public static InternetDomainName from(String domain)
InternetDomainName after lenient
 validation.  Specifically, validation against RFC 3490
 ("Internationalizing Domain Names in Applications") is skipped, while
 validation against RFC 1035 is relaxed in
 the following ways:
 domain - A domain name (not IP address)IllegalArgumentException - if name is not syntactically valid
     according to isValid(java.lang.String)fromLenient)public ImmutableList<String> parts()
mail.google.com, this
 method returns the list ["mail", "google", "com"].public boolean isPublicSuffix()
com, co.uk or pvt.k12.wy.us. Examples of domain
 names that are not public suffixes include google, google.com and foo.co.uk.true if this domain name appears exactly on the public
     suffix listpublic boolean hasPublicSuffix()
true for www.google.com, foo.co.uk and
 com, but not for google or google.foo. This is
 the recommended method for determining whether a domain is potentially an
 addressable host.public InternetDomainName publicSuffix()
null if no public suffix is present.public boolean isUnderPublicSuffix()
true for www.google.com, foo.co.uk and
 bar.ca.us, but not for google, com, or google.foo.
 Warning: a false result from this method does not imply
 that the domain does not represent an addressable host, as many public
 suffixes are also addressable hosts. Use hasPublicSuffix() for
 that test.
 
This method can be used to determine whether it will probably be possible to set cookies on the domain, though even that depends on individual browsers' implementations of cookie controls. See RFC 2109 for details.
public boolean isTopPrivateDomain()
true for google.com and foo.co.uk,
 but not for www.google.com or co.uk.
 Warning: A true result from this method does not imply
 that the domain is at the highest level which is addressable as a host, as
 many public suffixes are also addressable hosts. For example, the domain
 bar.uk.com has a public suffix of uk.com, so it would
 return true from this method. But uk.com is itself an
 addressable host.
 
This method can be used to determine whether a domain is probably the highest level for which cookies may be set, though even that depends on individual browsers' implementations of cookie controls. See RFC 2109 for details.
public InternetDomainName topPrivateDomain()
x.adwords.google.co.uk it returns
 google.co.uk, since co.uk is a public suffix.
 If isTopPrivateDomain() is true, the current domain name
 instance is returned.
 
This method should not be used to determine the topmost parent domain
 which is addressable as a host, as many public suffixes are also
 addressable hosts. For example, the domain foo.bar.uk.com has
 a public suffix of uk.com, so it would return bar.uk.com
 from this method. But uk.com is itself an addressable host.
 
This method can be used to determine the probable highest level parent domain for which cookies may be set, though even that depends on individual browsers' implementations of cookie controls.
IllegalStateException - if this domain does not end with a
     public suffixpublic boolean hasParent()
public InternetDomainName parent()
InternetDomainName that is the immediate ancestor of
 this one; that is, the current domain with the leftmost part removed. For
 example, the parent of www.google.com is google.com.IllegalStateException - if the domain has no parent, as determined
     by hasParent()public InternetDomainName child(String leftParts)
InternetDomainName by prepending the
 argument and a dot to the current name. For example, InternetDomainName.from("foo.com").child("www.bar") returns a new
 InternetDomainName with the value www.bar.foo.com. Only
 lenient validation is performed, as described here.NullPointerException - if leftParts is nullIllegalArgumentException - if the resulting name is not validpublic static boolean isValid(String name)
The following two code snippets are equivalent:
   domainName = InternetDomainName.isValid(name)
       ? InternetDomainName.from(name)
       : DEFAULT_DOMAIN;
    try {
     domainName = InternetDomainName.from(name);
   } catch (IllegalArgumentException e) {
     domainName = DEFAULT_DOMAIN;
   }isValidLenient)public boolean equals(@Nullable Object object)
Copyright © 2010-2015. All Rights Reserved.