com.verisign.epp.codec.domain

## Class EPPDomainCreateCmd

- java.lang.Object
- - com.verisign.epp.codec.gen.EPPCommand
  - - com.verisign.epp.codec.gen.EPPCreateCmd
    - - com.verisign.epp.codec.domain.EPPDomainCreateCmd

- All Implemented Interfaces:
    EPPCodecComponent, EPPMessage, java.io.Serializable, java.lang.Cloneable

      public class EPPDomainCreateCmd
      extends EPPCreateCmd

  Represents an EPP Domain <create> command, which provides a transform operation that allows a client to create a domain object. In addition to the standard EPP command elements, the <create> command MUST contain a <domain:create> element that identifies the domain namespace and the location of the domain schema. The <domain:create> element MUST contain the following child elements:
  - A <domain:name> element that contains the fully qualified domain name of the object to be created. Use `getName` and `setName` to get and set the element.
  - An OPTIONAL <domain:period> element that contains the initial registration period of the domain object. Use `getPeriod` and `setPeriod` to get and set the element. If return `null`, period has not been specified yet.
  - Zero or more <domain:ns> elements that contain the fully qualified host name of a known host object to provide resolution services for the domain. A host object MUST be known to the server before a domain can be delegated to the host. A server MUST provide host object services to provide domain name services. The EPP mapping for host objects is described in [EPP-H]. Use `getServers` and `setServers` to get and set the elements.
  - An OPTIONAL <domain:registrant> element that contains the identifier for the human or organizational social information (contact) object to be associated with the domain object as the object registrant. This object identifier MUST be known to the server before the contact object can be associated with the domain object. Use `getRegistrant` and `setRegistrant` to get and set the elements.
  - Zero or more <domain:contact> elements that contain the registrant, administrative, technical, and billing contact identifiers to be associated with the domain. A contact identifier MUST be known to the server before the contact can be associated with the domain. Only one contact identifier of each type MAY be specified. A server MAY provide contact object services when providing domain name object services. The EPP mapping for contact objects is described in [EPP-C]. Use `getContacts` and `setContacts` to get and set the elements. Contacts should only be specified if the Contact Mapping is supported.
  - A <domain:authInfo> element that contains authorization information to be associated with the domain object.
  It is important to note that the transaction identifier associated with successful creation of a domain object becomes the authorization identifier required to transfer sponsorship of the domain object. A client MUST retain all transaction identifiers associated with domain object creation and protect them from disclosure. A client MUST also provide a copy of the transaction identifier information to the domain registrant, who will need this information to request a domain transfer through a different client.
  `EPPDomainCreateResp` is the concrete `EPPReponse` associated with `EPPDomainCreateCmd`.
  See Also:
    `EPPDomainCreateResp`, Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `ELM_LOCALNAME` XML local name for `EPPDomainCreateCmd`.
    `static java.lang.String` | `ELM_NAME` XML Element Name of `EPPDomainCreateCmd` root element.

    - ### Fields inherited from class com.verisign.epp.codec.gen.EPPCommand

      `extensions, OP_APPROVE, OP_CANCEL, OP_QUERY, OP_REJECT, OP_REQUEST, transId, TYPE_CHECK, TYPE_CREATE, TYPE_DELETE, TYPE_INFO, TYPE_LOGIN, TYPE_LOGOUT, TYPE_POLL, TYPE_RENEW, TYPE_TRANSFER, TYPE_UPDATE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `EPPDomainCreateCmd()` Allocates a new `EPPDomainCreateCmd` with default attribute values.
    `EPPDomainCreateCmd(java.lang.String aTransId, java.lang.String aName, EPPAuthInfo aAuthInfo)` Allocates a new `EPPDomainCreateCmd` with a domain name.
    `EPPDomainCreateCmd(java.lang.String aTransId, java.lang.String aName, java.util.Vector aServers, java.util.Vector aContacts, EPPDomainPeriod aPeriod, EPPAuthInfo aAuthInfo)` Allocates a new `EPPDomainCreateCmd` with all attributes specified by the arguments.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addContact(EPPDomainContact aContact)` Adds a contact to the list of domain contacts.
    `void` | `addServer(EPPHostAttr aServer)` Add a name serve attribute instance that is a fully qualified name of a host and optionally the host IP addresses.
    `void` | `addServer(java.lang.String aServer)` Add a name serve instance that is a fully qualified name of a known name server host object.
    `java.lang.Object` | `clone()` Clone `EPPDomainCreateCmd`.
    `protected void` | `doDecode(org.w3c.dom.Element aElement)` Decode the EPPDomainCreateCmd attributes from the aElement DOM Element tree.
    `protected org.w3c.dom.Element` | `doEncode(org.w3c.dom.Document aDocument)` Encode a DOM Element tree from the attributes of the EPPDomainCreateCmd instance.
    `boolean` | `equals(java.lang.Object aObject)` Compare an instance of `EPPDomainCreateCmd` with this instance.
    `EPPAuthInfo` | `getAuthInfo()` Get authorization information
    `java.util.Vector` | `getContacts()` Gets the contacts.
    `java.lang.String` | `getName()` Get the domain name to create.
    `java.lang.String` | `getNamespace()` Get the EPP command Namespace associated with EPPDomainCreateCmd.
    `EPPDomainPeriod` | `getPeriod()` Gets the registration period in years.
    `java.lang.String` | `getRegistrant()` Get registrant.
    `java.util.Vector` | `getServers()` Gets the name servers.
    `void` | `setAuthInfo(EPPAuthInfo aAuthInfo)` Set authorization information
    `void` | `setContacts(java.util.Vector aContacts)` Sets the contacts.
    `void` | `setName(java.lang.String aName)` Set the domain name to create.
    `void` | `setPeriod(EPPDomainPeriod aPeriod)` Sets the registration period in years.
    `void` | `setRegistrant(java.lang.String newRegistrant)` Set registrant.
    `void` | `setServers(java.util.Vector aServers)` Sets the name servers.
    `java.lang.String` | `toString()` Implementation of `Object.toString`, which will result in an indented XML `String` representation of the concrete `EPPCodecComponent`.

    - ### Methods inherited from class com.verisign.epp.codec.gen.EPPCreateCmd

      `doGenDecode, doGenEncode, getType`

    - ### Methods inherited from class com.verisign.epp.codec.gen.EPPCommand

      `addExtension, decode, encode, findDuplicateExtNamespaces, getExtension, getExtension, getExtensions, getOp, getTransId, hasExtension, hasExtensions, hasTransId, setExtension, setExtensions, setTransId`

    - ### Methods inherited from class java.lang.Object

      `finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### ELM_LOCALNAME

          public static final java.lang.String ELM_LOCALNAME

      XML local name for `EPPDomainCreateCmd`.
      See Also:
        Constant Field Values

    - #### ELM_NAME

          public static final java.lang.String ELM_NAME

      XML Element Name of `EPPDomainCreateCmd` root element.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### EPPDomainCreateCmd

          public EPPDomainCreateCmd()

      Allocates a new `EPPDomainCreateCmd` with default attribute values. the defaults include the following:
      - name is set to `null`
      - period is set to `UNSPEC_PERIOD`
      - servers is set to to `null`
      - contacts is set to to `null`
      - transaction id is set to `null`.
      The name must be set before invoking `encode`.

    - #### EPPDomainCreateCmd

          public EPPDomainCreateCmd(java.lang.String aTransId,
                                    java.lang.String aName,
                                    EPPAuthInfo aAuthInfo)

      Allocates a new `EPPDomainCreateCmd` with a domain name. The other attributes are initialized as follows:
      - period is set to `UNSPEC_PERIOD`
      - servers is set to `null`
      - contacts is set to `null`
      Parameters:
        `aTransId` - Transaction Id associated with command.
        `aName` - Domain name
        `aAuthInfo` - EPPAuthInfo authorization information

    - #### EPPDomainCreateCmd

          public EPPDomainCreateCmd(java.lang.String aTransId,
                                    java.lang.String aName,
                                    java.util.Vector aServers,
                                    java.util.Vector aContacts,
                                    EPPDomainPeriod aPeriod,
                                    EPPAuthInfo aAuthInfo)

      Allocates a new `EPPDomainCreateCmd` with all attributes specified by the arguments.
      Parameters:
        `aTransId` - Transaction Id associated with command.
        `aName` - Domain name
        `aServers` - Domain name servers
        `aContacts` - Domain contacts. Should be `null` if the Contact Mapping is not supported.
        `aPeriod` - Value greater than or equal to `MIN_PERIOD` or less than or equal to `MAX_PERIOD`.
        `aAuthInfo` - EPPAuthInfo authorization information.

  - ### Method Detail

    - #### getNamespace

          public java.lang.String getNamespace()

      Get the EPP command Namespace associated with EPPDomainCreateCmd.
      Specified by:
        `getNamespace` in interface `EPPCodecComponent`
      Specified by:
        `getNamespace` in interface `EPPMessage`
      Specified by:
        `getNamespace` in class `EPPCommand`
      Returns:
        `EPPDomainMapFactory.NS`

    - #### getName

          public java.lang.String getName()

      Get the domain name to create.
      Returns:
        Domain Name

    - #### setName

          public void setName(java.lang.String aName)

      Set the domain name to create.
      Parameters:
        `aName` - Domain Name

    - #### getServers

          public java.util.Vector getServers()

      Gets the name servers. The name servers can either be `String` instances containing the fully qualified name of a known name server host object, or `EPPHostAttr` instances containing the fully qualified name of a host and optionally the host IP addresses.
      Returns:
        `Vector` of name server `String` instances for host object references or `EPPHostAttr` instances for host attribute values if exists; `null` otherwise.

    - #### setServers

          public void setServers(java.util.Vector aServers)

      Sets the name servers. The name servers can either be `String` instances containing the fully qualified name of a known name server host object, or `EPPHostAttr` instances containing the fully qualified name of a host and optionally the host IP addresses.
      Parameters:
        `aServers` - `Vector` of name server `String` instances for host object references or `EPPHostAttr` instances for host attribute values.

    - #### addServer

          public void addServer(java.lang.String aServer)

      Add a name serve instance that is a fully qualified name of a known name server host object.
      Parameters:
        `aServer` - Fully qualified name of a known name server host object.

    - #### addServer

          public void addServer(EPPHostAttr aServer)

      Add a name serve attribute instance that is a fully qualified name of a host and optionally the host IP addresses.
      Parameters:
        `aServer` - A fully qualified name of a host and optionally the host IP addresses.

    - #### getContacts

          public java.util.Vector getContacts()

      Gets the contacts.
      Returns:
        Vector of `EPPDomainContact` instances if defined; `null` otherwise.

    - #### setContacts

          public void setContacts(java.util.Vector aContacts)

      Sets the contacts.
      Parameters:
        `aContacts` - `Vector` of `EPPDomainContact` instances.

    - #### addContact

          public void addContact(EPPDomainContact aContact)

      Adds a contact to the list of domain contacts.
      Parameters:
        `aContact` - Contact to add to the domain.

    - #### equals

          public boolean equals(java.lang.Object aObject)

      Compare an instance of `EPPDomainCreateCmd` with this instance.
      Overrides:
        `equals` in class `EPPCreateCmd`
      Parameters:
        `aObject` - Object to compare with.
      Returns:
        DOCUMENT ME!

    - #### clone

          public java.lang.Object clone()
                                 throws java.lang.CloneNotSupportedException

      Clone `EPPDomainCreateCmd`.
      Specified by:
        `clone` in interface `EPPCodecComponent`
      Overrides:
        `clone` in class `EPPCommand`
      Returns:
        clone of `EPPDomainCreateCmd`
      Throws:
        `java.lang.CloneNotSupportedException` - standard Object.clone exception

    - #### toString

          public java.lang.String toString()

      Implementation of `Object.toString`, which will result in an indented XML `String` representation of the concrete `EPPCodecComponent`.
      Overrides:
        `toString` in class `EPPCommand`
      Returns:
        Indented XML `String` if successful; `ERROR` otherwise.

    - #### getAuthInfo

          public EPPAuthInfo getAuthInfo()

      Get authorization information
      Returns:
        EPPAuthInfo

    - #### getPeriod

          public EPPDomainPeriod getPeriod()

      Gets the registration period in years.
      Returns:
        Registration Period in years.

    - #### getRegistrant

          public java.lang.String getRegistrant()

      Get registrant.
      Returns:
        java.lang.String

    - #### setAuthInfo

          public void setAuthInfo(EPPAuthInfo aAuthInfo)

      Set authorization information
      Parameters:
        `aAuthInfo` - java.lang.String

    - #### setPeriod

          public void setPeriod(EPPDomainPeriod aPeriod)

      Sets the registration period in years.
      Parameters:
        `aPeriod` - Registration Period in years.

    - #### setRegistrant

          public void setRegistrant(java.lang.String newRegistrant)

      Set registrant.
      Parameters:
        `newRegistrant` - java.lang.String

    - #### doEncode

          protected org.w3c.dom.Element doEncode(org.w3c.dom.Document aDocument)
                                          throws EPPEncodeException

      Encode a DOM Element tree from the attributes of the EPPDomainCreateCmd instance.
      Specified by:
        `doEncode` in class `EPPCreateCmd`
      Parameters:
        `aDocument` - DOM Document that is being built. Used as an Element factory.
      Returns:
        Root DOM Element representing the EPPDomainCreateCmd instance.
      Throws:
        `EPPEncodeException` - Unable to encode EPPDomainCreateCmd instance.

    - #### doDecode

          protected void doDecode(org.w3c.dom.Element aElement)
                           throws EPPDecodeException

      Decode the EPPDomainCreateCmd attributes from the aElement DOM Element tree.
      Specified by:
        `doDecode` in class `EPPCreateCmd`
      Parameters:
        `aElement` - Root DOM Element to decode EPPDomainCreateCmd from.
      Throws:
        `EPPDecodeException` - Unable to decode aElement