String getEntityNameForField(String fieldSimpleName) { return fieldEntityMap().get(fieldSimpleName); } }
private String getResourceNameOrNullForField(String messageSimpleName, String fieldSimpleName) { ResourceNameMessageConfig messageResourceTypeConfig = getResourceTypeConfigMap().get(messageSimpleName); if (messageResourceTypeConfig == null) { return null; } return messageResourceTypeConfig.getEntityNameForField(fieldSimpleName); } }
static ResourceNameMessageConfig createResourceNameMessageConfig( ResourceNameMessageConfigProto messageResourceTypesProto, String defaultPackage) { String messageName = messageResourceTypesProto.getMessageName(); String fullyQualifiedMessageName = getFullyQualifiedMessageName(defaultPackage, messageName); ImmutableMap<String, String> fieldEntityMap = ImmutableMap.copyOf(messageResourceTypesProto.getFieldEntityMap()); return new AutoValue_ResourceNameMessageConfig(fullyQualifiedMessageName, fieldEntityMap); }
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); }
for (MessageType message : protoFile.getMessages()) { ResourceNameMessageConfig resourceNameMessageConfig = ResourceNameMessageConfig.createResourceNameMessageConfig( message, resourceDefs, resourceSetDefs, protoParser); if (resourceNameMessageConfig != null) { configProto.getResourceNameGenerationList()) { ResourceNameMessageConfig messageResourceTypeConfig = ResourceNameMessageConfig.createResourceNameMessageConfig( messageResourceTypesProto, defaultPackage); builder.put(messageResourceTypeConfig.messageName(), messageResourceTypeConfig); 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");
@Test public void testCreateResourceNamesWithProtoFilesOnly() { ConfigProto emptyConfigProto = ConfigProto.getDefaultInstance(); String defaultPackage = ""; Mockito.doReturn(Resource.newBuilder().setPath(PROTO_BOOK_PATH).build()) .when(protoParser) .getResource(bookName); Mockito.doReturn(Resource.newBuilder().setPath(PROTO_SHELF_PATH).build()) .when(protoParser) .getResource(shelfName); ResourceNameMessageConfigs messageConfigs = ResourceNameMessageConfigs.createMessageResourceTypesConfig( sourceProtoFiles, emptyConfigProto, defaultPackage, allResourceDefs, allResourceSetDefs, protoParser); assertThat(messageConfigs.getResourceTypeConfigMap().size()).isEqualTo(2); ResourceNameMessageConfig bookMessageConfig = messageConfigs.getResourceTypeConfigMap().get("library.Book"); assertThat(bookMessageConfig.fieldEntityMap().get("name")).isEqualTo("Book"); ResourceNameMessageConfig shelfMessageConfig = messageConfigs.getResourceTypeConfigMap().get("library.Shelf"); assertThat(shelfMessageConfig.fieldEntityMap().get("name")).isEqualTo("Shelf"); }
@Override public String getParentFullName() { String parentName; if (schema.parent() instanceof Method) { parentName = DiscoGapicParser.getRequestName((Method) schema.parent()).toUpperCamel(); } else if (schema.parent() instanceof Schema) { parentName = Name.anyCamel(((Schema) schema.parent()).getIdentifier()).toUpperCamel(); } else if (schema.parent() instanceof Document) { parentName = ((Document) schema.parent()).name(); } else { parentName = ""; } return ResourceNameMessageConfig.getFullyQualifiedMessageName(namespace, parentName); }