package com.github.dreamhead.moco.parser.model;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.github.dreamhead.moco.Moco;
import com.github.dreamhead.moco.parser.deserializer.LatencyContainerDeserializer;
import com.github.dreamhead.moco.procedure.LatencyProcedure;
import com.google.common.base.MoreObjects;
import java.util.concurrent.TimeUnit;
@JsonDeserialize(using = LatencyContainerDeserializer.class)
public class LatencyContainer {
private long latency;
private TimeUnit unit = TimeUnit.MILLISECONDS;
@Override
public String toString() {
return MoreObjects.toStringHelper(this)
.omitNullValues()
.add("latency", latency)
.add("unit", unit)
.toString();
}
public long getLatency() {
return latency;
}
public TimeUnit getUnit() {
return unit;
}
public static LatencyContainer latency(final long latency) {
return latencyWithUnit(latency, TimeUnit.MILLISECONDS);
}
public static LatencyContainer latencyWithUnit(final long latency, final TimeUnit timeUnit) {
LatencyContainer latencyContainer = new LatencyContainer();
latencyContainer.latency = latency;
latencyContainer.unit = timeUnit;
return latencyContainer;
}
public LatencyProcedure asProcedure() {
return Moco.latency(latency, unit);
}
}