private static String getResourceNamePackage(ResourceNameConfig resourceNameConfig) { String commonResourceName = resourceNameConfig.getCommonResourceName(); if (commonResourceName != null) { // Common resource name is fully-qualified. int p = commonResourceName.lastIndexOf("."); if (p >= 0) { commonResourceName = commonResourceName.substring(0, p); } return commonResourceName; } ResourceNameType resourceNameType = resourceNameConfig.getResourceNameType(); switch (resourceNameType) { case ANY: return "com.google.api.resourcenames"; case FIXED: case SINGLE: case ONEOF: return getJavaPackage(resourceNameConfig.getAssignedProtoFile()); case NONE: default: throw new IllegalArgumentException("Unexpected ResourceNameType: " + resourceNameType); } }
private static <T extends ResourceNameConfig> ImmutableMap<String, T> mergeResourceNameConfigs( DiagCollector diagCollector, Map<String, T> configsFromGapicConfig, Map<String, T> configsFromProtoFile) { Map<String, T> mergedResourceNameConfigs = new HashMap<>(configsFromProtoFile); // If protofile annotations clash with the configs from configProto, use the configProto. for (T resourceFromGapicConfig : configsFromGapicConfig.values()) { if (configsFromProtoFile.containsKey(resourceFromGapicConfig.getEntityId())) { diagCollector.addDiag( Diag.warning( SimpleLocation.TOPLEVEL, "Resource[Set] entity %s from protofile clashes with a" + " Resource[Set] of the same name from the GAPIC config." + " Using the GAPIC config entity.", resourceFromGapicConfig.getEntityId())); } // Add the protofile resourceNameConfigs to the map of resourceNameConfigs. mergedResourceNameConfigs.put(resourceFromGapicConfig.getEntityId(), resourceFromGapicConfig); } return ImmutableMap.copyOf(mergedResourceNameConfigs); }
@Override protected Name getResourceTypeNameObject(ResourceNameConfig resourceNameConfig) { String entityName = resourceNameConfig.getEntityName(); ResourceNameType resourceNameType = resourceNameConfig.getResourceNameType(); // Proto annotations use UpperCamelCase for resource names, // and GAPIC config uses lower_snake_case, so we have to support both formats. Function<String, Name> formatNameFunc; if (entityName.length() > 0 && Character.isUpperCase(entityName.charAt(0))) { formatNameFunc = Name::upperCamel; } else { formatNameFunc = Name::anyLower; } switch (resourceNameType) { case ANY: return getAnyResourceTypeName(); case FIXED: return formatNameFunc.apply(entityName).join("name_fixed"); case ONEOF: // Remove suffix "_oneof". This allows the collection oneof config to "share" an entity name // with a collection config. entityName = StringUtil.removeSuffix(entityName, "_oneof"); return formatNameFunc.apply(entityName).join("name"); case SINGLE: return formatNameFunc.apply(entityName).join("name"); case NONE: default: throw new UnsupportedOperationException("unexpected entity name type"); } }
private static FieldConfig createFieldConfig( FieldModel field, ResourceNameTreatment resourceNameTreatment, ResourceNameConfig resourceNameConfig, ResourceNameConfig messageResourceNameConfig) { if (resourceNameTreatment != ResourceNameTreatment.NONE && resourceNameConfig == null) { throw new IllegalArgumentException( "resourceName may only be null if resourceNameTreatment is NONE"); } if (resourceNameConfig != null && resourceNameConfig.getResourceNameType() == ResourceNameType.FIXED) { throw new IllegalArgumentException( "FieldConfig may not contain a ResourceNameConfig of type " + ResourceNameType.FIXED); } return new AutoValue_FieldConfig( field, resourceNameTreatment, resourceNameConfig, messageResourceNameConfig); }
public String getResourceTypeName(ResourceNameConfig resourceNameConfig) { String commonResourceName = resourceNameConfig.getCommonResourceName(); return commonResourceName != null ? commonResourceName : publicClassName(getResourceTypeNameObject(resourceNameConfig)); }
/** Returns the name for a ResourceName for the resource of the given method. */ public static Name getResourceNameName(ResourceNameConfig resourceNameConfig) { return Name.anyCamel(resourceNameConfig.getEntityName()).join("name"); } }
public ResourceNameType getResourceNameType() { if (getResourceNameConfig() == null) { return null; } return getResourceNameConfig().getResourceNameType(); }
/** The class name of the generated resource type from the entity name. */ public String getAndSaveElementResourceTypeName( ImportTypeTable typeTable, FieldConfig fieldConfig) { ResourceNameConfig resourceNameConfig = fieldConfig.getResourceNameConfig(); if (resourceNameConfig.getCommonResourceName() != null) { String resourceClassName = resourceNameConfig.getCommonResourceName(); return typeTable.getAndSaveNicknameFor(resourceClassName); } String resourceClassName = publicClassName(getResourceTypeNameObject(resourceNameConfig)); return typeTable.getAndSaveNicknameForResourceNameElementType(fieldConfig, resourceClassName); }
protected Name getResourceTypeNameObject(ResourceNameConfig resourceNameConfig) { String entityName = resourceNameConfig.getEntityName(); ResourceNameType resourceNameType = resourceNameConfig.getResourceNameType(); // Proto annotations use UpperCamelCase for resource names, // and GAPIC config uses lower_snake_case, so we have to support both formats. Function<String, Name> formatNameFunc; if (entityName.length() > 0 && Character.isUpperCase(entityName.charAt(0))) { formatNameFunc = Name::upperCamel; } else { formatNameFunc = Name::anyLower; } switch (resourceNameType) { case ANY: return getAnyResourceTypeName(); case FIXED: return Name.anyLower(entityName).join("name_fixed"); case ONEOF: // Remove suffix "_oneof". This allows the collection oneof config to "share" an entity name // with a collection config. entityName = StringUtil.removeSuffix(entityName, "_oneof"); return formatNameFunc.apply(entityName).join("name_oneof"); case SINGLE: return formatNameFunc.apply(entityName).join("name"); case NONE: default: throw new UnsupportedOperationException("unexpected entity name type"); } }
public boolean requiresParamTransformationFromAny() { return getMessageResourceNameConfig() != null && getMessageResourceNameConfig().getResourceNameType() == ResourceNameType.ANY; }
@Override public String getAndSaveResourceTypeName(ImportTypeTable typeTable, FieldConfig fieldConfig) { String commonResourceName = fieldConfig.getResourceNameConfig().getCommonResourceName(); String resourceClassName; if (commonResourceName == null) { resourceClassName = publicClassName(getResourceTypeNameObject(fieldConfig.getResourceNameConfig())); } else { // Common resource name is fully-qualified. resourceClassName = commonResourceName.substring(commonResourceName.lastIndexOf(".") + 1); } return typeTable.getAndSaveNicknameForTypedResourceName(fieldConfig, resourceClassName); }
List<ResourceNameView> generateResourceNames( InterfaceContext context, Iterable<ResourceNameConfig> configs) { List<ResourceNameView> resourceNames = new ArrayList<>(); int index = 1; for (ResourceNameConfig config : configs) { switch (config.getResourceNameType()) { case SINGLE: resourceNames.add( generateResourceNameSingle(context, index, (SingleResourceNameConfig) config)); break; case ONEOF: resourceNames.add( generateResourceNameOneof(context, index, (ResourceNameOneofConfig) config)); break; case FIXED: resourceNames.add( generateResourceNameFixed(context, index, (FixedResourceNameConfig) config)); break; default: throw new IllegalStateException("Unexpected resource-name type."); } index += 1; } return resourceNames; }
/** The class name of the generated resource type from the entity name. */ public String getAndSaveResourceTypeName(ImportTypeTable typeTable, FieldConfig fieldConfig) { String commonResourceName = fieldConfig.getResourceNameConfig().getCommonResourceName(); String resourceClassName = commonResourceName != null ? commonResourceName : publicClassName(getResourceTypeNameObject(fieldConfig.getResourceNameConfig())); return typeTable.getAndSaveNicknameForTypedResourceName(fieldConfig, resourceClassName); }
ResourceNameType resourceTypeName = messageFieldResourceNameConfig.getResourceNameType(); boolean ok = resourceTypeName == ResourceNameType.ANY; if (resourceTypeName == ResourceNameType.ONEOF) {
CSharpTypeTable.ALIAS_SYSTEM_COLLECTIONS_GENERIC + "::IEnumerable", CSharpTypeTable.ALIAS_GAX + "::ResourceNameList"); } else if (resourceNameConfig.getCommonResourceName() == null && !isAny) {
actualTransformFunction = namer.getResourceTypeParseListMethodName(methodContext.getTypeTable(), fieldConfig); } else if (fieldConfig.getResourceNameConfig().getResourceNameType() == ResourceNameType.ONEOF) { actualTransformFunction =
ResourceNameConfig messageResNameConfig = fieldConfig.getMessageResourceNameConfig(); if (messageResNameConfig == null || messageResNameConfig.getResourceNameType() != ResourceNameType.ANY) {