aboutsummaryrefslogtreecommitdiffstats
path: root/Tests/MODELS2020-CaseStudies/case.study.pledge.queries/bin/queries/NewOCLFileX.ocl
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/MODELS2020-CaseStudies/case.study.pledge.queries/bin/queries/NewOCLFileX.ocl')
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.queries/bin/queries/NewOCLFileX.ocl45
1 files changed, 45 insertions, 0 deletions
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.queries/bin/queries/NewOCLFileX.ocl b/Tests/MODELS2020-CaseStudies/case.study.pledge.queries/bin/queries/NewOCLFileX.ocl
new file mode 100644
index 00000000..66ae728e
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.queries/bin/queries/NewOCLFileX.ocl
@@ -0,0 +1,45 @@
1import 'file:/Users/Aren Babikian/git/VIATRA-Attributes/case.study.a.model/model/Taxation.ecore'
2
3package Taxation
4
5--context Income inv inv8:
6--if(not self.income_type.oclIsTypeOf(Employment_Income)) then
7--self.details->forAll(d| d.distance = 0)
8--else
9--self.details->forAll(d| d.distance >= 0.0 and d.distance <= 100)
10--endif
11--
12--context Legal_Union_Record inv inv490:
13--self.individual_A.oclIsKindOf(Tax_Payer)
14--
15--context Legal_Union_Record inv inv491:
16--self.individual_B->forAll(i | i.oclIsKindOf(Physical_Person) )
17--
18--context Legal_Union_Record inv inv492:
19--self.individual_B->forAll(i | not i.oclIsTypeOf(Dependent) )
20--
21--context Legal_Union_Record inv inv493:
22--self.individual_A <> self.individual_B
23--
24--context Tax_Payer inv inv13:
25-- self.addresses->exists( hab_add:Address | hab_add.oclIsTypeOf(Habitual_Address) = true and hab_add.country=Country::ZZ)
26--implies
27-- self.oclIsTypeOf(Resident_Tax_Payer)
28
29 context Income inv inv7:
30let val:Real =self.details->asOrderedSet()->first().distance in
31self.details->forAll(d: Income_Detail|d.distance = val)
32
33--context External_Allowance inv inv15:
34--let child:Dependent = self.person in
35--let h:Household = Household.allInstances()->select(children->includes(child))->asOrderedSet()->first() in
36--let t1:Set(Physical_Person) = Set{h.parents.individual_A}->union(h.parents.individual_B)->select(oclIsKindOf(Tax_Payer)) in
37--if(t1->size()=1) then
38--self.reciver = t1->asOrderedSet()->first()
39--else
40--self.reciver = t1->asOrderedSet()->at(2) or self.reciver = t1->asOrderedSet()->at(1)
41--endif
42
43
44
45endpackage \ No newline at end of file