muMLE/examples/ftg_pm_pt/pt/metamodels/mm_design.od

109 lines
2.7 KiB
Text

##################################################
pt_Event:Class {
abstract = True;
}
##################################################
pt_Activity:Class {
abstract = True;
} :Inheritance (pt_Activity -> pt_Event)
pt_StartActivity:Class {
# A start activity can only be related to a control in port
constraint = ```
correct_related = True
port = get_target(get_outgoing(this, "pt_RelatesTo")[0])
correct_related = port in [uid for _, uid in get_all_instances("pm_CtrlIn")]
correct_related
```;
} :Inheritance (pt_StartActivity -> pt_Activity)
pt_EndActivity:Class {
# A end activity can only be related to a control out port
constraint = ```
correct_related = True
port = get_target(get_outgoing(this, "pt_RelatesTo")[0])
correct_related = port in [uid for _, uid in get_all_instances("pm_CtrlOut")]
correct_related
```;
} :Inheritance (pt_EndActivity -> pt_Activity)
##################################################
pt_StartTrace:Class
:Inheritance (pt_StartTrace -> pt_Event)
pt_EndTrace:Class
:Inheritance (pt_EndTrace -> pt_Event)
##################################################
pt_Artefact:Class
:Inheritance (pt_Artefact -> pt_Event)
pt_Artefact_data:AttributeLink (pt_Artefact -> Bytes) {
name = "data";
optional = False;
}
##################################################
##################################################
pt_IsFollowedBy:Association (pt_Event -> pt_Event) {
source_upper_cardinality = 1;
target_upper_cardinality = 1;
}
##################################################
pt_RelatesTo:Association (pt_Activity -> pm_CtrlPort) {
source_upper_cardinality = 1;
target_lower_cardinality = 1;
target_upper_cardinality = 1;
}
pt_Consumes:Association (pt_Artefact -> pt_StartActivity) {
source_upper_cardinality = 1;
target_lower_cardinality = 1;
target_upper_cardinality = 1;
}
pt_Produces:Association (pt_EndActivity -> pt_Artefact) {
source_lower_cardinality = 1;
source_upper_cardinality = 1;
target_upper_cardinality = 1;
}
##################################################
pt_Starts:Association (pt_StartTrace -> pm_Model) {
source_upper_cardinality = 1;
target_lower_cardinality = 1;
target_upper_cardinality = 1;
}
pt_Ends:Association (pt_EndTrace -> pm_Model) {
source_upper_cardinality = 1;
target_lower_cardinality = 1;
target_upper_cardinality = 1;
}
##################################################
pt_PrevVersion:Association (pt_Artefact -> pt_Artefact) {
source_upper_cardinality = 1;
target_upper_cardinality = 1;
}
pt_BelongsTo:Association (pt_Artefact -> pm_Artefact) {
target_lower_cardinality = 1;
target_upper_cardinality = 1;
}
##################################################