private Settings.Setting.Builder getOrCreateValueBuilder(String key) { return settingsBuilderByKey.computeIfAbsent(key, k -> valuesWsBuilder.addSettingsBuilder().setKey(key)); }
private void setInherited(Setting setting, Settings.Setting.Builder valueBuilder) { boolean isDefault = setting.isDefault(); boolean isGlobal = !requestedComponent.isPresent(); boolean isOnComponent = requestedComponent.isPresent() && Objects.equals(setting.getComponentId(), requestedComponent.get().getId()); boolean isSet = isGlobal || isOnComponent; valueBuilder.setInherited(isDefault || !isSet); }
private void setParent(Setting setting, Settings.Setting.Builder valueBuilder) { Setting parent = settingsByParentKey.get(setting.getKey()); if (parent != null) { String value = valueBuilder.getInherited() ? setting.getValue() : parent.getValue(); PropertyDefinition definition = setting.getDefinition(); if (definition == null) { valueBuilder.setParentValue(value); return; } if (definition.type().equals(PROPERTY_SET)) { valueBuilder.setParentFieldValues( createFieldValuesBuilder(valueBuilder.getInherited() ? filterVisiblePropertySets(setting.getPropertySets()) : filterVisiblePropertySets(parent.getPropertySets()))); } else if (definition.multiValues()) { valueBuilder.setParentValues(createValuesBuilder(value)); } else { valueBuilder.setParentValue(value); } } settingsByParentKey.put(setting.getKey(), setting); }
private Settings.Setting.Builder getOrCreateValueBuilder(String key) { return settingsBuilderByKey.computeIfAbsent(key, k -> valuesWsBuilder.addSettingsBuilder().setKey(key)); }
private void setValue(Setting setting, Settings.Setting.Builder valueBuilder) { PropertyDefinition definition = setting.getDefinition(); String value = setting.getValue(); if (definition == null) { valueBuilder.setValue(value); return; } if (definition.type().equals(PROPERTY_SET)) { valueBuilder.setFieldValues(createFieldValuesBuilder(filterVisiblePropertySets(setting.getPropertySets()))); } else if (definition.multiValues()) { valueBuilder.setValues(createValuesBuilder(value)); } else { valueBuilder.setValue(value); } }
private void setInherited(Setting setting, Settings.Setting.Builder valueBuilder) { boolean isDefault = setting.isDefault(); boolean isGlobal = !requestedComponent.isPresent(); boolean isOnComponent = requestedComponent.isPresent() && Objects.equals(setting.getComponentId(), requestedComponent.get().getId()); boolean isSet = isGlobal || isOnComponent; valueBuilder.setInherited(isDefault || !isSet); }
@Test public void should_load_global_propertyset_settings() { Builder valuesBuilder = Value.newBuilder(); valuesBuilder.getMutableValue().put("filepattern", "**/*.xml"); valuesBuilder.getMutableValue().put("rulepattern", "*:S12345"); Value value1 = valuesBuilder.build(); valuesBuilder.clear(); valuesBuilder.getMutableValue().put("filepattern", "**/*.java"); valuesBuilder.getMutableValue().put("rulepattern", "*:S456"); Value value2 = valuesBuilder.build(); assertThat(DefaultSettingsLoader.toMap(asList(Setting.newBuilder() .setKey("sonar.issue.exclusions.multicriteria") .setFieldValues(FieldValues.newBuilder().addFieldValues(value1).addFieldValues(value2)).build()))) .containsOnly(entry("sonar.issue.exclusions.multicriteria", "1,2"), entry("sonar.issue.exclusions.multicriteria.1.filepattern", "**/*.xml"), entry("sonar.issue.exclusions.multicriteria.1.rulepattern", "*:S12345"), entry("sonar.issue.exclusions.multicriteria.2.filepattern", "**/*.java"), entry("sonar.issue.exclusions.multicriteria.2.rulepattern", "*:S456")); }
private void setParent(Setting setting, Settings.Setting.Builder valueBuilder) { Setting parent = settingsByParentKey.get(setting.getKey()); if (parent != null) { String value = valueBuilder.getInherited() ? setting.getValue() : parent.getValue(); PropertyDefinition definition = setting.getDefinition(); if (definition == null) { valueBuilder.setParentValue(value); return; } if (definition.type().equals(PROPERTY_SET)) { valueBuilder.setParentFieldValues( createFieldValuesBuilder(valueBuilder.getInherited() ? filterVisiblePropertySets(setting.getPropertySets()) : filterVisiblePropertySets(parent.getPropertySets()))); } else if (definition.multiValues()) { valueBuilder.setParentValues(createValuesBuilder(value)); } else { valueBuilder.setParentValue(value); } } settingsByParentKey.put(setting.getKey(), setting); }
private void setValue(Setting setting, Settings.Setting.Builder valueBuilder) { PropertyDefinition definition = setting.getDefinition(); String value = setting.getValue(); if (definition == null) { valueBuilder.setValue(value); return; } if (definition.type().equals(PROPERTY_SET)) { valueBuilder.setFieldValues(createFieldValuesBuilder(filterVisiblePropertySets(setting.getPropertySets()))); } else if (definition.multiValues()) { valueBuilder.setValues(createValuesBuilder(value)); } else { valueBuilder.setValue(value); } }
@Test public void should_load_global_multivalue_settings() { assertThat(DefaultSettingsLoader.toMap(asList(Setting.newBuilder() .setKey("sonar.preview.supportedPlugins") .setValues(Values.newBuilder().addValues("java").addValues("php")).build()))) .containsExactly(entry("sonar.preview.supportedPlugins", "java,php")); }
@Test public void should_escape_global_multivalue_settings() { assertThat(DefaultSettingsLoader.toMap(asList(Setting.newBuilder() .setKey("sonar.preview.supportedPlugins") .setValues(Values.newBuilder().addValues("ja,va").addValues("p\"hp")).build()))) .containsExactly(entry("sonar.preview.supportedPlugins", "\"ja,va\",\"p\"\"hp\"")); }