package org.jboss.capedwarf.common.dto; import org.jboss.capedwarf.common.sql.Column; import org.json.JSONException; import org.json.JSONObject; /** * Simple timestamped dto. * * @author <a href="mailto:ales.justin@jboss.org">Ales Justin</a> */ public class Timestamped extends Identity { private static final long serialVersionUID = 1l; // No of miliseconds since 1970 1.1. UTC private long timestamp; // Expiration time in milis private long expirationDelta; /** * Is the dto expired. * * @return true if expired, false otherwise. */ public boolean isExpired() { return (timestamp + expirationDelta < System.currentTimeMillis()); } public void writeJSONObject(JSONObject json) throws JSONException { super.writeJSONObject(json); if (timestamp > 0) json.put("timestamp", timestamp); if (expirationDelta > 0) json.put("expirationDelta", expirationDelta); } public void readJSONObject(JSONObject json) throws JSONException { super.readJSONObject(json); timestamp = json.optLong("timestamp", 0); expirationDelta = json.optLong("expirationDelta", 0); } @Column public long getTimestamp() { return timestamp; } public void setTimestamp(long timestamp) { this.timestamp = timestamp; } @Column public long getExpirationDelta() { return expirationDelta; } public void setExpirationDelta(long expirationDelta) { this.expirationDelta = expirationDelta; } public boolean equals(Object obj) { if (super.equals(obj) == false) return false; Timestamped other = (Timestamped) obj; return (timestamp == other.timestamp && expirationDelta == other.expirationDelta); } }