Skip to content
nullsub edited this page May 17, 2017 · 28 revisions

A summary of all rules used in FRaMED for EditPolicies

Configuration based rules

EditPolicy-Model https://raw.githubusercontent.com/leondart/FRaMED/develop_branch/ORM/org.framed.orm.editPolicy.model/model/model%20class%20diagram.png

Options used for pallete-configuration:

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

Todo - needs to be hidden:

      OCCURRENCE_CONSTRAINTS, RELATIONSHIP_CARDINALITY, INTRA_RELATIONSHIP_CONSTRAINTS
Configuration Description EditPolicy CODE
PLAYABLE_BY_DEFINING_COMPARTMENT compartment may create a fulfillment itself p1 if(!PLAYABLE_BY_DEFINING_COMPARTMENT) {!(Fulfillment && Target==Source==Compartment)} checked
CONTAINS_COMPARTMENTS in step in, compartments may be addedd p2 if(!CONTAINS_COMPARTMENTS) {!(StepIn && type==COMPARTMENT)} done via pallette
COMPARTMENT_PROPERTIES, COMPARTMENT_BEHAVIOR if not active, no properties/operations can be added p3_{props, behavior} if(!COMPARTMENT_{PROPERTIES, BEHAVIOR}) {!(type==Compartment && is_{prop, behavior})} check
ROLE_PROPERTIES, ROLE_BEHAVIOR if not active, no properties/operations can be added to ROLE_TYPES p4_{props, behavior} if(!ROLE_{PROPERTIES, BEHAVIOR}) {!(type==ROLE && is_{prop, behavior})} done via pallette (and edit Policy)
RELATIONSHIPS if not active, no RELATIONSHIPS can be created p5 if(!RELATIONSHIPS) {!(type==RELATIONSHIP)} check
PLAYERS (NATURALS, ROLES, COMPARTMENTS, DATES) if not active, {N,R,C,D}-TYPE may not be source of Fulfillment p6_{n,r,c,d} if(!(PLAYERS && NATURALS)) {!(type=Fulfillment && source == Naturals)} checked
INTER_RELATIONSHIP_CONSTRAINTS if not active, relationship-{implication, exclusion} may not be created p7 if(!INTER_RELATIONSHIP_CONSTRAINTS) {!(type==implication OR type==exclusion)} done via pallette
ROLE_INHERITANCE, DATA_TYPE_INHERITANCE, COMPARTMENT_INHERITANCE if not active, types may not created inheritance p8_{DATA, COMPARTMENT} if(!{DATA_TYPE, COMPARTMENT, ROLE}_INHERITANCE) {!(Inheritance && Source == {DATA_TYPE, COMPARTMENT, ROLE})} checked

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 check
Inheritance is acyclic r5 check
Inheritance is irreflexiv r6 same as r5
Source and Target have same type in Inheritance-Relation r7 check
For Relationship-Relation Source and Target must be Role-Type r8 check

Clone this wiki locally