HeartbeatInfo.java

  1. package gov.usgs.earthquake.distribution;

  2. import java.util.Date;

  3. import javax.json.Json;
  4. import javax.json.JsonObject;

  5. /**
  6.  * HeartbeatInfo stores a single heartbeat key/value message, together with a
  7.  * timestamp
  8.  *
  9.  * @author tene
  10.  *
  11.  */
  12. public class HeartbeatInfo {

  13.     private String message = null;
  14.     private Date date = null;

  15.     /**
  16.      * Message constructor
  17.      *
  18.      * @param message string
  19.      * @param date Date
  20.      */
  21.     public HeartbeatInfo(String message, Date date) {
  22.         this.message = message;
  23.         this.date = date;
  24.     }

  25.     /**
  26.      * @return message contents
  27.      */
  28.     public String getMessage() {
  29.         return message;
  30.     }

  31.     /**
  32.      * @return message timestamp
  33.      */
  34.     public Date getDate() {
  35.         return date;
  36.     }

  37.     /**
  38.      * Set message content
  39.      *
  40.      * @param message string to set
  41.      */
  42.     public void setMessage(String message) {
  43.         this.message = message;
  44.     }

  45.     /**
  46.      * Set message timestamp
  47.      *
  48.      * @param date to set
  49.      */
  50.     public void setDate(Date date) {
  51.         this.date = date;
  52.     }

  53.     /**
  54.      * Test if a message is older than a purgeDate
  55.      *
  56.      * @param purgeDate Date
  57.      * @return true if {@link #getDate()} is before purgeDate
  58.      */
  59.     public boolean isExpired(Date purgeDate) {
  60.         return date.before(purgeDate);
  61.     }

  62.     /**
  63.      * @return JSON object of the message
  64.      */
  65.     public JsonObject toJsonObject() {
  66.         JsonObject object = Json.createObjectBuilder()
  67.                 .add("message", message)
  68.                 .add("date", String.valueOf(date.getTime()))
  69.                 .build();
  70.         return object;
  71.     }

  72. }