sourceBuilder = source.toBuilder(); } else { sourceBuilder.mergeFrom(source);
ConfigSource.Builder builder = mergedConfigs.get(descriptor); if (builder == null) { mergedConfigs.put(descriptor, config.toBuilder()); } else if (experiments.isExperimentEnabled(PROTO3_CONFIG_MERGING_EXPERIMENT)) { builder.mergeFromWithProto3Semantics(config);
ConfigSource.Builder builder = mergedConfigs.get(descriptor); if (builder == null) { mergedConfigs.put(descriptor, config.toBuilder()); } else if (experiments.isExperimentEnabled(PROTO3_CONFIG_MERGING_EXPERIMENT)) { builder.mergeFromWithProto3Semantics(config);
@Test public void simpleField() { ConfigSource.Builder builder = ConfigSource.newBuilder(SomeConfig.getDefaultInstance()); builder.setValue(STRING_VALUE_FIELD, null, "Hello World", L1); ConfigSource source = builder.build(); SomeConfig config = (SomeConfig) source.getConfig(); Truth.assertThat(config.getStringValue()).isEqualTo("Hello World"); Truth.assertThat(source.getLocation(config, STRING_VALUE_FIELD.getName(), null)).isEqualTo(L1); builder = source.toBuilder(); builder.setValue(STRING_VALUE_FIELD, null, "", L2); source = builder.build(); config = (SomeConfig) source.getConfig(); Truth.assertThat(config.getStringValue()).isEqualTo(""); Truth.assertThat(source.getLocation(config, STRING_VALUE_FIELD.getName(), null)).isEqualTo(L2); }
@Test public void simpleRepeatedField() { ConfigSource.Builder builder = ConfigSource.newBuilder(SomeConfig.getDefaultInstance()); builder.addValue(REPEATED_STRING_VALUE_FIELD, "a", L1); builder.addValue(REPEATED_STRING_VALUE_FIELD, "b", L2); ConfigSource source = builder.build(); SomeConfig config = (SomeConfig) source.getConfig(); Truth.assertThat(config.getRepeatedStringValueList()).containsExactly("a", "b"); Truth.assertThat(source.getLocation(config, REPEATED_STRING_VALUE_FIELD.getName(), 0)) .isEqualTo(L1); Truth.assertThat(source.getLocation(config, REPEATED_STRING_VALUE_FIELD.getName(), 1)) .isEqualTo(L2); builder = source.toBuilder(); builder.addValue(REPEATED_STRING_VALUE_FIELD, "c", L3); source = builder.build(); config = (SomeConfig) source.getConfig(); Truth.assertThat(config.getRepeatedStringValueList()).containsExactly("a", "b", "c"); Truth.assertThat(source.getLocation(config, REPEATED_STRING_VALUE_FIELD.getName(), 0)) .isEqualTo(L1); Truth.assertThat(source.getLocation(config, REPEATED_STRING_VALUE_FIELD.getName(), 1)) .isEqualTo(L2); Truth.assertThat(source.getLocation(config, REPEATED_STRING_VALUE_FIELD.getName(), 2)) .isEqualTo(L3); }
ConfigSource source2 = builder.build(); source = source.toBuilder().mergeFrom(source2).build();