public FieldConfig getMessageFieldConfig() { return FieldConfig.createFieldConfig( getField(), getMessageResourceNameConfig() == null ? ResourceNameTreatment.NONE : getResourceNameTreatment(), getMessageResourceNameConfig(), getMessageResourceNameConfig()); }
private String getResourceTypeName(ImportTypeTable typeTable, FieldConfig resourceFieldConfig) { if (resourceFieldConfig.getResourceNameConfig() == null) { return typeTable.getAndSaveNicknameForElementType(resourceFieldConfig.getField()); } else { return getAndSaveElementResourceTypeName(typeTable, resourceFieldConfig); } }
/** The function name to set the given field. */ public String getFieldSetFunctionName(FeatureConfig featureConfig, FieldConfig fieldConfig) { FieldModel field = fieldConfig.getField(); if (featureConfig.useResourceNameProtoAccessor(fieldConfig)) { return getResourceNameFieldSetFunctionName(fieldConfig.getMessageFieldConfig()); } else { return getFieldSetFunctionName(field); } }
public boolean requiresParamTransformation() { return getResourceNameConfig() != null && getMessageResourceNameConfig() != null && !getResourceNameConfig().equals(getMessageResourceNameConfig()); }
@Override public boolean apply(FieldConfig fieldConfig) { return !fieldConfig.getField().equals(requestTokenField); } });
String actualTransformFunction = null; if (methodContext.getFeatureConfig().useResourceNameFormatOption(fieldConfig)) { if (fieldConfig.requiresParamTransformationFromAny()) { expectedTransformFunction = namer.getToStringMethod(); actualTransformFunction = namer.getToStringMethod(); } else if (fieldConfig.requiresParamTransformation()) { if (methodContext.getFeatureConfig().useResourceNameConverters(fieldConfig)) { expectedTransformFunction = namer.getToStringMethod(); if (fieldConfig.getField().isRepeated()) { actualTransformFunction = namer.getResourceTypeParseListMethodName(methodContext.getTypeTable(), fieldConfig); } else if (fieldConfig.getResourceNameConfig().getResourceNameType() == ResourceNameType.ONEOF) { actualTransformFunction = boolean isMap = fieldConfig.getField().isMap(); boolean isArray = fieldConfig.getField().isRepeated() && !isMap;
flatteningConfigFromGapicConfig.get().getFlattenedFieldConfigs(); assertThat(paramsFromGapicConfigFlattening.size()).isEqualTo(1); assertThat(paramsFromGapicConfigFlattening.get("book").getField().getSimpleName()) .isEqualTo("book"); assertThat( ((ProtoField) paramsFromGapicConfigFlattening.get("book").getField()) .getType() .getProtoType() assertThat(nameConfig.getResourceNameTreatment()).isEqualTo(ResourceNameTreatment.STATIC_TYPES); assertThat(((SingleResourceNameConfig) nameConfig.getResourceNameConfig()).getNamePattern()) .isEqualTo(GAPIC_SHELF_PATH); assertThat(nameConfig2.getResourceNameTreatment()) .isEqualTo(ResourceNameTreatment.STATIC_TYPES); assertThat(((SingleResourceNameConfig) nameConfig2.getResourceNameConfig()).getNamePattern()) .isEqualTo(GAPIC_SHELF_PATH); assertThat(bookConfig.getResourceNameTreatment()).isEqualTo(ResourceNameTreatment.STATIC_TYPES); assertThat(((SingleResourceNameConfig) bookConfig.getResourceNameConfig()).getNamePattern()) .isEqualTo(GAPIC_BOOK_PATH); assertThat(((ProtoTypeRef) bookConfig.getField().getType()).getProtoType().getMessageType()) .isEqualTo(bookType);
ResourceNameConfig messageResNameConfig = fieldConfig.getMessageResourceNameConfig(); if (messageResNameConfig == null || messageResNameConfig.getResourceNameType() != ResourceNameType.ANY) { fieldConfig = fieldConfig.getMessageFieldConfig(); } else { SingleResourceNameConfig singleResourceNameConfig; switch (fieldConfig.getResourceNameType()) { case ANY: Iterables.get(context.getProductConfig().getSingleResourceNameConfigs(), 0); FieldConfig anyResourceNameFieldConfig = fieldConfig.withResourceNameConfig(singleResourceNameConfig); initValue = createResourceNameInitValueView(context, anyResourceNameFieldConfig, item).build(); case ONEOF: ResourceNameOneofConfig oneofConfig = (ResourceNameOneofConfig) fieldConfig.getResourceNameConfig(); singleResourceNameConfig = Iterables.get(oneofConfig.getSingleResourceNameConfigs(), 0); FieldConfig singleResourceNameFieldConfig = fieldConfig.withResourceNameConfig(singleResourceNameConfig); ResourceNameInitValueView initView = createResourceNameInitValueView(context, singleResourceNameFieldConfig, item) "unexpected entity name type '" + fieldConfig.getResourceNameType() + "'"); || fieldConfig.getResourceNameConfig() == null) {
public ResourceNameType getResourceNameType() { if (getResourceNameConfig() == null) { return null; } return getResourceNameConfig().getResourceNameType(); }
@Override public boolean useResourceNameFormatOptionInSample( MethodContext context, FieldConfig fieldConfig) { return resourceNameTypesEnabled() && fieldConfig != null && (fieldConfig.useResourceNameType() || fieldConfig.useResourceNameTypeInSampleOnly()) && !(context.isFlattenedMethodContext() && fieldConfig.getField().isRepeated()); }
@Override public String getResourceNameFieldGetFunctionName(FieldConfig fieldConfig) { FieldModel type = fieldConfig.getField(); String fieldName = fieldConfig.getField().getSimpleName(); Name identifier = Name.from(fieldName); Name resourceName; || (!type.isRepeated() && fieldName.toLowerCase().equals("name"))); boolean requireAs = requireIdentifier || (fieldConfig.getResourceNameType() == ResourceNameType.ANY); boolean requirePlural = type.isRepeated(); if (fieldConfig.getResourceNameType() == ResourceNameType.ANY) { resourceName = Name.from(AnyResourceNameConfig.ENTITY_NAME); } else { resourceName = getResourceTypeNameObject(fieldConfig.getMessageResourceNameConfig());
getResourceNameConfig(diagCollector, resourceNameConfigs, messageFieldEntityName); ResourceNameConfig flattenedFieldResourceNameConfig = getResourceNameConfig(diagCollector, resourceNameConfigs, flattenedFieldEntityName); validate(messageConfigs, field, treatment, flattenedFieldResourceNameConfig); return createFieldConfig( field, treatment, flattenedFieldResourceNameConfig, messageFieldResourceNameConfig);
FeatureConfig featureConfig = context.getFeatureConfig(); ImportTypeTable typeTable = context.getTypeTable(); FieldModel field = fieldConfig.getField(); String formatMethodName = null; if (context.getFeatureConfig().useResourceNameFormatOption(fieldConfig)) { if (fieldConfig.requiresParamTransformation() && !fieldConfig.requiresParamTransformationFromAny() && !featureConfig.useInheritanceForOneofs()) { transformParamFunctionName = namer.getResourceOneofCreateMethod(typeTable, fieldConfig);
public static boolean hasAnyRepeatedResourceNameParameter(FlatteningConfig flatteningGroup) { // Used in Java to prevent generating a flattened method with List<ResourceName> as a parameter // because that has the same type erasure as the version of the flattened method with // List<String> as a parameter. // TODO(gapic-generator issue #2137) Only use raw String type for repeated params // not for singular params in the same flattened method. return flatteningGroup .getFlattenedFieldConfigs() .values() .stream() .anyMatch( (FieldConfig fieldConfig) -> fieldConfig.getField().isRepeated() && fieldConfig.useResourceNameType()); }
public boolean useResourceNameType() { return getResourceNameTreatment() == ResourceNameTreatment.STATIC_TYPES; }
for (FieldModel field : fields) { FieldConfig fieldConfig = fieldConfigMap.get(field.getFullName()); ResourceNameConfig resourceNameConfig = fieldConfig.getResourceNameConfig(); String fieldTypeSimpleName = namer.getResourceTypeName(resourceNameConfig); boolean isAny = false; .docTypeName(fieldDocTypeName) .elementTypeName(fieldElementTypeName) .isAny(fieldConfig.getResourceNameType() == ResourceNameType.ANY) .isRepeated(field.isRepeated()) .isOneof(fieldConfig.getResourceNameType() == ResourceNameType.ONEOF) .propertyName(namer.getResourceNameFieldGetFunctionName(fieldConfig)) .underlyingPropertyName(namer.publicMethodName(Name.from(field.getSimpleName())))
if (!fieldConfig.useValidation()) { FieldModel field = fieldConfig.getField(); ImmutableMap<String, String> fieldNamePatterns = context.getMethodConfig().getFieldNamePatterns();
/** Creates a FieldConfig for the given Field with ResourceNameTreatment set to None. */ public static FieldConfig createDefaultFieldConfig(FieldModel field) { return FieldConfig.createFieldConfig(field, ResourceNameTreatment.NONE, null, null); }
private static ImmutableMap<String, FieldConfig> createResponseFieldConfigMap( ResourceNameMessageConfigs messageConfig, ImmutableMap<String, ResourceNameConfig> resourceNameConfigs) { ImmutableMap.Builder<String, FieldConfig> builder = ImmutableMap.builder(); if (messageConfig == null) { return builder.build(); } Map<String, FieldConfig> map = new HashMap<>(); for (FieldModel field : messageConfig.getFieldsWithResourceNamesByMessage().values()) { map.put( field.getFullName(), FieldConfig.createMessageFieldConfig( messageConfig, resourceNameConfigs, field, ResourceNameTreatment.STATIC_TYPES)); } builder.putAll(map); return builder.build(); }
/** The name of the create method for the resource one-of for the given field config */ public String getResourceOneofCreateMethod(ImportTypeTable typeTable, FieldConfig fieldConfig) { return getAndSaveResourceTypeName(typeTable, fieldConfig.getMessageFieldConfig()) + "." + publicMethodName(Name.from("from")); }