class MergeTransformRuntime implements TransformRuntime {

    @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  MergeTransformRuntime(MergeTransform mergeTransform);

}