Class AbstractPropertySource

  • All Implemented Interfaces:
    PropertySource
    Direct Known Subclasses:
    AbstractRenderer, AbstractRule

    public abstract class AbstractPropertySource
    extends java.lang.Object
    implements PropertySource
    Base class for objects which can be configured through properties. Rules and Reports are such objects.
    Author:
    Brian Remedios
    • Field Detail

      • propertyDescriptors

        protected java.util.List<PropertyDescriptor<?>> propertyDescriptors
        The list of known properties that can be configured.
      • propertyValuesByDescriptor

        protected java.util.Map<PropertyDescriptor<?>,​java.lang.Object> propertyValuesByDescriptor
        The values for each property.
    • Constructor Detail

      • AbstractPropertySource

        public AbstractPropertySource()
    • Method Detail

      • copyPropertyDescriptors

        protected java.util.List<PropertyDescriptor<?>> copyPropertyDescriptors()
        Creates a copied list of the property descriptors and returns it.
        Returns:
        a copy of the property descriptors.
      • copyPropertyValues

        protected java.util.Map<PropertyDescriptor<?>,​java.lang.Object> copyPropertyValues()
        Creates a copied map of the values of the properties and returns it.
        Returns:
        a copy of the values
      • ignoredProperties

        public java.util.Set<PropertyDescriptor<?>> ignoredProperties()
        Description copied from interface: PropertySource
        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.
        Specified by:
        ignoredProperties in interface PropertySource
        Returns:
        the properties that are ignored
      • getName

        public abstract java.lang.String getName()
        Gets the name of the property source. This is e.g. the rule name or the report name.
        Returns:
        the name
      • getPropertyDescriptor

        public PropertyDescriptor<?> getPropertyDescriptor​(java.lang.String name)
        Description copied from interface: PropertySource
        Get the PropertyDescriptor for the given property name.
        Specified by:
        getPropertyDescriptor in interface PropertySource
        Parameters:
        name - The name of the property.
        Returns:
        The PropertyDescriptor for the named property, null if there is no such property defined.
      • hasDescriptor

        public boolean hasDescriptor​(PropertyDescriptor<?> descriptor)
        Description copied from interface: PropertySource
        Returns whether this Rule has the specified PropertyDescriptor.
        Specified by:
        hasDescriptor in interface PropertySource
        Parameters:
        descriptor - The PropertyDescriptor for which to check.
        Returns:
        boolean true if the descriptor is present, false otherwise.
      • getPropertyDescriptors

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

        public <T> T getProperty​(PropertyDescriptor<T> propertyDescriptor)
        Description copied from interface: PropertySource
        Get the typed value for the given property. Multi valued properties return immutable lists.
        Specified by:
        getProperty in interface PropertySource
        Type Parameters:
        T - The underlying type of the property descriptor.
        Parameters:
        propertyDescriptor - The property descriptor.
        Returns:
        The property value.
      • setProperty

        public <T> void setProperty​(PropertyDescriptor<T> propertyDescriptor,
                                    T value)
        Description copied from interface: PropertySource
        Set the property value specified (will be type-checked)
        Specified by:
        setProperty in interface PropertySource
        Type Parameters:
        T - The underlying type of the property descriptor.
        Parameters:
        propertyDescriptor - The property descriptor.
        value - The value to set.
      • setProperty

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

        public java.util.Map<PropertyDescriptor<?>,​java.lang.Object> getPropertiesByPropertyDescriptor()
        Description copied from interface: PropertySource
        Returns all the current property values for the receiver or an immutable empty map if none are specified.
        Specified by:
        getPropertiesByPropertyDescriptor in interface PropertySource
        Returns:
        all current property values or a empty map.
      • usesDefaultValues

        public boolean usesDefaultValues()
        Description copied from interface: PropertySource
        Returns whether this Rule uses default values for properties.
        Specified by:
        usesDefaultValues in interface PropertySource
        Returns:
        boolean true if the properties all have default values, false otherwise.
      • useDefaultValueFor

        public void useDefaultValueFor​(PropertyDescriptor<?> desc)
        Description copied from interface: PropertySource
        Clears out any user-specified value for the property allowing it to use the default value in the descriptor.
        Specified by:
        useDefaultValueFor in interface PropertySource
        Parameters:
        desc - the property to clear out
      • dysfunctionReason

        public java.lang.String dysfunctionReason()
        Description copied from interface: PropertySource
        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.
        Specified by:
        dysfunctionReason in interface PropertySource
        Returns:
        String