TimestampedValue { public static <V> TimestampedValue<V> atMinimumTimestamp(@Nullable V value) { return of(value, BoundedWindow.TIMESTAMP_MIN_VALUE); } protected  TimestampedValue(@Nullable V value, Instant timestamp); static TimestampedValue<V> atMinimumTimestamp(@Nullable V value); static TimestampedValue<V> of(@Nullable V value, Instant timestamp); V getValue(); Instant getTimestamp(); @Override boolean equals(@Nullable Object other); @Override int hashCode(); @Override String toString();  }
@Test public void testAtMinimumTimestamp() { TimestampedValue<String> tsv = TimestampedValue.atMinimumTimestamp("foobar"); assertEquals(BoundedWindow.TIMESTAMP_MIN_VALUE, tsv.getTimestamp()); }