Package com.verisign.epp.codec.registry.v02

## Class EPPRegistryExternalHost

- java.lang.Object
- - com.verisign.epp.codec.registry.v02.EPPRegistryAbstractMinMax
  - - com.verisign.epp.codec.registry.v02.EPPRegistryExternalHost

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

      public class EPPRegistryExternalHost
      extends EPPRegistryAbstractMinMax

  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 all domains of the registrar. There is a single pool of external hosts defined per registrar.
    - "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.
  - <registry:uniqueIpAddressRequired> - The OPTIONAL boolean value that indicates that all of the IP addresses for the host object must be unique, with a default value of "false".
  See Also:
    `EPPRegistryHost`, Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `EPPRegistryExternalHost.SharePolicy` | Possible values for the `sharePolicy` attribute.

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static java.lang.String` | `ELM_LOCALNAME` | XML local name for `EPPRegistryExternalHost`.
    `protected static java.lang.String` | `ELM_MAX_IP` | XML Element Name of `max` attribute.
    `protected static java.lang.String` | `ELM_MIN_IP` | XML Element Name of `min` attribute.
    `static java.lang.String` | `ELM_NAME` | XML root tag for `EPPRegistryExternalHost`.
    `static java.lang.String` | `ELM_SHARE_POLICY` | XML Element Name of `sharePolicy` attribute.
    `static java.lang.String` | `ELM_UNIQUE_IP_ADDRESSES_REQUIRED` | XML Element Name of `uniqueIpAddressesRequired` attribute.

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

      `ELM_MAX, ELM_MAX_LENGTH, ELM_MIN, ELM_MIN_LENGTH`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `EPPRegistryExternalHost()` | Creates a new `EPPRegistryExternalHost` object.
    `EPPRegistryExternalHost​(int aMin, int aMax, EPPRegistryExternalHost.SharePolicy aSharePolicy, java.lang.Boolean aUniqueIpAddressesRequired)` | Constructor that takes `min`, `max`, `sharePolicy`, and `uniqueIpAddressesRequired` using `int`'s.
    `EPPRegistryExternalHost​(java.lang.Integer aMin, java.lang.Integer aMax, EPPRegistryExternalHost.SharePolicy aSharePolicy, java.lang.Boolean aUniqueIpAddressesRequired)` | Constructor that takes `min`, `max`, `sharePolicy`, and `uniqueIpAddressesRequired` using `Integer`'s.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | 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.
    `protected java.lang.String` | `getElmMax()` | Gets the maximum element local name.
    `protected java.lang.String` | `getElmMin()` | Gets the minimum element local name.
    `protected org.slf4j.Logger` | `getLogger()` | Gets the `Logger` to use.
    `protected java.lang.String` | `getRootName()` | Gets the root element local name.
    `EPPRegistryExternalHost.SharePolicy` | `getSharePolicy()` | Gets the share policy.
    `java.lang.Boolean` | `getUniqueIpAddressesRequired()` | Gets the OPTIONAL boolean value that indicates that all of the IP addresses for the host object must be unique, with a default value of "false".
    `boolean` | `hasSharePolicy()` | Is the share policy defined?
    `void` | `setSharePolicy​(EPPRegistryExternalHost.SharePolicy aSharePolicy)` | Sets the share policy.
    `void` | `setUniqueIpAddressesRequired​(java.lang.Boolean aUniqueIpAddressesRequired)` | Sets the OPTIONAL boolean value that indicates that all of the IP addresses for the host object must be unique, with a default value of "false".
    `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.registry.v02.EPPRegistryAbstractMinMax

      `getMax, getMin, getNamespace, setMax, setMin, validateState`

    - ### 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 `EPPRegistryExternalHost`.
      See Also:
        Constant Field Values

    - #### ELM_NAME

          public static final java.lang.String ELM_NAME

      XML root tag for `EPPRegistryExternalHost`.
      See Also:
        Constant Field Values

    - #### ELM_MIN_IP

          protected static final java.lang.String ELM_MIN_IP

      XML Element Name of `min` attribute.
      See Also:
        Constant Field Values

    - #### ELM_MAX_IP

          protected static final java.lang.String ELM_MAX_IP

      XML Element Name of `max` attribute.
      See Also:
        Constant Field Values

    - #### ELM_SHARE_POLICY

          public static final java.lang.String ELM_SHARE_POLICY

      XML Element Name of `sharePolicy` attribute.
      See Also:
        Constant Field Values

    - #### ELM_UNIQUE_IP_ADDRESSES_REQUIRED

          public static final java.lang.String ELM_UNIQUE_IP_ADDRESSES_REQUIRED

      XML Element Name of `uniqueIpAddressesRequired` attribute.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### EPPRegistryExternalHost

          public EPPRegistryExternalHost()

      Creates a new `EPPRegistryExternalHost` object.

    - #### EPPRegistryExternalHost

          public EPPRegistryExternalHost​(java.lang.Integer aMin,
                                         java.lang.Integer aMax,
                                         EPPRegistryExternalHost.SharePolicy aSharePolicy,
                                         java.lang.Boolean aUniqueIpAddressesRequired)

      Constructor that takes `min`, `max`, `sharePolicy`, and `uniqueIpAddressesRequired` using `Integer`'s.
      Parameters:
        `aMin` - minimum number of IPs supported for an external host
        `aMax` - maximum number of IPs supported for an external host
        `aSharePolicy` - Share policy to set. Set to `null` if undefined.
        `aUniqueIpAddressesRequired` - Indicates that all of the IP addresses for the host object must be unique, with a default value of "false". Set to `null` to set the default.

    - #### EPPRegistryExternalHost

          public EPPRegistryExternalHost​(int aMin,
                                         int aMax,
                                         EPPRegistryExternalHost.SharePolicy aSharePolicy,
                                         java.lang.Boolean aUniqueIpAddressesRequired)

      Constructor that takes `min`, `max`, `sharePolicy`, and `uniqueIpAddressesRequired` using `int`'s.
      Parameters:
        `aMin` - minimum number of IPs supported for an external host
        `aMax` - maximum number of IPs supported for an external host
        `aSharePolicy` - Share policy to set. Set to `null` if undefined.
        `aUniqueIpAddressesRequired` - Indicates that all of the IP addresses for the host object must be unique, with a default value of "false". Set to `null` to set the default.

  - ### 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 `EPPRegistryAbstractMinMax`
      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 `EPPRegistryAbstractMinMax`
      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 `EPPRegistryAbstractMinMax`
      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 `EPPRegistryAbstractMinMax`
      Parameters:
        `aObject` - `EPPRegistryExternalHost` instance to compare with
      Returns:
        `true` if this object is the same as the aObject argument; `false` otherwise

    - #### hasSharePolicy

          public boolean hasSharePolicy()

      Is the share policy defined?
      Returns:
        `true` if the share policy is defined; `false` otherwise.

    - #### getSharePolicy

          public EPPRegistryExternalHost.SharePolicy getSharePolicy()

      Gets the share policy.
      Returns:
        share policy if defined; `null` otherwise.

    - #### setSharePolicy

          public void setSharePolicy​(EPPRegistryExternalHost.SharePolicy aSharePolicy)

      Sets the share policy.
      Parameters:
        `aSharePolicy` - Share policy. Set to `null` to clear it.

    - #### getUniqueIpAddressesRequired

          public java.lang.Boolean getUniqueIpAddressesRequired()

      Gets the OPTIONAL boolean value that indicates that all of the IP addresses for the host object must be unique, with a default value of "false".
      Returns:
        the `uniqueIpAddressesRequired` boolean value.

    - #### setUniqueIpAddressesRequired

          public void setUniqueIpAddressesRequired​(java.lang.Boolean aUniqueIpAddressesRequired)

      Sets the OPTIONAL boolean value that indicates that all of the IP addresses for the host object must be unique, with a default value of "false".
      Parameters:
        `aUniqueIpAddressesRequired` - Set the boolean value. If set to `null` the default value of "false" will be set.

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

    - #### getRootName

          protected java.lang.String getRootName()

      Gets the root element local name.
      Specified by:
        `getRootName` in class `EPPRegistryAbstractMinMax`
      Returns:
        Root element local name.

    - #### getElmMin

          protected java.lang.String getElmMin()

      Gets the minimum element local name.
      Specified by:
        `getElmMin` in class `EPPRegistryAbstractMinMax`
      Returns:
        Minimum element local name.

    - #### getElmMax

          protected java.lang.String getElmMax()

      Gets the maximum element local name.
      Specified by:
        `getElmMax` in class `EPPRegistryAbstractMinMax`
      Returns:
        Maximum element local name.

    - #### getLogger

          protected org.slf4j.Logger getLogger()

      Gets the `Logger` to use.
      Specified by:
        `getLogger` in class `EPPRegistryAbstractMinMax`
      Returns:
        `Logger` instance to use for logging.