Package com.verisign.epp.codec.gen

## Class EPPServiceMenu

- java.lang.Object
- - com.verisign.epp.codec.gen.EPPServiceMenu

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

      public class EPPServiceMenu
      extends java.lang.Object
      implements EPPCodecComponent

  Identifies the features supported by the server, including:
  - One or more <version> elements that contain the protocol versions supported by the server. Use `getVersions` and `setVersion(s)` to get and set the element(s).
  - One or more <lang> elements that contain the identifiers of the text response languages known by the server. Language identifiers MUST be structured as documented in [RFC1766]. Only language identifiers listed in [ISO639] may be used. Use `getLangs` and `setLang(s)` to get and set the element(s).
  - One or more object-specific <obj:service> elements that identify the objects that the server is capable of managing. Use `getObjectServices` and `setObjectServices` to get and set the element(s). An optional <svcExtension> element that contains one or more <extURI> elements that contains namespace URIS representin object extensions supported by the server.
  See Also:
    `EPPFactory`, `EPPGreeting`, `EPPService`, Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `boolean` | `EXT_SERVICE` | Flag for inspecting whether the service is an ExtensionService
    `boolean` | `OBJ_SERVICE` | Flag for inspecting whether the service is an ObjectService

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `EPPServiceMenu()` | Allocates a new `EPPServiceMenu` with default attribute values.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.lang.Object` | `clone()` | Clone `EPPServiceMenu`.
    `void` | `decode​(org.w3c.dom.Element aElement)` | decode `EPPServiceMenu` from a DOM element tree.
    `org.w3c.dom.Element` | `encode​(org.w3c.dom.Document aDocument)` | encode `EPPServiceMenu` into a DOM element tree.
    `boolean` | `equals​(java.lang.Object aObject)` | implements a deep `EPPServiceMenu` compare.
    `java.util.Vector<EPPService>` | `getExtensionServices()` | Gets the list of supported/desired extension services.
    `java.lang.String` | `getLang()` | Gets the single EPP language.
    `java.util.Vector<java.lang.String>` | `getLangs()` | Gets the list of supported/desired language(s).
    `java.lang.String` | `getNamespace()` | Returns the XML namespace associated with the `EPPCodecComponent`.
    `java.util.Vector<EPPService>` | `getObjectServices()` | Gets the list of supported/desired object services.
    `java.lang.String` | `getVersion()` | Gets the single EPP version.
    `java.util.Vector<java.lang.String>` | `getVersions()` | Gets the list of supported/desired EPP versions.
    `boolean` | `hasExtensionService​(java.lang.String aNamespaceURI)` | Does the service menu extension services include a specified extension service based on the Namespace URI?
    `boolean` | `hasService​(java.lang.String aNamespaceURI)` | Does the service menu include a specified service based on the Namespace URI?
    `void` | `setExtensionServices​(java.util.Vector<EPPService> aExtServices)` | Sets the list of supported/desired extension services.
    `void` | `setLang​(java.lang.String aLang)` | Sets the languages to an individual language.
    `void` | `setLangs​(java.util.Vector<java.lang.String> aLangs)` | Sets the supported languages.
    `void` | `setObjectServices​(java.util.Vector<EPPService> aObjServices)` | Sets the list of supported/desired object services.
    `void` | `setVersion​(java.lang.String aVersion)` | Sets the EPP versions to an individual EPP version.
    `void` | `setVersions​(java.util.Vector<java.lang.String> someVersions)` | Sets the supported versions.
    `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 java.lang.Object

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

- - ### Field Detail

    - #### OBJ_SERVICE

          public boolean OBJ_SERVICE

      Flag for inspecting whether the service is an ObjectService

    - #### EXT_SERVICE

          public boolean EXT_SERVICE

      Flag for inspecting whether the service is an ExtensionService

  - ### Constructor Detail

    - #### EPPServiceMenu

          public EPPServiceMenu()

      Allocates a new `EPPServiceMenu` with default attribute values. The defaults include the following:
      - versions is set to a `Vector` with a single value defined by the constant EPPCodec.VERSION.
      - langs is set to a `Vector` with a single "en" value.
      - services is set to the services returned from `EPPFactory`
      - extservices is set to the extension services returned from `EPPFactory`
      The `encode` method can be invoked with the default values set by this constructor.

  - ### Method Detail

    - #### getVersions

          public java.util.Vector<java.lang.String> getVersions()

      Gets the list of supported/desired EPP versions. An EPP Client uses this method to get the list of supported EPP versions of the EPP Server.
      Returns:
        Vector of version `String`'s

    - #### setVersions

          public void setVersions​(java.util.Vector<java.lang.String> someVersions)

      Sets the supported versions.
      Parameters:
        `someVersions` - Vector of version`String`'s supported by the server.

    - #### getVersion

          public java.lang.String getVersion()

      Gets the single EPP version. A non-`null` version will be returned only if there is one version defined.
      Returns:
        Single version if there is only one version; `null` otherwise.

    - #### setVersion

          public void setVersion​(java.lang.String aVersion)

      Sets the EPP versions to an individual EPP version.
      Parameters:
        `aVersion` - Version to set versions to.

    - #### getLangs

          public java.util.Vector<java.lang.String> getLangs()

      Gets the list of supported/desired language(s). Language identifiers MUST be structured as documented in [RFC1766].
      Returns:
        Vector of language `String`'s

    - #### setLangs

          public void setLangs​(java.util.Vector<java.lang.String> aLangs)

      Sets the supported languages.
      Parameters:
        `aLangs` - Vector of language`String`'s supported by the server.

    - #### getLang

          public java.lang.String getLang()

      Gets the single EPP language. A non-`null` language will be returned only if there is one language defined.
      Returns:
        Single language if there is only one language; `null` otherwise.

    - #### setLang

          public void setLang​(java.lang.String aLang)

      Sets the languages to an individual language.
      Parameters:
        `aLang` - Language supported/desired.

    - #### getObjectServices

          public java.util.Vector<EPPService> getObjectServices()

      Gets the list of supported/desired object services. An EPP Client will retrieve the list of object services supported by the EPP Server. An EPP Server will retrieve the list of object services desired by the EPP Client.
      Returns:
        Vector of `EPPService` instances.

    - #### setObjectServices

          public void setObjectServices​(java.util.Vector<EPPService> aObjServices)

      Sets the list of supported/desired object services. An EPP Client will set the list of object services desired. An EPP Server will set the list of supported object services.
      Parameters:
        `aObjServices` - Vector of`EPPService` instances.

    - #### getExtensionServices

          public java.util.Vector<EPPService> getExtensionServices()

      Gets the list of supported/desired extension services. An EPP Client will retrieve the list of extension services supported by the EPP Server. An EPP Server will retrieve the list of extension services desired by the EPP Client.
      Returns:
        Vector of `EPPService` instances.

    - #### setExtensionServices

          public void setExtensionServices​(java.util.Vector<EPPService> aExtServices)

      Sets the list of supported/desired extension services. An EPP Client will set the list of extension services desired. An EPP Server will set the list of supported extension services.
      Parameters:
        `aExtServices` - Vector of `EPPService` instances.

    - #### hasService

          public boolean hasService​(java.lang.String aNamespaceURI)

      Does the service menu include a specified service based on the Namespace URI?
      Parameters:
        `aNamespaceURI` - Service Namespace URI to search for
      Returns:
        `true` if the service menu includes the service Namespace URI; `false` otherwise.

    - #### hasExtensionService

          public boolean hasExtensionService​(java.lang.String aNamespaceURI)

      Does the service menu extension services include a specified extension service based on the Namespace URI?
      Parameters:
        `aNamespaceURI` - Extension service Namespace URI to search for
      Returns:
        `true` if the service menu extension services include the extension service Namespace URI; `false` otherwise.

    - #### encode

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

      encode `EPPServiceMenu` into a DOM element tree. The "service-menu" or "services" element is created and the attribute nodes are appended as children.
      Specified by:
        `encode` in interface `EPPCodecComponent`
      Parameters:
        `aDocument` - DOCUMENT ME!
      Returns:
        service menu root element tree.
      Throws:
        `EPPEncodeException` - Error encoding the DOM element tree.

    - #### decode

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

      decode `EPPServiceMenu` from a DOM element tree. The `aElement` argument needs to be the <service-menu> element for a `EPPGreeting` and <services> element for a `EPPLoginCmd`.
      Specified by:
        `decode` in interface `EPPCodecComponent`
      Parameters:
        `aElement` - root element tree.
      Throws:
        `EPPDecodeException` - Error decoding the DOM element tree.

    - #### equals

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

      implements a deep `EPPServiceMenu` compare.
      Overrides:
        `equals` in class `java.lang.Object`
      Parameters:
        `aObject` - `EPPServiceMenu` instance to compare with
      Returns:
        DOCUMENT ME!

    - #### clone

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

      Clone `EPPServiceMenu`.
      Specified by:
        `clone` in interface `EPPCodecComponent`
      Overrides:
        `clone` in class `java.lang.Object`
      Returns:
        clone of `EPPServiceMenu`
      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 `java.lang.Object`
      Returns:
        Indented XML `String` if successful; `ERROR` otherwise.

    - #### getNamespace

          public java.lang.String getNamespace()

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