/** * Get the paged resource field. We assume it will be the FIRST REPEATED field in the response * message. */ public static FieldModel getResourcesField(MethodModel method) { for (FieldModel field : method.getOutputFields()) { // Return the first repeated field. if (field.isRepeated()) { return field; } } return null; }
@VisibleForTesting static <E extends FieldModel> List<FieldModel> responseInitFields(List<E> fields) { HashSet<Oneof> oneofSet = new HashSet<>(); return fields .stream() .filter(f -> f.isPrimitive() && !f.isRepeated()) .filter( f -> { // Includes field if field is not a part of a oneof, or it's the first field of the // oneof. Oneof oneof = f.getOneof(); return oneof == null || oneofSet.add(oneof); }) .collect(Collectors.toList()); }
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()); }
/** * The function name to get an element by index from the given field. * * @throws IllegalArgumentException if the field is not a repeated field. */ public String getByIndexGetFunctionName(FieldModel field) { if (field.isRepeated()) { return publicMethodName(Name.from("get", field.getSimpleName())); } else { throw new IllegalArgumentException( "Non-repeated field " + field.getSimpleName() + " has no get-by-index function."); } }
@Override public boolean useResourceNameConvertersInSampleOnly( MethodContext context, FieldConfig fieldConfig) { return !resourceNameProtoAccessorsEnabled() && useResourceNameFormatOptionInSampleOnly(fieldConfig) && !(context.isFlattenedMethodContext() && fieldConfig.getField().isRepeated()); }
/** The function name to get a field having the given type and name. */ public String getFieldGetFunctionName(FieldModel type, Name identifier) { return getFieldGetFunctionName( identifier, MapType.ofMap(type.isMap()), Cardinality.ofRepeated(type.isRepeated())); }
/** * The function name to get the count of elements in the given field. * * @throws IllegalArgumentException if the field is not a repeated field. */ public String getFieldCountGetFunctionName(FieldModel field) { if (field.isRepeated()) { return publicMethodName(Name.from("get").join(field.getNameAsParameterName()).join("count")); } else { throw new IllegalArgumentException( "Non-repeated field " + field.getSimpleName() + " has no count function."); } }
private TypeName getTypeNameForTypedResourceName(FieldModel type, String typedResourceShortName) { String packageName = implicitPackageName; String longName = packageName + "." + typedResourceShortName; TypeName simpleTypeName = new TypeName(longName, typedResourceShortName); if (type.isMap()) { throw new IllegalArgumentException("Map type not supported for typed resource name"); } else if (type.isRepeated()) { TypeName listTypeName = typeNameConverter.getTypeName("java.util.List"); return new TypeName( listTypeName.getFullName(), listTypeName.getNickname(), "%s<%i>", simpleTypeName); } else { return simpleTypeName; } }
@Override public boolean useResourceNameFormatOptionInSample( MethodContext context, FieldConfig fieldConfig) { return resourceNameTypesEnabled() && fieldConfig != null && (fieldConfig.useResourceNameType() || fieldConfig.useResourceNameTypeInSampleOnly()) && !(context.isFlattenedMethodContext() && fieldConfig.getField().isRepeated()); }
/** The function name to set the given field. */ public String getFieldSetFunctionName(FieldModel field) { return getFieldSetFunctionName( field.getNameAsParameterName(), MapType.ofMap(field.isMap()), Cardinality.ofRepeated(field.isRepeated())); }
!((type.isRepeated() && fieldName.toLowerCase().equals("names")) || (!type.isRepeated() && fieldName.toLowerCase().equals("name"))); boolean requireAs = requireIdentifier || (fieldConfig.getResourceNameType() == ResourceNameType.ANY); boolean requirePlural = type.isRepeated();
Mockito.when(field1.isRepeated()).thenReturn(false); Mockito.when(field1.getOneof()).thenReturn(oneof1); Mockito.when(field2.isRepeated()).thenReturn(false); Mockito.when(field2.getOneof()).thenReturn(oneof1); Mockito.when(field3.isRepeated()).thenReturn(false); Mockito.when(field3.getOneof()).thenReturn(oneof2);
if (field.isRepeated()) { paramDoc.typeName("int[]"); } else {
@Override public String getOptionalFieldDefaultValue(FieldConfig fieldConfig, MethodContext context) { // Need to provide defaults for primitives, enums, strings, and repeated (including maps) FieldModel type = fieldConfig.getField(); if (context.getFeatureConfig().useResourceNameFormatOption(fieldConfig)) { if (type.isRepeated()) { TypeNameConverter typeNameConverter = getTypeNameConverter(); TypeName elementTypeName = typeNameConverter.getTypeName(getResourceTypeName(fieldConfig.getResourceNameConfig())); TypeName enumerableTypeName = typeNameConverter.getTypeName("System.Linq.Enumerable"); TypeName emptyTypeName = new TypeName( enumerableTypeName.getFullName(), enumerableTypeName.getNickname(), "%s.Empty<%i>", elementTypeName); return TypedValue.create(emptyTypeName, "%s()") .getValueAndSaveTypeNicknameIn((CSharpTypeTable) typeNameConverter); } else { return null; } } else { if (type.isPrimitive() || type.isEnum() || type.isRepeated()) { return context.getTypeTable().getImplZeroValueAndSaveNicknameFor(type); } else { return null; } } }
/** The function name to add an element to a map or repeated field. */ public String getFieldAddFunctionName(FieldModel field) { if (field.isMap()) { return publicMethodName(Name.from("put").join(field.getNameAsParameterName())); } else if (field.isRepeated()) { return publicMethodName(Name.from("add").join(field.getNameAsParameterName())); } else { return publicMethodName(Name.from("set").join(field.getNameAsParameterName())); } }
FieldModel field = config.getResourcesField(); InitCodeNode initCodeNode; if (field.isRepeated()) { initCodeNode = InitCodeNode.createSingletonList(config.getResourcesFieldName()); } else {
/** The function name to set a field that is a resource name class. */ public String getResourceNameFieldSetFunctionName(FieldConfig fieldConfig) { FieldModel type = fieldConfig.getField(); Name identifier = fieldConfig.getField().getNameAsParameterName(); Name resourceName = getResourceTypeNameObject(fieldConfig.getResourceNameConfig()); if (type.isMap()) { return getNotImplementedString("SurfaceNamer.getResourceNameFieldSetFunctionName:map-type"); } else if (type.isRepeated()) { return publicMethodName( Name.from("add", "all").join(identifier).join("with").join(resourceName).join("list")); } else { return publicMethodName(Name.from("set").join(identifier).join("with").join(resourceName)); } }
/** The function name to get a field that is a resource name class. */ public String getResourceNameFieldGetFunctionName(FieldConfig fieldConfig) { FieldModel type = fieldConfig.getField(); Name identifier = fieldConfig.getField().getNameAsParameterName(); Name resourceName = getResourceTypeNameObject(fieldConfig.getResourceNameConfig()); if (type.isMap()) { return getNotImplementedString("SurfaceNamer.getResourceNameFieldGetFunctionName:map-type"); } else if (type.isRepeated()) { return publicMethodName( Name.from("get").join(identifier).join("list_as").join(resourceName).join("list")); } else { return publicMethodName(Name.from("get").join(identifier).join("as").join(resourceName)); } }
/** The type name for the message property */ @Override public String getMessagePropertyTypeName(ImportTypeTable importTypeTable, FieldModel fieldModel) { if (fieldModel.isMap()) { String keyTypeName = importTypeTable.getFullNameForElementType(fieldModel.getType().getMapKeyType()); String valueTypeName = importTypeTable.getFullNameForElementType(fieldModel.getType().getMapValueType()); return new TypeName( importTypeTable.getFullNameFor(fieldModel), importTypeTable.getNicknameFor(fieldModel), "%s{%i => %i}", new TypeName(keyTypeName), new TypeName(valueTypeName)) .getFullName(); } if (fieldModel.isRepeated()) { String elementTypeName = importTypeTable.getFullNameForElementType(fieldModel); return new TypeName( importTypeTable.getFullNameFor(fieldModel), importTypeTable.getNicknameFor(fieldModel), "%s<%i>", new TypeName(elementTypeName)) .getFullName(); } return importTypeTable.getFullNameForElementType(fieldModel); }
param.getCallName(namer.getFieldGetFunctionName(featureConfig, fieldConfig)); param.isMap(field.isMap()); param.isArray(!field.isMap() && field.isRepeated()); param.isPrimitive(field.isPrimitive()); param.isOptional(!isRequired);