use of com.hortonworks.streamline.streams.StreamlineEvent in project streamline by hortonworks.
the class SubstituteTransformRuntime method substitute.
private List<StreamlineEvent> substitute(StreamlineEvent input) {
StreamlineEventImpl.Builder builder = StreamlineEventImpl.builder();
StrSubstitutor substitutor = new StrSubstitutor(input);
for (Map.Entry<String, Object> entry : input.entrySet()) {
if (shouldSubstitue(entry.getKey(), entry.getValue())) {
builder.put(entry.getKey(), substitutor.replace(entry.getValue()));
} else {
builder.put(entry.getKey(), entry.getValue());
}
}
return Collections.<StreamlineEvent>singletonList(builder.dataSourceId(input.getDataSourceId()).build());
}
use of com.hortonworks.streamline.streams.StreamlineEvent in project streamline by hortonworks.
the class SqlNestedExprScriptTest method testEvaluateNestedMap.
// @Test
public void testEvaluateNestedMap() throws Exception {
Condition condition = new Condition();
Expression y_b = new MapFieldExpression(new FieldExpression(Schema.Field.of("y", Schema.Type.NESTED)), "b");
condition.setExpression(new BinaryExpression(Operator.LESS_THAN, y_b, new Literal("100")));
sqlScript = new SqlScript(new StormSqlExpression(condition), new SqlEngine(), new SqlScript.CorrelatedValuesToStreamlineEventConverter(Collections.singletonList("y")));
Map<String, Object> nested = new HashMap<>();
nested.put("a", 5);
nested.put("b", 10);
Map<String, Object> kv = new HashMap<>();
kv.put("x", 10);
kv.put("y", nested);
StreamlineEvent event = StreamlineEventImpl.builder().fieldsAndValues(kv).dataSourceId("1").build();
Collection<StreamlineEvent> result = sqlScript.evaluate(event);
Assert.assertEquals(1, result.size());
}
use of com.hortonworks.streamline.streams.StreamlineEvent in project streamline by hortonworks.
the class SqlNestedExprScriptTest method testBasic.
@Test
public void testBasic() throws Exception {
Condition condition = new Condition();
Expression x = new FieldExpression(Schema.Field.of("x", Schema.Type.INTEGER));
condition.setExpression(new BinaryExpression(Operator.NOT_EQUAL, x, new Literal("100")));
sqlScript = new SqlScript(new StormSqlExpression(condition), new SqlEngine(), new SqlScript.CorrelatedValuesToStreamlineEventConverter(Collections.singletonList("x")));
Map<String, Object> kv = new HashMap<>();
kv.put("x", 100);
StreamlineEvent event = StreamlineEventImpl.builder().fieldsAndValues(kv).dataSourceId("1").build();
Collection<StreamlineEvent> result = sqlScript.evaluate(event);
Assert.assertTrue(result.isEmpty());
}
use of com.hortonworks.streamline.streams.StreamlineEvent in project streamline by hortonworks.
the class SqlNestedExprScriptTest method testEvaluateNestedMapList.
// @Test
public void testEvaluateNestedMapList() throws Exception {
Condition condition = new Condition();
Expression y_a_0 = new ArrayFieldExpression(new MapFieldExpression(new FieldExpression(Schema.Field.of("y", Schema.Type.NESTED)), "a"), 0);
condition.setExpression(new BinaryExpression(Operator.LESS_THAN, y_a_0, new Literal("100")));
sqlScript = new SqlScript(new StormSqlExpression(condition), new SqlEngine(), new SqlScript.CorrelatedValuesToStreamlineEventConverter(Collections.singletonList("y")));
List<Integer> nestedList = new ArrayList<>();
nestedList.add(500);
nestedList.add(1);
Map<String, Object> nestedMap = new HashMap<>();
nestedMap.put("a", nestedList);
Map<String, Object> kv = new HashMap<>();
kv.put("x", 10);
kv.put("y", nestedMap);
StreamlineEvent event = StreamlineEventImpl.builder().fieldsAndValues(kv).dataSourceId("1").build();
Collection<StreamlineEvent> result = sqlScript.evaluate(event);
Assert.assertTrue(result.isEmpty());
}
use of com.hortonworks.streamline.streams.StreamlineEvent in project streamline by hortonworks.
the class NotificationsResource method getEventById.
@GET
@Path("/events/{id}")
@Timed
public Response getEventById(@PathParam("id") String id, @Context SecurityContext securityContext) {
SecurityUtil.checkRole(authorizer, securityContext, Roles.ROLE_NOTIFICATION_USER);
StreamlineEvent result = notificationService.getEvent(id);
if (result != null) {
return WSUtils.respondEntity(result, OK);
}
throw EntityNotFoundException.byId(id);
}
Aggregations