package org.mobicents.slee.services.sip.location;
import java.io.Serializable;
/**
* TODO
* @author martins
*
*/
public abstract class RegistrationBinding implements Serializable {
public abstract String getCallId();
public abstract void setCallId(String callId);
public abstract String getComment();
public abstract void setComment(String comment);
public abstract long getCSeq();
public abstract void setCSeq(long cSq);
public abstract long getExpires();
public abstract void setExpires(long expires);
public abstract float getQValue();
public abstract void setQValue(float q);
public abstract long getRegistrationDate();
public abstract void setRegistrationDate(long registrationDate);
public abstract String getContactAddress();
public abstract String getSipAddress();
// --- logic methods
/**
* Returns number of mseconds till this entry expires
* May be 0 or -ve if already expired
*/
public long getExpiresDelta() {
return ((getExpires()-(System.currentTimeMillis()-getRegistrationDate())/1000));
}
public String toString() {
return "RegistrationBinding[sipAddress=" + getSipAddress() + ",contactAddress=" +getContactAddress()+ ",comment=" + getComment() + ",expires=" +
getExpires() + ",qValue=" + getQValue() + ",callId=" + getCallId() + ",cSeq=" + getCSeq() + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result
+ ((getContactAddress() == null) ? 0 : getContactAddress().hashCode());
result = prime * result
+ ((getSipAddress() == null) ? 0 : getSipAddress().hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (obj != null && obj.getClass() == this.getClass()) {
RegistrationBinding other = (RegistrationBinding) obj;
return this.getSipAddress().equals(other.getSipAddress()) && this.getContactAddress().equals(other.getContactAddress());
}
else {
return false;
}
}
}