Interface PropertySource

    • Method Detail

      • definePropertyDescriptor

        void definePropertyDescriptor​(PropertyDescriptor<?> propertyDescriptor)
                               throws java.lang.IllegalArgumentException
        Define a new property via a PropertyDescriptor.
        Parameters:
        propertyDescriptor - The property descriptor.
        Throws:
        java.lang.IllegalArgumentException - If there is already a property defined the same name.
      • getPropertyDescriptor

        PropertyDescriptor<?> getPropertyDescriptor​(java.lang.String name)
        Get the PropertyDescriptor for the given property name.
        Parameters:
        name - The name of the property.
        Returns:
        The PropertyDescriptor for the named property, null if there is no such property defined.
      • getPropertyDescriptors

        java.util.List<PropertyDescriptor<?>> getPropertyDescriptors()
        Get the PropertyDescriptors for all defined properties. The properties are returned sorted by UI order.
        Returns:
        The PropertyDescriptors in UI order.
      • getProperty

        <T> T getProperty​(PropertyDescriptor<T> propertyDescriptor)
        Get the typed value for the given property. Multi valued properties return immutable lists.
        Type Parameters:
        T - The underlying type of the property descriptor.
        Parameters:
        propertyDescriptor - The property descriptor.
        Returns:
        The property value.
      • setProperty

        <T> void setProperty​(PropertyDescriptor<T> propertyDescriptor,
                             T value)
        Set the property value specified (will be type-checked)
        Type Parameters:
        T - The underlying type of the property descriptor.
        Parameters:
        propertyDescriptor - The property descriptor.
        value - The value to set.
      • setProperty

        <V> void setProperty​(MultiValuePropertyDescriptor<V> propertyDescriptor,
                             V... values)
        Sets the value of a multi value property descriptor with a variable number of arguments.
        Type Parameters:
        V - The type of the values
        Parameters:
        propertyDescriptor - The property descriptor for which to add a value
        values - Values
      • getPropertiesByPropertyDescriptor

        java.util.Map<PropertyDescriptor<?>,java.lang.Object> getPropertiesByPropertyDescriptor()
        Returns all the current property values for the receiver or an immutable empty map if none are specified.
        Returns:
        all current property values or a empty map.
      • hasDescriptor

        boolean hasDescriptor​(PropertyDescriptor<?> descriptor)
        Returns whether this Rule has the specified PropertyDescriptor.
        Parameters:
        descriptor - The PropertyDescriptor for which to check.
        Returns:
        boolean true if the descriptor is present, false otherwise.
      • usesDefaultValues

        boolean usesDefaultValues()
        Returns whether this Rule uses default values for properties.
        Returns:
        boolean true if the properties all have default values, false otherwise.
      • useDefaultValueFor

        void useDefaultValueFor​(PropertyDescriptor<?> desc)
        Clears out any user-specified value for the property allowing it to use the default value in the descriptor.
        Parameters:
        desc - the property to clear out
      • ignoredProperties

        java.util.Set<PropertyDescriptor<?>> ignoredProperties()
        Return the properties that are effectively ignored due to the configuration of the rule and values held by other properties. This can be used to disable corresponding widgets in a UI.
        Returns:
        the properties that are ignored
      • dysfunctionReason

        java.lang.String dysfunctionReason()
        Returns a description of why the receiver may be dysfunctional. Usually due to missing property values or some kind of conflict between values. Returns null if the receiver is ok.
        Returns:
        String