From e02313923b362f4244220d89c1700f5c595c83fc Mon Sep 17 00:00:00 2001 From: Amnon Heiman Date: Tue, 14 Jul 2015 17:47:54 +0300 Subject: [PATCH] APIClient add a getJsonObj and getHistogram methods The getJsonObj returns a json object. The getHistogram returns a HistogramValue object. Signed-off-by: Amnon Heiman --- .../com/cloudius/urchin/api/APIClient.java | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/main/java/com/cloudius/urchin/api/APIClient.java b/src/main/java/com/cloudius/urchin/api/APIClient.java index 9e22846..cddeebd 100644 --- a/src/main/java/com/cloudius/urchin/api/APIClient.java +++ b/src/main/java/com/cloudius/urchin/api/APIClient.java @@ -31,6 +31,7 @@ import com.sun.jersey.api.client.WebResource; import com.sun.jersey.api.client.WebResource.Builder; import com.sun.jersey.api.client.config.ClientConfig; import com.sun.jersey.api.client.config.DefaultClientConfig; +import com.yammer.metrics.core.HistogramValues; import javax.ws.rs.core.MediaType; @@ -485,4 +486,37 @@ public class APIClient { // TODO Auto-generated method stub return null; } + + public JsonObject getJsonObj(String string, + MultivaluedMap queryParams) { + if (string.equals("")) { + return null; + } + JsonReader reader = getReader(string, queryParams); + JsonObject res = reader.readObject(); + reader.close(); + return res; + } + + public HistogramValues getHistogramValue(String url, + MultivaluedMap queryParams) { + HistogramValues res = new HistogramValues(); + JsonObject obj = getJsonObj(url, queryParams); + res.count = obj.getJsonNumber("count").longValue(); + res.max = obj.getJsonNumber("max").longValue(); + res.min = obj.getJsonNumber("min").longValue(); + res.sum = obj.getJsonNumber("sum").longValue(); + res.variance = obj.getJsonNumber("variance").doubleValue(); + res.svariance = obj.getJsonNumber("svariance").doubleValue(); + JsonArray arr = obj.getJsonArray("sample"); + res.sample = new long[arr.size()]; + for (int i = 0; i < arr.size(); i++) { + res.sample[i] = arr.getJsonNumber(i).longValue(); + } + return res; + } + + public HistogramValues getHistogramValue(String url) { + return getHistogramValue(url, null); + } }