]> source.dussan.org Git - sonarqube.git/commitdiff
Add javadoc to org.sonar.api.config.PropertyDefinition
authorSimon Brandhof <simon.brandhof@gmail.com>
Thu, 6 Jun 2013 09:05:43 +0000 (11:05 +0200)
committerSimon Brandhof <simon.brandhof@gmail.com>
Thu, 6 Jun 2013 09:05:43 +0000 (11:05 +0200)
sonar-plugin-api/src/main/java/org/sonar/api/config/PropertyDefinition.java
sonar-plugin-api/src/main/java/org/sonar/api/config/PropertyDefinitions.java
sonar-plugin-api/src/main/java/org/sonar/api/issue/internal/package-info.java
sonar-plugin-api/src/test/java/org/sonar/api/config/PropertyDefinitionsTest.java

index 4cd2a19f6b7665b8d63c9de9bfd03f84a0344209..f77e9609a12defe81122638ebaf8d501f688b33d 100644 (file)
@@ -50,7 +50,7 @@ import static com.google.common.collect.Lists.newArrayList;
  *     public List getExtensions() {
  *       return Arrays.asList(
  *         PropertyDefinition.builder("sonar.foo").name("Foo").build(),
- *         PropertyDefinition.builder("sonar.bar").name("Bar").type(PropertyType.INTEGER).build()
+ *         PropertyDefinition.builder("sonar.bar").name("Bar").defaultValue("123").type(PropertyType.INTEGER).build()
  *       );
  *     }
  *   }
@@ -67,7 +67,7 @@ public final class PropertyDefinition implements BatchExtension, ServerExtension
   private List<String> options;
   private String description;
   /**
-   * @see PropertyDef.Builder#category(String)
+   * @see {@link org.sonar.api.config.PropertyDefinition.Builder#category(String)}
    */
   private String category;
   private List<String> qualifiers;
@@ -77,7 +77,7 @@ public final class PropertyDefinition implements BatchExtension, ServerExtension
   private String deprecatedKey;
   private List<PropertyFieldDefinition> fields;
   /**
-   * @see PropertyDef.Builder#subCategory(String)
+   * @see {@link org.sonar.api.config.PropertyDefinition.Builder#subCategory(String)}
    */
   private String subCategory;
   private int index;
@@ -204,14 +204,14 @@ public final class PropertyDefinition implements BatchExtension, ServerExtension
   }
 
   /**
-   * @see PropertyDef.Builder#category(String)
+   * @see {@link PropertyDefinition.Builder#category(String)}
    */
   public String category() {
     return category;
   }
 
   /**
-   * @see PropertyDef.Builder#subCategory(String)
+   * @see {@link PropertyDefinition.Builder#subCategory(String)}
    */
   public String subCategory() {
     return subCategory;
@@ -284,11 +284,11 @@ public final class PropertyDefinition implements BatchExtension, ServerExtension
     private String description = "";
     private String defaultValue = "";
     /**
-     * @see PropertyDef.Builder#category(String)
+     * @see {@link PropertyDefinition.Builder#category(String)}
      */
     private String category = "";
     /**
-     * @see PropertyDef.Builder#subCategory(String)
+     * @see {@link PropertyDefinition.Builder#subCategory(String)}
      */
     private String subCategory = "";
     private List<String> onQualifiers = newArrayList();
@@ -341,24 +341,64 @@ public final class PropertyDefinition implements BatchExtension, ServerExtension
       return this;
     }
 
+    /**
+     * The property will be available in General Settings AND in the components
+     * with the given qualifiers.
+     * <p/>
+     * For example @{code onQualifiers(Qualifiers.PROJECT)} allows to configure the
+     * property in General Settings and in Project Settings.
+     * <p/>
+     * See supported constant values in {@link Qualifiers}. By default property is available
+     * only in General Settings.
+     */
     public Builder onQualifiers(String first, String... rest) {
       this.onQualifiers.addAll(Lists.asList(first, rest));
       this.global = true;
       return this;
     }
 
+    /**
+     * The property will be available in General Settings AND in the components
+     * with the given qualifiers.
+     * <p/>
+     * For example @{code onQualifiers(Arrays.asList(Qualifiers.PROJECT))} allows to configure the
+     * property in General Settings and in Project Settings.
+     * <p/>
+     * See supported constant values in {@link Qualifiers}. By default property is available
+     * only in General Settings.
+     */
     public Builder onQualifiers(List<String> qualifiers) {
       this.onQualifiers.addAll(ImmutableList.copyOf(qualifiers));
       this.global = true;
       return this;
     }
 
+    /**
+     * The property will be available in the components
+     * with the given qualifiers, but NOT in General Settings.
+     * <p/>
+     * For example @{code onlyOnQualifiers(Qualifiers.PROJECT)} allows to configure the
+     * property in Project Settings only.
+     * <p/>
+     * See supported constant values in {@link Qualifiers}. By default property is available
+     * only in General Settings.
+     */
     public Builder onlyOnQualifiers(String first, String... rest) {
       this.onlyOnQualifiers.addAll(Lists.asList(first, rest));
       this.global = false;
       return this;
     }
 
+    /**
+     * The property will be available in the components
+     * with the given qualifiers, but NOT in General Settings.
+     * <p/>
+     * For example @{code onlyOnQualifiers(Arrays.asList(Qualifiers.PROJECT))} allows to configure the
+     * property in Project Settings only.
+     * <p/>
+     * See supported constant values in {@link Qualifiers}. By default property is available
+     * only in General Settings.
+     */
     public Builder onlyOnQualifiers(List<String> qualifiers) {
       this.onlyOnQualifiers.addAll(ImmutableList.copyOf(qualifiers));
       this.global = false;
@@ -405,11 +445,19 @@ public final class PropertyDefinition implements BatchExtension, ServerExtension
       return this;
     }
 
+    /**
+     * Flag the property as hidden. Hidden properties are not displayed in Settings pages
+     * but allow plugins to benefit from type and default values when calling {@link Settings}.
+     */
     public Builder hidden() {
       this.hidden = true;
       return this;
     }
 
+    /**
+     * Set the order index in Settings pages. A property with a lower index is displayed
+     * before properties with higher index.
+     */
     public Builder index(int index) {
       this.index = index;
       return this;
index c557a309d8958b8baffc642c78b9f04dee4e76b0..b729e1064afec90dcba80c4cbb7674bbeb28db82 100644 (file)
@@ -56,6 +56,10 @@ public final class PropertyDefinitions implements BatchComponent, ServerComponen
     }
   }
 
+  public PropertyDefinitions(Collection<PropertyDefinition> components) {
+    addComponents(components);
+  }
+
   public PropertyDefinitions addComponents(Collection components) {
     return addComponents(components, "");
   }
index 4b2bea8a375674af4aa5f9d601aefae0c6a255e1..3be812e7dac64df44de5802f8944e2cc2b6a5f32 100644 (file)
  * along with this program; if not, write to the Free Software Foundation,
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
+/**
+ * This package contains classes that MUST NOT be used by plugins,
+ * except for unit testing.
+ */
 @ParametersAreNonnullByDefault
 package org.sonar.api.issue.internal;
 
index 4de6c2f4f0cbc25a4e813bfdc4f8768e3c8c8dc4..ed794b4dc8cba6a41c2c19a7174c79500df98f69 100644 (file)
@@ -24,10 +24,25 @@ import org.sonar.api.Properties;
 import org.sonar.api.Property;
 import org.sonar.api.resources.Qualifiers;
 
+import java.util.Arrays;
+import java.util.List;
+
 import static org.fest.assertions.Assertions.assertThat;
 
 public class PropertyDefinitionsTest {
 
+  @Test
+  public void should_build_with_predefined_list_of_definitions() {
+    List<PropertyDefinition> list = Arrays.asList(
+      PropertyDefinition.builder("foo").name("Foo").build(),
+      PropertyDefinition.builder("one").name("One").build(),
+      PropertyDefinition.builder("two").name("Two").defaultValue("2").build()
+    );
+    PropertyDefinitions def = new PropertyDefinitions(list);
+
+    assertProperties(def);
+  }
+
   @Test
   public void should_inspect_plugin_objects() {
     PropertyDefinitions def = new PropertyDefinitions(