|
|||||||||||||||||||
| Source file | Conditionals | Statements | Methods | TOTAL | |||||||||||||||
| PropertyDescriptor.java | - | - | - | - |
|
||||||||||||||
| 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 | } |
|
||||||||||