package com.smartcodeltd.jenkinsci.plugins.buildmonitor.api;
import com.google.common.base.Stopwatch;
import com.google.common.collect.ImmutableMap;
import org.codehaus.jackson.annotate.JsonProperty;
import java.util.Map;
/* package */ class Success<T> {
private final Stopwatch stopwatch;
private T data;
public Success(T data) {
this.data = data;
this.stopwatch = new Stopwatch();
stopwatch.start();
}
public static <T> Success successful(T data) {
return new Success<T>(data);
}
@JsonProperty
public T data() {
return data;
}
@JsonProperty
public Map<String, ?> meta() {
return ImmutableMap.<String, Object>of(
"response_time_ms", stopwatch.elapsedMillis()
);
}
}