package com.voxeo.moho.presence.sip.impl; import com.voxeo.moho.presence.NotifyBody; import com.voxeo.moho.presence.sip.EventSoftState; public class SIPEventSoftState implements EventSoftState { private static final long serialVersionUID = 1789359860278842387L; protected String m_resourceURL; protected String m_eventName; /* * e-tag * sip-if-match */ protected String m_beforeEntityTag; /* * e-tag * sip-if-match */ protected String m_entityTag; protected int m_expires = 0; protected long m_updateTime; protected String m_contentType; // this is a temporary field, not saved in the database protected transient NotifyBody m_body; //protected SoftStateBlobItem m_bodyItem; public SIPEventSoftState() { } public SIPEventSoftState(String resourceURL, String eventName, int expires, String contentType, NotifyBody body) { m_resourceURL = resourceURL; m_eventName = eventName; m_expires = expires; m_contentType = contentType; setBody(body); m_updateTime = System.currentTimeMillis(); m_entityTag = String.valueOf(m_updateTime); } @Override public String getEventName() { return m_eventName; } public void setEventName(String eventName) { m_eventName = eventName; } @Override public String getContentType() { return m_contentType; } public void setContentType(String notifyBodyName) { m_contentType = notifyBodyName; } @Override public String getResourceURL() { return m_resourceURL; } public void setResourceURL(String resourceURL) { m_resourceURL = resourceURL; } @Override public String getEntityTag() { return m_entityTag; } @Override public String getBeforeEntityTag() { return m_beforeEntityTag; } public void setBeforeEntityTag(String entityTag) { m_beforeEntityTag = entityTag; } public void setEntityTag(String entityTag) { m_entityTag = entityTag; } public void setUpdateTime(long time) { m_updateTime = time; } @Override public long getUpdateTime() { return m_updateTime; } @Override public void updateExpires(int expires) { m_expires = expires; m_updateTime = System.currentTimeMillis(); m_beforeEntityTag = m_entityTag; m_entityTag = String.valueOf(m_updateTime); } public int getExpires() { return m_expires; } @Override public boolean isExpired() { return (getSpareTime() <= 0); } @Override public int getSpareTime() { long temp = m_updateTime + m_expires * 1000 - System.currentTimeMillis(); temp = temp / 1000; return (int) ((temp > 0) ? temp : 0); } public NotifyBody getBody() { return m_body; } public void setBody(NotifyBody body) { m_body = body; } @Override public String toString() { return "SIPEventSoftState [m_resourceURL=" + m_resourceURL + ", m_eventName=" + m_eventName + ", m_beforeEntityTag=" + m_beforeEntityTag + ", m_entityTag=" + m_entityTag + ", m_expires=" + m_expires + ", m_contentType=" + m_contentType + "]"; } }