Clover coverage report - PMD - 3.9
Coverage timestamp: Tue Dec 19 2006 09:38:44 EST
file stats: LOC: 133   Methods: 0
NCLOC: 18   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
PropertyDescriptor.java - - - -
coverage
 1    package net.sourceforge.pmd;
 2   
 3   
 4    /**
 5    * Property value descriptor that defines the use & requirements for setting
 6    * property values for use within PMD and any associated GUIs.
 7    *
 8    * @author Brian Remedios
 9    * @version $Revision$
 10    */
 11    public interface PropertyDescriptor extends Comparable {
 12   
 13    PropertyDescriptor[] emptyPropertySet = new PropertyDescriptor[0];
 14   
 15    /**
 16    * The name of the property without spaces as it serves
 17    * as the key into the property map.
 18    *
 19    * @return String
 20    */
 21    String name();
 22    /**
 23    * Describes the property and the role it plays within the
 24    * rule it is specified for. Could be used in a tooltip.
 25    *
 26    * @return String
 27    */
 28    String description();
 29    /**
 30    * Denotes the value datatype.
 31    * @return Class
 32    */
 33    Class type();
 34    /**
 35    * If the property is multi-valued, i.e. an array of strings, then this
 36    * returns the maximum number permitted. Unary property rule properties
 37    * normally return a value of one.
 38    *
 39    * @return int
 40    */
 41    int maxValueCount();
 42    /**
 43    * Default value to use when the user hasn't specified one or when they wish
 44    * to revert to a known-good state.
 45    *
 46    * @return Object
 47    */
 48    Object defaultValue();
 49    /**
 50    * Denotes whether the value is required before the rule can be executed.
 51    * Has no meaning for primitive types such as booleans, ints, etc.
 52    *
 53    * @return boolean
 54    */
 55    boolean isRequired();
 56    /**
 57    * Validation function that returns a diagnostic error message for a sample
 58    * property value. Returns null if the value is acceptable.
 59    *
 60    * @param value Object
 61    * @return String
 62    */
 63    String errorFor(Object value);
 64    /**
 65    * Denotes the relative order the property field should occupy if we are using
 66    * an auto-generated UI to display and edit values. If the value returned has
 67    * a non-zero fractional part then this is can be used to place adjacent fields
 68    * on the same row. Example:
 69    *
 70    * name -> 0.0
 71    * description 1.0
 72    * minValue -> 2.0
 73    * maxValue -> 2.1
 74    *
 75    * ..would have their fields placed like:
 76    *
 77    * name: [ ]
 78    * description: [ ]
 79    * minimum: [ ] maximum: [ ]
 80    *
 81    * @return float
 82    */
 83    float uiOrder();
 84    /**
 85    * If the property is multi-valued then return the separate values after
 86    * parsing the propertyString provided. If it isn't a multi-valued
 87    * property then the value will be returned within an array of size[1].
 88    *
 89    * @param propertyString String
 90    * @return Object
 91    * @throws IllegalArgumentException
 92    */
 93    Object valueFrom(String propertyString) throws IllegalArgumentException;
 94    /**
 95    * Formats the object onto a string suitable for storage within the property map.
 96    * @param value Object
 97    * @return String
 98    */
 99    String asDelimitedString(Object value);
 100   
 101    /**
 102    * Returns a set of choice tuples of available, returns null if none present.
 103    * @return Object[]
 104    */
 105    Object[][] choices();
 106   
 107    /**
 108    * A convenience method that returns an error string if the rule holds onto a
 109    * property value that has a problem. Returns null otherwise.
 110    *
 111    * @param rule Rule
 112    * @return String
 113    */
 114    String propertyErrorFor(Rule rule);
 115   
 116    /**
 117    * Return the character being used to delimit multiple property values within
 118    * a single string. You must ensure that this character does not appear within
 119    * any rule property values to avoid deserialization errors.
 120    *
 121    * @return char
 122    */
 123    char multiValueDelimiter();
 124   
 125    /**
 126    * If the datatype is a String then return the preferred number of rows to
 127    * allocate in the text widget, returns a value of one for all other types.
 128    * Useful for multi-line XPATH editors.
 129    *
 130    * @return int
 131    */
 132    int preferredRowCount();
 133    }