Skip to content
nullsub edited this page Feb 22, 2017 · 28 revisions

A summary of all rules used in FRaMED for EditPolicies

Configuration based rules

Unused Configuration options:

      RML_FEATURE_MODEL, ROLE_TYPES, ROLE_STRUCTURE,
      DEPENDENT, ON_COMPARTMENTS, ON_RELATIONSHIPS,
      PARTHOOD_CONSTRAINTS,
      COMPARTMENT_TYPES, COMPARTMENT_PROPERTIES, COMPARTMENT_BEHAVIOR,
      PARTICIPANTS, DATA_TYPES

Options used for pallete-configuration:

      ROLE_CONSTRAINTS, ROLE_IMPLICATION, ROLE_PROHIBITION, ROLE_EQUIVALENCE, GROUP_CONSTRAINTS,
      RELATIONSHIP_CONSTRAINTS,

Todo - müssen ausgeblendet werden:

      OCCURRENCE_CONSTRAINTS, RELATIONSHIP_CARDINALITY, INTRA_RELATIONSHIP_CONSTRAINTS
Configuration Description EditPolicy CODE
PLAYABLE_BY_DEFINING_COMPARTMENT compartment darf zu sich selbst ein fulfillment machen p1 if(!PLAYABLE_BY_DEFINING_COMPARTMENT) {!(Fulfillment && Target==Source==Compartment)}
CONTAINS_COMPARTMENTS wenn man im step in view ist, dann dürfen compartments hinzugefügt werden p2 if(!CONTAINS_COMPARTMENTS) {!(StepIn && type==COMPARTMENT)}
COMPARTMENT_PROPERTIES, COMPARTMENT_BEHAVIOR wenn aktiviert, dann dürfen properties /operations darein gezogen werden p3_{props, behavior} if(!COMPARTMENT_{PROPERTIES, BEHAVIOR}) {!(type==Compartment && is_{prop, behavior})}
ROLE_PROPERTIES, ROLE_BEHAVIOR wenn deaktiviert, dann darf man keine Properties/behaviours auf ROLE_TYPES ziehen p4_{props, behavior} if(!ROLE_{PROPERTIES, BEHAVIOR}) {!(type==ROLE && is_{prop, behavior})}
RELATIONSHIPS nur wenn aktiviert dürfen RELATIONSHIPS erzeugt werden p5 if(!RELATIONSHIPS) {!(type==RELATIONSHIP)}
PLAYERS (NATURALS, ROLES, COMPARTMENTS, DATES) wenn nicht aktiviert, darf {N,R,C,D}-TYPE nicht source der Fulfillment sein p6 if(!(PLAYERS && NATURALS)) {!(type=Fulfillment && source == Naturals)}
INTER_RELATIONSHIP_CONSTRAINTS wenn nicht aktiviert, darf relationship-{implication, exclusion} nicht gezogen werden p7 if(!INTER_RELATIONSHIP_CONSTRAINTS) {!(type==implication OR type==exclusion)}
ROLE_INHERITANCE, DATA_TYPE_INHERITANCE, COMPARTMENT_INHERITANCE dürfen zum selben Typ inheritance anwenden (erst source prüfen, dass nicht unnötig ein pfeil erzeugt werden kann) p8_{DATA, COMPARTMENT} if(!{DATA_TYPE, COMPARTMENT, ROLE}_INHERITANCE) {!(Inheritance && Source == {DATA_TYPE, COMPARTMENT, ROLE})}

general rules

Description EditPolicy checked
Group may not be Target or Source of Fulfillment Relation r1 hardcoded in editor2 (no command called)
Targettype of Fulfillment is Compartment r2 check
No Roles can be added in StepOut r3 not testable with pallette entries
If COMPARTMENT not set, then only one Role can be added. r4 TODO
Inheritance is acyclic r5 TODO
Inheritance is irreflexiv r6 TODO
Source and Target have same type in Inheritance-Relation r7 TODO
For Relationship-Relation Source and Target must be Role-Type r8 check

Clone this wiki locally