@Override
public Object apply(List<Object> args, Context context) throws ParseException {
String config = (String) args.get(0);
if(config == null) {
return null;
}
SensorParserConfig configObj = (SensorParserConfig) PARSER.deserialize(config);
FieldTransformer stellarTransformer = getStellarTransformer(configObj);
Map<String, String> additionalTransforms = (Map<String, String>) args.get(1);
if(additionalTransforms == null || additionalTransforms.isEmpty()) {
return config;
}
for(Map.Entry<String, String> kv : additionalTransforms.entrySet()) {
stellarTransformer.getConfig().put(kv.getKey(), kv.getValue());
}
List<String> output = new ArrayList<>();
output.addAll(stellarTransformer.getConfig().keySet());
stellarTransformer.setOutput(output);
try {
return JSONUtils.INSTANCE.toJSON(configObj, true);
} catch (JsonProcessingException e) {
LOG.error("Unable to convert object to JSON: {}", configObj, e);
return config;
}
}