HeartbeatInfo.java

package gov.usgs.earthquake.distribution;

import java.util.Date;

import javax.json.Json;
import javax.json.JsonObject;

/**
 * HeartbeatInfo stores a single heartbeat key/value message, together with a
 * timestamp
 *
 * @author tene
 *
 */
public class HeartbeatInfo {

  private String message = null;
  private Date date = null;

  /**
   * Message constructor
   *
   * @param message string
   * @param date    Date
   */
  public HeartbeatInfo(String message, Date date) {
    this.message = message;
    this.date = date;
  }

  /**
   * @return message contents
   */
  public String getMessage() {
    return message;
  }

  /**
   * @return message timestamp
   */
  public Date getDate() {
    return date;
  }

  /**
   * Set message content
   *
   * @param message string to set
   */
  public void setMessage(String message) {
    this.message = message;
  }

  /**
   * Set message timestamp
   *
   * @param date to set
   */
  public void setDate(Date date) {
    this.date = date;
  }

  /**
   * Test if a message is older than a purgeDate
   *
   * @param purgeDate Date
   * @return true if {@link #getDate()} is before purgeDate
   */
  public boolean isExpired(Date purgeDate) {
    return date.before(purgeDate);
  }

  /**
   * @return JSON object of the message
   */
  public JsonObject toJsonObject() {
    JsonObject object = Json.createObjectBuilder().add("message", message).add("date", String.valueOf(date.getTime()))
        .build();
    return object;
  }

}