extract the to-json methods Project: http://git-wip-us.apache.org/repos/asf/incubator-edgent/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-edgent/commit/7b1967d4 Tree: http://git-wip-us.apache.org/repos/asf/incubator-edgent/tree/7b1967d4 Diff: http://git-wip-us.apache.org/repos/asf/incubator-edgent/diff/7b1967d4
Branch: refs/heads/master Commit: 7b1967d470ddc9f54006723009203570a175d134 Parents: 34230cf Author: Dale LaBossiere <dlab...@us.ibm.com> Authored: Fri Apr 21 10:24:03 2017 -0400 Committer: Dale LaBossiere <dlab...@us.ibm.com> Committed: Fri Apr 21 10:24:03 2017 -0400 ---------------------------------------------------------------------- .../edgent/analytics/math3/Aggregations.java | 32 -------------------- .../edgent/analytics/math3/MvResultMap.java | 31 +++++++++++++++++++ .../edgent/analytics/math3/ResultMap.java | 29 ++++++++++++++++++ .../test/analytics/math3/Statistics2Test.java | 4 +-- 4 files changed, 62 insertions(+), 34 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/7b1967d4/analytics/math3/src/main/java/org/apache/edgent/analytics/math3/Aggregations.java ---------------------------------------------------------------------- diff --git a/analytics/math3/src/main/java/org/apache/edgent/analytics/math3/Aggregations.java b/analytics/math3/src/main/java/org/apache/edgent/analytics/math3/Aggregations.java index c2eee98..0ac4600 100644 --- a/analytics/math3/src/main/java/org/apache/edgent/analytics/math3/Aggregations.java +++ b/analytics/math3/src/main/java/org/apache/edgent/analytics/math3/Aggregations.java @@ -23,13 +23,9 @@ import java.util.Collection; import org.apache.edgent.analytics.math3.json.JsonAnalytics; import org.apache.edgent.analytics.math3.stat.Regression2; import org.apache.edgent.analytics.math3.stat.Statistic2; -import org.apache.edgent.function.Function; import org.apache.edgent.function.ToDoubleFunction; import org.apache.edgent.topology.TWindow; -import com.google.gson.Gson; -import com.google.gson.JsonObject; - /** * Apache Common Math analytics for Collections. * @@ -161,34 +157,6 @@ public class Aggregations { } /** - * Create a {@link Function} whose {@code apply(ResultMap)} converts the value - * to a {@code JsonObject}. The ResultMap's key's names are the JsonObject property - * names and the property value is the key's value. - * - * <p>An example resulting JsonObject would be <pre>{ "MEAN":3.75, "MIN":2.0 }</pre>. - * @return the JsonObject - */ - public static Function<ResultMap,JsonObject> newResultsToJson() { - Gson gson = new Gson(); - return (ResultMap resultMap) -> gson.toJsonTree(resultMap).getAsJsonObject(); - } - - /** - * Create a {@link Function} whose {@code apply(MvResultMap)} converts the value - * to a {@code JsonObject}. The MvResultMap's key's names are the JsonObject property - * names and the property value is the JsonObject for the key's ResultMap value. - * - * <p>An example resulting JsonObject would be - * <pre>{ "temperature":{"MEAN":123.75, "MAX":180.5}, "pressure":{"MAX":13.0} }</pre>. - * - * @return the JsonObject - */ - public static Function<MvResultMap,JsonObject> newMvResultsToJson() { - Gson gson = new Gson(); - return (MvResultMap mvResultMap) -> gson.toJsonTree(mvResultMap).getAsJsonObject(); - } - - /** * Perform the specified {@link UnivariateAggregate} on a Collection of {@link Number}. * * <p>A null result is returned if the collection is empty. http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/7b1967d4/analytics/math3/src/main/java/org/apache/edgent/analytics/math3/MvResultMap.java ---------------------------------------------------------------------- diff --git a/analytics/math3/src/main/java/org/apache/edgent/analytics/math3/MvResultMap.java b/analytics/math3/src/main/java/org/apache/edgent/analytics/math3/MvResultMap.java index b1b9f8a..23796d1 100644 --- a/analytics/math3/src/main/java/org/apache/edgent/analytics/math3/MvResultMap.java +++ b/analytics/math3/src/main/java/org/apache/edgent/analytics/math3/MvResultMap.java @@ -2,6 +2,11 @@ package org.apache.edgent.analytics.math3; import java.util.HashMap; +import org.apache.edgent.function.Function; + +import com.google.gson.Gson; +import com.google.gson.JsonObject; + /** * Aggregation results for multiple aggregated variables. * @@ -9,4 +14,30 @@ import java.util.HashMap; */ public class MvResultMap extends HashMap<String,ResultMap> { private static final long serialVersionUID = 1L; + + /** + * Returns a {@link Function} whose {@code apply(MvResultMap)} converts the value + * to a {@code JsonObject}. + * + * <p>The JsonObject property names are the MvResultMap's keys and the property + * values are the key's associated ResultMap value as a JsonObject. + * + * <p>An example resulting JsonObject would be + * <pre>{ "temperature":{"MEAN":123.75, "MAX":180.5}, "pressure":{"MAX":13.0} }</pre>. + * + * @return the JsonObject + * + * @see ResultMap#toJsonObject() + */ + public static Function<MvResultMap,JsonObject> toJsonObject() { + Gson gson = new Gson(); + return (MvResultMap mvResultMap) -> gson.toJsonTree(mvResultMap).getAsJsonObject(); + } + + /** + * Create a new MvResultMap. + */ + public MvResultMap() { + } + } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/7b1967d4/analytics/math3/src/main/java/org/apache/edgent/analytics/math3/ResultMap.java ---------------------------------------------------------------------- diff --git a/analytics/math3/src/main/java/org/apache/edgent/analytics/math3/ResultMap.java b/analytics/math3/src/main/java/org/apache/edgent/analytics/math3/ResultMap.java index 3dd883a..370ff79 100644 --- a/analytics/math3/src/main/java/org/apache/edgent/analytics/math3/ResultMap.java +++ b/analytics/math3/src/main/java/org/apache/edgent/analytics/math3/ResultMap.java @@ -2,9 +2,38 @@ package org.apache.edgent.analytics.math3; import java.util.HashMap; +import org.apache.edgent.function.Function; + +import com.google.gson.Gson; +import com.google.gson.JsonObject; + /** * Aggregation results for a single aggregated variable. */ public class ResultMap extends HashMap<UnivariateAggregate,Double> { private static final long serialVersionUID = 1L; + + /** + * <p>Returns a {@link Function} whose {@code apply(ResultMap)} converts the value + * to a {@code JsonObject}. + * + * <p>The JsonObject property names are the ResultMap's keys and the property + * values are the key's associated Double map value. + * + * <p>An example resulting JsonObject would be + * <pre>{ "MEAN":3.75, "MIN":2.0 }</pre>. + * + * @return the JsonObject + */ + public static Function<ResultMap,JsonObject> toJsonObject() { + Gson gson = new Gson(); + return (ResultMap resultMap) -> gson.toJsonTree(resultMap).getAsJsonObject(); + } + + /** + * Create a new ResultMap. + */ + public ResultMap() { + } + } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/7b1967d4/analytics/math3/src/test/java/org/apache/edgent/test/analytics/math3/Statistics2Test.java ---------------------------------------------------------------------- diff --git a/analytics/math3/src/test/java/org/apache/edgent/test/analytics/math3/Statistics2Test.java b/analytics/math3/src/test/java/org/apache/edgent/test/analytics/math3/Statistics2Test.java index f794601..230a844 100644 --- a/analytics/math3/src/test/java/org/apache/edgent/test/analytics/math3/Statistics2Test.java +++ b/analytics/math3/src/test/java/org/apache/edgent/test/analytics/math3/Statistics2Test.java @@ -329,7 +329,7 @@ public class Statistics2Test extends TopologyAbstractTest implements DirectTest result.put(Statistic2.MIN, 2.5); result.put(Statistic2.MAX, 4.5); - JsonObject jo = Aggregations.newResultsToJson().apply(result); + JsonObject jo = ResultMap.toJsonObject().apply(result); assertTrue(jo.get(Statistic2.MIN.name()) != null); assertEquals(jo.get(Statistic2.MIN.name()).getAsDouble(), 2.5, 0.01); @@ -351,7 +351,7 @@ public class Statistics2Test extends TopologyAbstractTest implements DirectTest result.put("var1", var1result); result.put("var2", var2result); - JsonObject jo = Aggregations.newMvResultsToJson().apply(result); + JsonObject jo = MvResultMap.toJsonObject().apply(result); assertTrue(jo.get("var1") != null); JsonObject joVar1 = jo.get("var1").getAsJsonObject();