package interdroid.swan.swansong; import java.io.Serializable; import java.util.Arrays; import java.util.Date; public class Result implements Comparable<Result>, Serializable { /** * */ private static final long serialVersionUID = -5680310116890974511L; protected TimestampedValue[] mValues; protected TriState mTriState; protected long mTimestamp; protected long mOldestTimestamp; protected long mDeferUntil = Long.MAX_VALUE; protected boolean mDeferGuaranteed = true; public Result(TimestampedValue[] values, long oldestTimestamp) { mValues = values; mOldestTimestamp = oldestTimestamp; } public Result(long timestamp, TriState triState) { mTriState = triState; mTimestamp = timestamp; } public TimestampedValue[] getValues() { return mValues; } public TriState getTriState() { return mTriState; } public long getDeferUntil() { return mDeferUntil; } public void setDeferUntil(long deferUntil) { this.mDeferUntil = deferUntil; } @Override public int compareTo(Result another) { if (another == null) { return 1; } long difference = getDeferUntil() - another.getDeferUntil(); if (difference == 0) { return 0; } else if (difference < 0) { return -1; } else { return 1; } } public String toString() { return (mValues == null ? mTriState : Arrays.toString(mValues)) + " until " + (mDeferUntil == 0 ? "NOW" : (mDeferUntil == Long.MAX_VALUE ? "FOREVER" : "" + new Date(mDeferUntil) + "." + (System.currentTimeMillis() % 1000))); } public long getTimestamp() { return mTimestamp; } public long getOldestTimestamp() { return mOldestTimestamp; } public void setDeferUntilGuaranteed(boolean guaranteed) { mDeferGuaranteed = guaranteed; } public boolean isDeferUntilGuaranteed() { return mDeferGuaranteed; } }