package biz.bokhorst.xprivacy;
import java.util.Date;
public class CRestriction {
private long mExpiry;
private int mUid;
private String mRestrictionName;
private String mMethodName;
private String mExtra;
public boolean restricted;
public boolean asked;
public CRestriction(int uid, String restrictionName, String methodName, String extra) {
mExpiry = new Date().getTime() + PrivacyManager.cRestrictionCacheTimeoutMs;
mUid = uid;
mRestrictionName = restrictionName;
mMethodName = methodName;
mExtra = extra;
restricted = false;
asked = false;
}
public CRestriction(PRestriction restriction, String extra) {
mExpiry = new Date().getTime() + PrivacyManager.cRestrictionCacheTimeoutMs;
mUid = restriction.uid;
mRestrictionName = restriction.restrictionName;
mMethodName = restriction.methodName;
mExtra = extra;
restricted = restriction.restricted;
asked = restriction.asked;
}
public void setExpiry(long time) {
mExpiry = time;
}
public boolean isExpired() {
return (new Date().getTime() > mExpiry);
}
public int getUid() {
return mUid;
}
public void setMethodName(String methodName) {
mMethodName = methodName;
}
public void setExtra(String extra) {
mExtra = extra;
}
public boolean isSameMethod(PRestriction restriction) {
// @formatter:off
return (restriction.uid == mUid
&& restriction.restrictionName.equals(mRestrictionName)
&& (restriction.methodName == null || restriction.methodName.equals(mMethodName)));
// @formatter:on
}
@Override
public boolean equals(Object obj) {
CRestriction other = (CRestriction) obj;
// @formatter:off
return (mUid == other.mUid
&& mRestrictionName.equals(other.mRestrictionName)
&& (mMethodName == null ? other.mMethodName == null : mMethodName.equals(other.mMethodName))
&& (mExtra == null ? other.mExtra == null : mExtra.equals(other.mExtra)));
// @formatter:on
}
@Override
public int hashCode() {
int hash = mUid;
if (mRestrictionName != null)
hash = hash ^ mRestrictionName.hashCode();
if (mMethodName != null)
hash = hash ^ mMethodName.hashCode();
if (mExtra != null)
hash = hash ^ mExtra.hashCode();
return hash;
}
@Override
public String toString() {
return mUid + ":" + mRestrictionName + "/" + mMethodName + "(" + mExtra + ")" + "=" + restricted + "/" + asked;
}
}