Typen von Constraints

Constraints wirken stets gleichzeitig. Es wird intern in 3 Arten von Constraints unterschieden:

Sprach-Constraints

Constraint, die die Sprachelemente per Definition miteinander verbinden.

  • Root-Produkt ist immer gewählt.
  • Subfeatures, Typ Mandatory: Parent <=> Sub (genau dann wenn)
  • Subfeatures, Typ Optional: Sub -> Parent (impliziert)
  • Group (typenabhängig OneOf, SomeOf, AllOf)
  • Guards (Attribute IfIn, IfOut)

Model-Constraints

Die im XML selbst definierten Constraints, die auf Feature und/oder Attribute wirken. Constraints können in Form Boolscher Ausdrücke und Arithmetischer Operatoren verschachtelt werden.

User-Constraints

Die vom Nutzer getroffenen Einzel-Entscheidungen.

  • Feature select oder delete
  • Attribute/Value select oder delete

isConsequence

Die Unterscheidung dieser Constraint Arten ist wichtig für das Verständnis von Konsequenzen (Checker ‘isConsequence’ in Json Rückgaben, siehe Produktmodell in JSON ).