com.verisign.epp.codec.gen

## Class EPPResponse

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

- All Implemented Interfaces:
    EPPCodecComponent, EPPMessage, java.io.Serializable, java.lang.Cloneable
  Direct Known Subclasses:
    EPPBalanceInfoResp, EPPContactCheckResp, EPPContactCreateResp, EPPContactInfoResp, EPPContactPendActionMsg, EPPContactTransferResp, EPPDefRegCheckResp, EPPDefRegCreateResp, EPPDefRegInfoResp, EPPDefRegRenewResp, EPPDefRegTransferResp, EPPDomainCheckResp, EPPDomainCreateResp, EPPDomainInfoResp, EPPDomainPendActionMsg, EPPDomainRenewResp, EPPDomainTransferResp, EPPEmailFwdCheckResp, EPPEmailFwdCreateResp, EPPEmailFwdInfoResp, EPPEmailFwdPendActionMsg, EPPEmailFwdRenewResp, EPPEmailFwdTransferResp, EPPHostCheckResp, EPPHostCreateResp, EPPHostInfoResp, EPPHostPendActionMsg, EPPIdnTableCheckResp, EPPIdnTableInfoResp, EPPLowBalancePollResponse, EPPNameVerificationCheckResp, EPPNameVerificationCreateResp, EPPNameVerificationInfoResp, EPPNameVerificationPendActionMsg, EPPNameWatchCreateResp, EPPNameWatchInfoResp, EPPNameWatchRenewResp, EPPNameWatchTransferResp, EPPOrgCheckResp, EPPOrgCreateResp, EPPOrgInfoResp, EPPOrgPendActionMsg, EPPRegistryCheckResp, EPPRegistryCheckResp, EPPRegistryCheckResp, EPPRegistryCreateResp, EPPRegistryCreateResp, EPPRegistryCreateResp, EPPRegistryInfoResp, EPPRegistryInfoResp, EPPRegistryInfoResp, EPPRegistryUpdateResp, EPPRgpPollResponse, EPPValidateCheckResp

      public class EPPResponse
      extends java.lang.Object
      implements EPPMessage

  Represents an EPP response that is send by an EPP Server and received by an EPP Client. An `EPPResponse` can be encoded and decoded by `EPPCodec`. Every EPP response contain the following:
  - transaction id - Mirror of the transaction id set in the associated `EPPCommand`
  - results - One or more `EPPResult` instances.
  `EPPResponse` is a concrete class that can be extended by the Command Mapping responses. A Command Mapping response must override the Template Design Pattern `doEncode` and `doDecode` methods. `EPPResponse` provides a default `doEncode` and `doDecode` implementation that does nothing. An `EPPResponse` client will call `encode` or `decode`, which in turn will call `doEncode` or `doDecode`, respectively.
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.util.Vector` | `extensions` Extension objects associated with the response.
    `static java.lang.String` | `TRANSFER_CLIENT_APPROVED` Transfer status constant - clientApproved
    `static java.lang.String` | `TRANSFER_CLIENT_CANCELLED` Transfer status constant - clientCancelled
    `static java.lang.String` | `TRANSFER_CLIENT_REJECTED` Transfer status constant - clientRejected
    `static java.lang.String` | `TRANSFER_PENDING` Transfer status constant - pending
    `static java.lang.String` | `TRANSFER_SERVER_APPROVED` Transfer status constant - serverApproved
    `static java.lang.String` | `TRANSFER_SERVER_CANCELLED` Transfer status constant - serverCancelled

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `EPPResponse()` Allocates a new `EPPResponse` with default attribute values.
    `EPPResponse(EPPTransId aTransId)` Allocates a new `EPPResponse` setting the transaction id.
    `EPPResponse(EPPTransId aTransId, EPPResult aResult)` Allocates a new `EPPResponse` setting the transaction id and an individual result.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addExtension(EPPCodecComponent aExtension)` Adds an extension object.
    `java.lang.Object` | `clone()` Clone `EPPResponse`.
    `void` | `decode(org.w3c.dom.Element aElement)` decode `EPPResponse` from a DOM element tree.
    `protected void` | `doDecode(org.w3c.dom.Element aElement)` Decodes the attributes of the concrete `EPPResponse` and must be overridden by `EPPResponse` derived classes.
    `protected org.w3c.dom.Element` | `doEncode(org.w3c.dom.Document aDocument)` Encodes the attributes of the concrete `EPPResponse` and must be overridden by `EPPResponse` derived classes.
    `org.w3c.dom.Element` | `encode(org.w3c.dom.Document aDocument)` encode `EPPResponse` into a DOM element tree.
    `boolean` | `equals(java.lang.Object aObject)` implements a deep `EPPResponse` compare.
    `java.util.Set<java.lang.String>` | `findDuplicateExtNamespaces()` Find the set of duplicate EPP extension XML namespaces based on the list of EPP extensions set in the response.
    `EPPCodecComponent` | `getExtension(java.lang.Class aExtensionClass)` Gets the extension object with the specified class.
    `EPPCodecComponent` | `getExtension(java.lang.Class aExtensionClass, boolean aFailOnDuplicate)` Gets the response extension object with the specified class with the option to fail when a duplicate extension is found.
    `java.util.Vector` | `getExtensions()` Gets the extensions.
    `java.lang.Long` | `getMessageQueue()` Deprecated. As of EPP 1.0, replaced with `getMsgQueueCount()`
    `EPPMsgQueue` | `getMsgQueue()` Gets the response message queue object.
    `java.lang.Long` | `getMsgQueueCount()` Convenience method for getting the message queue count attribute.
    `java.util.Date` | `getMsgQueueDate()` Convenience method for getting the message queue date attribute.
    `java.lang.String` | `getMsgQueueMsg()` Convenience method for getting the message queue message attribute.
    `java.lang.String` | `getNamespace()` Gets the EPP namespace associated with the `EPPResponse`.
    `java.util.Date` | `getQDate()` Deprecated. As of EPP 1.0, replaced with `getMsgQueueDate()`
    `EPPResult` | `getResult()` Gets the first result in the response.
    `java.util.Vector` | `getResults()` Gets the Vector of results associated with the `EPPResponse`.
    `EPPTransId` | `getTransId()` Gets the Transaction Id associated with the `EPPResponse`.
    `java.lang.String` | `getType()` Gets the EPP response extension type name or `null` if there is no extension.
    `boolean` | `hasExtension(java.lang.Class aExtensionClass)` Does the response have an extension object of a specified class? If so, the extension object can be retrieved with a call to `getExtensions(Class)`.
    `boolean` | `hasExtensions()` Does the response have an extension objects? If so, the command extension objects can be retrieved with a call to `getExtensions`.
    `boolean` | `hasMessageQueue()` Deprecated. As of EPP 1.0, replaced with `hasMsgQueue()`. This method will return `true` if a message queue object exists that has a non-`null` message count.
    `boolean` | `hasMsgQueue()` Does the response have a message queue object? If so, the response message queue object can be retrieved with a call to `getMsgQueue`.
    `boolean` | `hasResultCode(int aCode)` Does the response have a result with the specified result code?
    `boolean` | `isSuccess()` Does the response have a success status? `isSuccess` will check that there is only one `EPPResult` defined and the result code is set to a value of 10??.
    `void` | `setExtension(EPPCodecComponent aExtension)` Deprecated. Replaced by `addExtension(EPPCodecComponent)`. This method will add the extension as is done in `addExtension(EPPCodecComponent)`.
    `void` | `setExtensions(java.util.Vector aExtensions)` Sets the response extension objects.
    `void` | `setMsgQueue(EPPMsgQueue aMsgQueue)` Sets the response message queue object.
    `void` | `setResult(EPPResult aResult)` Sets an individual result for the response with an `EPPResult` instance.
    `void` | `setResult(int aCode)` Sets an individual result for the response with a result code.
    `void` | `setResult(int aCode, java.lang.String aText)` Sets an individual result for the response with a result code and the result text.
    `void` | `setResult(int aCode, java.lang.String aText, java.util.Vector aValues)` Sets an individual result for the response with a result code, the result text, and a Vector of `String` values.
    `void` | `setResults(java.util.Vector someResults)` Sets the result(s) of the response as a Vector of `EPPResult` instances.
    `void` | `setTransId(EPPTransId aTransId)` Sets the Transaction Id associated with the `EPPResponse`.
    `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

    - #### TRANSFER_CLIENT_APPROVED

          public static final java.lang.String TRANSFER_CLIENT_APPROVED

      Transfer status constant - clientApproved
      See Also:
        Constant Field Values

    - #### TRANSFER_CLIENT_CANCELLED

          public static final java.lang.String TRANSFER_CLIENT_CANCELLED

      Transfer status constant - clientCancelled
      See Also:
        Constant Field Values

    - #### TRANSFER_CLIENT_REJECTED

          public static final java.lang.String TRANSFER_CLIENT_REJECTED

      Transfer status constant - clientRejected
      See Also:
        Constant Field Values

    - #### TRANSFER_PENDING

          public static final java.lang.String TRANSFER_PENDING

      Transfer status constant - pending
      See Also:
        Constant Field Values

    - #### TRANSFER_SERVER_APPROVED

          public static final java.lang.String TRANSFER_SERVER_APPROVED

      Transfer status constant - serverApproved
      See Also:
        Constant Field Values

    - #### TRANSFER_SERVER_CANCELLED

          public static final java.lang.String TRANSFER_SERVER_CANCELLED

      Transfer status constant - serverCancelled
      See Also:
        Constant Field Values

    - #### extensions

          protected java.util.Vector extensions

      Extension objects associated with the response. The extension object is associated with a unique XML Namespace, XML Schema, and can be any simple or complex object that implements the `EPPCodecComponent` interface.

  - ### Constructor Detail

    - #### EPPResponse

          public EPPResponse()

      Allocates a new `EPPResponse` with default attribute values. The defaults include the following:
      - transaction id is set to `null`. This attribute must be set using `setTransId` before invoking `encode`.
      - extensions is set to `null`. This attribute is optional.
      - message queue is set to `null`. This attribute is optional.
      - results - Set to an individual successful result

    - #### EPPResponse

          public EPPResponse(EPPTransId aTransId)

      Allocates a new `EPPResponse` setting the transaction id. The results attribute will default to an individual successful result. Both the extensions and the message queue will be set to `null`.
      Parameters:
        `aTransId` - Transaction id associated with the response.

    - #### EPPResponse

          public EPPResponse(EPPTransId aTransId,
                             EPPResult aResult)

      Allocates a new `EPPResponse` setting the transaction id and an individual result. Both the extensions and the message queue will be set to `null`.
      Parameters:
        `aTransId` - Transaction id associated with the response.
        `aResult` - Result to associate with the response.

  - ### Method Detail

    - #### getType

          public java.lang.String getType()

      Gets the EPP response extension type name or `null` if there is no extension.
      Returns:
        Extension type name if defined; `null` otherwise. For example, `getType` will return EPPDomainCheckResp.ELM_NAME for a EPPDomainCheckResp instance.

    - #### getTransId

          public EPPTransId getTransId()

      Gets the Transaction Id associated with the `EPPResponse`. This should include the `EPPCommand` client specified transaction id, and a server generated transaction id.
      Returns:
        EPPTransId instance if defined; `null` otherwise.

    - #### setTransId

          public void setTransId(EPPTransId aTransId)

      Sets the Transaction Id associated with the `EPPResponse`. This should include the `EPPCommand` client specified transaction id, and a server generated transaction id.
      Parameters:
        `aTransId` - Response transaction id

    - #### getNamespace

          public java.lang.String getNamespace()

      Gets the EPP namespace associated with the `EPPResponse`. A base `EPPResponse` instance will have the EPP namespace equal to `EPPCodec.NS`.
      Specified by:
        `getNamespace` in interface `EPPCodecComponent`
      Specified by:
        `getNamespace` in interface `EPPMessage`
      Returns:
        Namespace URI associated with the `EPPResponse`.

    - #### getResults

          public java.util.Vector getResults()

      Gets the Vector of results associated with the `EPPResponse`.
      Returns:
        Vector of `EPPResult` instances.

    - #### getResult

          public EPPResult getResult()

      Gets the first result in the response. Use `getResults()` to get all results associated with the response.
      Returns:
        The first result if defined; `null` otherwise

    - #### isSuccess

          public boolean isSuccess()

      Does the response have a success status? `isSuccess` will check that there is only one `EPPResult` defined and the result code is set to a value of 10??.
      Returns:
        `true` if is success; `false` otherwise.

    - #### hasResultCode

          public boolean hasResultCode(int aCode)

      Does the response have a result with the specified result code?
      Parameters:
        `aCode` - Result code to scan for
      Returns:
        `true` if the result code exists in response; `false` otherwise.

    - #### setResult

          public void setResult(int aCode)

      Sets an individual result for the response with a result code. The EPP Specification defines the range of the result codes to be 1000 - 9999.
      `setResult(int)` will set the results to a Vector of one `EPPResult` with the result code set to `aCode`.
      If the code is set to one of the pre-defined result codes, the result text will be set to the matching en value, as defined in the EPP Specification; otherwise the text is set to the empty string "".
      Parameters:
        `aCode` - Result code (1000-9999)

    - #### setResult

          public void setResult(int aCode,
                                java.lang.String aText)

      Sets an individual result for the response with a result code and the result text. The EPP Specification defines the range of the result codes to be 1000 - 9999.
      `setResult(int)` will set the results to a Vector of one `EPPResult` with the result code set to `aCode`, and the result text set to `aText`. The language of the text will default to "en".
      Parameters:
        `aCode` - Result code (1000-9999)
        `aText` - Result text in the default "en" language.

    - #### setResult

          public void setResult(int aCode,
                                java.lang.String aText,
                                java.util.Vector aValues)

      Sets an individual result for the response with a result code, the result text, and a Vector of `String` values. This method should only be called if there is an error, since values are not included with successful results. The EPP Specification defines the range of the result codes to be 1000 - 9999.
      `setResult(int)` will set the results to a Vector of one `EPPResult` with the result code set to `aCode`, the result text set to `aText`, and the values set to `someValues`. The language of the text will default to "en".
      Parameters:
        `aCode` - Result code (1000-9999)
        `aText` - Result text in the default "en" language.
        `aValues` - Vector of `EPPValue` or `EPPExtValue` instances

    - #### setResult

          public void setResult(EPPResult aResult)

      Sets an individual result for the response with an `EPPResult` instance. This method allows for specification of result attributes like the text language.
      Parameters:
        `aResult` - Individual response result.

    - #### setResults

          public void setResults(java.util.Vector someResults)

      Sets the result(s) of the response as a Vector of `EPPResult` instances. This method should only be used if there is an error, since only errors can contain more than one result.
      Parameters:
        `someResults` - Vector of `EPPResult` instances

    - #### hasExtension

          public boolean hasExtension(java.lang.Class aExtensionClass)

      Does the response have an extension object of a specified class? If so, the extension object can be retrieved with a call to `getExtensions(Class)`.
      Parameters:
        `aExtensionClass` - Specific extension class to look for
      Returns:
        `true` if the extension object exists; `false` otherwise.

    - #### getExtension

          public EPPCodecComponent getExtension(java.lang.Class aExtensionClass)

      Gets the extension object with the specified class. The extension object is an unspecified element in the EPP Specifications. To create an extension object, an XML Schema for the extension object must exist with a unique XML Namespace. A custom `EPPExtensionFactory` must be created for the extension, which returns an instance of `EPPCodecComponent` for an instance of an extension object in the EPP Response.
      Parameters:
        `aExtensionClass` - of desired extension
      Returns:
        Concrete `EPPCodecComponent` associated with the response if exists; `null` otherwise.

    - #### getExtension

          public EPPCodecComponent getExtension(java.lang.Class aExtensionClass,
                                                boolean aFailOnDuplicate)
                                         throws EPPDuplicateExtensionException

      Gets the response extension object with the specified class with the option to fail when a duplicate extension is found. The extension object is an unspecified element in the EPP Specifications. To create an extension object, an XML Schema for the extension object must exist with a unique XML Namespace. A custom `EPPExtensionFactory` must be created for the extension, which returns an instance of `EPPCodecComponent` for an instance of an extension object in the `EPPResponse`.
      Parameters:
        `aExtensionClass` - `Class` of desired extension
        `aFailOnDuplicate` - Throw `EPPDuplicateExtensionException` if `true` and a duplicate extension is found
      Returns:
        Concrete `EPPCodecComponent` associated with the command if exists; `null` otherwise.
      Throws:
        `EPPDuplicateExtensionException` - If a duplicate extension is found with the extension included in the extension

    - #### setExtension

          @Deprecated
          public void setExtension(EPPCodecComponent aExtension)

      Deprecated. Replaced by `addExtension(EPPCodecComponent)`. This method will add the extension as is done in `addExtension(EPPCodecComponent)`.
      Sets a response extension object. The extension object is an unspecified element in the EPP Specifications. The unspecified element will be encoded under the <unspec> element of the EPP Response.
      Parameters:
        `aExtension` - response extension object associated with the response

    - #### addExtension

          public void addExtension(EPPCodecComponent aExtension)

      Adds an extension object. The extension object is an unspecified element in the EPP Specifications. The unspecified element will be encoded under the <unspec> element of the EPP Response.
      Parameters:
        `aExtension` - extension object associated with the response

    - #### hasExtensions

          public boolean hasExtensions()

      Does the response have an extension objects? If so, the command extension objects can be retrieved with a call to `getExtensions`.
      Returns:
        `true` if there are extension objects; `false` otherwise.

    - #### getExtensions

          public java.util.Vector getExtensions()

      Gets the extensions. The extension objects are an unspecified elements in the EPP Specification. To create an extension object, an XML Schema for the extension object must exist with a unique XML Namespace. A custom `EPPExtensionFactory` must be created for the extension, which returns an instance of `EPPCodecComponent` for an instance of an extension object in the EPP Response.
      Returns:
        `Vector` of concrete `EPPCodecComponent` associated with the response if exists; `null` otherwise.

    - #### setExtensions

          public void setExtensions(java.util.Vector aExtensions)

      Sets the response extension objects. The extension objects are an unspecified element in the EPP Specifications. The unspecified element will be encoded under the <unspec> element of the EPP Response.
      Parameters:
        `aExtensions` - command extension objects associated with the command

    - #### findDuplicateExtNamespaces

          public java.util.Set<java.lang.String> findDuplicateExtNamespaces()

      Find the set of duplicate EPP extension XML namespaces based on the list of EPP extensions set in the response.
      Returns:
        `Set` of duplicate EPP extension XML namespaces; `null` otherwise.

    - #### hasMessageQueue

          @Deprecated
          public boolean hasMessageQueue()

      Deprecated. As of EPP 1.0, replaced with `hasMsgQueue()`. This method will return `true` if a message queue object exists that has a non-`null` message count.
      Does the response have a message queue object? If so, the response message queue object can be retrieved with a call to `getMessageQueue`.
      Returns:
        `true` if this is an message queue object; `false` otherwise.

    - #### getMessageQueue

          @Deprecated
          public java.lang.Long getMessageQueue()

      Deprecated. As of EPP 1.0, replaced with `getMsgQueueCount()`
      Gets the response message queue object. Currently the message queue object is a `Long` count of the number of messages.
      Returns:
        Number of queue messages if defined; `null` otherwise.

    - #### getQDate

          @Deprecated
          public java.util.Date getQDate()

      Deprecated. As of EPP 1.0, replaced with `getMsgQueueDate()`
      Get the response message queue date.
      Returns:
        message queue date if defined; `null` otherwise.

    - #### hasMsgQueue

          public boolean hasMsgQueue()

      Does the response have a message queue object? If so, the response message queue object can be retrieved with a call to `getMsgQueue`.
      Returns:
        `true` if this is an message queue object; `false` otherwise.
      Since:
        EPP 1.0

    - #### setMsgQueue

          public void setMsgQueue(EPPMsgQueue aMsgQueue)

      Sets the response message queue object.
      Parameters:
        `aMsgQueue` - queue object
      Since:
        EPP 1.0

    - #### getMsgQueue

          public EPPMsgQueue getMsgQueue()

      Gets the response message queue object.
      Returns:
        Message queue object if defined; `null` otherwise.

    - #### getMsgQueueCount

          public java.lang.Long getMsgQueueCount()

      Convenience method for getting the message queue count attribute. This is equivalent to getting the message queue object by `getMsgQueue()` and than calling `EPPMsgQueue.getCount()` .
      Returns:
        Count of queue messages if defined; `null` otherwise.
      Since:
        EPP 1.0

    - #### getMsgQueueDate

          public java.util.Date getMsgQueueDate()

      Convenience method for getting the message queue date attribute.
      Returns:
        message queue date if defined; `null` otherwise.
      Since:
        EPP 1.0

    - #### getMsgQueueMsg

          public java.lang.String getMsgQueueMsg()

      Convenience method for getting the message queue message attribute.
      Returns:
        message queue message if defined; `null` otherwise.
      Since:
        EPP 1.0

    - #### encode

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

      encode `EPPResponse` into a DOM element tree. The <response> element is created and the attribute nodes are appending as children. This method is a Template Method in the Template Method Design Pattern.
      Specified by:
        `encode` in interface `EPPCodecComponent`
      Parameters:
        `aDocument` - Used as a document factory
      Returns:
        <response> root element tree.
      Throws:
        `EPPEncodeException` - Error encoding the DOM element tree.

    - #### decode

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

      decode `EPPResponse` from a DOM element tree. The "response" element needs to be the value of the `aElement` argument. This method is a Template Method in the Template Method Design Pattern.
      Specified by:
        `decode` in interface `EPPCodecComponent`
      Parameters:
        `aElement` - <response> root element tree.
      Throws:
        `EPPDecodeException` - Error decoding the DOM element tree.
        `EPPComponentNotFoundException` - An extension component could not be found

    - #### equals

          public boolean equals(java.lang.Object aObject)

      implements a deep `EPPResponse` compare.
      Overrides:
        `equals` in class `java.lang.Object`
      Parameters:
        `aObject` - `EPPResponse` instance to compare with
      Returns:
        `true` if equal; `false` otherwise

    - #### clone

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

      Clone `EPPResponse`.
      Specified by:
        `clone` in interface `EPPCodecComponent`
      Overrides:
        `clone` in class `java.lang.Object`
      Returns:
        clone of `EPPResponse`
      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.

    - #### doEncode

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

      Encodes the attributes of the concrete `EPPResponse` and must be overridden by `EPPResponse` derived classes. The default implementation is to do nothing, since `EPPResponse` is a concrete class. `encode` is a Template Method and this method is a Primitive Operation within the Template Method Design Pattern.
      Parameters:
        `aDocument` - DOM document used as a factory of DOM objects.
      Returns:
        instance root DOM element along with attribute child nodes.
      Throws:
        `EPPEncodeException` - Error encoding the DOM element tree.

    - #### doDecode

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

      Decodes the attributes of the concrete `EPPResponse` and must be overridden by `EPPResponse` derived classes. The default implementation is to do nothing, since `EPPResponse` is a concrete class. `decode` is a Template Method and this method is a Primitive Operation within the Template Method Design Pattern.
      Parameters:
        `aElement` - root DOM element associated with instance
      Throws:
        `EPPDecodeException` - Error decoding the DOM element tree.