Class FileProperty

    • Constructor Summary

      Constructors 
      Constructor Description
      FileProperty​(java.lang.String theName, java.lang.String theDescription, java.io.File theDefault, float theUIOrder)
      Constructor for file property.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void addAttributesTo​(java.util.Map<PropertyDescriptorField,​java.lang.String> attributes)
      Adds this property's attributes to the map.
      java.lang.String asDelimitedString​(T value)
      Formats the object onto a string suitable for storage within the property map.
      protected java.lang.String asString​(T value)
      Returns a string representation of the value, even if it's null.
      java.util.Map<PropertyDescriptorField,​java.lang.String> attributeValuesById()
      Returns a map representing all the property attributes of the receiver in string form.
      int compareTo​(PropertyDescriptor<?> otherProperty)  
      java.io.File createFrom​(java.lang.String propertyString)
      Parse a string and returns an instance of a value.
      protected java.lang.String defaultAsString()
      Returns a string representation of the default value.
      T defaultValue()
      Default value to use when the user hasn't specified one or when they wish to revert to a known-good state.
      java.lang.String description()
      Describes the property and the role it plays within the rule it is specified for.
      boolean equals​(java.lang.Object obj)  
      java.lang.String errorFor​(T value)
      Validation function that returns a diagnostic error message for a sample property value.
      int hashCode()  
      boolean isDefinedExternally()
      True if this descriptor was defined in the ruleset xml.
      boolean isMultiValue()
      Returns whether the property is multi-valued, i.e.
      java.lang.String name()
      The name of the property without spaces as it serves as the key into the property map.
      static FileProperty.FilePBuilder named​(java.lang.String name)  
      int preferredRowCount()
      If the datatype is a String then return the preferred number of rows to allocate in the text widget, returns a value of one for all other types.
      java.lang.String propertyErrorFor​(Rule rule)
      A convenience method that returns an error string if the rule holds onto a property value that has a problem.
      java.lang.String toString()  
      java.lang.Class<java.io.File> type()
      Denotes the value datatype.
      float uiOrder()
      Denotes the relative order the property field should occupy if we are using an auto-generated UI to display and edit property values.
      protected java.lang.String valueErrorFor​(T value)
      Checks the value for an error.
      T valueFrom​(java.lang.String valueString)
      Returns the value represented by this string.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.lang.Comparable

        compareTo
    • Constructor Detail

      • FileProperty

        public FileProperty​(java.lang.String theName,
                            java.lang.String theDescription,
                            java.io.File theDefault,
                            float theUIOrder)
        Constructor for file property.
        Parameters:
        theName - Name of the property
        theDescription - Description
        theDefault - Default value
        theUIOrder - UI order
    • Method Detail

      • type

        public java.lang.Class<java.io.File> type()
        Description copied from interface: PropertyDescriptor
        Denotes the value datatype. For multi value properties, this is not the List class but the list's component class.
        Returns:
        Class literal of the value type
      • createFrom

        public java.io.File createFrom​(java.lang.String propertyString)
        Parse a string and returns an instance of a value.
        Parameters:
        propertyString - String to parse
        Returns:
        An instance of a value
      • defaultValue

        public final T defaultValue()
        Description copied from interface: PropertyDescriptor
        Default value to use when the user hasn't specified one or when they wish to revert to a known-good state.
        Specified by:
        defaultValue in interface PropertyDescriptor<T>
        Returns:
        Object
      • isMultiValue

        public final boolean isMultiValue()
        Description copied from interface: PropertyDescriptor
        Returns whether the property is multi-valued, i.e. an array of strings,

        As unary property rule properties will return a value of one, you must use the get/setProperty accessors when working with the actual values. When working with multi-value properties then the get/setProperties accessors must be used.

        Specified by:
        isMultiValue in interface PropertyDescriptor<T>
        Returns:
        boolean
      • asDelimitedString

        public java.lang.String asDelimitedString​(T value)
        Description copied from interface: PropertyDescriptor
        Formats the object onto a string suitable for storage within the property map.
        Specified by:
        asDelimitedString in interface PropertyDescriptor<T>
        Parameters:
        value - Object
        Returns:
        String
      • asString

        protected java.lang.String asString​(T value)
        Returns a string representation of the value, even if it's null.
        Parameters:
        value - The value to describe
        Returns:
        A string representation of the value
      • propertyErrorFor

        public java.lang.String propertyErrorFor​(Rule rule)
        Description copied from interface: PropertyDescriptor
        A convenience method that returns an error string if the rule holds onto a property value that has a problem. Returns null otherwise.
        Specified by:
        propertyErrorFor in interface PropertyDescriptor<T>
        Parameters:
        rule - Rule
        Returns:
        String
      • errorFor

        public java.lang.String errorFor​(T value)
        Description copied from interface: PropertyDescriptor
        Validation function that returns a diagnostic error message for a sample property value. Returns null if the value is acceptable.
        Specified by:
        errorFor in interface PropertyDescriptor<T>
        Parameters:
        value - The value to check.
        Returns:
        A diagnostic message.
      • valueErrorFor

        protected java.lang.String valueErrorFor​(T value)
        Checks the value for an error.
        Parameters:
        value - Value to check
        Returns:
        A diagnostic error message, or null if there's no problem
      • defaultAsString

        protected final java.lang.String defaultAsString()
        Returns a string representation of the default value.
        Returns:
        A string representation of the default value.
      • valueFrom

        public final T valueFrom​(java.lang.String valueString)
                          throws java.lang.IllegalArgumentException
        Description copied from interface: PropertyDescriptor
        Returns the value represented by this string.
        Specified by:
        valueFrom in interface PropertyDescriptor<T>
        Parameters:
        valueString - The string to parse
        Returns:
        The value represented by the string
        Throws:
        java.lang.IllegalArgumentException - if the given string cannot be parsed
      • description

        public java.lang.String description()
        Description copied from interface: PropertyDescriptor
        Describes the property and the role it plays within the rule it is specified for. Could be used in a tooltip.
        Specified by:
        description in interface PropertyDescriptor<T>
        Returns:
        String
      • uiOrder

        public float uiOrder()
        Description copied from interface: PropertyDescriptor
        Denotes the relative order the property field should occupy if we are using an auto-generated UI to display and edit property values. If the value returned has a non-zero fractional part then this is can be used to place adjacent fields on the same row.

        Example:
        name -> 0.0 description 1.0 minValue -> 2.0 maxValue -> 2.1

        ..would have their fields placed like:
        name: [ ] description: [ ] minimum: [ ] maximum: [ ]
        Specified by:
        uiOrder in interface PropertyDescriptor<T>
        Returns:
        float
      • compareTo

        public final int compareTo​(PropertyDescriptor<?> otherProperty)
        Specified by:
        compareTo in interface java.lang.Comparable<T>
      • preferredRowCount

        public int preferredRowCount()
        Description copied from interface: PropertyDescriptor
        If the datatype is a String then return the preferred number of rows to allocate in the text widget, returns a value of one for all other types. Useful for multi-line XPATH editors.
        Specified by:
        preferredRowCount in interface PropertyDescriptor<T>
        Returns:
        int
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • name

        public java.lang.String name()
        Description copied from interface: PropertyDescriptor
        The name of the property without spaces as it serves as the key into the property map.
        Specified by:
        name in interface PropertyDescriptor<T>
        Returns:
        String
      • addAttributesTo

        protected void addAttributesTo​(java.util.Map<PropertyDescriptorField,​java.lang.String> attributes)
        Adds this property's attributes to the map. Subclasses can override this to add more PropertyDescriptorField.
        Parameters:
        attributes - The map to fill
      • isDefinedExternally

        public boolean isDefinedExternally()
        Description copied from interface: PropertyDescriptor
        True if this descriptor was defined in the ruleset xml. This precision is necessary for the RuleSetWriter to write out the property correctly: if it was defined externally, then its definition must be written out, otherwise only its value.
        Specified by:
        isDefinedExternally in interface PropertyDescriptor<T>
        Returns:
        True if the descriptor was defined in xml