Dale LaBossiere created EDGENT-407:
--------------------------------------
Summary: JsonFunctions: more convenience functions for creation
and unpartitioned window
Key: EDGENT-407
URL: https://issues.apache.org/jira/browse/EDGENT-407
Project: Edgent
Issue Type: Wish
Components: API
Reporter: Dale LaBossiere
Assignee: Dale LaBossiere
Recently I've found myself repetitively doing the following when transforming a
stream of simple numerics into a JsonObject (e.g., for publishing via
IotDevice(TStream<JsonObject>)):
{code}
TStream<Double> s = ...
TStream<JsonObject> js = s.map(val -> {
JsonObject jo = new JsonObject();
jo.addProperty("propName", val);
return jo.
});
{code}
Unfortunately, addProperty() returns void so the above can't be reduced to
something like:
{code}
return new JsonObject().addProperty("propName", val)
{code}
I'd like an ease-of-use function like:
{code}
TStream<JsonObject> js = s.map(JsonFunctions.valueOfNumber("propName"));
{code}
For completeness, there should also be {{valueOfString(), valueOfCharacter(),
valueOfBoolean()}}.
Also, JsonAnalytics works with JsonElement partitioned windows:
{{TWindow<JsonObject,JsonElement>}}. It should be trivial to be able to
specify an unpartitioned window. {{Functions.unpartitioned()}} provides that
for Integer keyed windows. There should be a corresponding
{{JsonFunctions.unpartitioned()}}.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)