final ReferenceDataProviderGetResult result = new ReferenceDataProviderGetResult();
for (Entry<Set<String>, Set<String>> group : requiredFields.entrySet()) {
if (group.getKey().isEmpty()) {
// all fields for these identifiers are invalid
for (String identifier : group.getValue()) {
result.addReferenceData(new ReferenceData(identifier));
}
} else {
// call the underlying with the filtered subset of identifiers and fields
final ReferenceDataProviderGetRequest underlyingRequest = ReferenceDataProviderGetRequest.createGet(group.getValue(), group.getKey(), false);
final ReferenceDataProviderGetResult underlyingResult = getUnderlying().getReferenceData(underlyingRequest);