EIDSMessageEvent.java

  1. /*
  2.  * EIDSMessageEvent
  3.  */
  4. package gov.usgs.earthquake.eidsutil;

  5. import java.util.EventObject;
  6. import java.util.Date;

  7. /**
  8.  * EIDSMessageEvent objects are sent from EIDSClients to EIDSListeners.
  9.  */
  10. public class EIDSMessageEvent extends EventObject {

  11.     /** Serialization id. */
  12.     private static final long serialVersionUID = 1L;

  13.     /** The sequence number the server assigned. */
  14.     private Long serverSequenceNumber;

  15.     /** The time the server received this message. */
  16.     private Date serverTimeGenerated;

  17.     /** The unique source name. */
  18.     private String feederSourceHost;

  19.     /** The unique source number. */
  20.     private Long feederSequenceNumber;

  21.     /** Namespace for root element. */
  22.     private String rootNamespace;

  23.     /** Root element of message. */
  24.     private String rootElement;

  25.     /** Message that was received via EIDS. */
  26.     private String message;

  27.     /** The server that delivered this message. */
  28.     private String serverHost;

  29.     /**
  30.      * Create a new EIDSMessageEvent.
  31.      *
  32.      * @param source
  33.      *            the EIDSClient that received the message.
  34.      * @param feederSourceHost
  35.      *            the origin of the message.
  36.      * @param feederSequenceNumber
  37.      *            a unique identifier from feederSourceHost.
  38.      * @param rootNamespace
  39.      *            the rootElement namespace of the message
  40.      * @param rootElement
  41.      *            the message rootElement local name.
  42.      * @param message
  43.      *            the message that was received.
  44.      * @param serverSequenceNumber
  45.      *            the sequence number assigned by the server that delivered this
  46.      *            message.
  47.      * @param serverTimeGenerated
  48.      *            the date the server received this message.
  49.      */
  50.     public EIDSMessageEvent(QWEmbeddedClient source, final Long serverSequenceNumber,
  51.             final Date serverTimeGenerated, final String feederSourceHost,
  52.             final Long feederSequenceNumber, final String rootNamespace,
  53.             final String rootElement, final String message) {
  54.         super(source);
  55.         this.serverHost = source.getServerHost();
  56.         this.serverSequenceNumber = serverSequenceNumber;
  57.         this.serverTimeGenerated = serverTimeGenerated;
  58.         this.feederSourceHost = feederSourceHost;
  59.         this.feederSequenceNumber = feederSequenceNumber;
  60.         this.rootNamespace = rootNamespace;
  61.         this.rootElement = rootElement;
  62.         this.message = message;
  63.     }

  64.     /**
  65.      * @return the message source as an EIDSClient.
  66.      */
  67.     public QWEmbeddedClient getQWEmbeddedClient() {
  68.         return (QWEmbeddedClient) getSource();
  69.     }

  70.     /**
  71.      * @return the serverHost
  72.      */
  73.     public String getServerHost() {
  74.         return serverHost;
  75.     }

  76.     /**
  77.      * @return the serverSequenceNumber
  78.      */
  79.     public Long getServerSequence() {
  80.         return serverSequenceNumber;
  81.     }

  82.     /**
  83.      * @return the serverTimeGenerated
  84.      */
  85.     public Date getServerTimeGenerated() {
  86.         return serverTimeGenerated;
  87.     }

  88.     /**
  89.      * @return combined with message sequence, uniquely identifies this message.
  90.      */
  91.     public String getMessageSource() {
  92.         return feederSourceHost;
  93.     }

  94.     /**
  95.      * @return combined with message source, uniquely identifies this message.
  96.      */
  97.     public Long getMessageSequence() {
  98.         return feederSequenceNumber;
  99.     }

  100.     /**
  101.      * @return the namespace of the xml root element.
  102.      */
  103.     public String getRootNamespace() {
  104.         return rootNamespace;
  105.     }

  106.     /**
  107.      * @return the xml root element of the message.
  108.      */
  109.     public String getRootElement() {
  110.         return rootElement;
  111.     }

  112.     /**
  113.      * @return the message.
  114.      */
  115.     public String getMessage() {
  116.         return message;
  117.     }

  118. }