@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); }
attrValue.setBooleanValue((Boolean) fieldValue); } else if (Double.TYPE.isInstance(fieldValue) || Float.TYPE.isInstance(fieldValue)) { attrValue.setDoubleValue((Double) fieldValue); } else if (Long.TYPE.isInstance(fieldValue) || Integer.TYPE.isInstance(fieldValue)) { attrValue.setLongValue((Long) fieldValue);
@Override public <T extends PlainAttrValue> T clonePlainAttrValue(final T src) { T dst; if (src instanceof PlainAttrUniqueValue) { dst = newPlainAttrUniqueValue(); } else { dst = newPlainAttrValue(); } dst.setBinaryValue(src.getBinaryValue()); dst.setBooleanValue(src.getBooleanValue()); dst.setDateValue(src.getDateValue()); dst.setDoubleValue(src.getDoubleValue()); dst.setLongValue(src.getLongValue()); dst.setStringValue(src.getStringValue()); return dst; }