The IM defines for the 2.6 Constraint Class an Atomic Constraint and a Compound Constraint.
Each of them has different sets of usable properties and properties have different rules for their use - but they are not defined as subclasses of the Constraint Class.
As e.g. the Policy Class has the sub-classes of Set, Offer and Agreement (and possibly more) providing different sets of properties with different cardinalities and also the subclasses of the Rule Class have different sets of properties I suggest to define also for this context
- the Constraint Class with a shared set of properties (leftOperand, operator, rightOperand)
- Atomic Constraint Class as subclass, with a specific set of additional properties (rightOperandReference, dataType, unit, status)
- Compound Constraint Class as subclass, with a limitation of the use of the operands and specific set of applicable operator values (as listed in 2.6.2)
Note: the definition of the constraint property of the Rule Class does not require a change as it allows the Constraint Class (and its subclasses) as object.
The IM defines for the 2.6 Constraint Class an Atomic Constraint and a Compound Constraint.
Each of them has different sets of usable properties and properties have different rules for their use - but they are not defined as subclasses of the Constraint Class.
As e.g. the Policy Class has the sub-classes of Set, Offer and Agreement (and possibly more) providing different sets of properties with different cardinalities and also the subclasses of the Rule Class have different sets of properties I suggest to define also for this context
Note: the definition of the constraint property of the Rule Class does not require a change as it allows the Constraint Class (and its subclasses) as object.