aboutsummaryrefslogtreecommitdiffstats
path: root/Tests/MODELS2020-CaseStudies/case.study.pledge.queries/src/queries/NewOCLFileX.ocl
blob: 66ae728e833fe52c8c8cea00e0f0d64479ca420a (plain) (blame)
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
import 'file:/Users/Aren Babikian/git/VIATRA-Attributes/case.study.a.model/model/Taxation.ecore'

package Taxation

--context Income inv inv8:  
--if(not self.income_type.oclIsTypeOf(Employment_Income)) then
--self.details->forAll(d| d.distance = 0)
--else 
--self.details->forAll(d| d.distance >= 0.0 and d.distance <= 100)
--endif
--
--context Legal_Union_Record inv inv490:
--self.individual_A.oclIsKindOf(Tax_Payer) 
--
--context Legal_Union_Record inv inv491:
--self.individual_B->forAll(i | i.oclIsKindOf(Physical_Person) )
--
--context Legal_Union_Record inv inv492:
--self.individual_B->forAll(i | not i.oclIsTypeOf(Dependent) )
--
--context Legal_Union_Record inv inv493:
--self.individual_A <> self.individual_B
--
--context Tax_Payer inv inv13:
-- self.addresses->exists( hab_add:Address | hab_add.oclIsTypeOf(Habitual_Address) = true and hab_add.country=Country::ZZ) 
--implies
-- self.oclIsTypeOf(Resident_Tax_Payer) 
 
 context Income inv inv7: 
let val:Real =self.details->asOrderedSet()->first().distance in 
self.details->forAll(d: Income_Detail|d.distance = val)

--context External_Allowance inv inv15: 
--let child:Dependent = self.person in
--let h:Household = Household.allInstances()->select(children->includes(child))->asOrderedSet()->first() in
--let t1:Set(Physical_Person) = Set{h.parents.individual_A}->union(h.parents.individual_B)->select(oclIsKindOf(Tax_Payer)) in
--if(t1->size()=1) then
--self.reciver = t1->asOrderedSet()->first() 
--else 
--self.reciver = t1->asOrderedSet()->at(2) or self.reciver = t1->asOrderedSet()->at(1) 
--endif 



endpackage