package com.xfestudio.xfeservermanager.infra.security;
import java.time.Clock;
import java.time.Duration;
import java.time.Instant;
import java.time.ZoneId;
final class MutableClock extends Clock {
private Instant value;
private final ZoneId zone;
MutableClock(Instant value, ZoneId zone) {
this.value = value;
this.zone = zone;
}
void advance(Duration duration) {
value = value.plus(duration);
}
@Override
public ZoneId getZone() {
return zone;
}
@Override
public Clock withZone(ZoneId requestedZone) {
return new MutableClock(value, requestedZone);
}
@Override
public Instant instant() {
return value;
}
}
package com.xfestudio.xfeservermanager.infra.security;
import java.time.Clock;
import java.time.Duration;
import java.time.Instant;
import java.time.ZoneId;
final class MutableClock extends Clock {
private Instant value;
private final ZoneId zone;
MutableClock(Instant value, ZoneId zone) {
this.value = value;
this.zone = zone;
}
void advance(Duration duration) {
value = value.plus(duration);
}
@Override
public ZoneId getZone() {
return zone;
}
@Override
public Clock withZone(ZoneId requestedZone) {
return new MutableClock(value, requestedZone);
}
@Override
public Instant instant() {
return value;
}
}