Class EPPResponse

java.lang.Object
com.verisign.epp.codec.gen.EPPResponse
All Implemented Interfaces:
EPPCodecComponent, EPPMessage, Serializable, Cloneable
Direct Known Subclasses:
EPPBalanceInfoResp, EPPBalanceInfoResp, EPPChangeCheckResp, EPPChangeInfoResp, EPPChangeUpdateResp, 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, EPPMaintenanceInfoResp, EPPNameVerificationCheckResp, EPPNameVerificationCreateResp, EPPNameVerificationInfoResp, EPPNameVerificationPendActionMsg, EPPNameWatchCreateResp, EPPNameWatchInfoResp, EPPNameWatchRenewResp, EPPNameWatchTransferResp, EPPOrgCheckResp, EPPOrgCreateResp, EPPOrgInfoResp, EPPOrgPendActionMsg, EPPRegistryCheckResp, EPPRegistryCheckResp, EPPRegistryCreateResp, EPPRegistryCreateResp, EPPRegistryInfoResp, EPPRegistryInfoResp, EPPRegistryUpdateResp, EPPRgpPollResponse, EPPValidateCheckResp

public class EPPResponse extends 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:
  • Field Details

    • TRANSFER_CLIENT_APPROVED

      public static final String TRANSFER_CLIENT_APPROVED
      Transfer status constant - clientApproved
      See Also:
    • TRANSFER_CLIENT_CANCELLED

      public static final String TRANSFER_CLIENT_CANCELLED
      Transfer status constant - clientCancelled
      See Also:
    • TRANSFER_CLIENT_REJECTED

      public static final String TRANSFER_CLIENT_REJECTED
      Transfer status constant - clientRejected
      See Also:
    • TRANSFER_PENDING

      public static final String TRANSFER_PENDING
      Transfer status constant - pending
      See Also:
    • TRANSFER_SERVER_APPROVED

      public static final String TRANSFER_SERVER_APPROVED
      Transfer status constant - serverApproved
      See Also:
    • TRANSFER_SERVER_CANCELLED

      public static final String TRANSFER_SERVER_CANCELLED
      Transfer status constant - serverCancelled
      See Also:
    • ELM_NAME

      public static final String ELM_NAME
      XML root tag name for EPPReponse.
      See Also:
    • ELM_MESSAGE_QUEUE

      public static final String ELM_MESSAGE_QUEUE
      XML tag name response extension data, which is defined by EPPResponse derived classes.
      See Also:
    • ELM_RESPONSE_DATA

      public static final String ELM_RESPONSE_DATA
      XML tag name response extension data, which is defined by EPPResponse derived classes.
      See Also:
    • ELM_MESSAGE_QUEUE_QDATE

      public static final String ELM_MESSAGE_QUEUE_QDATE
      XML tag name for the "qDate" child element to the <msgQ> element
      See Also:
    • ELM_EXTENSION

      public static final String ELM_EXTENSION
      XML tag name for unspecified extension element.
      See Also:
    • extensions

      protected Vector<EPPCodecComponent> 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 Details

    • 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 Details

    • getType

      public 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 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 Vector<EPPResult> 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, 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, String aText, Vector<EPPExtValue> 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(Vector<EPPResult> aResults)
      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:
      aResults - Vector of EPPResult instances
    • hasExtension

      public boolean hasExtension(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(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(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 Vector<EPPCodecComponent> 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(Vector<EPPCodecComponent> 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 Set<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.
    • findUnsupportedExtNamespaces

      public Set<String> findUnsupportedExtNamespaces(List<String> aSupportedExtNamespaces)
      Find the set of unsupported EPP extension XML namespaces based the passed in supported extension XML namespaces and on the list of EPP extensions set in the response.
      Parameters:
      aSupportedExtNamespaces - List of EPP extensions to scan for unsupported XML namespaces. Pass null for no supported extensions.
      Returns:
      Set of unsupported EPP extension XML namespaces; null otherwise.
    • findUnsupportedExtNamespaceSuffixes

      public Set<String> findUnsupportedExtNamespaceSuffixes(List<String> aSupportedExtNamespaceSuffixes)
      Find the set of unsupported EPP extensions based on passing the list of supported extension XML namespace suffixes and the list of EPP extensions set in the command.
      Parameters:
      aSupportedExtNamespaceSuffixes - List of EPP extensions to scan for unsupported XML namespace suffixes. Pass null for no supported extensions.
      Returns:
      Set of unsupported EPP extension XML namespace suffixes; null otherwise.
    • findExtNamespaces

      public Set<String> findExtNamespaces(List<String> aFilterExtNamespaces)
      Find the set of unique EPP extension XML namespaces based on the list of EPP extensions set in the response.
      Parameters:
      aFilterExtNamespaces - Filter extension namespaces from the returned set. Set to null for no filtering.
      Returns:
      Set of unique EPP extension XML namespaces.
    • findExtNamespaceSuffixes

      public Set<String> findExtNamespaceSuffixes(List<String> aFilterExtNamespaceSuffixes)
      Find the set of unique EPP extension XML namespace suffixes based on the list of EPP extensions set in the response and the optional use of a list of XML namespace suffixes to filter.
      Parameters:
      aFilterExtNamespaceSuffixes - Filter extension namespace suffixes from the returned set. Set to null for no filtering.
      Returns:
      Set of unique EPP extension XML namespace suffixes.
    • 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 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 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 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 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 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 Element encode(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(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(Object aObject)
      implements a deep EPPResponse compare.
      Overrides:
      equals in class Object
      Parameters:
      aObject - EPPResponse instance to compare with
      Returns:
      true if equal; false otherwise
    • clone

      public Object clone() throws CloneNotSupportedException
      Clone EPPResponse.
      Specified by:
      clone in interface EPPCodecComponent
      Overrides:
      clone in class Object
      Returns:
      clone of EPPResponse
      Throws:
      CloneNotSupportedException - standard Object.clone exception
    • toString

      public String toString()
      Implementation of Object.toString, which will result in an indented XML String representation of the concrete EPPCodecComponent.
      Overrides:
      toString in class Object
      Returns:
      Indented XML String if successful; ERROR otherwise.
    • doEncode

      protected Element doEncode(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(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.