in src/main/java/org/apache/sling/pipes/internal/WritePipe.java [95:116]
protected Object computeValue(Resource resource, String key, String expression) {
Object value = bindings.instantiateObject(expression);
if (value instanceof String) {
//in that case we treat special case like MV or patches
String sValue = (String)value;
Matcher patch = ADD_PATCH.matcher(sValue);
if (patch.matches()) {
String newValue = patch.group(1);
String[] actualValues = resource.getValueMap().get(key, String[].class);
List<String> newValues = actualValues != null ? new LinkedList<>(Arrays.asList(actualValues)) : new ArrayList<>();
if (!newValues.contains(newValue)) {
newValues.add(newValue);
}
return newValues.toArray(new String[newValues.size()]);
}
Matcher multiMatcher = MULTI.matcher(sValue);
if (multiMatcher.matches()) {
return multiMatcher.group(1).split(",");
}
}
return value;
}