diff options
author | simonbrandhof <simon.brandhof@gmail.com> | 2010-09-21 21:25:29 +0000 |
---|---|---|
committer | simonbrandhof <simon.brandhof@gmail.com> | 2010-09-21 21:25:29 +0000 |
commit | d46e081eacea3680bae90faa5df1ae43157d1e87 (patch) | |
tree | 3e7bea37e9b306f335cd6a52910b6ffb4068bec2 /sonar-plugin-api/src | |
parent | d4963b41c34bc8a0d94ad80fe098cd088bb4a5a0 (diff) | |
download | sonarqube-d46e081eacea3680bae90faa5df1ae43157d1e87.tar.gz sonarqube-d46e081eacea3680bae90faa5df1ae43157d1e87.zip |
quality models: limit the methods of org.sonar.api.qualitymodel.ModelFinder to read methods. Management methods are restricted to core => extracted to org.sonar.server.qualitymodel.ModelManager
Diffstat (limited to 'sonar-plugin-api/src')
4 files changed, 95 insertions, 14 deletions
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/qualitymodel/Characteristic.java b/sonar-plugin-api/src/main/java/org/sonar/api/qualitymodel/Characteristic.java index ec0d81b746f..8a6d70fd953 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/qualitymodel/Characteristic.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/qualitymodel/Characteristic.java @@ -240,19 +240,38 @@ public final class Characteristic implements Comparable<Characteristic> { } public CharacteristicProperty setProperty(String key, String value) { - return createProperty(key).setValue(value); + return addProperty(CharacteristicProperty.create(key).setValue(value)); } public CharacteristicProperty setProperty(String key, double value) { - return createProperty(key).setValue(value); + return addProperty(CharacteristicProperty.create(key).setValue(value)); } - public CharacteristicProperty createProperty(String key) { - CharacteristicProperty property = new CharacteristicProperty(this, key); + public CharacteristicProperty addProperty(CharacteristicProperty property) { + property.setCharacteristic(this); properties.add(property); return property; } + public CharacteristicProperty getProperty(String key) { + for (CharacteristicProperty property : properties) { + if (StringUtils.equals(key, property.getKey())) { + return property; + } + } + return null; + } + + public String getPropertyValueAsString(String key) { + CharacteristicProperty property = getProperty(key); + return property != null ? property.getValue() : null; + } + + public Double getPropertyValueAsDouble(String key) { + CharacteristicProperty property = getProperty(key); + return property != null ? property.getValueAsDouble() : null; + } + @Override public boolean equals(Object o) { if (this == o) { diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/qualitymodel/CharacteristicProperty.java b/sonar-plugin-api/src/main/java/org/sonar/api/qualitymodel/CharacteristicProperty.java index 6fc5f261eda..287dddc22e1 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/qualitymodel/CharacteristicProperty.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/qualitymodel/CharacteristicProperty.java @@ -46,9 +46,14 @@ public final class CharacteristicProperty { @JoinColumn(name = "characteristic_id", updatable = true, nullable = false) private Characteristic characteristic; - CharacteristicProperty(Characteristic characteristic, String key) { - this.characteristic = characteristic; - this.key = key; + /** + * Use the factory method create() + */ + CharacteristicProperty() { + } + + public static CharacteristicProperty create(String key) { + return new CharacteristicProperty().setKey(key); } public Integer getId() { diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/qualitymodel/ModelFinder.java b/sonar-plugin-api/src/main/java/org/sonar/api/qualitymodel/ModelFinder.java index a41a01fbfb5..66ff26eae7f 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/qualitymodel/ModelFinder.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/qualitymodel/ModelFinder.java @@ -32,11 +32,4 @@ public interface ModelFinder extends BatchComponent, ServerComponent { */ Model findByName(String name); - /** - * @return null if the name is not found - */ - ModelDefinition findDefinitionByName(String name); - - Model reset(String name); - } diff --git a/sonar-plugin-api/src/test/java/org/sonar/api/qualitymodel/CharacteristicTest.java b/sonar-plugin-api/src/test/java/org/sonar/api/qualitymodel/CharacteristicTest.java new file mode 100644 index 00000000000..1a665b6601d --- /dev/null +++ b/sonar-plugin-api/src/test/java/org/sonar/api/qualitymodel/CharacteristicTest.java @@ -0,0 +1,64 @@ +/* + * Sonar, open source software quality management tool. + * Copyright (C) 2009 SonarSource SA + * mailto:contact AT sonarsource DOT com + * + * Sonar is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * Sonar is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with Sonar; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 + */ +package org.sonar.api.qualitymodel; + +import org.junit.Test; + +import static junit.framework.Assert.assertTrue; +import static org.hamcrest.CoreMatchers.notNullValue; +import static org.hamcrest.core.Is.is; +import static org.hamcrest.core.IsNull.nullValue; +import static org.junit.Assert.assertThat; + +public class CharacteristicTest { + + @Test + public void testStringProperties() { + Characteristic characteristic = new Characteristic(); + characteristic.setProperty("foo", "bar"); + + assertThat(characteristic.getProperty("foo"), notNullValue()); + assertThat(characteristic.getPropertyValueAsString("foo"), is("bar")); + assertThat(characteristic.getPropertyValueAsDouble("foo"), nullValue()); + + assertThat(characteristic.getProperty("unknown"), nullValue()); + assertThat(characteristic.getPropertyValueAsString("unknown"), nullValue()); + } + + @Test + public void testDoubleProperties() { + Characteristic characteristic = new Characteristic(); + characteristic.setProperty("foo", 3.1); + + assertThat(characteristic.getProperty("foo"), notNullValue()); + assertThat(characteristic.getPropertyValueAsDouble("foo"), is(3.1)); + assertThat(characteristic.getPropertyValueAsString("foo"), nullValue()); + } + + @Test + public void addProperty() { + Characteristic characteristic = new Characteristic(); + characteristic.addProperty(CharacteristicProperty.create("foo")); + + CharacteristicProperty property = characteristic.getProperty("foo"); + assertThat(property, notNullValue()); + assertTrue(property.getCharacteristic()==characteristic); + } +} |