private StreamlineEvent getStreamlineEvent(StreamlineEvent event, String stream) { return StreamlineEventImpl.builder().from(event).sourceStream(stream).build(); }
private StreamlineEvent convertShellEvent(ShellMsg.ShellEvent shellEvent, StreamlineEvent inputEvent) { return StreamlineEventImpl.builder() .from(inputEvent) .fieldsAndValues(shellEvent.getFieldsAndValues()) .build(); }
public static StreamlineEventImpl.Builder builder() { return new StreamlineEventImpl.Builder(); }
private List<StreamlineEvent> doTransform(StreamlineEvent input) { StreamlineEventImpl.Builder builder = StreamlineEventImpl.builder(); for (String field : projectionTransform.getProjectionFields()) { builder.put(field, input.get(field)); } return Collections.<StreamlineEvent>singletonList(builder.dataSourceId(input.getDataSourceId()).build()); }
@Override public StreamlineEvent entity(Result result) { String id = Bytes.toString(result.getRow()); Map<String, Object> fieldsAndValues = new HashMap<>(); for(Map.Entry<byte[], byte[]> entry: result.getFamilyMap(CF_FIELDS).entrySet()) { fieldsAndValues.put(Bytes.toString(entry.getKey()), Bytes.toString(entry.getValue())); } String dataSourceId = Bytes.toString(result.getFamilyMap(CF_DATASOURCE_ID).firstEntry().getKey()); StreamlineEventImpl event = StreamlineEventImpl.builder().fieldsAndValues(fieldsAndValues).dataSourceId(dataSourceId).build(); return new IdPreservedStreamlineEvent(event, id); }
/** * Returns a new Streamline event with the given fieldsAndValues added to the existing fieldsAndValues * * @param fieldsAndValues the map of fieldsAndValues to add * @return the new StreamlineEvent */ @Override public StreamlineEvent addFieldsAndValues(Map<String, Object> fieldsAndValues) { Objects.requireNonNull(fieldsAndValues, "keyValues is null"); return builder().from(this).putAll(fieldsAndValues).build(); }
/** * Returns a new Streamline event with the given headers added to the existing headers. * All the other fields are copied from this event. * @param headers the map of fieldsAndValues to add or overwrite * @return the new StreamlineEvent */ @Override public StreamlineEvent addHeaders(Map<String, Object> headers) { Map<String, Object> headerMap = new HashMap<>(); headerMap.putAll(this.getHeader()); headerMap.putAll(headers); return StreamlineEventImpl.builder().from(this) .header(headerMap) .build(); }
@Override public StreamlineEvent addAuxiliaryFieldAndValue(String field, Object value) { Map<String, Object> aux = new HashMap<>(); aux.putAll(this.getAuxiliaryFieldsAndValues()); aux.put(field, value); return StreamlineEventImpl.builder().from(this) .auxiliaryFieldsAndValues(aux) .build(); }
public Builder from(StreamlineEvent other) { return this.header(other.getHeader()) .sourceStream(other.getSourceStream()) .dataSourceId(other.getDataSourceId()) .auxiliaryFieldsAndValues(other.getAuxiliaryFieldsAndValues()) .putAll(other); }
private StreamlineEvent eventWithWindowId(final StreamlineEvent event) { if (event == GROUP_BY_TRIGGER_EVENT) { return event; } StreamlineEvent newEvent = event.addFieldsAndValues(Collections.<String, Object>singletonMap(Window.WINDOW_ID, windowId)); return new IdPreservedStreamlineEvent(newEvent, event.getId()); } }
@Override public StreamlineEvent addFieldAndValue(String key, Object value) { return addFieldsAndValues(Collections.singletonMap(key, value)); }
@Override public byte[] getBytes() { try { return this.toString().getBytes("UTF-8"); } catch (UnsupportedEncodingException ex) { throw new RuntimeException(ex); } }
/** * Creates an StreamlineEvent with given keyValues, dataSourceId, id, header and sourceStream. */ private StreamlineEventImpl(Map<String, Object> keyValues, String dataSourceId, Map<String, Object> header, String sourceStream, Map<String, Object> auxiliaryFieldsAndValues) { if (keyValues instanceof StreamlineEventImpl) { this.delegate = ImmutableMap.copyOf(((StreamlineEventImpl) keyValues).delegate()); } else { this.delegate = ImmutableMap.copyOf(keyValues); } this.dataSourceId = dataSourceId; this.sourceStream = sourceStream; this.header = header != null ? ImmutableMap.copyOf(header) : ImmutableMap.of(); this.auxiliaryFieldsAndValues = auxiliaryFieldsAndValues != null ? ImmutableMap.copyOf(auxiliaryFieldsAndValues) : ImmutableMap.of(); }
private StreamlineEvent getStreamlineEventWithStream(StreamlineEvent event, Tuple tuple) { return StreamlineEventImpl.builder().from(event).sourceStream(tuple.getSourceStreamId()).build(); }
@Override public List<StreamlineEvent> execute(StreamlineEvent input) { StreamlineEventImpl.Builder builder = StreamlineEventImpl.builder(); builder.putAll(input); for (Map.Entry<String, ?> entry : mergeTransform.getDefaults().entrySet()) { if (!input.containsKey(entry.getKey())) { builder.put(entry.getKey(), entry.getValue()); } } return Collections.<StreamlineEvent>singletonList(builder.dataSourceId(input.getDataSourceId()).build()); }
public final StreamlineEvent execute(StreamlineEvent event) throws NormalizationException { Map<String, Object> result = normalize(event); return StreamlineEventImpl.builder().from(event).fieldsAndValues(result).build(); }
private StreamlineEvent getStreamlineEventWithStream(StreamlineEvent event, Tuple tuple) { return StreamlineEventImpl.builder().from(event).sourceStream(tuple.getSourceStreamId()).build(); }
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()); }
private StreamlineEvent getStreamlineEventWithStream(StreamlineEvent event, Tuple tuple) { StreamlineEventImpl newEvent = StreamlineEventImpl.builder().from(event).sourceStream(tuple.getSourceStreamId()).build(); return new IdPreservedStreamlineEvent(newEvent, event.getId()); }
private StreamlineEvent createPartitionEvent(StreamlineEvent event, String groupId, int partNo, String stream, int totalParts) { Map<String, Object> headers = new HashMap<>(); if (event.getHeader() != null) { headers.putAll(event.getHeader()); } headers.put(SplitActionRuntime.SPLIT_GROUP_ID, groupId); headers.put(SplitActionRuntime.SPLIT_PARTITION_ID, partNo); headers.put(SplitActionRuntime.SPLIT_TOTAL_PARTITIONS_ID, totalParts); return StreamlineEventImpl.builder().from(event).header(headers).sourceStream(stream).build(); }