Class StringMultiProperty

  • All Implemented Interfaces:
    java.lang.Comparable<PropertyDescriptor<?>>, MultiValuePropertyDescriptor<java.lang.String>, PropertyDescriptor<java.util.List<java.lang.String>>

    @Deprecated
    public final class StringMultiProperty
    extends java.lang.Object
    Deprecated.
    Use a PropertyDescriptor<List<String>>. A builder is available from PropertyFactory.stringListProperty(String). This class will be removed in 7.0.0.
    Defines a datatype that supports multiple String values. Note that all strings must be filtered by the delimiter character.
    Version:
    Refactored June 2017 (6.0.0)
    Author:
    Brian Remedios
    • Constructor Detail

      • StringMultiProperty

        @Deprecated
        public StringMultiProperty​(java.lang.String theName,
                                   java.lang.String theDescription,
                                   java.lang.String[] defaultValues,
                                   float theUIOrder,
                                   char delimiter)
        Constructor using an array of defaults.
        Parameters:
        theName - Name
        theDescription - Description
        defaultValues - Array of defaults
        theUIOrder - UI order
        delimiter - The delimiter to use
        Throws:
        java.lang.IllegalArgumentException - if a default value contains the delimiter
        java.lang.NullPointerException - if the defaults array is null
      • StringMultiProperty

        @Deprecated
        public StringMultiProperty​(java.lang.String theName,
                                   java.lang.String theDescription,
                                   java.util.List<java.lang.String> defaultValues,
                                   float theUIOrder,
                                   char delimiter)
        Constructor using a list of defaults.
        Parameters:
        theName - Name
        theDescription - Description
        defaultValues - List of defaults
        theUIOrder - UI order
        delimiter - The delimiter to useg
        Throws:
        java.lang.IllegalArgumentException - if a default value contains the delimiter
        java.lang.NullPointerException - if the defaults array is null
    • Method Detail

      • type

        public java.lang.Class<java.lang.String> type()
        Deprecated.
        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
      • valueFrom

        public java.util.List<java.lang.String> valueFrom​(java.lang.String valueString)
        Deprecated.
        Description copied from interface: PropertyDescriptor
        Returns the value represented by this string.
        Specified by:
        valueFrom in interface PropertyDescriptor<java.util.List<java.lang.String>>
        Parameters:
        valueString - The string to parse
        Returns:
        The value represented by the string
      • valueErrorFor

        protected java.lang.String valueErrorFor​(java.lang.String value)
        Deprecated.
        Checks a single value for a "missing value" error.
        Parameters:
        value - Value to check
        Returns:
        A descriptive String of the error or null if there was none
      • createFrom

        protected java.lang.String createFrom​(java.lang.String toParse)
        Deprecated.
        Parse a string and returns an instance of a single value (not a list).
        Parameters:
        toParse - String to parse
        Returns:
        An instance of a value
      • isMultiValue

        public final boolean isMultiValue()
        Deprecated.
        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<V>
        Returns:
        boolean
      • propertyErrorFor

        public java.lang.String propertyErrorFor​(Rule rule)
        Deprecated.
        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<V>
        Parameters:
        rule - Rule
        Returns:
        String
      • errorFor

        public java.lang.String errorFor​(java.util.List<V> values)
        Deprecated.
        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<V>
        Parameters:
        values - The value to check.
        Returns:
        A diagnostic message.
      • defaultAsString

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

        public java.util.List<V> defaultValue()
        Deprecated.
        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<V>
        Returns:
        Object
      • multiValueDelimiter

        public char multiValueDelimiter()
        Deprecated.
        Description copied from interface: MultiValuePropertyDescriptor
        Return the character being used to delimit multiple property values within a single string. You must ensure that this character does not appear within any rule property values to avoid deserialization errors.
        Specified by:
        multiValueDelimiter in interface MultiValuePropertyDescriptor<V>
        Returns:
        char
      • asString

        protected java.lang.String asString​(V value)
        Deprecated.
        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
      • asDelimitedString

        public final java.lang.String asDelimitedString​(java.util.List<V> values)
        Deprecated.
        Description copied from interface: PropertyDescriptor
        Formats the object onto a string suitable for storage within the property map.
        Specified by:
        asDelimitedString in interface PropertyDescriptor<V>
        Parameters:
        values - Object
        Returns:
        String
      • addAttributesTo

        protected void addAttributesTo​(java.util.Map<PropertyDescriptorField,​java.lang.String> attributes)
        Deprecated.
        Adds this property's attributes to the map. Subclasses can override this to add more PropertyDescriptorField.
        Parameters:
        attributes - The map to fill
      • 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.
        Specified by:
        uiOrder in interface PropertyDescriptor<T>
        Returns:
        The relative order compared to other properties of the same rule
      • 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
      • 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