package uk.bl.monitrix.database.mongodb.model; import uk.bl.monitrix.database.mongodb.MongoProperties; import uk.bl.monitrix.model.Alert; import com.mongodb.DBObject; /** * An implementation of {@link Alert} backed by MongoDB. * @author Rainer Simon <rainer.simon@ait.ac.at> */ public class MongoAlert implements Alert { private DBObject dbo; public MongoAlert(DBObject dbo) { this.dbo = dbo; } /** * Returns the MongoDB entity that's backing this object. * @return the DBObject */ public DBObject getBackingDBO() { return dbo; } @Override public long getTimestamp() { return (Long) dbo.get(MongoProperties.FIELD_ALERT_LOG_TIMESTAMP); } public void setTimestamp(long timestamp) { dbo.put(MongoProperties.FIELD_ALERT_LOG_TIMESTAMP, timestamp); } @Override public String getOffendingHost() { return dbo.get(MongoProperties.FIELD_ALERT_LOG_OFFENDING_HOST).toString(); } public void setOffendingHost(String hostname) { dbo.put(MongoProperties.FIELD_ALERT_LOG_OFFENDING_HOST, hostname); } @Override public AlertType getAlertType() { return AlertType.valueOf(dbo.get(MongoProperties.FIELD_ALERT_LOG_ALERT_TYPE).toString()); } public void setAlertType(AlertType alertType) { dbo.put(MongoProperties.FIELD_ALERT_LOG_ALERT_TYPE, alertType.name()); } @Override public String getAlertDescription() { return dbo.get(MongoProperties.FIELD_ALERT_LOG_DESCRIPTION).toString(); } public void setAlertDescription(String description) { dbo.put(MongoProperties.FIELD_ALERT_LOG_DESCRIPTION, description); } }