aboutsummaryrefslogtreecommitdiffstats
path: root/Tests/MODELS2020-CaseStudies/case.study.pledge.model
diff options
context:
space:
mode:
authorLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2020-04-28 00:29:00 -0400
committerLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2020-04-28 00:29:00 -0400
commit68a0667e862f0714410aafbb499a95a03f5bee23 (patch)
tree34b7d690dae5b9dd8f188fc44802a02f8dd9a64a /Tests/MODELS2020-CaseStudies/case.study.pledge.model
parentrename Pledge Case Studies and add familyTree case study (diff)
downloadVIATRA-Generator-68a0667e862f0714410aafbb499a95a03f5bee23.tar.gz
VIATRA-Generator-68a0667e862f0714410aafbb499a95a03f5bee23.tar.zst
VIATRA-Generator-68a0667e862f0714410aafbb499a95a03f5bee23.zip
Able to run Pledge Case Study
Diffstat (limited to 'Tests/MODELS2020-CaseStudies/case.study.pledge.model')
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.model/.classpath2
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.model/META-INF/MANIFEST.MF5
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.model/model/Taxation.aird63
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.model/model/Taxation.ecore10
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.model/model/Taxation.genmodel7
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/Income.java71
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/Physical_Person.java13
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/Private_Insurance_and_Plan.java1
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/Resident_Tax_Payer.java1
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/Tax_Card.java48
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/TaxationPackage.java340
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/DependentImpl.java1
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/ExpenseImpl.java1
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/External_AllowanceImpl.java1
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/FromAgentImpl.java1
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/IncomeImpl.java170
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Income_DetailImpl.java1
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Income_TaxImpl.java1
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Income_Tax_CreditImpl.java1
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Legal_Union_RecordImpl.java1
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Physical_PersonImpl.java39
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Private_Insurance_and_PlanImpl.java1
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Resident_Tax_PayerImpl.java1
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Tax_CardImpl.java113
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Tax_PropertyImpl.java1
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Taxation.ecore1257
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/TaxationPackageImpl.java149
27 files changed, 99 insertions, 2201 deletions
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/.classpath b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/.classpath
index 4cc715d5..9cc36f38 100644
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/.classpath
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/.classpath
@@ -1,8 +1,8 @@
1<?xml version="1.0" encoding="UTF-8"?> 1<?xml version="1.0" encoding="UTF-8"?>
2<classpath> 2<classpath>
3 <classpathentry kind="src" path="src"/>
3 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/> 4 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
4 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> 5 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
5 <classpathentry kind="src" path="src"/>
6 <classpathentry kind="src" path="src-gen"/> 6 <classpathentry kind="src" path="src-gen"/>
7 <classpathentry kind="output" path="bin"/> 7 <classpathentry kind="output" path="bin"/>
8</classpath> 8</classpath>
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/META-INF/MANIFEST.MF b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/META-INF/MANIFEST.MF
index 5df271f3..4b5f5b2f 100644
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/META-INF/MANIFEST.MF
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/META-INF/MANIFEST.MF
@@ -15,9 +15,8 @@ Require-Bundle: org.eclipse.core.runtime,
15 org.eclipse.viatra.query.runtime, 15 org.eclipse.viatra.query.runtime,
16 org.eclipse.viatra.query.runtime.rete, 16 org.eclipse.viatra.query.runtime.rete,
17 org.eclipse.viatra.query.runtime.localsearch, 17 org.eclipse.viatra.query.runtime.localsearch,
18 org.eclipse.xtext.xbase.lib, 18 org.eclipse.xtext.xbase.lib
19 test;bundle-version="0.1.0"
20Import-Package: org.apache.log4j 19Import-Package: org.apache.log4j
21Automatic-Module-Name: case.study.a.model 20Automatic-Module-Name: case.study.pledge.model
22Bundle-ActivationPolicy: lazy 21Bundle-ActivationPolicy: lazy
23Bundle-RequiredExecutionEnvironment: JavaSE-1.8 22Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/model/Taxation.aird b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/model/Taxation.aird
index 6e583e0f..09539720 100644
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/model/Taxation.aird
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/model/Taxation.aird
@@ -2,10 +2,9 @@
2<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style"> 2<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style">
3 <viewpoint:DAnalysis uid="_XxmRwGDAEeq8BovXV4ESzw" selectedViews="_YbwCAGDAEeq8BovXV4ESzw _YcJDkGDAEeq8BovXV4ESzw _YcK4wGDAEeq8BovXV4ESzw _YdwNIGDAEeq8BovXV4ESzw" version="14.3.0.201909031200"> 3 <viewpoint:DAnalysis uid="_XxmRwGDAEeq8BovXV4ESzw" selectedViews="_YbwCAGDAEeq8BovXV4ESzw _YcJDkGDAEeq8BovXV4ESzw _YcK4wGDAEeq8BovXV4ESzw _YdwNIGDAEeq8BovXV4ESzw" version="14.3.0.201909031200">
4 <semanticResources>Taxation.ecore</semanticResources> 4 <semanticResources>Taxation.ecore</semanticResources>
5 <semanticResources>Taxation.genmodel</semanticResources>
6 <ownedViews xmi:type="viewpoint:DView" uid="_YbwCAGDAEeq8BovXV4ESzw"> 5 <ownedViews xmi:type="viewpoint:DView" uid="_YbwCAGDAEeq8BovXV4ESzw">
7 <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/> 6 <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/>
8 <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_ZFSuQGDAEeq8BovXV4ESzw" name="Taxation class diagram" repPath="#_ZDuoAGDAEeq8BovXV4ESzw" changeId="02ad4336-9a13-4a8a-8fbe-8fb518194552"> 7 <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_ZFSuQGDAEeq8BovXV4ESzw" name="Taxation class diagram" repPath="#_ZDuoAGDAEeq8BovXV4ESzw" changeId="ff33d3ca-d0f2-4f53-b58f-288212de0dfe">
9 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> 8 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
10 <target xmi:type="ecore:EPackage" href="Taxation.ecore#/"/> 9 <target xmi:type="ecore:EPackage" href="Taxation.ecore#/"/>
11 </ownedRepresentationDescriptors> 10 </ownedRepresentationDescriptors>
@@ -820,18 +819,6 @@
820 <styles xmi:type="notation:FontStyle" xmi:id="_acACgWDAEeq8BovXV4ESzw" fontName="Segoe UI" fontHeight="8" bold="true"/> 819 <styles xmi:type="notation:FontStyle" xmi:id="_acACgWDAEeq8BovXV4ESzw" fontName="Segoe UI" fontHeight="8" bold="true"/>
821 <layoutConstraint xmi:type="notation:Location" xmi:id="_acACgmDAEeq8BovXV4ESzw"/> 820 <layoutConstraint xmi:type="notation:Location" xmi:id="_acACgmDAEeq8BovXV4ESzw"/>
822 </children> 821 </children>
823 <children xmi:type="notation:Node" xmi:id="_acApkGDAEeq8BovXV4ESzw" type="3010" element="_aPURYWDAEeq8BovXV4ESzw">
824 <styles xmi:type="notation:FontStyle" xmi:id="_acApkWDAEeq8BovXV4ESzw" fontName="Segoe UI" fontHeight="8" bold="true"/>
825 <layoutConstraint xmi:type="notation:Location" xmi:id="_acApkmDAEeq8BovXV4ESzw"/>
826 </children>
827 <children xmi:type="notation:Node" xmi:id="_acBQoGDAEeq8BovXV4ESzw" type="3010" element="_aPVfgGDAEeq8BovXV4ESzw">
828 <styles xmi:type="notation:FontStyle" xmi:id="_acBQoWDAEeq8BovXV4ESzw" fontName="Segoe UI" fontHeight="8" bold="true"/>
829 <layoutConstraint xmi:type="notation:Location" xmi:id="_acBQomDAEeq8BovXV4ESzw"/>
830 </children>
831 <children xmi:type="notation:Node" xmi:id="_acBQo2DAEeq8BovXV4ESzw" type="3010" element="_aPVfgmDAEeq8BovXV4ESzw">
832 <styles xmi:type="notation:FontStyle" xmi:id="_acBQpGDAEeq8BovXV4ESzw" fontName="Segoe UI" fontHeight="8" bold="true"/>
833 <layoutConstraint xmi:type="notation:Location" xmi:id="_acBQpWDAEeq8BovXV4ESzw"/>
834 </children>
835 <children xmi:type="notation:Node" xmi:id="_acB3sGDAEeq8BovXV4ESzw" type="3010" element="_aPWGkWDAEeq8BovXV4ESzw"> 822 <children xmi:type="notation:Node" xmi:id="_acB3sGDAEeq8BovXV4ESzw" type="3010" element="_aPWGkWDAEeq8BovXV4ESzw">
836 <styles xmi:type="notation:FontStyle" xmi:id="_acB3sWDAEeq8BovXV4ESzw" fontName="Segoe UI" fontHeight="8" bold="true"/> 823 <styles xmi:type="notation:FontStyle" xmi:id="_acB3sWDAEeq8BovXV4ESzw" fontName="Segoe UI" fontHeight="8" bold="true"/>
837 <layoutConstraint xmi:type="notation:Location" xmi:id="_acB3smDAEeq8BovXV4ESzw"/> 824 <layoutConstraint xmi:type="notation:Location" xmi:id="_acB3smDAEeq8BovXV4ESzw"/>
@@ -878,14 +865,6 @@
878 <styles xmi:type="notation:FontStyle" xmi:id="_acE7BGDAEeq8BovXV4ESzw" fontName="Segoe UI" fontHeight="8" bold="true"/> 865 <styles xmi:type="notation:FontStyle" xmi:id="_acE7BGDAEeq8BovXV4ESzw" fontName="Segoe UI" fontHeight="8" bold="true"/>
879 <layoutConstraint xmi:type="notation:Location" xmi:id="_acE7BWDAEeq8BovXV4ESzw"/> 866 <layoutConstraint xmi:type="notation:Location" xmi:id="_acE7BWDAEeq8BovXV4ESzw"/>
880 </children> 867 </children>
881 <children xmi:type="notation:Node" xmi:id="_acFiEGDAEeq8BovXV4ESzw" type="3010" element="_aUAkIGDAEeq8BovXV4ESzw">
882 <styles xmi:type="notation:FontStyle" xmi:id="_acFiEWDAEeq8BovXV4ESzw" fontName="Segoe UI" fontHeight="8" bold="true"/>
883 <layoutConstraint xmi:type="notation:Location" xmi:id="_acFiEmDAEeq8BovXV4ESzw"/>
884 </children>
885 <children xmi:type="notation:Node" xmi:id="_acFiE2DAEeq8BovXV4ESzw" type="3010" element="_aUBLMGDAEeq8BovXV4ESzw">
886 <styles xmi:type="notation:FontStyle" xmi:id="_acFiFGDAEeq8BovXV4ESzw" fontName="Segoe UI" fontHeight="8" bold="true"/>
887 <layoutConstraint xmi:type="notation:Location" xmi:id="_acFiFWDAEeq8BovXV4ESzw"/>
888 </children>
889 <children xmi:type="notation:Node" xmi:id="_acGJIGDAEeq8BovXV4ESzw" type="3010" element="_aUByQGDAEeq8BovXV4ESzw"> 868 <children xmi:type="notation:Node" xmi:id="_acGJIGDAEeq8BovXV4ESzw" type="3010" element="_aUByQGDAEeq8BovXV4ESzw">
890 <styles xmi:type="notation:FontStyle" xmi:id="_acGJIWDAEeq8BovXV4ESzw" fontName="Segoe UI" fontHeight="8" bold="true"/> 869 <styles xmi:type="notation:FontStyle" xmi:id="_acGJIWDAEeq8BovXV4ESzw" fontName="Segoe UI" fontHeight="8" bold="true"/>
891 <layoutConstraint xmi:type="notation:Location" xmi:id="_acGJImDAEeq8BovXV4ESzw"/> 870 <layoutConstraint xmi:type="notation:Location" xmi:id="_acGJImDAEeq8BovXV4ESzw"/>
@@ -3891,30 +3870,6 @@
3891 </ownedStyle> 3870 </ownedStyle>
3892 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> 3871 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
3893 </ownedElements> 3872 </ownedElements>
3894 <ownedElements xmi:type="diagram:DNodeListElement" uid="_aPURYWDAEeq8BovXV4ESzw" name="start_date_within_taxation_year : EDate" tooltipText="">
3895 <target xmi:type="ecore:EAttribute" href="Taxation.ecore#//Income/start_date_within_taxation_year"/>
3896 <semanticElements xmi:type="ecore:EAttribute" href="Taxation.ecore#//Income/start_date_within_taxation_year"/>
3897 <ownedStyle xmi:type="diagram:BundledImage" uid="_aPU4cGDAEeq8BovXV4ESzw" labelAlignment="LEFT" description="_aLikoGDAEeq8BovXV4ESzw">
3898 <labelFormat>bold</labelFormat>
3899 </ownedStyle>
3900 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
3901 </ownedElements>
3902 <ownedElements xmi:type="diagram:DNodeListElement" uid="_aPVfgGDAEeq8BovXV4ESzw" name="start_date_of_contract : EDate" tooltipText="">
3903 <target xmi:type="ecore:EAttribute" href="Taxation.ecore#//Income/start_date_of_contract"/>
3904 <semanticElements xmi:type="ecore:EAttribute" href="Taxation.ecore#//Income/start_date_of_contract"/>
3905 <ownedStyle xmi:type="diagram:BundledImage" uid="_aPVfgWDAEeq8BovXV4ESzw" labelAlignment="LEFT" description="_aLikoGDAEeq8BovXV4ESzw">
3906 <labelFormat>bold</labelFormat>
3907 </ownedStyle>
3908 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
3909 </ownedElements>
3910 <ownedElements xmi:type="diagram:DNodeListElement" uid="_aPVfgmDAEeq8BovXV4ESzw" name="end_date_within_taxation_year : EDate" tooltipText="">
3911 <target xmi:type="ecore:EAttribute" href="Taxation.ecore#//Income/end_date_within_taxation_year"/>
3912 <semanticElements xmi:type="ecore:EAttribute" href="Taxation.ecore#//Income/end_date_within_taxation_year"/>
3913 <ownedStyle xmi:type="diagram:BundledImage" uid="_aPWGkGDAEeq8BovXV4ESzw" labelAlignment="LEFT" description="_aLikoGDAEeq8BovXV4ESzw">
3914 <labelFormat>bold</labelFormat>
3915 </ownedStyle>
3916 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
3917 </ownedElements>
3918 <ownedElements xmi:type="diagram:DNodeListElement" uid="_aPWGkWDAEeq8BovXV4ESzw" name="tax_liability : EDouble = 0.0" tooltipText=""> 3873 <ownedElements xmi:type="diagram:DNodeListElement" uid="_aPWGkWDAEeq8BovXV4ESzw" name="tax_liability : EDouble = 0.0" tooltipText="">
3919 <target xmi:type="ecore:EAttribute" href="Taxation.ecore#//Income/tax_liability"/> 3874 <target xmi:type="ecore:EAttribute" href="Taxation.ecore#//Income/tax_liability"/>
3920 <semanticElements xmi:type="ecore:EAttribute" href="Taxation.ecore#//Income/tax_liability"/> 3875 <semanticElements xmi:type="ecore:EAttribute" href="Taxation.ecore#//Income/tax_liability"/>
@@ -3988,22 +3943,6 @@
3988 </ownedStyle> 3943 </ownedStyle>
3989 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> 3944 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
3990 </ownedElements> 3945 </ownedElements>
3991 <ownedElements xmi:type="diagram:DNodeListElement" uid="_aUAkIGDAEeq8BovXV4ESzw" name="valid_from_date : EDate" tooltipText="">
3992 <target xmi:type="ecore:EAttribute" href="Taxation.ecore#//Tax_Card/valid_from_date"/>
3993 <semanticElements xmi:type="ecore:EAttribute" href="Taxation.ecore#//Tax_Card/valid_from_date"/>
3994 <ownedStyle xmi:type="diagram:BundledImage" uid="_aUAkIWDAEeq8BovXV4ESzw" labelAlignment="LEFT" description="_aLikoGDAEeq8BovXV4ESzw">
3995 <labelFormat>bold</labelFormat>
3996 </ownedStyle>
3997 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
3998 </ownedElements>
3999 <ownedElements xmi:type="diagram:DNodeListElement" uid="_aUBLMGDAEeq8BovXV4ESzw" name="valid_until_date : EDate" tooltipText="">
4000 <target xmi:type="ecore:EAttribute" href="Taxation.ecore#//Tax_Card/valid_until_date"/>
4001 <semanticElements xmi:type="ecore:EAttribute" href="Taxation.ecore#//Tax_Card/valid_until_date"/>
4002 <ownedStyle xmi:type="diagram:BundledImage" uid="_aUBLMWDAEeq8BovXV4ESzw" labelAlignment="LEFT" description="_aLikoGDAEeq8BovXV4ESzw">
4003 <labelFormat>bold</labelFormat>
4004 </ownedStyle>
4005 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
4006 </ownedElements>
4007 <ownedElements xmi:type="diagram:DNodeListElement" uid="_aUByQGDAEeq8BovXV4ESzw" name="percentage_of_witholding : EDouble = 0.0" tooltipText=""> 3946 <ownedElements xmi:type="diagram:DNodeListElement" uid="_aUByQGDAEeq8BovXV4ESzw" name="percentage_of_witholding : EDouble = 0.0" tooltipText="">
4008 <target xmi:type="ecore:EAttribute" href="Taxation.ecore#//Tax_Card/percentage_of_witholding"/> 3947 <target xmi:type="ecore:EAttribute" href="Taxation.ecore#//Tax_Card/percentage_of_witholding"/>
4009 <semanticElements xmi:type="ecore:EAttribute" href="Taxation.ecore#//Tax_Card/percentage_of_witholding"/> 3948 <semanticElements xmi:type="ecore:EAttribute" href="Taxation.ecore#//Tax_Card/percentage_of_witholding"/>
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/model/Taxation.ecore b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/model/Taxation.ecore
index a1b9acd5..cfed4729 100644
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/model/Taxation.ecore
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/model/Taxation.ecore
@@ -335,12 +335,6 @@
335 </eStructuralFeatures> 335 </eStructuralFeatures>
336 <eStructuralFeatures xsi:type="ecore:EReference" name="income_type" lowerBound="1" 336 <eStructuralFeatures xsi:type="ecore:EReference" name="income_type" lowerBound="1"
337 eType="#//Income_Type" containment="true" eOpposite="#//Income_Type/income"/> 337 eType="#//Income_Type" containment="true" eOpposite="#//Income_Type/income"/>
338 <eStructuralFeatures xsi:type="ecore:EAttribute" name="start_date_within_taxation_year"
339 ordered="false" unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"/>
340 <eStructuralFeatures xsi:type="ecore:EAttribute" name="start_date_of_contract"
341 ordered="false" unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"/>
342 <eStructuralFeatures xsi:type="ecore:EAttribute" name="end_date_within_taxation_year"
343 ordered="false" unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"/>
344 <eStructuralFeatures xsi:type="ecore:EReference" name="tax_card" eType="#//Tax_Card" 338 <eStructuralFeatures xsi:type="ecore:EReference" name="tax_card" eType="#//Tax_Card"
345 containment="true" eOpposite="#//Tax_Card/income"/> 339 containment="true" eOpposite="#//Tax_Card/income"/>
346 <eStructuralFeatures xsi:type="ecore:EAttribute" name="tax_liability" lowerBound="1" 340 <eStructuralFeatures xsi:type="ecore:EAttribute" name="tax_liability" lowerBound="1"
@@ -378,10 +372,6 @@
378 </eStructuralFeatures> 372 </eStructuralFeatures>
379 <eStructuralFeatures xsi:type="ecore:EAttribute" name="tax_office" lowerBound="1" 373 <eStructuralFeatures xsi:type="ecore:EAttribute" name="tax_office" lowerBound="1"
380 eType="#//Tax_Office"/> 374 eType="#//Tax_Office"/>
381 <eStructuralFeatures xsi:type="ecore:EAttribute" name="valid_from_date" ordered="false"
382 unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"/>
383 <eStructuralFeatures xsi:type="ecore:EAttribute" name="valid_until_date" ordered="false"
384 unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"/>
385 <eStructuralFeatures xsi:type="ecore:EAttribute" name="percentage_of_witholding" 375 <eStructuralFeatures xsi:type="ecore:EAttribute" name="percentage_of_witholding"
386 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/> 376 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
387 <eStructuralFeatures xsi:type="ecore:EAttribute" name="tax_payers_name_surname" 377 <eStructuralFeatures xsi:type="ecore:EAttribute" name="tax_payers_name_surname"
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/model/Taxation.genmodel b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/model/Taxation.genmodel
index 0b8ab072..1a18d8b6 100644
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/model/Taxation.genmodel
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/model/Taxation.genmodel
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8"?> 1<?xml version="1.0" encoding="UTF-8"?>
2<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" 2<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
3 xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/case.study.a.model/src" modelPluginID="case.study.a.model" 3 xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/case.study.pledge.model/src" modelPluginID="case.study.pledge.model"
4 modelName="Taxation" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" 4 modelName="Taxation" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
5 importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" copyrightFields="false" 5 importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" copyrightFields="false"
6 operationReflection="true" importOrganizing="true"> 6 operationReflection="true" importOrganizing="true">
@@ -230,9 +230,6 @@
230 <genClasses image="false" ecoreClass="Taxation.ecore#//Income"> 230 <genClasses image="false" ecoreClass="Taxation.ecore#//Income">
231 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Taxation.ecore#//Income/income_amount"/> 231 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Taxation.ecore#//Income/income_amount"/>
232 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Taxation.ecore#//Income/income_type"/> 232 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Taxation.ecore#//Income/income_type"/>
233 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Taxation.ecore#//Income/start_date_within_taxation_year"/>
234 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Taxation.ecore#//Income/start_date_of_contract"/>
235 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Taxation.ecore#//Income/end_date_within_taxation_year"/>
236 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Taxation.ecore#//Income/tax_card"/> 233 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Taxation.ecore#//Income/tax_card"/>
237 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Taxation.ecore#//Income/tax_liability"/> 234 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Taxation.ecore#//Income/tax_liability"/>
238 <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference Taxation.ecore#//Income/taxPayer"/> 235 <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference Taxation.ecore#//Income/taxPayer"/>
@@ -249,8 +246,6 @@
249 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Taxation.ecore#//Tax_Card/card_identifier"/> 246 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Taxation.ecore#//Tax_Card/card_identifier"/>
250 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Taxation.ecore#//Tax_Card/tax_card_type"/> 247 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Taxation.ecore#//Tax_Card/tax_card_type"/>
251 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Taxation.ecore#//Tax_Card/tax_office"/> 248 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Taxation.ecore#//Tax_Card/tax_office"/>
252 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Taxation.ecore#//Tax_Card/valid_from_date"/>
253 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Taxation.ecore#//Tax_Card/valid_until_date"/>
254 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Taxation.ecore#//Tax_Card/percentage_of_witholding"/> 249 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Taxation.ecore#//Tax_Card/percentage_of_witholding"/>
255 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Taxation.ecore#//Tax_Card/tax_payers_name_surname"/> 250 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Taxation.ecore#//Tax_Card/tax_payers_name_surname"/>
256 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Taxation.ecore#//Tax_Card/tax_payers_partner_name_surname"/> 251 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Taxation.ecore#//Tax_Card/tax_payers_partner_name_surname"/>
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/Income.java b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/Income.java
index 3e68e1ac..2f3dcfd4 100644
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/Income.java
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/Income.java
@@ -2,8 +2,6 @@
2 */ 2 */
3package Taxation; 3package Taxation;
4 4
5import java.util.Date;
6
7import org.eclipse.emf.common.util.EList; 5import org.eclipse.emf.common.util.EList;
8 6
9import org.eclipse.emf.ecore.EObject; 7import org.eclipse.emf.ecore.EObject;
@@ -19,9 +17,6 @@ import org.eclipse.emf.ecore.EObject;
19 * <ul> 17 * <ul>
20 * <li>{@link Taxation.Income#getIncome_amount <em>Income amount</em>}</li> 18 * <li>{@link Taxation.Income#getIncome_amount <em>Income amount</em>}</li>
21 * <li>{@link Taxation.Income#getIncome_type <em>Income type</em>}</li> 19 * <li>{@link Taxation.Income#getIncome_type <em>Income type</em>}</li>
22 * <li>{@link Taxation.Income#getStart_date_within_taxation_year <em>Start date within taxation year</em>}</li>
23 * <li>{@link Taxation.Income#getStart_date_of_contract <em>Start date of contract</em>}</li>
24 * <li>{@link Taxation.Income#getEnd_date_within_taxation_year <em>End date within taxation year</em>}</li>
25 * <li>{@link Taxation.Income#getTax_card <em>Tax card</em>}</li> 20 * <li>{@link Taxation.Income#getTax_card <em>Tax card</em>}</li>
26 * <li>{@link Taxation.Income#getTax_liability <em>Tax liability</em>}</li> 21 * <li>{@link Taxation.Income#getTax_liability <em>Tax liability</em>}</li>
27 * <li>{@link Taxation.Income#getTaxPayer <em>Tax Payer</em>}</li> 22 * <li>{@link Taxation.Income#getTaxPayer <em>Tax Payer</em>}</li>
@@ -83,72 +78,6 @@ public interface Income extends EObject {
83 void setIncome_type(Income_Type value); 78 void setIncome_type(Income_Type value);
84 79
85 /** 80 /**
86 * Returns the value of the '<em><b>Start date within taxation year</b></em>' attribute.
87 * <!-- begin-user-doc -->
88 * <!-- end-user-doc -->
89 * @return the value of the '<em>Start date within taxation year</em>' attribute.
90 * @see #setStart_date_within_taxation_year(Date)
91 * @see Taxation.TaxationPackage#getIncome_Start_date_within_taxation_year()
92 * @model unique="false" required="true" ordered="false"
93 * @generated
94 */
95 Date getStart_date_within_taxation_year();
96
97 /**
98 * Sets the value of the '{@link Taxation.Income#getStart_date_within_taxation_year <em>Start date within taxation year</em>}' attribute.
99 * <!-- begin-user-doc -->
100 * <!-- end-user-doc -->
101 * @param value the new value of the '<em>Start date within taxation year</em>' attribute.
102 * @see #getStart_date_within_taxation_year()
103 * @generated
104 */
105 void setStart_date_within_taxation_year(Date value);
106
107 /**
108 * Returns the value of the '<em><b>Start date of contract</b></em>' attribute.
109 * <!-- begin-user-doc -->
110 * <!-- end-user-doc -->
111 * @return the value of the '<em>Start date of contract</em>' attribute.
112 * @see #setStart_date_of_contract(Date)
113 * @see Taxation.TaxationPackage#getIncome_Start_date_of_contract()
114 * @model unique="false" required="true" ordered="false"
115 * @generated
116 */
117 Date getStart_date_of_contract();
118
119 /**
120 * Sets the value of the '{@link Taxation.Income#getStart_date_of_contract <em>Start date of contract</em>}' attribute.
121 * <!-- begin-user-doc -->
122 * <!-- end-user-doc -->
123 * @param value the new value of the '<em>Start date of contract</em>' attribute.
124 * @see #getStart_date_of_contract()
125 * @generated
126 */
127 void setStart_date_of_contract(Date value);
128
129 /**
130 * Returns the value of the '<em><b>End date within taxation year</b></em>' attribute.
131 * <!-- begin-user-doc -->
132 * <!-- end-user-doc -->
133 * @return the value of the '<em>End date within taxation year</em>' attribute.
134 * @see #setEnd_date_within_taxation_year(Date)
135 * @see Taxation.TaxationPackage#getIncome_End_date_within_taxation_year()
136 * @model unique="false" required="true" ordered="false"
137 * @generated
138 */
139 Date getEnd_date_within_taxation_year();
140
141 /**
142 * Sets the value of the '{@link Taxation.Income#getEnd_date_within_taxation_year <em>End date within taxation year</em>}' attribute.
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @param value the new value of the '<em>End date within taxation year</em>' attribute.
146 * @see #getEnd_date_within_taxation_year()
147 * @generated
148 */
149 void setEnd_date_within_taxation_year(Date value);
150
151 /**
152 * Returns the value of the '<em><b>Tax card</b></em>' containment reference. 81 * Returns the value of the '<em><b>Tax card</b></em>' containment reference.
153 * It is bidirectional and its opposite is '{@link Taxation.Tax_Card#getIncome <em>Income</em>}'. 82 * It is bidirectional and its opposite is '{@link Taxation.Tax_Card#getIncome <em>Income</em>}'.
154 * <!-- begin-user-doc --> 83 * <!-- begin-user-doc -->
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/Physical_Person.java b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/Physical_Person.java
index 02144134..b2f40b46 100644
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/Physical_Person.java
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/Physical_Person.java
@@ -26,7 +26,6 @@ import org.eclipse.emf.ecore.EObject;
26 * <li>{@link Taxation.Physical_Person#getBirth_day <em>Birth day</em>}</li> 26 * <li>{@link Taxation.Physical_Person#getBirth_day <em>Birth day</em>}</li>
27 * <li>{@link Taxation.Physical_Person#getExpenses <em>Expenses</em>}</li> 27 * <li>{@link Taxation.Physical_Person#getExpenses <em>Expenses</em>}</li>
28 * <li>{@link Taxation.Physical_Person#isIs_widower <em>Is widower</em>}</li> 28 * <li>{@link Taxation.Physical_Person#isIs_widower <em>Is widower</em>}</li>
29 * <li>{@link Taxation.Physical_Person#getOwns_Address <em>Owns Address</em>}</li>
30 * </ul> 29 * </ul>
31 * 30 *
32 * @see Taxation.TaxationPackage#getPhysical_Person() 31 * @see Taxation.TaxationPackage#getPhysical_Person()
@@ -263,16 +262,4 @@ public interface Physical_Person extends EObject {
263 */ 262 */
264 void setIs_widower(boolean value); 263 void setIs_widower(boolean value);
265 264
266 /**
267 * Returns the value of the '<em><b>Owns Address</b></em>' containment reference list.
268 * The list contents are of type {@link Taxation.Address}.
269 * <!-- begin-user-doc -->
270 * <!-- end-user-doc -->
271 * @return the value of the '<em>Owns Address</em>' containment reference list.
272 * @see Taxation.TaxationPackage#getPhysical_Person_Owns_Address()
273 * @model containment="true"
274 * @generated
275 */
276 EList<Address> getOwns_Address();
277
278} // Physical_Person 265} // Physical_Person
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/Private_Insurance_and_Plan.java b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/Private_Insurance_and_Plan.java
index 789099c5..5cd6e8f0 100644
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/Private_Insurance_and_Plan.java
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/Private_Insurance_and_Plan.java
@@ -2,6 +2,7 @@
2 */ 2 */
3package Taxation; 3package Taxation;
4 4
5
5/** 6/**
6 * <!-- begin-user-doc --> 7 * <!-- begin-user-doc -->
7 * A representation of the model object '<em><b>Private Insurance and Plan</b></em>'. 8 * A representation of the model object '<em><b>Private Insurance and Plan</b></em>'.
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/Resident_Tax_Payer.java b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/Resident_Tax_Payer.java
index 6f529c32..1dedc64a 100644
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/Resident_Tax_Payer.java
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/Resident_Tax_Payer.java
@@ -14,5 +14,4 @@ package Taxation;
14 * @generated 14 * @generated
15 */ 15 */
16public interface Resident_Tax_Payer extends Tax_Payer { 16public interface Resident_Tax_Payer extends Tax_Payer {
17
18} // Resident_Tax_Payer 17} // Resident_Tax_Payer
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/Tax_Card.java b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/Tax_Card.java
index 8bb5f622..bcfc0c75 100644
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/Tax_Card.java
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/Tax_Card.java
@@ -2,8 +2,6 @@
2 */ 2 */
3package Taxation; 3package Taxation;
4 4
5import java.util.Date;
6
7import org.eclipse.emf.common.util.EList; 5import org.eclipse.emf.common.util.EList;
8 6
9import org.eclipse.emf.ecore.EObject; 7import org.eclipse.emf.ecore.EObject;
@@ -20,8 +18,6 @@ import org.eclipse.emf.ecore.EObject;
20 * <li>{@link Taxation.Tax_Card#getCard_identifier <em>Card identifier</em>}</li> 18 * <li>{@link Taxation.Tax_Card#getCard_identifier <em>Card identifier</em>}</li>
21 * <li>{@link Taxation.Tax_Card#getTax_card_type <em>Tax card type</em>}</li> 19 * <li>{@link Taxation.Tax_Card#getTax_card_type <em>Tax card type</em>}</li>
22 * <li>{@link Taxation.Tax_Card#getTax_office <em>Tax office</em>}</li> 20 * <li>{@link Taxation.Tax_Card#getTax_office <em>Tax office</em>}</li>
23 * <li>{@link Taxation.Tax_Card#getValid_from_date <em>Valid from date</em>}</li>
24 * <li>{@link Taxation.Tax_Card#getValid_until_date <em>Valid until date</em>}</li>
25 * <li>{@link Taxation.Tax_Card#getPercentage_of_witholding <em>Percentage of witholding</em>}</li> 21 * <li>{@link Taxation.Tax_Card#getPercentage_of_witholding <em>Percentage of witholding</em>}</li>
26 * <li>{@link Taxation.Tax_Card#getTax_payers_name_surname <em>Tax payers name surname</em>}</li> 22 * <li>{@link Taxation.Tax_Card#getTax_payers_name_surname <em>Tax payers name surname</em>}</li>
27 * <li>{@link Taxation.Tax_Card#getTax_payers_partner_name_surname <em>Tax payers partner name surname</em>}</li> 23 * <li>{@link Taxation.Tax_Card#getTax_payers_partner_name_surname <em>Tax payers partner name surname</em>}</li>
@@ -135,50 +131,6 @@ public interface Tax_Card extends EObject {
135 void setTax_office(Tax_Office value); 131 void setTax_office(Tax_Office value);
136 132
137 /** 133 /**
138 * Returns the value of the '<em><b>Valid from date</b></em>' attribute.
139 * <!-- begin-user-doc -->
140 * <!-- end-user-doc -->
141 * @return the value of the '<em>Valid from date</em>' attribute.
142 * @see #setValid_from_date(Date)
143 * @see Taxation.TaxationPackage#getTax_Card_Valid_from_date()
144 * @model unique="false" required="true" ordered="false"
145 * @generated
146 */
147 Date getValid_from_date();
148
149 /**
150 * Sets the value of the '{@link Taxation.Tax_Card#getValid_from_date <em>Valid from date</em>}' attribute.
151 * <!-- begin-user-doc -->
152 * <!-- end-user-doc -->
153 * @param value the new value of the '<em>Valid from date</em>' attribute.
154 * @see #getValid_from_date()
155 * @generated
156 */
157 void setValid_from_date(Date value);
158
159 /**
160 * Returns the value of the '<em><b>Valid until date</b></em>' attribute.
161 * <!-- begin-user-doc -->
162 * <!-- end-user-doc -->
163 * @return the value of the '<em>Valid until date</em>' attribute.
164 * @see #setValid_until_date(Date)
165 * @see Taxation.TaxationPackage#getTax_Card_Valid_until_date()
166 * @model unique="false" required="true" ordered="false"
167 * @generated
168 */
169 Date getValid_until_date();
170
171 /**
172 * Sets the value of the '{@link Taxation.Tax_Card#getValid_until_date <em>Valid until date</em>}' attribute.
173 * <!-- begin-user-doc -->
174 * <!-- end-user-doc -->
175 * @param value the new value of the '<em>Valid until date</em>' attribute.
176 * @see #getValid_until_date()
177 * @generated
178 */
179 void setValid_until_date(Date value);
180
181 /**
182 * Returns the value of the '<em><b>Percentage of witholding</b></em>' attribute. 134 * Returns the value of the '<em><b>Percentage of witholding</b></em>' attribute.
183 * <!-- begin-user-doc --> 135 * <!-- begin-user-doc -->
184 * <!-- end-user-doc --> 136 * <!-- end-user-doc -->
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/TaxationPackage.java b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/TaxationPackage.java
index 260e296f..8706121f 100644
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/TaxationPackage.java
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/TaxationPackage.java
@@ -485,22 +485,13 @@ public interface TaxationPackage extends EPackage {
485 int PHYSICAL_PERSON__IS_WIDOWER = 10; 485 int PHYSICAL_PERSON__IS_WIDOWER = 10;
486 486
487 /** 487 /**
488 * The feature id for the '<em><b>Owns Address</b></em>' containment reference list.
489 * <!-- begin-user-doc -->
490 * <!-- end-user-doc -->
491 * @generated
492 * @ordered
493 */
494 int PHYSICAL_PERSON__OWNS_ADDRESS = 11;
495
496 /**
497 * The number of structural features of the '<em>Physical Person</em>' class. 488 * The number of structural features of the '<em>Physical Person</em>' class.
498 * <!-- begin-user-doc --> 489 * <!-- begin-user-doc -->
499 * <!-- end-user-doc --> 490 * <!-- end-user-doc -->
500 * @generated 491 * @generated
501 * @ordered 492 * @ordered
502 */ 493 */
503 int PHYSICAL_PERSON_FEATURE_COUNT = 12; 494 int PHYSICAL_PERSON_FEATURE_COUNT = 11;
504 495
505 /** 496 /**
506 * The number of operations of the '<em>Physical Person</em>' class. 497 * The number of operations of the '<em>Physical Person</em>' class.
@@ -621,15 +612,6 @@ public interface TaxationPackage extends EPackage {
621 int TAX_PAYER__IS_WIDOWER = PHYSICAL_PERSON__IS_WIDOWER; 612 int TAX_PAYER__IS_WIDOWER = PHYSICAL_PERSON__IS_WIDOWER;
622 613
623 /** 614 /**
624 * The feature id for the '<em><b>Owns Address</b></em>' containment reference list.
625 * <!-- begin-user-doc -->
626 * <!-- end-user-doc -->
627 * @generated
628 * @ordered
629 */
630 int TAX_PAYER__OWNS_ADDRESS = PHYSICAL_PERSON__OWNS_ADDRESS;
631
632 /**
633 * The feature id for the '<em><b>Dependents</b></em>' containment reference list. 615 * The feature id for the '<em><b>Dependents</b></em>' containment reference list.
634 * <!-- begin-user-doc --> 616 * <!-- begin-user-doc -->
635 * <!-- end-user-doc --> 617 * <!-- end-user-doc -->
@@ -975,15 +957,6 @@ public interface TaxationPackage extends EPackage {
975 int DEPENDENT__IS_WIDOWER = PHYSICAL_PERSON__IS_WIDOWER; 957 int DEPENDENT__IS_WIDOWER = PHYSICAL_PERSON__IS_WIDOWER;
976 958
977 /** 959 /**
978 * The feature id for the '<em><b>Owns Address</b></em>' containment reference list.
979 * <!-- begin-user-doc -->
980 * <!-- end-user-doc -->
981 * @generated
982 * @ordered
983 */
984 int DEPENDENT__OWNS_ADDRESS = PHYSICAL_PERSON__OWNS_ADDRESS;
985
986 /**
987 * The feature id for the '<em><b>Dependent type</b></em>' attribute. 960 * The feature id for the '<em><b>Dependent type</b></em>' attribute.
988 * <!-- begin-user-doc --> 961 * <!-- begin-user-doc -->
989 * <!-- end-user-doc --> 962 * <!-- end-user-doc -->
@@ -1504,40 +1477,13 @@ public interface TaxationPackage extends EPackage {
1504 int INCOME__INCOME_TYPE = 1; 1477 int INCOME__INCOME_TYPE = 1;
1505 1478
1506 /** 1479 /**
1507 * The feature id for the '<em><b>Start date within taxation year</b></em>' attribute.
1508 * <!-- begin-user-doc -->
1509 * <!-- end-user-doc -->
1510 * @generated
1511 * @ordered
1512 */
1513 int INCOME__START_DATE_WITHIN_TAXATION_YEAR = 2;
1514
1515 /**
1516 * The feature id for the '<em><b>Start date of contract</b></em>' attribute.
1517 * <!-- begin-user-doc -->
1518 * <!-- end-user-doc -->
1519 * @generated
1520 * @ordered
1521 */
1522 int INCOME__START_DATE_OF_CONTRACT = 3;
1523
1524 /**
1525 * The feature id for the '<em><b>End date within taxation year</b></em>' attribute.
1526 * <!-- begin-user-doc -->
1527 * <!-- end-user-doc -->
1528 * @generated
1529 * @ordered
1530 */
1531 int INCOME__END_DATE_WITHIN_TAXATION_YEAR = 4;
1532
1533 /**
1534 * The feature id for the '<em><b>Tax card</b></em>' containment reference. 1480 * The feature id for the '<em><b>Tax card</b></em>' containment reference.
1535 * <!-- begin-user-doc --> 1481 * <!-- begin-user-doc -->
1536 * <!-- end-user-doc --> 1482 * <!-- end-user-doc -->
1537 * @generated 1483 * @generated
1538 * @ordered 1484 * @ordered
1539 */ 1485 */
1540 int INCOME__TAX_CARD = 5; 1486 int INCOME__TAX_CARD = 2;
1541 1487
1542 /** 1488 /**
1543 * The feature id for the '<em><b>Tax liability</b></em>' attribute. 1489 * The feature id for the '<em><b>Tax liability</b></em>' attribute.
@@ -1546,7 +1492,7 @@ public interface TaxationPackage extends EPackage {
1546 * @generated 1492 * @generated
1547 * @ordered 1493 * @ordered
1548 */ 1494 */
1549 int INCOME__TAX_LIABILITY = 6; 1495 int INCOME__TAX_LIABILITY = 3;
1550 1496
1551 /** 1497 /**
1552 * The feature id for the '<em><b>Tax Payer</b></em>' container reference. 1498 * The feature id for the '<em><b>Tax Payer</b></em>' container reference.
@@ -1555,7 +1501,7 @@ public interface TaxationPackage extends EPackage {
1555 * @generated 1501 * @generated
1556 * @ordered 1502 * @ordered
1557 */ 1503 */
1558 int INCOME__TAX_PAYER = 7; 1504 int INCOME__TAX_PAYER = 4;
1559 1505
1560 /** 1506 /**
1561 * The feature id for the '<em><b>Details</b></em>' containment reference list. 1507 * The feature id for the '<em><b>Details</b></em>' containment reference list.
@@ -1564,7 +1510,7 @@ public interface TaxationPackage extends EPackage {
1564 * @generated 1510 * @generated
1565 * @ordered 1511 * @ordered
1566 */ 1512 */
1567 int INCOME__DETAILS = 8; 1513 int INCOME__DETAILS = 5;
1568 1514
1569 /** 1515 /**
1570 * The feature id for the '<em><b>Num</b></em>' attribute. 1516 * The feature id for the '<em><b>Num</b></em>' attribute.
@@ -1573,7 +1519,7 @@ public interface TaxationPackage extends EPackage {
1573 * @generated 1519 * @generated
1574 * @ordered 1520 * @ordered
1575 */ 1521 */
1576 int INCOME__NUM = 9; 1522 int INCOME__NUM = 6;
1577 1523
1578 /** 1524 /**
1579 * The feature id for the '<em><b>Expenses</b></em>' containment reference list. 1525 * The feature id for the '<em><b>Expenses</b></em>' containment reference list.
@@ -1582,7 +1528,7 @@ public interface TaxationPackage extends EPackage {
1582 * @generated 1528 * @generated
1583 * @ordered 1529 * @ordered
1584 */ 1530 */
1585 int INCOME__EXPENSES = 10; 1531 int INCOME__EXPENSES = 7;
1586 1532
1587 /** 1533 /**
1588 * The number of structural features of the '<em>Income</em>' class. 1534 * The number of structural features of the '<em>Income</em>' class.
@@ -1591,7 +1537,7 @@ public interface TaxationPackage extends EPackage {
1591 * @generated 1537 * @generated
1592 * @ordered 1538 * @ordered
1593 */ 1539 */
1594 int INCOME_FEATURE_COUNT = 11; 1540 int INCOME_FEATURE_COUNT = 8;
1595 1541
1596 /** 1542 /**
1597 * The number of operations of the '<em>Income</em>' class. 1543 * The number of operations of the '<em>Income</em>' class.
@@ -1695,31 +1641,13 @@ public interface TaxationPackage extends EPackage {
1695 int TAX_CARD__TAX_OFFICE = 2; 1641 int TAX_CARD__TAX_OFFICE = 2;
1696 1642
1697 /** 1643 /**
1698 * The feature id for the '<em><b>Valid from date</b></em>' attribute.
1699 * <!-- begin-user-doc -->
1700 * <!-- end-user-doc -->
1701 * @generated
1702 * @ordered
1703 */
1704 int TAX_CARD__VALID_FROM_DATE = 3;
1705
1706 /**
1707 * The feature id for the '<em><b>Valid until date</b></em>' attribute.
1708 * <!-- begin-user-doc -->
1709 * <!-- end-user-doc -->
1710 * @generated
1711 * @ordered
1712 */
1713 int TAX_CARD__VALID_UNTIL_DATE = 4;
1714
1715 /**
1716 * The feature id for the '<em><b>Percentage of witholding</b></em>' attribute. 1644 * The feature id for the '<em><b>Percentage of witholding</b></em>' attribute.
1717 * <!-- begin-user-doc --> 1645 * <!-- begin-user-doc -->
1718 * <!-- end-user-doc --> 1646 * <!-- end-user-doc -->
1719 * @generated 1647 * @generated
1720 * @ordered 1648 * @ordered
1721 */ 1649 */
1722 int TAX_CARD__PERCENTAGE_OF_WITHOLDING = 5; 1650 int TAX_CARD__PERCENTAGE_OF_WITHOLDING = 3;
1723 1651
1724 /** 1652 /**
1725 * The feature id for the '<em><b>Tax payers name surname</b></em>' attribute list. 1653 * The feature id for the '<em><b>Tax payers name surname</b></em>' attribute list.
@@ -1728,7 +1656,7 @@ public interface TaxationPackage extends EPackage {
1728 * @generated 1656 * @generated
1729 * @ordered 1657 * @ordered
1730 */ 1658 */
1731 int TAX_CARD__TAX_PAYERS_NAME_SURNAME = 6; 1659 int TAX_CARD__TAX_PAYERS_NAME_SURNAME = 4;
1732 1660
1733 /** 1661 /**
1734 * The feature id for the '<em><b>Tax payers partner name surname</b></em>' attribute list. 1662 * The feature id for the '<em><b>Tax payers partner name surname</b></em>' attribute list.
@@ -1737,7 +1665,7 @@ public interface TaxationPackage extends EPackage {
1737 * @generated 1665 * @generated
1738 * @ordered 1666 * @ordered
1739 */ 1667 */
1740 int TAX_CARD__TAX_PAYERS_PARTNER_NAME_SURNAME = 7; 1668 int TAX_CARD__TAX_PAYERS_PARTNER_NAME_SURNAME = 5;
1741 1669
1742 /** 1670 /**
1743 * The feature id for the '<em><b>Tax payers address</b></em>' reference. 1671 * The feature id for the '<em><b>Tax payers address</b></em>' reference.
@@ -1746,7 +1674,7 @@ public interface TaxationPackage extends EPackage {
1746 * @generated 1674 * @generated
1747 * @ordered 1675 * @ordered
1748 */ 1676 */
1749 int TAX_CARD__TAX_PAYERS_ADDRESS = 8; 1677 int TAX_CARD__TAX_PAYERS_ADDRESS = 6;
1750 1678
1751 /** 1679 /**
1752 * The feature id for the '<em><b>Jobs Employer SS No</b></em>' attribute. 1680 * The feature id for the '<em><b>Jobs Employer SS No</b></em>' attribute.
@@ -1755,7 +1683,7 @@ public interface TaxationPackage extends EPackage {
1755 * @generated 1683 * @generated
1756 * @ordered 1684 * @ordered
1757 */ 1685 */
1758 int TAX_CARD__JOBS_EMPLOYER_SS_NO = 9; 1686 int TAX_CARD__JOBS_EMPLOYER_SS_NO = 7;
1759 1687
1760 /** 1688 /**
1761 * The feature id for the '<em><b>Jobs employers name</b></em>' attribute. 1689 * The feature id for the '<em><b>Jobs employers name</b></em>' attribute.
@@ -1764,7 +1692,7 @@ public interface TaxationPackage extends EPackage {
1764 * @generated 1692 * @generated
1765 * @ordered 1693 * @ordered
1766 */ 1694 */
1767 int TAX_CARD__JOBS_EMPLOYERS_NAME = 10; 1695 int TAX_CARD__JOBS_EMPLOYERS_NAME = 8;
1768 1696
1769 /** 1697 /**
1770 * The feature id for the '<em><b>Jobs activity type</b></em>' attribute. 1698 * The feature id for the '<em><b>Jobs activity type</b></em>' attribute.
@@ -1773,7 +1701,7 @@ public interface TaxationPackage extends EPackage {
1773 * @generated 1701 * @generated
1774 * @ordered 1702 * @ordered
1775 */ 1703 */
1776 int TAX_CARD__JOBS_ACTIVITY_TYPE = 11; 1704 int TAX_CARD__JOBS_ACTIVITY_TYPE = 9;
1777 1705
1778 /** 1706 /**
1779 * The feature id for the '<em><b>Jobs place of work</b></em>' attribute. 1707 * The feature id for the '<em><b>Jobs place of work</b></em>' attribute.
@@ -1782,7 +1710,7 @@ public interface TaxationPackage extends EPackage {
1782 * @generated 1710 * @generated
1783 * @ordered 1711 * @ordered
1784 */ 1712 */
1785 int TAX_CARD__JOBS_PLACE_OF_WORK = 12; 1713 int TAX_CARD__JOBS_PLACE_OF_WORK = 10;
1786 1714
1787 /** 1715 /**
1788 * The feature id for the '<em><b>Deduction FD daily</b></em>' attribute. 1716 * The feature id for the '<em><b>Deduction FD daily</b></em>' attribute.
@@ -1791,7 +1719,7 @@ public interface TaxationPackage extends EPackage {
1791 * @generated 1719 * @generated
1792 * @ordered 1720 * @ordered
1793 */ 1721 */
1794 int TAX_CARD__DEDUCTION_FD_DAILY = 13; 1722 int TAX_CARD__DEDUCTION_FD_DAILY = 11;
1795 1723
1796 /** 1724 /**
1797 * The feature id for the '<em><b>Deduction FD monthly</b></em>' attribute. 1725 * The feature id for the '<em><b>Deduction FD monthly</b></em>' attribute.
@@ -1800,7 +1728,7 @@ public interface TaxationPackage extends EPackage {
1800 * @generated 1728 * @generated
1801 * @ordered 1729 * @ordered
1802 */ 1730 */
1803 int TAX_CARD__DEDUCTION_FD_MONTHLY = 14; 1731 int TAX_CARD__DEDUCTION_FD_MONTHLY = 12;
1804 1732
1805 /** 1733 /**
1806 * The feature id for the '<em><b>Deduction AC daily</b></em>' attribute. 1734 * The feature id for the '<em><b>Deduction AC daily</b></em>' attribute.
@@ -1809,7 +1737,7 @@ public interface TaxationPackage extends EPackage {
1809 * @generated 1737 * @generated
1810 * @ordered 1738 * @ordered
1811 */ 1739 */
1812 int TAX_CARD__DEDUCTION_AC_DAILY = 15; 1740 int TAX_CARD__DEDUCTION_AC_DAILY = 13;
1813 1741
1814 /** 1742 /**
1815 * The feature id for the '<em><b>Deduction AC monthly</b></em>' attribute. 1743 * The feature id for the '<em><b>Deduction AC monthly</b></em>' attribute.
@@ -1818,7 +1746,7 @@ public interface TaxationPackage extends EPackage {
1818 * @generated 1746 * @generated
1819 * @ordered 1747 * @ordered
1820 */ 1748 */
1821 int TAX_CARD__DEDUCTION_AC_MONTHLY = 16; 1749 int TAX_CARD__DEDUCTION_AC_MONTHLY = 14;
1822 1750
1823 /** 1751 /**
1824 * The feature id for the '<em><b>Deduction AC yearly</b></em>' attribute. 1752 * The feature id for the '<em><b>Deduction AC yearly</b></em>' attribute.
@@ -1827,7 +1755,7 @@ public interface TaxationPackage extends EPackage {
1827 * @generated 1755 * @generated
1828 * @ordered 1756 * @ordered
1829 */ 1757 */
1830 int TAX_CARD__DEDUCTION_AC_YEARLY = 17; 1758 int TAX_CARD__DEDUCTION_AC_YEARLY = 15;
1831 1759
1832 /** 1760 /**
1833 * The feature id for the '<em><b>Deduction CE daily</b></em>' attribute. 1761 * The feature id for the '<em><b>Deduction CE daily</b></em>' attribute.
@@ -1836,7 +1764,7 @@ public interface TaxationPackage extends EPackage {
1836 * @generated 1764 * @generated
1837 * @ordered 1765 * @ordered
1838 */ 1766 */
1839 int TAX_CARD__DEDUCTION_CE_DAILY = 18; 1767 int TAX_CARD__DEDUCTION_CE_DAILY = 16;
1840 1768
1841 /** 1769 /**
1842 * The feature id for the '<em><b>Deduction CE monthly</b></em>' attribute. 1770 * The feature id for the '<em><b>Deduction CE monthly</b></em>' attribute.
@@ -1845,7 +1773,7 @@ public interface TaxationPackage extends EPackage {
1845 * @generated 1773 * @generated
1846 * @ordered 1774 * @ordered
1847 */ 1775 */
1848 int TAX_CARD__DEDUCTION_CE_MONTHLY = 19; 1776 int TAX_CARD__DEDUCTION_CE_MONTHLY = 17;
1849 1777
1850 /** 1778 /**
1851 * The feature id for the '<em><b>Deduction CE yearly</b></em>' attribute. 1779 * The feature id for the '<em><b>Deduction CE yearly</b></em>' attribute.
@@ -1854,7 +1782,7 @@ public interface TaxationPackage extends EPackage {
1854 * @generated 1782 * @generated
1855 * @ordered 1783 * @ordered
1856 */ 1784 */
1857 int TAX_CARD__DEDUCTION_CE_YEARLY = 20; 1785 int TAX_CARD__DEDUCTION_CE_YEARLY = 18;
1858 1786
1859 /** 1787 /**
1860 * The feature id for the '<em><b>Deduction DS daily</b></em>' attribute. 1788 * The feature id for the '<em><b>Deduction DS daily</b></em>' attribute.
@@ -1863,7 +1791,7 @@ public interface TaxationPackage extends EPackage {
1863 * @generated 1791 * @generated
1864 * @ordered 1792 * @ordered
1865 */ 1793 */
1866 int TAX_CARD__DEDUCTION_DS_DAILY = 21; 1794 int TAX_CARD__DEDUCTION_DS_DAILY = 19;
1867 1795
1868 /** 1796 /**
1869 * The feature id for the '<em><b>Deduction DS monthly</b></em>' attribute. 1797 * The feature id for the '<em><b>Deduction DS monthly</b></em>' attribute.
@@ -1872,7 +1800,7 @@ public interface TaxationPackage extends EPackage {
1872 * @generated 1800 * @generated
1873 * @ordered 1801 * @ordered
1874 */ 1802 */
1875 int TAX_CARD__DEDUCTION_DS_MONTHLY = 22; 1803 int TAX_CARD__DEDUCTION_DS_MONTHLY = 20;
1876 1804
1877 /** 1805 /**
1878 * The feature id for the '<em><b>Deduction FO daily</b></em>' attribute. 1806 * The feature id for the '<em><b>Deduction FO daily</b></em>' attribute.
@@ -1881,7 +1809,7 @@ public interface TaxationPackage extends EPackage {
1881 * @generated 1809 * @generated
1882 * @ordered 1810 * @ordered
1883 */ 1811 */
1884 int TAX_CARD__DEDUCTION_FO_DAILY = 23; 1812 int TAX_CARD__DEDUCTION_FO_DAILY = 21;
1885 1813
1886 /** 1814 /**
1887 * The feature id for the '<em><b>Deduction FO monthly</b></em>' attribute. 1815 * The feature id for the '<em><b>Deduction FO monthly</b></em>' attribute.
@@ -1890,7 +1818,7 @@ public interface TaxationPackage extends EPackage {
1890 * @generated 1818 * @generated
1891 * @ordered 1819 * @ordered
1892 */ 1820 */
1893 int TAX_CARD__DEDUCTION_FO_MONTHLY = 24; 1821 int TAX_CARD__DEDUCTION_FO_MONTHLY = 22;
1894 1822
1895 /** 1823 /**
1896 * The feature id for the '<em><b>Deduction FO yearly</b></em>' attribute. 1824 * The feature id for the '<em><b>Deduction FO yearly</b></em>' attribute.
@@ -1899,7 +1827,7 @@ public interface TaxationPackage extends EPackage {
1899 * @generated 1827 * @generated
1900 * @ordered 1828 * @ordered
1901 */ 1829 */
1902 int TAX_CARD__DEDUCTION_FO_YEARLY = 25; 1830 int TAX_CARD__DEDUCTION_FO_YEARLY = 23;
1903 1831
1904 /** 1832 /**
1905 * The feature id for the '<em><b>Credit CIS daily</b></em>' attribute. 1833 * The feature id for the '<em><b>Credit CIS daily</b></em>' attribute.
@@ -1908,7 +1836,7 @@ public interface TaxationPackage extends EPackage {
1908 * @generated 1836 * @generated
1909 * @ordered 1837 * @ordered
1910 */ 1838 */
1911 int TAX_CARD__CREDIT_CIS_DAILY = 26; 1839 int TAX_CARD__CREDIT_CIS_DAILY = 24;
1912 1840
1913 /** 1841 /**
1914 * The feature id for the '<em><b>Credit CIS monthly</b></em>' attribute. 1842 * The feature id for the '<em><b>Credit CIS monthly</b></em>' attribute.
@@ -1917,7 +1845,7 @@ public interface TaxationPackage extends EPackage {
1917 * @generated 1845 * @generated
1918 * @ordered 1846 * @ordered
1919 */ 1847 */
1920 int TAX_CARD__CREDIT_CIS_MONTHLY = 27; 1848 int TAX_CARD__CREDIT_CIS_MONTHLY = 25;
1921 1849
1922 /** 1850 /**
1923 * The feature id for the '<em><b>Credit CIM daily</b></em>' attribute. 1851 * The feature id for the '<em><b>Credit CIM daily</b></em>' attribute.
@@ -1926,7 +1854,7 @@ public interface TaxationPackage extends EPackage {
1926 * @generated 1854 * @generated
1927 * @ordered 1855 * @ordered
1928 */ 1856 */
1929 int TAX_CARD__CREDIT_CIM_DAILY = 28; 1857 int TAX_CARD__CREDIT_CIM_DAILY = 26;
1930 1858
1931 /** 1859 /**
1932 * The feature id for the '<em><b>Validity</b></em>' attribute. 1860 * The feature id for the '<em><b>Validity</b></em>' attribute.
@@ -1935,7 +1863,7 @@ public interface TaxationPackage extends EPackage {
1935 * @generated 1863 * @generated
1936 * @ordered 1864 * @ordered
1937 */ 1865 */
1938 int TAX_CARD__VALIDITY = 29; 1866 int TAX_CARD__VALIDITY = 27;
1939 1867
1940 /** 1868 /**
1941 * The feature id for the '<em><b>Income Tax Credit</b></em>' reference list. 1869 * The feature id for the '<em><b>Income Tax Credit</b></em>' reference list.
@@ -1944,7 +1872,7 @@ public interface TaxationPackage extends EPackage {
1944 * @generated 1872 * @generated
1945 * @ordered 1873 * @ordered
1946 */ 1874 */
1947 int TAX_CARD__INCOME_TAX_CREDIT = 30; 1875 int TAX_CARD__INCOME_TAX_CREDIT = 28;
1948 1876
1949 /** 1877 /**
1950 * The feature id for the '<em><b>Previous</b></em>' reference. 1878 * The feature id for the '<em><b>Previous</b></em>' reference.
@@ -1953,7 +1881,7 @@ public interface TaxationPackage extends EPackage {
1953 * @generated 1881 * @generated
1954 * @ordered 1882 * @ordered
1955 */ 1883 */
1956 int TAX_CARD__PREVIOUS = 31; 1884 int TAX_CARD__PREVIOUS = 29;
1957 1885
1958 /** 1886 /**
1959 * The feature id for the '<em><b>Current tax card</b></em>' reference. 1887 * The feature id for the '<em><b>Current tax card</b></em>' reference.
@@ -1962,7 +1890,7 @@ public interface TaxationPackage extends EPackage {
1962 * @generated 1890 * @generated
1963 * @ordered 1891 * @ordered
1964 */ 1892 */
1965 int TAX_CARD__CURRENT_TAX_CARD = 32; 1893 int TAX_CARD__CURRENT_TAX_CARD = 30;
1966 1894
1967 /** 1895 /**
1968 * The feature id for the '<em><b>Credit CIM yearly</b></em>' attribute. 1896 * The feature id for the '<em><b>Credit CIM yearly</b></em>' attribute.
@@ -1971,7 +1899,7 @@ public interface TaxationPackage extends EPackage {
1971 * @generated 1899 * @generated
1972 * @ordered 1900 * @ordered
1973 */ 1901 */
1974 int TAX_CARD__CREDIT_CIM_YEARLY = 33; 1902 int TAX_CARD__CREDIT_CIM_YEARLY = 31;
1975 1903
1976 /** 1904 /**
1977 * The feature id for the '<em><b>Deduction DS Alimony yearly</b></em>' attribute. 1905 * The feature id for the '<em><b>Deduction DS Alimony yearly</b></em>' attribute.
@@ -1980,7 +1908,7 @@ public interface TaxationPackage extends EPackage {
1980 * @generated 1908 * @generated
1981 * @ordered 1909 * @ordered
1982 */ 1910 */
1983 int TAX_CARD__DEDUCTION_DS_ALIMONY_YEARLY = 34; 1911 int TAX_CARD__DEDUCTION_DS_ALIMONY_YEARLY = 32;
1984 1912
1985 /** 1913 /**
1986 * The feature id for the '<em><b>Deduction DS Debt yearly</b></em>' attribute. 1914 * The feature id for the '<em><b>Deduction DS Debt yearly</b></em>' attribute.
@@ -1989,7 +1917,7 @@ public interface TaxationPackage extends EPackage {
1989 * @generated 1917 * @generated
1990 * @ordered 1918 * @ordered
1991 */ 1919 */
1992 int TAX_CARD__DEDUCTION_DS_DEBT_YEARLY = 35; 1920 int TAX_CARD__DEDUCTION_DS_DEBT_YEARLY = 33;
1993 1921
1994 /** 1922 /**
1995 * The feature id for the '<em><b>Income</b></em>' container reference. 1923 * The feature id for the '<em><b>Income</b></em>' container reference.
@@ -1998,7 +1926,7 @@ public interface TaxationPackage extends EPackage {
1998 * @generated 1926 * @generated
1999 * @ordered 1927 * @ordered
2000 */ 1928 */
2001 int TAX_CARD__INCOME = 36; 1929 int TAX_CARD__INCOME = 34;
2002 1930
2003 /** 1931 /**
2004 * The number of structural features of the '<em>Tax Card</em>' class. 1932 * The number of structural features of the '<em>Tax Card</em>' class.
@@ -2007,7 +1935,7 @@ public interface TaxationPackage extends EPackage {
2007 * @generated 1935 * @generated
2008 * @ordered 1936 * @ordered
2009 */ 1937 */
2010 int TAX_CARD_FEATURE_COUNT = 37; 1938 int TAX_CARD_FEATURE_COUNT = 35;
2011 1939
2012 /** 1940 /**
2013 * The number of operations of the '<em>Tax Card</em>' class. 1941 * The number of operations of the '<em>Tax Card</em>' class.
@@ -2638,15 +2566,6 @@ public interface TaxationPackage extends EPackage {
2638 int NON_RESIDENT_TAX_PAYER__IS_WIDOWER = TAX_PAYER__IS_WIDOWER; 2566 int NON_RESIDENT_TAX_PAYER__IS_WIDOWER = TAX_PAYER__IS_WIDOWER;
2639 2567
2640 /** 2568 /**
2641 * The feature id for the '<em><b>Owns Address</b></em>' containment reference list.
2642 * <!-- begin-user-doc -->
2643 * <!-- end-user-doc -->
2644 * @generated
2645 * @ordered
2646 */
2647 int NON_RESIDENT_TAX_PAYER__OWNS_ADDRESS = TAX_PAYER__OWNS_ADDRESS;
2648
2649 /**
2650 * The feature id for the '<em><b>Dependents</b></em>' containment reference list. 2569 * The feature id for the '<em><b>Dependents</b></em>' containment reference list.
2651 * <!-- begin-user-doc --> 2570 * <!-- begin-user-doc -->
2652 * <!-- end-user-doc --> 2571 * <!-- end-user-doc -->
@@ -2937,15 +2856,6 @@ public interface TaxationPackage extends EPackage {
2937 int RESIDENT_TAX_PAYER__IS_WIDOWER = TAX_PAYER__IS_WIDOWER; 2856 int RESIDENT_TAX_PAYER__IS_WIDOWER = TAX_PAYER__IS_WIDOWER;
2938 2857
2939 /** 2858 /**
2940 * The feature id for the '<em><b>Owns Address</b></em>' containment reference list.
2941 * <!-- begin-user-doc -->
2942 * <!-- end-user-doc -->
2943 * @generated
2944 * @ordered
2945 */
2946 int RESIDENT_TAX_PAYER__OWNS_ADDRESS = TAX_PAYER__OWNS_ADDRESS;
2947
2948 /**
2949 * The feature id for the '<em><b>Dependents</b></em>' containment reference list. 2859 * The feature id for the '<em><b>Dependents</b></em>' containment reference list.
2950 * <!-- begin-user-doc --> 2860 * <!-- begin-user-doc -->
2951 * <!-- end-user-doc --> 2861 * <!-- end-user-doc -->
@@ -3385,33 +3295,6 @@ public interface TaxationPackage extends EPackage {
3385 int FOREIGN_INCOME__INCOME_TYPE = INCOME__INCOME_TYPE; 3295 int FOREIGN_INCOME__INCOME_TYPE = INCOME__INCOME_TYPE;
3386 3296
3387 /** 3297 /**
3388 * The feature id for the '<em><b>Start date within taxation year</b></em>' attribute.
3389 * <!-- begin-user-doc -->
3390 * <!-- end-user-doc -->
3391 * @generated
3392 * @ordered
3393 */
3394 int FOREIGN_INCOME__START_DATE_WITHIN_TAXATION_YEAR = INCOME__START_DATE_WITHIN_TAXATION_YEAR;
3395
3396 /**
3397 * The feature id for the '<em><b>Start date of contract</b></em>' attribute.
3398 * <!-- begin-user-doc -->
3399 * <!-- end-user-doc -->
3400 * @generated
3401 * @ordered
3402 */
3403 int FOREIGN_INCOME__START_DATE_OF_CONTRACT = INCOME__START_DATE_OF_CONTRACT;
3404
3405 /**
3406 * The feature id for the '<em><b>End date within taxation year</b></em>' attribute.
3407 * <!-- begin-user-doc -->
3408 * <!-- end-user-doc -->
3409 * @generated
3410 * @ordered
3411 */
3412 int FOREIGN_INCOME__END_DATE_WITHIN_TAXATION_YEAR = INCOME__END_DATE_WITHIN_TAXATION_YEAR;
3413
3414 /**
3415 * The feature id for the '<em><b>Tax card</b></em>' containment reference. 3298 * The feature id for the '<em><b>Tax card</b></em>' containment reference.
3416 * <!-- begin-user-doc --> 3299 * <!-- begin-user-doc -->
3417 * <!-- end-user-doc --> 3300 * <!-- end-user-doc -->
@@ -3512,33 +3395,6 @@ public interface TaxationPackage extends EPackage {
3512 int LOCAL_INCOME__INCOME_TYPE = INCOME__INCOME_TYPE; 3395 int LOCAL_INCOME__INCOME_TYPE = INCOME__INCOME_TYPE;
3513 3396
3514 /** 3397 /**
3515 * The feature id for the '<em><b>Start date within taxation year</b></em>' attribute.
3516 * <!-- begin-user-doc -->
3517 * <!-- end-user-doc -->
3518 * @generated
3519 * @ordered
3520 */
3521 int LOCAL_INCOME__START_DATE_WITHIN_TAXATION_YEAR = INCOME__START_DATE_WITHIN_TAXATION_YEAR;
3522
3523 /**
3524 * The feature id for the '<em><b>Start date of contract</b></em>' attribute.
3525 * <!-- begin-user-doc -->
3526 * <!-- end-user-doc -->
3527 * @generated
3528 * @ordered
3529 */
3530 int LOCAL_INCOME__START_DATE_OF_CONTRACT = INCOME__START_DATE_OF_CONTRACT;
3531
3532 /**
3533 * The feature id for the '<em><b>End date within taxation year</b></em>' attribute.
3534 * <!-- begin-user-doc -->
3535 * <!-- end-user-doc -->
3536 * @generated
3537 * @ordered
3538 */
3539 int LOCAL_INCOME__END_DATE_WITHIN_TAXATION_YEAR = INCOME__END_DATE_WITHIN_TAXATION_YEAR;
3540
3541 /**
3542 * The feature id for the '<em><b>Tax card</b></em>' containment reference. 3398 * The feature id for the '<em><b>Tax card</b></em>' containment reference.
3543 * <!-- begin-user-doc --> 3399 * <!-- begin-user-doc -->
3544 * <!-- end-user-doc --> 3400 * <!-- end-user-doc -->
@@ -6340,17 +6196,6 @@ public interface TaxationPackage extends EPackage {
6340 EAttribute getPhysical_Person_Is_widower(); 6196 EAttribute getPhysical_Person_Is_widower();
6341 6197
6342 /** 6198 /**
6343 * Returns the meta object for the containment reference list '{@link Taxation.Physical_Person#getOwns_Address <em>Owns Address</em>}'.
6344 * <!-- begin-user-doc -->
6345 * <!-- end-user-doc -->
6346 * @return the meta object for the containment reference list '<em>Owns Address</em>'.
6347 * @see Taxation.Physical_Person#getOwns_Address()
6348 * @see #getPhysical_Person()
6349 * @generated
6350 */
6351 EReference getPhysical_Person_Owns_Address();
6352
6353 /**
6354 * Returns the meta object for class '{@link Taxation.Address <em>Address</em>}'. 6199 * Returns the meta object for class '{@link Taxation.Address <em>Address</em>}'.
6355 * <!-- begin-user-doc --> 6200 * <!-- begin-user-doc -->
6356 * <!-- end-user-doc --> 6201 * <!-- end-user-doc -->
@@ -6990,39 +6835,6 @@ public interface TaxationPackage extends EPackage {
6990 EReference getIncome_Income_type(); 6835 EReference getIncome_Income_type();
6991 6836
6992 /** 6837 /**
6993 * Returns the meta object for the attribute '{@link Taxation.Income#getStart_date_within_taxation_year <em>Start date within taxation year</em>}'.
6994 * <!-- begin-user-doc -->
6995 * <!-- end-user-doc -->
6996 * @return the meta object for the attribute '<em>Start date within taxation year</em>'.
6997 * @see Taxation.Income#getStart_date_within_taxation_year()
6998 * @see #getIncome()
6999 * @generated
7000 */
7001 EAttribute getIncome_Start_date_within_taxation_year();
7002
7003 /**
7004 * Returns the meta object for the attribute '{@link Taxation.Income#getStart_date_of_contract <em>Start date of contract</em>}'.
7005 * <!-- begin-user-doc -->
7006 * <!-- end-user-doc -->
7007 * @return the meta object for the attribute '<em>Start date of contract</em>'.
7008 * @see Taxation.Income#getStart_date_of_contract()
7009 * @see #getIncome()
7010 * @generated
7011 */
7012 EAttribute getIncome_Start_date_of_contract();
7013
7014 /**
7015 * Returns the meta object for the attribute '{@link Taxation.Income#getEnd_date_within_taxation_year <em>End date within taxation year</em>}'.
7016 * <!-- begin-user-doc -->
7017 * <!-- end-user-doc -->
7018 * @return the meta object for the attribute '<em>End date within taxation year</em>'.
7019 * @see Taxation.Income#getEnd_date_within_taxation_year()
7020 * @see #getIncome()
7021 * @generated
7022 */
7023 EAttribute getIncome_End_date_within_taxation_year();
7024
7025 /**
7026 * Returns the meta object for the containment reference '{@link Taxation.Income#getTax_card <em>Tax card</em>}'. 6838 * Returns the meta object for the containment reference '{@link Taxation.Income#getTax_card <em>Tax card</em>}'.
7027 * <!-- begin-user-doc --> 6839 * <!-- begin-user-doc -->
7028 * <!-- end-user-doc --> 6840 * <!-- end-user-doc -->
@@ -7175,28 +6987,6 @@ public interface TaxationPackage extends EPackage {
7175 EAttribute getTax_Card_Tax_office(); 6987 EAttribute getTax_Card_Tax_office();
7176 6988
7177 /** 6989 /**
7178 * Returns the meta object for the attribute '{@link Taxation.Tax_Card#getValid_from_date <em>Valid from date</em>}'.
7179 * <!-- begin-user-doc -->
7180 * <!-- end-user-doc -->
7181 * @return the meta object for the attribute '<em>Valid from date</em>'.
7182 * @see Taxation.Tax_Card#getValid_from_date()
7183 * @see #getTax_Card()
7184 * @generated
7185 */
7186 EAttribute getTax_Card_Valid_from_date();
7187
7188 /**
7189 * Returns the meta object for the attribute '{@link Taxation.Tax_Card#getValid_until_date <em>Valid until date</em>}'.
7190 * <!-- begin-user-doc -->
7191 * <!-- end-user-doc -->
7192 * @return the meta object for the attribute '<em>Valid until date</em>'.
7193 * @see Taxation.Tax_Card#getValid_until_date()
7194 * @see #getTax_Card()
7195 * @generated
7196 */
7197 EAttribute getTax_Card_Valid_until_date();
7198
7199 /**
7200 * Returns the meta object for the attribute '{@link Taxation.Tax_Card#getPercentage_of_witholding <em>Percentage of witholding</em>}'. 6990 * Returns the meta object for the attribute '{@link Taxation.Tax_Card#getPercentage_of_witholding <em>Percentage of witholding</em>}'.
7201 * <!-- begin-user-doc --> 6991 * <!-- begin-user-doc -->
7202 * <!-- end-user-doc --> 6992 * <!-- end-user-doc -->
@@ -9079,14 +8869,6 @@ public interface TaxationPackage extends EPackage {
9079 EAttribute PHYSICAL_PERSON__IS_WIDOWER = eINSTANCE.getPhysical_Person_Is_widower(); 8869 EAttribute PHYSICAL_PERSON__IS_WIDOWER = eINSTANCE.getPhysical_Person_Is_widower();
9080 8870
9081 /** 8871 /**
9082 * The meta object literal for the '<em><b>Owns Address</b></em>' containment reference list feature.
9083 * <!-- begin-user-doc -->
9084 * <!-- end-user-doc -->
9085 * @generated
9086 */
9087 EReference PHYSICAL_PERSON__OWNS_ADDRESS = eINSTANCE.getPhysical_Person_Owns_Address();
9088
9089 /**
9090 * The meta object literal for the '{@link Taxation.impl.AddressImpl <em>Address</em>}' class. 8872 * The meta object literal for the '{@link Taxation.impl.AddressImpl <em>Address</em>}' class.
9091 * <!-- begin-user-doc --> 8873 * <!-- begin-user-doc -->
9092 * <!-- end-user-doc --> 8874 * <!-- end-user-doc -->
@@ -9579,30 +9361,6 @@ public interface TaxationPackage extends EPackage {
9579 EReference INCOME__INCOME_TYPE = eINSTANCE.getIncome_Income_type(); 9361 EReference INCOME__INCOME_TYPE = eINSTANCE.getIncome_Income_type();
9580 9362
9581 /** 9363 /**
9582 * The meta object literal for the '<em><b>Start date within taxation year</b></em>' attribute feature.
9583 * <!-- begin-user-doc -->
9584 * <!-- end-user-doc -->
9585 * @generated
9586 */
9587 EAttribute INCOME__START_DATE_WITHIN_TAXATION_YEAR = eINSTANCE.getIncome_Start_date_within_taxation_year();
9588
9589 /**
9590 * The meta object literal for the '<em><b>Start date of contract</b></em>' attribute feature.
9591 * <!-- begin-user-doc -->
9592 * <!-- end-user-doc -->
9593 * @generated
9594 */
9595 EAttribute INCOME__START_DATE_OF_CONTRACT = eINSTANCE.getIncome_Start_date_of_contract();
9596
9597 /**
9598 * The meta object literal for the '<em><b>End date within taxation year</b></em>' attribute feature.
9599 * <!-- begin-user-doc -->
9600 * <!-- end-user-doc -->
9601 * @generated
9602 */
9603 EAttribute INCOME__END_DATE_WITHIN_TAXATION_YEAR = eINSTANCE.getIncome_End_date_within_taxation_year();
9604
9605 /**
9606 * The meta object literal for the '<em><b>Tax card</b></em>' containment reference feature. 9364 * The meta object literal for the '<em><b>Tax card</b></em>' containment reference feature.
9607 * <!-- begin-user-doc --> 9365 * <!-- begin-user-doc -->
9608 * <!-- end-user-doc --> 9366 * <!-- end-user-doc -->
@@ -9719,22 +9477,6 @@ public interface TaxationPackage extends EPackage {
9719 EAttribute TAX_CARD__TAX_OFFICE = eINSTANCE.getTax_Card_Tax_office(); 9477 EAttribute TAX_CARD__TAX_OFFICE = eINSTANCE.getTax_Card_Tax_office();
9720 9478
9721 /** 9479 /**
9722 * The meta object literal for the '<em><b>Valid from date</b></em>' attribute feature.
9723 * <!-- begin-user-doc -->
9724 * <!-- end-user-doc -->
9725 * @generated
9726 */
9727 EAttribute TAX_CARD__VALID_FROM_DATE = eINSTANCE.getTax_Card_Valid_from_date();
9728
9729 /**
9730 * The meta object literal for the '<em><b>Valid until date</b></em>' attribute feature.
9731 * <!-- begin-user-doc -->
9732 * <!-- end-user-doc -->
9733 * @generated
9734 */
9735 EAttribute TAX_CARD__VALID_UNTIL_DATE = eINSTANCE.getTax_Card_Valid_until_date();
9736
9737 /**
9738 * The meta object literal for the '<em><b>Percentage of witholding</b></em>' attribute feature. 9480 * The meta object literal for the '<em><b>Percentage of witholding</b></em>' attribute feature.
9739 * <!-- begin-user-doc --> 9481 * <!-- begin-user-doc -->
9740 * <!-- end-user-doc --> 9482 * <!-- end-user-doc -->
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/DependentImpl.java b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/DependentImpl.java
index 0732ae44..a1b50304 100644
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/DependentImpl.java
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/DependentImpl.java
@@ -22,6 +22,7 @@ import org.eclipse.emf.ecore.EClass;
22import org.eclipse.emf.ecore.InternalEObject; 22import org.eclipse.emf.ecore.InternalEObject;
23 23
24import org.eclipse.emf.ecore.impl.ENotificationImpl; 24import org.eclipse.emf.ecore.impl.ENotificationImpl;
25
25import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; 26import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
26import org.eclipse.emf.ecore.util.EcoreUtil; 27import org.eclipse.emf.ecore.util.EcoreUtil;
27import org.eclipse.emf.ecore.util.InternalEList; 28import org.eclipse.emf.ecore.util.InternalEList;
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/ExpenseImpl.java b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/ExpenseImpl.java
index 70dfc53e..6acf1429 100644
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/ExpenseImpl.java
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/ExpenseImpl.java
@@ -9,6 +9,7 @@ import Taxation.FromAgent;
9import Taxation.Income; 9import Taxation.Income;
10import Taxation.Physical_Person; 10import Taxation.Physical_Person;
11import Taxation.TaxationPackage; 11import Taxation.TaxationPackage;
12
12import org.eclipse.emf.common.notify.Notification; 13import org.eclipse.emf.common.notify.Notification;
13import org.eclipse.emf.common.notify.NotificationChain; 14import org.eclipse.emf.common.notify.NotificationChain;
14 15
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/External_AllowanceImpl.java b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/External_AllowanceImpl.java
index 0d0119a5..d73a0014 100644
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/External_AllowanceImpl.java
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/External_AllowanceImpl.java
@@ -7,6 +7,7 @@ import Taxation.External_Allowance;
7import Taxation.Grantor; 7import Taxation.Grantor;
8import Taxation.Physical_Person; 8import Taxation.Physical_Person;
9import Taxation.TaxationPackage; 9import Taxation.TaxationPackage;
10
10import org.eclipse.emf.common.notify.Notification; 11import org.eclipse.emf.common.notify.Notification;
11import org.eclipse.emf.common.notify.NotificationChain; 12import org.eclipse.emf.common.notify.NotificationChain;
12 13
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/FromAgentImpl.java b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/FromAgentImpl.java
index 930a23de..9b7b38bb 100644
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/FromAgentImpl.java
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/FromAgentImpl.java
@@ -7,6 +7,7 @@ import Taxation.Expense;
7import Taxation.FromAgent; 7import Taxation.FromAgent;
8import Taxation.Tax_Payer; 8import Taxation.Tax_Payer;
9import Taxation.TaxationPackage; 9import Taxation.TaxationPackage;
10
10import org.eclipse.emf.common.notify.Notification; 11import org.eclipse.emf.common.notify.Notification;
11import org.eclipse.emf.common.notify.NotificationChain; 12import org.eclipse.emf.common.notify.NotificationChain;
12 13
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/IncomeImpl.java b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/IncomeImpl.java
index 233d467c..f4793894 100644
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/IncomeImpl.java
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/IncomeImpl.java
@@ -9,8 +9,8 @@ import Taxation.Income_Type;
9import Taxation.Tax_Card; 9import Taxation.Tax_Card;
10import Taxation.Tax_Payer; 10import Taxation.Tax_Payer;
11import Taxation.TaxationPackage; 11import Taxation.TaxationPackage;
12
12import java.util.Collection; 13import java.util.Collection;
13import java.util.Date;
14 14
15import org.eclipse.emf.common.notify.Notification; 15import org.eclipse.emf.common.notify.Notification;
16import org.eclipse.emf.common.notify.NotificationChain; 16import org.eclipse.emf.common.notify.NotificationChain;
@@ -37,9 +37,6 @@ import org.eclipse.emf.ecore.util.InternalEList;
37 * <ul> 37 * <ul>
38 * <li>{@link Taxation.impl.IncomeImpl#getIncome_amount <em>Income amount</em>}</li> 38 * <li>{@link Taxation.impl.IncomeImpl#getIncome_amount <em>Income amount</em>}</li>
39 * <li>{@link Taxation.impl.IncomeImpl#getIncome_type <em>Income type</em>}</li> 39 * <li>{@link Taxation.impl.IncomeImpl#getIncome_type <em>Income type</em>}</li>
40 * <li>{@link Taxation.impl.IncomeImpl#getStart_date_within_taxation_year <em>Start date within taxation year</em>}</li>
41 * <li>{@link Taxation.impl.IncomeImpl#getStart_date_of_contract <em>Start date of contract</em>}</li>
42 * <li>{@link Taxation.impl.IncomeImpl#getEnd_date_within_taxation_year <em>End date within taxation year</em>}</li>
43 * <li>{@link Taxation.impl.IncomeImpl#getTax_card <em>Tax card</em>}</li> 40 * <li>{@link Taxation.impl.IncomeImpl#getTax_card <em>Tax card</em>}</li>
44 * <li>{@link Taxation.impl.IncomeImpl#getTax_liability <em>Tax liability</em>}</li> 41 * <li>{@link Taxation.impl.IncomeImpl#getTax_liability <em>Tax liability</em>}</li>
45 * <li>{@link Taxation.impl.IncomeImpl#getTaxPayer <em>Tax Payer</em>}</li> 42 * <li>{@link Taxation.impl.IncomeImpl#getTaxPayer <em>Tax Payer</em>}</li>
@@ -82,66 +79,6 @@ public abstract class IncomeImpl extends MinimalEObjectImpl.Container implements
82 protected Income_Type income_type; 79 protected Income_Type income_type;
83 80
84 /** 81 /**
85 * The default value of the '{@link #getStart_date_within_taxation_year() <em>Start date within taxation year</em>}' attribute.
86 * <!-- begin-user-doc -->
87 * <!-- end-user-doc -->
88 * @see #getStart_date_within_taxation_year()
89 * @generated
90 * @ordered
91 */
92 protected static final Date START_DATE_WITHIN_TAXATION_YEAR_EDEFAULT = null;
93
94 /**
95 * The cached value of the '{@link #getStart_date_within_taxation_year() <em>Start date within taxation year</em>}' attribute.
96 * <!-- begin-user-doc -->
97 * <!-- end-user-doc -->
98 * @see #getStart_date_within_taxation_year()
99 * @generated
100 * @ordered
101 */
102 protected Date start_date_within_taxation_year = START_DATE_WITHIN_TAXATION_YEAR_EDEFAULT;
103
104 /**
105 * The default value of the '{@link #getStart_date_of_contract() <em>Start date of contract</em>}' attribute.
106 * <!-- begin-user-doc -->
107 * <!-- end-user-doc -->
108 * @see #getStart_date_of_contract()
109 * @generated
110 * @ordered
111 */
112 protected static final Date START_DATE_OF_CONTRACT_EDEFAULT = null;
113
114 /**
115 * The cached value of the '{@link #getStart_date_of_contract() <em>Start date of contract</em>}' attribute.
116 * <!-- begin-user-doc -->
117 * <!-- end-user-doc -->
118 * @see #getStart_date_of_contract()
119 * @generated
120 * @ordered
121 */
122 protected Date start_date_of_contract = START_DATE_OF_CONTRACT_EDEFAULT;
123
124 /**
125 * The default value of the '{@link #getEnd_date_within_taxation_year() <em>End date within taxation year</em>}' attribute.
126 * <!-- begin-user-doc -->
127 * <!-- end-user-doc -->
128 * @see #getEnd_date_within_taxation_year()
129 * @generated
130 * @ordered
131 */
132 protected static final Date END_DATE_WITHIN_TAXATION_YEAR_EDEFAULT = null;
133
134 /**
135 * The cached value of the '{@link #getEnd_date_within_taxation_year() <em>End date within taxation year</em>}' attribute.
136 * <!-- begin-user-doc -->
137 * <!-- end-user-doc -->
138 * @see #getEnd_date_within_taxation_year()
139 * @generated
140 * @ordered
141 */
142 protected Date end_date_within_taxation_year = END_DATE_WITHIN_TAXATION_YEAR_EDEFAULT;
143
144 /**
145 * The cached value of the '{@link #getTax_card() <em>Tax card</em>}' containment reference. 82 * The cached value of the '{@link #getTax_card() <em>Tax card</em>}' containment reference.
146 * <!-- begin-user-doc --> 83 * <!-- begin-user-doc -->
147 * <!-- end-user-doc --> 84 * <!-- end-user-doc -->
@@ -304,75 +241,6 @@ public abstract class IncomeImpl extends MinimalEObjectImpl.Container implements
304 * @generated 241 * @generated
305 */ 242 */
306 @Override 243 @Override
307 public Date getStart_date_within_taxation_year() {
308 return start_date_within_taxation_year;
309 }
310
311 /**
312 * <!-- begin-user-doc -->
313 * <!-- end-user-doc -->
314 * @generated
315 */
316 @Override
317 public void setStart_date_within_taxation_year(Date newStart_date_within_taxation_year) {
318 Date oldStart_date_within_taxation_year = start_date_within_taxation_year;
319 start_date_within_taxation_year = newStart_date_within_taxation_year;
320 if (eNotificationRequired())
321 eNotify(new ENotificationImpl(this, Notification.SET, TaxationPackage.INCOME__START_DATE_WITHIN_TAXATION_YEAR, oldStart_date_within_taxation_year, start_date_within_taxation_year));
322 }
323
324 /**
325 * <!-- begin-user-doc -->
326 * <!-- end-user-doc -->
327 * @generated
328 */
329 @Override
330 public Date getStart_date_of_contract() {
331 return start_date_of_contract;
332 }
333
334 /**
335 * <!-- begin-user-doc -->
336 * <!-- end-user-doc -->
337 * @generated
338 */
339 @Override
340 public void setStart_date_of_contract(Date newStart_date_of_contract) {
341 Date oldStart_date_of_contract = start_date_of_contract;
342 start_date_of_contract = newStart_date_of_contract;
343 if (eNotificationRequired())
344 eNotify(new ENotificationImpl(this, Notification.SET, TaxationPackage.INCOME__START_DATE_OF_CONTRACT, oldStart_date_of_contract, start_date_of_contract));
345 }
346
347 /**
348 * <!-- begin-user-doc -->
349 * <!-- end-user-doc -->
350 * @generated
351 */
352 @Override
353 public Date getEnd_date_within_taxation_year() {
354 return end_date_within_taxation_year;
355 }
356
357 /**
358 * <!-- begin-user-doc -->
359 * <!-- end-user-doc -->
360 * @generated
361 */
362 @Override
363 public void setEnd_date_within_taxation_year(Date newEnd_date_within_taxation_year) {
364 Date oldEnd_date_within_taxation_year = end_date_within_taxation_year;
365 end_date_within_taxation_year = newEnd_date_within_taxation_year;
366 if (eNotificationRequired())
367 eNotify(new ENotificationImpl(this, Notification.SET, TaxationPackage.INCOME__END_DATE_WITHIN_TAXATION_YEAR, oldEnd_date_within_taxation_year, end_date_within_taxation_year));
368 }
369
370 /**
371 * <!-- begin-user-doc -->
372 * <!-- end-user-doc -->
373 * @generated
374 */
375 @Override
376 public Tax_Card getTax_card() { 244 public Tax_Card getTax_card() {
377 return tax_card; 245 return tax_card;
378 } 246 }
@@ -604,12 +472,6 @@ public abstract class IncomeImpl extends MinimalEObjectImpl.Container implements
604 return getIncome_amount(); 472 return getIncome_amount();
605 case TaxationPackage.INCOME__INCOME_TYPE: 473 case TaxationPackage.INCOME__INCOME_TYPE:
606 return getIncome_type(); 474 return getIncome_type();
607 case TaxationPackage.INCOME__START_DATE_WITHIN_TAXATION_YEAR:
608 return getStart_date_within_taxation_year();
609 case TaxationPackage.INCOME__START_DATE_OF_CONTRACT:
610 return getStart_date_of_contract();
611 case TaxationPackage.INCOME__END_DATE_WITHIN_TAXATION_YEAR:
612 return getEnd_date_within_taxation_year();
613 case TaxationPackage.INCOME__TAX_CARD: 475 case TaxationPackage.INCOME__TAX_CARD:
614 return getTax_card(); 476 return getTax_card();
615 case TaxationPackage.INCOME__TAX_LIABILITY: 477 case TaxationPackage.INCOME__TAX_LIABILITY:
@@ -641,15 +503,6 @@ public abstract class IncomeImpl extends MinimalEObjectImpl.Container implements
641 case TaxationPackage.INCOME__INCOME_TYPE: 503 case TaxationPackage.INCOME__INCOME_TYPE:
642 setIncome_type((Income_Type)newValue); 504 setIncome_type((Income_Type)newValue);
643 return; 505 return;
644 case TaxationPackage.INCOME__START_DATE_WITHIN_TAXATION_YEAR:
645 setStart_date_within_taxation_year((Date)newValue);
646 return;
647 case TaxationPackage.INCOME__START_DATE_OF_CONTRACT:
648 setStart_date_of_contract((Date)newValue);
649 return;
650 case TaxationPackage.INCOME__END_DATE_WITHIN_TAXATION_YEAR:
651 setEnd_date_within_taxation_year((Date)newValue);
652 return;
653 case TaxationPackage.INCOME__TAX_CARD: 506 case TaxationPackage.INCOME__TAX_CARD:
654 setTax_card((Tax_Card)newValue); 507 setTax_card((Tax_Card)newValue);
655 return; 508 return;
@@ -688,15 +541,6 @@ public abstract class IncomeImpl extends MinimalEObjectImpl.Container implements
688 case TaxationPackage.INCOME__INCOME_TYPE: 541 case TaxationPackage.INCOME__INCOME_TYPE:
689 setIncome_type((Income_Type)null); 542 setIncome_type((Income_Type)null);
690 return; 543 return;
691 case TaxationPackage.INCOME__START_DATE_WITHIN_TAXATION_YEAR:
692 setStart_date_within_taxation_year(START_DATE_WITHIN_TAXATION_YEAR_EDEFAULT);
693 return;
694 case TaxationPackage.INCOME__START_DATE_OF_CONTRACT:
695 setStart_date_of_contract(START_DATE_OF_CONTRACT_EDEFAULT);
696 return;
697 case TaxationPackage.INCOME__END_DATE_WITHIN_TAXATION_YEAR:
698 setEnd_date_within_taxation_year(END_DATE_WITHIN_TAXATION_YEAR_EDEFAULT);
699 return;
700 case TaxationPackage.INCOME__TAX_CARD: 544 case TaxationPackage.INCOME__TAX_CARD:
701 setTax_card((Tax_Card)null); 545 setTax_card((Tax_Card)null);
702 return; 546 return;
@@ -731,12 +575,6 @@ public abstract class IncomeImpl extends MinimalEObjectImpl.Container implements
731 return income_amount != INCOME_AMOUNT_EDEFAULT; 575 return income_amount != INCOME_AMOUNT_EDEFAULT;
732 case TaxationPackage.INCOME__INCOME_TYPE: 576 case TaxationPackage.INCOME__INCOME_TYPE:
733 return income_type != null; 577 return income_type != null;
734 case TaxationPackage.INCOME__START_DATE_WITHIN_TAXATION_YEAR:
735 return START_DATE_WITHIN_TAXATION_YEAR_EDEFAULT == null ? start_date_within_taxation_year != null : !START_DATE_WITHIN_TAXATION_YEAR_EDEFAULT.equals(start_date_within_taxation_year);
736 case TaxationPackage.INCOME__START_DATE_OF_CONTRACT:
737 return START_DATE_OF_CONTRACT_EDEFAULT == null ? start_date_of_contract != null : !START_DATE_OF_CONTRACT_EDEFAULT.equals(start_date_of_contract);
738 case TaxationPackage.INCOME__END_DATE_WITHIN_TAXATION_YEAR:
739 return END_DATE_WITHIN_TAXATION_YEAR_EDEFAULT == null ? end_date_within_taxation_year != null : !END_DATE_WITHIN_TAXATION_YEAR_EDEFAULT.equals(end_date_within_taxation_year);
740 case TaxationPackage.INCOME__TAX_CARD: 578 case TaxationPackage.INCOME__TAX_CARD:
741 return tax_card != null; 579 return tax_card != null;
742 case TaxationPackage.INCOME__TAX_LIABILITY: 580 case TaxationPackage.INCOME__TAX_LIABILITY:
@@ -765,12 +603,6 @@ public abstract class IncomeImpl extends MinimalEObjectImpl.Container implements
765 StringBuilder result = new StringBuilder(super.toString()); 603 StringBuilder result = new StringBuilder(super.toString());
766 result.append(" (income_amount: "); 604 result.append(" (income_amount: ");
767 result.append(income_amount); 605 result.append(income_amount);
768 result.append(", start_date_within_taxation_year: ");
769 result.append(start_date_within_taxation_year);
770 result.append(", start_date_of_contract: ");
771 result.append(start_date_of_contract);
772 result.append(", end_date_within_taxation_year: ");
773 result.append(end_date_within_taxation_year);
774 result.append(", tax_liability: "); 606 result.append(", tax_liability: ");
775 result.append(tax_liability); 607 result.append(tax_liability);
776 result.append(", num: "); 608 result.append(", num: ");
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Income_DetailImpl.java b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Income_DetailImpl.java
index ff882fd5..d3b7fe83 100644
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Income_DetailImpl.java
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Income_DetailImpl.java
@@ -5,6 +5,7 @@ package Taxation.impl;
5import Taxation.Income; 5import Taxation.Income;
6import Taxation.Income_Detail; 6import Taxation.Income_Detail;
7import Taxation.TaxationPackage; 7import Taxation.TaxationPackage;
8
8import org.eclipse.emf.common.notify.Notification; 9import org.eclipse.emf.common.notify.Notification;
9import org.eclipse.emf.common.notify.NotificationChain; 10import org.eclipse.emf.common.notify.NotificationChain;
10 11
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Income_TaxImpl.java b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Income_TaxImpl.java
index 3083b3fa..69b14ade 100644
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Income_TaxImpl.java
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Income_TaxImpl.java
@@ -5,6 +5,7 @@ package Taxation.impl;
5import Taxation.Income_Tax; 5import Taxation.Income_Tax;
6import Taxation.Tax_Payer; 6import Taxation.Tax_Payer;
7import Taxation.TaxationPackage; 7import Taxation.TaxationPackage;
8
8import org.eclipse.emf.common.notify.Notification; 9import org.eclipse.emf.common.notify.Notification;
9 10
10import org.eclipse.emf.ecore.EClass; 11import org.eclipse.emf.ecore.EClass;
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Income_Tax_CreditImpl.java b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Income_Tax_CreditImpl.java
index 0dbd6e21..5a6f0a68 100644
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Income_Tax_CreditImpl.java
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Income_Tax_CreditImpl.java
@@ -7,6 +7,7 @@ import Taxation.Income_Tax_Credit;
7import Taxation.Tax_Card; 7import Taxation.Tax_Card;
8import Taxation.Tax_Payer; 8import Taxation.Tax_Payer;
9import Taxation.TaxationPackage; 9import Taxation.TaxationPackage;
10
10import org.eclipse.emf.common.notify.Notification; 11import org.eclipse.emf.common.notify.Notification;
11import org.eclipse.emf.common.notify.NotificationChain; 12import org.eclipse.emf.common.notify.NotificationChain;
12 13
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Legal_Union_RecordImpl.java b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Legal_Union_RecordImpl.java
index 1ab3bf53..8853657a 100644
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Legal_Union_RecordImpl.java
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Legal_Union_RecordImpl.java
@@ -8,6 +8,7 @@ import Taxation.Physical_Person;
8import Taxation.Separation_Causes; 8import Taxation.Separation_Causes;
9import Taxation.Tax_Property; 9import Taxation.Tax_Property;
10import Taxation.TaxationPackage; 10import Taxation.TaxationPackage;
11
11import java.util.Collection; 12import java.util.Collection;
12 13
13import org.eclipse.emf.common.notify.Notification; 14import org.eclipse.emf.common.notify.Notification;
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Physical_PersonImpl.java b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Physical_PersonImpl.java
index a63a993e..13e12888 100644
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Physical_PersonImpl.java
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Physical_PersonImpl.java
@@ -7,6 +7,7 @@ import Taxation.Disability_Types;
7import Taxation.Expense; 7import Taxation.Expense;
8import Taxation.Physical_Person; 8import Taxation.Physical_Person;
9import Taxation.TaxationPackage; 9import Taxation.TaxationPackage;
10
10import java.util.Collection; 11import java.util.Collection;
11 12
12import org.eclipse.emf.common.notify.Notification; 13import org.eclipse.emf.common.notify.Notification;
@@ -20,7 +21,6 @@ import org.eclipse.emf.ecore.InternalEObject;
20import org.eclipse.emf.ecore.impl.ENotificationImpl; 21import org.eclipse.emf.ecore.impl.ENotificationImpl;
21import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; 22import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
22 23
23import org.eclipse.emf.ecore.util.EObjectContainmentEList;
24import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; 24import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
25import org.eclipse.emf.ecore.util.InternalEList; 25import org.eclipse.emf.ecore.util.InternalEList;
26 26
@@ -43,7 +43,6 @@ import org.eclipse.emf.ecore.util.InternalEList;
43 * <li>{@link Taxation.impl.Physical_PersonImpl#getBirth_day <em>Birth day</em>}</li> 43 * <li>{@link Taxation.impl.Physical_PersonImpl#getBirth_day <em>Birth day</em>}</li>
44 * <li>{@link Taxation.impl.Physical_PersonImpl#getExpenses <em>Expenses</em>}</li> 44 * <li>{@link Taxation.impl.Physical_PersonImpl#getExpenses <em>Expenses</em>}</li>
45 * <li>{@link Taxation.impl.Physical_PersonImpl#isIs_widower <em>Is widower</em>}</li> 45 * <li>{@link Taxation.impl.Physical_PersonImpl#isIs_widower <em>Is widower</em>}</li>
46 * <li>{@link Taxation.impl.Physical_PersonImpl#getOwns_Address <em>Owns Address</em>}</li>
47 * </ul> 46 * </ul>
48 * 47 *
49 * @generated 48 * @generated
@@ -250,16 +249,6 @@ public class Physical_PersonImpl extends MinimalEObjectImpl.Container implements
250 protected boolean is_widower = IS_WIDOWER_EDEFAULT; 249 protected boolean is_widower = IS_WIDOWER_EDEFAULT;
251 250
252 /** 251 /**
253 * The cached value of the '{@link #getOwns_Address() <em>Owns Address</em>}' containment reference list.
254 * <!-- begin-user-doc -->
255 * <!-- end-user-doc -->
256 * @see #getOwns_Address()
257 * @generated
258 * @ordered
259 */
260 protected EList<Address> owns_Address;
261
262 /**
263 * <!-- begin-user-doc --> 252 * <!-- begin-user-doc -->
264 * <!-- end-user-doc --> 253 * <!-- end-user-doc -->
265 * @generated 254 * @generated
@@ -516,19 +505,6 @@ public class Physical_PersonImpl extends MinimalEObjectImpl.Container implements
516 * <!-- end-user-doc --> 505 * <!-- end-user-doc -->
517 * @generated 506 * @generated
518 */ 507 */
519 @Override
520 public EList<Address> getOwns_Address() {
521 if (owns_Address == null) {
522 owns_Address = new EObjectContainmentEList<Address>(Address.class, this, TaxationPackage.PHYSICAL_PERSON__OWNS_ADDRESS);
523 }
524 return owns_Address;
525 }
526
527 /**
528 * <!-- begin-user-doc -->
529 * <!-- end-user-doc -->
530 * @generated
531 */
532 @SuppressWarnings("unchecked") 508 @SuppressWarnings("unchecked")
533 @Override 509 @Override
534 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { 510 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
@@ -553,8 +529,6 @@ public class Physical_PersonImpl extends MinimalEObjectImpl.Container implements
553 return ((InternalEList<?>)getAddresses()).basicRemove(otherEnd, msgs); 529 return ((InternalEList<?>)getAddresses()).basicRemove(otherEnd, msgs);
554 case TaxationPackage.PHYSICAL_PERSON__EXPENSES: 530 case TaxationPackage.PHYSICAL_PERSON__EXPENSES:
555 return ((InternalEList<?>)getExpenses()).basicRemove(otherEnd, msgs); 531 return ((InternalEList<?>)getExpenses()).basicRemove(otherEnd, msgs);
556 case TaxationPackage.PHYSICAL_PERSON__OWNS_ADDRESS:
557 return ((InternalEList<?>)getOwns_Address()).basicRemove(otherEnd, msgs);
558 } 532 }
559 return super.eInverseRemove(otherEnd, featureID, msgs); 533 return super.eInverseRemove(otherEnd, featureID, msgs);
560 } 534 }
@@ -589,8 +563,6 @@ public class Physical_PersonImpl extends MinimalEObjectImpl.Container implements
589 return getExpenses(); 563 return getExpenses();
590 case TaxationPackage.PHYSICAL_PERSON__IS_WIDOWER: 564 case TaxationPackage.PHYSICAL_PERSON__IS_WIDOWER:
591 return isIs_widower(); 565 return isIs_widower();
592 case TaxationPackage.PHYSICAL_PERSON__OWNS_ADDRESS:
593 return getOwns_Address();
594 } 566 }
595 return super.eGet(featureID, resolve, coreType); 567 return super.eGet(featureID, resolve, coreType);
596 } 568 }
@@ -639,10 +611,6 @@ public class Physical_PersonImpl extends MinimalEObjectImpl.Container implements
639 case TaxationPackage.PHYSICAL_PERSON__IS_WIDOWER: 611 case TaxationPackage.PHYSICAL_PERSON__IS_WIDOWER:
640 setIs_widower((Boolean)newValue); 612 setIs_widower((Boolean)newValue);
641 return; 613 return;
642 case TaxationPackage.PHYSICAL_PERSON__OWNS_ADDRESS:
643 getOwns_Address().clear();
644 getOwns_Address().addAll((Collection<? extends Address>)newValue);
645 return;
646 } 614 }
647 super.eSet(featureID, newValue); 615 super.eSet(featureID, newValue);
648 } 616 }
@@ -688,9 +656,6 @@ public class Physical_PersonImpl extends MinimalEObjectImpl.Container implements
688 case TaxationPackage.PHYSICAL_PERSON__IS_WIDOWER: 656 case TaxationPackage.PHYSICAL_PERSON__IS_WIDOWER:
689 setIs_widower(IS_WIDOWER_EDEFAULT); 657 setIs_widower(IS_WIDOWER_EDEFAULT);
690 return; 658 return;
691 case TaxationPackage.PHYSICAL_PERSON__OWNS_ADDRESS:
692 getOwns_Address().clear();
693 return;
694 } 659 }
695 super.eUnset(featureID); 660 super.eUnset(featureID);
696 } 661 }
@@ -725,8 +690,6 @@ public class Physical_PersonImpl extends MinimalEObjectImpl.Container implements
725 return expenses != null && !expenses.isEmpty(); 690 return expenses != null && !expenses.isEmpty();
726 case TaxationPackage.PHYSICAL_PERSON__IS_WIDOWER: 691 case TaxationPackage.PHYSICAL_PERSON__IS_WIDOWER:
727 return is_widower != IS_WIDOWER_EDEFAULT; 692 return is_widower != IS_WIDOWER_EDEFAULT;
728 case TaxationPackage.PHYSICAL_PERSON__OWNS_ADDRESS:
729 return owns_Address != null && !owns_Address.isEmpty();
730 } 693 }
731 return super.eIsSet(featureID); 694 return super.eIsSet(featureID);
732 } 695 }
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Private_Insurance_and_PlanImpl.java b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Private_Insurance_and_PlanImpl.java
index dfe39a95..2b1cd545 100644
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Private_Insurance_and_PlanImpl.java
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Private_Insurance_and_PlanImpl.java
@@ -5,6 +5,7 @@ package Taxation.impl;
5import Taxation.Category_of_Private_Insurance_and_Plan; 5import Taxation.Category_of_Private_Insurance_and_Plan;
6import Taxation.Private_Insurance_and_Plan; 6import Taxation.Private_Insurance_and_Plan;
7import Taxation.TaxationPackage; 7import Taxation.TaxationPackage;
8
8import org.eclipse.emf.common.notify.Notification; 9import org.eclipse.emf.common.notify.Notification;
9 10
10import org.eclipse.emf.ecore.EClass; 11import org.eclipse.emf.ecore.EClass;
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Resident_Tax_PayerImpl.java b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Resident_Tax_PayerImpl.java
index 34a1f15c..4ae64706 100644
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Resident_Tax_PayerImpl.java
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Resident_Tax_PayerImpl.java
@@ -4,6 +4,7 @@ package Taxation.impl;
4 4
5import Taxation.Resident_Tax_Payer; 5import Taxation.Resident_Tax_Payer;
6import Taxation.TaxationPackage; 6import Taxation.TaxationPackage;
7
7import org.eclipse.emf.ecore.EClass; 8import org.eclipse.emf.ecore.EClass;
8 9
9/** 10/**
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Tax_CardImpl.java b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Tax_CardImpl.java
index 68f4f7f9..ebff8555 100644
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Tax_CardImpl.java
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Tax_CardImpl.java
@@ -13,7 +13,6 @@ import Taxation.TaxationPackage;
13import Taxation.Town; 13import Taxation.Town;
14 14
15import java.util.Collection; 15import java.util.Collection;
16import java.util.Date;
17 16
18import org.eclipse.emf.common.notify.Notification; 17import org.eclipse.emf.common.notify.Notification;
19import org.eclipse.emf.common.notify.NotificationChain; 18import org.eclipse.emf.common.notify.NotificationChain;
@@ -42,8 +41,6 @@ import org.eclipse.emf.ecore.util.InternalEList;
42 * <li>{@link Taxation.impl.Tax_CardImpl#getCard_identifier <em>Card identifier</em>}</li> 41 * <li>{@link Taxation.impl.Tax_CardImpl#getCard_identifier <em>Card identifier</em>}</li>
43 * <li>{@link Taxation.impl.Tax_CardImpl#getTax_card_type <em>Tax card type</em>}</li> 42 * <li>{@link Taxation.impl.Tax_CardImpl#getTax_card_type <em>Tax card type</em>}</li>
44 * <li>{@link Taxation.impl.Tax_CardImpl#getTax_office <em>Tax office</em>}</li> 43 * <li>{@link Taxation.impl.Tax_CardImpl#getTax_office <em>Tax office</em>}</li>
45 * <li>{@link Taxation.impl.Tax_CardImpl#getValid_from_date <em>Valid from date</em>}</li>
46 * <li>{@link Taxation.impl.Tax_CardImpl#getValid_until_date <em>Valid until date</em>}</li>
47 * <li>{@link Taxation.impl.Tax_CardImpl#getPercentage_of_witholding <em>Percentage of witholding</em>}</li> 44 * <li>{@link Taxation.impl.Tax_CardImpl#getPercentage_of_witholding <em>Percentage of witholding</em>}</li>
48 * <li>{@link Taxation.impl.Tax_CardImpl#getTax_payers_name_surname <em>Tax payers name surname</em>}</li> 45 * <li>{@link Taxation.impl.Tax_CardImpl#getTax_payers_name_surname <em>Tax payers name surname</em>}</li>
49 * <li>{@link Taxation.impl.Tax_CardImpl#getTax_payers_partner_name_surname <em>Tax payers partner name surname</em>}</li> 46 * <li>{@link Taxation.impl.Tax_CardImpl#getTax_payers_partner_name_surname <em>Tax payers partner name surname</em>}</li>
@@ -142,46 +139,6 @@ public class Tax_CardImpl extends MinimalEObjectImpl.Container implements Tax_Ca
142 protected Tax_Office tax_office = TAX_OFFICE_EDEFAULT; 139 protected Tax_Office tax_office = TAX_OFFICE_EDEFAULT;
143 140
144 /** 141 /**
145 * The default value of the '{@link #getValid_from_date() <em>Valid from date</em>}' attribute.
146 * <!-- begin-user-doc -->
147 * <!-- end-user-doc -->
148 * @see #getValid_from_date()
149 * @generated
150 * @ordered
151 */
152 protected static final Date VALID_FROM_DATE_EDEFAULT = null;
153
154 /**
155 * The cached value of the '{@link #getValid_from_date() <em>Valid from date</em>}' attribute.
156 * <!-- begin-user-doc -->
157 * <!-- end-user-doc -->
158 * @see #getValid_from_date()
159 * @generated
160 * @ordered
161 */
162 protected Date valid_from_date = VALID_FROM_DATE_EDEFAULT;
163
164 /**
165 * The default value of the '{@link #getValid_until_date() <em>Valid until date</em>}' attribute.
166 * <!-- begin-user-doc -->
167 * <!-- end-user-doc -->
168 * @see #getValid_until_date()
169 * @generated
170 * @ordered
171 */
172 protected static final Date VALID_UNTIL_DATE_EDEFAULT = null;
173
174 /**
175 * The cached value of the '{@link #getValid_until_date() <em>Valid until date</em>}' attribute.
176 * <!-- begin-user-doc -->
177 * <!-- end-user-doc -->
178 * @see #getValid_until_date()
179 * @generated
180 * @ordered
181 */
182 protected Date valid_until_date = VALID_UNTIL_DATE_EDEFAULT;
183
184 /**
185 * The default value of the '{@link #getPercentage_of_witholding() <em>Percentage of witholding</em>}' attribute. 142 * The default value of the '{@link #getPercentage_of_witholding() <em>Percentage of witholding</em>}' attribute.
186 * <!-- begin-user-doc --> 143 * <!-- begin-user-doc -->
187 * <!-- end-user-doc --> 144 * <!-- end-user-doc -->
@@ -835,52 +792,6 @@ public class Tax_CardImpl extends MinimalEObjectImpl.Container implements Tax_Ca
835 * @generated 792 * @generated
836 */ 793 */
837 @Override 794 @Override
838 public Date getValid_from_date() {
839 return valid_from_date;
840 }
841
842 /**
843 * <!-- begin-user-doc -->
844 * <!-- end-user-doc -->
845 * @generated
846 */
847 @Override
848 public void setValid_from_date(Date newValid_from_date) {
849 Date oldValid_from_date = valid_from_date;
850 valid_from_date = newValid_from_date;
851 if (eNotificationRequired())
852 eNotify(new ENotificationImpl(this, Notification.SET, TaxationPackage.TAX_CARD__VALID_FROM_DATE, oldValid_from_date, valid_from_date));
853 }
854
855 /**
856 * <!-- begin-user-doc -->
857 * <!-- end-user-doc -->
858 * @generated
859 */
860 @Override
861 public Date getValid_until_date() {
862 return valid_until_date;
863 }
864
865 /**
866 * <!-- begin-user-doc -->
867 * <!-- end-user-doc -->
868 * @generated
869 */
870 @Override
871 public void setValid_until_date(Date newValid_until_date) {
872 Date oldValid_until_date = valid_until_date;
873 valid_until_date = newValid_until_date;
874 if (eNotificationRequired())
875 eNotify(new ENotificationImpl(this, Notification.SET, TaxationPackage.TAX_CARD__VALID_UNTIL_DATE, oldValid_until_date, valid_until_date));
876 }
877
878 /**
879 * <!-- begin-user-doc -->
880 * <!-- end-user-doc -->
881 * @generated
882 */
883 @Override
884 public double getPercentage_of_witholding() { 795 public double getPercentage_of_witholding() {
885 return percentage_of_witholding; 796 return percentage_of_witholding;
886 } 797 }
@@ -1771,10 +1682,6 @@ public class Tax_CardImpl extends MinimalEObjectImpl.Container implements Tax_Ca
1771 return getTax_card_type(); 1682 return getTax_card_type();
1772 case TaxationPackage.TAX_CARD__TAX_OFFICE: 1683 case TaxationPackage.TAX_CARD__TAX_OFFICE:
1773 return getTax_office(); 1684 return getTax_office();
1774 case TaxationPackage.TAX_CARD__VALID_FROM_DATE:
1775 return getValid_from_date();
1776 case TaxationPackage.TAX_CARD__VALID_UNTIL_DATE:
1777 return getValid_until_date();
1778 case TaxationPackage.TAX_CARD__PERCENTAGE_OF_WITHOLDING: 1685 case TaxationPackage.TAX_CARD__PERCENTAGE_OF_WITHOLDING:
1779 return getPercentage_of_witholding(); 1686 return getPercentage_of_witholding();
1780 case TaxationPackage.TAX_CARD__TAX_PAYERS_NAME_SURNAME: 1687 case TaxationPackage.TAX_CARD__TAX_PAYERS_NAME_SURNAME:
@@ -1864,12 +1771,6 @@ public class Tax_CardImpl extends MinimalEObjectImpl.Container implements Tax_Ca
1864 case TaxationPackage.TAX_CARD__TAX_OFFICE: 1771 case TaxationPackage.TAX_CARD__TAX_OFFICE:
1865 setTax_office((Tax_Office)newValue); 1772 setTax_office((Tax_Office)newValue);
1866 return; 1773 return;
1867 case TaxationPackage.TAX_CARD__VALID_FROM_DATE:
1868 setValid_from_date((Date)newValue);
1869 return;
1870 case TaxationPackage.TAX_CARD__VALID_UNTIL_DATE:
1871 setValid_until_date((Date)newValue);
1872 return;
1873 case TaxationPackage.TAX_CARD__PERCENTAGE_OF_WITHOLDING: 1774 case TaxationPackage.TAX_CARD__PERCENTAGE_OF_WITHOLDING:
1874 setPercentage_of_witholding((Double)newValue); 1775 setPercentage_of_witholding((Double)newValue);
1875 return; 1776 return;
@@ -1990,12 +1891,6 @@ public class Tax_CardImpl extends MinimalEObjectImpl.Container implements Tax_Ca
1990 case TaxationPackage.TAX_CARD__TAX_OFFICE: 1891 case TaxationPackage.TAX_CARD__TAX_OFFICE:
1991 setTax_office(TAX_OFFICE_EDEFAULT); 1892 setTax_office(TAX_OFFICE_EDEFAULT);
1992 return; 1893 return;
1993 case TaxationPackage.TAX_CARD__VALID_FROM_DATE:
1994 setValid_from_date(VALID_FROM_DATE_EDEFAULT);
1995 return;
1996 case TaxationPackage.TAX_CARD__VALID_UNTIL_DATE:
1997 setValid_until_date(VALID_UNTIL_DATE_EDEFAULT);
1998 return;
1999 case TaxationPackage.TAX_CARD__PERCENTAGE_OF_WITHOLDING: 1894 case TaxationPackage.TAX_CARD__PERCENTAGE_OF_WITHOLDING:
2000 setPercentage_of_witholding(PERCENTAGE_OF_WITHOLDING_EDEFAULT); 1895 setPercentage_of_witholding(PERCENTAGE_OF_WITHOLDING_EDEFAULT);
2001 return; 1896 return;
@@ -2110,10 +2005,6 @@ public class Tax_CardImpl extends MinimalEObjectImpl.Container implements Tax_Ca
2110 return tax_card_type != TAX_CARD_TYPE_EDEFAULT; 2005 return tax_card_type != TAX_CARD_TYPE_EDEFAULT;
2111 case TaxationPackage.TAX_CARD__TAX_OFFICE: 2006 case TaxationPackage.TAX_CARD__TAX_OFFICE:
2112 return tax_office != TAX_OFFICE_EDEFAULT; 2007 return tax_office != TAX_OFFICE_EDEFAULT;
2113 case TaxationPackage.TAX_CARD__VALID_FROM_DATE:
2114 return VALID_FROM_DATE_EDEFAULT == null ? valid_from_date != null : !VALID_FROM_DATE_EDEFAULT.equals(valid_from_date);
2115 case TaxationPackage.TAX_CARD__VALID_UNTIL_DATE:
2116 return VALID_UNTIL_DATE_EDEFAULT == null ? valid_until_date != null : !VALID_UNTIL_DATE_EDEFAULT.equals(valid_until_date);
2117 case TaxationPackage.TAX_CARD__PERCENTAGE_OF_WITHOLDING: 2008 case TaxationPackage.TAX_CARD__PERCENTAGE_OF_WITHOLDING:
2118 return percentage_of_witholding != PERCENTAGE_OF_WITHOLDING_EDEFAULT; 2009 return percentage_of_witholding != PERCENTAGE_OF_WITHOLDING_EDEFAULT;
2119 case TaxationPackage.TAX_CARD__TAX_PAYERS_NAME_SURNAME: 2010 case TaxationPackage.TAX_CARD__TAX_PAYERS_NAME_SURNAME:
@@ -2198,10 +2089,6 @@ public class Tax_CardImpl extends MinimalEObjectImpl.Container implements Tax_Ca
2198 result.append(tax_card_type); 2089 result.append(tax_card_type);
2199 result.append(", tax_office: "); 2090 result.append(", tax_office: ");
2200 result.append(tax_office); 2091 result.append(tax_office);
2201 result.append(", valid_from_date: ");
2202 result.append(valid_from_date);
2203 result.append(", valid_until_date: ");
2204 result.append(valid_until_date);
2205 result.append(", percentage_of_witholding: "); 2092 result.append(", percentage_of_witholding: ");
2206 result.append(percentage_of_witholding); 2093 result.append(percentage_of_witholding);
2207 result.append(", tax_payers_name_surname: "); 2094 result.append(", tax_payers_name_surname: ");
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Tax_PropertyImpl.java b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Tax_PropertyImpl.java
index e1ed46e4..b8bb6ef3 100644
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Tax_PropertyImpl.java
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Tax_PropertyImpl.java
@@ -5,6 +5,7 @@ package Taxation.impl;
5import Taxation.Legal_Union_Record; 5import Taxation.Legal_Union_Record;
6import Taxation.Tax_Property; 6import Taxation.Tax_Property;
7import Taxation.TaxationPackage; 7import Taxation.TaxationPackage;
8
8import org.eclipse.emf.common.notify.Notification; 9import org.eclipse.emf.common.notify.Notification;
9import org.eclipse.emf.common.notify.NotificationChain; 10import org.eclipse.emf.common.notify.NotificationChain;
10 11
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Taxation.ecore b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Taxation.ecore
deleted file mode 100644
index 7834561d..00000000
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/Taxation.ecore
+++ /dev/null
@@ -1,1257 +0,0 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="Taxation" nsURI="http:///TaxCardOld.ecore" nsPrefix="TaxCard">
4 <eAnnotations source="http://www.eclipse.org/OCL/Import">
5 <details key="ecore" value="http://www.eclipse.org/emf/2002/Ecore"/>
6 </eAnnotations>
7 <eClassifiers xsi:type="ecore:EEnum" name="Grantor">
8 <eLiterals name="WWW" literal="WWW"/>
9 <eLiterals name="Employer" value="1" literal="Employer"/>
10 <eLiterals name="MMM" value="2" literal="MMM"/>
11 <eLiterals name="UUU" value="3" literal="UUU"/>
12 <eLiterals name="YYY" value="4" literal="YYY"/>
13 <eLiterals name="OOO" value="5" literal="OOO"/>
14 </eClassifiers>
15 <eClassifiers xsi:type="ecore:EClass" name="Constants" abstract="true">
16 <eStructuralFeatures xsi:type="ecore:EAttribute" name="MAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD"
17 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
18 defaultValueLiteral="3480.0"/>
19 <eStructuralFeatures xsi:type="ecore:EAttribute" name="MAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE"
20 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
21 defaultValueLiteral="3600.0"/>
22 <eStructuralFeatures xsi:type="ecore:EAttribute" name="MINIMUM_SALARY" lowerBound="1"
23 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="1500.0"/>
24 <eStructuralFeatures xsi:type="ecore:EAttribute" name="FLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION"
25 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
26 defaultValueLiteral="4500.0"/>
27 <eStructuralFeatures xsi:type="ecore:EAttribute" name="MAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS"
28 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
29 defaultValueLiteral="20.0"/>
30 <eStructuralFeatures xsi:type="ecore:EAttribute" name="MINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS"
31 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
32 defaultValueLiteral="120.0"/>
33 <eStructuralFeatures xsi:type="ecore:EAttribute" name="MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC"
34 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
35 defaultValueLiteral="0.0"/>
36 <eStructuralFeatures xsi:type="ecore:EAttribute" name="MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE"
37 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
38 defaultValueLiteral="24000.0"/>
39 <eStructuralFeatures xsi:type="ecore:EAttribute" name="MAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION"
40 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
41 defaultValueLiteral="99.0"/>
42 <eStructuralFeatures xsi:type="ecore:EAttribute" name="MAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION"
43 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
44 defaultValueLiteral="30.0"/>
45 <eStructuralFeatures xsi:type="ecore:EAttribute" name="MINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION"
46 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
47 defaultValueLiteral="4.0"/>
48 <eStructuralFeatures xsi:type="ecore:EAttribute" name="FLAT_RATE_CIM_DAILY" lowerBound="1"
49 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="2.0"/>
50 <eStructuralFeatures xsi:type="ecore:EAttribute" name="FLAT_RATE_CIM_MONTHLY"
51 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
52 defaultValueLiteral="62.0"/>
53 <eStructuralFeatures xsi:type="ecore:EAttribute" name="FLAT_RATE_CIM_YEARLY" lowerBound="1"
54 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="750.0"/>
55 <eStructuralFeatures xsi:type="ecore:EAttribute" name="FLAT_RATE_CIP_DAILY" lowerBound="1"
56 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="1.0"/>
57 <eStructuralFeatures xsi:type="ecore:EAttribute" name="FLAT_RATE_CIP_MONTHLY"
58 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
59 defaultValueLiteral="25.0"/>
60 <eStructuralFeatures xsi:type="ecore:EAttribute" name="FLAT_RATE_CIP_YEARLY" lowerBound="1"
61 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="30.0"/>
62 <eStructuralFeatures xsi:type="ecore:EAttribute" name="FLAT_RATE_CIS_DAILY" lowerBound="1"
63 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="1.0"/>
64 <eStructuralFeatures xsi:type="ecore:EAttribute" name="FLAT_RATE_CIS_MONTHLY"
65 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
66 defaultValueLiteral="25.0"/>
67 <eStructuralFeatures xsi:type="ecore:EAttribute" name="FLAT_RATE_CIS_YEARLY" lowerBound="1"
68 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="300.0"/>
69 <eStructuralFeatures xsi:type="ecore:EAttribute" name="FLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT"
70 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
71 defaultValueLiteral="99.0"/>
72 <eStructuralFeatures xsi:type="ecore:EAttribute" name="MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS"
73 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
74 <eStructuralFeatures xsi:type="ecore:EAttribute" name="FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE"
75 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
76 <eStructuralFeatures xsi:type="ecore:EAttribute" name="DISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE"
77 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
78 <eStructuralFeatures xsi:type="ecore:EAttribute" name="MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE"
79 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
80 </eClassifiers>
81 <eClassifiers xsi:type="ecore:EEnum" name="Disability_Types">
82 <eLiterals name="beug"/>
83 <eLiterals name="NONE" value="1"/>
84 <eLiterals name="A" value="2" literal="A"/>
85 <eLiterals name="B" value="3" literal="B"/>
86 <eLiterals name="C" value="4" literal="C"/>
87 <eLiterals name="D" value="5" literal="D"/>
88 <eLiterals name="E" value="6" literal="E"/>
89 <eLiterals name="OTHER" value="7"/>
90 </eClassifiers>
91 <eClassifiers xsi:type="ecore:EEnum" name="Country">
92 <eLiterals name="ZZ" literal="ZZ"/>
93 <eLiterals name="FF" value="1" literal="FF"/>
94 <eLiterals name="BB" value="2" literal="BB"/>
95 <eLiterals name="DD" value="3" literal="DD"/>
96 <eLiterals name="NN" value="4" literal="NN"/>
97 <eLiterals name="OTHER" value="5" literal="OTHER"/>
98 </eClassifiers>
99 <eClassifiers xsi:type="ecore:EEnum" name="Tax_Card_Type">
100 <eLiterals name="Principal" literal="Principal"/>
101 <eLiterals name="Additional" value="1" literal="Additional"/>
102 </eClassifiers>
103 <eClassifiers xsi:type="ecore:EEnum" name="Tax_Office">
104 <eLiterals name="RTS_2" literal="RTS_2"/>
105 <eLiterals name="RTS_3" value="1" literal="RTS_3"/>
106 <eLiterals name="RTS_4" value="2" literal="RTS_4"/>
107 <eLiterals name="RTS_5" value="3" literal="RTS_5"/>
108 </eClassifiers>
109 <eClassifiers xsi:type="ecore:EEnum" name="Tax_Class_Category">
110 <eLiterals name="One" literal="One"/>
111 <eLiterals name="One_A" value="1" literal="One_A"/>
112 <eLiterals name="Two" value="2" literal="Two"/>
113 </eClassifiers>
114 <eClassifiers xsi:type="ecore:EEnum" name="Job_Activity">
115 <eLiterals name="Salary" literal="Salary"/>
116 <eLiterals name="Pension" value="1" literal="Pension"/>
117 <eLiterals name="Annuity" value="2" literal="Annuity"/>
118 </eClassifiers>
119 <eClassifiers xsi:type="ecore:EEnum" name="Town">
120 <eLiterals name="LL" literal="LL"/>
121 <eLiterals name="BB" value="1" literal="BB"/>
122 <eLiterals name="SS" value="2" literal="SS"/>
123 <eLiterals name="TT" value="3" literal="TT"/>
124 <eLiterals name="Other" value="4" literal="Other"/>
125 </eClassifiers>
126 <eClassifiers xsi:type="ecore:EEnum" name="Type_of_Rate">
127 <eLiterals name="REGULAR" literal="REGULAR"/>
128 <eLiterals name="REAL_COST" value="1" literal="REAL_COST"/>
129 </eClassifiers>
130 <eClassifiers xsi:type="ecore:EEnum" name="CE_Type">
131 <eLiterals name="INALIDITY_AND_INFIRMITY" literal="INALIDITY_AND_INFIRMITY"/>
132 <eLiterals name="DEPENDENCE_AND_CARE_EXCLUDING_CHLIDREN_NOT_PART_OF_HOUSEHOLD"
133 value="1" literal="DEPENDENCE_AND_CARE_EXCLUDING_CHLIDREN_NOT_PART_OF_HOUSEHOLD"/>
134 <eLiterals name="CARE_FOR_CHILDREN_NOT_BEING_PART_OF_HOUSEHOLD" value="2" literal="CARE_FOR_CHILDREN_NOT_BEING_PART_OF_HOUSEHOLD"/>
135 </eClassifiers>
136 <eClassifiers xsi:type="ecore:EEnum" name="Expense_Purpose">
137 <eLiterals name="HOUSE_CARE" literal="HOUSE_CARE"/>
138 <eLiterals name="CHILD_CARE" value="1" literal="CHILD_CARE"/>
139 <eLiterals name="DEPENDENCE_CARE" value="2" literal="DEPENDENCE_CARE"/>
140 <eLiterals name="OTHER" value="3" literal="OTHER"/>
141 <eLiterals name="ALIMONY" value="4"/>
142 <eLiterals name="RECURRENT_DEPT" value="5"/>
143 </eClassifiers>
144 <eClassifiers xsi:type="ecore:EEnum" name="Dependent_Type">
145 <eLiterals name="CHILD" literal="CHILD"/>
146 <eLiterals name="SPOUSE" value="1" literal="SPOUSE"/>
147 <eLiterals name="RELATIVE" value="2" literal="RELATIVE"/>
148 <eLiterals name="OTHER_FAMILY_MEMBER" value="3" literal="OTHER_FAMILY_MEMBER"/>
149 <eLiterals name="NOT_OWN_CHILD" value="4"/>
150 </eClassifiers>
151 <eClassifiers xsi:type="ecore:EClass" name="Income_Tax">
152 <eStructuralFeatures xsi:type="ecore:EReference" name="taxPayer" lowerBound="1"
153 eType="#//Tax_Payer"/>
154 <eStructuralFeatures xsi:type="ecore:EAttribute" name="tax_amount" lowerBound="1"
155 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
156 <eStructuralFeatures xsi:type="ecore:EAttribute" name="tax_year" lowerBound="1"
157 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
158 <eStructuralFeatures xsi:type="ecore:EAttribute" name="id6" ordered="false" lowerBound="1"
159 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
160 </eClassifiers>
161 <eClassifiers xsi:type="ecore:EClass" name="Tax_Payer" abstract="true" eSuperTypes="#//Physical_Person #//Tax_Case">
162 <eAnnotations source="duplicates">
163 <contents xsi:type="ecore:EReference" name="expenses" ordered="false" upperBound="-1"
164 eType="#//Expense" containment="true">
165 <eAnnotations source="redefines" references="#//Physical_Person/expenses"/>
166 </contents>
167 </eAnnotations>
168 <eOperations name="is_dependent_part_of_the_household" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
169 <eParameters name="IN_dependent" lowerBound="1" eType="#//Dependent"/>
170 </eOperations>
171 <eOperations name="number_of_months_of_allowance" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
172 <eOperations name="deduction_according_disability_rate" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
173 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
174 <details key="body" value="if ( self.disability_percentage >= 0.25 and self.disability_percentage &lt; 0.35) then&#xA;&#x9;&#x9;&#x9;150.0&#xA;&#x9;&#x9;&#x9;else if ( self.disability_percentage >= 0.35 and self.disability_percentage &lt; 0.45) then&#xA;&#x9;&#x9;&#x9;225.0&#xA;&#x9;&#x9;&#x9;else if ( self.disability_percentage >=0.45 and self.disability_percentage &lt;0.55) then&#xA;&#x9;&#x9;&#x9;375.0&#xA;&#x9;&#x9;&#x9;else if ( self.disability_percentage >= 0.55 and self.disability_percentage &lt; 0.65 ) then&#xA;&#x9;&#x9;&#x9;450.0&#xA;&#x9;&#x9;&#x9;else if ( self.disability_percentage >= 0.65 and self.disability_percentage &lt; 0.75) then&#xA;&#x9;&#x9;&#x9;525.0&#xA;&#x9;&#x9;&#x9;else if ( self.disability_percentage >=0.75 and self.disability_percentage &lt; 0.85) then&#xA;&#x9;&#x9;&#x9;585.0&#xA;&#x9;&#x9;&#x9;else if ( self.disability_percentage >=0.85 and self.disability_percentage&lt; 0.95) then&#xA;&#x9;&#x9;&#x9;645.0&#xA;&#x9;&#x9;&#x9;else if ( self.disability_percentage >= 0.95 and self.disability_percentage&lt;=1)then&#xA;&#x9;&#x9;&#x9;735.0 else 0.0 endif endif endif endif endif endif endif endif"/>
175 </eAnnotations>
176 </eOperations>
177 <eOperations name="getIsTaxedJointly" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
178 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
179 <details key="body" value="let is_married:Boolean = if(self.getLegalUnionRecord(year).oclIsUndefined()) then false else self.getLegalUnionRecord(year).oclIsTypeOf(Marriage_Record) endif in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;/** Description: - **/&#x9;&#xA;if (is_married) = false then&#xA; let is_in_partnership_relation:Boolean = if(self.getLegalUnionRecord(year).oclIsUndefined()) then false else self.getLegalUnionRecord(year).oclIsTypeOf(Partnership_Record) endif in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; if (is_in_partnership_relation) = false then&#xA; false&#xA; else&#xA; if (is_in_partnership_relation) = true then&#xA; let is_joint_tax_beneficial:Boolean = true in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; if (is_joint_tax_beneficial) = true then&#xA; let is_couple_living_apart:Boolean = false in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; let relation_lasted_for_the_taxation_year:Boolean = true in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; if (relation_lasted_for_the_taxation_year and not is_couple_living_apart) = false then&#xA; false&#xA; else&#xA; if (relation_lasted_for_the_taxation_year and not is_couple_living_apart) = true then&#xA; let are_both_spouses_resident:Boolean = (self.getSpouse(year).oclIsTypeOf(Resident_Tax_Payer) or self.getSpouse(year).oclIsTypeOf(Physical_Person)) and self.oclIsTypeOf(Resident_Tax_Payer) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; if (are_both_spouses_resident) = true then&#xA; true&#xA; else&#xA; if (are_both_spouses_resident) = false then&#xA; let are_both_spouses_non_resident:Boolean = (self.getSpouse(year).oclIsTypeOf(Non_Resident_Tax_Payer) or self.getSpouse(year).oclIsTypeOf(Physical_Person)) and self.oclIsTypeOf(Non_Resident_Tax_Payer) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; if (are_both_spouses_non_resident) = false then&#xA; false&#xA; else&#xA; if (are_both_spouses_non_resident) = true then&#xA; let my_incomes_all:Set(Income) = self.incomes->select(i:Income|i.year=year and i.oclIsTypeOf(Local_Income)) &#xA; &#x9;in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; let spouse_incomes_all:Set(Income) = if(self.getSpouse(year).oclIsKindOf(Tax_Payer)) then self.getSpouse(year).oclAsType(Tax_Payer).incomes->select(i:Income|i.year=year and i.oclIsTypeOf(Local_Income)) else OrderedSet{} endif&#x9;in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; let total_household_income:Real = if(my_incomes_all->oclIsInvalid() and spouse_incomes_all->oclIsInvalid()) then 0 else if(my_incomes_all->oclIsInvalid()) then spouse_incomes_all.income_amount->sum() else if(spouse_incomes_all->oclIsInvalid()) then my_incomes_all.income_amount->sum() else my_incomes_all.income_amount->sum() + spouse_incomes_all.income_amount->sum() endif endif endif&#xA; in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; let resident_taxpayer_income:Real = if(self.oclIsTypeOf(Resident_Tax_Payer)) then if(my_incomes_all->oclIsInvalid()) then 0.0 else my_incomes_all.income_amount->sum() endif else if(spouse_incomes_all->oclIsInvalid()) then 0.0 else spouse_incomes_all.income_amount->sum() endif endif in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; let non_resident_taxpayer_in_Belgium:Boolean = false in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; if ((resident_taxpayer_income > total_household_income * 0.9) or (non_resident_taxpayer_in_Belgium and resident_taxpayer_income > total_household_income * 0.5)) = true then&#xA; true&#xA; else&#xA; if ((resident_taxpayer_income > total_household_income * 0.9) or (non_resident_taxpayer_in_Belgium and resident_taxpayer_income > total_household_income * 0.5)) = false then&#xA; false&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; if (is_joint_tax_beneficial) = false then&#xA; false&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA;else&#xA; if (is_married) = true then&#xA; let are_both_spouses_resident:Boolean = (self.getSpouse(year).oclIsTypeOf(Resident_Tax_Payer) or self.getSpouse(year).oclIsTypeOf(Physical_Person)) and self.oclIsTypeOf(Resident_Tax_Payer) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; if (are_both_spouses_resident) = true then&#xA; true&#xA; else&#xA; if (are_both_spouses_resident) = false then&#xA; let are_both_spouses_non_resident:Boolean = (self.getSpouse(year).oclIsTypeOf(Non_Resident_Tax_Payer) or self.getSpouse(year).oclIsTypeOf(Physical_Person)) and self.oclIsTypeOf(Non_Resident_Tax_Payer) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; if (are_both_spouses_non_resident) = true then&#xA; let my_incomes_all:Set(Income) = self.incomes->select(i:Income|i.year=year and i.oclIsTypeOf(Local_Income)) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; let spouse_incomes_all:Set(Income) = if(self.getSpouse(year).oclIsKindOf(Tax_Payer)) then self.getSpouse(year).oclAsType(Tax_Payer).incomes->select(i:Income|i.year=year and i.oclIsTypeOf(Local_Income)) else OrderedSet{} endif&#x9;in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; let total_household_income:Real = if(my_incomes_all->oclIsInvalid() and spouse_incomes_all->oclIsInvalid()) then 0 else if(my_incomes_all->oclIsInvalid()) then spouse_incomes_all.income_amount->sum() else if(spouse_incomes_all->oclIsInvalid()) then my_incomes_all.income_amount->sum() else my_incomes_all.income_amount->sum() + spouse_incomes_all.income_amount->sum() endif endif endif&#xA; in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; let resident_taxpayer_income:Real = if(self.oclIsTypeOf(Resident_Tax_Payer)) then if(my_incomes_all->oclIsInvalid()) then 0.0 else my_incomes_all.income_amount->sum() endif else if(spouse_incomes_all->oclIsInvalid()) then 0.0 else spouse_incomes_all.income_amount->sum() endif endif in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; let non_resident_taxpayer_in_Belgium:Boolean = false in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; let is_couple_assimilated_to_residents:Boolean = (resident_taxpayer_income > total_household_income * 0.9) or (non_resident_taxpayer_in_Belgium and resident_taxpayer_income > total_household_income * 0.5) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; if (is_couple_assimilated_to_residents) = true then&#xA; true&#xA; else&#xA; if (is_couple_assimilated_to_residents) = false then&#xA; let is_couple_living_apart:Boolean = false in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; if (is_couple_living_apart) = true then&#xA; false&#xA; else&#xA; if (is_couple_living_apart) = false then&#xA; let my_incomes:Set(Income) = self.incomes->select(i:Income|i.year=year and i.income_type.oclIsKindOf(Employment_Income) and i.oclIsTypeOf(Local_Income)) &#x9;in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; let spouse_incomes:Set(Income) = if(self.getSpouse(year).oclIsKindOf(Tax_Payer)) then self.getSpouse(year).oclAsType(Tax_Payer).incomes->select(i:Income|i.year=year and i.income_type.oclIsKindOf(Employment_Income) and i.oclIsTypeOf(Local_Income)) else OrderedSet{} endif&#x9;in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; let both_spouses_have_professional_income:Boolean = if(my_incomes->oclIsInvalid() or spouse_incomes->oclIsInvalid()) then false else my_incomes->size()>0 and spouse_incomes->size()>0 endif in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; if (both_spouses_have_professional_income) = true then&#xA; let local_professional_household_income:Real = self.getProfetionalIncomeHouseholdZZ(year) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; let total_professional_household_income:Real = self.getProfetionalIncomeHousehold(year) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; if (local_professional_household_income > total_professional_household_income * 0.5) = false then&#xA; false&#xA; else&#xA; if (local_professional_household_income > total_professional_household_income * 0.5) = true then&#xA; true&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; if (both_spouses_have_professional_income) = false then&#xA; false&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; if (are_both_spouses_non_resident) = false then&#xA; let is_couple_living_apart:Boolean = false in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; if (is_couple_living_apart) = true then&#xA; false&#xA; else&#xA; if (is_couple_living_apart) = false then&#xA; let my_incomes:Set(Income) = self.incomes->select(i:Income|i.year=year and i.income_type.oclIsKindOf(Employment_Income) and i.oclIsTypeOf(Local_Income)) &#x9;in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; let spouse_incomes:Set(Income) = if(self.getSpouse(year).oclIsKindOf(Tax_Payer)) then self.getSpouse(year).oclAsType(Tax_Payer).incomes->select(i:Income|i.year=year and i.income_type.oclIsKindOf(Employment_Income) and i.oclIsTypeOf(Local_Income)) else OrderedSet{} endif&#x9;in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; let both_spouses_have_professional_income:Boolean = if(my_incomes->oclIsInvalid() or spouse_incomes->oclIsInvalid()) then false else my_incomes->size()>0 and spouse_incomes->size()>0 endif in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; if (both_spouses_have_professional_income) = true then&#xA; let total_professional_household_income:Real = self.getProfetionalIncomeHousehold(year) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; let professional_income_resident_taxpayer:Real = if(self.oclIsTypeOf(Resident_Tax_Payer)) then if(my_incomes->oclIsInvalid()) then 0.0 else my_incomes.income_amount->sum() endif else if(spouse_incomes->oclIsInvalid()) then 0.0 else spouse_incomes.income_amount->sum() endif endif in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: - **/&#x9;&#xA; if (professional_income_resident_taxpayer > total_professional_household_income * 0.9) = false then&#xA; false&#xA; else&#xA; if (professional_income_resident_taxpayer > total_professional_household_income * 0.9) = true then&#xA; true&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; if (both_spouses_have_professional_income) = false then&#xA; false&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; invalid&#xA; endif&#xA;endif"/>
180 </eAnnotations>
181 <eParameters name="year" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
182 </eOperations>
183 <eOperations name="getIsreceivingAllowancesForChildren" ordered="false" lowerBound="1"
184 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
185 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
186 <details key="body" value="let children1:Set(Dependent)=self.dependents->select(dependent_type=Dependent_Type::CHILD) in&#xA;&#x9;&#x9;&#x9;let union:Legal_Union_Record=self.getLegalUnionRecord(year) in&#xA;&#x9;&#x9;&#x9;let house: Household = union.household in&#xA;&#x9;&#x9;&#x9;let children:Set(Dependent)=if (house.oclIsInvalid()) then children1 else children1->union(house.children) endif in&#xA;&#x9;&#x9;&#x9;if(children->size()=0)then&#xA;&#x9;&#x9;&#x9;false&#xA;&#x9;&#x9;&#x9;else&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;let allowances:Boolean=children.allowances->select(starting_year&lt;=year and ending_year=-1 and amount>0)->size()>0in&#xA;&#x9;&#x9;&#x9;if(allowances)then&#xA;&#x9;&#x9;&#x9;true&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;false&#xA;&#x9;&#x9;&#x9;endif&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;endif"/>
187 </eAnnotations>
188 <eParameters name="year" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
189 </eOperations>
190 <eOperations name="getProfetionalIncomeHousehold" ordered="false" lowerBound="1"
191 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
192 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
193 <details key="body" value="let spouse:Physical_Person= self.getSpouse(year)in&#xA;&#x9;&#x9;&#x9;let include_spouse:Boolean= if(not spouse.oclIsUndefined()) then spouse.oclIsKindOf(Tax_Payer) else false endif in&#xA;&#x9;&#x9;&#x9;let myIncomes:Set(Income)=self.incomes->select(i:Income|i.year=year and i.income_type.oclIsKindOf(Employment_Income)) in&#xA;&#x9;&#x9;&#x9;let myPart:Real= if(myIncomes->oclIsInvalid())then 0.0 else myIncomes.income_amount->sum() endif in&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;if(include_spouse=false)then&#xA;&#x9;&#x9;&#x9;myPart&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;let herIncomes:Set(Income)=spouse.oclAsType(Tax_Payer).incomes->select(i:Income|i.year=year and i.income_type.oclIsKindOf(Employment_Income)) in&#xA;&#x9;&#x9;&#x9;let herPart:Real=if(herIncomes->oclIsInvalid())then 0.0 else herIncomes.income_amount->sum() endif in&#xA;&#x9;&#x9;&#x9;myPart+herPart&#xA;&#x9;&#x9;&#x9;endif"/>
194 </eAnnotations>
195 <eParameters name="year" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
196 </eOperations>
197 <eOperations name="getProfetionalIncomeHouseholdZZ" ordered="false" lowerBound="1"
198 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
199 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
200 <details key="body" value="let spouse:Physical_Person= self.getSpouse(year)in&#xA;&#x9;&#x9;&#x9;let include_spouse:Boolean= if(not spouse.oclIsUndefined()) then spouse.oclIsKindOf(Tax_Payer) else false endif in&#xA;&#x9;&#x9;&#x9;let myIncomes:Set(Income)=self.incomes->select(i:Income|i.year=year and i.income_type.oclIsKindOf(Employment_Income) and i.oclIsTypeOf(Local_Income)) in&#xA;&#x9;&#x9;&#x9;let myPart:Real=if(myIncomes->oclIsInvalid())then 0.0 else myIncomes.income_amount->sum() endif in&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;if(include_spouse=false)then&#xA;&#x9;&#x9;&#x9;myPart&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;let herIncomes:Set(Income)=spouse.oclAsType(Tax_Payer).incomes->select(i:Income|i.year=year and i.income_type.oclIsKindOf(Employment_Income)and i.oclIsTypeOf(Local_Income)) in&#xA;&#x9;&#x9;&#x9;let herPart:Real=if(herIncomes->oclIsInvalid())then 0.0 else herIncomes.income_amount->sum() endif in&#xA;&#x9;&#x9;&#x9;myPart+herPart&#xA;&#x9;&#x9;&#x9;endif"/>
201 </eAnnotations>
202 <eParameters name="year" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
203 </eOperations>
204 <eOperations name="getTaxClass" ordered="false" lowerBound="1" eType="#//Tax_Class_Category">
205 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
206 <details key="body" value="let is_resident_taxpayer:Boolean = self.oclIsKindOf(Resident_Tax_Payer) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;/** Description: Returns yes if a given taxpayer is a resident. - **/&#x9;&#xA;if (is_resident_taxpayer) = true then&#xA; let is_taxed_jointly:Boolean = self.getIsTaxedJointly(taxation_year) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: Returns yes if the taxpayer is married or has a partnership contract. - **/&#x9;&#xA; if (is_taxed_jointly) = true then&#xA; Tax_Class_Category::Two&#xA; else&#xA; if (is_taxed_jointly) = false then&#xA; let is_divorced:Boolean = self.getSeperationState(taxation_year,Separation_Causes::DIVORCE) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: Returns yes if the taxpayer is divorced within the selected taxation year. - **/&#x9;&#xA; let is_living_separately:Boolean = self.getSeperationState(taxation_year,Separation_Causes::SEPARATION_DE_FAIT) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: Returns yes if the taxpayer is not cohabiting with his/her spouse. In French: &quot;Separation de fait&quot;. - **/&#x9;&#xA; let is_living_separately_by_court:Boolean = self.getSeperationState(taxation_year,Separation_Causes::SEPARATION_BY_COURT) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: Returns yes if the taxpayer has a judicial sentence dismissing him from cohabiting with his/her spouse. In French: &quot;Separation de corps&quot;. - **/&#x9;&#xA; if (is_divorced or is_living_separately_by_court or (is_living_separately and not is_resident_taxpayer)) = false then&#xA; let is_widower:Boolean = self.is_widower in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: Returns yes if the taxpayer has the statute of widower for the current taxation year. - **/&#x9;&#xA; if (is_widower) = true then&#xA; let spouse_death_year:Integer = self.last_start_year_widower in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: Returns the year on which the spouse of the taxpayer past away. - **/&#x9;&#xA; if (spouse_death_year &lt;= taxation_year and spouse_death_year >= taxation_year -3) = true then&#xA; Tax_Class_Category::Two&#xA; else&#xA; if (spouse_death_year &lt;= taxation_year and spouse_death_year >= taxation_year -3) = false then&#xA; Tax_Class_Category::One_A&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; if (is_widower) = false then&#xA; let is_reciving_bonus_for_children:Boolean = self.getIsreceivingAllowancesForChildren(taxation_year) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: Returns yes if the taxpayer is receiving a bonus for children in household. - **/&#x9;&#xA; if (is_reciving_bonus_for_children) = true then&#xA; Tax_Class_Category::One_A&#xA; else&#xA; if (is_reciving_bonus_for_children) = false then&#xA; let taxpayer_age:Integer = self.getAge(taxation_year) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: Returns the age of a given taxpayer. - **/&#x9;&#xA; if (taxpayer_age >= 64) = true then&#xA; Tax_Class_Category::One_A&#xA; else&#xA; if (taxpayer_age >= 64) = false then&#xA; Tax_Class_Category::One&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; if (is_divorced or is_living_separately_by_court or (is_living_separately and not is_resident_taxpayer)) = true then&#xA; let can_beneficiate_from_transition_state :Boolean = self.getDivorceTransitionState(taxation_year) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: Returns yes if: (1) the divorce/separation occurred within the last three years from the taxation year, and (2) the taxpayer did has not benefited from a divorce/separation transition state for the last five years from the current taxation year. - **/&#x9;&#xA; if (can_beneficiate_from_transition_state ) = false then&#xA; let is_widower:Boolean = self.is_widower in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: Returns yes if the taxpayer has the statute of widower for the current taxation year. - **/&#x9;&#xA; if (is_widower) = true then&#xA; let spouse_death_year:Integer = self.last_start_year_widower in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: Returns the year on which the spouse of the taxpayer past away. - **/&#x9;&#xA; if (spouse_death_year &lt;= taxation_year and spouse_death_year >= taxation_year -3) = true then&#xA; Tax_Class_Category::Two&#xA; else&#xA; if (spouse_death_year &lt;= taxation_year and spouse_death_year >= taxation_year -3) = false then&#xA; Tax_Class_Category::One_A&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; if (is_widower) = false then&#xA; let is_reciving_bonus_for_children:Boolean = self.getIsreceivingAllowancesForChildren(taxation_year) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: Returns yes if the taxpayer is receiving a bonus for children in household. - **/&#x9;&#xA; if (is_reciving_bonus_for_children) = true then&#xA; Tax_Class_Category::One_A&#xA; else&#xA; if (is_reciving_bonus_for_children) = false then&#xA; let taxpayer_age:Integer = self.getAge(taxation_year) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: Returns the age of a given taxpayer. - **/&#x9;&#xA; if (taxpayer_age >= 64) = true then&#xA; Tax_Class_Category::One_A&#xA; else&#xA; if (taxpayer_age >= 64) = false then&#xA; Tax_Class_Category::One&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; if (can_beneficiate_from_transition_state ) = true then&#xA; Tax_Class_Category::Two&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA;else&#xA; if (is_resident_taxpayer) = false then&#xA; let is_married:Boolean = self.getIsMaried(taxation_year) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: Returns yes if the taxpayer is married. - **/&#x9;&#xA; if (is_married) = false then&#xA; let is_taxed_jointly:Boolean = self.getIsTaxedJointly(taxation_year) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: Returns yes if the taxpayer is married or has a partnership contract. - **/&#x9;&#xA; if (is_taxed_jointly) = true then&#xA; Tax_Class_Category::Two&#xA; else&#xA; if (is_taxed_jointly) = false then&#xA; let is_divorced:Boolean = self.getSeperationState(taxation_year,Separation_Causes::DIVORCE) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: Returns yes if the taxpayer is divorced within the selected taxation year. - **/&#x9;&#xA; let is_living_separately:Boolean = self.getSeperationState(taxation_year,Separation_Causes::SEPARATION_DE_FAIT) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: Returns yes if the taxpayer is not cohabiting with his/her spouse. In French: &quot;Separation de fait&quot;. - **/&#x9;&#xA; let is_living_separately_by_court:Boolean = self.getSeperationState(taxation_year,Separation_Causes::SEPARATION_BY_COURT) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: Returns yes if the taxpayer has a judicial sentence dismissing him from cohabiting with his/her spouse. In French: &quot;Separation de corps&quot;. - **/&#x9;&#xA; if (is_divorced or is_living_separately_by_court or (is_living_separately and not is_resident_taxpayer)) = false then&#xA; let is_widower:Boolean = self.is_widower in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: Returns yes if the taxpayer has the statute of widower for the current taxation year. - **/&#x9;&#xA; if (is_widower) = true then&#xA; let spouse_death_year:Integer = self.last_start_year_widower in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: Returns the year on which the spouse of the taxpayer past away. - **/&#x9;&#xA; if (spouse_death_year &lt;= taxation_year and spouse_death_year >= taxation_year -3) = true then&#xA; Tax_Class_Category::Two&#xA; else&#xA; if (spouse_death_year &lt;= taxation_year and spouse_death_year >= taxation_year -3) = false then&#xA; Tax_Class_Category::One_A&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; if (is_widower) = false then&#xA; let is_reciving_bonus_for_children:Boolean = self.getIsreceivingAllowancesForChildren(taxation_year) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: Returns yes if the taxpayer is receiving a bonus for children in household. - **/&#x9;&#xA; if (is_reciving_bonus_for_children) = true then&#xA; Tax_Class_Category::One_A&#xA; else&#xA; if (is_reciving_bonus_for_children) = false then&#xA; let taxpayer_age:Integer = self.getAge(taxation_year) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: Returns the age of a given taxpayer. - **/&#x9;&#xA; if (taxpayer_age >= 64) = true then&#xA; Tax_Class_Category::One_A&#xA; else&#xA; if (taxpayer_age >= 64) = false then&#xA; Tax_Class_Category::One&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; if (is_divorced or is_living_separately_by_court or (is_living_separately and not is_resident_taxpayer)) = true then&#xA; let can_beneficiate_from_transition_state :Boolean = self.getDivorceTransitionState(taxation_year) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: Returns yes if: (1) the divorce/separation occurred within the last three years from the taxation year, and (2) the taxpayer did has not benefited from a divorce/separation transition state for the last five years from the current taxation year. - **/&#x9;&#xA; if (can_beneficiate_from_transition_state ) = false then&#xA; let is_widower:Boolean = self.is_widower in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: Returns yes if the taxpayer has the statute of widower for the current taxation year. - **/&#x9;&#xA; if (is_widower) = true then&#xA; let spouse_death_year:Integer = self.last_start_year_widower in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: Returns the year on which the spouse of the taxpayer past away. - **/&#x9;&#xA; if (spouse_death_year &lt;= taxation_year and spouse_death_year >= taxation_year -3) = true then&#xA; Tax_Class_Category::Two&#xA; else&#xA; if (spouse_death_year &lt;= taxation_year and spouse_death_year >= taxation_year -3) = false then&#xA; Tax_Class_Category::One_A&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; if (is_widower) = false then&#xA; let is_reciving_bonus_for_children:Boolean = self.getIsreceivingAllowancesForChildren(taxation_year) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: Returns yes if the taxpayer is receiving a bonus for children in household. - **/&#x9;&#xA; if (is_reciving_bonus_for_children) = true then&#xA; Tax_Class_Category::One_A&#xA; else&#xA; if (is_reciving_bonus_for_children) = false then&#xA; let taxpayer_age:Integer = self.getAge(taxation_year) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: Returns the age of a given taxpayer. - **/&#x9;&#xA; if (taxpayer_age >= 64) = true then&#xA; Tax_Class_Category::One_A&#xA; else&#xA; if (taxpayer_age >= 64) = false then&#xA; Tax_Class_Category::One&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; if (can_beneficiate_from_transition_state ) = true then&#xA; Tax_Class_Category::Two&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; if (is_married) = true then&#xA; let total_professional_income_household:Real = self.getProfetionalIncomeHousehold(taxation_year) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: Returns the sum of the taxpayer's household professional incomes. - **/&#x9;&#xA; let sum_professional_income_household_ZZ:Real = self.getProfetionalIncomeHouseholdZZ(taxation_year) in&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA; /** Description: Returns the sum of the taxpayer's household professional incomes that are taxed in ZZ. - **/&#x9;&#xA; if (sum_professional_income_household_ZZ > (0.5 * total_professional_income_household)) = true then&#xA; Tax_Class_Category::Two&#xA; else&#xA; if (sum_professional_income_household_ZZ > (0.5 * total_professional_income_household)) = false then&#xA; Tax_Class_Category::One_A&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; invalid&#xA; endif&#xA; endif&#xA; else&#xA; invalid&#xA; endif&#xA;endif"/>
207 </eAnnotations>
208 <eParameters name="taxation_year" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
209 </eOperations>
210 <eStructuralFeatures xsi:type="ecore:EReference" name="dependents" ordered="false"
211 upperBound="-1" eType="#//Dependent" containment="true" eOpposite="#//Dependent/responsible_person"/>
212 <eStructuralFeatures xsi:type="ecore:EReference" name="from_agent" lowerBound="1"
213 eType="#//FromAgent" containment="true" eOpposite="#//FromAgent/taxPayer"/>
214 <eStructuralFeatures xsi:type="ecore:EReference" name="incomes" ordered="false"
215 lowerBound="1" upperBound="-1" eType="#//Income" containment="true" eOpposite="#//Income/taxPayer"/>
216 <eStructuralFeatures xsi:type="ecore:EReference" name="from_law" lowerBound="1"
217 eType="#//FromLaw" containment="true" eOpposite="#//FromLaw/taxPayer"/>
218 <eStructuralFeatures xsi:type="ecore:EAttribute" name="AEP_deduction" ordered="false"
219 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
220 <eStructuralFeatures xsi:type="ecore:EAttribute" name="taxesDue" ordered="false"
221 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
222 </eClassifiers>
223 <eClassifiers xsi:type="ecore:EClass" name="Physical_Person">
224 <eOperations name="is_separated_from" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
225 <eParameters name="IN_person" lowerBound="1" eType="#//Physical_Person"/>
226 </eOperations>
227 <eOperations name="is_person_affiliated_personnaly_to_social_security" lowerBound="1"
228 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
229 <eOperations name="getSeperationState" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
230 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
231 <details key="body" value="let legel_unions:Set(Legal_Union_Record)=Legal_Union_Record.allInstances()->select(individual_A=self or individual_B=self) in&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;if(legel_unions->size()=0) then&#xA;&#x9;&#x9;&#x9;false&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;let possible_unions:Set(Legal_Union_Record)=legel_unions->select(start_year&lt;=year)in&#xA;&#x9;&#x9;&#x9;let lasted_union:Legal_Union_Record= possible_unions->select(start_year=possible_unions.start_year->max())->any(true) in&#xA;&#x9;&#x9;&#x9;if(lasted_union.end_year=-1)then&#xA;&#x9;&#x9;&#x9;false&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;lasted_union.separation_cause=seperation_type&#xA;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;endif"/>
232 </eAnnotations>
233 <eParameters name="year" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
234 <eParameters name="seperation_type" ordered="false" lowerBound="1" eType="#//Separation_Causes"/>
235 </eOperations>
236 <eOperations name="getAge" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger">
237 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
238 <details key="body" value="&#x9;if(birth_year>=year )then&#xA;&#x9;&#x9;&#x9;0&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;year-birth_year&#xA;&#x9;&#x9;&#x9;endif"/>
239 </eAnnotations>
240 <eParameters name="year" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
241 </eOperations>
242 <eOperations name="getIsMaried" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
243 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
244 <details key="body" value="&#x9;let legel_unions:Set(Legal_Union_Record)=Legal_Union_Record.allInstances()->select( ((individual_A=self or individual_B=self) and oclIsKindOf(Marriage_Record))) in&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;if(legel_unions->size()=0) then&#xA;&#x9;&#x9;&#x9;false&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;let possible_unions:Set(Legal_Union_Record)=legel_unions->select(start_year&lt;=year)in&#xA;&#x9;&#x9;&#x9;let lasted_union:Legal_Union_Record= possible_unions->select(start_year=possible_unions.start_year->max())->any(true) in&#xA;&#x9;&#x9;&#x9;if(lasted_union.end_year=-1)then&#xA;&#x9;&#x9;&#x9;true&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;false&#xA;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;endif"/>
245 </eAnnotations>
246 <eParameters name="year" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
247 </eOperations>
248 <eOperations name="getSeperationYear" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger">
249 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
250 <details key="body" value="let legel_unions:Set(Legal_Union_Record)=Legal_Union_Record.allInstances()->select(individual_A=self or individual_B=self) in&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;if(legel_unions->size()=0) then&#xA;&#x9;&#x9;&#x9;-1&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;let possible_unions:Set(Legal_Union_Record)=legel_unions->select(start_year&lt;=year)in&#xA;&#x9;&#x9;&#x9;let lasted_union:Legal_Union_Record= possible_unions->select(start_year=possible_unions.start_year->max())->any(true) in&#xA;&#x9;&#x9;&#x9;if(lasted_union.oclIsUndefined()) then&#xA;&#x9;&#x9;&#x9;-1&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;if(lasted_union.end_year=-1)then&#xA;&#x9;&#x9;&#x9;-1&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;lasted_union.end_year&#xA;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;endif"/>
251 </eAnnotations>
252 <eParameters name="year" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
253 </eOperations>
254 <eOperations name="getDivorceTransitionState" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
255 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
256 <details key="body" value="let sep_year:Integer=self.getSeperationYear(year) in&#xA;&#x9;&#x9;&#x9;if(sep_year=-1)then&#xA;&#x9;&#x9;&#x9;false&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;if( (sep_year &lt;= year and sep_year >= (year -3))=false) then&#xA;&#x9;&#x9;&#x9;false&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;let past_sep_year:Integer=self.getSeperationYear(year-5) in&#xA;&#x9;&#x9;&#x9;if(past_sep_year=-1)then&#xA;&#x9;&#x9;&#x9;true&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;false&#xA;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;endif"/>
257 </eAnnotations>
258 <eParameters name="year" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
259 </eOperations>
260 <eOperations name="getSpouse" ordered="false" lowerBound="1" eType="#//Physical_Person">
261 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
262 <details key="body" value="&#x9;let legel_unions:Set(Legal_Union_Record)=Legal_Union_Record.allInstances()->select( ((individual_A=self or individual_B=self))) in&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;if(legel_unions->size()=0) then&#xA;&#x9;&#x9;&#x9;let union:Legal_Union_Record=self.getLegalUnionRecord(year) in &#xA;&#x9;&#x9;&#x9;if(union.oclIsInvalid())then&#xA;&#x9;&#x9;&#x9;invalid&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9; if(union.individual_B=self) then union.individual_A.oclAsType(Physical_Person) else union.individual_B.oclAsType(Physical_Person) endif endif&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;let possible_unions:Set(Legal_Union_Record)=legel_unions->select(start_year&lt;=year)in&#xA;&#x9;&#x9;&#x9;let lasted_union:Legal_Union_Record= possible_unions->select(start_year=possible_unions.start_year->max())->any(true) in&#xA;&#x9;&#x9;&#x9;if(lasted_union.end_year=-1)then&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;if(lasted_union.individual_A=self)then&#xA;&#x9;&#x9;&#x9;lasted_union.individual_B&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;lasted_union.individual_A&#xA;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;invalid&#xA;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;endif"/>
263 </eAnnotations>
264 <eParameters name="year" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
265 </eOperations>
266 <eOperations name="getLegalUnionRecord" ordered="false" lowerBound="1" eType="#//Legal_Union_Record">
267 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
268 <details key="body" value="let legel_unions:Set(Legal_Union_Record)=Legal_Union_Record.allInstances()->select( ((individual_A=self or individual_B=self))) in&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;if(legel_unions->size()=0) then&#xA;&#x9;&#x9;&#x9;invalid&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;let possible_unions:Set(Legal_Union_Record)=legel_unions->select(start_year&lt;=year)in&#xA;&#x9;&#x9;&#x9;let lasted_union:Legal_Union_Record= possible_unions->select(start_year=possible_unions.start_year->max())->any(true) in&#xA;&#x9;&#x9;&#x9;lasted_union&#xA;&#x9;&#x9;&#x9;endif"/>
269 </eAnnotations>
270 <eParameters name="year" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
271 </eOperations>
272 <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" unique="false"
273 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
274 <eStructuralFeatures xsi:type="ecore:EAttribute" name="is_assisting_spouse" lowerBound="1"
275 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" derived="true"/>
276 <eStructuralFeatures xsi:type="ecore:EAttribute" name="SSNo" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
277 iD="true"/>
278 <eStructuralFeatures xsi:type="ecore:EReference" name="addresses" ordered="false"
279 upperBound="-1" eType="#//Address" eOpposite="#//Address/taxPayer"/>
280 <eStructuralFeatures xsi:type="ecore:EAttribute" name="birth_year" ordered="false"
281 unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
282 <eStructuralFeatures xsi:type="ecore:EAttribute" name="disability_percentage"
283 ordered="false" unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
284 <eStructuralFeatures xsi:type="ecore:EAttribute" name="disability_type" ordered="false"
285 unique="false" lowerBound="1" eType="#//Disability_Types"/>
286 <eStructuralFeatures xsi:type="ecore:EAttribute" name="is_affiliated_personnaly_to_social_security"
287 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
288 derived="true"/>
289 <eStructuralFeatures xsi:type="ecore:EAttribute" name="birth_month" ordered="false"
290 unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
291 <eStructuralFeatures xsi:type="ecore:EAttribute" name="birth_day" ordered="false"
292 unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
293 <eStructuralFeatures xsi:type="ecore:EReference" name="expenses" ordered="false"
294 upperBound="-1" eType="#//Expense" eOpposite="#//Expense/beneficiary"/>
295 <eStructuralFeatures xsi:type="ecore:EAttribute" name="is_widower" ordered="false"
296 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
297 <eStructuralFeatures xsi:type="ecore:EAttribute" name="last_start_year_widower"
298 ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
299 </eClassifiers>
300 <eClassifiers xsi:type="ecore:EClass" name="Address">
301 <eStructuralFeatures xsi:type="ecore:EAttribute" name="country" lowerBound="1"
302 eType="#//Country" defaultValueLiteral="ZZ"/>
303 <eStructuralFeatures xsi:type="ecore:EAttribute" name="street" lowerBound="1"
304 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
305 <eStructuralFeatures xsi:type="ecore:EAttribute" name="zipCode" lowerBound="1"
306 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
307 <eStructuralFeatures xsi:type="ecore:EAttribute" name="city" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
308 <eStructuralFeatures xsi:type="ecore:EAttribute" name="id2" ordered="false" lowerBound="1"
309 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
310 <eStructuralFeatures xsi:type="ecore:EReference" name="taxPayer" ordered="false"
311 upperBound="-1" eType="#//Physical_Person" eOpposite="#//Physical_Person/addresses"/>
312 </eClassifiers>
313 <eClassifiers xsi:type="ecore:EClass" name="Expense">
314 <eStructuralFeatures xsi:type="ecore:EAttribute" name="declared_amount" lowerBound="1"
315 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
316 <eStructuralFeatures xsi:type="ecore:EAttribute" name="expense_purpose" lowerBound="1"
317 eType="#//Expense_Purpose" defaultValueLiteral="OTHER"/>
318 <eStructuralFeatures xsi:type="ecore:EReference" name="dependent" eType="#//Dependent"
319 eOpposite="#//Dependent/expense"/>
320 <eStructuralFeatures xsi:type="ecore:EReference" name="from_agent" ordered="false"
321 eType="#//FromAgent" eOpposite="#//FromAgent/expense"/>
322 <eStructuralFeatures xsi:type="ecore:EAttribute" name="year_expense_was_incurred_in"
323 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
324 <eStructuralFeatures xsi:type="ecore:EReference" name="income" lowerBound="1"
325 eType="#//Income" eOpposite="#//Income/expenses"/>
326 <eStructuralFeatures xsi:type="ecore:EAttribute" name="id4" ordered="false" lowerBound="1"
327 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
328 <eStructuralFeatures xsi:type="ecore:EReference" name="beneficiary" ordered="false"
329 eType="#//Physical_Person" eOpposite="#//Physical_Person/expenses"/>
330 </eClassifiers>
331 <eClassifiers xsi:type="ecore:EClass" name="Dependent" eSuperTypes="#//Physical_Person">
332 <eOperations name="compute_if_dependent_receives_allowances_eligible_for_CIM"
333 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
334 <eOperations name="compute_if_dependent_receives_allowances_eligible_for_DS" lowerBound="1"
335 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
336 <eOperations name="compute_if_dependent_receives_allowances_eligible_for_CE_dependance_and_care"
337 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
338 <eOperations name="is_dependent_following_continued_studies" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
339 <eParameters name="IN_continued_studies" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
340 </eOperations>
341 <eStructuralFeatures xsi:type="ecore:EAttribute" name="dependent_type" lowerBound="1"
342 eType="#//Dependent_Type"/>
343 <eStructuralFeatures xsi:type="ecore:EReference" name="responsible_person" eType="#//Tax_Payer"
344 eOpposite="#//Tax_Payer/dependents"/>
345 <eStructuralFeatures xsi:type="ecore:EAttribute" name="continued_studies" lowerBound="1"
346 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
347 <eStructuralFeatures xsi:type="ecore:EReference" name="allowances" ordered="false"
348 upperBound="-1" eType="#//External_Allowance" containment="true" eOpposite="#//External_Allowance/person"/>
349 <eStructuralFeatures xsi:type="ecore:EReference" name="household" ordered="false"
350 eType="#//Household" eOpposite="#//Household/children"/>
351 <eStructuralFeatures xsi:type="ecore:EReference" name="from_agent" ordered="false"
352 eType="#//FromAgent" eOpposite="#//FromAgent/dependent"/>
353 <eStructuralFeatures xsi:type="ecore:EReference" name="expense" ordered="false"
354 upperBound="-1" eType="#//Expense" eOpposite="#//Expense/dependent"/>
355 </eClassifiers>
356 <eClassifiers xsi:type="ecore:EClass" name="External_Allowance">
357 <eOperations name="getAmount" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
358 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
359 <details key="body" value=" if(dep_age>=6 and dep_age&lt;=11) then&#xA;(base + 16.17).round()&#xA; else if (dep_age>=12) then (base + 48.52).round() else &#xA; if(is_disabled) then(base + 185.60).round() else base endif endif endif"/>
360 </eAnnotations>
361 <eParameters name="base" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
362 <eParameters name="dep_age" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
363 <eParameters name="is_disabled" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
364 </eOperations>
365 <eOperations name="round_lower_euros" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
366 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
367 <details key="body" value="let p1:Integer = amount.floor() in&#xA;&#x9;&#x9;&#x9;p1.toString().toReal()"/>
368 </eAnnotations>
369 <eParameters name="amount" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
370 </eOperations>
371 <eStructuralFeatures xsi:type="ecore:EAttribute" name="amount" lowerBound="1"
372 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
373 <eStructuralFeatures xsi:type="ecore:EAttribute" name="grantor" lowerBound="1"
374 eType="#//Grantor"/>
375 <eStructuralFeatures xsi:type="ecore:EAttribute" name="starting_year" ordered="false"
376 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
377 <eStructuralFeatures xsi:type="ecore:EAttribute" name="ending_year" ordered="false"
378 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
379 <eStructuralFeatures xsi:type="ecore:EReference" name="reciver" ordered="false"
380 lowerBound="1" eType="#//Physical_Person"/>
381 <eStructuralFeatures xsi:type="ecore:EAttribute" name="id5" ordered="false" lowerBound="1"
382 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
383 <eStructuralFeatures xsi:type="ecore:EReference" name="person" ordered="false"
384 lowerBound="1" eType="#//Dependent" eOpposite="#//Dependent/allowances"/>
385 </eClassifiers>
386 <eClassifiers xsi:type="ecore:EClass" name="Household" eSuperTypes="#//Tax_Case">
387 <eStructuralFeatures xsi:type="ecore:EReference" name="parents" ordered="false"
388 lowerBound="1" eType="#//Legal_Union_Record" containment="true" eOpposite="#//Legal_Union_Record/household"/>
389 <eStructuralFeatures xsi:type="ecore:EAttribute" name="id1" ordered="false" lowerBound="1"
390 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
391 <eStructuralFeatures xsi:type="ecore:EReference" name="children" ordered="false"
392 upperBound="-1" eType="#//Dependent" containment="true" eOpposite="#//Dependent/household"/>
393 </eClassifiers>
394 <eClassifiers xsi:type="ecore:EClass" name="Legal_Union_Record" abstract="true">
395 <eStructuralFeatures xsi:type="ecore:EAttribute" name="start_year" lowerBound="1"
396 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
397 <eStructuralFeatures xsi:type="ecore:EAttribute" name="end_year" lowerBound="1"
398 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
399 <eStructuralFeatures xsi:type="ecore:EAttribute" name="separation_cause" ordered="false"
400 lowerBound="1" eType="#//Separation_Causes"/>
401 <eStructuralFeatures xsi:type="ecore:EReference" name="individual_A" ordered="false"
402 lowerBound="1" eType="#//Physical_Person" containment="true">
403 <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
404 <details key="body" value="legal_union_A"/>
405 </eAnnotations>
406 </eStructuralFeatures>
407 <eStructuralFeatures xsi:type="ecore:EReference" name="individual_B" ordered="false"
408 lowerBound="1" eType="#//Physical_Person" containment="true">
409 <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
410 <details key="body" value="legal_union_B"/>
411 </eAnnotations>
412 </eStructuralFeatures>
413 <eStructuralFeatures xsi:type="ecore:EReference" name="properties" ordered="false"
414 lowerBound="1" upperBound="-1" eType="#//Tax_Property" containment="true"
415 eOpposite="#//Tax_Property/union_record"/>
416 <eStructuralFeatures xsi:type="ecore:EAttribute" name="mutual_agreement" ordered="false"
417 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
418 <eStructuralFeatures xsi:type="ecore:EAttribute" name="id9" ordered="false" lowerBound="1"
419 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
420 <eStructuralFeatures xsi:type="ecore:EReference" name="household" ordered="false"
421 lowerBound="1" eType="#//Household" eOpposite="#//Household/parents"/>
422 </eClassifiers>
423 <eClassifiers xsi:type="ecore:EEnum" name="Separation_Causes">
424 <eLiterals name="NONE"/>
425 <eLiterals name="DIVORCE" value="1"/>
426 <eLiterals name="SEPARATION_DE_FAIT" value="2"/>
427 <eLiterals name="SEPARATION_BY_COURT" value="3"/>
428 </eClassifiers>
429 <eClassifiers xsi:type="ecore:EClass" name="Tax_Property">
430 <eStructuralFeatures xsi:type="ecore:EAttribute" name="starting_year" ordered="false"
431 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
432 <eStructuralFeatures xsi:type="ecore:EAttribute" name="taxed_jointly" ordered="false"
433 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
434 defaultValueLiteral="false"/>
435 <eStructuralFeatures xsi:type="ecore:EAttribute" name="id10" ordered="false" lowerBound="1"
436 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
437 <eStructuralFeatures xsi:type="ecore:EReference" name="union_record" ordered="false"
438 lowerBound="1" eType="#//Legal_Union_Record" eOpposite="#//Legal_Union_Record/properties"/>
439 </eClassifiers>
440 <eClassifiers xsi:type="ecore:EClass" name="Tax_Case" abstract="true" interface="true"/>
441 <eClassifiers xsi:type="ecore:EClass" name="FromAgent">
442 <eStructuralFeatures xsi:type="ecore:EAttribute" name="taxation_year" unique="false"
443 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
444 <eStructuralFeatures xsi:type="ecore:EReference" name="taxPayer" lowerBound="1"
445 eType="#//Tax_Payer" eOpposite="#//Tax_Payer/from_agent"/>
446 <eStructuralFeatures xsi:type="ecore:EAttribute" name="is_dependent_eligible_for_CE_Not_In_Houshold_Children_Care"
447 ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
448 <eStructuralFeatures xsi:type="ecore:EReference" name="expense" ordered="false"
449 eType="#//Expense" eOpposite="#//Expense/from_agent"/>
450 <eStructuralFeatures xsi:type="ecore:EAttribute" name="is_eligible_debt" ordered="false"
451 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
452 <eStructuralFeatures xsi:type="ecore:EReference" name="dependent" ordered="false"
453 eType="#//Dependent" eOpposite="#//Dependent/from_agent"/>
454 </eClassifiers>
455 <eClassifiers xsi:type="ecore:EClass" name="Income" abstract="true">
456 <eOperations name="compute_duration_of_contract" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
457 <eOperations name="compute_duration_of_contract_within_taxation_year" lowerBound="1"
458 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger">
459 <eParameters name="IN_date" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"/>
460 </eOperations>
461 <eOperations name="prorata_worked_months" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger">
462 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
463 <details key="body" value="self.details->select(is_worked)->size()"/>
464 </eAnnotations>
465 </eOperations>
466 <eOperations name="prorata_worked_days" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger">
467 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
468 <details key="body" value="let a:Set(Income_Detail)=self.details->select(is_worked) in &#xA;&#x9;&#x9;&#x9;a.worked_days->sum().mod(25)"/>
469 </eAnnotations>
470 </eOperations>
471 <eOperations name="prorata_period" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
472 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
473 <details key="body" value="&#xA;&#x9;&#x9;&#x9;let nb_months:Integer=self.prorata_worked_months()in&#xA;&#x9;&#x9;&#x9;let nb_days:Integer=self.prorata_worked_days()in&#xA;&#x9;&#x9;&#x9; if(nb_months=12) then&#xA;&#x9;&#x9;&#x9;1&#xA;&#x9;&#x9;&#x9;else &#xA;&#x9;&#x9;&#x9;nb_months/12 + nb_days/300&#xA;&#x9;&#x9;&#x9;endif"/>
474 </eAnnotations>
475 </eOperations>
476 <eOperations name="income_per_day" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
477 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
478 <details key="body" value="income_per_year()/300"/>
479 </eAnnotations>
480 </eOperations>
481 <eOperations name="income_per_month" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
482 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
483 <details key="body" value="income_per_year()/12"/>
484 </eAnnotations>
485 </eOperations>
486 <eOperations name="income_per_year" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
487 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
488 <details key="body" value="&#x9;&#x9;&#x9;let involved_details:Set(Income_Detail)=self.details->select(i:Income_Detail| i.is_worked=true) in&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;involved_details.amount->sum()"/>
489 </eAnnotations>
490 </eOperations>
491 <eOperations name="getDurationInyears" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger">
492 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
493 <details key="body" value="&#xA;&#x9;&#x9;&#x9;if(self.income_type.oclIsTypeOf(Pensions_and_Annuities_Income)) then &#xA;&#x9;&#x9;&#x9;if(start_year.oclIsUndefined())then&#xA;&#x9;&#x9;&#x9;-1&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;let res:Integer=self.taxPayer.from_agent.taxation_year-start_year in&#xA;&#x9;&#x9;&#x9;if(res&lt;0) then&#xA;&#x9;&#x9;&#x9;0&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;res&#xA;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;-1&#xA;&#x9;&#x9;&#x9;endif"/>
494 </eAnnotations>
495 </eOperations>
496 <eStructuralFeatures xsi:type="ecore:EAttribute" name="income_amount" ordered="false"
497 unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
498 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
499 <details key="derivation" value="let non_null_amounts:OrderedSet(Income_Detail)=self.details->select(det:Income_Detail|det.amount>0)->asOrderedSet() in&#xA;non_null_amounts->collect(amount)->min()"/>
500 </eAnnotations>
501 </eStructuralFeatures>
502 <eStructuralFeatures xsi:type="ecore:EReference" name="income_type" lowerBound="1"
503 eType="#//Income_Type" containment="true" eOpposite="#//Income_Type/income"/>
504 <eStructuralFeatures xsi:type="ecore:EAttribute" name="start_date_within_taxation_year"
505 ordered="false" unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"/>
506 <eStructuralFeatures xsi:type="ecore:EAttribute" name="start_date_of_contract"
507 ordered="false" unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"/>
508 <eStructuralFeatures xsi:type="ecore:EAttribute" name="end_date_within_taxation_year"
509 ordered="false" unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"/>
510 <eStructuralFeatures xsi:type="ecore:EReference" name="tax_card" eType="#//Tax_Card"
511 containment="true" eOpposite="#//Tax_Card/income"/>
512 <eStructuralFeatures xsi:type="ecore:EAttribute" name="tax_liability" lowerBound="1"
513 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
514 <eStructuralFeatures xsi:type="ecore:EReference" name="taxPayer" ordered="false"
515 lowerBound="1" eType="#//Tax_Payer" eOpposite="#//Tax_Payer/incomes"/>
516 <eStructuralFeatures xsi:type="ecore:EAttribute" name="year" unique="false" lowerBound="1"
517 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
518 <eStructuralFeatures xsi:type="ecore:EReference" name="details" lowerBound="12"
519 upperBound="12" eType="#//Income_Detail" containment="true" eOpposite="#//Income_Detail/income"/>
520 <eStructuralFeatures xsi:type="ecore:EAttribute" name="num" ordered="false" lowerBound="1"
521 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"
522 iD="true"/>
523 <eStructuralFeatures xsi:type="ecore:EAttribute" name="start_year" ordered="false"
524 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
525 <eStructuralFeatures xsi:type="ecore:EReference" name="expenses" ordered="false"
526 upperBound="-1" eType="#//Expense" containment="true" eOpposite="#//Expense/income"/>
527 </eClassifiers>
528 <eClassifiers xsi:type="ecore:EClass" name="Income_Type" abstract="true">
529 <eStructuralFeatures xsi:type="ecore:EAttribute" name="subjectToWithholdingTax"
530 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
531 derived="true">
532 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
533 <details key="derivation" value="&#xA;&#x9;&#x9;&#x9;&#x9;self.income.tax_card->notEmpty()&#xA;&#x9;&#x9;&#x9;&#x9;"/>
534 </eAnnotations>
535 </eStructuralFeatures>
536 <eStructuralFeatures xsi:type="ecore:EAttribute" name="id8" ordered="false" lowerBound="1"
537 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
538 <eStructuralFeatures xsi:type="ecore:EReference" name="income" lowerBound="1"
539 eType="#//Income" eOpposite="#//Income/income_type"/>
540 </eClassifiers>
541 <eClassifiers xsi:type="ecore:EClass" name="Tax_Card">
542 <eOperations name="getSumDeductionsYear" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
543 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
544 <details key="body" value="deduction_FO_yearly+deduction_FD_yearly+deduction_CE_invalidity_yearly"/>
545 </eAnnotations>
546 </eOperations>
547 <eOperations name="getSumCreditsYear" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
548 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
549 <details key="body" value="credit_CIS_yearly+credit_CIP_yearly"/>
550 </eAnnotations>
551 </eOperations>
552 <eStructuralFeatures xsi:type="ecore:EAttribute" name="card_identifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
553 iD="true"/>
554 <eStructuralFeatures xsi:type="ecore:EAttribute" name="tax_card_type" lowerBound="1"
555 eType="#//Tax_Card_Type" derived="true">
556 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
557 <details key="derivation" value="if(self.income.taxPayer.incomes->size()=1) then &#xA;Tax_Card_Type::Principal&#xA;&#x9;else&#xA;&#x9;&#x9;let all_incomes:OrderedSet(Income)=self.income.taxPayer.incomes->select(inc:Income| inc.income_amount= self.income.taxPayer.incomes.income_amount->max())->asOrderedSet() in&#xA;&#x9;&#x9;let bigest_income:Income= all_incomes->first() in&#xA;&#x9;&#x9;&#x9; if(bigest_income=self.income) then&#xA;&#x9;&#x9;&#x9; &#x9; Tax_Card_Type::Principal&#xA;&#x9;&#x9;&#x9; else&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;Tax_Card_Type::Additional&#xA;&#x9;&#x9;&#x9;&#x9;endif&#xA;endif&#xA;&#x9;&#x9;&#x9;&#x9;"/>
558 </eAnnotations>
559 </eStructuralFeatures>
560 <eStructuralFeatures xsi:type="ecore:EAttribute" name="tax_office" lowerBound="1"
561 eType="#//Tax_Office"/>
562 <eStructuralFeatures xsi:type="ecore:EAttribute" name="valid_from_date" ordered="false"
563 unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"/>
564 <eStructuralFeatures xsi:type="ecore:EAttribute" name="valid_until_date" ordered="false"
565 unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"/>
566 <eStructuralFeatures xsi:type="ecore:EAttribute" name="percentage_of_witholding"
567 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
568 <eStructuralFeatures xsi:type="ecore:EAttribute" name="tax_payers_name_surname"
569 ordered="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
570 <eStructuralFeatures xsi:type="ecore:EAttribute" name="tax_payers_partner_name_surname"
571 ordered="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
572 <eStructuralFeatures xsi:type="ecore:EReference" name="tax_payers_address" eType="#//Address"/>
573 <eStructuralFeatures xsi:type="ecore:EAttribute" name="jobs_Employer_SSNo" ordered="false"
574 unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
575 <eStructuralFeatures xsi:type="ecore:EAttribute" name="jobs_employers_name" ordered="false"
576 unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
577 <eStructuralFeatures xsi:type="ecore:EAttribute" name="jobs_activity_type" lowerBound="1"
578 eType="#//Job_Activity"/>
579 <eStructuralFeatures xsi:type="ecore:EAttribute" name="jobs_place_of_work" lowerBound="1"
580 eType="#//Town"/>
581 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_FD_daily" ordered="false"
582 unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
583 defaultValueLiteral="0.0"/>
584 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_FD_monthly" ordered="false"
585 unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
586 defaultValueLiteral="0.0"/>
587 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_FD_yearly" unique="false"
588 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
589 defaultValueLiteral="0.0"/>
590 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_AC_daily" unique="false"
591 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
592 defaultValueLiteral="0.0"/>
593 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_AC_monthly" unique="false"
594 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
595 defaultValueLiteral="0.0"/>
596 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_AC_yearly" unique="false"
597 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
598 defaultValueLiteral="0.0"/>
599 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_CE_daily" unique="false"
600 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
601 defaultValueLiteral="0.0"/>
602 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_CE_monthly" unique="false"
603 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
604 defaultValueLiteral="0.0"/>
605 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_CE_yearly" unique="false"
606 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
607 defaultValueLiteral="0.0"/>
608 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_CE_invalidity_yearly"
609 unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
610 defaultValueLiteral="0.0"/>
611 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_DS_daily" unique="false"
612 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
613 defaultValueLiteral="0.0"/>
614 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_DS_monthly" lowerBound="1"
615 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="0.0"/>
616 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_DS_yearly" unique="false"
617 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
618 defaultValueLiteral="0.0"/>
619 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_FO_daily" unique="false"
620 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
621 defaultValueLiteral="0.0"/>
622 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_FO_monthly" unique="false"
623 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
624 defaultValueLiteral="0.0"/>
625 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_FO_yearly" unique="false"
626 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
627 defaultValueLiteral="0.0"/>
628 <eStructuralFeatures xsi:type="ecore:EAttribute" name="credit_CIS_daily" unique="false"
629 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
630 defaultValueLiteral="0.0"/>
631 <eStructuralFeatures xsi:type="ecore:EAttribute" name="credit_CIS_monthly" unique="false"
632 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
633 defaultValueLiteral="0.0"/>
634 <eStructuralFeatures xsi:type="ecore:EAttribute" name="credit_CIP_monthly" unique="false"
635 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
636 defaultValueLiteral="0.0"/>
637 <eStructuralFeatures xsi:type="ecore:EAttribute" name="credit_CIP_yearly" unique="false"
638 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
639 defaultValueLiteral="0.0"/>
640 <eStructuralFeatures xsi:type="ecore:EAttribute" name="credit_CIM_daily" unique="false"
641 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
642 defaultValueLiteral="0.0"/>
643 <eStructuralFeatures xsi:type="ecore:EAttribute" name="credit_CIM_monthly" unique="false"
644 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
645 defaultValueLiteral="0.0"/>
646 <eStructuralFeatures xsi:type="ecore:EAttribute" name="credit_CIS_yearly" unique="false"
647 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
648 defaultValueLiteral="0.0"/>
649 <eStructuralFeatures xsi:type="ecore:EAttribute" name="validity" lowerBound="1"
650 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
651 <eStructuralFeatures xsi:type="ecore:EReference" name="income_Tax_Credit" ordered="false"
652 upperBound="-1" eType="#//Income_Tax_Credit" eOpposite="#//Income_Tax_Credit/taxation_Frame"/>
653 <eStructuralFeatures xsi:type="ecore:EReference" name="previous" eType="#//Tax_Card"
654 eOpposite="#//Tax_Card/current_tax_card"/>
655 <eStructuralFeatures xsi:type="ecore:EReference" name="current_tax_card" eType="#//Tax_Card"
656 eOpposite="#//Tax_Card/previous"/>
657 <eStructuralFeatures xsi:type="ecore:EAttribute" name="credit_CIM_yearly" ordered="false"
658 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
659 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_DS_Alimony_yearly"
660 ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
661 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_DS_Debt_yearly"
662 ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
663 <eStructuralFeatures xsi:type="ecore:EReference" name="income" lowerBound="1"
664 eType="#//Income" eOpposite="#//Income/tax_card"/>
665 </eClassifiers>
666 <eClassifiers xsi:type="ecore:EClass" name="Income_Tax_Credit">
667 <eStructuralFeatures xsi:type="ecore:EAttribute" name="grantedBy" lowerBound="1"
668 eType="#//Grantor"/>
669 <eStructuralFeatures xsi:type="ecore:EReference" name="taxPayer" eType="#//Tax_Payer"/>
670 <eStructuralFeatures xsi:type="ecore:EAttribute" name="tax_year" lowerBound="1"
671 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
672 <eStructuralFeatures xsi:type="ecore:EAttribute" name="yearly" lowerBound="1"
673 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="300.0"/>
674 <eStructuralFeatures xsi:type="ecore:EAttribute" name="monthly" lowerBound="1"
675 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="25.0"/>
676 <eStructuralFeatures xsi:type="ecore:EAttribute" name="daily" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
677 defaultValueLiteral="1.0"/>
678 <eStructuralFeatures xsi:type="ecore:EAttribute" name="id7" ordered="false" lowerBound="1"
679 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
680 <eStructuralFeatures xsi:type="ecore:EReference" name="taxation_Frame" eType="#//Tax_Card"
681 eOpposite="#//Tax_Card/income_Tax_Credit"/>
682 </eClassifiers>
683 <eClassifiers xsi:type="ecore:EClass" name="Income_Detail">
684 <eStructuralFeatures xsi:type="ecore:EAttribute" name="month" ordered="false"
685 unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
686 <eStructuralFeatures xsi:type="ecore:EAttribute" name="amount" lowerBound="1"
687 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
688 <eStructuralFeatures xsi:type="ecore:EAttribute" name="is_worked" lowerBound="1"
689 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
690 <eStructuralFeatures xsi:type="ecore:EAttribute" name="distance" lowerBound="1"
691 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
692 <eStructuralFeatures xsi:type="ecore:EAttribute" name="worked_days" lowerBound="1"
693 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
694 <eStructuralFeatures xsi:type="ecore:EAttribute" name="is_contributing_CNS" ordered="false"
695 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
696 <eStructuralFeatures xsi:type="ecore:EAttribute" name="is_contributing_pension"
697 ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
698 <eStructuralFeatures xsi:type="ecore:EAttribute" name="id5" ordered="false" lowerBound="1"
699 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
700 <eStructuralFeatures xsi:type="ecore:EReference" name="income" lowerBound="1"
701 eType="#//Income" eOpposite="#//Income/details"/>
702 </eClassifiers>
703 <eClassifiers xsi:type="ecore:EClass" name="FromLaw">
704 <eOperations name="CE_INVALIDITY_FLAT_RATE_TYPE_E" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
705 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
706 <details key="body" value="1455.0"/>
707 </eAnnotations>
708 </eOperations>
709 <eOperations name="CIP_MINIMUM_INCOME_MONTH" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
710 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
711 <details key="body" value="25.0"/>
712 </eAnnotations>
713 </eOperations>
714 <eOperations name="CIP_MINIMUM_INCOME_YEAR" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
715 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
716 <details key="body" value="300.0"/>
717 </eAnnotations>
718 </eOperations>
719 <eOperations name="FLAT_RATE_CIP_YEARLY" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
720 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
721 <details key="body" value="300.0"/>
722 </eAnnotations>
723 </eOperations>
724 <eOperations name="FLAT_RATE_PER_UNIT" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
725 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
726 <details key="body" value="99.0"/>
727 </eAnnotations>
728 </eOperations>
729 <eOperations name="MAXIMUM_DISTANCE_IN_UNITS" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
730 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
731 <details key="body" value="30.0"/>
732 </eAnnotations>
733 </eOperations>
734 <eOperations name="MINIMUM_DISTANCE_IN_UNITS" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
735 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
736 <details key="body" value="4.0"/>
737 </eAnnotations>
738 </eOperations>
739 <eOperations name="FLAT_MAXIMUM_FD" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
740 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
741 <details key="body" value="2574.0"/>
742 </eAnnotations>
743 </eOperations>
744 <eOperations name="CIS_MINIMUM_INCOME_DAY" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
745 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
746 <details key="body" value="3.12"/>
747 </eAnnotations>
748 </eOperations>
749 <eOperations name="CIS_MINIMUM_INCOME_MONTH" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
750 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
751 <details key="body" value="78.0"/>
752 </eAnnotations>
753 </eOperations>
754 <eOperations name="CIS_MINIMUM_INCOME_YEAR" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
755 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
756 <details key="body" value="936.0"/>
757 </eAnnotations>
758 </eOperations>
759 <eOperations name="FLAT_RATE_CIS_DAILY" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
760 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
761 <details key="body" value="1.0"/>
762 </eAnnotations>
763 </eOperations>
764 <eOperations name="FLAT_RATE_CIS_MONTHLY" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
765 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
766 <details key="body" value="25.0"/>
767 </eAnnotations>
768 </eOperations>
769 <eOperations name="FLAT_RATE_CIS_YEARLY" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
770 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
771 <details key="body" value="300.0"/>
772 </eAnnotations>
773 </eOperations>
774 <eOperations name="get_A_for_salary_class_1" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
775 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
776 <details key="body" value="if(revenu&lt;= 1020) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 1180) then 0.08&#xA;&#x9;&#x9;else if(revenu &lt;= 1340) then 0.1&#xA;&#x9;&#x9;else if(revenu &lt;= 1500) then 0.12&#xA;&#x9;&#x9;else if(revenu &lt;= 1655) then 0.14&#xA;&#x9;&#x9;else if(revenu &lt;= 1815) then 0.16&#xA;&#x9;&#x9;else if(revenu &lt;= 1975) then 0.18&#xA;&#x9;&#x9;else if(revenu &lt;= 2135) then 0.2&#xA;&#x9;&#x9;else if(revenu &lt;= 2295) then 0.22&#xA;&#x9;&#x9;else if(revenu &lt;= 2450) then 0.24&#xA;&#x9;&#x9;else if(revenu &lt;= 2610) then 0.26&#xA;&#x9;&#x9;else if(revenu &lt;= 2770) then 0.28&#xA;&#x9;&#x9;else if(revenu &lt;= 2930) then 0.3&#xA;&#x9;&#x9;else if(revenu &lt;= 3090) then 0.32&#xA;&#x9;&#x9;else if(revenu &lt;= 3245) then 0.34&#xA;&#x9;&#x9;else if(revenu &lt;= 3405) then 0.36&#xA;&#x9;&#x9;else if(revenu &lt;= 3565) then 0.38&#xA;&#x9;&#x9;else if(revenu &lt;= 8415) then 0.39&#xA;&#x9;&#x9;else 0.4&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; &#x9; endif"/>
777 </eAnnotations>
778 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
779 </eOperations>
780 <eOperations name="get_B_for_salary_class_1" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
781 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
782 <details key="body" value="if(revenu&lt;= 1020) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 1180) then 81.9&#xA;&#x9;&#x9;else if(revenu &lt;= 1340) then 105.555&#xA;&#x9;&#x9;else if(revenu &lt;= 1500) then 132.39000&#xA;&#x9;&#x9;else if(revenu &lt;= 1655) then 162.405&#xA;&#x9;&#x9;else if(revenu &lt;= 1815) then 195.6&#xA;&#x9;&#x9;else if(revenu &lt;= 1975) then 231.975&#xA;&#x9;&#x9;else if(revenu &lt;= 2135) then 271.53&#xA;&#x9;&#x9;else if(revenu &lt;= 2295) then 314.265&#xA;&#x9;&#x9;else if(revenu &lt;= 2450) then 360.18&#xA;&#x9;&#x9;else if(revenu &lt;= 2610) then 409.275&#xA;&#x9;&#x9;else if(revenu &lt;= 2770) then 461.55&#xA;&#x9;&#x9;else if(revenu &lt;= 2930) then 517.005&#xA;&#x9;&#x9;else if(revenu &lt;= 3090) then 575.64&#xA;&#x9;&#x9;else if(revenu &lt;= 3245) then 637.455&#xA;&#x9;&#x9;else if(revenu &lt;= 3405) then 702.45&#xA;&#x9;&#x9;else if(revenu &lt;= 3565) then 770.625&#xA;&#x9;&#x9;else if(revenu &lt;= 8415) then 806.30250 &#xA;&#x9;&#x9;else 890.48583&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; endif"/>
783 </eAnnotations>
784 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
785 </eOperations>
786 <eOperations name="get_A_for_salary_class_1A" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
787 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
788 <details key="body" value="if(revenu&lt;= 1960) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 2065) then 0.12&#xA;&#x9;&#x9;else if(revenu &lt;= 2170) then 0.15&#xA;&#x9;&#x9;else if(revenu &lt;= 2280) then 0.18&#xA;&#x9;&#x9;else if(revenu &lt;= 2385) then 0.21&#xA;&#x9;&#x9;else if(revenu &lt;= 2490) then 0.24&#xA;&#x9;&#x9;else if(revenu &lt;= 2595) then 0.27&#xA;&#x9;&#x9;else if(revenu &lt;= 2700) then 0.3&#xA;&#x9;&#x9;else if(revenu &lt;= 2810) then 0.33&#xA;&#x9;&#x9;else if(revenu &lt;= 2915) then 0.36&#xA;&#x9;&#x9;else if(revenu &lt;= 3020) then 0.39&#xA;&#x9;&#x9;else 0.4&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; endif"/>
789 </eAnnotations>
790 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
791 </eOperations>
792 <eOperations name="get_B_for_salary_class_1A" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
793 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
794 <details key="body" value="if(revenu&lt;= 1960) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 2065) then 235.5&#xA;&#x9;&#x9;else if(revenu &lt;= 2170) then 297.555&#xA;&#x9;&#x9;else if(revenu &lt;= 2280) then 362.79&#xA;&#x9;&#x9;else if(revenu &lt;= 2385) then 431.205&#xA;&#x9;&#x9;else if(revenu &lt;= 2490) then 502.8&#xA;&#x9;&#x9;else if(revenu &lt;= 2595) then 577.575&#xA;&#x9;&#x9;else if(revenu &lt;= 2700) then 655.53&#xA;&#x9;&#x9;else if(revenu &lt;= 2810) then 736.665&#xA;&#x9;&#x9;else if(revenu &lt;= 2915) then 820.98&#xA;&#x9;&#x9;else if(revenu &lt;= 3020) then 908.475&#xA;&#x9;&#x9;else 938.7&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; &#x9;&#x9;endif"/>
795 </eAnnotations>
796 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
797 </eOperations>
798 <eOperations name="get_A_for_salary_class_2" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
799 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
800 <details key="body" value="if(revenu&lt;= 1960) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 2280) then 0.08&#xA;&#x9;&#x9;else if(revenu &lt;= 2595) then 0.1&#xA;&#x9;&#x9;else if(revenu &lt;= 2915) then 0.12&#xA;&#x9;&#x9;else if(revenu &lt;= 3230) then 0.14&#xA;&#x9;&#x9;else if(revenu &lt;= 3550) then 0.16&#xA;&#x9;&#x9;else if(revenu &lt;= 3870) then 0.18&#xA;&#x9;&#x9;else if(revenu &lt;= 4185) then 0.2&#xA;&#x9;&#x9;else if(revenu &lt;= 4505) then 0.22&#xA;&#x9;&#x9;else if(revenu &lt;= 4820) then 0.24&#xA;&#x9;&#x9;else if(revenu &lt;= 5140) then 0.26&#xA;&#x9;&#x9;else if(revenu &lt;= 5460) then 0.28&#xA;&#x9;&#x9;else if(revenu &lt;= 5775) then 0.3&#xA;&#x9;&#x9;else if(revenu &lt;= 6095) then 0.32&#xA;&#x9;&#x9;else if(revenu &lt;= 6410) then 0.34&#xA;&#x9;&#x9;else if(revenu &lt;= 6730) then 0.36&#xA;&#x9;&#x9;else if(revenu &lt;= 7050) then 0.38&#xA;&#x9;&#x9;else if(revenu &lt;= 16750) then 0.39&#xA;&#x9;&#x9;else 0.4&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; endif"/>
801 </eAnnotations>
802 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
803 </eOperations>
804 <eOperations name="get_B_for_salary_class_2" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
805 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
806 <details key="body" value="if(revenu&lt;= 1960) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 2280) then 157&#xA;&#x9;&#x9;else if(revenu &lt;= 2595) then 202.61&#xA;&#x9;&#x9;else if(revenu &lt;= 2915) then 254.58&#xA;&#x9;&#x9;else if(revenu &lt;= 3230) then 312.91&#xA;&#x9;&#x9;else if(revenu &lt;= 3550) then 377.6&#xA;&#x9;&#x9;else if(revenu &lt;= 3870) then 448.65&#xA;&#x9;&#x9;else if(revenu &lt;= 4185) then 526.06&#xA;&#x9;&#x9;else if(revenu &lt;= 4505) then 609.83&#xA;&#x9;&#x9;else if(revenu &lt;= 4820) then 699.96&#xA;&#x9;&#x9;else if(revenu &lt;= 5140) then 796.45&#xA;&#x9;&#x9;else if(revenu &lt;= 5460) then 899.3&#xA;&#x9;&#x9;else if(revenu &lt;= 5775) then 1008.51&#xA;&#x9;&#x9;else if(revenu &lt;= 6095) then 1124.08&#xA;&#x9;&#x9;else if(revenu &lt;= 6410) then 1246.01&#xA;&#x9;&#x9;else if(revenu &lt;= 6730) then 1374.3&#xA;&#x9;&#x9;else if(revenu &lt;= 7050) then 1508.95&#xA;&#x9;&#x9;else if(revenu &lt;= 16750) then 1579.455&#xA;&#x9;&#x9;else 1746.97166&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; endif"/>
807 </eAnnotations>
808 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
809 </eOperations>
810 <eOperations name="get_A_for_pension_class_1" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
811 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
812 <details key="body" value="if(revenu&lt;= 1000) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 1160) then 0.08&#xA;&#x9;&#x9;else if(revenu &lt;= 1320) then 0.1&#xA;&#x9;&#x9;else if(revenu &lt;= 1480) then 0.12&#xA;&#x9;&#x9;else if(revenu &lt;= 1635) then 0.14&#xA;&#x9;&#x9;else if(revenu &lt;= 1795) then 0.16&#xA;&#x9;&#x9;else if(revenu &lt;= 1955) then 0.18&#xA;&#x9;&#x9;else if(revenu &lt;= 2115) then 0.2&#xA;&#x9;&#x9;else if(revenu &lt;= 2275) then 0.22&#xA;&#x9;&#x9;else if(revenu &lt;= 2430) then 0.24&#xA;&#x9;&#x9;else if(revenu &lt;= 2590) then 0.26&#xA;&#x9;&#x9;else if(revenu &lt;= 2750) then 0.28&#xA;&#x9;&#x9;else if(revenu &lt;= 2910) then 0.3&#xA;&#x9;&#x9;else if(revenu &lt;= 3070) then 0.32&#xA;&#x9;&#x9;else if(revenu &lt;= 3225) then 0.34&#xA;&#x9;&#x9;else if(revenu &lt;= 3385) then 0.36&#xA;&#x9;&#x9;else if(revenu &lt;= 3545) then 0.38&#xA;&#x9;&#x9;else if(revenu &lt;= 8395) then 0.39&#xA;&#x9;&#x9;else 0.4&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; endif"/>
813 </eAnnotations>
814 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
815 </eOperations>
816 <eOperations name="get_B_for_pension_class_1" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
817 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
818 <details key="body" value="if(revenu&lt;= 1000) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 1160) then 80.3&#xA;&#x9;&#x9;else if(revenu &lt;= 1320) then 103.555&#xA;&#x9;&#x9;else if(revenu &lt;= 1480) then 129.99&#xA;&#x9;&#x9;else if(revenu &lt;= 1635) then 159.605&#xA;&#x9;&#x9;else if(revenu &lt;= 1795) then 192.4&#xA;&#x9;&#x9;else if(revenu &lt;= 1955) then 228.375&#xA;&#x9;&#x9;else if(revenu &lt;= 2115) then 267.53&#xA;&#x9;&#x9;else if(revenu &lt;= 2275) then 309.865&#xA;&#x9;&#x9;else if(revenu &lt;= 2430) then 355.38&#xA;&#x9;&#x9;else if(revenu &lt;= 2590) then 404.075&#xA;&#x9;&#x9;else if(revenu &lt;= 2750) then 455.95&#xA;&#x9;&#x9;else if(revenu &lt;= 2910) then 511.005&#xA;&#x9;&#x9;else if(revenu &lt;= 3070) then 569.24&#xA;&#x9;&#x9;else if(revenu &lt;= 3225) then 630.655&#xA;&#x9;&#x9;else if(revenu &lt;= 3385) then 695.25&#xA;&#x9;&#x9;else if(revenu &lt;= 3545) then 763.025&#xA;&#x9;&#x9;else if(revenu &lt;= 8395) then 798.5025&#xA;&#x9;&#x9;else 882.48583&#x9;&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; endif"/>
819 </eAnnotations>
820 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
821 </eOperations>
822 <eOperations name="get_A_for_pension_class_1A" ordered="false" lowerBound="1"
823 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
824 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
825 <details key="body" value="if(revenu&lt;= 1940) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 2045) then 0.12&#xA;&#x9;&#x9;else if(revenu &lt;= 2150) then 0.15&#xA;&#x9;&#x9;else if(revenu &lt;= 2260) then 0.18&#xA;&#x9;&#x9;else if(revenu &lt;= 2365) then 0.21&#xA;&#x9;&#x9;else if(revenu &lt;= 2470) then 0.24&#xA;&#x9;&#x9;else if(revenu &lt;= 2575) then 0.27&#xA;&#x9;&#x9;else if(revenu &lt;= 2680) then 0.3&#xA;&#x9;&#x9;else if(revenu &lt;= 2790) then 0.33&#xA;&#x9;&#x9;else if(revenu &lt;= 2895) then 0.36&#xA;&#x9;&#x9;else if(revenu &lt;= 3000) then 0.39&#xA;&#x9;&#x9;else 0.4&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; endif"/>
826 </eAnnotations>
827 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
828 </eOperations>
829 <eOperations name="get_B_for_pension_class_1A" ordered="false" lowerBound="1"
830 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
831 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
832 <details key="body" value="if(revenu&lt;= 1940) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 2045) then 233.100&#xA;&#x9;&#x9;else if(revenu &lt;= 2150) then 294.555&#xA;&#x9;&#x9;else if(revenu &lt;= 2260) then 359.190&#xA;&#x9;&#x9;else if(revenu &lt;= 2365) then 427.005&#xA;&#x9;&#x9;else if(revenu &lt;= 2470) then 498&#xA;&#x9;&#x9;else if(revenu &lt;= 2575) then 572.175&#xA;&#x9;&#x9;else if(revenu &lt;= 2680) then 649.53&#xA;&#x9;&#x9;else if(revenu &lt;= 2790) then 730.065&#xA;&#x9;&#x9;else if(revenu &lt;= 2895) then 813.780&#xA;&#x9;&#x9;else if(revenu &lt;= 3000) then 900.675&#xA;&#x9;&#x9;else 930.700&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; endif"/>
833 </eAnnotations>
834 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
835 </eOperations>
836 <eOperations name="get_A_for_pension_class_2" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
837 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
838 <details key="body" value="if(revenu&lt;= 1940) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 2260) then 0.08&#xA;&#x9;&#x9;else if(revenu &lt;= 2575) then 0.1&#xA;&#x9;&#x9;else if(revenu &lt;= 2895) then 0.12&#xA;&#x9;&#x9;else if(revenu &lt;= 3210) then 0.14&#xA;&#x9;&#x9;else if(revenu &lt;= 3530) then 0.16&#xA;&#x9;&#x9;else if(revenu &lt;= 3850) then 0.18&#xA;&#x9;&#x9;else if(revenu &lt;= 4165) then 0.2&#xA;&#x9;&#x9;else if(revenu &lt;= 4485) then 0.22&#xA;&#x9;&#x9;else if(revenu &lt;= 4800) then 0.24&#xA;&#x9;&#x9;else if(revenu &lt;= 5120) then 0.26&#xA;&#x9;&#x9;else if(revenu &lt;= 5440) then 0.28&#xA;&#x9;&#x9;else if(revenu &lt;= 5755) then 0.3&#xA;&#x9;&#x9;else if(revenu &lt;= 6075) then 0.32&#xA;&#x9;&#x9;else if(revenu &lt;= 6390) then 0.34&#xA;&#x9;&#x9;else if(revenu &lt;= 6710) then 0.36&#xA;&#x9;&#x9;else if(revenu &lt;= 7030) then 0.38&#xA;&#x9;&#x9;else if(revenu &lt;= 16730) then 0.39&#xA;&#x9;&#x9;else 0.4&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; endif"/>
839 </eAnnotations>
840 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
841 </eOperations>
842 <eOperations name="get_B_for_pension_class_2" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
843 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
844 <details key="body" value="if(revenu&lt;= 1940) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 2260) then 155.4&#xA;&#x9;&#x9;else if(revenu &lt;= 2575) then 200.61&#xA;&#x9;&#x9;else if(revenu &lt;= 2895) then 252.18&#xA;&#x9;&#x9;else if(revenu &lt;= 3210) then 310.11&#xA;&#x9;&#x9;else if(revenu &lt;= 3530) then 374.4&#xA;&#x9;&#x9;else if(revenu &lt;= 3850) then 445.05&#xA;&#x9;&#x9;else if(revenu &lt;= 4165) then 522.06&#xA;&#x9;&#x9;else if(revenu &lt;= 4485) then 605.43&#xA;&#x9;&#x9;else if(revenu &lt;= 4800) then 695.16&#xA;&#x9;&#x9;else if(revenu &lt;= 5120) then 791.25&#xA;&#x9;&#x9;else if(revenu &lt;= 5440) then 893.7&#xA;&#x9;&#x9;else if(revenu &lt;= 5755) then 1002.51&#xA;&#x9;&#x9;else if(revenu &lt;= 6075) then 1117.68&#xA;&#x9;&#x9;else if(revenu &lt;= 6390) then 1239.21&#xA;&#x9;&#x9;else if(revenu &lt;= 6710) then 1367.1&#xA;&#x9;&#x9;else if(revenu &lt;= 7030) then 1501.35&#xA;&#x9;&#x9;else if(revenu &lt;= 16730) then 1571.655&#xA;&#x9;&#x9;else 1738.97166&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; endif"/>
845 </eAnnotations>
846 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
847 </eOperations>
848 <eOperations name="get_A_for_other_yearly_class_1" ordered="false" lowerBound="1"
849 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
850 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
851 <details key="body" value=" if(revenu&lt;= 11250) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 13150) then 0.08&#xA;&#x9;&#x9;else if(revenu &lt;= 15050) then 0.1&#xA;&#x9;&#x9;else if(revenu &lt;= 16950) then 0.12&#xA;&#x9;&#x9;else if(revenu &lt;= 18850) then 0.14&#xA;&#x9;&#x9;else if(revenu &lt;= 20800) then 0.16&#xA;&#x9;&#x9;else if(revenu &lt;= 22700) then 0.18&#xA;&#x9;&#x9;else if(revenu &lt;= 24600) then 0.2&#xA;&#x9;&#x9;else if(revenu &lt;= 26500) then 0.22&#xA;&#x9;&#x9;else if(revenu &lt;= 28400) then 0.24&#xA;&#x9;&#x9;else if(revenu &lt;= 30300) then 0.26&#xA;&#x9;&#x9;else if(revenu &lt;= 32250) then 0.28&#xA;&#x9;&#x9;else if(revenu &lt;= 34150) then 0.3&#xA;&#x9;&#x9;else if(revenu &lt;= 36050) then 0.32&#xA;&#x9;&#x9;else if(revenu &lt;= 37950) then 0.34&#xA;&#x9;&#x9;else if(revenu &lt;= 39850) then 0.36&#xA;&#x9;&#x9;else if(revenu &lt;= 41750) then 0.38&#xA;&#x9;&#x9;else if(revenu &lt;= 100000) then 0.39&#xA;&#x9;&#x9;else 0.4&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; endif"/>
852 </eAnnotations>
853 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
854 </eOperations>
855 <eOperations name="get_B_for_other_yearly_class_1" ordered="false" lowerBound="1"
856 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
857 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
858 <details key="body" value="if(revenu&lt;= 11250) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 13150) then 901.200 &#xA;&#x9;&#x9;else if(revenu &lt;= 15050) then 1164.660&#xA;&#x9;&#x9;else if(revenu &lt;= 16950) then 1466.280&#xA;&#x9;&#x9;else if(revenu &lt;= 18850) then 1806.060&#xA;&#x9;&#x9;else if(revenu &lt;= 20800) then 2184&#xA;&#x9;&#x9;else if(revenu &lt;= 22700) then 2600.100&#xA;&#x9;&#x9;else if(revenu &lt;= 24600) then 3054.360&#xA;&#x9;&#x9;else if(revenu &lt;= 26500) then 3546.780 &#xA;&#x9;&#x9;else if(revenu &lt;= 28400) then 4077.360&#xA;&#x9;&#x9;else if(revenu &lt;= 30300) then 4646.100&#xA;&#x9;&#x9;else if(revenu &lt;= 32250) then 5253&#xA;&#x9;&#x9;else if(revenu &lt;= 34150) then 5898.060&#xA;&#x9;&#x9;else if(revenu &lt;= 36050) then 6581.28&#xA;&#x9;&#x9;else if(revenu &lt;= 37950) then 7302.66&#xA;&#x9;&#x9;else if(revenu &lt;= 39850) then 8062.2&#xA;&#x9;&#x9;else if(revenu &lt;= 41750) then 8859.9&#xA;&#x9;&#x9;else if(revenu &lt;= 100000) then 9277.83&#xA;&#x9;&#x9;else 10277.83&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; endif"/>
859 </eAnnotations>
860 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
861 </eOperations>
862 <eOperations name="get_A_for_other_yearly_class_1A" ordered="false" lowerBound="1"
863 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
864 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
865 <details key="body" value="if(revenu&lt;=22500) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 23800) then 0.12&#xA;&#x9;&#x9;else if(revenu &lt;= 25050) then 0.15&#xA;&#x9;&#x9;else if(revenu &lt;= 26300) then 0.18&#xA;&#x9;&#x9;else if(revenu &lt;= 27600) then 0.21&#xA;&#x9;&#x9;else if(revenu &lt;= 28850) then 0.24&#xA;&#x9;&#x9;else if(revenu &lt;= 30150) then 0.27&#xA;&#x9;&#x9;else if(revenu &lt;= 31400) then 0.3&#xA;&#x9;&#x9;else if(revenu &lt;= 32700) then 0.33&#xA;&#x9;&#x9;else if(revenu &lt;= 33950) then 0.36&#xA;&#x9;&#x9;else if(revenu &lt;= 35250) then 0.39&#xA;&#x9;&#x9;else 0.4&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; endif"/>
866 </eAnnotations>
867 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
868 </eOperations>
869 <eOperations name="get_B_for_other_yearly_class_1A" ordered="false" lowerBound="1"
870 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
871 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
872 <details key="body" value="if(revenu&lt;=22500) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 23800) then 2703.600&#xA;&#x9;&#x9;else if(revenu &lt;= 25050) then 3417.660&#xA;&#x9;&#x9;else if(revenu &lt;= 26300) then 4169.880&#xA;&#x9;&#x9;else if(revenu &lt;= 27600) then 4960.260&#xA;&#x9;&#x9;else if(revenu &lt;= 28850) then 5788.800&#xA;&#x9;&#x9;else if(revenu &lt;= 30150) then 6655.500&#xA;&#x9;&#x9;else if(revenu &lt;= 31400) then 7560.360&#xA;&#x9;&#x9;else if(revenu &lt;= 32700) then 8503.380&#xA;&#x9;&#x9;else if(revenu &lt;= 33950) then 9484.560&#xA;&#x9;&#x9;else if(revenu &lt;= 35250) then 10503.900&#xA;&#x9;&#x9;else 10856.400&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; endif"/>
873 </eAnnotations>
874 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
875 </eOperations>
876 <eOperations name="get_A_for_other_yearly_class_2" ordered="false" lowerBound="1"
877 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
878 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
879 <details key="body" value="if(revenu&lt;=22500) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 26300) then 0.08&#xA;&#x9;&#x9;else if(revenu &lt;= 30150) then 0.1&#xA;&#x9;&#x9;else if(revenu &lt;= 33950) then 0.12&#xA;&#x9;&#x9;else if(revenu &lt;= 37750) then 0.14&#xA;&#x9;&#x9;else if(revenu &lt;= 41600) then 0.16&#xA;&#x9;&#x9;else if(revenu &lt;= 45400) then 0.18&#xA;&#x9;&#x9;else if(revenu &lt;= 49200) then 0.2&#xA;&#x9;&#x9;else if(revenu &lt;= 53050) then 0.22&#xA;&#x9;&#x9;else if(revenu &lt;= 56850) then 0.24&#xA;&#x9;&#x9;else if(revenu &lt;= 60650) then 0.26&#xA;&#x9;&#x9;else if(revenu &lt;= 64500) then 0.28&#xA;&#x9;&#x9;else if(revenu &lt;= 68300) then 0.3&#xA;&#x9;&#x9;else if(revenu &lt;= 72100) then 0.32&#xA;&#x9;&#x9;else if(revenu &lt;= 75950) then 0.34&#xA;&#x9;&#x9;else if(revenu &lt;= 79750) then 0.36&#xA;&#x9;&#x9;else if(revenu &lt;= 83550) then 0.38&#xA;&#x9;&#x9;else if(revenu &lt;= 200000) then 0.39&#xA;&#x9;&#x9;else 0.4&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; endif"/>
880 </eAnnotations>
881 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
882 </eOperations>
883 <eOperations name="get_B_for_other_yearly_class_2" ordered="false" lowerBound="1"
884 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
885 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
886 <details key="body" value="if(revenu&lt;=22500) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 26300) then 1802.400 &#xA;&#x9;&#x9;else if(revenu &lt;= 30150) then 2329.320&#xA;&#x9;&#x9;else if(revenu &lt;= 33950) then 2932.560&#xA;&#x9;&#x9;else if(revenu &lt;= 37750) then 3612.120&#xA;&#x9;&#x9;else if(revenu &lt;= 41600) then 4368.000&#xA;&#x9;&#x9;else if(revenu &lt;= 45400) then 5200.200&#xA;&#x9;&#x9;else if(revenu &lt;= 49200) then 6108.720&#xA;&#x9;&#x9;else if(revenu &lt;= 53050) then 7093.560&#xA;&#x9;&#x9;else if(revenu &lt;= 56850) then 8154.720&#xA;&#x9;&#x9;else if(revenu &lt;= 60650) then 9292.200&#xA;&#x9;&#x9;else if(revenu &lt;= 64500) then 10506.000&#xA;&#x9;&#x9;else if(revenu &lt;= 68300) then 11796.120&#xA;&#x9;&#x9;else if(revenu &lt;= 72100) then 13162.560&#xA;&#x9;&#x9;else if(revenu &lt;= 75950) then 14605.320&#xA;&#x9;&#x9;else if(revenu &lt;= 79750) then 16124.400&#xA;&#x9;&#x9;else if(revenu &lt;= 83550) then 17719.800&#xA;&#x9;&#x9;else if(revenu &lt;= 200000) then 18555.660&#xA;&#x9;&#x9;else 20555.660&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; endif"/>
887 </eAnnotations>
888 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
889 </eOperations>
890 <eOperations name="calculate_taxes_per_month" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
891 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
892 <details key="body" value="if(income_type='Employment') then&#xA;&#x9;&#x9;&#x9;let a:Real = if(classe=Tax_Class_Category::One_A) then get_A_for_salary_class_1A(amount) else if(classe=Tax_Class_Category::Two) then get_A_for_salary_class_2(amount) else get_A_for_salary_class_1(amount) endif endif in&#xA;&#x9;&#x9;&#x9;let b:Real = if(classe=Tax_Class_Category::One_A) then get_B_for_salary_class_1A(amount) else if(classe=Tax_Class_Category::Two) then get_B_for_salary_class_2(amount) else get_B_for_salary_class_1(amount) endif endif in&#xA;&#x9;&#x9; let res:Real = round_ten_cent(a * amount - b) in&#xA; let max:Real = if(classe=Tax_Class_Category::Two) then 25085 else 12585 endif in&#xA; &#xA;&#x9;&#x9; if(amount&lt;max) then&#xA;&#x9;&#x9; let final_res:Real= round_ten_cent(res*1.07) in&#xA;&#x9;&#x9; if(final_res&lt;1)then&#xA;&#x9;&#x9; 0&#xA;&#x9;&#x9; else&#xA;&#x9;&#x9; final_res&#xA;&#x9;&#x9; endif&#xA;&#x9;&#x9; else &#xA;&#x9;&#x9; let adjustement:Real= if(classe=Tax_Class_Category::One_A) then 81.906 else if(classe=Tax_Class_Category::Two) then 165.74 else 82.87 endif endif in&#xA;&#x9;&#x9; &#x9;let final_res:Real= round_ten_cent(res + (res*0.09-adjustement)) in&#xA;&#x9;&#x9; &#x9;if(final_res&lt;1)then&#xA;&#x9;&#x9; 0&#xA;&#x9;&#x9; else&#xA;&#x9;&#x9; final_res&#xA;&#x9;&#x9; endif&#xA;&#x9;&#x9; endif&#xA;&#x9;&#x9; &#xA;&#x9;&#x9; &#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;if(income_type='Pension') then&#xA;&#x9;&#x9;&#x9;let a:Real = if(classe=Tax_Class_Category::One_A) then get_A_for_pension_class_1A(amount) else if(classe=Tax_Class_Category::Two) then get_A_for_pension_class_2(amount) else get_A_for_pension_class_1(amount) endif endif in&#xA;&#x9;&#x9;&#x9;let b:Real = if(classe=Tax_Class_Category::One_A) then get_B_for_pension_class_1A(amount) else if(classe=Tax_Class_Category::Two) then get_B_for_pension_class_2(amount) else get_B_for_pension_class_1(amount) endif endif in&#xA;&#x9;&#x9; let res:Real = round_ten_cent(a * amount - b) in&#xA;&#x9;&#x9; let max:Real = if(classe=Tax_Class_Category::Two) then 25065 else 12565 endif in&#xA; &#xA;&#x9;&#x9; if(amount&lt;max) then&#xA;&#x9;&#x9; let final_res:Real= round_ten_cent(res*1.07) in&#xA;&#x9;&#x9; if(final_res&lt;1)then&#xA;&#x9;&#x9; 0&#xA;&#x9;&#x9; else&#xA;&#x9;&#x9; final_res&#xA;&#x9;&#x9; endif&#xA;&#x9;&#x9; else &#xA;&#x9;&#x9; let adjustement:Real= if(classe=Tax_Class_Category::One_A) then 81.906 else if(classe=Tax_Class_Category::Two) then 165.74 else 82.87 endif endif in&#xA;&#x9;&#x9; &#x9;let final_res:Real= round_ten_cent(res + (res*0.09-adjustement)) in&#xA;&#x9;&#x9; &#x9;if(final_res&lt;1)then&#xA;&#x9;&#x9; 0&#xA;&#x9;&#x9; else&#xA;&#x9;&#x9; final_res&#xA;&#x9;&#x9; endif&#xA;&#x9;&#x9; endif&#x9;&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;-1&#xA;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;endif"/>
893 </eAnnotations>
894 <eParameters name="amount" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
895 <eParameters name="classe" ordered="false" lowerBound="1" eType="#//Tax_Class_Category"/>
896 <eParameters name="income_type" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
897 </eOperations>
898 <eOperations name="round_lower_euros" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
899 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
900 <details key="body" value="let p1:Integer = amount.floor() in&#xA;&#x9;&#x9;&#x9;p1.toString().toReal()"/>
901 </eAnnotations>
902 <eParameters name="amount" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
903 </eOperations>
904 <eOperations name="round_ten_cent" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
905 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
906 <details key="body" value="let p1:Integer = amount.floor() in&#xA;&#x9;&#x9;&#x9;if(p1=amount) then&#xA;&#x9;&#x9;&#x9;amount&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;let p2_temp:Real = (amount-p1) * 10 in&#xA;&#x9;&#x9;&#x9;let p2:Integer = p2_temp.floor() in&#xA;&#x9;&#x9;&#x9;p1.toString().toReal()+(p2.toString().toReal()/10.0)&#xA;&#x9;&#x9;&#x9;endif"/>
907 </eAnnotations>
908 <eParameters name="amount" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
909 </eOperations>
910 <eOperations name="get_A_for_salary_yearly_class_1" ordered="false" lowerBound="1"
911 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
912 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
913 <details key="body" value="if(revenu&lt;= 12250) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 14150) then 0.08&#xA;&#x9;&#x9;else if(revenu &lt;= 16100) then 0.1&#xA;&#x9;&#x9;else if(revenu &lt;= 18000) then 0.12&#xA;&#x9;&#x9;else if(revenu &lt;= 19900) then 0.14&#xA;&#x9;&#x9;else if(revenu &lt;= 21800) then 0.16&#xA;&#x9;&#x9;else if(revenu &lt;= 23700) then 0.18&#xA;&#x9;&#x9;else if(revenu &lt;= 25600) then 0.2&#xA;&#x9;&#x9;else if(revenu &lt;= 27500) then 0.22&#xA;&#x9;&#x9;else if(revenu &lt;= 29450) then 0.24&#xA;&#x9;&#x9;else if(revenu &lt;= 31350) then 0.26&#xA;&#x9;&#x9;else if(revenu &lt;= 33250) then 0.28&#xA;&#x9;&#x9;else if(revenu &lt;= 35150) then 0.3&#xA;&#x9;&#x9;else if(revenu &lt;= 37050) then 0.32&#xA;&#x9;&#x9;else if(revenu &lt;= 38950) then 0.34&#xA;&#x9;&#x9;else if(revenu &lt;= 40900) then 0.36&#xA;&#x9;&#x9;else if(revenu &lt;= 42800) then 0.38&#xA;&#x9;&#x9;else if(revenu &lt;= 101000) then 0.39&#xA;&#x9;&#x9;else 0.4&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; endif"/>
914 </eAnnotations>
915 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
916 </eOperations>
917 <eOperations name="get_B_for_salary_yearly_class_1" ordered="false" lowerBound="1"
918 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
919 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
920 <details key="body" value="if(revenu&lt;= 12250) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 14150) then 982.8000&#xA;&#x9;&#x9;else if(revenu &lt;= 16100) then 1266.6600&#xA;&#x9;&#x9;else if(revenu &lt;= 18000) then 1588.6800&#xA;&#x9;&#x9;else if(revenu &lt;= 19900) then 1948.8600&#xA;&#x9;&#x9;else if(revenu &lt;= 21800) then 2347.2000&#xA;&#x9;&#x9;else if(revenu &lt;= 23700) then 2783.7000&#xA;&#x9;&#x9;else if(revenu &lt;= 25600) then 3258.3600&#xA;&#x9;&#x9;else if(revenu &lt;= 27500) then 3771.1800&#xA;&#x9;&#x9;else if(revenu &lt;= 29450) then 4322.1600&#xA;&#x9;&#x9;else if(revenu &lt;= 31350) then 4911.3000&#xA;&#x9;&#x9;else if(revenu &lt;= 33250) then 5538.6000&#xA;&#x9;&#x9;else if(revenu &lt;= 35150) then 6204.0600&#xA;&#x9;&#x9;else if(revenu &lt;= 37050) then 6907.6800&#xA;&#x9;&#x9;else if(revenu &lt;= 38950) then 7649.4600&#xA;&#x9;&#x9;else if(revenu &lt;= 40900) then 8429.4000&#xA;&#x9;&#x9;else if(revenu &lt;= 42800) then 9247.5000&#xA;&#x9;&#x9;else if(revenu &lt;= 101000) then 9675.6300&#xA;&#x9;&#x9;else 10685.8300&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; endif"/>
921 </eAnnotations>
922 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
923 </eOperations>
924 <eOperations name="get_A_for_salary_yearly_class_1A" ordered="false" lowerBound="1"
925 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
926 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
927 <details key="body" value="if(revenu&lt;= 23500) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 24800) then 0.12&#xA;&#x9;&#x9;else if(revenu &lt;= 26050) then 0.15&#xA;&#x9;&#x9;else if(revenu &lt;= 27350) then 0.18&#xA;&#x9;&#x9;else if(revenu &lt;= 28600) then 0.21&#xA;&#x9;&#x9;else if(revenu &lt;= 29900) then 0.24&#xA;&#x9;&#x9;else if(revenu &lt;= 31150) then 0.27&#xA;&#x9;&#x9;else if(revenu &lt;= 32450) then 0.3&#xA;&#x9;&#x9;else if(revenu &lt;= 33700) then 0.33&#xA;&#x9;&#x9;else if(revenu &lt;= 34950) then 0.36&#xA;&#x9;&#x9;else if(revenu &lt;= 36250) then 0.39&#xA;&#x9;&#x9;else 0.4&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; endif"/>
928 </eAnnotations>
929 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
930 </eOperations>
931 <eOperations name="get_B_for_salary_yearly_class_1A" ordered="false" lowerBound="1"
932 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
933 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
934 <details key="body" value="if(revenu&lt;= 23500) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 24800) then 2826.0000&#xA;&#x9;&#x9;else if(revenu &lt;= 26050) then 3570.6600&#xA;&#x9;&#x9;else if(revenu &lt;= 27350) then 4353.4800&#xA;&#x9;&#x9;else if(revenu &lt;= 28600) then 5174.4600&#xA;&#x9;&#x9;else if(revenu &lt;= 29900) then 6033.6000&#xA;&#x9;&#x9;else if(revenu &lt;= 31150) then 6930.9000&#xA;&#x9;&#x9;else if(revenu &lt;= 32450) then 7866.3600&#xA;&#x9;&#x9;else if(revenu &lt;= 33700) then 8839.9800&#xA;&#x9;&#x9;else if(revenu &lt;= 34950) then 9851.7600&#xA;&#x9;&#x9;else if(revenu &lt;= 36250) then 10901.7000&#xA;&#x9;&#x9;else 11264.4000&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; endif"/>
935 </eAnnotations>
936 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
937 </eOperations>
938 <eOperations name="get_A_for_salary_yearly_class_2" ordered="false" lowerBound="1"
939 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
940 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
941 <details key="body" value="if(revenu&lt;= 23550) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 27350) then 0.08&#xA;&#x9;&#x9;else if(revenu &lt;= 31150) then 0.1&#xA;&#x9;&#x9;else if(revenu &lt;= 34950) then 0.12&#xA;&#x9;&#x9;else if(revenu &lt;= 38800) then 0.14&#xA;&#x9;&#x9;else if(revenu &lt;= 42600) then 0.16&#xA;&#x9;&#x9;else if(revenu &lt;= 46400) then 0.18&#xA;&#x9;&#x9;else if(revenu &lt;= 50250) then 0.2&#xA;&#x9;&#x9;else if(revenu &lt;= 54050) then 0.22&#xA;&#x9;&#x9;else if(revenu &lt;= 57850) then 0.24&#xA;&#x9;&#x9;else if(revenu &lt;= 61700) then 0.26&#xA;&#x9;&#x9;else if(revenu &lt;= 65500) then 0.28&#xA;&#x9;&#x9;else if(revenu &lt;= 69300) then 0.3&#xA;&#x9;&#x9;else if(revenu &lt;= 73150) then 0.32&#xA;&#x9;&#x9;else if(revenu &lt;= 76950) then 0.34&#xA;&#x9;&#x9;else if(revenu &lt;= 80750) then 0.36&#xA;&#x9;&#x9;else if(revenu &lt;= 84600) then 0.38&#xA;&#x9;&#x9;else if(revenu &lt;= 201000) then 0.39&#xA;&#x9;&#x9;else 0.4&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; endif"/>
942 </eAnnotations>
943 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
944 </eOperations>
945 <eOperations name="get_B_for_salary_yearly_class_2" ordered="false" lowerBound="1"
946 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
947 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
948 <details key="body" value=" if(revenu&lt;= 23550) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 27350) then 1884.000&#xA;&#x9;&#x9;else if(revenu &lt;= 31150) then 2431.3200&#xA;&#x9;&#x9;else if(revenu &lt;= 34950) then 3054.9600&#xA;&#x9;&#x9;else if(revenu &lt;= 38800) then 3754.9200&#xA;&#x9;&#x9;else if(revenu &lt;= 42600) then 4531.2000&#xA;&#x9;&#x9;else if(revenu &lt;= 46400) then 5383.8000&#xA;&#x9;&#x9;else if(revenu &lt;= 50250) then 6312.7200&#xA;&#x9;&#x9;else if(revenu &lt;= 54050) then 7317.9600&#xA;&#x9;&#x9;else if(revenu &lt;= 57850) then 8399.5200&#xA;&#x9;&#x9;else if(revenu &lt;= 61700) then 9557.4000&#xA;&#x9;&#x9;else if(revenu &lt;= 65500) then 10791.6000&#xA;&#x9;&#x9;else if(revenu &lt;= 69300) then 12102.1200&#xA;&#x9;&#x9;else if(revenu &lt;= 73150) then 13488.9600&#xA;&#x9;&#x9;else if(revenu &lt;= 76950) then 14952.1200&#xA;&#x9;&#x9;else if(revenu &lt;= 80750) then 16491.6000&#xA;&#x9;&#x9;else if(revenu &lt;= 84600) then 18107.4000&#xA;&#x9;&#x9;else if(revenu &lt;= 201000) then 18953.4600&#xA;&#x9;&#x9;else 20963.6600&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; endif"/>
949 </eAnnotations>
950 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
951 </eOperations>
952 <eOperations name="get_A_for_pension_yearly_class_1" ordered="false" lowerBound="1"
953 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
954 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
955 <details key="body" value="if(revenu&lt;= 12000) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 13950) then 0.08&#xA;&#x9;&#x9;else if(revenu &lt;= 15850) then 0.1&#xA;&#x9;&#x9;else if(revenu &lt;= 17750) then 0.12&#xA;&#x9;&#x9;else if(revenu &lt;= 19650) then 0.14&#xA;&#x9;&#x9;else if(revenu &lt;= 21550) then 0.16&#xA;&#x9;&#x9;else if(revenu &lt;= 23450) then 0.18&#xA;&#x9;&#x9;else if(revenu &lt;= 25400) then 0.2&#xA;&#x9;&#x9;else if(revenu &lt;= 27300) then 0.22&#xA;&#x9;&#x9;else if(revenu &lt;= 29200) then 0.24&#xA;&#x9;&#x9;else if(revenu &lt;= 31100) then 0.26&#xA;&#x9;&#x9;else if(revenu &lt;= 33000) then 0.28&#xA;&#x9;&#x9;else if(revenu &lt;= 34900) then 0.3&#xA;&#x9;&#x9;else if(revenu &lt;= 36800) then 0.32&#xA;&#x9;&#x9;else if(revenu &lt;= 38750) then 0.34&#xA;&#x9;&#x9;else if(revenu &lt;= 40650) then 0.36&#xA;&#x9;&#x9;else if(revenu &lt;= 42550) then 0.38&#xA;&#x9;&#x9;else if(revenu &lt;= 100750) then 0.39&#xA;&#x9;&#x9;else 0.4&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; endif"/>
956 </eAnnotations>
957 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
958 </eOperations>
959 <eOperations name="get_B_for_pension_yearly_class_1" ordered="false" lowerBound="1"
960 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
961 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
962 <details key="body" value="if(revenu&lt;= 12000) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 13950) then 963.600&#xA;&#x9;&#x9;else if(revenu &lt;= 15850) then 1242.660&#xA;&#x9;&#x9;else if(revenu &lt;= 17750) then 1559.880&#xA;&#x9;&#x9;else if(revenu &lt;= 19650) then 1915.260&#xA;&#x9;&#x9;else if(revenu &lt;= 21550) then 2308.800&#xA;&#x9;&#x9;else if(revenu &lt;= 23450) then 2740.500&#xA;&#x9;&#x9;else if(revenu &lt;= 25400) then 3210.360&#xA;&#x9;&#x9;else if(revenu &lt;= 27300) then 3718.380&#xA;&#x9;&#x9;else if(revenu &lt;= 29200) then 4264.560&#xA;&#x9;&#x9;else if(revenu &lt;= 31100) then 4848.900&#xA;&#x9;&#x9;else if(revenu &lt;= 33000) then 5471.400&#xA;&#x9;&#x9;else if(revenu &lt;= 34900) then 6132.060&#xA;&#x9;&#x9;else if(revenu &lt;= 36800) then 6830.880&#xA;&#x9;&#x9;else if(revenu &lt;= 38750) then 7567.860&#xA;&#x9;&#x9;else if(revenu &lt;= 40650) then 8343.000&#xA;&#x9;&#x9;else if(revenu &lt;= 42550) then 9156.300&#xA;&#x9;&#x9;else if(revenu &lt;= 100750) then 9582.030&#xA;&#x9;&#x9;else 10589.830&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; endif"/>
963 </eAnnotations>
964 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
965 </eOperations>
966 <eOperations name="get_A_for_pension_yearly_class_1A" ordered="false" lowerBound="1"
967 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
968 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
969 <details key="body" value="if(revenu&lt;= 23300) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 24550) then 0.12&#xA;&#x9;&#x9;else if(revenu &lt;= 25850) then 0.15&#xA;&#x9;&#x9;else if(revenu &lt;= 27100) then 0.18&#xA;&#x9;&#x9;else if(revenu &lt;= 28350) then 0.21&#xA;&#x9;&#x9;else if(revenu &lt;= 29650) then 0.24&#xA;&#x9;&#x9;else if(revenu &lt;= 30900) then 0.27&#xA;&#x9;&#x9;else if(revenu &lt;= 32200) then 0.3&#xA;&#x9;&#x9;else if(revenu &lt;= 33450) then 0.33&#xA;&#x9;&#x9;else if(revenu &lt;= 34750) then 0.36&#xA;&#x9;&#x9;else if(revenu &lt;= 36000) then 0.39&#xA;&#x9;&#x9;else 0.4&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; endif"/>
970 </eAnnotations>
971 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
972 </eOperations>
973 <eOperations name="get_B_for_pension_yearly_class_1A" ordered="false" lowerBound="1"
974 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
975 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
976 <details key="body" value="if(revenu&lt;= 23300) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 24550) then 2797.200&#xA;&#x9;&#x9;else if(revenu &lt;= 25850) then 3534.660&#xA;&#x9;&#x9;else if(revenu &lt;= 27100) then 4310.280&#xA;&#x9;&#x9;else if(revenu &lt;= 28350) then 5124.060&#xA;&#x9;&#x9;else if(revenu &lt;= 29650) then 5976.000&#xA;&#x9;&#x9;else if(revenu &lt;= 30900) then 6866.100&#xA;&#x9;&#x9;else if(revenu &lt;= 32200) then 7794.360&#xA;&#x9;&#x9;else if(revenu &lt;= 33450) then 8760.780&#xA;&#x9;&#x9;else if(revenu &lt;= 34750) then 9765.360&#xA;&#x9;&#x9;else if(revenu &lt;= 36000) then 10808.100&#xA;&#x9;&#x9;else 11168.400&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; endif"/>
977 </eAnnotations>
978 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
979 </eOperations>
980 <eOperations name="get_A_for_pension_yearly_class_2" ordered="false" lowerBound="1"
981 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
982 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
983 <details key="body" value="if(revenu&lt;= 23300) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 27100) then 0.08&#xA;&#x9;&#x9;else if(revenu &lt;= 30900) then 0.1&#xA;&#x9;&#x9;else if(revenu &lt;= 34750) then 0.12&#xA;&#x9;&#x9;else if(revenu &lt;= 38550) then 0.14&#xA;&#x9;&#x9;else if(revenu &lt;= 42350) then 0.16&#xA;&#x9;&#x9;else if(revenu &lt;= 46200) then 0.18&#xA;&#x9;&#x9;else if(revenu &lt;= 50000) then 0.2&#xA;&#x9;&#x9;else if(revenu &lt;= 53800) then 0.22&#xA;&#x9;&#x9;else if(revenu &lt;= 57650) then 0.24&#xA;&#x9;&#x9;else if(revenu &lt;= 61450) then 0.26&#xA;&#x9;&#x9;else if(revenu &lt;= 65250) then 0.28&#xA;&#x9;&#x9;else if(revenu &lt;= 69100) then 0.3&#xA;&#x9;&#x9;else if(revenu &lt;= 72900) then 0.32&#xA;&#x9;&#x9;else if(revenu &lt;= 76700) then 0.34&#xA;&#x9;&#x9;else if(revenu &lt;= 80550) then 0.36&#xA;&#x9;&#x9;else if(revenu &lt;= 84350) then 0.38&#xA;&#x9;&#x9;else if(revenu &lt;= 200750) then 0.39&#xA;&#x9;&#x9;else 0.4&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; endif"/>
984 </eAnnotations>
985 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
986 </eOperations>
987 <eOperations name="get_B_for_pension_yearly_class_2" ordered="false" lowerBound="1"
988 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
989 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
990 <details key="body" value="if(revenu&lt;= 23300) then 0&#xA;&#x9;&#x9;else if(revenu &lt;= 27100) then 1864.800&#xA;&#x9;&#x9;else if(revenu &lt;= 30900) then 2407.320&#xA;&#x9;&#x9;else if(revenu &lt;= 34750) then 3026.160&#xA;&#x9;&#x9;else if(revenu &lt;= 38550) then 3721.320&#xA;&#x9;&#x9;else if(revenu &lt;= 42350) then 4492.800&#xA;&#x9;&#x9;else if(revenu &lt;= 46200) then 5340.600&#xA;&#x9;&#x9;else if(revenu &lt;= 50000) then 6264.720&#xA;&#x9;&#x9;else if(revenu &lt;= 53800) then 7265.160&#xA;&#x9;&#x9;else if(revenu &lt;= 57650) then 8341.920&#xA;&#x9;&#x9;else if(revenu &lt;= 61450) then 9495.000&#xA;&#x9;&#x9;else if(revenu &lt;= 65250) then 10724.400&#xA;&#x9;&#x9;else if(revenu &lt;= 69100) then 12030.120&#xA;&#x9;&#x9;else if(revenu &lt;= 72900) then 13412.160&#xA;&#x9;&#x9;else if(revenu &lt;= 76700) then 14870.520&#xA;&#x9;&#x9;else if(revenu &lt;= 80550) then 16405.200&#xA;&#x9;&#x9;else if(revenu &lt;= 84350) then 18016.200&#xA;&#x9;&#x9;else if(revenu &lt;= 200750) then 18859.860&#xA;&#x9;&#x9;else 20867.660&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA;&#x9;&#x9;endif&#xA; endif"/>
991 </eAnnotations>
992 <eParameters name="revenu" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
993 </eOperations>
994 <eOperations name="calculate_taxes_per_year" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
995 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
996 <details key="body" value="if(income_type='Employment') then&#xA;&#x9;&#x9;&#x9;let a:Real = if(classe=Tax_Class_Category::One_A) then get_A_for_salary_yearly_class_1A(amount) else if(classe=Tax_Class_Category::Two) then get_A_for_salary_yearly_class_2(amount) else get_A_for_salary_yearly_class_1(amount) endif endif in&#xA;&#x9;&#x9;&#x9;let b:Real = if(classe=Tax_Class_Category::One_A) then get_B_for_salary_yearly_class_1A(amount) else if(classe=Tax_Class_Category::Two) then get_B_for_salary_yearly_class_2(amount) else get_B_for_salary_yearly_class_1(amount) endif endif in&#xA;&#x9;&#x9; let res:Real = round_lower_euros(a * amount - b) in&#xA; let max:Real = if(classe=Tax_Class_Category::Two) then 301020 else 151020 endif in&#xA; &#xA;&#x9;&#x9; if(amount&lt;max) then&#xA;&#x9;&#x9; let final_res:Real= round_lower_euros(res*1.07) in&#xA;&#x9;&#x9; if(final_res&lt;12)then&#xA;&#x9;&#x9; 0&#xA;&#x9;&#x9; else&#xA;&#x9;&#x9; final_res&#xA;&#x9;&#x9; endif&#xA;&#x9;&#x9; else &#xA;&#x9;&#x9; let adjustement:Real= if(classe=Tax_Class_Category::One_A) then 982.86 else if(classe=Tax_Class_Category::Two) then 1988.88 else 994.44 endif endif in&#xA;&#x9;&#x9; &#x9;let final_res:Real= round_lower_euros(res + (res*0.09-adjustement)) in&#xA;&#x9;&#x9; &#x9;if(final_res&lt;12)then&#xA;&#x9;&#x9; 0&#xA;&#x9;&#x9; else&#xA;&#x9;&#x9; final_res&#xA;&#x9;&#x9; endif&#xA;&#x9;&#x9; endif&#xA;&#x9;&#x9; &#xA;&#x9;&#x9; &#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;if(income_type='Pension') then&#xA;&#x9;&#x9;&#x9;let a:Real = if(classe=Tax_Class_Category::One_A) then get_A_for_pension_yearly_class_1A(amount) else if(classe=Tax_Class_Category::Two) then get_A_for_pension_yearly_class_2(amount) else get_A_for_pension_yearly_class_1(amount) endif endif in&#xA;&#x9;&#x9;&#x9;let b:Real = if(classe=Tax_Class_Category::One_A) then get_B_for_pension_yearly_class_1A(amount) else if(classe=Tax_Class_Category::Two) then get_B_for_pension_yearly_class_2(amount) else get_B_for_pension_yearly_class_1(amount) endif endif in&#xA;&#x9;&#x9; let res:Real = round_lower_euros(a * amount - b) in&#xA;&#x9;&#x9; let max:Real = if(classe=Tax_Class_Category::Two) then 300780 else 150780 endif in&#xA; &#xA;&#x9;&#x9; if(amount&lt;max) then&#xA;&#x9;&#x9; let final_res:Real= round_lower_euros(res*1.07) in&#xA;&#x9;&#x9; if(final_res&lt;12)then&#xA;&#x9;&#x9; 0&#xA;&#x9;&#x9; else&#xA;&#x9;&#x9; final_res&#xA;&#x9;&#x9; endif&#xA;&#x9;&#x9; else &#xA;&#x9;&#x9; let adjustement:Real= if(classe=Tax_Class_Category::One_A) then 982.86 else if(classe=Tax_Class_Category::Two) then 1988.88 else 994.44 endif endif in&#xA;&#x9;&#x9; &#x9;let final_res:Real= round_lower_euros(res + (res*0.09-adjustement)) in&#xA;&#x9;&#x9; &#x9;if(final_res&lt;12)then&#xA;&#x9;&#x9; 0&#xA;&#x9;&#x9; else&#xA;&#x9;&#x9; final_res&#xA;&#x9;&#x9; endif&#xA;&#x9;&#xA;&#x9;&#x9; endif&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;let a:Real = if(classe=Tax_Class_Category::One_A) then get_A_for_other_yearly_class_1A(amount) else if(classe=Tax_Class_Category::Two) then get_A_for_other_yearly_class_2(amount) else get_A_for_other_yearly_class_1(amount) endif endif in&#xA;&#x9;&#x9;&#x9;let b:Real = if(classe=Tax_Class_Category::One_A) then get_B_for_other_yearly_class_1A(amount) else if(classe=Tax_Class_Category::Two) then get_B_for_other_yearly_class_2(amount) else get_B_for_other_yearly_class_1(amount) endif endif in&#xA;&#x9;&#x9; let res:Real = round_lower_euros(a * amount - b) in&#xA; let max:Real = if(classe=Tax_Class_Category::Two) then 300000 else 150000 endif in&#xA; &#xA;&#x9;&#x9; if(amount&lt;max) then&#xA;&#x9;&#x9; let final_res:Real= round_lower_euros(res*1.07) in&#xA;&#x9;&#x9; if(final_res&lt;12)then&#xA;&#x9;&#x9; 0&#xA;&#x9;&#x9; else&#xA;&#x9;&#x9; final_res&#xA;&#x9;&#x9; endif&#xA;&#x9;&#x9; else &#xA;&#x9;&#x9; let adjustement:Real= if(classe=Tax_Class_Category::One_A) then 982.86 else if(classe=Tax_Class_Category::Two) then 1988.88 else 994.44 endif endif in&#xA;&#x9;&#x9; &#x9;let final_res:Real= round_lower_euros(res + (res*0.09-adjustement)) in&#xA;&#x9;&#x9; &#x9;if(final_res&lt;12)then&#xA;&#x9;&#x9; 0&#xA;&#x9;&#x9; else&#xA;&#x9;&#x9; final_res&#xA;&#x9;&#x9; endif &#xA;&#x9;&#x9; endif &#xA;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;endif"/>
997 </eAnnotations>
998 <eParameters name="amount" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
999 <eParameters name="classe" ordered="false" lowerBound="1" eType="#//Tax_Class_Category"/>
1000 <eParameters name="income_type" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1001 </eOperations>
1002 <eOperations name="CNS_RATE" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
1003 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
1004 <details key="body" value="0.0305"/>
1005 </eAnnotations>
1006 </eOperations>
1007 <eOperations name="PENSION_RATE" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
1008 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
1009 <details key="body" value="0.08"/>
1010 </eAnnotations>
1011 </eOperations>
1012 <eOperations name="round_lower_fifty_euros" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
1013 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
1014 <details key="body" value="&#x9;&#x9;if(amount&lt;50) then&#xA;&#x9;&#x9;&#x9;0&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;if (amount>=50 and amount&lt;100) then&#xA;&#x9;&#x9;&#x9;50.0&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;let temp_amount:Real = round_lower_euros(amount) in&#xA;&#x9;&#x9;&#x9;let ch:String=temp_amount.toString()in&#xA;&#x9;&#x9;&#x9;let temp_amount1:Real = temp_amount / 100.0 in&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;if(temp_amount1.round() = temp_amount1.floor()) then&#xA;&#x9;&#x9;&#x9;temp_amount1.floor() * 100.0&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;(temp_amount1.round() * 100.0) - 50&#xA;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;endif"/>
1015 </eAnnotations>
1016 <eParameters name="amount" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
1017 </eOperations>
1018 <eOperations name="getTaxableIncomePerYear" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
1019 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
1020 <details key="body" value="let gross_salary_year:Real= income.income_per_year() in&#xA;&#x9;&#x9;&#x9;let type:Income_Type=income.income_type in&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;if(type.oclIsTypeOf(Employment_Income)) then&#xA;&#x9;&#x9;&#x9;let sum_deductions_year:Real=income.tax_card.getSumDeductionsYear() in&#xA;&#x9;&#x9;&#x9;let part_pension_year:Real= gross_salary_year * income.taxPayer.from_law.PENSION_RATE() in&#xA;&#x9;&#x9;&#x9;let part_CNS_year:Real= gross_salary_year * income.taxPayer.from_law.CNS_RATE() in&#xA;&#x9;&#x9;&#x9;let taxable_income:Real= gross_salary_year- (part_CNS_year + part_pension_year + sum_deductions_year) in &#x9;&#xA;&#x9;&#x9;&#x9;round_lower_fifty_euros(taxable_income)&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;if(type.oclIsTypeOf(Pensions_and_Annuities_Income))then&#xA;&#x9;&#x9;&#x9;let sum_deductions_year:Real=income.tax_card.getSumDeductionsYear() in&#xA;&#x9;&#x9;&#x9;let taxable_income:Real= gross_salary_year- sum_deductions_year in &#x9;&#xA;&#x9;&#x9;&#x9;round_lower_fifty_euros(taxable_income)&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;let details:Set(Income_Detail)= income.details->select(i:Income_Detail|i.is_worked=true) in&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;let res:Real= details->iterate( elem : Income_Detail; acc : Real = 0 | &#xA;&#x9;&#x9;&#x9; &#x9;&#xA;&#x9;&#x9;&#x9; &#x9;if(elem.is_contributing_CNS=false and elem.is_contributing_pension=false) then acc + elem.amount &#xA;&#x9;&#x9;&#x9; &#x9;else&#xA;&#x9;&#x9;&#x9; &#x9;if(elem.is_contributing_CNS=true and elem.is_contributing_pension=true) then&#xA;&#x9;&#x9;&#x9; &#x9;acc+ elem.amount - (elem.amount* income.taxPayer.from_law.PENSION_RATE()) - (elem.amount* income.taxPayer.from_law.CNS_RATE())&#xA;&#x9;&#x9;&#x9; &#x9;else&#xA;&#x9;&#x9;&#x9; &#x9;if(elem.is_contributing_CNS=true)then&#xA;&#x9;&#x9;&#x9; acc+ elem.amount - (elem.amount* income.taxPayer.from_law.CNS_RATE())&#xA;&#x9;&#x9;&#x9; &#x9;else&#xA;&#x9;&#x9;&#x9; &#x9;acc+ elem.amount - (elem.amount* income.taxPayer.from_law.PENSION_RATE()) &#xA;&#x9;&#x9;&#x9; &#x9;&#xA;&#x9;&#x9;&#x9; &#x9;endif &#xA;&#x9;&#x9;&#x9; &#x9;endif &#xA;&#x9;&#x9;&#x9; &#x9;endif &#xA;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9; )&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;in round_lower_fifty_euros(res)&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;endif"/>
1021 </eAnnotations>
1022 <eParameters name="income" ordered="false" lowerBound="1" eType="#//Income"/>
1023 </eOperations>
1024 <eOperations name="precision" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
1025 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
1026 <details key="body" value="&#x9;&#x9;let ch:String=amount.toString() in&#xA;&#x9;&#x9;&#x9;if(ch.indexOf('.')=-1)then&#xA;&#x9;&#x9;&#x9;amount&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;let pos_pt:Integer=ch.indexOf('.') in&#xA;&#x9;&#x9;&#x9;if(pos_pt+degit >=ch.size()) then&#xA;&#x9;&#x9;&#x9;amount &#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;let ch1:String=ch.substring(1,pos_pt+degit) in&#xA;&#x9;&#x9;&#x9;ch1.toReal()&#xA;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;endif"/>
1027 </eAnnotations>
1028 <eParameters name="amount" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
1029 <eParameters name="degit" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
1030 </eOperations>
1031 <eOperations name="MAXIMUM_RATE_FOR_CE_CHILDREN" ordered="false" lowerBound="1"
1032 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
1033 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
1034 <details key="body" value="3480.0"/>
1035 </eAnnotations>
1036 </eOperations>
1037 <eOperations name="MINIMUM_LEGAL_SALARY" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
1038 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
1039 <details key="body" value="1921.03"/>
1040 </eAnnotations>
1041 </eOperations>
1042 <eOperations name="MAXIMUM_FLAT_RATE_FOR_ALIMONY" ordered="false" lowerBound="1"
1043 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
1044 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
1045 <details key="body" value="&#x9;&#x9;&#x9;if(year_divorce>1997)then&#xA;&#x9;&#x9;&#x9;if(year &lt;=2007) then&#xA;&#x9;&#x9;&#x9;20400.0&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;if(year=2008) then&#xA;&#x9;&#x9;&#x9;21600.0&#xA;&#x9;&#x9;&#x9;else &#xA;&#x9;&#x9;&#x9;if(year=2009 or year = 2010) then&#xA;&#x9;&#x9;&#x9;23400.0&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;24000.0&#xA;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;else&#xA;&#xA;&#x9;&#x9;&#x9;if(year &lt;=2007) then&#xA;&#x9;&#x9;&#x9;20400.0&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;if(year=2008) then&#xA;&#x9;&#x9;&#x9;21600.0&#xA;&#x9;&#x9;&#x9;else &#xA;&#x9;&#x9;&#x9;23400.0&#xA;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;endif&#x9;&#xA;&#x9;&#x9;&#x9;endif"/>
1046 </eAnnotations>
1047 <eParameters name="year" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
1048 <eParameters name="year_divorce" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
1049 </eOperations>
1050 <eOperations name="AEP_FLAT_RATE" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
1051 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
1052 <details key="body" value="4500.0"/>
1053 </eAnnotations>
1054 </eOperations>
1055 <eOperations name="calculate_taxes_per_year_mixed" ordered="false" lowerBound="1"
1056 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
1057 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
1058 <details key="body" value="if(income_type='Employment') then&#xA;&#x9;&#x9;&#x9;let a:Real = if(classe=Tax_Class_Category::One_A) then get_A_for_salary_yearly_class_1A(amount) else if(classe=Tax_Class_Category::Two) then get_A_for_salary_yearly_class_2(amount) else get_A_for_salary_yearly_class_1(amount) endif endif in&#xA;&#x9;&#x9;&#x9;let b:Real = if(classe=Tax_Class_Category::One_A) then get_B_for_salary_yearly_class_1A(amount) else if(classe=Tax_Class_Category::Two) then get_B_for_salary_yearly_class_2(amount) else get_B_for_salary_yearly_class_1(amount) endif endif in&#xA;&#x9;&#x9; let res:Real = round_lower_euros(a * local_amount - b) in&#xA; let max:Real = if(classe=Tax_Class_Category::Two) then 301020 else 151020 endif in&#xA; &#xA;&#x9;&#x9; if(amount&lt;max) then&#xA;&#x9;&#x9; let final_res:Real= round_lower_euros(res*1.07) in&#xA;&#x9;&#x9; if(final_res&lt;12)then&#xA;&#x9;&#x9; 0&#xA;&#x9;&#x9; else&#xA;&#x9;&#x9; final_res&#xA;&#x9;&#x9; endif&#xA;&#x9;&#x9; else &#xA;&#x9;&#x9; let adjustement:Real= if(classe=Tax_Class_Category::One_A) then 982.86 else if(classe=Tax_Class_Category::Two) then 1988.88 else 994.44 endif endif in&#xA;&#x9;&#x9; &#x9;let final_res:Real= round_lower_euros(res + (res*0.09-adjustement)) in&#xA;&#x9;&#x9; &#x9;if(final_res&lt;12)then&#xA;&#x9;&#x9; 0&#xA;&#x9;&#x9; else&#xA;&#x9;&#x9; final_res&#xA;&#x9;&#x9; endif&#xA;&#x9;&#x9; endif&#xA;&#x9;&#x9; &#xA;&#x9;&#x9; &#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;if(income_type='Pension') then&#xA;&#x9;&#x9;&#x9;let a:Real = if(classe=Tax_Class_Category::One_A) then get_A_for_pension_yearly_class_1A(amount) else if(classe=Tax_Class_Category::Two) then get_A_for_pension_yearly_class_2(amount) else get_A_for_pension_yearly_class_1(amount) endif endif in&#xA;&#x9;&#x9;&#x9;let b:Real = if(classe=Tax_Class_Category::One_A) then get_B_for_pension_yearly_class_1A(amount) else if(classe=Tax_Class_Category::Two) then get_B_for_pension_yearly_class_2(amount) else get_B_for_pension_yearly_class_1(amount) endif endif in&#xA;&#x9;&#x9; let res:Real = round_lower_euros(a * local_amount - b) in&#xA;&#x9;&#x9; let max:Real = if(classe=Tax_Class_Category::Two) then 300780 else 150780 endif in&#xA; &#xA;&#x9;&#x9; if(amount&lt;max) then&#xA;&#x9;&#x9; let final_res:Real= round_lower_euros(res*1.07) in&#xA;&#x9;&#x9; if(final_res&lt;12)then&#xA;&#x9;&#x9; 0&#xA;&#x9;&#x9; else&#xA;&#x9;&#x9; final_res&#xA;&#x9;&#x9; endif&#xA;&#x9;&#x9; else &#xA;&#x9;&#x9; let adjustement:Real= if(classe=Tax_Class_Category::One_A) then 982.86 else if(classe=Tax_Class_Category::Two) then 1988.88 else 994.44 endif endif in&#xA;&#x9;&#x9; &#x9;let final_res:Real= round_lower_euros(res + (res*0.09-adjustement)) in&#xA;&#x9;&#x9; &#x9;if(final_res&lt;12)then&#xA;&#x9;&#x9; 0&#xA;&#x9;&#x9; else&#xA;&#x9;&#x9; final_res&#xA;&#x9;&#x9; endif&#xA;&#x9;&#xA;&#x9;&#x9; endif&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;let a:Real = if(classe=Tax_Class_Category::One_A) then get_A_for_other_yearly_class_1A(amount) else if(classe=Tax_Class_Category::Two) then get_A_for_other_yearly_class_2(amount) else get_A_for_other_yearly_class_1(amount) endif endif in&#xA;&#x9;&#x9;&#x9;let b:Real = if(classe=Tax_Class_Category::One_A) then get_B_for_other_yearly_class_1A(amount) else if(classe=Tax_Class_Category::Two) then get_B_for_other_yearly_class_2(amount) else get_B_for_other_yearly_class_1(amount) endif endif in&#xA;&#x9;&#x9; let res:Real = round_lower_euros(a * local_amount - b) in&#xA; let max:Real = if(classe=Tax_Class_Category::Two) then 300000 else 150000 endif in&#xA; &#xA;&#x9;&#x9; if(amount&lt;max) then&#xA;&#x9;&#x9; let final_res:Real= round_lower_euros(res*1.07) in&#xA;&#x9;&#x9; if(final_res&lt;12)then&#xA;&#x9;&#x9; 0&#xA;&#x9;&#x9; else&#xA;&#x9;&#x9; final_res&#xA;&#x9;&#x9; endif&#xA;&#x9;&#x9; else &#xA;&#x9;&#x9; let adjustement:Real= if(classe=Tax_Class_Category::One_A) then 982.86 else if(classe=Tax_Class_Category::Two) then 1988.88 else 994.44 endif endif in&#xA;&#x9;&#x9; &#x9;let final_res:Real= round_lower_euros(res + (res*0.09-adjustement)) in&#xA;&#x9;&#x9; &#x9;if(final_res&lt;12)then&#xA;&#x9;&#x9; 0&#xA;&#x9;&#x9; else&#xA;&#x9;&#x9; final_res&#xA;&#x9;&#x9; endif &#xA;&#x9;&#x9; endif &#xA;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;endif"/>
1059 </eAnnotations>
1060 <eParameters name="amount" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
1061 <eParameters name="local_amount" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
1062 <eParameters name="classe" ordered="false" lowerBound="1" eType="#//Tax_Class_Category"/>
1063 <eParameters name="income_type" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1064 </eOperations>
1065 <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" ordered="false" lowerBound="1"
1066 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
1067 <eStructuralFeatures xsi:type="ecore:EReference" name="taxPayer" lowerBound="1"
1068 eType="#//Tax_Payer" eOpposite="#//Tax_Payer/from_law"/>
1069 </eClassifiers>
1070 <eClassifiers xsi:type="ecore:EClass" name="Fiscal_Address" eSuperTypes="#//Address"/>
1071 <eClassifiers xsi:type="ecore:EClass" name="Habitual_Address" eSuperTypes="#//Address"/>
1072 <eClassifiers xsi:type="ecore:EClass" name="Marriage_Record" eSuperTypes="#//Legal_Union_Record"/>
1073 <eClassifiers xsi:type="ecore:EClass" name="Non_Resident_Tax_Payer" eSuperTypes="#//Tax_Payer">
1074 <eStructuralFeatures xsi:type="ecore:EAttribute" name="is_assimilated_to_resident"
1075 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
1076 defaultValueLiteral="false"/>
1077 </eClassifiers>
1078 <eClassifiers xsi:type="ecore:EClass" name="Partnership_Record" eSuperTypes="#//Legal_Union_Record"/>
1079 <eClassifiers xsi:type="ecore:EClass" name="Resident_Tax_Payer" eSuperTypes="#//Tax_Payer">
1080 <eStructuralFeatures xsi:type="ecore:EAttribute" name="test" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
1081 derived="true">
1082 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
1083 <details key="derivation" value="self.oclAsType(Tax_Payer).from_agent.taxation_year=2014"/>
1084 </eAnnotations>
1085 </eStructuralFeatures>
1086 </eClassifiers>
1087 <eClassifiers xsi:type="ecore:EClass" name="Trade_and_Business_Income" eSuperTypes="#//Income_Type"/>
1088 <eClassifiers xsi:type="ecore:EClass" name="Agriculture_and_Forestry_Income" eSuperTypes="#//Income_Type"/>
1089 <eClassifiers xsi:type="ecore:EClass" name="Pensions_and_Annuities_Income" eSuperTypes="#//Income_Type">
1090 <eStructuralFeatures xsi:type="ecore:EAttribute" name="occasional_payement" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
1091 defaultValueLiteral="false"/>
1092 </eClassifiers>
1093 <eClassifiers xsi:type="ecore:EClass" name="Capital_and_Investments_Income" eSuperTypes="#//Income_Type"/>
1094 <eClassifiers xsi:type="ecore:EClass" name="Employment_Income" eSuperTypes="#//Income_Type"/>
1095 <eClassifiers xsi:type="ecore:EClass" name="Rentals_and_Leases_Income" eSuperTypes="#//Income_Type">
1096 <eStructuralFeatures xsi:type="ecore:EAttribute" name="is_periodic" lowerBound="1"
1097 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true"/>
1098 </eClassifiers>
1099 <eClassifiers xsi:type="ecore:EClass" name="Foreign_Income" eSuperTypes="#//Income"/>
1100 <eClassifiers xsi:type="ecore:EClass" name="Local_Income" eSuperTypes="#//Income"/>
1101 <eClassifiers xsi:type="ecore:EClass" name="CIM" eSuperTypes="#//Income_Tax_Credit"/>
1102 <eClassifiers xsi:type="ecore:EClass" name="CIP" eSuperTypes="#//Income_Tax_Credit"/>
1103 <eClassifiers xsi:type="ecore:EClass" name="CIS" eSuperTypes="#//Income_Tax_Credit"/>
1104 <eClassifiers xsi:type="ecore:EClass" name="FD" eSuperTypes="#//Professional_Expenses_Deduction">
1105 <eOperations name="compute_distance_unit_between_home_and_workpalce" lowerBound="1"
1106 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
1107 <eStructuralFeatures xsi:type="ecore:EAttribute" name="distance_declared_in_january"
1108 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
1109 <eStructuralFeatures xsi:type="ecore:EAttribute" name="calculated_distance" lowerBound="1"
1110 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" derived="true"/>
1111 </eClassifiers>
1112 <eClassifiers xsi:type="ecore:EClass" name="Professional_Expenses_Deduction"/>
1113 <eClassifiers xsi:type="ecore:EClass" name="FO" eSuperTypes="#//Professional_Expenses_Deduction">
1114 <eOperations name="compute_disability_flat_rate" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
1115 <eOperations name="compute_regular_flat_rate" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
1116 <eStructuralFeatures xsi:type="ecore:EAttribute" name="rate_type_for_FO" lowerBound="1"
1117 eType="#//Type_of_Rate" derived="true"/>
1118 </eClassifiers>
1119 <eClassifiers xsi:type="ecore:EClass" name="DS_for_Permanent_Expense" eSuperTypes="#//DS">
1120 <eStructuralFeatures xsi:type="ecore:EAttribute" name="permanent_expense_category"
1121 lowerBound="1" eType="#//Category_of_Permanent_Expense"/>
1122 </eClassifiers>
1123 <eClassifiers xsi:type="ecore:EClass" name="DS">
1124 <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximum_deductible_amount"
1125 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
1126 <eStructuralFeatures xsi:type="ecore:EAttribute" name="id3" ordered="false" lowerBound="1"
1127 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
1128 </eClassifiers>
1129 <eClassifiers xsi:type="ecore:EEnum" name="Category_of_Permanent_Expense">
1130 <eLiterals name="MISCELLANEOUS_DEBT" literal="MISCELLANEOUS_DEBT"/>
1131 <eLiterals name="ALIMONY" value="1" literal="ALIMONY"/>
1132 </eClassifiers>
1133 <eClassifiers xsi:type="ecore:EClass" name="DS_for_Interest_Expense" eSuperTypes="#//DS">
1134 <eOperations name="compute_maximum_deductible_amount" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
1135 <eParameters name="IN_children_with_allowances" ordered="false" upperBound="-1"
1136 eType="#//Dependent"/>
1137 <eParameters name="IN_legal_union" ordered="false" upperBound="-1" eType="#//Legal_Union_Record"/>
1138 </eOperations>
1139 </eClassifiers>
1140 <eClassifiers xsi:type="ecore:EClass" name="DS_for_Health_and_Pension_Insurance"
1141 eSuperTypes="#//DS">
1142 <eStructuralFeatures xsi:type="ecore:EAttribute" name="insurance_category" lowerBound="1"
1143 eType="#//Category_of_Health_and_Pension_Insurances"/>
1144 </eClassifiers>
1145 <eClassifiers xsi:type="ecore:EEnum" name="Category_of_Health_and_Pension_Insurances">
1146 <eLiterals name="MANDATORY_HEALTH_AND_PENSION_INSURANCE" literal="MANDATORY_HEALTH_AND_PENSION_INSURANCE"/>
1147 <eLiterals name="ADDITIONAL_EMPLOYERS_PENSION_INSURANCE" value="1" literal="ADDITIONAL_EMPLOYERS_PENSION_INSURANCE"/>
1148 <eLiterals name="CONTINUED_HEALTH_AND_PENSION_INSURANCE" value="2" literal="CONTINUED_HEALTH_AND_PENSION_INSURANCE"/>
1149 </eClassifiers>
1150 <eClassifiers xsi:type="ecore:EClass" name="DS_for_Private_Insurance_and_Plan" eSuperTypes="#//DS">
1151 <eOperations name="compute_increase_for_life_insurance" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
1152 <eOperations name="compute_maximum_deductible_amount_for_private_insruance" lowerBound="1"
1153 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
1154 <eOperations name="compute_maximum_deductible_amount_for_old_age_pension_plan"
1155 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
1156 <eStructuralFeatures xsi:type="ecore:EAttribute" name="private_insurance_and_plan_category"
1157 lowerBound="1" eType="#//Category_of_Private_Insurance_and_Plan"/>
1158 <eStructuralFeatures xsi:type="ecore:EAttribute" name="increase_for_life_insurance"
1159 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
1160 derived="true"/>
1161 <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximum_deductible_amount_for_private_insurance"
1162 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
1163 derived="true"/>
1164 <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximum_deductible_amount_for_old_age_pension_plan"
1165 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
1166 derived="true"/>
1167 </eClassifiers>
1168 <eClassifiers xsi:type="ecore:EEnum" name="Category_of_Private_Insurance_and_Plan">
1169 <eLiterals name="PRIVATE_INSURANCE" literal="PRIVATE_INSURANCE"/>
1170 <eLiterals name="PRIVATE_LIFE_INSURANCE" value="1" literal="PRIVATE_LIFE_INSURANCE"/>
1171 <eLiterals name="COMPANY_MEMBERS_PRIVATE_INSURANCE" value="2" literal="COMPANY_MEMBERS_PRIVATE_INSURANCE"/>
1172 <eLiterals name="HOUSING_SAVING_PLAN" value="3" literal="HOUSING_SAVING_PLAN"/>
1173 <eLiterals name="OLD_AGE_PENSION_PLAN" value="4" literal="OLD_AGE_PENSION_PLAN"/>
1174 </eClassifiers>
1175 <eClassifiers xsi:type="ecore:EClass" name="DS_for_Loss_Carryforward" eSuperTypes="#//DS"/>
1176 <eClassifiers xsi:type="ecore:EClass" name="DS_for_Donation" eSuperTypes="#//DS"/>
1177 <eClassifiers xsi:type="ecore:EClass" name="Permanent_Expense" eSuperTypes="#//Special_Expense_DS">
1178 <eOperations name="is_expense_eligible_for_deduction" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
1179 <eParameters name="IN_agent_response" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
1180 </eOperations>
1181 <eStructuralFeatures xsi:type="ecore:EAttribute" name="category" lowerBound="1"
1182 eType="#//Category_of_Permanent_Expense"/>
1183 <eStructuralFeatures xsi:type="ecore:EAttribute" name="is_eligible_for_deduction"
1184 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
1185 defaultValueLiteral="false" derived="true"/>
1186 </eClassifiers>
1187 <eClassifiers xsi:type="ecore:EClass" name="Special_Expense_DS" eSuperTypes="#//Expense"/>
1188 <eClassifiers xsi:type="ecore:EClass" name="Interest_Expense" eSuperTypes="#//Special_Expense_DS"/>
1189 <eClassifiers xsi:type="ecore:EClass" name="Private_Insurance_and_Plan" eSuperTypes="#//Special_Expense_DS">
1190 <eOperations name="is_private_insurance_and_plan_eligible_for_deduction" lowerBound="1"
1191 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
1192 <eStructuralFeatures xsi:type="ecore:EAttribute" name="category" lowerBound="1"
1193 eType="#//Category_of_Private_Insurance_and_Plan"/>
1194 <eStructuralFeatures xsi:type="ecore:EAttribute" name="duration_of_contract" lowerBound="1"
1195 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
1196 <eStructuralFeatures xsi:type="ecore:EAttribute" name="is_private_insurance_and_plan_eligible_for_deduction"
1197 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
1198 defaultValueLiteral="false" derived="true"/>
1199 </eClassifiers>
1200 <eClassifiers xsi:type="ecore:EClass" name="Health_and_Pension_Insurance" eSuperTypes="#//Special_Expense_DS">
1201 <eStructuralFeatures xsi:type="ecore:EAttribute" name="category" lowerBound="1"
1202 eType="#//Category_of_Health_and_Pension_Insurances"/>
1203 <eStructuralFeatures xsi:type="ecore:EAttribute" name="is_related_to_additional_salary"
1204 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
1205 defaultValueLiteral="false"/>
1206 </eClassifiers>
1207 <eClassifiers xsi:type="ecore:EClass" name="Donation" eSuperTypes="#//Special_Expense_DS">
1208 <eOperations name="get_beneficiary_eligibility_for_deduction" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
1209 <eStructuralFeatures xsi:type="ecore:EAttribute" name="beneficiary1" lowerBound="1"
1210 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
1211 <eStructuralFeatures xsi:type="ecore:EAttribute" name="is_beneficiary_eligible"
1212 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
1213 defaultValueLiteral="false" derived="true"/>
1214 <eStructuralFeatures xsi:type="ecore:EAttribute" name="is_donation_reported" lowerBound="1"
1215 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
1216 </eClassifiers>
1217 <eClassifiers xsi:type="ecore:EClass" name="Loss_Carryforward" eSuperTypes="#//Special_Expense_DS">
1218 <eOperations name="is_accountability_regular" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
1219 <eOperations name="is_compensated_by_other_means" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
1220 <eOperations name="has_been_tax_payer_partner_in_business" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
1221 <eOperations name="has_tax_payer_inherited_business_ownership" lowerBound="1"
1222 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
1223 <eStructuralFeatures xsi:type="ecore:EAttribute" name="regular_accountability"
1224 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
1225 derived="true"/>
1226 <eStructuralFeatures xsi:type="ecore:EAttribute" name="compensation_by_other_means"
1227 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
1228 derived="true"/>
1229 <eStructuralFeatures xsi:type="ecore:EAttribute" name="tax_payer_has_inherited_business_ownership"
1230 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
1231 defaultValueLiteral="false" derived="true"/>
1232 <eStructuralFeatures xsi:type="ecore:EAttribute" name="tax_payer_has_been_partner_in_business"
1233 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
1234 defaultValueLiteral="true" derived="true"/>
1235 </eClassifiers>
1236 <eClassifiers xsi:type="ecore:EClass" name="Spousal_Expense_AC" eSuperTypes="#//Expense"/>
1237 <eClassifiers xsi:type="ecore:EClass" name="Extraordinary_Expense_CE" eSuperTypes="#//Expense">
1238 <eOperations name="is_above_thresholded_deduction_percentage_for_CE" lowerBound="1"
1239 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
1240 <eOperations name="compute_thresholded_deduction_percentage_for_CE" lowerBound="1"
1241 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
1242 <eParameters name="IN_thresholded_deduction_percentage" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
1243 </eOperations>
1244 <eStructuralFeatures xsi:type="ecore:EAttribute" name="thresholded_deduction_percentage"
1245 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
1246 <eStructuralFeatures xsi:type="ecore:EAttribute" name="ce_type" lowerBound="1"
1247 eType="#//CE_Type"/>
1248 </eClassifiers>
1249 <eClassifiers xsi:type="ecore:EClass" name="Travel_Expense_FD" eSuperTypes="#//Professional_Expense"/>
1250 <eClassifiers xsi:type="ecore:EClass" name="Professional_Expense" eSuperTypes="#//Expense"/>
1251 <eClassifiers xsi:type="ecore:EClass" name="Miscellaneous_Expense_FO" eSuperTypes="#//Professional_Expense"/>
1252 <eClassifiers xsi:type="ecore:EEnum" name="Legal_Union_Types">
1253 <eLiterals name="MARIAGE"/>
1254 <eLiterals name="PARTNERSHIP" value="1"/>
1255 <eLiterals name="OTHER" value="2"/>
1256 </eClassifiers>
1257</ecore:EPackage>
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/TaxationPackageImpl.java b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/TaxationPackageImpl.java
index 61f42b3e..a174a065 100644
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/TaxationPackageImpl.java
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.model/src/Taxation/impl/TaxationPackageImpl.java
@@ -73,6 +73,7 @@ import Taxation.Town;
73import Taxation.Trade_and_Business_Income; 73import Taxation.Trade_and_Business_Income;
74import Taxation.Travel_Expense_FD; 74import Taxation.Travel_Expense_FD;
75import Taxation.Type_of_Rate; 75import Taxation.Type_of_Rate;
76
76import org.eclipse.emf.ecore.EAttribute; 77import org.eclipse.emf.ecore.EAttribute;
77import org.eclipse.emf.ecore.EClass; 78import org.eclipse.emf.ecore.EClass;
78import org.eclipse.emf.ecore.EEnum; 79import org.eclipse.emf.ecore.EEnum;
@@ -1170,16 +1171,6 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
1170 * @generated 1171 * @generated
1171 */ 1172 */
1172 @Override 1173 @Override
1173 public EReference getPhysical_Person_Owns_Address() {
1174 return (EReference)physical_PersonEClass.getEStructuralFeatures().get(11);
1175 }
1176
1177 /**
1178 * <!-- begin-user-doc -->
1179 * <!-- end-user-doc -->
1180 * @generated
1181 */
1182 @Override
1183 public EClass getAddress() { 1174 public EClass getAddress() {
1184 return addressEClass; 1175 return addressEClass;
1185 } 1176 }
@@ -1770,38 +1761,8 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
1770 * @generated 1761 * @generated
1771 */ 1762 */
1772 @Override 1763 @Override
1773 public EAttribute getIncome_Start_date_within_taxation_year() {
1774 return (EAttribute)incomeEClass.getEStructuralFeatures().get(2);
1775 }
1776
1777 /**
1778 * <!-- begin-user-doc -->
1779 * <!-- end-user-doc -->
1780 * @generated
1781 */
1782 @Override
1783 public EAttribute getIncome_Start_date_of_contract() {
1784 return (EAttribute)incomeEClass.getEStructuralFeatures().get(3);
1785 }
1786
1787 /**
1788 * <!-- begin-user-doc -->
1789 * <!-- end-user-doc -->
1790 * @generated
1791 */
1792 @Override
1793 public EAttribute getIncome_End_date_within_taxation_year() {
1794 return (EAttribute)incomeEClass.getEStructuralFeatures().get(4);
1795 }
1796
1797 /**
1798 * <!-- begin-user-doc -->
1799 * <!-- end-user-doc -->
1800 * @generated
1801 */
1802 @Override
1803 public EReference getIncome_Tax_card() { 1764 public EReference getIncome_Tax_card() {
1804 return (EReference)incomeEClass.getEStructuralFeatures().get(5); 1765 return (EReference)incomeEClass.getEStructuralFeatures().get(2);
1805 } 1766 }
1806 1767
1807 /** 1768 /**
@@ -1811,7 +1772,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
1811 */ 1772 */
1812 @Override 1773 @Override
1813 public EAttribute getIncome_Tax_liability() { 1774 public EAttribute getIncome_Tax_liability() {
1814 return (EAttribute)incomeEClass.getEStructuralFeatures().get(6); 1775 return (EAttribute)incomeEClass.getEStructuralFeatures().get(3);
1815 } 1776 }
1816 1777
1817 /** 1778 /**
@@ -1821,7 +1782,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
1821 */ 1782 */
1822 @Override 1783 @Override
1823 public EReference getIncome_TaxPayer() { 1784 public EReference getIncome_TaxPayer() {
1824 return (EReference)incomeEClass.getEStructuralFeatures().get(7); 1785 return (EReference)incomeEClass.getEStructuralFeatures().get(4);
1825 } 1786 }
1826 1787
1827 /** 1788 /**
@@ -1831,7 +1792,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
1831 */ 1792 */
1832 @Override 1793 @Override
1833 public EReference getIncome_Details() { 1794 public EReference getIncome_Details() {
1834 return (EReference)incomeEClass.getEStructuralFeatures().get(8); 1795 return (EReference)incomeEClass.getEStructuralFeatures().get(5);
1835 } 1796 }
1836 1797
1837 /** 1798 /**
@@ -1841,7 +1802,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
1841 */ 1802 */
1842 @Override 1803 @Override
1843 public EAttribute getIncome_Num() { 1804 public EAttribute getIncome_Num() {
1844 return (EAttribute)incomeEClass.getEStructuralFeatures().get(9); 1805 return (EAttribute)incomeEClass.getEStructuralFeatures().get(6);
1845 } 1806 }
1846 1807
1847 /** 1808 /**
@@ -1851,7 +1812,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
1851 */ 1812 */
1852 @Override 1813 @Override
1853 public EReference getIncome_Expenses() { 1814 public EReference getIncome_Expenses() {
1854 return (EReference)incomeEClass.getEStructuralFeatures().get(10); 1815 return (EReference)incomeEClass.getEStructuralFeatures().get(7);
1855 } 1816 }
1856 1817
1857 /** 1818 /**
@@ -1940,28 +1901,8 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
1940 * @generated 1901 * @generated
1941 */ 1902 */
1942 @Override 1903 @Override
1943 public EAttribute getTax_Card_Valid_from_date() {
1944 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(3);
1945 }
1946
1947 /**
1948 * <!-- begin-user-doc -->
1949 * <!-- end-user-doc -->
1950 * @generated
1951 */
1952 @Override
1953 public EAttribute getTax_Card_Valid_until_date() {
1954 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(4);
1955 }
1956
1957 /**
1958 * <!-- begin-user-doc -->
1959 * <!-- end-user-doc -->
1960 * @generated
1961 */
1962 @Override
1963 public EAttribute getTax_Card_Percentage_of_witholding() { 1904 public EAttribute getTax_Card_Percentage_of_witholding() {
1964 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(5); 1905 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(3);
1965 } 1906 }
1966 1907
1967 /** 1908 /**
@@ -1971,7 +1912,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
1971 */ 1912 */
1972 @Override 1913 @Override
1973 public EAttribute getTax_Card_Tax_payers_name_surname() { 1914 public EAttribute getTax_Card_Tax_payers_name_surname() {
1974 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(6); 1915 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(4);
1975 } 1916 }
1976 1917
1977 /** 1918 /**
@@ -1981,7 +1922,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
1981 */ 1922 */
1982 @Override 1923 @Override
1983 public EAttribute getTax_Card_Tax_payers_partner_name_surname() { 1924 public EAttribute getTax_Card_Tax_payers_partner_name_surname() {
1984 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(7); 1925 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(5);
1985 } 1926 }
1986 1927
1987 /** 1928 /**
@@ -1991,7 +1932,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
1991 */ 1932 */
1992 @Override 1933 @Override
1993 public EReference getTax_Card_Tax_payers_address() { 1934 public EReference getTax_Card_Tax_payers_address() {
1994 return (EReference)tax_CardEClass.getEStructuralFeatures().get(8); 1935 return (EReference)tax_CardEClass.getEStructuralFeatures().get(6);
1995 } 1936 }
1996 1937
1997 /** 1938 /**
@@ -2001,7 +1942,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
2001 */ 1942 */
2002 @Override 1943 @Override
2003 public EAttribute getTax_Card_Jobs_Employer_SSNo() { 1944 public EAttribute getTax_Card_Jobs_Employer_SSNo() {
2004 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(9); 1945 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(7);
2005 } 1946 }
2006 1947
2007 /** 1948 /**
@@ -2011,7 +1952,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
2011 */ 1952 */
2012 @Override 1953 @Override
2013 public EAttribute getTax_Card_Jobs_employers_name() { 1954 public EAttribute getTax_Card_Jobs_employers_name() {
2014 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(10); 1955 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(8);
2015 } 1956 }
2016 1957
2017 /** 1958 /**
@@ -2021,7 +1962,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
2021 */ 1962 */
2022 @Override 1963 @Override
2023 public EAttribute getTax_Card_Jobs_activity_type() { 1964 public EAttribute getTax_Card_Jobs_activity_type() {
2024 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(11); 1965 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(9);
2025 } 1966 }
2026 1967
2027 /** 1968 /**
@@ -2031,7 +1972,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
2031 */ 1972 */
2032 @Override 1973 @Override
2033 public EAttribute getTax_Card_Jobs_place_of_work() { 1974 public EAttribute getTax_Card_Jobs_place_of_work() {
2034 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(12); 1975 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(10);
2035 } 1976 }
2036 1977
2037 /** 1978 /**
@@ -2041,7 +1982,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
2041 */ 1982 */
2042 @Override 1983 @Override
2043 public EAttribute getTax_Card_Deduction_FD_daily() { 1984 public EAttribute getTax_Card_Deduction_FD_daily() {
2044 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(13); 1985 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(11);
2045 } 1986 }
2046 1987
2047 /** 1988 /**
@@ -2051,7 +1992,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
2051 */ 1992 */
2052 @Override 1993 @Override
2053 public EAttribute getTax_Card_Deduction_FD_monthly() { 1994 public EAttribute getTax_Card_Deduction_FD_monthly() {
2054 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(14); 1995 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(12);
2055 } 1996 }
2056 1997
2057 /** 1998 /**
@@ -2061,7 +2002,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
2061 */ 2002 */
2062 @Override 2003 @Override
2063 public EAttribute getTax_Card_Deduction_AC_daily() { 2004 public EAttribute getTax_Card_Deduction_AC_daily() {
2064 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(15); 2005 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(13);
2065 } 2006 }
2066 2007
2067 /** 2008 /**
@@ -2071,7 +2012,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
2071 */ 2012 */
2072 @Override 2013 @Override
2073 public EAttribute getTax_Card_Deduction_AC_monthly() { 2014 public EAttribute getTax_Card_Deduction_AC_monthly() {
2074 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(16); 2015 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(14);
2075 } 2016 }
2076 2017
2077 /** 2018 /**
@@ -2081,7 +2022,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
2081 */ 2022 */
2082 @Override 2023 @Override
2083 public EAttribute getTax_Card_Deduction_AC_yearly() { 2024 public EAttribute getTax_Card_Deduction_AC_yearly() {
2084 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(17); 2025 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(15);
2085 } 2026 }
2086 2027
2087 /** 2028 /**
@@ -2091,7 +2032,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
2091 */ 2032 */
2092 @Override 2033 @Override
2093 public EAttribute getTax_Card_Deduction_CE_daily() { 2034 public EAttribute getTax_Card_Deduction_CE_daily() {
2094 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(18); 2035 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(16);
2095 } 2036 }
2096 2037
2097 /** 2038 /**
@@ -2101,7 +2042,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
2101 */ 2042 */
2102 @Override 2043 @Override
2103 public EAttribute getTax_Card_Deduction_CE_monthly() { 2044 public EAttribute getTax_Card_Deduction_CE_monthly() {
2104 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(19); 2045 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(17);
2105 } 2046 }
2106 2047
2107 /** 2048 /**
@@ -2111,7 +2052,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
2111 */ 2052 */
2112 @Override 2053 @Override
2113 public EAttribute getTax_Card_Deduction_CE_yearly() { 2054 public EAttribute getTax_Card_Deduction_CE_yearly() {
2114 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(20); 2055 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(18);
2115 } 2056 }
2116 2057
2117 /** 2058 /**
@@ -2121,7 +2062,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
2121 */ 2062 */
2122 @Override 2063 @Override
2123 public EAttribute getTax_Card_Deduction_DS_daily() { 2064 public EAttribute getTax_Card_Deduction_DS_daily() {
2124 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(21); 2065 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(19);
2125 } 2066 }
2126 2067
2127 /** 2068 /**
@@ -2131,7 +2072,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
2131 */ 2072 */
2132 @Override 2073 @Override
2133 public EAttribute getTax_Card_Deduction_DS_monthly() { 2074 public EAttribute getTax_Card_Deduction_DS_monthly() {
2134 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(22); 2075 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(20);
2135 } 2076 }
2136 2077
2137 /** 2078 /**
@@ -2141,7 +2082,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
2141 */ 2082 */
2142 @Override 2083 @Override
2143 public EAttribute getTax_Card_Deduction_FO_daily() { 2084 public EAttribute getTax_Card_Deduction_FO_daily() {
2144 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(23); 2085 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(21);
2145 } 2086 }
2146 2087
2147 /** 2088 /**
@@ -2151,7 +2092,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
2151 */ 2092 */
2152 @Override 2093 @Override
2153 public EAttribute getTax_Card_Deduction_FO_monthly() { 2094 public EAttribute getTax_Card_Deduction_FO_monthly() {
2154 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(24); 2095 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(22);
2155 } 2096 }
2156 2097
2157 /** 2098 /**
@@ -2161,7 +2102,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
2161 */ 2102 */
2162 @Override 2103 @Override
2163 public EAttribute getTax_Card_Deduction_FO_yearly() { 2104 public EAttribute getTax_Card_Deduction_FO_yearly() {
2164 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(25); 2105 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(23);
2165 } 2106 }
2166 2107
2167 /** 2108 /**
@@ -2171,7 +2112,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
2171 */ 2112 */
2172 @Override 2113 @Override
2173 public EAttribute getTax_Card_Credit_CIS_daily() { 2114 public EAttribute getTax_Card_Credit_CIS_daily() {
2174 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(26); 2115 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(24);
2175 } 2116 }
2176 2117
2177 /** 2118 /**
@@ -2181,7 +2122,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
2181 */ 2122 */
2182 @Override 2123 @Override
2183 public EAttribute getTax_Card_Credit_CIS_monthly() { 2124 public EAttribute getTax_Card_Credit_CIS_monthly() {
2184 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(27); 2125 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(25);
2185 } 2126 }
2186 2127
2187 /** 2128 /**
@@ -2191,7 +2132,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
2191 */ 2132 */
2192 @Override 2133 @Override
2193 public EAttribute getTax_Card_Credit_CIM_daily() { 2134 public EAttribute getTax_Card_Credit_CIM_daily() {
2194 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(28); 2135 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(26);
2195 } 2136 }
2196 2137
2197 /** 2138 /**
@@ -2201,7 +2142,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
2201 */ 2142 */
2202 @Override 2143 @Override
2203 public EAttribute getTax_Card_Validity() { 2144 public EAttribute getTax_Card_Validity() {
2204 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(29); 2145 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(27);
2205 } 2146 }
2206 2147
2207 /** 2148 /**
@@ -2211,7 +2152,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
2211 */ 2152 */
2212 @Override 2153 @Override
2213 public EReference getTax_Card_Income_Tax_Credit() { 2154 public EReference getTax_Card_Income_Tax_Credit() {
2214 return (EReference)tax_CardEClass.getEStructuralFeatures().get(30); 2155 return (EReference)tax_CardEClass.getEStructuralFeatures().get(28);
2215 } 2156 }
2216 2157
2217 /** 2158 /**
@@ -2221,7 +2162,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
2221 */ 2162 */
2222 @Override 2163 @Override
2223 public EReference getTax_Card_Previous() { 2164 public EReference getTax_Card_Previous() {
2224 return (EReference)tax_CardEClass.getEStructuralFeatures().get(31); 2165 return (EReference)tax_CardEClass.getEStructuralFeatures().get(29);
2225 } 2166 }
2226 2167
2227 /** 2168 /**
@@ -2231,7 +2172,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
2231 */ 2172 */
2232 @Override 2173 @Override
2233 public EReference getTax_Card_Current_tax_card() { 2174 public EReference getTax_Card_Current_tax_card() {
2234 return (EReference)tax_CardEClass.getEStructuralFeatures().get(32); 2175 return (EReference)tax_CardEClass.getEStructuralFeatures().get(30);
2235 } 2176 }
2236 2177
2237 /** 2178 /**
@@ -2241,7 +2182,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
2241 */ 2182 */
2242 @Override 2183 @Override
2243 public EAttribute getTax_Card_Credit_CIM_yearly() { 2184 public EAttribute getTax_Card_Credit_CIM_yearly() {
2244 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(33); 2185 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(31);
2245 } 2186 }
2246 2187
2247 /** 2188 /**
@@ -2251,7 +2192,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
2251 */ 2192 */
2252 @Override 2193 @Override
2253 public EAttribute getTax_Card_Deduction_DS_Alimony_yearly() { 2194 public EAttribute getTax_Card_Deduction_DS_Alimony_yearly() {
2254 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(34); 2195 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(32);
2255 } 2196 }
2256 2197
2257 /** 2198 /**
@@ -2261,7 +2202,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
2261 */ 2202 */
2262 @Override 2203 @Override
2263 public EAttribute getTax_Card_Deduction_DS_Debt_yearly() { 2204 public EAttribute getTax_Card_Deduction_DS_Debt_yearly() {
2264 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(35); 2205 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(33);
2265 } 2206 }
2266 2207
2267 /** 2208 /**
@@ -2271,7 +2212,7 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
2271 */ 2212 */
2272 @Override 2213 @Override
2273 public EReference getTax_Card_Income() { 2214 public EReference getTax_Card_Income() {
2274 return (EReference)tax_CardEClass.getEStructuralFeatures().get(36); 2215 return (EReference)tax_CardEClass.getEStructuralFeatures().get(34);
2275 } 2216 }
2276 2217
2277 /** 2218 /**
@@ -3415,7 +3356,6 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
3415 createEAttribute(physical_PersonEClass, PHYSICAL_PERSON__BIRTH_DAY); 3356 createEAttribute(physical_PersonEClass, PHYSICAL_PERSON__BIRTH_DAY);
3416 createEReference(physical_PersonEClass, PHYSICAL_PERSON__EXPENSES); 3357 createEReference(physical_PersonEClass, PHYSICAL_PERSON__EXPENSES);
3417 createEAttribute(physical_PersonEClass, PHYSICAL_PERSON__IS_WIDOWER); 3358 createEAttribute(physical_PersonEClass, PHYSICAL_PERSON__IS_WIDOWER);
3418 createEReference(physical_PersonEClass, PHYSICAL_PERSON__OWNS_ADDRESS);
3419 3359
3420 addressEClass = createEClass(ADDRESS); 3360 addressEClass = createEClass(ADDRESS);
3421 createEAttribute(addressEClass, ADDRESS__COUNTRY); 3361 createEAttribute(addressEClass, ADDRESS__COUNTRY);
@@ -3485,9 +3425,6 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
3485 incomeEClass = createEClass(INCOME); 3425 incomeEClass = createEClass(INCOME);
3486 createEAttribute(incomeEClass, INCOME__INCOME_AMOUNT); 3426 createEAttribute(incomeEClass, INCOME__INCOME_AMOUNT);
3487 createEReference(incomeEClass, INCOME__INCOME_TYPE); 3427 createEReference(incomeEClass, INCOME__INCOME_TYPE);
3488 createEAttribute(incomeEClass, INCOME__START_DATE_WITHIN_TAXATION_YEAR);
3489 createEAttribute(incomeEClass, INCOME__START_DATE_OF_CONTRACT);
3490 createEAttribute(incomeEClass, INCOME__END_DATE_WITHIN_TAXATION_YEAR);
3491 createEReference(incomeEClass, INCOME__TAX_CARD); 3428 createEReference(incomeEClass, INCOME__TAX_CARD);
3492 createEAttribute(incomeEClass, INCOME__TAX_LIABILITY); 3429 createEAttribute(incomeEClass, INCOME__TAX_LIABILITY);
3493 createEReference(incomeEClass, INCOME__TAX_PAYER); 3430 createEReference(incomeEClass, INCOME__TAX_PAYER);
@@ -3504,8 +3441,6 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
3504 createEAttribute(tax_CardEClass, TAX_CARD__CARD_IDENTIFIER); 3441 createEAttribute(tax_CardEClass, TAX_CARD__CARD_IDENTIFIER);
3505 createEAttribute(tax_CardEClass, TAX_CARD__TAX_CARD_TYPE); 3442 createEAttribute(tax_CardEClass, TAX_CARD__TAX_CARD_TYPE);
3506 createEAttribute(tax_CardEClass, TAX_CARD__TAX_OFFICE); 3443 createEAttribute(tax_CardEClass, TAX_CARD__TAX_OFFICE);
3507 createEAttribute(tax_CardEClass, TAX_CARD__VALID_FROM_DATE);
3508 createEAttribute(tax_CardEClass, TAX_CARD__VALID_UNTIL_DATE);
3509 createEAttribute(tax_CardEClass, TAX_CARD__PERCENTAGE_OF_WITHOLDING); 3444 createEAttribute(tax_CardEClass, TAX_CARD__PERCENTAGE_OF_WITHOLDING);
3510 createEAttribute(tax_CardEClass, TAX_CARD__TAX_PAYERS_NAME_SURNAME); 3445 createEAttribute(tax_CardEClass, TAX_CARD__TAX_PAYERS_NAME_SURNAME);
3511 createEAttribute(tax_CardEClass, TAX_CARD__TAX_PAYERS_PARTNER_NAME_SURNAME); 3446 createEAttribute(tax_CardEClass, TAX_CARD__TAX_PAYERS_PARTNER_NAME_SURNAME);
@@ -3813,7 +3748,6 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
3813 initEAttribute(getPhysical_Person_Birth_day(), ecorePackage.getEInt(), "birth_day", null, 1, 1, Physical_Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); 3748 initEAttribute(getPhysical_Person_Birth_day(), ecorePackage.getEInt(), "birth_day", null, 1, 1, Physical_Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3814 initEReference(getPhysical_Person_Expenses(), this.getExpense(), this.getExpense_Beneficiary(), "expenses", null, 0, -1, Physical_Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); 3749 initEReference(getPhysical_Person_Expenses(), this.getExpense(), this.getExpense_Beneficiary(), "expenses", null, 0, -1, Physical_Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3815 initEAttribute(getPhysical_Person_Is_widower(), ecorePackage.getEBoolean(), "is_widower", null, 1, 1, Physical_Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); 3750 initEAttribute(getPhysical_Person_Is_widower(), ecorePackage.getEBoolean(), "is_widower", null, 1, 1, Physical_Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3816 initEReference(getPhysical_Person_Owns_Address(), this.getAddress(), null, "owns_Address", null, 0, -1, Physical_Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3817 3751
3818 initEClass(addressEClass, Address.class, "Address", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 3752 initEClass(addressEClass, Address.class, "Address", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3819 initEAttribute(getAddress_Country(), this.getCountry(), "country", "ZZ", 1, 1, Address.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 3753 initEAttribute(getAddress_Country(), this.getCountry(), "country", "ZZ", 1, 1, Address.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -3883,9 +3817,6 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
3883 initEClass(incomeEClass, Income.class, "Income", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 3817 initEClass(incomeEClass, Income.class, "Income", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3884 initEAttribute(getIncome_Income_amount(), ecorePackage.getEDouble(), "income_amount", null, 1, 1, Income.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); 3818 initEAttribute(getIncome_Income_amount(), ecorePackage.getEDouble(), "income_amount", null, 1, 1, Income.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3885 initEReference(getIncome_Income_type(), this.getIncome_Type(), this.getIncome_Type_Income(), "income_type", null, 1, 1, Income.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 3819 initEReference(getIncome_Income_type(), this.getIncome_Type(), this.getIncome_Type_Income(), "income_type", null, 1, 1, Income.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3886 initEAttribute(getIncome_Start_date_within_taxation_year(), ecorePackage.getEDate(), "start_date_within_taxation_year", null, 1, 1, Income.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3887 initEAttribute(getIncome_Start_date_of_contract(), ecorePackage.getEDate(), "start_date_of_contract", null, 1, 1, Income.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3888 initEAttribute(getIncome_End_date_within_taxation_year(), ecorePackage.getEDate(), "end_date_within_taxation_year", null, 1, 1, Income.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3889 initEReference(getIncome_Tax_card(), this.getTax_Card(), this.getTax_Card_Income(), "tax_card", null, 0, 1, Income.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 3820 initEReference(getIncome_Tax_card(), this.getTax_Card(), this.getTax_Card_Income(), "tax_card", null, 0, 1, Income.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3890 initEAttribute(getIncome_Tax_liability(), ecorePackage.getEDouble(), "tax_liability", null, 1, 1, Income.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 3821 initEAttribute(getIncome_Tax_liability(), ecorePackage.getEDouble(), "tax_liability", null, 1, 1, Income.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3891 initEReference(getIncome_TaxPayer(), this.getTax_Payer(), this.getTax_Payer_Incomes(), "taxPayer", null, 1, 1, Income.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); 3822 initEReference(getIncome_TaxPayer(), this.getTax_Payer(), this.getTax_Payer_Incomes(), "taxPayer", null, 1, 1, Income.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
@@ -3902,8 +3833,6 @@ public class TaxationPackageImpl extends EPackageImpl implements TaxationPackage
3902 initEAttribute(getTax_Card_Card_identifier(), ecorePackage.getEString(), "card_identifier", null, 0, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 3833 initEAttribute(getTax_Card_Card_identifier(), ecorePackage.getEString(), "card_identifier", null, 0, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3903 initEAttribute(getTax_Card_Tax_card_type(), this.getTax_Card_Type(), "tax_card_type", null, 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED); 3834 initEAttribute(getTax_Card_Tax_card_type(), this.getTax_Card_Type(), "tax_card_type", null, 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
3904 initEAttribute(getTax_Card_Tax_office(), this.getTax_Office(), "tax_office", null, 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 3835 initEAttribute(getTax_Card_Tax_office(), this.getTax_Office(), "tax_office", null, 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3905 initEAttribute(getTax_Card_Valid_from_date(), ecorePackage.getEDate(), "valid_from_date", null, 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3906 initEAttribute(getTax_Card_Valid_until_date(), ecorePackage.getEDate(), "valid_until_date", null, 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3907 initEAttribute(getTax_Card_Percentage_of_witholding(), ecorePackage.getEDouble(), "percentage_of_witholding", null, 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 3836 initEAttribute(getTax_Card_Percentage_of_witholding(), ecorePackage.getEDouble(), "percentage_of_witholding", null, 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3908 initEAttribute(getTax_Card_Tax_payers_name_surname(), ecorePackage.getEString(), "tax_payers_name_surname", null, 0, -1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); 3837 initEAttribute(getTax_Card_Tax_payers_name_surname(), ecorePackage.getEString(), "tax_payers_name_surname", null, 0, -1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3909 initEAttribute(getTax_Card_Tax_payers_partner_name_surname(), ecorePackage.getEString(), "tax_payers_partner_name_surname", null, 0, -1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); 3838 initEAttribute(getTax_Card_Tax_payers_partner_name_surname(), ecorePackage.getEString(), "tax_payers_partner_name_surname", null, 0, -1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);