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

## Class EPPRegistryKey

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

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

      public class EPPRegistryKey
      extends EPPRegistryAbstractMinMax

  Defines the Key Data Interface, as defined in RFC 5910, policies. The <registry:keyDataInterface> element contains the following child elements:
  - <registry:min> - the minimum number of keys associated with the domain object. Use `EPPRegistryAbstractMinMax.getMin()` and `EPPRegistryAbstractMinMax.setMin(Integer)` to get and set the element.
  - <registry:max> - the maximum number of keys associated with the domain object. Use `EPPRegistryAbstractMinMax.getMax()` and `EPPRegistryAbstractMinMax.setMax(Integer)` to get and set the element.
  - <registry:flags> - Zero or more <registry:flags> elements that define the supported flags field values, as described in section 2.1.1 of RFC 4034. Use `getFlags()` and `setFlags(List)` to get and set the element. Use `addFlags(Integer)` to add an flags field `Integer` to an existing `List`.
  - <registry:protocol> - Zero or more <registry:protocol> elements that define the supported protocols as described in section 2.1.2 of RFC 4034. Use `getProtocols()` and `setProtocols(List)` to get and set the element. Use `addProtocol(Integer)` to add an algorithm `Integer` to an existing `List`.
  - <registry:alg> - Zero or more <registry:alg> elements that define the supported algorithms as described in section 2.1.3 of RFC 4034. Use `getAlgorithms()` and `setAlgorithms(List)` to get and set the element. Use `addAlgorithm(Integer)` to add an algorithm `Integer` to an existing `List`.
  See Also:
    `EPPRegistryDNSSEC`, Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static java.lang.String` | `ELM_ALGORITHM` | XML Element Name of `algorithms` attribute.
    `static java.lang.String` | `ELM_FLAGS` | XML Element Name of `flags` attribute.
    `static java.lang.String` | `ELM_LOCALNAME` | XML local name for `EPPRegistryKey`.
    `static java.lang.String` | `ELM_NAME` | XML root tag for `EPPRegistryKey`.
    `static java.lang.String` | `ELM_PROTOCOL` | XML Element Name of `protocol` 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
    --- | ---
    `EPPRegistryKey()` | Default constructor.
    `EPPRegistryKey​(int aMin, int aMax, java.util.List<java.lang.Integer> aFlags, java.util.List<java.lang.Integer> aProtocols, java.util.List<java.lang.Integer> aAlgorithms)` | Constructs an instance with `min`, `max` and `List` of `algorithms`.
    `EPPRegistryKey​(java.lang.Integer aMin, java.lang.Integer aMax)` | Constructs an instance with `min` and `max`.
    `EPPRegistryKey​(java.lang.Integer aMin, java.lang.Integer aMax, java.util.List<java.lang.Integer> aFlags, java.util.List<java.lang.Integer> aProtocols, java.util.List<java.lang.Integer> aAlgorithms)` | Constructs an instance with `min`, `max` and `List` of `algorithms`.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addAlgorithm​(java.lang.Integer aAlgorithm)` | Adds one algorithm to existing supported algorithms.
    `void` | `addFlags​(java.lang.Integer aFlags)` | Adds one flags field to existing supported flags.
    `void` | `addProtocol​(java.lang.Integer aProtocol)` | Adds one protocol to existing the supported protocols.
    `java.lang.Object` | `clone()` | Clone `EPPRegistryKey`.
    `void` | `decode​(org.w3c.dom.Element aElement)` | Decode the `EPPRegistryKey` 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 `EPPRegistryKey` instance.
    `boolean` | `equals​(java.lang.Object aObject)` | implements a deep `EPPRegistryKey` compare.
    `java.util.List<java.lang.Integer>` | `getAlgorithms()` | Gets the supported algorithms.
    `protected java.lang.String` | `getElmMax()` | Gets the maximum element local name.
    `protected java.lang.String` | `getElmMin()` | Gets the minimum element local name.
    `java.util.List<java.lang.Integer>` | `getFlags()` | Gets the supported flags.
    `protected org.slf4j.Logger` | `getLogger()` | Gets the `Logger` to use.
    `java.lang.String` | `getNamespace()` | Returns the XML namespace associated with the `EPPCodecComponent`.
    `java.util.List<java.lang.Integer>` | `getProtocols()` | Gets the supported protocols.
    `protected java.lang.String` | `getRootName()` | Gets the root element local name.
    `boolean` | `hasAlgorithms()` | Is the algorithms defined?
    `boolean` | `hasFlags()` | Is the flags defined?
    `boolean` | `hasProtocols()` | Is the protocols defined?
    `void` | `setAlgorithms​(java.util.List<java.lang.Integer> aAlgorithms)` | Sets the supported algorithms.
    `void` | `setFlags​(java.util.List<java.lang.Integer> aFlags)` | Sets the supported flags.
    `void` | `setProtocols​(java.util.List<java.lang.Integer> aProtocol)` | Sets the supported protocols.
    `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, 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 `EPPRegistryKey`.
      See Also:
        Constant Field Values

    - #### ELM_NAME

          public static final java.lang.String ELM_NAME

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

    - #### ELM_FLAGS

          public static final java.lang.String ELM_FLAGS

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

    - #### ELM_PROTOCOL

          public static final java.lang.String ELM_PROTOCOL

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

    - #### ELM_ALGORITHM

          public static final java.lang.String ELM_ALGORITHM

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

  - ### Constructor Detail

    - #### EPPRegistryKey

          public EPPRegistryKey()

      Default constructor. Must call `EPPRegistryAbstractMinMax.setMin(Integer)` and `EPPRegistryAbstractMinMax.setMax(Integer)` before calling `encode(Document)` method.

    - #### EPPRegistryKey

          public EPPRegistryKey​(java.lang.Integer aMin,
                                java.lang.Integer aMax)

      Constructs an instance with `min` and `max`.
      Parameters:
        `aMin` - minimum number of keys associated with the domain object
        `aMax` - maximum number of keys associated with the domain object

    - #### EPPRegistryKey

          public EPPRegistryKey​(java.lang.Integer aMin,
                                java.lang.Integer aMax,
                                java.util.List<java.lang.Integer> aFlags,
                                java.util.List<java.lang.Integer> aProtocols,
                                java.util.List<java.lang.Integer> aAlgorithms)

      Constructs an instance with `min`, `max` and `List` of `algorithms`.
      Parameters:
        `aMin` - minimum number of keys associated with the domain object
        `aMax` - maximum number of keys associated with the domain object
        `aFlags` - supported flags as described in section 2.1.1 of RFC 4034
        `aProtocols` - supported protocols as described in section 2.1.2 of RFC 4034
        `aAlgorithms` - supported algorithms as described in section 2.1.3 of RFC 4034

    - #### EPPRegistryKey

          public EPPRegistryKey​(int aMin,
                                int aMax,
                                java.util.List<java.lang.Integer> aFlags,
                                java.util.List<java.lang.Integer> aProtocols,
                                java.util.List<java.lang.Integer> aAlgorithms)

      Constructs an instance with `min`, `max` and `List` of `algorithms`.
      Parameters:
        `aMin` - minimum number of keys associated with the domain object
        `aMax` - maximum number of keys associated with the domain object
        `aFlags` - supported flags as described in section 2.1.1 of RFC 4034
        `aProtocols` - supported protocols as described in section 2.1.2 of RFC 4034
        `aAlgorithms` - supported algorithms as described in section 2.1.3 of RFC 4034

  - ### 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 `EPPRegistryKey` 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 `EPPRegistryKey` instance.
      Throws:
        `EPPEncodeException` - - Unable to encode `EPPRegistryKey` instance.

    - #### decode

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

      Decode the `EPPRegistryKey` 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 `EPPRegistryKey` from.
      Throws:
        `EPPDecodeException` - Unable to decode aElement

    - #### clone

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

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

    - #### equals

          public boolean equals​(java.lang.Object aObject)

      implements a deep `EPPRegistryKey` compare.
      Overrides:
        `equals` in class `EPPRegistryAbstractMinMax`
      Parameters:
        `aObject` - `EPPRegistryKey` 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 `EPPRegistryAbstractMinMax`
      Returns:
        Indented XML `String` if successful; `ERROR` otherwise.

    - #### hasFlags

          public boolean hasFlags()

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

    - #### getFlags

          public java.util.List<java.lang.Integer> getFlags()

      Gets the supported flags.
      Returns:
        `List` of supported flags as described in section 2.1.1 of RFC 4034

    - #### setFlags

          public void setFlags​(java.util.List<java.lang.Integer> aFlags)

      Sets the supported flags.
      Parameters:
        `aFlags` - `List` of supported flags as described in section 2.1.1 of RFC 4034

    - #### addFlags

          public void addFlags​(java.lang.Integer aFlags)

      Adds one flags field to existing supported flags.
      Parameters:
        `aFlags` - supported flags field as described in section 2.1.1 of RFC 4034

    - #### hasProtocols

          public boolean hasProtocols()

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

    - #### getProtocols

          public java.util.List<java.lang.Integer> getProtocols()

      Gets the supported protocols.
      Returns:
        `List` of supported protocols as described in section 2.1.2 of RFC 4034

    - #### setProtocols

          public void setProtocols​(java.util.List<java.lang.Integer> aProtocol)

      Sets the supported protocols.
      Parameters:
        `aProtocol` - `List` of supported protocols as described in section 2.1.2 of RFC 4034

    - #### addProtocol

          public void addProtocol​(java.lang.Integer aProtocol)

      Adds one protocol to existing the supported protocols.
      Parameters:
        `aProtocol` - supported protocol as described in section 2.1.2 of RFC 4034

    - #### hasAlgorithms

          public boolean hasAlgorithms()

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

    - #### getAlgorithms

          public java.util.List<java.lang.Integer> getAlgorithms()

      Gets the supported algorithms.
      Returns:
        `List` of supported algorithms as described in section 2.1.3 of RFC 4034

    - #### setAlgorithms

          public void setAlgorithms​(java.util.List<java.lang.Integer> aAlgorithms)

      Sets the supported algorithms.
      Parameters:
        `aAlgorithms` - `List` of supported algorithms as described in section 2.1.3 of RFC 4034

    - #### addAlgorithm

          public void addAlgorithm​(java.lang.Integer aAlgorithm)

      Adds one algorithm to existing supported algorithms.
      Parameters:
        `aAlgorithm` - supported algorithm as described in section 2.1.3 of RFC 4034

    - #### getNamespace

          public java.lang.String getNamespace()

      Returns the XML namespace associated with the `EPPCodecComponent`.
      Specified by:
        `getNamespace` in interface `EPPCodecComponent`
      Overrides:
        `getNamespace` in class `EPPRegistryAbstractMinMax`
      Returns:
        XML namespace for the `EPPCodecComponent`.

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