@Override
	public int compare(Temporal t1, Temporal t2) {
		if (null == t1) {
			if (null == t2 || Long.MIN_VALUE == t2.startTime) return 0;
			return Integer.MIN_VALUE;
		} else {
			if (t1 == t2) return 0;
			if (null == t2) {
				if (Long.MIN_VALUE == t1.startTime) return 0;
				return Integer.MAX_VALUE;
			} else {
				long t1Start = t1.startTime;
				long t2Start = t2.startTime;
				return t1Start == t2Start ? 0 : (t1Start > t2Start ? Integer.MAX_VALUE : Integer.MIN_VALUE);
			}
		}
	}