Interface ParameterProperty


public interface ParameterProperty

Represents an expected property or 'trait' that the parameter should have, especially in terms of how a UI user should specify the parameter value. The user can define these properties in a ParameterTemplate, which then gets applied to an actual Parameter.

  • Method Details

    • filter

      static <T extends ParameterProperty> List<T> filter(Collection<ParameterProperty> properties, Class<T> clazz)
      Returns:
      the subset of properties that match the given class
    • getKeyword

      String getKeyword()
      Returns:
      the keyword used in the project.ini to define this property
    • getImplied

      List<ParameterProperty> getImplied()

      The presence of one property can imply other properties, e.g. the 'min' property implies that the parameter must be 'numeric'.

      Returns:
      any other properties that this particular property implies
    • implies

      default boolean implies(ParameterProperty other)
      Returns:
      true if this property implied that the other given property is also true
    • hasKeyValuePair

      default boolean hasKeyValuePair()
      Returns:
      true if this property is defined using a key-value pair, e.g. min: 0, false if just a single keyword, e.g. numeric.
    • withValue

      default ResultOrProblems<ParameterProperty> withValue(BindingContext context, Object value)

      Clones this ParameterProperty with the value part of a key-value pair. Only supported if hasKeyValuePair() is true.

    • withValue

      default ParameterProperty withValue(Object newValue)
    • getValueOr

      default Optional<?> getValueOr()
      Returns:
      the type of value associated with this property, if any. E.g. for a key value pair property, like min: 0, it'd return zero (wrapped in an Optional)
    • isCompatible

      boolean isCompatible(ParameterProperty other)
      Returns:
      true if another property is compatible with this one or not, e.g. 'min' and 'numeric' are compatible, but 'min' and 'bookmark' are not.
    • validate

      default List<Problem> validate(BindingContext context, Object bound)

      Optionally validates that the bound value for the parameter conforms to this property, e.g. for a min: 0 property it would return an error if -1 were entered