Interface ConfigurationPropertyModel

  • All Superinterfaces:
    All Known Subinterfaces:
    All Known Implementing Classes:
    BasicConfigurationPropertyModel, BasicMutableConfigurationPropertyModel

    public interface ConfigurationPropertyModel
    extends, PropertyResolver
    The ConfigurationPropertyModel is a transferable (serializable) model of properties. The main role of the model is to track property inter-dependencies. That is, which properties are valid based on the values of other properties. Also, it tracks the allowed value for properties (assuming the values are restricted). For example, properties that reference extension point profiles.
    • Method Detail

      • getCurrentModelVersion

        long getCurrentModelVersion()
        Returns the current model version, incremented when the model is changed.
      • getModelProperties

        java.util.Set<Property<?>> getModelProperties()
        Returns properties that are in some way registered with the model. Any property in a PropertySet that is not in this Set is a custom property.
      • isModelProperty

        boolean isModelProperty​(Property<?> property)
        Returns true if this is a property that is contained in the Model Properties.
      • getApplicableProperties

        java.util.List<Property<?>> getApplicableProperties​(PropertySet config)
        Given the current config, returns the properties that should be displayed. There is no need to call isApplicable for each, as that would be true. The properties are returned in desired display order.
      • isApplicable

        boolean isApplicable​(PropertySet config,
                             Property<?> property)
        Returns whether a property is relevant given the current configuration.
      • getAllowedValues

        <T> java.util.Optional<java.util.Collection<T>> getAllowedValues​(Property<T> property)
        If the range of allowed properties is restricted, this will return the valid values. Otherwise it will return Optional.empty, in which case the editor should be built based on the property type.
      • isCustomizable

        boolean isCustomizable​(Property<?> property)
        Returns whether a property that has allowed values defined also allows custom values.
      • getAffectedProperties

        java.util.Set<Property<?>> getAffectedProperties​(Property<?> property)
        Called after editing the given property, this returns the props whose isRelevant/isEditable should be called. The result of those calls means that properties might be added or removed to the editable property list.
      • contains

        boolean contains​(Property<?> property)
        Returns whether this property is contained in the model at all. Does not indicate whether it would be applicable to the current config or not.