com.verisign.epp.codec.registry

## Class EPPRegistryExternalHost

- java.lang.Object
- - com.verisign.epp.codec.registry.EPPRegistryMinMaxLength
  - - com.verisign.epp.codec.registry.EPPRegistryExternalHost

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

      public class EPPRegistryExternalHost
      extends EPPRegistryMinMaxLength

  Defines the policies for external hosts. The <registry:external> elements contains the following child elements:
  - <registry:minIP> - Minimum number of IP addresses supported for an external host.
  - <registry:maxIP> - Maximum number of IP addresses supported for an external host.
  - <registry:sharePolicy> - The OPTIONAL policy for the sharing of external hosts in the server.The possible shared policy values include:
    - "perRegistrar" - The external hosts are shared across domains sponsored by an individual registrar client. Each registrar client will have its own set of external hosts to manage.
    - "perZone" - The external hosts are shared across all domains of the zone. There is a single pool of external hosts defined for the zone.
    - "perSystem" - The external hosts are shared across all zones of the system. There is a single pool of external hosts across all of the zones supported by the system.
  See Also:
    `EPPRegistryHost`, Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `ELM_LOCALNAME` Constant for the status local name
    `static java.lang.String` | `ELM_NAME` Constant for the external host (prefix and local name)
    `static java.lang.String` | `ELM_SHARE_POLICY`
    `static java.lang.String` | `TYPE_PER_REGISTRAR` Constant for perRegistrar policy
    `static java.lang.String` | `TYPE_PER_SYSTEM` Constant for perSystem policy
    `static java.lang.String` | `TYPE_PER_ZONE` Constant for perZone policy
    `static java.util.List` | `VALID_POLICIES` `List` of valid share policies

    - ### Fields inherited from class com.verisign.epp.codec.registry.EPPRegistryMinMaxLength

      `ELM_MAX, ELM_MAX_LENGTH, ELM_MIN, ELM_MIN_LENGTH, elmMax, elmMin, max, min, rootName`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `EPPRegistryExternalHost()` Default constructor
    `EPPRegistryExternalHost(java.lang.Integer min, java.lang.Integer max, java.lang.String sharePolicy)` Constructor that takes `min`, `max` and `sharePolicy`.
    `EPPRegistryExternalHost(int min, int max, java.lang.String sharePolicy)` Constructor that takes `min`, `max` and `sharePolicy`.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object` | `clone()` Clone `EPPRegistryExternalHost`.
    `void` | `decode(org.w3c.dom.Element aElement)` Decode the `EPPRegistryExternalHost` attributes from the aElement DOM Element tree.
    `org.w3c.dom.Element` | `encode(org.w3c.dom.Document aDocument)` Encode a DOM Element tree from the attributes of the `EPPRegistryExternalHost` instance.
    `boolean` | `equals(java.lang.Object aObject)` implements a deep `EPPRegistryExternalHost` compare.
    `java.lang.String` | `getSharePolicy()` Gets the shared policy.
    `void` | `setSharePolicy(java.lang.String sharePolicy)` Sets the shared policy.
    `java.lang.String` | `toString()` Implementation of `Object.toString`, which will result in an indented XML `String` representation of the concrete `EPPCodecComponent`.
    `protected void` | `validateState()` Validate the state of the `EPPRegistryExternalHost` instance.

    - ### Methods inherited from class com.verisign.epp.codec.registry.EPPRegistryMinMaxLength

      `getElmMax, getElmMin, getMax, getMin, getNamespace, getRootName, setElmMax, setElmMin, setMax, setMin, setRootName`

    - ### 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

      Constant for the status local name
      See Also:
        Constant Field Values

    - #### ELM_NAME

          public static final java.lang.String ELM_NAME

      Constant for the external host (prefix and local name)
      See Also:
        Constant Field Values

    - #### ELM_SHARE_POLICY

          public static final java.lang.String ELM_SHARE_POLICY

      See Also:
        Constant Field Values

    - #### VALID_POLICIES

          public static final java.util.List VALID_POLICIES

      `List` of valid share policies

    - #### TYPE_PER_REGISTRAR

          public static final java.lang.String TYPE_PER_REGISTRAR

      Constant for perRegistrar policy
      See Also:
        Constant Field Values

    - #### TYPE_PER_ZONE

          public static final java.lang.String TYPE_PER_ZONE

      Constant for perZone policy
      See Also:
        Constant Field Values

    - #### TYPE_PER_SYSTEM

          public static final java.lang.String TYPE_PER_SYSTEM

      Constant for perSystem policy
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### EPPRegistryExternalHost

          public EPPRegistryExternalHost()

      Default constructor

    - #### EPPRegistryExternalHost

          public EPPRegistryExternalHost(java.lang.Integer min,
                                         java.lang.Integer max,
                                         java.lang.String sharePolicy)

      Constructor that takes `min`, `max` and `sharePolicy`.
      Parameters:
        `min` - minimum number of IPs supported for an external host
        `max` - maximum number of IPs supported for an external host
        `sharePolicy` - "perRegistrar", "perZone" or "perSystem"

    - #### EPPRegistryExternalHost

          public EPPRegistryExternalHost(int min,
                                         int max,
                                         java.lang.String sharePolicy)

      Constructor that takes `min`, `max` and `sharePolicy`.
      Parameters:
        `min` - minimum number of IPs supported for an external host
        `max` - maximum number of IPs supported for an external host
        `sharePolicy` - "perRegistrar", "perZone" or "perSystem"

  - ### Method Detail

    - #### encode

          public org.w3c.dom.Element encode(org.w3c.dom.Document aDocument)
                                     throws EPPEncodeException

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

    - #### decode

          public void decode(org.w3c.dom.Element aElement)
                      throws EPPDecodeException

      Decode the `EPPRegistryExternalHost` attributes from the aElement DOM Element tree.
      Specified by:
        `decode` in interface `EPPCodecComponent`
      Overrides:
        `decode` in class `EPPRegistryMinMaxLength`
      Parameters:
        `aElement` - Root DOM Element to decode `EPPRegistryExternalHost` from.
      Throws:
        `EPPDecodeException` - Unable to decode aElement

    - #### clone

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

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

    - #### equals

          public boolean equals(java.lang.Object aObject)

      implements a deep `EPPRegistryExternalHost` compare.
      Overrides:
        `equals` in class `EPPRegistryMinMaxLength`
      Parameters:
        `aObject` - `EPPRegistryExternalHost` instance to compare with
      Returns:
        `true` if this object is the same as the aObject argument; `false` otherwise

    - #### 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 `EPPRegistryMinMaxLength`
      Returns:
        Indented XML `String` if successful; `ERROR` otherwise.

    - #### getSharePolicy

          public java.lang.String getSharePolicy()

      Gets the shared policy.
      Returns:
        shared policy `String`

    - #### setSharePolicy

          public void setSharePolicy(java.lang.String sharePolicy)

      Sets the shared policy.
      Parameters:
        `sharePolicy` - shared policy `String`

    - #### validateState

          protected void validateState()
                                throws EPPEncodeException

      Validate the state of the `EPPRegistryExternalHost` instance. A valid state means that all of the required attributes have been set. If validateState returns without an exception, the state is valid. If the state is not valid, the EPPCodecException will contain a description of the error. throws EPPCodecException State error. This will contain the name of the attribute that is not valid.
      Overrides:
        `validateState` in class `EPPRegistryMinMaxLength`
      Throws:
        `EPPEncodeException` - On invalid state