diff options
Diffstat (limited to 'Tests/MODELS2020-CaseStudies/case.study.familyTree.run/bin')
5 files changed, 55 insertions, 0 deletions
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/bin/.gitignore b/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/bin/.gitignore new file mode 100644 index 00000000..7050a7e3 --- /dev/null +++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/bin/.gitignore | |||
@@ -0,0 +1 @@ | |||
/queries/ | |||
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/bin/queries/.FamilyTreeConstraints.java._trace b/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/bin/queries/.FamilyTreeConstraints.java._trace new file mode 100644 index 00000000..b000501e --- /dev/null +++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/bin/queries/.FamilyTreeConstraints.java._trace | |||
Binary files differ | |||
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/bin/queries/.MemberIsItsOwnParent.java._trace b/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/bin/queries/.MemberIsItsOwnParent.java._trace new file mode 100644 index 00000000..aaf4d0c2 --- /dev/null +++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/bin/queries/.MemberIsItsOwnParent.java._trace | |||
Binary files differ | |||
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/bin/queries/.gitignore b/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/bin/queries/.gitignore new file mode 100644 index 00000000..19bc3cc8 --- /dev/null +++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/bin/queries/.gitignore | |||
@@ -0,0 +1,13 @@ | |||
1 | /.FamilyTreeConstraints.java._trace | ||
2 | /.MemberIsItsOwnParent.java._trace | ||
3 | /FamilyTreeConstraints.java | ||
4 | /MemberIsItsOwnParent.java | ||
5 | /.ParentTooYoung.java._trace | ||
6 | /.MemberHasNoParent.java._trace | ||
7 | /.MemberHasParent.java._trace | ||
8 | /.TwoMembersHaveNoParent.java._trace | ||
9 | /.NegativeAge.java._trace | ||
10 | /MemberHasParent.java | ||
11 | /NegativeAge.java | ||
12 | /ParentTooYoung.java | ||
13 | /TwoMembersHaveNoParent.java | ||
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/bin/queries/familyTreeConstraints.vql b/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/bin/queries/familyTreeConstraints.vql new file mode 100644 index 00000000..fdbac640 --- /dev/null +++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/bin/queries/familyTreeConstraints.vql | |||
@@ -0,0 +1,41 @@ | |||
1 | package queries | ||
2 | |||
3 | import "http://www.example.org/familytree" | ||
4 | |||
5 | @Constraint(message="memberIsItsOwnParent", severity="error", key={m}) | ||
6 | pattern memberIsItsOwnParent(m: Member) = { | ||
7 | FamilyTree.members(_, m); | ||
8 | Member.parents(m, p); | ||
9 | m == p; | ||
10 | } | ||
11 | |||
12 | @Constraint(message="twoMembersHaveNoParent", severity="error", key={m1, m2}) | ||
13 | pattern twoMembersHaveNoParent(m1:Member, m2:Member) = { | ||
14 | neg find memberHasParent(m1); | ||
15 | neg find memberHasParent(m2); | ||
16 | m1 != m2; | ||
17 | } | ||
18 | |||
19 | pattern memberHasParent(m: Member) = { | ||
20 | Member.parents(m, _); | ||
21 | } | ||
22 | |||
23 | @Constraint(message="negativeAge", severity="error",key={m}) | ||
24 | pattern negativeAge(m: Member) { | ||
25 | Member.age(m,mage); | ||
26 | check(mage<0); | ||
27 | } | ||
28 | |||
29 | @Constraint(message="parentTooYoung", severity="error", key={c, p}) | ||
30 | pattern parentTooYoung(c: Member, p: Member) = { | ||
31 | FamilyTree.members(_, c); | ||
32 | Member.parents(c, p); | ||
33 | Member.age(c, cAge); | ||
34 | Member.age(p, pAge); | ||
35 | check (pAge <= (cAge + 12)); | ||
36 | } | ||
37 | |||
38 | |||
39 | |||
40 | |||
41 | |||