MultiValuedTimestamp implements Timestamp { @Override public int compareTo(final Timestamp o) { Preconditions.checkArgument( o instanceof MultiValuedTimestamp, "Must be MultiValuedTimestamp", o); final MultiValuedTimestamp that = (MultiValuedTimestamp) o; return ComparisonChain.start() .compare(value1, that.value1) .compare(value2, that.value2) .result(); } MultiValuedTimestamp(final T value1, final U value2); @SuppressWarnings("unused") private  MultiValuedTimestamp(); @Override int compareTo(final Timestamp o); @Override int hashCode(); @Override boolean equals(final Object obj); @Override String toString(); T value1(); U value2();  }
@Test public void testToCompare() { assertThat(stats1.compareTo(stats2), is(1)); }