/** * If the given type is not implicitly imported, the add it to the import set, then return the * zero value for that type. */ @Override public String getSnippetZeroValueAndSaveNicknameFor(FieldModel type) { return typeNameConverter.getSnippetZeroValue(type).getValueAndSaveTypeNicknameIn(typeTable); }
@Override public TypedValue getEnumValue(DiscoveryField field, String value) { return TypedValue.create(getTypeName(field), "%s." + value); }
/** * Renders the value given the value pattern, and adds any necessary nicknames to the given type * table. */ public String getValueAndSaveTypeNicknameIn(TypeTable typeTable) { if (getValuePattern().contains("%s")) { String nickname = typeTable.getAndSaveNicknameFor(getTypeName()); return StringUtils.replaceOnce(getValuePattern(), "%s", nickname); } else { return getValuePattern(); } } }
@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; } } }
@Override public String getImplZeroValueAndSaveNicknameFor(FieldModel type) { return typeNameConverter.getImplZeroValue(type).getValueAndSaveTypeNicknameIn(typeTable); }
@Override public TypedValue getEnumValue(TypeRef type, EnumValue value) { return TypedValue.create(getTypeName(type), String.format("'%s'", value.getSimpleName())); } }
@Override public String getSnippetZeroValueAndSaveNicknameFor(FieldModel type) { return typeNameConverter.getSnippetZeroValue(type).getValueAndSaveTypeNicknameIn(typeTable); }
@Override public TypedValue getEnumValue(TypeRef type, EnumValue value) { return TypedValue.create(getTypeName(type), ":" + value.getSimpleName()); } }
@Override public String getImplZeroValueAndSaveNicknameFor(FieldModel type) { return typeNameConverter.getImplZeroValue(type).getValueAndSaveTypeNicknameIn(typeTable); }
@Override public TypedValue getEnumValue(TypeRef type, EnumValue value) { return TypedValue.create(getTypeName(type), "%s::" + value.getSimpleName()); } }
/** * If the given type is not implicitly imported, the add it to the import set, then return the * zero value for that type. */ public String getSnippetZeroValueAndSaveNicknameFor(TypeRef type) { return typeNameConverter.getSnippetZeroValue(type).getValueAndSaveTypeNicknameIn(typeTable); }
@Override public TypedValue getEnumValue(TypeRef type, EnumValue value) { TypeName enumTypeName = getTypeName(type); List<String> enumTypeNameParts = Splitter.on('+').splitToList(enumTypeName.getNickname()); String enumShortTypeName = enumTypeNameParts.get(enumTypeNameParts.size() - 1); String enumValueName = enumNamer.getEnumValueName(enumShortTypeName, value.getSimpleName()); return TypedValue.create(enumTypeName, "%s." + enumValueName); } }
@Override public String getSnippetZeroValueAndSaveNicknameFor(TypeModel type) { TypedValue typedValue = typeNameConverter.getSnippetZeroValue(type); return typedValue.getValueAndSaveTypeNicknameIn(typeTable); }
@Override public TypedValue getEnumValue(TypeRef type, EnumValue value) { return TypedValue.create(getTypeName(type), "%s." + value.getSimpleName()); }
@Override public String getSnippetZeroValueAndSaveNicknameFor(TypeModel type) { return typeNameConverter .getSnippetZeroValue(((ProtoTypeRef) type).getProtoType()) .getValueAndSaveTypeNicknameIn(typeTable); }
@Override public TypedValue getEnumValue(FieldModel type, EnumValue value) { return TypedValue.create(getTypeName(type), "%s." + value.getSimpleName()); }
/** Returns the enum value string */ public String getEnumValue(TypeRef type, String value) { for (EnumValue enumValue : type.getEnumType().getValues()) { if (enumValue.getSimpleName().equals(value)) { return typeNameConverter .getEnumValue(type, enumValue) .getValueAndSaveTypeNicknameIn(typeTable); } } throw new IllegalArgumentException("Unrecognized enum value: " + value); }
@Override public TypedValue getEnumValue(TypeRef type, EnumValue value) { return TypedValue.create(getTypeName(type), "%s." + value.getSimpleName()); }
@Test public void testGetEnumValue() { TypeRef type = ModelTypeNameConverterTestUtil.getTestEnumType(tempDir); EnumValue value = type.getEnumType().getValues().get(0); assertThat(converter.getEnumValue(type, value).getValueAndSaveTypeNicknameIn(new GoTypeTable())) .isEqualTo("librarypb.Book_GOOD"); type = ModelTypeNameConverterTestUtil.getTestType(tempDir, "TopLevelEnum"); value = type.getEnumType().getValues().get(0); assertThat(converter.getEnumValue(type, value).getValueAndSaveTypeNicknameIn(new GoTypeTable())) .isEqualTo("librarypb.TopLevelEnum_FOO"); } }
/** * Returns the Java representation of a zero value for that type, to be used in code sample doc. * * <p>Parametric types may use the diamond operator, since the return value will be used only in * initialization. */ @Override public TypedValue getSnippetZeroValue(TypeModel typeModel) { if (typeModel.isEmptyType()) { return TypedValue.create(getTypeName((DiscoveryField) null), "null"); } return getSnippetZeroValue((DiscoveryField) typeModel); }