Map<QName, Metadata> changedMetadata = null;
for (Map.Entry<QName, Metadata> metadataEntry : record.getMetadataMap().entrySet()) {
if (metadataEntry.getValue().getFieldsToDelete().size() > 0) {
MetadataBuilder builder = new MetadataBuilder();
for (Map.Entry<String, Object> entry : metadataEntry.getValue().getMap().entrySet()) {
builder.object(entry.getKey(), entry.getValue());
}
if (changedMetadata == null) {
changedMetadata = new HashMap<QName, Metadata>();
}
changedMetadata.put(metadataEntry.getKey(), builder.build());