## org.codehaus.groovy.grails.validation.routines
Class DomainValidator

    java.lang.Object
      org.codehaus.groovy.grails.validation.routines.DomainValidator

All Implemented Interfaces:
  Serializable

    public class DomainValidator

extends Object
implements Serializable

Domain name validation routines.

This validator provides methods for validating Internet domain names and top-level domains.

Domain names are evaluated according to the standards RFC1034, section 3, and RFC1123, section 2.1. No accomodation is provided for the specialized needs of other applications; if the domain name has been URL-encoded, for example, validation will fail even though the equivalent plaintext version of the same name would have passed.

Validation is also provided for top-level domains (TLDs) as defined and maintained by the Internet Assigned Numbers Authority (IANA):

- `isValidInfrastructureTld(java.lang.String)` - validates infrastructure TLDs (`.arpa`, etc.)
- `isValidGenericTld(java.lang.String)` - validates generic TLDs (`.com, .org`, etc.)
- `isValidCountryCodeTld(java.lang.String)` - validates country code TLDs (`.us, .uk, .cn`, etc.)

(NOTE: This class does not provide IP address lookup for domain names or methods to ensure that a given domain name matches a specific IP; see `InetAddress` for that functionality.)

Since:
  Validator 1.4
Version:
  $Revision: 594958 $ $Date: 2007-11-14 20:22:17 +0300 (Ср, 14 ноя 2007) $
See Also:
  Serialized Form

Method Summary
`static DomainValidator` `getInstance()` Returns the singleton instance of this validator.
`boolean` `isValid(String domain)` Returns true if the specified `String` parses as a valid domain name with a recognized top-level domain.
`boolean` `isValidCountryCodeTld(String ccTld)` Returns true if the specified `String` matches any IANA-defined country code top-level domain.
`boolean` `isValidGenericTld(String gTld)` Returns true if the specified `String` matches any IANA-defined generic top-level domain.
`boolean` `isValidInfrastructureTld(String iTld)` Returns true if the specified `String` matches any IANA-defined infrastructure top-level domain.
`boolean` `isValidTld(String tld)` Returns true if the specified `String` matches any IANA-defined top-level domain.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### getInstance

    public static DomainValidator getInstance()

  Returns the singleton instance of this validator.

  Returns:
    the singleton instance of this validator

### isValid

    public boolean isValid(String domain)

  Returns true if the specified `String` parses as a valid domain name with a recognized top-level domain. The parsing is case-sensitive.

  Parameters:
    `domain` - the parameter to check for domain name syntax
  Returns:
    true if the parameter is a valid domain name

### isValidTld

    public boolean isValidTld(String tld)

  Returns true if the specified `String` matches any IANA-defined top-level domain. Leading dots are ignored if present. The search is case-sensitive.

  Parameters:
    `tld` - the parameter to check for TLD status
  Returns:
    true if the parameter is a TLD

### isValidInfrastructureTld

    public boolean isValidInfrastructureTld(String iTld)

  Returns true if the specified `String` matches any IANA-defined infrastructure top-level domain. Leading dots are ignored if present. The search is case-sensitive.

  Parameters:
    `iTld` - the parameter to check for infrastructure TLD status
  Returns:
    true if the parameter is an infrastructure TLD

### isValidGenericTld

    public boolean isValidGenericTld(String gTld)

  Returns true if the specified `String` matches any IANA-defined generic top-level domain. Leading dots are ignored if present. The search is case-sensitive.

  Parameters:
    `gTld` - the parameter to check for generic TLD status
  Returns:
    true if the parameter is a generic TLD

### isValidCountryCodeTld

    public boolean isValidCountryCodeTld(String ccTld)

  Returns true if the specified `String` matches any IANA-defined country code top-level domain. Leading dots are ignored if present. The search is case-sensitive.

  Parameters:
    `ccTld` - the parameter to check for country code TLD status
  Returns:
    true if the parameter is a country code TLD

Copyright (c) 2005-2009 The Grails project