static ResourceNameMessageConfig createResourceNameMessageConfig(
MessageType message,
Map<Resource, ProtoFile> allResources,
Map<ResourceSet, ProtoFile> allResourceSets,
ProtoParser protoParser) {
ImmutableMap.Builder<String, String> builder = ImmutableMap.builder();
for (Field field : message.getFields()) {
String baseName = protoParser.getResourceOrSetEntityName(field);
if (!Strings.isNullOrEmpty(baseName)) {
builder.put(field.getSimpleName(), baseName);
continue;
}
String resourceType =
protoParser.getResourceReferenceName(field, allResources, allResourceSets);
if (!Strings.isNullOrEmpty(resourceType)) {
builder.put(field.getSimpleName(), resourceType);
}
}
ImmutableMap<String, String> fieldEntityMap = builder.build();
if (fieldEntityMap.isEmpty()) {
return null;
}
return new AutoValue_ResourceNameMessageConfig(message.getFullName(), fieldEntityMap);
}