com.verisign.epp.framework

## Class EPPDispatcher

- java.lang.Object
- - com.verisign.epp.framework.EPPDispatcher

-     public class EPPDispatcher
      extends java.lang.Object

  A Singleton class that delegates message assembly to an EPPAssembler then routes messages to the appropriate EPPEventHandler.
  See Also:
    `EPPEventHandler`, `EPPEvent`

- - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static EPPDispatcher` | `getInstance()` Gets the one and only instance of the EPPDispatcher
    `void` | `processConnection(java.io.InputStream aInputStream, java.io.OutputStream aOutputStream, java.lang.Object aData)` Returns the `EPPEventResponse` that new connecting clients should receive.
    `void` | `processMessage(java.io.InputStream aInputStream, java.io.OutputStream aOutputStream, java.lang.Object aData)` Creates an `EPPMessage`, sends the message to the appropriate `EPPEventHandler`, and then sends the response on the OutputStream.
    `void` | `registerConnectionHandler(EPPConnectionHandler aConnectionHandler)` Registers a `EPPConnectionHandler` for notification of connection events
    `void` | `registerHandler(EPPEventHandler aHandler)` Registers an `EPPEvenHandler` for notification of Events.
    `void` | `send(EPPMessage aMessage, java.io.OutputStream aOutputStream)` Sends an EPP message to the client.
    `void` | `send(EPPMessage aMessage, java.io.OutputStream aOutputStream, java.lang.Object aData)` Sends an EPP message to the client.
    `void` | `setAssembler(EPPAssembler aAssembler)` Sets the Assembler.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### getInstance

          public static EPPDispatcher getInstance()

      Gets the one and only instance of the EPPDispatcher
      Returns:
        Dispatcher The dispatcher

    - #### processConnection

          public void processConnection(java.io.InputStream aInputStream,
                                        java.io.OutputStream aOutputStream,
                                        java.lang.Object aData)

      Returns the `EPPEventResponse` that new connecting clients should receive. In this case the EPPGreeting.
      Parameters:
        `aInputStream` - The InputStream of the new connection.
        `aOutputStream` - The OutputStream to send the response on.
        `aData` - Any extra data that the connection handler may need.

    - #### setAssembler

          public void setAssembler(EPPAssembler aAssembler)

      Sets the Assembler. The format of the Input/Output streams determines the type of Assembler that should be used.
      Parameters:
        `aAssembler` - The type of Assembler to use.

    - #### processMessage

          public void processMessage(java.io.InputStream aInputStream,
                                     java.io.OutputStream aOutputStream,
                                     java.lang.Object aData)
                              throws EPPEventException,
                                     EPPAssemblerException

      Creates an `EPPMessage`, sends the message to the appropriate `EPPEventHandler`, and then sends the response on the OutputStream.
      Parameters:
        `aInputStream` - The InputStream used to create the EPPMessage
        `aOutputStream` - The OutputStream to send the EPPResponse on
        `aData` - Any additional data that may be required by the EPPEventHandler
      Throws:
        `EPPEventException` - Exception related to the handling of an event
        `EPPAssemblerException` - Exception related to the assembling/de-assembling of messages. `EPPAssemberException.isFatal` can be called to determine if the exception is a fatal exception for the client session.

    - #### registerHandler

          public void registerHandler(EPPEventHandler aHandler)

      Registers an `EPPEvenHandler` for notification of Events.
      Parameters:
        `aHandler` - The `EPPEventhandler` to register

    - #### registerConnectionHandler

          public void registerConnectionHandler(EPPConnectionHandler aConnectionHandler)

      Registers a `EPPConnectionHandler` for notification of connection events
      Parameters:
        `aConnectionHandler` - The connection handler to registier

    - #### send

          public void send(EPPMessage aMessage,
                           java.io.OutputStream aOutputStream)
                    throws EPPAssemblerException

      Sends an EPP message to the client.
      Parameters:
        `aMessage` - EPP Message to send to the client
        `aOutputStream` - Output stream to write the EPP Message
      Throws:
        `EPPAssemblerException` - Error writing message to output stream

    - #### send

          public void send(EPPMessage aMessage,
                           java.io.OutputStream aOutputStream,
                           java.lang.Object aData)
                    throws EPPAssemblerException

      Sends an EPP message to the client.
      Parameters:
        `aMessage` - EPP Message to send to the client
        `aOutputStream` - Output stream to write the EPP Message
        `aData` - whatever data should be passed to the Assembler
      Throws:
        `EPPAssemblerException` - Error writing message to output stream