private String getResourceNameOrNullForField(String messageSimpleName, String fieldSimpleName) { ResourceNameMessageConfig messageResourceTypeConfig = getResourceTypeConfigMap().get(messageSimpleName); if (messageResourceTypeConfig == null) { return null; } return messageResourceTypeConfig.getEntityNameForField(fieldSimpleName); } }
static ResourceNameMessageConfigs createMessageResourceTypesConfig( DiscoApiModel model, ConfigProto configProto, String defaultPackage) { ImmutableMap.Builder<String, ResourceNameMessageConfig> builder = ImmutableMap.builder(); for (ResourceNameMessageConfigProto messageResourceTypesProto : configProto.getResourceNameGenerationList()) { ResourceNameMessageConfig messageResourceTypeConfig = ResourceNameMessageConfig.createResourceNameMessageConfig( messageResourceTypesProto, defaultPackage); builder.put(messageResourceTypeConfig.messageName(), messageResourceTypeConfig); } ImmutableMap<String, ResourceNameMessageConfig> messageResourceTypeConfigMap = builder.build(); ListMultimap<String, FieldModel> fieldsByMessage = ArrayListMultimap.create(); DiscoGapicNamer discoGapicNamer = new DiscoGapicNamer(); for (Method method : model.getDocument().methods()) { String fullName = discoGapicNamer.getRequestMessageFullName(method, defaultPackage); ResourceNameMessageConfig messageConfig = messageResourceTypeConfigMap.get(fullName); if (messageConfig == null) { continue; } for (Schema property : method.parameters().values()) { if (messageConfig.getEntityNameForField(property.getIdentifier()) != null) { fieldsByMessage.put(fullName, DiscoveryField.create(property, model)); } } } return new AutoValue_ResourceNameMessageConfigs(messageResourceTypeConfigMap, fieldsByMessage); }
if (messageConfig.getEntityNameForField(field.getSimpleName()) != null) { fieldsByMessage.put(msg.getFullName(), new ProtoField(field));
assertThat(bookResource.getEntityNameForField("name")).isEqualTo("book"); assertThat(getShelfRequestObject.getEntityNameForField("name")).isEqualTo("book_oneof"); assertThat(shelfResource.getEntityNameForField("name")).isEqualTo("shelf");