| Original |
|---|
1 static class ExpirationSpec {
2 @Nullable
3 private final Long expireAfterAccessMillis;
4 @Nullable
5 private final Long expireAfterWriteMillis;
6
7 private ExpirationSpec(Long expireAfterAccessMillis, Long expireAfterWriteMillis) {
8 Preconditions.checkArgument(
9 expireAfterAccessMillis == null || expireAfterWriteMillis == null);
10 this.expireAfterAccessMillis = expireAfterAccessMillis;
11 this.expireAfterWriteMillis = expireAfterWriteMillis;
12 }
13
14 public static ExpirationSpec afterAccess(long afterAccess, TimeUnit unit) {
15 return new ExpirationSpec(unit.toMillis(afterAccess), null);
16 }
17
18 public static ExpirationSpec afterWrite(long afterWrite, TimeUnit unit) {
19 return new ExpirationSpec(null, unit.toMillis(afterWrite));
20 }
20
21
22 @Override
23 public int hashCode() {
24 return Objects.hashCode(expireAfterAccessMillis, expireAfterWriteMillis);
25 }
26
27 @Override
28 public boolean equals(Object o) {
29 if (o instanceof ExpirationSpec) {
30 ExpirationSpec that = (ExpirationSpec) o;
31 return Objects.equal(this.expireAfterAccessMillis, that.expireAfterAccessMillis)
32 && Objects.equal(this.expireAfterWriteMillis, that.expireAfterWriteMillis);
33 }
33
34 return false;
35 }
36
37 @Override
38 public String toString() {
39 return Objects.toStringHelper(this)
40 .add("expireAfterAccessMillis", expireAfterAccessMillis)
41 .add("expireAfterWriteMillis", expireAfterWriteMillis)
42 .toString();
43 }
44 }
45
|
| | Modified |
|---|
1 static class DurationSpec {
2 private final long duration;
3 private final TimeUnit unit;
4
5 private DurationSpec(long duration, TimeUnit unit) {
6 this.duration = duration;
7 this.unit = unit;
8 }
9
10 public static DurationSpec of(long duration, TimeUnit unit) {
11 return new DurationSpec(duration, unit);
12 }
13
14 @Override
15 public int hashCode() {
16 return Objects.hashCode(duration, unit);
17 }
18
19 @Override
20 public boolean equals(Object o) {
21 if (o instanceof DurationSpec) {
22 DurationSpec that = (DurationSpec) o;
23 return unit.toNanos(duration) == that.unit.toNanos(that.duration);
24 }
25 return false;
26 }
27
28 @Override
29 public String toString() {
30 return Objects.toStringHelper(this)
31 .add("duration", duration)
32 .add("unit", unit)
33 .toString();
34 }
35 }
36
|
|