private String getExperimentChangedMessage(ExperimentChangeEvent expEvent) {
ST template = new ST(EXPERIMENT_CHANGED);
Map<String, String> variables = new HashMap<>();
ExperimentBase exp = expEvent.getExperiment();
put(variables, EXPERIMENT_LABEL, exp.getLabel());
put(variables, EXPERIMENT_ID, String.valueOf(exp.getID()));
put(variables, APPLICATION_NAME, String.valueOf(exp.getApplicationName()));
put(variables, USER_NAME, getUserRepresentation(expEvent.getUser()));
put(variables, FIELD_NAME, expEvent.getPropertyName());
if (expEvent.getPropertyName() != null && "sampling_percent".equalsIgnoreCase(expEvent.getPropertyName())) {
put(variables, FIELD_BEFORE, String.valueOf(((double) Math.round(Double.parseDouble(expEvent.getBefore()) * 10000d) / 10000d) * 100).concat("%"));
put(variables, FIELD_AFTER, String.valueOf(((double) Math.round(Double.parseDouble(expEvent.getAfter()) * 10000d) / 10000d) * 100).concat("%"));
} else {
put(variables, FIELD_BEFORE, expEvent.getBefore());
put(variables, FIELD_AFTER, expEvent.getAfter());
}
return replaceVariablesInTemplate(variables, template);
}