@Override
public List<ReferenceWithTimestamp> populateLeafNodeFields(TenantIdAndCentricId tenantIdAndCentricId,
WrittenEventContext writtenEventContext,
PathContext pathContext,
ObjectId objectInstanceId,
Set<String> fieldNames,
Map<String, ColumnValueAndTimestamp<String, OpaqueFieldValue, Long>> fieldValues) {
LeafNodeFields fieldsToPopulate = writtenEventContext.getWrittenEventProvider().createLeafNodeFields();
List<ReferenceWithTimestamp> versions = new ArrayList<>();
String[] fieldNamesArray = fieldNames.toArray(new String[fieldNames.size()]);
for (String fieldName : fieldNamesArray) {
ColumnValueAndTimestamp<String, OpaqueFieldValue, Long> g = fieldValues.get(fieldName);
if (g != null) {
OpaqueFieldValue fieldValue = g.getValue();
long timestamp = g.getTimestamp();
pathContext.setLastTimestamp(timestamp);
fieldsToPopulate.addField(fieldName, fieldValue);
versions.add(new ReferenceWithTimestamp(objectInstanceId, fieldName, timestamp));
}
}
this.leafNodeFields = fieldsToPopulate;
return versions;
}