-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathecorediagram.emf
61 lines (50 loc) · 1.01 KB
/
ecorediagram.emf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
@namespace(uri="families", prefix="families")
package families;
abstract class NamedElement {
attr String name;
}
class Family extends NamedElement {
attr String[*] address;
ref Pet[*] pets;
attr int numberOfChildren;
val Person[*] members;
attr String ~id;
attr boolean nuclear;
attr float averageAge;
readonly derived ref Doggy[+] dogs;
ref District#families district;
attr int[*] lotteryNumbers;
attr double averageAgePrecise;
}
class Pet extends NamedElement {
attr boolean male;
}
class Person extends NamedElement {
ref Person[*] friends;
ref Person[0..2] parents;
ref Person[0..4] allParents;
}
class Doggy extends Pet {
attr boolean loud;
attr DogBreed[1] breed;
ref District#dogs district;
}
enum DogBreed {
poodle = 1;
labrador = 2;
}
class District {
val Family[+]#district families;
val Doggy[+]#district dogs;
}
class Model {
val NamedElement[*] contents;
val NamedElement[*] contents2;
}
class Bike {
val Person rider;
ref Family owner;
}
class Band {
ref Person[3..*] members;
}