@Override
public List<PlainAttrValue> beforePropagation(
final Item item,
final Entity entity,
final List<PlainAttrValue> values) {
if (StringUtils.isNotBlank(propagationJEXL) && values != null) {
values.forEach(value -> {
Object originalValue = value.getValue();
if (originalValue != null) {
JexlContext jexlContext = new MapContext();
if (entity != null) {
JexlUtils.addFieldsToContext(entity, jexlContext);
if (entity instanceof Any) {
JexlUtils.addPlainAttrsToContext(((Any<?>) entity).getPlainAttrs(), jexlContext);
JexlUtils.addDerAttrsToContext(((Any<?>) entity), jexlContext);
}
}
jexlContext.set("value", originalValue.toString());
value.setBinaryValue(null);
value.setBooleanValue(null);
value.setDateValue(null);
value.setDoubleValue(null);
value.setLongValue(null);
value.setStringValue(JexlUtils.evaluate(propagationJEXL, jexlContext));
}
});
return values;
}
return JEXLItemTransformer.super.beforePropagation(item, entity, values);
}