aboutsummaryrefslogtreecommitdiffstats
path: root/Tests
diff options
context:
space:
mode:
authorLibravatar Aren Babikian <aren.babikian@mail.mcgill.ca>2021-01-05 23:44:50 +0100
committerLibravatar Aren Babikian <aren.babikian@mail.mcgill.ca>2021-01-05 23:44:50 +0100
commitd53ae070b68fc3bc429c1467f62779ba08d35755 (patch)
tree88e2de252727011a2ba2033aa0267eb211eec208 /Tests
parentPrefer the global scope insted of nsURI in application configuration (diff)
parentadd readme and diversity measurements (diff)
downloadVIATRA-Generator-d53ae070b68fc3bc429c1467f62779ba08d35755.tar.gz
VIATRA-Generator-d53ae070b68fc3bc429c1467f62779ba08d35755.tar.zst
VIATRA-Generator-d53ae070b68fc3bc429c1467f62779ba08d35755.zip
merge models20 measurements
Diffstat (limited to 'Tests')
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.familyTree.model/.gitignore1
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.familyTree.run/bin/.gitignore1
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.originalFiles/xtend-gen/converter/.UML2TGF.xtendbinbin6885 -> 0 bytes
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.run/.gitignore2
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.run/MODELS2020Plots.ipynb1256
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.run/SMTEndMeasurements.bat5
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.run/SMTQualMeasurements.bat5
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.run/officialMeasurementsSetup.bat18
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.pledge.run/readme-vm.md200
-rwxr-xr-xTests/MODELS2020-CaseStudies/case.study.pledge.run/run.sh5
-rwxr-xr-xTests/MODELS2020-CaseStudies/case.study.pledge.run/runFamilyTree.sh7
-rwxr-xr-xTests/MODELS2020-CaseStudies/case.study.pledge.run/runFamilyTree_exact.sh14
-rwxr-xr-xTests/MODELS2020-CaseStudies/case.study.pledge.run/runSatellite.sh7
-rwxr-xr-xTests/MODELS2020-CaseStudies/case.study.pledge.run/runTaxation.sh7
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/.classpath8
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/.project34
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/META-INF/MANIFEST.MF34
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/bin/hu/bme/mit/inf/dslreasoner/diversitycalculator/.FileComparator.java._tracebin0 -> 2005 bytes
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/bin/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureDiversity.java._tracebin0 -> 26287 bytes
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/bin/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureDiversity.xtendbinbin0 -> 15619 bytes
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/bin/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureInternalDiversity.java._tracebin0 -> 10367 bytes
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/bin/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureInternalDiversity.xtendbinbin0 -> 8492 bytes
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/bin/hu/bme/mit/inf/dslreasoner/diversitycalculator/.PatternWithMatches.java._tracebin0 -> 713 bytes
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/build.properties10
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/10_1.xmi103
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/1_1.xmi103
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/2_1.xmi103
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/3_1.xmi103
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/4_1.xmi103
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/5_1.xmi103
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/6_1.xmi103
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/7_1.xmi103
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/8_1.xmi103
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/9_1.xmi103
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/10_1.xmi103
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/1_1.xmi103
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/2_1.xmi103
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/3_1.xmi103
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/4_1.xmi103
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/5_1.xmi103
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/6_1.xmi103
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/7_1.xmi103
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/8_1.xmi103
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/9_1.xmi103
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/10_1.xmi135
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/1_1.xmi131
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/2_1.xmi129
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/3_1.xmi131
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/4_1.xmi131
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/5_1.xmi129
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/6_1.xmi129
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/7_1.xmi129
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/8_1.xmi129
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/9_1.xmi132
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/10_1.xmi135
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/1_1.xmi137
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/2_1.xmi131
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/3_1.xmi134
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/4_1.xmi137
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/5_1.xmi141
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/6_1.xmi134
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/7_1.xmi131
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/8_1.xmi134
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/9_1.xmi137
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/10_1.xmi118
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/1_1.xmi118
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/2_1.xmi119
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/3_1.xmi118
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/4_1.xmi118
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/5_1.xmi118
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/6_1.xmi124
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/7_1.xmi119
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/8_1.xmi118
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/9_1.xmi118
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/10_1.xmi105
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/1_1.xmi105
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/2_1.xmi105
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/3_1.xmi111
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/4_1.xmi105
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/5_1.xmi105
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/6_1.xmi105
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/7_1.xmi112
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/8_1.xmi105
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/9_1.xmi105
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/diversity.csv60
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/model/TaxationWithRoot.ecore551
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/model/TaxationWithRoot.genmodel344
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/model/familytree.ecore17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/model/familytree.genmodel19
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/model/satellite.ecore39
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/model/satellite.genmodel38
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/plugin.properties4
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/plugin.xml33
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Address.java159
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Agriculture_and_Forestry_Income.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/CE_Type.java232
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/CIM.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/CIP.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/CIS.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Capital_and_Investments_Income.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Category_of_Health_and_Pension_Insurances.java232
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Category_of_Permanent_Expense.java209
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Category_of_Private_Insurance_and_Plan.java278
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Constants.java619
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Country.java301
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Dependent.java188
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Dependent_Type.java278
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Disability_Types.java347
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Donation.java68
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Employment_Income.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Expense.java196
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Expense_Purpose.java301
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/External_Allowance.java166
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Extraordinary_Expense_CE.java71
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Fiscal_Address.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Foreign_Income.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/FromAgent.java144
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/FromLaw.java71
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Grantor.java301
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Habitual_Address.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Health_and_Pension_Insurance.java72
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Household.java86
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Income.java200
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Income_Detail.java186
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Income_Tax.java115
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Income_Tax_Credit.java215
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Income_Type.java71
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Interest_Expense.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Job_Activity.java232
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Legal_Union_Record.java221
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Legal_Union_Types.java232
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Local_Income.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Loss_Carryforward.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Marriage_Record.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Miscellaneous_Expense_FO.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Non_Resident_Tax_Payer.java46
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Partnership_Record.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Pensions_and_Annuities_Income.java46
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Permanent_Expense.java48
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Physical_Person.java219
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Private_Insurance_and_Plan.java71
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Professional_Expense.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Rentals_and_Leases_Income.java46
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Resident_Tax_Payer.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Resource.java38
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Separation_Causes.java255
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Special_Expense_DS.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Spousal_Expense_AC.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Tax_Card.java810
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Tax_Case.java18
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Tax_Class_Category.java232
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Tax_Office.java255
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Tax_Payer.java104
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Tax_Property.java94
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/TaxationWithRootFactory.java420
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/TaxationWithRootPackage.java9315
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Town.java278
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Trade_and_Business_Income.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Travel_Expense_FD.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/AddressImpl.java465
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Agriculture_and_Forestry_IncomeImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/CIMImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/CIPImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/CISImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Capital_and_Investments_IncomeImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/ConstantsImpl.java1509
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/DependentImpl.java599
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/DonationImpl.java220
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Employment_IncomeImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/ExpenseImpl.java654
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/External_AllowanceImpl.java500
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Extraordinary_Expense_CEImpl.java221
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Fiscal_AddressImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Foreign_IncomeImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/FromAgentImpl.java506
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/FromLawImpl.java268
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Habitual_AddressImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Health_and_Pension_InsuranceImpl.java221
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/HouseholdImpl.java313
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/IncomeImpl.java614
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Income_DetailImpl.java548
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Income_TaxImpl.java341
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Income_Tax_CreditImpl.java626
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Income_TypeImpl.java268
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Interest_ExpenseImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Legal_Union_RecordImpl.java648
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Local_IncomeImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Loss_CarryforwardImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Marriage_RecordImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Miscellaneous_Expense_FOImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Non_Resident_Tax_PayerImpl.java164
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Partnership_RecordImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Pensions_and_Annuities_IncomeImpl.java164
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Permanent_ExpenseImpl.java165
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Physical_PersonImpl.java617
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Private_Insurance_and_PlanImpl.java221
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Professional_ExpenseImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Rentals_and_Leases_IncomeImpl.java164
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Resident_Tax_PayerImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/ResourceImpl.java153
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Special_Expense_DSImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Spousal_Expense_ACImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Tax_CardImpl.java2093
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Tax_PayerImpl.java355
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Tax_PropertyImpl.java324
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/TaxationWithRootFactoryImpl.java988
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/TaxationWithRootPackageImpl.java3663
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Trade_and_Business_IncomeImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Travel_Expense_FDImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/util/TaxationWithRootAdapterFactory.java984
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/util/TaxationWithRootSwitch.java1163
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/FamilyTree.java38
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/FamilytreeFactory.java51
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/FamilytreePackage.java321
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/Member.java102
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/impl/FamilyTreeImpl.java153
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/impl/FamilytreeFactoryImpl.java109
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/impl/FamilytreePackageImpl.java251
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/impl/MemberImpl.java334
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/util/FamilytreeAdapterFactory.java138
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/util/FamilytreeSwitch.java131
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/hu/bme/mit/inf/dslreasoner/diversitycalculator/MeasureDiversity.xtend283
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/hu/bme/mit/inf/dslreasoner/diversitycalculator/MeasureInternalDiversity.xtend107
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/CommSubsystem.java92
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/CommunicatingElement.java38
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/ConstellationMission.java61
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/CubeSat.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/CubeSat3U.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/CubeSat6U.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/GroundStationNetwork.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/InterferometryMission.java45
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/InterferometryPayload.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/KaCommSubsystem.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/Payload.java18
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/SatelliteFactory.java114
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/SatellitePackage.java1218
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/SmallSat.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/Spacecraft.java45
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/UHFCommSubsystem.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/XCommSubsystem.java17
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/CommSubsystemImpl.java284
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/CommunicatingElementImpl.java153
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/ConstellationMissionImpl.java224
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/CubeSat3UImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/CubeSat6UImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/CubeSatImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/GroundStationNetworkImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/InterferometryMissionImpl.java164
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/InterferometryPayloadImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/KaCommSubsystemImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/PayloadImpl.java39
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/SatelliteFactoryImpl.java193
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/SatellitePackageImpl.java584
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/SmallSatImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/SpacecraftImpl.java177
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/UHFCommSubsystemImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/XCommSubsystemImpl.java37
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/util/SatelliteAdapterFactory.java372
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/util/SatelliteSwitch.java421
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/.FileComparator.java._tracebin0 -> 2005 bytes
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureDiversity.java._tracebin0 -> 26287 bytes
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureDiversity.xtendbinbin0 -> 15619 bytes
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureInternalDiversity.java._tracebin0 -> 10367 bytes
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureInternalDiversity.xtendbinbin0 -> 8492 bytes
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/.PatternWithMatches.java._tracebin0 -> 713 bytes
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/FileComparator.java27
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/MeasureDiversity.java350
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/MeasureInternalDiversity.java165
-rw-r--r--Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/PatternWithMatches.java72
270 files changed, 55984 insertions, 28 deletions
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/.gitignore b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/.gitignore
new file mode 100644
index 00000000..ae3c1726
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/.gitignore
@@ -0,0 +1 @@
/bin/
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/bin/.gitignore b/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/bin/.gitignore
index 7050a7e3..3d70f0da 100644
--- a/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/bin/.gitignore
+++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/bin/.gitignore
@@ -1 +1,2 @@
1/queries/ 1/queries/
2/run/
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.originalFiles/xtend-gen/converter/.UML2TGF.xtendbin b/Tests/MODELS2020-CaseStudies/case.study.pledge.originalFiles/xtend-gen/converter/.UML2TGF.xtendbin
deleted file mode 100644
index 23513b51..00000000
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.originalFiles/xtend-gen/converter/.UML2TGF.xtendbin
+++ /dev/null
Binary files differ
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.run/.gitignore b/Tests/MODELS2020-CaseStudies/case.study.pledge.run/.gitignore
index ecef25ad..5f299742 100644
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.run/.gitignore
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.run/.gitignore
@@ -4,3 +4,5 @@
4/xtend-gen/ 4/xtend-gen/
5/bin/ 5/bin/
6/x/ 6/x/
7/.ipynb_checkpoints/
8/measurements1/
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.run/MODELS2020Plots.ipynb b/Tests/MODELS2020-CaseStudies/case.study.pledge.run/MODELS2020Plots.ipynb
new file mode 100644
index 00000000..fabee66c
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.run/MODELS2020Plots.ipynb
@@ -0,0 +1,1256 @@
1{
2 "cells": [
3 {
4 "cell_type": "markdown",
5 "metadata": {},
6 "source": [
7 "# Data analysis for the paper \"Automated Generation of Consistent Models with Structural and Attribute Constraints\""
8 ]
9 },
10 {
11 "cell_type": "markdown",
12 "metadata": {},
13 "source": [
14 "First, let's load some packages."
15 ]
16 },
17 {
18 "cell_type": "code",
19 "execution_count": 57,
20 "metadata": {
21 "scrolled": true
22 },
23 "outputs": [],
24 "source": [
25 "require(tidyverse)\n",
26 "dir.create('plots')"
27 ]
28 },
29 {
30 "cell_type": "markdown",
31 "metadata": {},
32 "source": [
33 "The functions below parse the logs generated by VIATRA Generator. We use a separate function for logs with 10 generated models, and another one for a single generated model per run."
34 ]
35 },
36 {
37 "cell_type": "code",
38 "execution_count": 43,
39 "metadata": {
40 "scrolled": false
41 },
42 "outputs": [],
43 "source": [
44 "ProcessDetailedStatistics <- function(str) {\n",
45 " str <- sub('TransformationExecutionTime', 'TransformationExecutionTime:', str)\n",
46 " str <- sub('Backtrackingtime', 'BacktrackingTime', str)\n",
47 " str <- gsub('\\\\(|\\\\)', '', str)\n",
48 " str <- lapply(strsplit(str, '\\\\||:'), function (v) {\n",
49 " dim(v) <- c(2, 12)\n",
50 " values <- as.double(v[2,])\n",
51 " names(values) <- v[1,]\n",
52 " as.data.frame(t(values))\n",
53 " })\n",
54 " str\n",
55 "}\n",
56 "Load10Log <- function(filename, size) {\n",
57 " read_csv(filename, col_types = cols(\n",
58 " .default = col_double(),\n",
59 " Result = col_character(),\n",
60 " Solution1DetailedStatistics = col_character(),\n",
61 " Solution2DetailedStatistics = col_character(),\n",
62 " Solution3DetailedStatistics = col_character(),\n",
63 " Solution4DetailedStatistics = col_character(),\n",
64 " Solution5DetailedStatistics = col_character(),\n",
65 " Solution6DetailedStatistics = col_character(),\n",
66 " Solution7DetailedStatistics = col_character(),\n",
67 " Solution8DetailedStatistics = col_character(),\n",
68 " Solution9DetailedStatistics = col_character(),\n",
69 " Solution10DetailedStatistics = col_character()\n",
70 " )) %>% transmute(\n",
71 " n = size,\n",
72 " Run = Run,\n",
73 " preprocessingTime = get('Domain to logic transformation time') + get('Logic to solver transformation time') + ExplorationInitializationTime,\n",
74 " Solution0FoundAt = Solution0FoundAt,\n",
75 " additionalTime = Solution9FoundAt - Solution0FoundAt,\n",
76 " Solution1DetailedStatistics = ProcessDetailedStatistics(Solution1DetailedStatistics)\n",
77 " ) %>% unnest() %>% mutate(\n",
78 " # (Logical) constraint evluation should count as refinement.\n",
79 " ForwardTime = ForwardTime + GlobalConstraintEvaluationTime + FitnessCalculationTime,\n",
80 " preprocessingTime = preprocessingTime,\n",
81 " BacktrackingTime = Solution0FoundAt - (StateCoderTime + ForwardTime + NumericalSolverSumTime)\n",
82 " ) %>% select(n, Run, preprocessingTime, StateCoderTime, ForwardTime, BacktrackingTime, NumericalSolverSumTime, additionalTime)\n",
83 "}\n",
84 "Load1Log <- function(filename, size) {\n",
85 " read_csv(filename, col_types = cols(\n",
86 " .default = col_double(),\n",
87 " Result = col_character(),\n",
88 " Solution1DetailedStatistics = col_character()\n",
89 " )) %>% filter(Result == \"ModelResultImpl\") %>% transmute(\n",
90 " n = size,\n",
91 " Run = Run,\n",
92 " preprocessingTime = get('Domain to logic transformation time') + get('Logic to solver transformation time') + ExplorationInitializationTime,\n",
93 " Solution0FoundAt = Solution0FoundAt,\n",
94 " Solution1DetailedStatistics = ProcessDetailedStatistics(Solution1DetailedStatistics)\n",
95 " ) %>% unnest(cols = c(Solution1DetailedStatistics)) %>% mutate(\n",
96 " ForwardTime = ForwardTime + GlobalConstraintEvaluationTime + FitnessCalculationTime,\n",
97 " BacktrackingTime = Solution0FoundAt - (StateCoderTime + ForwardTime + NumericalSolverSumTime)\n",
98 " ) %>% select(n, Run, preprocessingTime, StateCoderTime, ForwardTime, BacktrackingTime, NumericalSolverSumTime)\n",
99 "}"
100 ]
101 },
102 {
103 "cell_type": "markdown",
104 "metadata": {},
105 "source": [
106 "Next, we set up data analyses for the first three research questions.\n",
107 "\n",
108 " * **RQ1** only needs the total runtimes of the generator, so we sum the runtimes of the individual phases and take the media.\n",
109 " * **RQ2** takes the median of all phases individually.\n",
110 " * **RQ3** only needs the total runtimes, so we use the same function as for RQ1."
111 ]
112 },
113 {
114 "cell_type": "code",
115 "execution_count": 44,
116 "metadata": {},
117 "outputs": [],
118 "source": [
119 "ProcessRQ1 <- function(df) {\n",
120 " df %>% group_by(n) %>% summarize(\n",
121 " .groups = 'drop',\n",
122 " time = median(preprocessingTime + StateCoderTime + ForwardTime + BacktrackingTime + NumericalSolverSumTime) / 1000.0\n",
123 " )\n",
124 "}\n",
125 "ProcessRQ2 <- function(df) {\n",
126 " df %>% group_by(n) %>% summarize(\n",
127 " .groups = 'drop',\n",
128 " preprocessingTime = median(preprocessingTime) / 1000.0,\n",
129 " StateCoderTime = median(StateCoderTime) / 1000.0,\n",
130 " ForwardTime = median(ForwardTime) / 1000.0,\n",
131 " BacktrackingTime = median(BacktrackingTime) / 1000.0,\n",
132 " NumericalSolverSumTime = median(NumericalSolverSumTime) / 1000.0,\n",
133 " additionalTime = median(additionalTime) / 1000.0\n",
134 " )\n",
135 "}\n",
136 "ProcessRQ3 <- ProcessRQ1"
137 ]
138 },
139 {
140 "cell_type": "markdown",
141 "metadata": {},
142 "source": [
143 "## RQ1\n",
144 "\n",
145 "We parse all the logs for RQ1, then output the total runtimes as a table for making sure there were no parse errors."
146 ]
147 },
148 {
149 "cell_type": "code",
150 "execution_count": 45,
151 "metadata": {},
152 "outputs": [
153 {
154 "data": {
155 "text/html": [
156 "<table>\n",
157 "<caption>A tibble: 24 × 3</caption>\n",
158 "<thead>\n",
159 "\t<tr><th scope=col>n</th><th scope=col>time</th><th scope=col>name</th></tr>\n",
160 "\t<tr><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;fct&gt;</th></tr>\n",
161 "</thead>\n",
162 "<tbody>\n",
163 "\t<tr><td> 5</td><td> 27.4965</td><td>postSMT</td></tr>\n",
164 "\t<tr><td> 6</td><td>259.5700</td><td>postSMT</td></tr>\n",
165 "\t<tr><td> 5</td><td> 1.4045</td><td>contSMT</td></tr>\n",
166 "\t<tr><td> 6</td><td> 1.5770</td><td>contSMT</td></tr>\n",
167 "\t<tr><td> 7</td><td> 1.7190</td><td>contSMT</td></tr>\n",
168 "\t<tr><td> 8</td><td> 2.0000</td><td>contSMT</td></tr>\n",
169 "\t<tr><td> 9</td><td> 2.1440</td><td>contSMT</td></tr>\n",
170 "\t<tr><td> 10</td><td> 2.4360</td><td>contSMT</td></tr>\n",
171 "\t<tr><td> 20</td><td> 6.0530</td><td>contSMT</td></tr>\n",
172 "\t<tr><td> 40</td><td> 20.4680</td><td>contSMT</td></tr>\n",
173 "\t<tr><td> 60</td><td> 50.0410</td><td>contSMT</td></tr>\n",
174 "\t<tr><td> 80</td><td> 92.1105</td><td>contSMT</td></tr>\n",
175 "\t<tr><td>100</td><td>141.1865</td><td>contSMT</td></tr>\n",
176 "\t<tr><td> 5</td><td> 1.1065</td><td>qualSMT</td></tr>\n",
177 "\t<tr><td> 6</td><td> 1.0840</td><td>qualSMT</td></tr>\n",
178 "\t<tr><td> 7</td><td> 1.1245</td><td>qualSMT</td></tr>\n",
179 "\t<tr><td> 8</td><td> 1.1230</td><td>qualSMT</td></tr>\n",
180 "\t<tr><td> 9</td><td> 1.1660</td><td>qualSMT</td></tr>\n",
181 "\t<tr><td> 10</td><td> 1.2300</td><td>qualSMT</td></tr>\n",
182 "\t<tr><td> 20</td><td> 1.6785</td><td>qualSMT</td></tr>\n",
183 "\t<tr><td> 40</td><td> 4.4675</td><td>qualSMT</td></tr>\n",
184 "\t<tr><td> 60</td><td> 10.5775</td><td>qualSMT</td></tr>\n",
185 "\t<tr><td> 80</td><td> 20.1165</td><td>qualSMT</td></tr>\n",
186 "\t<tr><td>100</td><td> 46.1635</td><td>qualSMT</td></tr>\n",
187 "</tbody>\n",
188 "</table>\n"
189 ],
190 "text/latex": [
191 "A tibble: 24 × 3\n",
192 "\\begin{tabular}{lll}\n",
193 " n & time & name\\\\\n",
194 " <dbl> & <dbl> & <fct>\\\\\n",
195 "\\hline\n",
196 "\t 5 & 27.4965 & postSMT\\\\\n",
197 "\t 6 & 259.5700 & postSMT\\\\\n",
198 "\t 5 & 1.4045 & contSMT\\\\\n",
199 "\t 6 & 1.5770 & contSMT\\\\\n",
200 "\t 7 & 1.7190 & contSMT\\\\\n",
201 "\t 8 & 2.0000 & contSMT\\\\\n",
202 "\t 9 & 2.1440 & contSMT\\\\\n",
203 "\t 10 & 2.4360 & contSMT\\\\\n",
204 "\t 20 & 6.0530 & contSMT\\\\\n",
205 "\t 40 & 20.4680 & contSMT\\\\\n",
206 "\t 60 & 50.0410 & contSMT\\\\\n",
207 "\t 80 & 92.1105 & contSMT\\\\\n",
208 "\t 100 & 141.1865 & contSMT\\\\\n",
209 "\t 5 & 1.1065 & qualSMT\\\\\n",
210 "\t 6 & 1.0840 & qualSMT\\\\\n",
211 "\t 7 & 1.1245 & qualSMT\\\\\n",
212 "\t 8 & 1.1230 & qualSMT\\\\\n",
213 "\t 9 & 1.1660 & qualSMT\\\\\n",
214 "\t 10 & 1.2300 & qualSMT\\\\\n",
215 "\t 20 & 1.6785 & qualSMT\\\\\n",
216 "\t 40 & 4.4675 & qualSMT\\\\\n",
217 "\t 60 & 10.5775 & qualSMT\\\\\n",
218 "\t 80 & 20.1165 & qualSMT\\\\\n",
219 "\t 100 & 46.1635 & qualSMT\\\\\n",
220 "\\end{tabular}\n"
221 ],
222 "text/markdown": [
223 "\n",
224 "A tibble: 24 × 3\n",
225 "\n",
226 "| n &lt;dbl&gt; | time &lt;dbl&gt; | name &lt;fct&gt; |\n",
227 "|---|---|---|\n",
228 "| 5 | 27.4965 | postSMT |\n",
229 "| 6 | 259.5700 | postSMT |\n",
230 "| 5 | 1.4045 | contSMT |\n",
231 "| 6 | 1.5770 | contSMT |\n",
232 "| 7 | 1.7190 | contSMT |\n",
233 "| 8 | 2.0000 | contSMT |\n",
234 "| 9 | 2.1440 | contSMT |\n",
235 "| 10 | 2.4360 | contSMT |\n",
236 "| 20 | 6.0530 | contSMT |\n",
237 "| 40 | 20.4680 | contSMT |\n",
238 "| 60 | 50.0410 | contSMT |\n",
239 "| 80 | 92.1105 | contSMT |\n",
240 "| 100 | 141.1865 | contSMT |\n",
241 "| 5 | 1.1065 | qualSMT |\n",
242 "| 6 | 1.0840 | qualSMT |\n",
243 "| 7 | 1.1245 | qualSMT |\n",
244 "| 8 | 1.1230 | qualSMT |\n",
245 "| 9 | 1.1660 | qualSMT |\n",
246 "| 10 | 1.2300 | qualSMT |\n",
247 "| 20 | 1.6785 | qualSMT |\n",
248 "| 40 | 4.4675 | qualSMT |\n",
249 "| 60 | 10.5775 | qualSMT |\n",
250 "| 80 | 20.1165 | qualSMT |\n",
251 "| 100 | 46.1635 | qualSMT |\n",
252 "\n"
253 ],
254 "text/plain": [
255 " n time name \n",
256 "1 5 27.4965 postSMT\n",
257 "2 6 259.5700 postSMT\n",
258 "3 5 1.4045 contSMT\n",
259 "4 6 1.5770 contSMT\n",
260 "5 7 1.7190 contSMT\n",
261 "6 8 2.0000 contSMT\n",
262 "7 9 2.1440 contSMT\n",
263 "8 10 2.4360 contSMT\n",
264 "9 20 6.0530 contSMT\n",
265 "10 40 20.4680 contSMT\n",
266 "11 60 50.0410 contSMT\n",
267 "12 80 92.1105 contSMT\n",
268 "13 100 141.1865 contSMT\n",
269 "14 5 1.1065 qualSMT\n",
270 "15 6 1.0840 qualSMT\n",
271 "16 7 1.1245 qualSMT\n",
272 "17 8 1.1230 qualSMT\n",
273 "18 9 1.1660 qualSMT\n",
274 "19 10 1.2300 qualSMT\n",
275 "20 20 1.6785 qualSMT\n",
276 "21 40 4.4675 qualSMT\n",
277 "22 60 10.5775 qualSMT\n",
278 "23 80 20.1165 qualSMT\n",
279 "24 100 46.1635 qualSMT"
280 ]
281 },
282 "metadata": {},
283 "output_type": "display_data"
284 }
285 ],
286 "source": [
287 "RQ1 <- rbind(\n",
288 " rbind(\n",
289 " Load1Log('measurements/stats/FamilyTreeSMTEnd/size05to05r10n1rt300stats.csv', 5),\n",
290 " Load1Log('measurements/stats/FamilyTreeSMTEnd/size06to06r10n1rt300stats.csv', 6)\n",
291 " ) %>% ProcessRQ1 %>% mutate(name=\"postSMT\"),\n",
292 " rbind(\n",
293 " Load1Log('measurements/stats/FamilyTree/size05to05r10n1rt300stats.csv', 5),\n",
294 " Load1Log('measurements/stats/FamilyTree/size06to06r10n1rt300stats.csv', 6),\n",
295 " Load1Log('measurements/stats/FamilyTree/size07to07r10n1rt300stats.csv', 7),\n",
296 " Load1Log('measurements/stats/FamilyTree/size08to08r10n1rt300stats.csv', 8),\n",
297 " Load1Log('measurements/stats/FamilyTree/size09to09r10n1rt300stats.csv', 9),\n",
298 " Load1Log('measurements/stats/FamilyTree/size010to010r10n1rt300stats.csv', 10),\n",
299 " Load1Log('measurements/stats/FamilyTree/size020to020r10n1rt300stats.csv', 20),\n",
300 " Load1Log('measurements/stats/FamilyTree/size040to040r10n1rt300stats.csv', 40),\n",
301 " Load1Log('measurements/stats/FamilyTree/size060to060r10n1rt300stats.csv', 60),\n",
302 " Load1Log('measurements/stats/FamilyTree/size080to080r10n1rt300stats.csv', 80),\n",
303 " Load1Log('measurements/stats/FamilyTree/size100to100r10n1rt300stats.csv', 100)\n",
304 " ) %>% ProcessRQ1 %>% mutate(name=\"contSMT\"),\n",
305 " rbind(\n",
306 " Load1Log('measurements/stats/FamilyTreeSMTQual/size05to05r10n1rt300stats.csv', 5),\n",
307 " Load1Log('measurements/stats/FamilyTreeSMTQual/size06to06r10n1rt300stats.csv', 6),\n",
308 " Load1Log('measurements/stats/FamilyTreeSMTQual/size07to07r10n1rt300stats.csv', 7),\n",
309 " Load1Log('measurements/stats/FamilyTreeSMTQual/size08to08r10n1rt300stats.csv', 8),\n",
310 " Load1Log('measurements/stats/FamilyTreeSMTQual/size09to09r10n1rt300stats.csv', 9),\n",
311 " Load1Log('measurements/stats/FamilyTreeSMTQual/size010to010r10n1rt300stats.csv', 10),\n",
312 " Load1Log('measurements/stats/FamilyTreeSMTQual/size020to020r10n1rt300stats.csv', 20),\n",
313 " Load1Log('measurements/stats/FamilyTreeSMTQual/size040to040r10n1rt300stats.csv', 40),\n",
314 " Load1Log('measurements/stats/FamilyTreeSMTQual/size060to060r10n1rt300stats.csv', 60),\n",
315 " Load1Log('measurements/stats/FamilyTreeSMTQual/size080to080r10n1rt300stats.csv', 80),\n",
316 " Load1Log('measurements/stats/FamilyTreeSMTQual/size100to100r10n1rt300stats.csv', 100)\n",
317 " ) %>% ProcessRQ1 %>% mutate(name=\"qualSMT\")\n",
318 ")\n",
319 "RQ1$name <- factor(RQ1$name, levels=c(\"postSMT\", \"contSMT\", \"qualSMT\"))\n",
320 "RQ1"
321 ]
322 },
323 {
324 "cell_type": "markdown",
325 "metadata": {},
326 "source": [
327 "Now we are ready to plot the runtimes."
328 ]
329 },
330 {
331 "cell_type": "code",
332 "execution_count": 46,
333 "metadata": {},
334 "outputs": [
335 {
336 "data": {
337 "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAIAAAByhViMAAAACXBIWXMAABJ0AAASdAHeZh94\nAAAgAElEQVR4nOzdeXxU1f3/8XNnJgmZrCQsIVD2HTEoCMguylIBIUqtSFGK3xYRf7ggFpcW\nRaxUpKAi3xZblUIFl6pYwYWyCogighsBWQybkBCyzL3ZZrn398cN+aYhhElyl8zk9Xz00cfM\nzeTezx3G5J3PveccSdM0AQAAgNDnsLsAAAAAGINgBwAAECYIdgAAAGGCYAcAABAmCHYAAABh\ngmAHAAAQJgh2AAAAYYJgBwAAECZcdhdQe4899th3331n7D716ZolSTJ2t9YLmxNRVVUI4XCE\n/F8gqqpKkhTq/yKapmmaFgYnIoRQVTUMPld2/YtY/+6ZdKaGn0jdf2TVsSTzfmauXr06Li7O\n8N3CcCEc7HJycpYtW/azn/3MwH16vV6v1xsbG2vgPm1RUlKiaVp0dLTdhdRVTk6Oy+VKTEy0\nu5C68ng8brfb5Qrh/+KEED6fr6CgwO12u91uu2upq9zc3KSkJLurqKuioqKioqKEhISIiAgr\nj2v9u+f1evX/iAz87Kmq6vF4jP3xUlBQ4PP5mjRpUus95Ofnx8fH1zqZeTwer9ebnJxsbAKe\nNGkS61SFipD/gxUAAAA6gh0AAECYINgBAACECYIdAABAmCDYAQAAhAmCHQAAQJgg2AEAAIQJ\ngh0AAECYINgBAACECYIdAABAmCDYAQAAhAmCHQAAQJgg2AEAAIQJgh0AAECYINgBAACECYId\nAABAmCDYAQAAhAmCHQAAQJgg2AEAAIQJgh0AAECYINgBAACECYIdAABAmCDYAQAAhAmCHQAA\nQJgg2AEAAIQJgh0AAECYINgBAACECYIdAABAmCDYAQAAhAmCnW1Ot/yZ3SUAAICw4rK7gAan\nYp7TH7c8fdK+cgAAQPigY2c/WncAAMAQBDtLkeEAAIB5CHYAAABhgmAHAAAQJgh2lmKcBAAA\nMA/Bzn6kPQAAYAimO7GaHuPKJjo5eVw4yNYAAMAYpAp7RHTpLMXFkuoAAICBCBb2UGXFERtn\ndxUAACCsEOzsocoeKS7W7ioAAEBYIdjZQdO0wiI6dgAAwFgEOxtoSqFQVTp2AADAWAQ7G6iK\nLIRwxMXbXQgAAAgrBDsbaLIihKBjBwAAjEWws0FZx4577AAAgKEIdjagYwcAAMxAsLOBKnuE\nEI5Ygh0AADASwc4GZR07gh0AADAUwc4GZffYxXOPHQAAMBLBzgYXOnYEOwAAYCSCnQ1URRFC\nOBg8AQAADEWws4Emy4KOHQAAMBrBzgaqTMcOAAAYj2BnA02RhRBSHB07AABgJIKdDVRZEZLk\niImxuxAAABBWCHY20BRZiokRTqfdhQAAgLBCsLOBKissOwEAAAxHsLOB5vGwUCwAADCcy+4C\nai8QCBQWFsqybOA+VVVVVdXYfVamaWpRkRTtNvUoqqpqmub3+807hGUCgYC5/yKW8Pv9RUVF\nkiTZXUidqKoqhPB6vYFAwO5a6krTtDD4XOn/EEVFRQ6HpX+lW//umfHZ0zTN8B8venl12Wcg\nEFAUpdY/K/Qf+4qi1LqAKum/U4zdJ0wSwsHO4XA0atQoOjrawH36fD6fz2fsPivRFMUTCDgT\n4k09itfr1TQtKirKvENYo7S01OFwmPpeWUNV1aioKGeI31jp9/t9Pp/L5WrUqJHdtdSV2f+l\nW6OkpMTv90dFRblclv4wt/7d0384G/vZU1U1EAgYeyKBQEBV1brs0+/3N2rUqNZJXW9PNGrU\nyNg/IyVJCvW/SxuOEA52kiQ5nU5jf5zp/52b+iMyUFIihHDGx5t6FL/fr2maxT/rTSJJUhic\niBkfV+vpf7I7HI5QPxFdGJyF/uvflo+WxUfUO3bGfvZUVTX8x4uefuqyT72kWge78gIMD3YG\n7g2m4h47q5UtO8EkdgAAwGgEO6tdWCiWYAcAAAxGsLOaJitCCInpTgAAgNEIdlZTZVkIwTx2\nAADAcAQ7q5XdY0ewAwAARiPYWa2sYxcfb3chAAAg3BDsrKYp3GMHAABMQbCz2oVRsQQ7AABg\nMIKd1co6dkx3AgAAjEaws5rq8QhGxQIAABMQ7KxGxw4AAJiEYGc1VVaEJDliYuwuBAAAhBuC\nndU0WZaio0Xorz4OAADqG4Kd1VRFYaFYAABgBoKd1TRZ5gY7AABgBoKdtTRNLSxkSCwAADAD\nwc5SWlGR8Pvp2AEAADMQ7CzFshMAAMA8BDtLabIsWCgWAACYg2BnqbKOXXy83YUAAIAwRLCz\nFB07AABgHoKdpVRZESwUCwAAzEGws1TZQrEEOwAAYAKCnaVUj0cIwcoTAADADAQ7S5V17OIJ\ndgAAwHgEO0uVjYqNJdgBAADjEewspcmKEEJigmIAAGACgp2lVEUWdOwAAIA5CHaW0jyyoGMH\nAADMQbCzlN6xY7oTAABgBoKdpTRZkaKjJZfL7kIAAEAYIthZSlVkB9dhAQCAOQh2ltJkRYqL\nt7sKAAAQngh2llIVhY4dAAAwCcHOOlpxsfD7JeY6AQAA5iDYWUeVZSEEHTsAAGASgp11NFmf\n64SOHQAAMAXBzjqqrAg6dgAAwDQEO+to+uzEcXTsAACAKQh21inr2LHsBAAAMAfBzjoXOnYE\nOwAAYAqCnXVUD4MnAACAiQh21tEUBk8AAAATEeyso5YFO5YUAwAApiDYWUeTFcE9dgAAwDQE\nO+vogycc3GMHAADMQbCzjkrHDgAAmIlgZx1V9gghJOaxAwAA5iDYWUeTFalRIykiwu5CAABA\neCLYWUdVZK7DAgAA8xDsrKPJCnOdAAAA8xDsrKMpCrMTAwAA8xDsLKKVlGg+H+uJAQAA8xDs\nLMLsxAAAwGwEO4voc50wOzEAADAPwc4izE4MAADMRrCzSNl6YnF07AAAgFkIdhYpu8eOZScA\nAIBpCHYWUenYAQAAkxHsLELHDgAAmI1gZxFV1jt2BDsAAGAWgp1FNEXv2HEpFgAAmIVgZ5Gy\njl08wQ4AAJiFYGcROnYAAMBsBDuL6BMUc48dAAAwD8HOIvoExRLTnQAAANMQ7CyiemQpKkqK\niLC7EAAAELYIdhbRFJl2HQAAMBXBziKqrDiYnRgAAJiJYGcRTZYl5joBAABmIthZQSst1Xw+\nB3OdAAAAMxHsrKDJ+pBYLsUCAAATEeysoCr6JHZ07AAAgIkIdlbQPLIQQmLwBAAAMBPBzgqq\nIgs6dgAAwGQEOytosr5QLB07AABgIoKdFVSZjh0AADAdwc4KmkLHDgAAmI5gZwU6dgAAwAIE\nOyuUdeyYxw4AAJiJYGeFso4dl2IBAICZCHZWKOvYxcfbXQgAAAhnBDsr0LEDAAAWINhZoWwe\nOwZPAAAAMxHsrKDKshQZKUVG2l0IAAAIZwQ7K2iyTLsOAACYjWBnBVVRuMEOAACYjWBnBTp2\nAADAAgQ702ler+b1suwEAAAwG8HOdJosC5adAAAA5iPYmU5VFMFCsQAAwHwEO9OVdewYPAEA\nAExGsDNd2bITdOwAAIDJCHamK1t2go4dAAAwGcHOdHTsAACANQh2ptMUOnYAAMAKBDvT0bED\nAADWINiZrqxjxzx2AADAZAQ705V17GLp2AEAAHMR7ExHxw4AAFiDYGc67rEDAADWINiZrmwe\nO4IdAAAwGcHOdKoiSxERUlSU3YUAAIAwR7AzneaRadcBAAALEOxMpyqKg5ETAADAfAQ702my\nLDHXCQAAMB/Bzlyaz6eVltKxAwAAFiDYmUuTZSGEFBdvdyEAACD8EezMpcqKEIKOHQAAsADB\nzlyaIgshpFiCHQAAMB3Bzlyqh2UnAACARQh25qJjBwAALEOwM9eFe+zo2AEAANMR7MylKfpC\nsXTsAACA6Qh25lJlWQjhYIJiAABgPoKduejYAQAAyxDszKV37FhSDAAAWIBgZy6NCYoBAIBV\nCHbmUhU6dgAAwCIEO3OVdeziCXYAAMB0BDtzaYosXC6pUSO7CwEAAOGPYGcuVVaYnRgAAFiD\nYGcuVfYw1wkAALAGwc5cmqwwOzEAALAGwc5Emt+vlZTQsQMAANYg2JlIYz0xAABgIYKdiZjr\nBAAAWIlgZyJmJwYAAFYi2JlI79hxjx0AALAGwc5EquwRQjhiCXYAAMAKLlP3npub+8orr3z9\n9dder7d9+/a//vWvO3fuLIRQFGXFihXffPONz+fr0qXL3Xff3axZs2q2hyhV79gR7AAAgCXM\n7dgtWLAgJyfnySefXLp0aZMmTebPn19SUiKEWLp0aXZ29rx58xYtWuR2u+fPn6+qajXbQ5Sm\nyILBEwAAwComBjtZlps2bTpz5sz27du3aNHijjvu8Hg8J0+ezMnJ2bNnz29/+9t27dqlpqbe\nfffdp0+f/vbbby+13bwKzVZ2jx2DJwAAgCVMvBQbFxf3yCOPlD89f/68w+Fo0qTJwYMHIyIi\n2rVrp2+PjY1t1arVoUOHioqKqtyelpamb/H7/UVFReU71C4wsGZ9b0btU1X0YBdjbJHBs+u4\nhguPEzH842q98vpD/UR04XEWwqaPlsVHLP/hbOBxjf2Bf/Ge6/Ltdd9DXb4dIc3ce+zKybL8\n4osvTpgwoXHjxh6PJy4uTpKk8q8mJCQUFBQkJCRUub386aeffjpnzpzypx06dMjPz3e73YZX\nq18vrjv/uXNCCE9AdZw/b8gOa6qwsNCW4xrL7/eft+kNNJbX67W7BGMUFRVV/BMrdIXH50oI\n4fF4rD+oLe9ecXFxcXGxsfs040TquM+8vLw6FpCbm1vHPVTi9/sJi6HCimB36tSpp556qlev\nXnfeeae+pWJ6q+hS23VJSUl9+/Ytf1pQUOByuSIiIgwsVVVVTdOcTqchewsUFgkhIhITHIYW\nGQz93kSHI+RHPft8PkmSXC6L/gIxj9/vdzqd1X/C6z9N0/QTCY+PlrE/PWyhqmogEHC5XBZ/\ntKx/9/QzNfazp2ma/u4ZtUMhRCAQUFW1Lm9OHX9W1L2AKoX6z64GxfTfl19//fWzzz47adKk\nsWPH6lsSExM9Ho+maeUflIKCgsaNG19qe/mu0tLSli9fXv50+vTpcXFxCQkJBlbr9Xq9Xm+s\nQeNYA95SvxDxqalOQ4sMRklJiaZp0dHRFh/XcDk5OU6n09h/ZVt4PB632x3qCdXn8xUUFERF\nRZnRKbdYbm5uGHyu9O5pTEyMxTHL+nfP6/V6PB5jP3uqqno8HmNPpKCgQFXVuuwzPz8/Pj6+\n1vnV4/F4vd74+Hhjo1gY/F3acJj7Z/eBAwf+9Kc/Pfjgg+WpTgjRqVMnn8939OhR/ak+oqJb\nt26X2m5qhabSpztxxDF4AgAAWMHEYOf1epcuXXrTTTe1adMm54KSkpKkpKRrr732pZde+vHH\nH0+fPr1kyZIOHTp07979UtvNq9BsmiILl0sK/bYZAAAICSZeGMrIyDh79uzrr7/++uuvl2+c\nPn36mDFjZs2atWLFiieeeCIQCPTo0ePxxx/Xe7yX2h6iVFlh2QkAAGAZE4NdWlra+++/X+WX\n3G73/fffH/z2EKXJMgvFAgAAy4T80Lb6TJVlB7MTAwAAqxDsTOP3a8XFdOwAAIBlCHZm0Zed\noGMHAAAsQ7AzS9lCsXTsAACAVQh2ZlEVWQjhiIu3uxAAANBQEOzMQscOAABYjGBnlrKOHfPY\nAQAAqxDszKJ5ZCGERLADAABWIdiZRZX1e+wYFQsAACxCsDOLpuj32BHsAACARQh2Zimbx47B\nEwAAwCoEO7PQsQMAABYj2JlF9XgEo2IBAICFCHZmoWMHAAAsRrAziyrra8XSsQMAABYh2JlF\nk2XhdEput92FAACAhoJgZxZVURyxsUKS7C4EAAA0FAQ7s2iyzA12AADASgQ7s5R17AAAAKxC\nsDNHIKAVFdGxAwAAViLYmUJVFKFpLDsBAACsRLAzhSbLQgiJS7EAAMBCBDtTlC0UGx9vdyEA\nAKABIdiZgo4dAACwHsHOFCw7AQAArEewM0XZQrEEOwAAYCGCnSlUj0cI4WC6EwAAYCGCnSnK\nOnZMdwIAACxEsDNF2ajYOEbFAgAA6xDsTEHHDgAAWI9gZwpVlgWjYgEAgLUIdqYom8eOwRMA\nAMBCBDtT0LEDAADWI9iZQpMV4XBIMTF2FwIAABoQgp0pVEV2xMQISbK7EAAA0IAQ7EyhyYoU\nz1wnAADAUgQ7U6iK4mCuEwAAYC2CnQlUVSsslGIZEgsAACxFsDOeWlgoNI2OHQAAsBjBznia\nxyOEoGMHAAAsRrAznirrC8XSsQMAAJYi2BlPU1h2AgAA2IBgZ7yyjh3LTgAAAGsR7Ix3oWNH\nsAMAAJYi2BnvQseOS7EAAMBSBDvjaTIdOwAAYAOCnfFURRFMdwIAACxHsDOepl+KjSfYAQAA\nSxHsjKcqsuAeOwAAYDmCnfH0jh332AEAAIsR7Iynyh5Bxw4AAFiOYGc8TVaEwyHFuO0uBAAA\nNCwEO+OpiizFuIWD9xYAAFiK8GE8TVa4DgsAAKxHsDOeqsjMdQIAAKxHsDOaqmqFRcxODAAA\nrEewM5hWWCRU1cFcJwAAwHIEO4Ppc53QsQMAANYj2BlMZXZiAABgE4KdwTTWEwMAADYh2BmM\njh0AALALwc5gZR27ODp2AADAagQ7g2l6xy6Wjh0AALAawc5galnHjmAHAACsRrAzmOqRBdOd\nAAAAOxDsDKYpihCCJcUAAID1CHYG04MdHTsAAGA9gp3B9OlOuMcOAABYj2BnMH26E4npTgAA\ngOUIdgZTPbKQJIfbbXchAACgwSHYGUxTZCkmRjiddhcCAAAaHIKdwVRZcTA7MQAAsAPBzmCa\nLLNQLAAAsAXBzlCaphYWOuLi7a4DAAA0RAQ7I2mFhUJV6dgBAABbEOyMpOrLTjA7MQAAsAPB\nzkiavlAsHTsAAGAHgp2RVEUWQjiYnRgAANiBYGckTdYXiqVjBwAAbECwMxIdOwAAYCOCnZHo\n2AEAABsR7IykynTsAACAbQh2RtIUOnYAAMA2BDsjXejYEewAAIANCHZGKuvYsaQYAACwA8HO\nSHTsAACAjQh2RrrQsWPwBAAAsAHBzkiqrAhJcsTE2F0IAABoiAh2RtJkj+R2C6fT7kIAAEBD\nRLAzkiorDuY6AQAANiHYGUmTZW6wAwAAdiHYGUfT1MJCOnYAAMAuBDvDaEVFIhCQ4unYAQAA\nexDsDKMqimChWAAAYB+CnWE0WRYsFAsAAOxDsDPMhWUn6NgBAAB7EOwMo8mKoGMHAADsQ7Az\nDB07AABgL4KdYcoWiqVjBwAAbEKwMwwdOwAAYC+CnWHKOnZxdOwAAIA9CHaGKevYxdKxAwAA\n9iDYGYaOHQAAsBfBzjDcYwcAAOxFsDNM2Tx2BDsAAGATgp1hVEUWQjhiYuwuBAAANFAEO8No\nsiK53cLlsrsQAADQQBHsDKPKsoPZiQEAgH0IdobRZJkb7AAAgI0IdoZRCwsdzHUCAADsQ7Az\nhlZUJPx+KS7e7kIAAEDDRbAzhqooQgg6dgAAwEYEO2NosiyEkBg8AQAA7EOwM4Yq6x07Bk8A\nAADbEOyMockeQccOAADYimBnjLKOHcEOAADYh2BnDE1hoVgAAGAzgp0xVFkW3GMHAABsRbAz\nxoWOHZdiAQCAbQh2xijr2MXSsQMAALYh2BlDk+nYAQAAmxHsjKEqdOwAAIDNCHbGKOvYxRPs\nAACAbQh2xtA7dkxQDAAAbESwM4YmK1J0tORy2V0IAABouAh2xlBlj4OREwAAwFYEO2NosiIx\ncgIAANiKYGcMTVHo2AEAAHsR7AygFRdrfj8dOwAAYC+CnQFUWRFCOJjrBAAA2CqER3GqqlpU\nVKQoirH7DAQCNd2nmp0lhAg0ija2mLoIBALl/x/qavEvUg/5/f6ioiKHI7T/lFJVVQjh9Xr1\nByFN07Tw+FwJIYqLi0tLS608rvXvnv7TzNjPnqZpqqoaeyJ6nXXZp6qqhYWFkiTVpYDCwsJa\nF1AlVVU1TTN2nzBJCAc7SZJcLldERISB+/T7/Zqm1XSfvuISIYQzPs7YYuqoFidSD5WUlEiS\nFAYn4vf7XS6X0+m0u5A6CQQCXq/X6XSGwb9IaWlpGJyFpmm2fLSsf/ckSfL5fMZ+9vR3z9gT\n8fl8Qoi67NPn80VERNQ62OlZ3+Vy1XoPVZIkydgdVpSVlbVkyZL169dnZmYKIVq1ajVq1KiZ\nM2d26tQpmG8fNGhQTk7OwYMHKz1usEI72EVGRkZFRRm7T03TarxPb6kQwpWQYGwxdaFpWm1O\npP6RZdnhcITBiZSWlkZGRrpCfKZD/ZeW0+kMg3+RwsLCMDgLvT0TERFhccyy/t2TJKm4uNjY\nz56qqiUlJcaeSElJSSAQqMs+i4uLIyMja93d13u3UVFRhgc7A/dW0c6dO2+66aaCgoIxY8ZM\nmjRJCPHNN98sX77873//+9q1a8eMGWPSccNYaP+aqSdUD8tOAABQM1lZWRMmTJAkadeuXX37\n9i3ffvDgwRtuuGHy5MmHDh1q3ry5jRWGotC+46ee0BRZCOGIY/AEAADBev7553Nycl588cWK\nqU4I0bVr13/84x9/+MMfyjuXa9eu7du3r9vtjo+P79Onz9q1ay+78zNnzvzmN79p06ZNo0aN\nUlJSbrnllgZyiZaOnQH0UbESwQ4AgKCtW7cuKSnp1ltvvfhLw4cPHz58uP74jTfemDRpUnp6\n+rx584QQy5YtmzRpUlxcXPUXam+++ebMzMwFCxa0b9/+zJkzCxcuHDp06I8//uh2u804l/qD\nYGcATVGEEExQDABAkDRNO3To0JAhQy479OfYsWPDhw9fu3ZtZGSkEGLw4MHJyclr1qypJth5\nPJ7du3fPnTv3rrvu0rf069fvzTffzM/PD/tgx6VYA+jBjgmKAQAIUlFRUSAQiI+Pv+wrH3nk\nkU2bNumpTggRHx+fkpJy4sSJar4lOjpaD3+bNm3Sp8jp0KHDI488kpqaakjx9RnBzgD64Ak6\ndgAABMntdrtcrtzc3Mu+0uPx/OEPf+jZs2dCQoLL5XK5XKdOnap+RsOIiIh169Y5HI4bbrih\nWbNmEydOfP311/W5YMJeUJdiCwsLP/jgg08++eSrr77KycnJz89PSEho2rTp1VdfPXLkyLFj\nx8bExJhdaH2mD56gYwcAQJAkSerevfu+ffuKi4ujo6OreeW4ceN27tz5u9/9bvTo0YmJiZIk\njRo16rL7Hzhw4OHDh7dt2/bhhx9u2LBh8uTJS5Ys2b59e/XHCgOX6diVlpYuXry4Xbt2t912\n2+rVq1VV7dy588iRI7t06aKq6urVq2+77bZ27dotXrzY4nnP65WyJcXo2AEAELSbb75ZUZS/\n/vWvF3/ps88+69q16+7du48cObJ9+/Zp06Y9/fTTgwcP7tmzZ9euXYPp8wkhnE7n8OHDFy1a\n9P333y9fvvzLL7988803jT6Jeqe6YJeZmTlw4MCHH374uuuuW79+fV5e3tdff71p06Z//etf\nmzZt+vrrr/Py8tavX3/dddc9/PDDAwcO1OeMboDKOnaMigUAIGj33ntvSkrKo48+un79+orb\nv/7664kTJ+bm5nbu3FmfF71Vq1blX/3f//1ffSLoava8d+/e2267LTs7u3zLyJEjhRDnzp0z\n+Bzqn+ouxV599dW9evX67rvvunXrVuUL3G73jTfeeOONN2ZkZMycObN3797nz583p856TZUV\nqVEjKfSXJwIAwDLJycnvv//+mDFjxo4de/311w8ePNjpdO7fv/+9995r0qTJxx9/nJSUFBcX\n97Of/WzFihW9evVKTk5+99139+7dO2zYsL17927ZsqXSBHjlWrZsuWHDhoyMjPvuu69169bn\nz59/4YUX4uPj09PTLT5H61XXsZs5c+bGjRsvleoq6tat28aNG2fMmGFcYaFEU2SJ67AAANTQ\nNddck5GRMXfu3KysrEWLFj377LNHjhx59NFHv/vuu6uuukoIERER8c4777Ru3XrSpEm33HKL\noijr1q2bPXt2VFTULbfccvr06Sp3m5KSsmPHDn0k7I033vjggw82b95869atHTp0sPb8bFBd\nx+6pp54qf1xUVFRQUNCiRQshRHFx8RtvvHH+/Pn09PT27dvrL3A6nQsWLDC11npL9ciOxES7\nqwAAIPQkJyc/88wzzzzzzKVe0KdPn127dlXcMnbs2PKLqjt27CjfXvHxlVde+c477xhdbAgI\narqTgwcPtmvXbuXKlUIIv98/ZMiQX//61w899NDVV1+9b98+kysMAZqi0LEDAAC2CyrYPfbY\nY82bN//FL34hhFi7du2XX365fPnyI0eO9OjR449//KPJFdZ3WkmJ5vM5mOsEAADYLahgt2PH\njrlz5+pXpt95550rrrhixowZHTp0mDlz5ueff25yhfWdVrZQLB07AABgs6CCXX5+vn53XSAQ\n2Lp164033qhvb9q0aVZWlonVhQJV0ZeduPyiKAAAAKYKKtg1b9782LFjQojNmzfn5eWNHj1a\n337y5Mnk5GQTqwsFdOwAAPXH2Bf32l0C7BTUkmIjR458/PHHjxw5smbNmg4dOgwZMkQIkZ2d\n/fzzzw8cONDkCuu7Cx077rEDANhs5OLP7C4BNguqY/fUU0+1bdt24cKFhYWFq1evdjqdQohZ\ns2YdP37897//vckV1ndlHbuGvVouAMB2/ed9rD+49olP7K0ENgqqY9eiRYvPPvvM4/FER0dH\nXFhf4aGHHnr++eebN29uZnkhQJU9go4dAACoB6rr2E2bNq24uLj8aXx8fESFVbP69OlTMdUV\nFxffddddZpRYz124x45gBwCwTXm7rsqnaDiqC3abN2/u37//tm3bLruXbdu29e/ff9OmTcYV\nFjJUWb/HjsETAIB6hGzXMFUX7Pbu3ZuSkjJs2LChQ4e++uqrF6/Idvr06VdffXXo0KHDhg1L\nSUnZu7chjsTRCguFEBITFAMAbEKGQ7nq7rFLTk7+8MMPX3/99SeffHLatGlCiKvXCeoAACAA\nSURBVObNmzdp0iQhIaGgoCAnJ0efxK5Tp06rVq26/fbbHY6ghmKEGTp2AID6qf+8j3c/Ocru\nKmCpywyecDgcv/rVryZNmrRjx47//Oc/+/btO3fuXG5ubnx8fNu2ba+66qobbrhh0KBB+jjZ\nhkmTZcE9dgAAm9CuQ0VBjYp1Op1Dhw4dOnSo2dWEIlVWhBCOWDp2AAAblPfkbl66PVcpff1/\n0lo0bypJkr1VwS4N8eKpsTSFjh0AwGYZP3l+yivu275xpIvf7A0a//x1pcqKFBkpRUbaXQgA\noOHalpElhBjUMcnuQmAzgl1dabIsxcfbXQUAoEHbciArwuXo276x3YXAZgS7ulIVhRvsAAA2\n+vGccjynsF/7ZHdkwx3LCB3Brq40WeYGOwCAjbYeyBJCDO3W0Bf5hKhRsCspKdmzZ8+7776b\nk5MjhPD7/aZVFTK00lLN66VjBwCw0daMbIdDGtylqd2FNAibN2/+8ssv9ceBQGDhwoVpaWlx\ncXFRUVFdunR55plnVFXVv9qnTx9Jkvbv31/x2wOBQEpKiiRJfr9/4sSJUlWmTp1a6/KCmu5E\nCLF48eInn3xSlmUhxGeffdakSZN58+b99NNPL7/8sssV7E7Cz4VJ7Ah2AAB7nMkv/uGs5+q2\nSYkxkR5Pid3lGOl0y59VfNry9Em7Kqnoz3/+89ixY/v06SOEmDNnzhtvvLFixYrevXtrmrZl\ny5YZM2YUFxfPnz9ff3GzZs1ee+21pUuXln/7Rx99VN4aW7Zs2cKFC4UQ3333XXp6+scff9y+\nfXshRHwd7t0PqmP38ssvP/TQQ9ddd91f/vKX8o1dunRZvXr1kiVLan3sMKAqihDCwaVYAIBN\ntmZka5oYFnbXYSuluiq31EhJSYkkSS+//PLQoUPbtm3bpk2bdevW6V/KysqaNGlSamqq2+0e\nOHDgzp079e2vvfZat27doqOjU1JS7rnnnpKSkuHDh2/YsOH+++/v3bu3EGLjxo133HHHmDFj\nUlJSWrRocfvtt7/11lsDBgwoP+jo0aP/+c9/er3e8i0rV64cPny4/jglJaVjx44dO3Zs1aqV\nEKJ169b602bNmtX6NIMKdsuWLbv77rvXrVt35513lm+844475syZ87e//a3Wxw4DLDsBALDX\ntowsSRJDutY+CoSQumQ7/QLj8uXL33zzzczMzCeeeOIXv/hFdna2EGL8+PF5eXn79+/Pycnp\n37//jTfemJOTc+zYsWnTpi1btkxRlF27dn322WdLlizZvHlz69atly5dunfvXiFEr1693n77\nbf2xbuTIkaNHjy5/es011yQkJHzwwQf607y8vPXr19966621PovLCirY/fDDD7fccsvF24cN\nG/bjjz8aXVIooWMHALBRruL95mR+95YJzRMa2V1LLeXOvPd0y59d/L9Lvb7KFxe+vibIw915\n553NmzcXQtxxxx3R0dH//ve/9+3b9/nnny9ZsqRZs2Zut3vBggWBQODDDz/Mz8/XNC0pKcnp\ndLZv3/7LL7985JFHKu3t+eef79OnT79+/dq3bz9lypQVK1boSbGiadOmvfrqq/rjtWvXDhky\nRO/PmSSo2+Pi4+NLSqq4bF9QUBAdHW10SaFEkxUhhBQTY3chAICGaNvBLFXVQvo6bESXLurg\nwRdvL/300ypfH1XVi50pKUEerkOHDmXf4nSmpqaePHkyISHB4XB07dpV3x4dHd2mTZvMzMxf\n/epX06dP79u3b9++fUeMGDF58uROnTpV2ltSUtKaNWteeumlbdu27dq1a+nSpbNmzXr55Zen\nTJlS/pqpU6fOnz//7NmzKSkpK1eunD17dpCl1k5Qwe7KK6987rnnrr/++oprz+Xm5s6fP79/\n//6m1RYCVI9H0LEDANhkW0a2EKF9HTZu1v+Lm/X/Lt5+qaZdk7Wv1+VwPp+v/LHf73c4qrh0\nqaqq1+uVJOkvf/nL3LlzN2zY8MEHHzz99NOrV6/+5S9/efHrk5KS0tPT09PTFy1a9MADD8yY\nMWPSpEnlQ0tTU1NHjBixatWqcePGHTlyZPz48V999VVdTqF6QV2Kfeyxx3bs2HHllVfOnTtX\nCPHyyy9PnTq1Xbt2hw4d+sMf/mBecfWfpihCCInpTgAAlpNL/Ht/zO3QPK5NkzC8cFTlGNi6\nD4w9fPiw/qCkpOT06dOtW7fu1KmTqqoHDhzQtxcWFh4/frxTp05+v//cuXNt27a95557NmzY\nMH369OXLl1fc1YkTJ2699dYTJ05U3Dhw4MDi4uLS0tKKG++66641a9asXr168uTJkSavQRpU\nsBs2bNjHH38cFxf3/PPPCyFeeeWVlStXdu3adePGjQMHDjS1vnpOlWUhhIMlxQAAlttxKNsX\nUK/rFsLtuupVinGGTHeyatWqb7/9tqSk5E9/+lMgEBg7dmxaWtqAAQPmzJlz/vx5RVEefvjh\nuLi4CRMm/OMf/7j66qv37t2rqurZs2e///57/VKs2+0+cuRIfn5+y5YtDx06NG7cuH//+9+Z\nmZknTpx4//33586dO3LkyJj/vkdr7NixZ86cWb169bRp0+p+CtULdgq666+//quvvsrOzv7p\np5+EEG3atGncmAXphFZYKJjHDgBgB/06bHgvOGH43HUzZ86cMWPG3r17mzdv/s477zRp0kQI\nsWbNmlmzZnXv3l1V1b59+3766afx8fFTp049efJkenp6VlZWcnLy6NGjn3vuOSHE9OnTH3nk\nkTfeeOPkyZNbtmx5+umnZ8+effr0ab/f37Zt24kTJz722GOVDupyuaZMmbJp06a0tDRjT+di\nNZtbODo6um3btvrj/Px8/UFiYqKxNYWQso4dl2IBANYq8QU+P5qT2ji6Uwr3eddAu3btduzY\nUWlj69at33vvvUobHQ7HvHnz5s2bV2n7fffdd9999+mPk5KSFi9evHjx4iqPVb5AhRDi2Wef\nLX/cv39/TdMqvrJPnz6VttRaUMHu2LFjs2bN2rp1a2Fh4cVfNaqUUFR2jx2DJwAA1vrscE6x\nN3DLNcGOBkUDEVSwu+uuu/bt2zdhwoQWLVo4nU6zawohZaNi6dgBAKy1NSNLCDE0fG+wQ+0E\nFez27NnzySefVFwiA7qyeezo2AEALOQPaLsO5yTHRvVolWB3LSHD5XI1hGuMQY2KjYmJKb+1\nDhWpiiJFREhRUXYXAgBoQPYcOy8X+67r3txRYX5ZQAQZ7KZMmfLKK6+YXUoo0mRZYq4TAIC1\nuA6LSwnqUuwf//jHMWPGfPTRR9dee21ycnKlr+qzFjdMqqJwgx0AwEqqpu04dC7BHXF12yS7\na0G9E1Sw+/Of//yf//xHCLFz586Lv9qQg50my1LQ69MBAFB3Xx/PO6+UjrmqpdPBdVhUFlSw\ne+GFF2655ZYHHnggJSWFUbHlNJ9PKy11MDsxAMBCWzOyhRDDuA6LqgQV7HJzc1944YXU1FSz\nqwktmscjhJBiGRILALCIpoltGVnRkc6+7SvfGQWIIAdPdO/e/dy5c2aXEnJURRFC0LEDAFjm\n4BnP2YKSAZ2bRkVwAQ1VCCrYLV269MEHH/zmm2/Mria0aLIshJAYPAEAsMq2jCwhxLCuXIdF\n1YK6FPvoo48eP348LS0tNjb24lGxmZmZxtcVClRZEUI4mO4EAGCVLQeyIlyOAZ2b2l0I6qmg\ngp3D4ejSpUuXLl3Mria0aIoshJBiYuwuBADQIPx4TjmeUzioc9OYqKB+faMBCuqTsX37drPr\nCEVlHTvWEwMAWGLrAX1e4uZ2F4L6K6h77FClsnvsGDwBALDE1oxsh0Ma3IXrsLik6jp2Xbt2\nvfPOOx955JGuXbtW87KDBw8aXVVoUGVZCOFguhMAgPnO5Bf/cNbTu21SYkyk3bWg/qou2CUm\nJkZHR+sPrKonlGiFhUIIKZ5gBwAw3dYDWZrGdVhcRnXBbvfu3ZUeoCI6dgAAy2zNyJYkMaTh\nTXTSf97HQojdT46yu5DQENQ9dn369MnIyLh4+7/+9a/u3bsbXVLI0GRFcI8dAMB8uYr321P5\nPVomNk9oZHctDd3mzZu//PJL/XEgEFi4cGFaWlpcXFxUVFSXLl2eeeYZVVX1r/bp00eSpP37\n91f89kAgkJKSIkmS3++fOHGiVJWpU6fWuryggt3evXsLCwsrbfT7/d9///3Ro0drfexQpyp0\n7AAAVtiakaWq2tCGtz6s3q6r+MB2f/7zn8uD3Zw5c1588cU//vGPhw8fzszMnDdv3sKFC594\n4onyFzdr1uy1116r+O0fffSR3+/XHy9btuzw4cOHDx9+9913hRAff/yx/vTZZ5+tdXmXCXZ6\nchRCXHPNNZXiZERExLx586644opaHzvUaR5GxQIArKAvONHQgp3hYe7UqVPp6emxsbEpKSn3\n3HNPUVGRECIrK2vSpEmpqalut3vgwIE7d+4UQqiqKknSmjVrRo0a1b179zZt2qxcuVIIMXz4\n8A0bNtx///29e/cWQmzcuPGOO+4YM2ZMSkpKixYtbr/99rfeemvAgAHlRxw9evQ///lPr9db\nvmXlypXDhw/XH6ekpHTs2LFjx46tWrUSQrRu3Vp/2qxZ7f+hLzOP3f79+7dt23bfffeNHz++\nSZMmFb8kSVJqaupvfvObWh871KmKLLlcUiO64gAAE8kl/q8y8zo2j2udHIZT4v+UV+wp9gXz\nyv7zPn5t+rVVfiklsVGi+/KDhW+++ea2bdsePnxYUZT09PSHH3542bJl48ePT0xM3L9/f2xs\n7O9///sbb7zx6NGjTZo0cTqdixcv3rBhQ7Nmzf7+97/fc889EydO3Lx5c9u2befOnXv33XcL\nIXr16vX2229PnDhRz3lCiJEjR1Y84jXXXLNz584PPvjg5ptvFkLk5eWtX79+5cqVb731VjCn\nXAuXCXZpaWlpaWkbNmxYtGhRp06dTCoiRGmyIjE7MQDAZJ8ezPYF1GFh2q77y6bDn3x7JsgX\nT/3rZ1Vuf/SmHjf1blX99+7fv3/Pnj1r1qxp0aKFEGLVqlU//fTTvn37Pv/88wMHDuhNsgUL\nFvz1r3/98MMPp0yZIoSYMmWKvv36668vKirKzMzs0aNHxX0+//zzM2fO7NevX+vWrQcOHDh4\n8OAJEyZU6rdNmzbt1Vdf1YPd2rVrhwwZovfnTBLUyhMfffSReRWELlWRHcx1AgAwmX4ddlj3\n8JzoZFCXplWOCFm148cqXz9lULuLN3ZMufyv4yNHjkiS1K5d2bdfddVVV1111dtvv+1wOMrn\n642Ojm7Tpk1mZqb+tHXr1vqDRo0aCSGKi4sr7TMpKWnNmjUvvfTStm3bdu3atXTp0lmzZr38\n8st6LtRNnTp1/vz5Z8+eTUlJWbly5ezZsy9bal0EFeyys7MffvjhjRs3nj17tnysRzlN00wo\nLARosiI1C8//zAAA9USJL/D50fOpjaM7Ng/PVsLIni1G9mxRaWM1d9et2vFj7aY+0ccMXDa0\nqKpafkuc/i2XlZSUlJ6enp6evmjRogceeGDGjBmTJk1yucoiVmpq6ogRI1atWjVu3LgjR46M\nHz/+q6++qkX9QQoq2N17773vvvvu0KFDR4wYUV5oA6f5/VpJiYOREwAAM+06nFPiCwzvnmJ3\nISGvY8eOmqZlZGTo4z6/+OKLL774YvDgwaqqHjhwQL/GWlhYePz48SDvPTtx4sRDDz303HPP\nlTf2hBADBw584YUXSktLK+alu+66a/78+QUFBZMnT46MNHfhkKBS2ubNm99+++3x48ebWkpo\nKVsolrlOAABmapjjYc2YjjgtLa1fv36zZ8/+y1/+4vP5pk+ffu211957770DBgyYM2fOqlWr\noqKifve738XFxU2YMKGa/bjd7iNHjuTn57ds2fLQoUPjxo1bsGBBz549HQ7H/v37586dO3Lk\nyJiY/xrmMnbs2BkzZqxevXrdunWGn1clQc1jV1xcXHHsLoQQqkcWQtCxAwCYxx/Qdv1wrklc\nVI9WCXbXEg7+/e9/R0dHX3HFFYMGDerbt++iRYuEEGvWrImMjOzevXu7du0yMzM//fTT+Pj4\nanYyffr05cuX9+zZ0+l0btmy5YYbbpg9e3aPHj06deo0Z86ciRMnvvnmm5W+xeVyTZkyJTk5\nOS0tzcTT048VzIt69+79/fffDxs2zORiQomm0LEDAJhrz7Hzcol/1JWpjuBu9kL1mjZt+t57\n71Xa2Lp164s3CiHKpxEWQqSkpJTfnHfffffdd999+uOkpKTFixcvXry4ysOVz2MshKg453D/\n/v0r3erXp08fo0YsBNWxW7Jkye9+97vPPqt6jHHDpLKeGADAZFsb5HVY1EVQHbv77rvvzJkz\nAwYMcLvdTZs2rfTV8lHBDYresXMwjx0AwByqpu04dC7BHXF12yS7a0HICCrYORyOzp07d+7c\n2exqQkhZxy6Wjh0AwBRfH887r5SOvaql08F1WAQrqGC3fft2s+sIORc6dgQ7AIAptmZkCyGG\ndWPCVNRAUPfY4WL6qFgGTwAAzKBpYltGVnSks2+HZLtrQSgJqmPXpEmTS33J6/V6PB7j6gkZ\nmqIIOnYAAHNk/FRwtqDkhitSIl20YFADQQW7QYMGVdpy5syZb7/9tkOHDkOHDjWhqhCgBzsp\nrrqpbgAAqJ1tXIdFrQQV7Kqc3+Xs2bO//OUvf/7znxtdUmjQB0/QsQMAmGFrRlaEy3Ftp0te\nMQOqVPsGb0pKyuLFi+fNm2dgNSGECYoBACY5lq0czyns1yE5Jor12VEzdbpy36pVqwMHDhhV\nSmhhSTEAgEn0eYm5DotaqH2w0zTtlVdeSU5uoKN1NEUWLpcUHW13IQCAcLM1I9vhkAZ1qbwi\nAHBZQfV4e/XqVWlLIBA4e/ZsTk7OQw89ZEJVIUCVFQezEwMAjHYmv/jwWU+fdsmJ7ki7a0Ho\nqeXF+4iIiCuvvHL8+PF33323sQWFCk2RWSgWAGC4rRnZmsb6sKiloILd/v37za4j5Kiy4mpC\nkxwAYLBtB7MlSQzpSrBDbdR12sPMzEwjygg1fr9WXEzHDgBgrLxC33cnC3q0TGwW38juWhCS\nLhPstm/fPmrUqE6dOo0aNerDDz+s+KXS0tKnn366e/fuZpZXT6n6shPMdQIAMNSuo3mqpnEd\nFrVWXbDbvXv3DTfcsHHjRq/Xu2XLljFjxrz11lv6lz755JOePXs+/vjjrVu3tqTO+kWT9WUn\n6NgBAIy080iuENxgV6/5/X5Jkj766CO7C6ladcFu4cKFbrd73759x48fP3XqVO/evefNm3fq\n1Klf/OIXo0aNOnfu3JIlS7799lvLaq0/VNkj6NgBAAwll/i/PSV3bB7XOjnG7loQlEAgsHDh\nwrS0tLi4uKioqC5dujzzzDOqqupf7dOnjyRJlQYqBAKBlJQUSZL8fv/EiROlqkydOrXWJVU3\neOLrr7+eOnVqWlqaEKJZs2ZPPfXUz3/+806dOvl8vhkzZsyfP79Jkwa61AkdOwCA4T49mO0L\nqEO7MjJPCCFuem9Mldvfn7De4kqqMWfOnDfeeGPFihW9e/fWNG3Lli0zZswoLi6eP3++/oJm\nzZq99tprS5cuLf+Wjz76yO/364+XLVu2cOFCIcR3332Xnp7+8ccft2/fXggRH1/7leir69id\nOnWqc+fO5U+7desmhOjXr9/+/fuXL1/eYFOdEEJV9GUn6NgBAAyzLSNLcB3WTDt37uzZs2d0\ndPSVV175wQcfSJK0b98+RVEkSdq6dav+miNHjkiSdOTIESHEd999N3LkyKSkpMTExFGjRukb\nK9q4ceMdd9wxZsyYlJSUFi1a3H777W+99daAAQPKXzB69Oh//vOfXq+3fMvKlSuHDx+uP05J\nSenYsWPHjh1btWolhGjdurX+tFmz2n8Gqgt2fr8/MvL/ZkeMiooSQsydO/eKK66o9fHCQ1nH\njgmKAQAGKfEFPj96PjWxUcfmdA1MEQgEJk+e3K9fv5ycnHXr1i1atEgIERERUc23TJw4sUWL\nFidPnjxx4kRcXNydd95Z6QW9evV6++239+7dW75l5MiRo0ePLn96zTXXJCQkfPDBB/rTvLy8\n9evX33rrrYad1UVYXbg2VJmOHQDASLsO55T4AoM6Nbj1Yb8+t/9s4dngX/9xZhWjFnokX9Eq\nrlX13/jFF18cP3788ccfj4mJadeu3YMPPrh9+/bqv+Wzzz6Liopyu91CiNtvv/22227TNK3i\nC55//vmZM2f269evdevWAwcOHDx48IQJEyr126ZNm/bqq6/efPPNQoi1a9cOGTJE78+ZhGBX\nG5pCxw4AYCT9OuyAjo3tLsRqG49/sv3UtuBf/9L+Fy/eeO9Vsy4b7E6cOCFJUvlsHsHM17Zv\n374FCxYcOHBACFFaWurz+QKBQMUXJCUlrVmz5qWXXtq2bduuXbuWLl06a9asl19+ecqUKeWv\nmTp16vz588+ePZuSkrJy5crZs2df9rh1cZlgd+zYsd27d+uPc3NzhRAHDx5MTEys+Jr+/fub\nVFy9daFjR7ADABjAH9B2/XCuaXyjLs0b3G+WmzqMv7bFgIu3/2nPM1W+/nfXPHLxxo6NO132\nQJWabeUjGCopH9N65MiRG2+8cd68eRs2bGjUqNG6desmTJhQ5bckJSWlp6enp6cvWrTogQce\nmDFjxqRJk1yusoiVmpo6YsSIVatWjRs37siRI+PHj//qq68uW22tXSbYPfPMM88881/v7AMP\nPFDpNZXeqYagrGPHpVgAgBG+OJYjl/hHp6VKkt2lWK5z4y6dG3ep4gt7qn79wJaDanegVq1a\naZp2/Pjxdu3aCSH27dunb4+KipIkqaSkRH/6448/6g++/PJLv9//0EMP6ffhlfe5yp04ceKh\nhx567rnnKs7pO3DgwBdeeKG0tLQ82Akh7rrrrvnz5xcUFEyePLni6AUzVBfs5s2bZ+qxQxf3\n2AEADLQ1I1sIMbRbg7vBzkr9+/dv0aLF/PnzlyxZcubMmRdeeEHfHhER0aFDh02bNo0ePbqo\nqGjZsmX69rZt2wYCgd27d/ft2/edd97ZtWuXEOKnn35KTU3VX9CyZctDhw6NGzduwYIFPXv2\ndDgc+/fvnzt37siRI2Ni/msmwrFjx86YMWP16tXr1q0z+zSrC3ZPPPGE2YcPUXTsAABGUVXt\n04PZCe6Iq9o0lj0FdpcTtlwu17vvvjtjxowWLVq0b9/+97///aRJk/QvLV++fObMme+++25K\nSspjjz32wQcf+P3+/v37z5kzZ/z48ZIkpaenv/feeyNGjEhLS9uzp6yX6HQ6t2zZ8vTTT8+e\nPfv06dN+v79t27YTJ0587LHHLj70lClTNm3apM8NbO5pmn2AsKTK+lqxDe5OCACA4fafyMsr\n9I67uqXT0fAuxF6aGRMR9+vXr/z+tszMzPLtI0aM+OGHH8qflt9j9uyzzz777LPl27/88stK\nL0hKSlq8ePHixYurPFz56/VdlT/u379/pdvY+vTpY9SNbdXNY4dL0WSPcDql6Gi7CwEAhDyu\nw8JABLvaUGXFERsrGuA9rgAAQ2ma2J6RFR3p7Ns+2e5aEA64FFsbmixzgx0AoO4yfio4W1Ay\nomdKpItWi6Xatm0bltN68DGqDVVRuMEOAFB3WzOyhBDDunIdFsYg2NVcIKAVF0vxdOwAAHW1\nLSM7wuW4tlMTuwtBmCDY1ZiqKELTHLEEOwBAnRzNVo7nFPbrkOyO4s4oGINgV2OaLAshJNYT\nAwDUzdYDWUKIYYyHhXEIdjWmKopg2QkAQJ1ty8hyOKRBXZraXQjCB8GuxjSPLISQGDwBAKiD\nM/nFP5yVe7dNSnSbu3goGhSCXY2pCgvFAgDqasuBLCHE0G7N7C4EYYVgV2OarAg6dgCAutma\nkSVJYkhXgh2MRLCrMVWmYwcAqJNcxfvdyYIrWiU2i29kdy0IKwS7GtMUOnYAgDrZmpGlahrX\nYWE4gl2N0bEDANSRvuDEdUx0AqMR7GqsrGPHPHYAgFqRS/z7MvM6pcS1THLbXQvCDcGuxso6\ndlyKBQDUyvaD2b6AOpR2HUxAsKuxso5dfLzdhQAAQtK2suuw3GAH4xHsaoyOHQCg1kp8gS+O\nnm+V5O7QnHu1YTyCXY1psiIcDsnNjREAgBrb+cO5El/guu5ch4UpCHY1psqyIzZWSJLdhQAA\nQs+2jGwhxDBusIM5CHY1psmyxFwnAICa8/nVnT+caxrfqHvLBLtrQXgi2NWYqigO5joBANTc\nF8fOF5b6h3VrxlUfmIRgV0OBgFZUJMXSsQMA1BjXYWE2gl3NqIWFQtMc8QQ7AEDNqKq2/VB2\ngjuiV5vGdteCsEWwqxlNlgULxQIAam7f8bz8Qu+Qrs2cDi7EwiwEu5pRZUWwUCwAoOb09WFZ\ncAKmItjVjCZ7BB07AEANaZrYfjA7OtLZt32y3bUgnBHsaqasY0ewAwDURMZPBVkFJYO6NI10\n8ZsXJuLjVTNlC8VyKRYAUBP6ddhhXbkOC3MR7GqmbKFYgh0AoCa2ZWRHuBzXdmpidyEIcwS7\nmrnQseNSLAAgWEezleM5hf07NHFHueyuBWHO9E/Y6dOnlyxZcuTIkffee698o6IoK1as+Oab\nb3w+X5cuXe6+++5mzZpVs73+UBX9Hjs6dgCAYG09kCWEGNatfv1GQ1gyt2P36aefPvroo61a\ntaq0fenSpdnZ2fPmzVu0aJHb7Z4/f76qqtVsrz/K5rGjYwcACNq2jCynQxrYpandhSD8mRvs\nfD7fc889179//4obc3Jy9uzZ89vf/rZdu3apqal333336dOnv/3220ttN7XCmiq7x46OHQAg\nOGfyi384K1/dNinRHWl3LQh/5ga74cOHN21a+Q+Uw4cPR0REtGvXTn8aGxvbqlWrQ4cOXWq7\nqRXWlCYrQgiJJcUAAMHZ/D3XYWEdG+7i9Hg8cXFxkvR/C6okJCQUFBQktIk0rAAAIABJREFU\nJCRUub386ZYtW+bMmVP+tEOHDnl5edHR0YZXWFJScqkv+fJyhRB5paUiJ8fw4xqusLDQ7hIM\n4Pf7c0Lh3b4sr9drdwnGKCoqKioqsrsKA4TH50oIUfHnpGVseffM+OyZcSKV9rnxm1OSJHo0\ncwV5rNzc3DoWcP78+TruoRK/369pmrH7hEnsGZ5TMb0Fs10XFxfXrVu38qeBQMDpdLpcRp6C\npmmapjkcl2xk+pRC4XC44uLEpV9TH+j3JlZzIqHC7/dLkuR0Ou0upK4CgYDD4aj+E17/aZqm\nn0h4fLSM/elhC1VVVVV1Op0Wf7Ssf/dM+uzpv0eM3aGmaRXfnLwi3w9ZRV1TYlMS3RaUdHEB\nhgj1n10Nig0/1xITEz0ej6Zp5R+UgoKCxo0bX2p7+Tf26dNn1apV5U+nT58eHx+fmJhoYG1e\nr9fr9cZeemGJ0pJiEROTmJRk4EHNUFJSommaGe1Mi+Xk5DidTmP/lW3h8XjcbneoJwmfz1dQ\nUNCoUSO3O6hfUfVZbm5uGHyu9A5WbGxsRESElce1/t3zer0ej8fYz56qqh6Px9gTKSgo8Pl8\nFfe56YcTqqbd0LNlkAfKz8+Pj4+vdX71eDxerzchIcHYKGb9Hw+oNRv+7O7UqZPP5zt69Kj+\n1OPxnDx5slu3bpfabn2F1dA8MstOAACCtDUjW3CDHSxkbrDLy8vLycmRZVkIkZOTk5OTU1JS\nkpSUdO2117700ks//vijPstdhw4dunfvfqntplZYU6qiOJjrBAAQBLnEv+94bueUuJZJId/k\nRqgw98LQnDlzsrOz9cfTpk0TQvzP//zPTTfdNGvWrBUrVjzxxBOBQKBHjx6PP/643uO91Pb6\nQlW1oiKJuU4AAEHYnpHlD2hDu7E+LKxjbrD729/+VuV2t9t9//33B7+9nlALC4Wq0rEDAASj\n7Dpsd4IdrBPyQ9usdGHZiXi7CwEA1HfF3sAXx863SnJ3aEY7ANYh2NWAKitCCDp2AIDL2vXD\nuVJf4DradbAWwa4GNEUWQkiXngwFAADd1oP6ghMEO1iKYFcDqodgBwC4PJ9f3fVDTtP4Rt1b\nJthdCxoWgl0N6B07B/PYAQCq9cWx84Wl/mHdmtWrqR3QEBDsauDCPXYEOwBAdbaVzUvMdVhY\njWBXA5qiCCEkBk8AAC5NVbXth7IT3BG92jS+/KsBQxHsakDVpzthgmIAwKXtO56XX+gd2rW5\n08GFWFiNYFcDGtOdAAAuZ2tGlhBiKOvDwg4EuxpQFTp2AIDqaJrYfjDbHeW6pn2y3bWgITJ3\nSbEwQ8cOAFCNUX/erT8Y2bNFpIvWCWzAx64GLkx3wpJiAIDqcB0WdiHY1YAqK0KSpBi33YUA\nAOqd/vM+Ln98bccmNlaChoxgVwOaIkuxMcLBmwYAqM7wP26yuwQ0UGSUGlBlxcHICQDARSq2\n6wAbEexqQJU9zE4MAKikylRH1IMtCHZB0zStsIiOHQAAqLcIdsHSlEKhqnTsAAAVVdOZo2kH\n6xHsgqXPTkzHDgAQPLIdLMYExcHSZyeW4gl2AID/s/vJUUKI3/zt829P5i+b3LNtUmSTJsx1\nAtvQsQsWHTsAQJW+OHr+25P5gzo37dQ8xu5a0NAR7IJV1rHjHjsAwH97dfsxIcQdg9vbXQhA\nsAuaKnuEEI5Ygh0A4P98ezJ/X2Zun3ZJV7ZOtLsWgGAXtLKOHcEOAFDB37ceFUJMHdrB7kIA\nIQh2wSu7x47BEwCAC344K39+NKdHq4Q+7ZLsrgUQgmAXvAsdO4IdAKDMK1uPapqYRrsO9QbB\nLliqogghHAyeAAAIIYTIPFe4/WB2p5S4AZ2a2l0LUIZgFyxNlgUdOwDABa9uP6pq2tQh7SXJ\n7lKACwh2wVJlOnYAgDKn84r/893ZNk1iruve3O5agP9DsAuWpshCCCmOjh0AQPzj02MBVbtz\ncHsH/TrUJwS7YKmyIiTJEcOs4gDQ0GV7SjZ8/VNKQqORPVvYXQvwXwh2wdIUWYqJEU6n3YUA\nAGz2z52ZPr96x+D2LiftOtQvBLtgqbLCshMAgPwi7/tfnUqOjRrTK9XuWoDKCHbB0mSZhWIB\nAK/vyiz2Bn41qF1UBNdwUO8Q7IKjaWphoYO5TgCgYVNK/O/uOZngjpjQu5XdtQBVINgFRSss\nFIEAHTsAaODe2H1cLvFPurZtdCTtOtRHBLugXFh2go4dADRcxd7AW5+fiIly3dK3td21AFUj\n2AWlbNkJgh0ANGDv7DmZX+T9Rb/WcY1cdtcCVI1gFxQ6dgDQwPn86prPMhtFOG/r38buWoBL\nItgFRZMVIYTEdCcA0FCt++pUjlya3qdVYkyk3bUAl0SwC4oqy+L/t3fn8U3U+f/APzO506bp\n3dKWqy20HOU+lwLKpSIgCCiKgCAKsuvxdXdd2J+K4q7n7nqgq+IKAiKCCHjAgoKClMtCueRo\n6QG0hdKmbZo7mczM748p3Vp60SaZZPJ6/sEjmSSTdyZN8uI98/kMIZjHDgAgOLlZfsPBSwo5\n/eDvuohdC0BzEOxapfYYOwQ7AICgtOv01WtG++T+iTFharFrAWgOgl2r1HbscIwdAEDw4Th+\nfVYRTVNo14H/Q7BrFd5iIRgVCwAQlPaeLbtssN7Zp0NSpFbsWgBagGDXKjdGxWJXLABAcOF5\nsv7gJZqiHhrRVexaAFqGYNcq6NgBAASnrLzyvGum23vGJcfi//YQABDsWoUzmQhGxQIABJ91\nB4oIIXMy0a6DwIBg1yro2AEABKFfCirPFBtHdI9JTwgTuxaAVkGwaxXObCEURYeEiF0IAAD4\nzpqfCwkh80Ymi10IQGsh2LUKbzZTGg2R4+SAAADB4tcS44lLVYO6RvbpFC52LQCthWDXKpzF\ngknsAACCyif7CgghD49OEbsQgFuAYNcqvNmMA+wAAIJHXpn5SL6hV5J+UNdIsWsBuAUIdq3A\n85zViiGxAADBY/W+Ap4n89Gug0CDYNcy3mYjbjc6dgAAQeJShfXnC+Xd4nUjusWIXQvArUGw\naxlOOwEAEFQ+PVDI8fzDo5IpSuxSAG4Rgl3LeLOZEEJhVywAQBAorbb/cOZa5+iQ23vGiV0L\nwC1DsGtZbccuDLNTAgBI37oDhSzHzx2ZTKNfBwEIwa5l6NgBAASJcpNj56mr8Xr1hIx4sWsB\naAsEu5ZxZgvBiWIBAILAhoOXGDc3d2SyQobfRwhI+MNtWe2JYhHsAAAkzWhzfZNTEhWqurtf\ngti1ALQRgl3LOJOJEIIzTwAASNvnhy7ZXexDI7qoFDKxawFoIwS7ltV27MIQ7AAAJMvicG/L\nLtZrFVMHdRS7FoC2Q7BrWe2o2FAEOwAAydp89LLZ4X5geBeNEu06CGAIdi3jzRZCCIUJigEA\nJMruYjcfvRKikk8f0knsWgDaBcGuZZzFTNCxAwCQrq3ZxUara+bQTjq1XOxaANoFwa5lvMlM\n0LEDAJAoxs1tPHxJrZDdP6yz2LUAtBeCXcuEjh2mOwEAkKRvckoMZue0QUkRIUqxawFoLwS7\nlvFmC6XRUHL05wEApMbN8p8dvKSQ0w/+rovYtQB4AIJdyziLmcZ+WAAAKdp1+uo1o31Sv8SY\nMLXYtQB4AIJdy3izhdKFiV0FAAB4GMfx67OKaJqaPaKL2LUAeAaCXcs4iwUdOwAA6Tlwseqy\nwXpnnw5JkVqxawHwDAS7FvB2O3G7Kcx1AgAgLTxPvjx2jaaoh0Z0FbsWAI9BsGsBZzYTQtCx\nAwCQmIMXK/LLrbf1iE2OxTc8SAeCXQt4szDXCTp2AACSsj7rEiFk7shksQsB8CQEuxZwZgtB\nxw4AQFqyCyvPFBuHdA1PT8DYOJAUBLsW8MLsxDp07AAApGPN/kJCyKwhiWIXAuBhCHYtqO3Y\n4bQTAABS8WuJMedS1YAuET0T8N0OUoNg14IbHTt8+AEAJOKTfQWEkIdH4eg6kCAEuxYIHTsM\nngAAkIa8MvORfEOvJP2grpFi1wLgeQh2LeAx3QkAgISs2V/A82T+6BSxCwHwCgS7FnAWYVQs\nhk0BAAS8SxXW/efLu8XrRnSLEbsWAK9AsGsBL+yKRccOACDwfXqgkOP5h0cmU5TYpQB4B4Jd\nC4TBEzSOsQMACHCl1fYfzlxLitTe3jNO7FoAvAXBrgUcOnYAAJKwPquQ5fj5o1NoGv06kCwE\nuxZwZhMhhMI8dgAAgcxgdu48eTVer56QES92LQBehGDXAt5sodRqSqEQuxAAAGi79VlFLjc3\nd2SyQoYfPpAy/H23gLOYsR8WACCg1diYb3JKokJVd/dLELsWAO9CsGsBb7Zg5AQAQED7/NAl\nu4t9aEQXlUImdi0A3oVg1wLeYqHDEOwAAAKVxeHemn1Fr1VMHdRR7FoAvA7Brjm8w8EzDM4n\nBgAQuDYfvWx2uGcN66xRol0H0odg1xzMTgwAENDsLnbz0SshKvmMoZ3FrgXAFxDsmiPMdYJj\n7AAAAtS2Y8VGq2vm0E46tVzsWgB8AcGuOZidGAAgcDFu7vNDl9QK2f3D0K6DYIFg15za84np\n0LEDAAg83+SUGMzOqYOSIkKUYtcC4CMIds2pPcYOp50AAAg0bpb/7OAlhZye/bsuYtcC4DsI\nds3h0LEDAAhMu09fvWa0T+qXGBOmFrsWAN9BsGsOOnYAAIGI4/h1WUU0Tc0e0UXsWgB8CsGu\nOZxZ6Ngh2AEABJIfz12/bLDekdEhKVIrdi0APoVg1xzeInTssCsWACBg8DxZn1VEU9RDmV3F\nrgXA1xDsmlPbscMpxQAAAsfBvIrca6bbesSmxGJ/CwQdBLvmoGMHABBw1h4oJITMHZksdiEA\nIkCwa44wQTGOsQMACBTZhZVnio2/6xaTnhAmdi0AIkCwa44wQTGF6U4AAALEmv2FhJB5o3B0\nHQQpBLvmcCYzpVJRCoXYhQAAQMt+LTHmXKoa2DWyb6cIsWsBEAeCXXN4ixntOgCAQLF6XyEh\n5OFROLoOgheCXXM4s4XG7MQAAIEgr8x8OL+iZ6J+cHKU2LUAiAbBrjm82UxhrhMAgECwZn8B\nz5MFo1PELgRATAh2TeKdTp5haMx1AgDg9y4brPvPl3eL143oHiN2LQBiQrBrEm8WhsRiVywA\ngL/79OdCjucfHplMUWKXAiAqBLsmcRZhEjt07AAA/Fpptf37M9eSIrW394wTuxYAkSHYNYk3\nmQkhFAZPAAD4t/VZhSzHzx+VTNPo10GwQ7BrEmcxE3TsAAD8m8Hs3HnyarxePaFPB7FrARAf\ngl2TeLNwolh07AAA/NdnB4tcbm7uyGSFDL9oAAh2TePM6NgBAPi1Ghvz9fGSqFDV3f0SxK4F\nwC8g2DWJt6BjBwDg1z4/dMnuYmeP6KJSyMSuBcAvINg1CR07AAB/ZnG4t2Zf0WsV0wZ1FLsW\nAH+BYNek2o4d5rEDAPBLXx69bHa4Zw3rrFGiXQdQC8GuSbUdO+yKBQDwP3YXu+nolRCVfMaQ\nTmLXAuBHEOyaVNuxCwsTuxAAAGho27Fio9U1c2gnnUYhdi0AfgTBrkno2AEA+CfGzX1+6JJa\nIbt/WGexawHwLwh2Taqdxw6DJwAA/My3J0oNZufUQUkRIUqxawHwLwh2TeIsFkqppJT41gAA\n8CNulv/sYJFcRs0a3kXsWgD8DoJdk3iTCe06AAB/s/v01avV9sn9k+L1arFrAfA7CHZN4iwW\nHGAHAOBXOJ7/7OAlmqZmj+gidi0A/gjBrkm82YyOHQCAX/np7PWiCssdGR2SIrVi1wLgjxDs\nGse7XLzLhdNOAAD4iUkrj/M8WZdVRFHkocyuYpcD4KfkYhfgp3izmeC0EwAA/mHU338ihIx9\n4wAh5PaecSmx+HIGaBw6do3jLBaCE8UCAPifuSOTxS4BwH8h2DWutmOHwRMAAGIbtnx3/as9\nEnBCIIAmIdg1rva0E+jYAQD4mQY5DwDqC+Bj7DiOs9vtVqvVg+tkWZbjOKvVylQYCCGMQuHZ\n9fsMy7I8z3McJ3YhHiC8I2JX0V4sy9rtdpoO7P9KCX9RDMNI4B3heV4Cr8LtdhNCHA6Hy+Xy\n5fP6cuuNfSPr5oUeeXbhS9LjPyKkfeVxHGez2SiKak8BNputzQU0iuM4nuc9u07wkgAOdoQQ\nmqZlMpkHV8jzPM/zMpnMbbMRQmR6vWfX7zMcx1EUFaDF30waL0QmkwV6sBNI5k9LAq9C+BX3\n+Ddha/jmGW97dX+jy8e+kbVv2eh2rlxIKp59IUIga+c6ZTJZm4Od8ECaptu8hmZWCwEhgIMd\nTdMqlUqt9uTM4y6Xy+VyqdVq1ukkhCgjIjy7fl/ieT5wi69jsVhompbAC3G5XEqlUi4P4E8c\nIYRhGLvdLpfLJfCO2Gw2CbwKjuOEPy2FQuHL5/WHrdf+AjiOczqdnn0hTqeTZdn2rNPhcKhU\nqjb/J1Do3arVao8HO2S7QCGF/oE34Bg7AABxNX8sHY60A2hUYPcPvIe3WAjmsQMAEM/HC4c+\ntf64g2FfntFnZLdIk8mk1Wq1WpxwAqA56Ng1rrZjF4qOHQCACPLKzM9syHEw7Iv3ZoztFS92\nOQABA8GucejYAQCIJf+6+Ym12RYHs3RSzwkZHcQuByCQYFds43CMHQCAKK5UWp9ad9xkZ/58\nd88pA5PELicwTNl+d6PLv5m6w8eVgOjQsWscbxY6dgh2AAC+U1JlW7Imu9Li/MP4tHsHdxS7\nHIDAg2DXOM5iphQKSqUSuxAAgGBxvcbxxNpjBrPz8XHdZo/oInY5AAEJwa5xvMmMdh0AgM9U\nmBxLPs2+ZrQvvD113shkscsBCFQIdo3jLBYaIycAAHyi2up6ct3x0irbA8M7L7wtRexyAAIY\ngl3jeLOZwlwnAADeZ7S5/vBpdlGFZebQTk/dmS52OQCBDcGuETzD8E4nOnYAAN5mcbj/b/3x\ngnLL5AGJz9zVQ+xyAAIegl0jeLOZEELpwsQuBABAyuwu9o8bcs5fNU3sl7BsSi+cjBSg/RDs\nGsGZLYQQdOwAALzHwbB/3JBz6kr17T3j/t89vWnEOgBPwATFjeAtZkIIFYpgBwDgFQzLLdt0\nMudS1aj02Jdn9JXRSHVt52Jdcdo4g93wr9veiaKiXC5XVFQUhaAcrNCxa8SNjh0GTwAAeJ6b\n5Zd9cfLwRcOQlKi/zewrlyGCtMum3C+u265PTpnSVd9V7FpAfAh2jeDNJoKOHQCAF3Ac/+LW\n01l5FX07Rbw+q79Sjp+hdrlqubo9f2uEOmJW2gNi1wJ+AZ+oRqBjBwDgDRzPv7TtzJ5fyzI6\nhr89Z6BGKRO7ooD38ZmPGI55pPejWkWI2LWAX0CwawRvEU4Ui44dAIDH8Dx547tzu09f694h\n7F+zByDVtd/B0qzj14/1iuo1MmmU2LWAv0CwawRnNhNCaExQDADgITxP/rHz/PZjJalxupVz\nB+k0CrErCnhO1rnm7CcySra47xKK4DhFqIVg1wh07AAAPOvfe/K++uVK5+iQd+cO0muR6jxg\n44XPy23l96RO7RzWRexawI8g2DVC6NjhlGIAAB7x4d6L67OKkiK17z88ODJUKXY5UlBqKf22\n4OtoTTTGTEADCHaN4DFBMQCAh6zeX/Dpz4XxevXKeYOidSqxy5GID069L4yZUMs1YtcC/gXB\nrhGcBR07AAAP+OLw5VU/5seGqd+fP6RDOCKIZ/xcsv90xam+Mf1GJGaKXQv4HQS7RtR27MIQ\n7AAA2u6b4yXv7L4QEaJ8d+6gxAikOs+wu+1rfv1ETssX9Xlc7FrAHyHYNYK3mIlcTqnVYhcC\nABCodpwofe3bc3qN8r2HB3eJwRRrHrPxwoZKR+XU1HuTdEli1wL+CMGuEZzZgtmJAQDabO/Z\nsr9/c1arkr09Z2BKLI5X9pgr5svfFn4brYm5L+1+sWsBP4Vg1wjObMJcJwAAbbPv/PUXtpzW\nKGTvzh2UnhAmdjnSwRP+o1MfsJz70T6L1DLsU4LGIdg1gjdbMDsxAEAbHMk3PL/ltEJG/+PB\n/j0T9WKXIyn7in86YzjTP3bA8A7Dxa4F/BeCXUO82807HOjYAQDcquzCymc3niCEvHp/v/5d\nIsUuR1Jsbtvas2vktPyxPovErgX8GoLdTSwWgvOJAQDcotNXjM9uPMHz5NX7+w3vFi12OVKz\n4fz6KkfV9G4zE0MxZgKaIxe7AP9jsRLMdQIAcCt+LTE+/dlxp5t7eXqfzO4xYpcjNZdNl3cW\n7ojRxEzvPkPsWsDfoWPXEGYnBgC4JXll5v/7LMfBsMunZYztHS92OVLDE/6j0x+wPLuo7+MY\nMwEtQrC7icVKCMExdgAArVFw3fzE2myLg/nLpJ539OkgdjkStPfKnl8NZwbEDRwSP1TsWiAA\nINg1xFvMhBA6FMEOAKAFVyqtT647brIzf7675z0DceyX51kYy9qznyplysV9lohdCwQGBLuG\nOLOFEEIh2AEANKu0yrZkTXalxfn78d3vHdxR7HKk6bNz62qcxhnd7osPwT5uaBUEu5tYcaJY\nAIAWXK9xPLHumMHsXDy220MjuopdjjQVGAt2XfpvfEiHe7tNF7sWCBgYFXsT4Rg7DJ4AAGiC\n0eZetu3Y1Wr7I7elPDwqWexypInn+Y9O/5vjuccyFillSrHLgYCBYNcQJ8xjh8ETAACNMVpd\nS7+6cKXKPmt450dvTxW7HMn6/vLuC1UXhnUYPih+sNi1QCDBrtibWNGxAwBonNnhfnL98StV\n9plDOz19Z7rY5UiW2WX+7Pw6pUz5SMajYtcCAQbBriHejI4dAEAjLA73k2uz866ZxveM/r+7\nkOq8aN25T2ucNfenzYrTxoldCwQY7IptSJjuhNKhYwcA8D92F/unz3POXzXd1Tfh96MTaIoS\nuyLJyjfmf395d4eQhKmp94pdCwQedOwa4oVTiiHYAQDc4GTYP27IOXm5+rYecc9N7Y1U5z08\nz6868yHP84/1WaSgFWKXA4EHwe4mVguRyymNRuw6AAD8AsNyyzadyrlUNSw1+uUZfWQ0Up0X\n/XRtb1517oiEzIFxg8SuBQISgl1DnNmC004AAAjcLL9s08lDFyuGpES98UB/hRy/Gl5kdpm/\nKtqikqnm935E7FogUOEjehOLBSeKBQAghHAc/9K201m5FX06hb8+q78Sqc7L1pxdbWbMs9Ie\niNXGil0LBCp8ShviLRYac50AQNDjeH7F9l9/OFPWOyn87YcGapQysSuSuIvVeXuv/NBB22FS\n8hSxa4EAhmD3W243b7ejYwcAQY7nyZvfnd916mr3eN1bDw3QqjCFgndxPPf+yfd4np/XbT7G\nTEB7INj9Ru1pJ9CxA4AgxvPknzvPbztWnBqnWzlvsE6DnOF1O4t2FNYUjEwa1TOil9i1QGBD\nsPst4USx6NgBQBD79568Lb9c6RQV8s7cgXotUp3XGZ3GDefXa+SaBb0Xil0LBDwEu9/gLGZC\nCK0LE7sQAABxfLj34vqsoqRI7b/nD44KVYldTlD49NfVVsb6QPrsKHWU2LVAwEOw+w3hfGLo\n2AFAcPr80KVPfy6M06tXzhsUrUOq84Xzled+Kv6xk67z5OTJYtcCUoBg9xu8VTjGDsEOAILO\npiOX392dGxOm/vfDgzuEY5J2X2B59sPT/+YJv6jvYhmNESrgAQh2v8GbzIQQCsEOAILMNzkl\nb++6EBGifHfuwMRIrdjlBIvvCr8tqim6rePtGdF9xK4FJALB7jc4s3CMHUbFAkAQ2XHy6mvf\nnAtVyd+ZM7BrDP5n6yNGp3Hjhc+1cu3DvRaIXQtIB4Ldb1mFUbEIdgAQLH48d/2Vr3/VqmTv\nzhvcvQOGjvnOJ2c+tjHW2T3mRKojxa4FpAPB7jdq57HD4AkACA77L5Q//+UppZz+x4MDeiQg\n1fnO2cqzP5fs7xzWeWLy3WLXApKCQzVrlSZ2rLtsmPUgISSxtFi8cgAAvO5IvuG5L08pZPQ/\nZw/o1zlC7HKCCMuzH536gBCyqM/jMgrnagNPQseuSfWjHgCAxGQXVj678QThyav39xvQBbsC\nferr/O2XTEVjOo3tHZ0hdi0gNQh2hCDDAUCQOVNsfHbjCY7nX72/3/Bu0WKXE1yqHdWbc7/Q\nyrVze84TuxaQIAQ7AIDgcrak5qn1x51u7sV7+2SmxYhdTtD5+MxHNrdtTs95ERgzAV6AYAcA\nEEQulpn/77PjDhe7fFrGuN7xYpcTdE5VnMwqPZASnnJX14li1wLShGAHABAsCq6bn1h7zOxg\nnp3U844+HcQuJ+i4Ofeq0x9SFLWozxKawu8veAX+sAhpYgAsRsUCgJQUV9qeWn+8xu7608Qe\nUwcliV1OMNqev7XYXDy+04T0yHSxawHJQrCrlVhaXD/JIdUBgJSU1TieWHfMYHYuGdd9+pBO\nYpcTjAz2is15m3VK3RyMmQBvwjx2vxFTVOByuUJxrlgAkJByk2PJml/KjPbFY7vNyewqdjlB\n6uMzqxxu+4J+f9Cr9GLXAlKGjh0AgJRVWVxPrD12tdo+f3TKw6OSxS4nSJ0sP3H46qHU8NQJ\nne8QuxaQOAQ7AADJMlpdf1ibfdlgnTW886IxqWKXE6TcnPuj0x9SFLW4L8ZMgNfhLwwAQJrM\nDvdT648XllumDEx66g4crS+ary5+WWopubPLXd0j0sSuBaQPwQ4AQIKsTvdT647lXjPd3T9x\n6eSeFCV2QcGqwl7xVd4WnVI3u8ccsWuBoIBgBwAgNQ6G/dOGnHOlNWN7xf+/Kb1oxDrxfHTq\nAwfreLjXgjBlmNi1QFBAsAMAkBQnw/5xQ86Jy9W39YhbMaMPTSPViSanPOeXsqPdIrqP6zRe\n7FogWCDYAQBIB8Nyf9186nhR1bDU6Jdn9JEh1YmH4ZiPhTETfR6n0DQFX0GwAwCQCDfL/3XT\nqYN5FYOTo954oL9Cjm94MW3J21xqKZ3YdVK3iO5i1wJBBB97AIAqH0BMAAAgAElEQVQANmnl\nceECx/EvbTt9ILe8T6fwNx7or0SqE1WZ9dpXF7foVeEPYcwE+BY++QAAgWrM6wcIISP/9iPP\nk9e+PffDmbLeSeFvPzRQo5SJXVqw+/jMKhfrmt9rQYgiROxaILgg2AEABLw3d5z7Jqeke7zu\nXw8N0KpwrkiRHbl2OLvslx5RPW/vNEbsWiDo4PMPABCQhi3fXXd5a3ZxSpxu5bzBYRqFiCUF\nrSnb77554fnKcxTBmAnwNXTsAAACT/1UJ3h37kC9FqkOINgh2AEABBiO529eePeb+3xeCAD4\nHeyKBQAIDDan+2hB5aGLFd/mlIpdCwD4KQQ7AAC/drXa/ktBZVZu+dHCSsbNNXPPYct3H3np\nDp8VBgKH2y52CQD/g2AHAOB3OI4/U2LMyq3ILqy8cNUkLEyM0IxIi9185HIzD0S28yWTy7Sj\n8NvvCr8VuxCA/0GwAwDwFzU25lhRZVZuRVZuudnhJoQo5fTg5KjMtJjR6bHx4RpCyDN3pdfd\n32az2Ww2vV6vUGDYhE9VO6p3Xdr5df52m9umkWvELgfgfxDsAABEVlhuOZhX8UtBZc6lKpbj\nCSERIcq7+iZkpsUMT43GvHR+pcx67dvCb3Zf2uViXXpV+AOpU6ekTH1gx31i1wVQC98XAAAi\ncDLs6WLjgdyK/eevX69xEEJoiureQSf05/p0jMBZ4/1NYU3h1/nb9pfs43guThs3JeWeO7rc\npZQpCSHfTN0h3KempoZhmOjoaFErhaCGYAcA4DtlRvuR/MrswspDFyvsLpYQolHKMrvHZKbF\nZqbFROtUYhcIjThXefari1uyy34hhHQJ6zq127TRSbfJKJy3DfwRgh0AgHdxPJ93zZyVW56V\nV5F7zSRMQpcYoRncJyqze+zQ1CiFDFOK+iOe57Ov/7I5d1NedS4hpEdUz+ndZgyOH4LzSYA/\nQ7ADAPAKu4s9XlSVlVd+4EJFpcVJCJHRVEbH8JFpsSPTYrvE4Nzw/ovl3PtL93+V92WxuZgQ\n0jem3+weD6VH9hC7LoCWIdgBAHhSabU9K7c8K7fixOUqN8sTQsK1yrG94kd0jxmVHhuqxreu\nX3Owjh8u7d6Wv81gr6AoanD8kAfSZ6eGp4pdF0Br4SsGAKC9WI7/tcSYlVvx84XyywarsLBr\nTGhmWkxmWkxGx3AaQyH8ns1t+2/Rzq0Xt5hdZgWtuL3jmPvTHkgITRC7LoBbg2AHANBGRqvr\n0EXDwbyKI/kGq9NNCFErZMKw1tt7xsWGqcUuEFrF6DT+t2jH1wVf2xirRq6ZnDJlereZkepI\nsesCaAsEOwCAWyNMO3cgt/xMsVEYCdEhXDM+Iz6ze+zQlCiFHCMhAka5vfzL4k3/m5Qu/cHJ\nKfeEKkLFrgug7RDsAABa5mDYY4VVWXnlB/MMFSYHIYSmqbQOYcJMJekJYWIXCLemsKZw+8Wt\nP5fu53guVht3T71J6QACGoIdAECTSqvt2QWVWbnlRwsrGTdHCAnTKISRECPTYnQanMgr8AiT\n0h0ry+YJnxTScUb6TExKB1KCYAcA8Bscx58pMWblVmQXVl64ahIWJkZoRqTFjkyL6d85Ui7D\nSIjAI0xK92Xe5tyqC4SQHlE9702d3l2TFhEeIXZpAJ6EYAcAQAghNTbmWFFlVm5FVm652eEm\nhCjltDASYnSPuHg9RkIEqhuT0m0pNl8hhPSI6vlg+uy+Mf04jjOZTGJXB+BhCHYAENSEkRC/\nFFTmXKpiOZ4QEhGivKtvQmZazPDUaK0KX5IBTJiUbnv+tor/TUr3YGp4N7HrAvAifGcBQNBx\nMuzJYtPJo+X7z1+/XuMghNAU1b2DThgJkdYhDLPOBTqb27b38g9bLn5Z7aiW0/LbO465L21W\nYmii2HUBeB2CHQAEizKj/Uh+ZXZh5aGLFXYXSwjRKGVCmMtMi4nWqcQuEDzg5knp7u02I0od\nJXZdAD6CYAcAUsZxfF6ZOSu3PCuvIveaSZh2LjFCM7Bn2Pi+Hft1jlDIMO2cRJRZy74t/PrG\npHR6TEoHwQnBDgAkyGRnsgsrswsrD1yoqLQ4CSEymsroGD4yLXZkWmyXmJCqqqrISJxaQCKK\naoq252/dX7KvblK6CV3uVMnQgoVghGAHANJRWm3Pyi3Pyq04cbnKzfKEkPAQpTDt3Kj02FA1\nvvGkpv6kdJ3DOk/rNh2T0kGQw9ccAAQ2l5s7daX6l4LKny+UXzZYhYVdY0Iz02Iy02IyOobT\nGAoRsKZsv7upm54b9sKWvM0Xqi4QQlLDU6d3m/m7xBEUwXsNwQ7BDgACktHqOnTRcDCv4ki+\nwep0E0LUCpkw7dyYnnExYZh2TuL+dmQFIaRHVM/p3WYMiR8qdjkA/gLBDgACiTDt3IHc8jPF\nRmEkREKEZnxGfGb32KEpUQo5RkIEi8HxQ2alPdAtorvYhQD4FwQ7APB3DoY9VliVlVeelVth\nMDsJITRNpXUIE2YqSU8IE7tAEMHzw5aLXQKAP0KwAwA/VVptzy6ozMotP1pYybg5QoheqxBG\nQoxMi9FpFGIXCJ7Hcu4iU1FuVe7F6rw8Y67Y5QAEHgQ7APAjHMefKTFm5VZkF1ZeuFp7Hs/E\nCM2ItNiRaTH9O0fKZTg6XmqqHFX5xovnK8+dqzpXYMx3sS5huYzGLxTALcPHBgDEZ7S5jhdV\nZeVWZOWWmx1uQojqxkiI0T3i4vUYCSEpdre9qKawwJh/rurcr4Zfa5zGupviQ+J7RPZMDU9N\nCU/tFtF9+jdTRawTIBAh2AGAaISREL8UVOZcqmI5nhASGaq8q29CZlrM8NRorQpfUBLB8myp\npSTfmH++8ty5ynMllmJeGPlCSIQ6YnD8ECHJ9YjsqVPqxC0VINDhexMAfMrJsKeLjQdyK/af\nv369xkEIoSmqewedMBIirUMYZp2ThmZ2sKboU3pE9UwJT00NT+2k69zMSr6ZukO44HK5TCaT\nVqvVarVeLx0gkCHYAYAvlBntR/IrswsrD12ssLtYQohGKRPCXGZaTLQOZ38KeDa37VJN0fmq\n8+cqz+ZV5zW1g7V7RJocB88BeA0+XQBwCyatPP7jX0a28s4cx+eVmbNyy7PyKnKvmYSdb4kR\nmhEDYkemxfTrHKGQYdq5ANbsDtZI7GAFEAWCHQDcmjGvHzjy0h3N3MFkZ7ILK7MLKw9cqKi0\nOAkhMprK6Bg+Mi12ZFpsl5gQX1UKnifsYD1RmlN4trD+Dla1TJ0e2UNIci3uYAUA70GwA4DW\nGvm3H5u5tbTanpVbnpVbceJylZvlCSHhIbUjIYamRIeq8W0TkLCDFSCw4HMIALds2PLdQtPO\n5eZOXan+paDy5wvllw1W4dauMaGZaTGZaTEZHcNpDIUINMIO1vOV589Vns035peYi3nScAdr\nrCxuSOeh2MEK4IcQ7ACgVYYt313/6s6TVw/mVRzJN1idbkKIWlE7EmJE9+iYMEw7F2CaGsGq\nlqnToxrZwVpVVYVUB+CfEOwAoEkWh7vG5qqxMwtWHWlw04ptZwghiZHau/snZnaP6d85QiHH\nSIiA8dsdrLk1zhphOU3RiaFJqeGp2MEKEKDwiQUIOgzL1diYGjtjsrlq7IzJxhhtTI3dVWNj\namyMyV572WRnhEmDm7LpiczO0RgJERhas4M1JTy1Z1SvUEWouKUCQHsg2AFIR12DrTafCbnN\nztTYmBqby2hjauxMjc0lTCPXjBCVXK9VdAjXhGkUeq1i9+lrjd7t/pVZzQ+PBS+Zsv3upm6q\nm9GXEFLlqDpfee5c1dl8Y35rdrACgAQg2AEEALOdqTA7zQ7GbHeb7IzZwZjtjMnhNtsZg9lp\nMDvNDqbGxjAs1/x6lHI6RqeKileFqRU6jUKnUYSp5TqNQqdWhGkU0TpVtE6l1yoaTC/XVLAj\n9UZRgJ84V3kWO1gBghk+2wCicTKs2VEX1NwGs9NgdghxzWxnTA7GbHebHUyVxcXxze0SVcrp\nMI0iKVKr08iFxCZENCGu6TRy4UJkqLINY1QbjJkAP7f0wLPChWhN9PCE36VFpHWPSEsNT1XL\nNeIWBgC+gWAH4HlOhjVYXAazo67BZjBa7CxldbJmO2OwOA1mZ+sbbL076m+pweZZ9RtyDMPU\n1NTgfJ0e52JdNrfNxthsbpuVsVgZq81tszM2YaHVbbMyFtuNq3a3rZlVTe82o3tkeveI7lHq\nKJ/VDwD+A8EOvK49e+smrTxOfpstRNSgwWayM5UWZ4XZ6VcNNhCdhbHYGGtdULMzdpvbZmEs\nVsZqv7FQyGeW2gxnZzl3K1euVYRo5c2l6nm95nviRQBAoEKwE01AHJwk7IZrT53CGtr2Yn22\nE/DmBlvdEWyearDJeSYxOiwuXKvXKDAtSABxsS4LY7EwZovLYmEsFsbCsIyLdQqX6y10OVmX\nhbHUOI0c38LfSR2lTBmiCE0IiQhVhoYqQpUypZJWCpdDFaEhytBQRahKplLQilBlaKhCp1fp\nZZSMNDt4AgCCHIJdQ+PePOj/easZQhjat2y0p1blD9qWC/2qwWYymbRarVyOT5xo6iKai2Vc\nrPNa1TXKSllvJDMX67pxh9q4ZmUsdcNIWyRENJVMmRiaVJfMbsQ1lZJWhPxmoU4pU2JWEQDw\nBvzM/Maov//kmydqTx+rNW57df9PS0d5am1trrN+NLzVlTSIlfUf7sEGW5hG0b2DLjpUdfMR\nbDqNPFqnjtWp0GBr5eQavuSDRlqcNr61jTRlmAyDTAHAP+DLqBHe3knqvU6YB9fs1Xady805\nGdbqYlmWMzvcDMs5GNbmYt0sZ7a73Ry37urjsf0bPmrK9net554RTmDVDI1Sptcqk2NDw7UK\nvVap1yrCNAq9RqHXKoVZ2fRapV6jwDnp/USDRpoQyHzQSHM72fBQfYA20urytM1ms9lser1e\noVCIWxIA+An8thFSryFRFyambH+XeKEbITxR/cjiqSe6ec33725hzXYX62Y5p5tzujmW42xO\nlhBidjCEkJdPz22Qq4Q6Z0a/Z3W6685GYHG4hcnrOZ5YHbV5i+V4q9N9Wb+8QT11Kyk/8WSL\nL+fmVCeICVOlanS1WU2r0GuU4VpFmPZGaNMovD1EFJp3q400k7OG5VuYLbmOZxtpVVVVkZGR\nHnrdAAD+AsHOY6xON1fv/EtWp5utd+CW1cE0c3Kmfeev1z93k93F1n+wg2Hr71V0ujkn87/f\nQjfL2Zkmfxof/c9RhuUYlne43BxPLE43IcTqcDd/VFlTuer9H/KaeVRr1kAI6ZEQFqpWKGS0\nRinTKGVyGaVTK+QyWquUqRUyhYx+7duzTT32iz9ktrKAAMUT3spYb15uY2w370l0sk6GYxos\ndHNuJ+touFq+idW6G12tg2n1IM1n9j1luTETh/sWh3bqFLo4baxWrtUqQkIUISGKEI1cq5Vr\ntYraf0MUoSEKrVau1ci1SpmylSsHAAhm/hXsLBbLqlWrTp8+zTBMWlra4sWLY2NjRazn/pVZ\n7nqJyuZi3fXil61e76qVmoo7S7842aYCW17zmWIjIUSnlhOK0iplYWq5Ui5LjNDIaEqrlBNC\nwjQKQohWJZPRlEouU8ppuYzeYWp8bW/PGcgTt5t3EUJC1bW7fmiKaFW1l+U0pVHShJDH9jZZ\n6t9nd7Y1NhEXw9pdXAu72IYt3/3Px0IIIU7OybCNZBpH45nGcvOq7G77zb0iF+u6uQaWY+1u\n+81raHS1TUQll8vtpH47tMLNs47GVhtYLpkuCSEsVhsrxDWtXKu5kcxCFaG1KU2u1Sq0GrlW\nCHBiVw0AIFn+Fezefvtti8WyfPlylUr1+eefr1ix4t1336Vp0fas2RPe+t8ViigIUdReJISQ\n+nNJNfjNbjA2su7GZhoaSQP+0+DOja6Kp4iTbW560pvF9n+39rGEMIQwhDTSuuEJYQlhCXGS\n8hNPNhUTn15/vG5tzWhmDYSQe98808xKWtxR+3r2qy0WIAqtXEtTDf9WVTKVQqZQyZQKSk5R\nlPB3Iqflapm6wT0pim50fjKtoonV0g2PqZLTCrVMdfNqGw1STVbbyGrlfz/68s1rEGyd8nVT\nNwEAgO/5UbAzGAzZ2dlvvfVW165dCSGLFy+eM2fOmTNn+vbtK1ZJ5acfGzz6m5t3bLVZmbXJ\nDk2kNqzR5TJKpmnpXECHfprYTFRKDU9tZXnCqpq/Q9+Yfk3dJKNojUJLCCGJOQdLm1zDnGl5\nhNxZf8lv8kS3q4SQry42/tg/P2RW0otu3isno2Ua2U1biSKNHgivuYVMI7v5REwUodrQc8J0\nJwAA4AN+9DNz8eJFhUIhpDpCSGhoaFJSUm5urreD3bDlu5tpL60c875Hn6jJ+HU66762D8W9\nrXZcws2OvHQHIbey2tsIIR5Y25TSJifI+H2/J1p8+FcXtzS6fHq3Ga15dgAAgODkR8HOZDLp\ndLr6+zT1en1NTU3d1aysrBdeeKHuamxsrNFobP85K3c8OWj+gSZvqqysbOf6W/lEhBAPPlcd\nz67TI2trz0q8sYl8g+d5hml4UKAEBPQ7ErjFN2AyNXFUrNf4fuvxPE8Isdvtdrsnj0z10gtp\nzzp5nq+urm5nAVVVVe1cQwMsy/LNDrkD/+FHwY7cdKRaA3K5XKfT1V2laZqiKK8egeezw/u8\n90SeXbNH1taelYh4wGU7cRxXd4xdwFk7+jPhAs/zHMcJHz1xS2o/4YWIXUV78TzP87zvX4jv\nt57wt+fxD5HHXwjHcaR931TtLKn9BUCg86NgFx4ebjKZeJ6v+9zW1NRERETU3WHYsGFff/2/\nI7UXLVqk1+vr36HN6iZ7c7lcLpcrNNRbM5R6b5r+Bmt2OBw8z2s0LRyc18q1+X4NdQ83GAxy\nuTw8PLyd9YhOGsfYMQxTU1OjVqvb3ykXXVVVlUe+PcQlTFAcGhrq4wmKfb/1XC6XyWTy7N8e\nx3Emk8mzXy81NTUMw7Rn4xiNxrCwsDYnM5PJ5HK5wsPDPZuAZTKZBP47FyT8KNR369aNYZiC\nggLhqslkKi4u7tGjh7hVAQAAAAQKPwp2kZGRw4cPf//994uKikpLS996662UlJSePXuKXRcA\nAABAYPCvHUNPPvnkqlWrXnzxRZZle/Xq9dxzz6H3CwAAANBK/hXstFrt008/LXYVAAAAAAHJ\nj3bFAgAAAEB7INgBAAAASASCHQAAAIBEINgBAAAASASCHQAAAIBEINgBAAAASASCHQAAAIBE\nINgBAAAASASCHQAAAIBEINgBAAAASASCHQAAAIBEINgBAAAASASCHQAAAIBEINgBAAAASASC\nHQAAAIBEINgBAAAASASCHQAAAIBEINgBAAAASASCHQAAAIBEINgBAAAASASCHQAAAIBEINgB\nAAAASASCHQAAAIBEINgBAAAASASCHQAAAIBEyMUuoF22bdum1+s9uEKWZVmWVSqVHlynKNxu\nN8/zCoVC7ELay2q10jSt0WjELqS9nE6nQqGg6cD+rxTLsg6HQ6lUSuBPy2azabVasatoL4Zh\nXC6XWq2WyWS+fF7fbz1v/O3xPO9wODz79eJwOFiWDQkJafMa7Ha7Wq2mKKptD3c6nW63W6vV\ntnkNjaqqqvLg2sCrKJ7nxa6hjX7++WeDweDZdfI8z3Gcj78ivYHjOEJIoMcIQsiOHTv0en1m\nZqbYhbQXy7I0TXv2q9b3Kisrjxw5kpKSkp6eLnYt7eV2u+XywP6fLSEkNzc3Pz9/yJAhMTEx\nvnxe32+9ioqKX375JTU1NS0tzVPr5HmeZVnPvpBDhw5VV1dPnDixzR92t9stk8na/PCjR48a\nDIYJEyZ4/H9fkyZNkkDXIxgE8PfaqFGjxC4BvO7VV1/t1avXvffeK3YhQAgh2dnZH3300cCB\nA/GO+IkPPvjg1KlTixYtGjJkiNi1eNehQ4c+/vjjoUOH+vnf3nfffXf69OmPP/5YrP9X79u3\n79SpU2+//bZOpxOlABBdwHd0AAAAAECAYAcAAAAgEQh2AAAAABIRwIMnAAAAAKA+dOwAAAAA\nJALBDgAAAEAiEOwAAAAAJCKA57EDSSotLX3rrbfy8/O3b99et9Bisaxater06dMMw6SlpS1e\nvDg2NlbEIoNHVVXV6tWrT5065XK5kpOT58+f3717d4J3RGx79+595513/vrXvw4bNoxI9+3Y\nuXPntm3bKisrExMT586dO3jwYOJnL7akpGTNmjW5ublut7tr165z5szp2bOnD4q8pe9Jv9pi\n4APo2IEfOXDgwF//+tekpKQGy99+++3y8vLly5e/+eabWq12xYoVwqk1wNv+9re/GQyGl156\n6e23346Ojl6xYoXD4SB4R0RlNBrXrl1b/xwAknw79u7du2nTpkWLFn344Yfjxo37+OOPbTYb\n8acXy/P8ihUrIiIiVq1atXbt2t69e7/44otms9nbRd7q96T/bDHwER7Ab+zdu7e8vPzw4cP3\n3HNP3cKKioopU6YUFBQIV81m89SpU0+ePClSjUHEZDK98sorV65cEa6Wl5dPnjw5Ly8P74i4\nXn311U8++WTOnDmHDx/mpfsBefTRR/fu3dtgoV+9WKPROHny5PPnzwtXq6qqJk+enJub6+0i\nb+l70q+2GPgGOnbgR8aMGXPzKS8vXryoUCi6du0qXA0NDU1KSsrNzfV5dUFHp9MtW7asY8eO\nwtXKykqapqOjo/GOiOjw4cMFBQUPPvhg3RJJvh2VlZVlZWWEkCeffHLmzJl/+tOfLly4QPzs\nxer1+vT09F27dpnNZofDsWvXrri4uC5duni7yFv6nvSrLQa+gWAH/s5kMul0uvqnxNbr9TU1\nNSKWFITMZvPKlSunTp0aERGBd0QsFovlww8//P3vf69Wq+sWSvLtqKysJITs2bPn2WefXb16\ndVpa2ksvvVRTU+NvL3bp0qX5+fmzZ8++7777du3atXTpUqVSKUqRTT2pv20x8AEEOwgA9b+V\nwPdKSkr+9Kc/9e7de968ecISvCOi+OSTTwYMGNCvX78Gy6X6dtx///1JSUk6nW7BggUURR07\ndoz404t1u90rVqxIT09fv379F198MXny5OXLl1dXVxORimzqSf1ni4FvINiBvwsPDzeZTHy9\nU6TU1NRERESIWFJQOXXq1F/+8pfJkyc//vjjwi8E3hFRnDx5MicnZ8GCBQ2WS/LtiIyMJISE\nhIQIV2UyWWRkZHV1tV+92DNnzhQVFS1cuFCv12u12hkzZqhUqqysLFGKbOpJ/WqLgW8g2IG/\n69atG8MwBQUFwlWTyVRcXNyjRw9xqwoS586de/3115955plJkybVLcQ7IooffvjBarUuXrx4\n9uzZs2fPrqmpeeutt1599VVJvh2RkZERERHCcXWEEJfLVVFRERcX51cvVjhQvf4IU7fbTUT6\ngDT1pH61xcA3ZC+++KLYNQDUqq6utlqtly9fzs7OHjdunM1mo2lap9Ndvnz5p59+SktLs9ls\n//73v0NCQmbPno39C97mcrleeOGFO++8c8CAAbYb8I6IpU+fPnfVs2/fvvnz50+bNi08PFx6\nbwdFUSzLbtmyJTk5WS6Xf/rpp+Xl5YsWLfKrvz29Xi8MUBXmrvv6669zcnIWLlwYGxvr1SJv\n6XtSq9X6zxYD36Dqd2gBxLVw4cLy8vIGS6ZMmWKz2VatWnXixAmWZXv16rV48WLsSvCBU6dO\nPf/88w0WLlq06O6778Y7Irq5c+cuWbJEmKBYkm8Hx3GfffbZnj17LBZLWlrakiVLhAHafvVi\nL1++vHbt2ry8PJZlO3Xq9NBDD2VkZHi7yFv9nvSrLQY+gGAHAAAAIBE4xg4AAABAIhDsAAAA\nACQCwQ4AAABAIhDsAAAAACQCwQ4AAABAIhDsAAAAACQCwQ4AAABAIhDsAETw4osvUhQVGxvL\nMMzNty5cuJCiqMzMzLatfNasWaGhoa25Z2ZmZnp6elO3GgyGV155ZeDAgdHR0QqFIjY29s47\n79y9e3fdHYYNG9bMw9ujsrKyS5cujzzySN2SrVu33nfffcLlioqKhIQEbzxvA63fkk157rnn\noqKiLl265KGKAABaIBe7AIAgRdN0VVXVjh07pk6dWn+53W7/8ssvFQqFWIUJqqqqBg8eXF5e\nvmDBgmeeeUYmkxUUFKxevXrixIkbNmyYNWsWIWTWrFl2u93jT81x3IMPPqjX69977726hTk5\nOf3797/5sp976aWXDh06NGPGjIMHD6pUKrHLAQDpQ7ADEAdN00OGDFmzZk2DYLdt2za73d63\nb1+xChOsXbv20qVLX3zxxf3331+3cMmSJRkZGUuXLr3vvvtomn766ae98dSff/75999/v2/f\nPo1GU7fw+PHjdU+Xk5MzYMAAbzy1x8lksvfff793797vvffeH//4R7HLAQDpw65YAHG43e5J\nkybt3Lnz+vXr9ZevXbv29ttvb9Dd+e9//ztq1CidTqfRaHr37v2vf/2r7mSAPM+vWLGiY8eO\narU6IyNjy5YtDZ5o//7948ePDwsL02q1AwYMWL16dWvKu3btGiFk4MCB9RdGREQcOXLk/Pnz\nNE2Tertijx07RjXm119/vdUaWJZ9+eWXR40aNXr06PrL64e5ZoLdqFGjRo4ceeLEibFjx4aF\nhcXGxj7wwAP1T6zppS157dq1Rx99tHPnzmq1Oj4+fvr06RcuXBBu6tGjx4wZM9544w2r1drU\nqwYA8BgeAHxu+fLlhJCLFy/SNP2Pf/yjbnlJSQlN06tXrx42bNiIESOEhdu2baMo6s4779y+\nffuePXueeeYZQsif//xn4dbXX3+dEDJ79uwffvhh06ZNvXv3TktLCwkJEW7ds2ePTCYbNWrU\nt99++/333y9evJgQUveMI0aMSEtLa7TCjRs3EkKmTZtWXV3d1KsYOnSo8HCTyfRDPd99911M\nTExSUpLRaGyxhgb2799PCFm9erVw9c0331SpVELMVd1AURO3DzAAAAfJSURBVJRwoaSkpMHD\nx44d27Fjx8GDB//www/Xr1/fsmWLTCabN2+et7fksGHD4uPj//Of//z4448bNmzIyMiIjY21\nWq3CrTt27CCEbNq0qaktCQDgKQh2ACIQgp3dbh83blyvXr3qlr/22msajcZkMg0dOrQu2KWn\np3fq1MnpdNbdberUqQqFwmAwcByXkJDQu3fvupuuXr2qUCjq4kj//v1TU1PrEgbP81OmTNHp\ndHa7nW822LEsKwxWUKlUEydOfP31148cOcKybP371AW7BubPn69SqY4ePdqaGhp4/vnnCSEN\nEtuWLVvuvfde4XJZWVlCQkKjNfM8P3bsWEJIVlZW/SV19/fSlqypqSGELF26tO6m/Pz8V155\npbS0VLhqtVqVSuUjjzzSVNkAAJ6CXbEAYnr44YfPnj2bnZ0tXF27du3UqVN1Ol3dHa5evXrh\nwoWJEycqlcq6hZMnT2YY5siRI8XFxVevXh0zZkzdTR06dBg0aJBwuby8/MSJE3fffTdN044b\nJk6caDabz5w503xhNE1v2rRp165d06dPP3ny5F/+8pdhw4bFxcUtW7bMZrM188APPvhgzZo1\n77333pAhQ9pQQ05OTlxcXGJiYv2FBw8erBsjfPDgwd/97nfNFKDVakeMGFF3NSkpqaysjHhz\nS2o0mqioqI0bN+7du5fjOEJISkrKsmXL6obuarXa9PT048ePN1M2AIBHINgBiGnatGk6nW7N\nmjWEkOzs7PPnz8+dO7f+HUpLSwkhDYJOhw4dCCFXr14VIktMTEz9W+vyxNWrVwkh77zzjqYe\nYR9iSUlJa8q74447NmzYUFpaWlBQ8PHHH/fo0eO1114bN26cEF9udvjw4aeffvqxxx5buHBh\n22qoqKiIjo5usDArK6suq2VlZTUf7BpsDblcLlTrvS2pUCi+/vprmqbHjRsXGxs7Y8aMzz//\n3O12119VdHS0wWBopmwAAI/AqFgAMWm12pkzZ27cuPFf//rX2rVrO3ToMH78+Pp3oCiKENIg\nSPE8TwihaZq/ceB/fSzL1r+6YMGCRx99tMF9UlNTb6nO5OTk5OTkRx55ZOHChatXr87Kyho1\nalSD+5SVlc2YMaN///4rV65scFPrazCZTJGRkXVXk5KSDAaD0+msezqXy6VQKJYtW/bggw+2\nciCIwKtbcsSIERcvXty/f/9///vfnTt3zp49+6233vr555/rBvaGh4cbjcbWVwsA0DYIdgAi\nmzdv3urVq7///vtNmzbNmzdPJpPVvzUpKYnc6DbVEa4mJSUJHSah21SnbjrcTp06EUJYlh02\nbNgtleR0Ords2RISEtJgKhaKokaPHr169eri4uIGD2EY5r777mNZ9quvvqq/r/NWawgLCxMO\nWROUlJQcPnz42WefPXDgACHE7XZHREQYDIY2zAnn7S0pk8nGjBkzZsyYN99884MPPliyZMnm\nzZvnzZsn3Go0GvV6/a3WDABwq7ArFkBkI0eOTE5Ofvnllw0GQ4P9sISQ+Pj43r17f/fddw6H\no27h1q1btVrt8OHDu3TpEh0dvWvXrrpGVF5e3qlTp4TLkZGRQ4YM2b59e/1e0bp165577rkG\nOwobUCqVL7300mOPPVZYWFh/OcuyX375JSGkT58+DR7yzDPPHD58ePPmzQ32dd5qDTExMQ12\nWZ48ebJfv37C5XPnzqWkpLRtpl/vbcnjx4/PmjWr/qQqEyZMIIRUVFTULTEYDA328wIAeAOC\nHYDIKIqaO3fusWPH+vbte3NgIoS8/vrrZWVl99xzzzfffLNr164lS5bs2rXr+eefDwsLo2n6\n8ccfLygomDlz5tatWz/88MMJEybUn+PtjTfesNlso0ePXrdu3ffff//8888vXLiwtLRULm+u\nW09R1KpVq+x2e79+/R577LF33333k08+efnllwcMGPDdd9898cQTGRkZ9e+/efPm99577957\n73W5XHvqEXLhLdXQr1+/69ev1++r1Q92J06caM/UxF7akomJiTt37hw/fvzq1av37NmzadOm\nuXPnhoWFTZs2TXiszWbLzc0NlLNlAEBgE3dQLkBwqpvuRLhaWFhIUdQ///nPujvUn+6E5/nv\nv/8+MzMzJCREpVL179+/bpo3nufdbvfSpUvj4+OVSmVGRsa2bdv+8Ic/KJXKujscOHBg/Pjx\nOp1OoVB07979jTfeYBhGuKmZ6U54nj979uyCBQuEDplcLo+Li7vrrru2bNlSv0jh4U899VSj\nXy/Lly9vsYYGfvrpJ0LImjVr6j/LsWPHhMtPPfXUypUrm9mwY8eO7dy5c/0lwglnvb0lT506\nNW3atNjYWIVCkZCQMG3atJycnLoH7ty5kxCycePGZioHAPAIim/skGEAAFG43e709PSOHTsK\nCU8aHnjggT179hQVFYWGhopdCwBIHHbFAoAfkcvlL7zwwr59+4TREhJw4cKFzZs3P/vss0h1\nAOAD6NgBgH/hOO6OO+4wGAyHDx9Wq9Vil9MuHMdNmDChqqrq0KFDgf5aACAgoGMHAP6FpumN\nGzdWV1f//ve/F7uW9nrxxRdzcnK++uorpDoA8A107AAAAAAkAh07AAAAAIlAsAMAAACQCAQ7\nAAAAAIlAsAMAAACQCAQ7AAAAAIlAsAMAAACQCAQ7AAAAAIn4/x1wRsGOgTQZAAAAAElFTkSu\nQmCC",
338 "text/plain": [
339 "plot without title"
340 ]
341 },
342 "metadata": {
343 "image/png": {
344 "height": 420,
345 "width": 420
346 },
347 "text/plain": {
348 "height": 420,
349 "width": 420
350 }
351 },
352 "output_type": "display_data"
353 }
354 ],
355 "source": [
356 "RQ1Plot <- RQ1 %>% ggplot(aes(x=n, y=time, color=name, shape=name)) +\n",
357 " scale_color_brewer(name=\"Calls\", palette=\"Set1\") +\n",
358 " scale_shape_discrete(name=\"Calls\") +\n",
359 " scale_x_log10(name=\"Model Size (# nodes)\", breaks=c(10, 20, 40, 60, 80, 100)) +\n",
360 " scale_y_continuous(name=\"Runtime (s)\") +\n",
361 " geom_line() +\n",
362 " geom_point(size=2) +\n",
363 " theme_bw()\n",
364 "ggsave(plot=RQ1Plot, filename='plots/plot_RQ1.pdf', width=5, height=1.5*5/4)\n",
365 "RQ1Plot"
366 ]
367 },
368 {
369 "cell_type": "markdown",
370 "metadata": {},
371 "source": [
372 "## RQ2\n",
373 "\n",
374 "In RQ2, we will have to create 3 different plots, so we factor them out into a function."
375 ]
376 },
377 {
378 "cell_type": "code",
379 "execution_count": 47,
380 "metadata": {},
381 "outputs": [],
382 "source": [
383 "RQ2Plot <- function(df, name) {\n",
384 " df <- df %>% gather(name, value, -n) %>% filter(name != \"preprocessingTime\")\n",
385 " df$name <- factor(df$name, levels=rev(c('ForwardTime', 'BacktrackingTime', 'StateCoderTime', 'NumericalSolverSumTime', 'additionalTime')))\n",
386 " plot <- df %>% ggplot(aes(x=n, y=value, fill=name)) +\n",
387 " geom_bar(stat='identity') +\n",
388 " scale_fill_brewer(palette='Set2',\n",
389 " labels=rev(c('Refinement', 'Backtracking', 'State Coding', 'SMT Solver Calls', 'Additional Model Generation')),\n",
390 " guide=FALSE) +\n",
391 " scale_x_continuous(breaks=c(20, 40, 60, 80, 100), name=\"Model Size (# nodes)\") +\n",
392 " scale_y_continuous(name=\"Runtime (s)\") +\n",
393 " theme_bw()\n",
394 " ggsave(plot=plot, filename=paste0('plots/plot_RQ2_', name, '.pdf'), width=3.5, height=2.5)\n",
395 " plot\n",
396 "}"
397 ]
398 },
399 {
400 "cell_type": "markdown",
401 "metadata": {},
402 "source": [
403 "In order to create the plots for RQ1,\n",
404 " 1. we first parse the logs for each of the 3 case studies;\n",
405 " 2. then we display the aggregated results as a table for error checking;\n",
406 " 3. calculate the median preprocessing time (in secods), which stays constant regardless the model size;\n",
407 " 4. and create a bar chart for the rest of the generation phases."
408 ]
409 },
410 {
411 "cell_type": "markdown",
412 "metadata": {},
413 "source": [
414 "### Fam domain"
415 ]
416 },
417 {
418 "cell_type": "code",
419 "execution_count": 48,
420 "metadata": {},
421 "outputs": [
422 {
423 "name": "stderr",
424 "output_type": "stream",
425 "text": [
426 "Warning message:\n",
427 "“`cols` is now required when using unnest().\n",
428 "Please use `cols = c(Solution1DetailedStatistics)`”\n",
429 "Warning message:\n",
430 "“`cols` is now required when using unnest().\n",
431 "Please use `cols = c(Solution1DetailedStatistics)`”\n",
432 "Warning message:\n",
433 "“`cols` is now required when using unnest().\n",
434 "Please use `cols = c(Solution1DetailedStatistics)`”\n",
435 "Warning message:\n",
436 "“`cols` is now required when using unnest().\n",
437 "Please use `cols = c(Solution1DetailedStatistics)`”\n",
438 "Warning message:\n",
439 "“`cols` is now required when using unnest().\n",
440 "Please use `cols = c(Solution1DetailedStatistics)`”\n"
441 ]
442 },
443 {
444 "data": {
445 "text/html": [
446 "<table>\n",
447 "<caption>A tibble: 5 × 7</caption>\n",
448 "<thead>\n",
449 "\t<tr><th scope=col>n</th><th scope=col>preprocessingTime</th><th scope=col>StateCoderTime</th><th scope=col>ForwardTime</th><th scope=col>BacktrackingTime</th><th scope=col>NumericalSolverSumTime</th><th scope=col>additionalTime</th></tr>\n",
450 "\t<tr><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th></tr>\n",
451 "</thead>\n",
452 "<tbody>\n",
453 "\t<tr><td> 20</td><td>0.8940</td><td> 0.1240</td><td>0.2330</td><td>0.1470</td><td> 5.2680</td><td> 4.4290</td></tr>\n",
454 "\t<tr><td> 40</td><td>0.8915</td><td> 0.9295</td><td>0.9555</td><td>0.6070</td><td> 19.1820</td><td> 8.1975</td></tr>\n",
455 "\t<tr><td> 60</td><td>0.8745</td><td> 2.3945</td><td>1.7300</td><td>1.0685</td><td> 37.7305</td><td>14.2310</td></tr>\n",
456 "\t<tr><td> 80</td><td>0.8810</td><td> 5.7395</td><td>3.8205</td><td>2.4985</td><td> 72.2415</td><td>17.4985</td></tr>\n",
457 "\t<tr><td>100</td><td>0.8770</td><td>11.5395</td><td>6.3625</td><td>4.5380</td><td>124.5385</td><td>31.9565</td></tr>\n",
458 "</tbody>\n",
459 "</table>\n"
460 ],
461 "text/latex": [
462 "A tibble: 5 × 7\n",
463 "\\begin{tabular}{lllllll}\n",
464 " n & preprocessingTime & StateCoderTime & ForwardTime & BacktrackingTime & NumericalSolverSumTime & additionalTime\\\\\n",
465 " <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl>\\\\\n",
466 "\\hline\n",
467 "\t 20 & 0.8940 & 0.1240 & 0.2330 & 0.1470 & 5.2680 & 4.4290\\\\\n",
468 "\t 40 & 0.8915 & 0.9295 & 0.9555 & 0.6070 & 19.1820 & 8.1975\\\\\n",
469 "\t 60 & 0.8745 & 2.3945 & 1.7300 & 1.0685 & 37.7305 & 14.2310\\\\\n",
470 "\t 80 & 0.8810 & 5.7395 & 3.8205 & 2.4985 & 72.2415 & 17.4985\\\\\n",
471 "\t 100 & 0.8770 & 11.5395 & 6.3625 & 4.5380 & 124.5385 & 31.9565\\\\\n",
472 "\\end{tabular}\n"
473 ],
474 "text/markdown": [
475 "\n",
476 "A tibble: 5 × 7\n",
477 "\n",
478 "| n &lt;dbl&gt; | preprocessingTime &lt;dbl&gt; | StateCoderTime &lt;dbl&gt; | ForwardTime &lt;dbl&gt; | BacktrackingTime &lt;dbl&gt; | NumericalSolverSumTime &lt;dbl&gt; | additionalTime &lt;dbl&gt; |\n",
479 "|---|---|---|---|---|---|---|\n",
480 "| 20 | 0.8940 | 0.1240 | 0.2330 | 0.1470 | 5.2680 | 4.4290 |\n",
481 "| 40 | 0.8915 | 0.9295 | 0.9555 | 0.6070 | 19.1820 | 8.1975 |\n",
482 "| 60 | 0.8745 | 2.3945 | 1.7300 | 1.0685 | 37.7305 | 14.2310 |\n",
483 "| 80 | 0.8810 | 5.7395 | 3.8205 | 2.4985 | 72.2415 | 17.4985 |\n",
484 "| 100 | 0.8770 | 11.5395 | 6.3625 | 4.5380 | 124.5385 | 31.9565 |\n",
485 "\n"
486 ],
487 "text/plain": [
488 " n preprocessingTime StateCoderTime ForwardTime BacktrackingTime\n",
489 "1 20 0.8940 0.1240 0.2330 0.1470 \n",
490 "2 40 0.8915 0.9295 0.9555 0.6070 \n",
491 "3 60 0.8745 2.3945 1.7300 1.0685 \n",
492 "4 80 0.8810 5.7395 3.8205 2.4985 \n",
493 "5 100 0.8770 11.5395 6.3625 4.5380 \n",
494 " NumericalSolverSumTime additionalTime\n",
495 "1 5.2680 4.4290 \n",
496 "2 19.1820 8.1975 \n",
497 "3 37.7305 14.2310 \n",
498 "4 72.2415 17.4985 \n",
499 "5 124.5385 31.9565 "
500 ]
501 },
502 "metadata": {},
503 "output_type": "display_data"
504 },
505 {
506 "data": {
507 "text/html": [
508 "0.8785"
509 ],
510 "text/latex": [
511 "0.8785"
512 ],
513 "text/markdown": [
514 "0.8785"
515 ],
516 "text/plain": [
517 "[1] 0.8785"
518 ]
519 },
520 "metadata": {},
521 "output_type": "display_data"
522 },
523 {
524 "data": {
525 "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAIAAAByhViMAAAACXBIWXMAABJ0AAASdAHeZh94\nAAAgAElEQVR4nOzde3zU9Z3o/28mZEICSbgJiNgVKCKKotgLXrFWrdX11mprcStVEdDuoa7H\nWm3tAWGPtrUWsdi61MJirRbrVnu2a1kF7y2cBypeatUKVo9gLYRL7pe5/f6YbX7ZBEKAiTP5\n8Hz+wSPzncnkPfnM5cV3LinKZDIRAAC9XyzfAwAAkBvCDgAgEMIOACAQwg4AIBDCDgAgEMIO\nACAQwg4AIBDCDgAgEH3yPcDe+9a3vvWHP/whh2eY/azmoqKiHJ5n3mUymUwmU1RUFNjlSqfT\nsVho/y1Jp9NRFAV5uQK7UKHerIK8D3Sz6kXS6bSbVXcMGzZs8eLFuzq2F4dddXX1okWLDj74\n4FydYXNzczqdLi8vz9UZFoKGhoampqaqqqqSkpJ8z5JLO3bsqKysDOx+bevWrbFYbODAgfke\nJJeSyWRjY2NlZWW+B8mllpaWurq6fv36lZWV5XuWXKqvr4/H4/F4PN+D5FJNTU0ikRg8eHBg\nubBt27ZBgwble4pcSqVS27dvLy0traioyPcsuZTztEgkEhdeeGEXJwjqcREAYH8m7AAAAiHs\nAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh\n7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAAC\nIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAALRJ98D\nAAC5MfPZ+/M9wn7tX06amu8R7LEDAAiFsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiE\nsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAhEn3wPsPcymUxra2tLS0uuzjCZTGYymRye\nYSFIpVJRFCUSiXQ6ne9ZcimdTre2thYVFeV7kBwL8hqYTqcDu1CJRCKKomQyGdjlSqVSiUQi\nk8nke5Bcyt71tbS0BHZ3Ed59RRg6L0rO02K3N9LeHXbJZDJ7D5sTqVQqk8nk8AwLQTbskslk\nYGGXXanw7qmjv0VDMNLpdDqdDuxCZW9W2QzK9yy5lE6ns3eD+R4kl7IXJ5lM5nuQ3Avs6heG\nzouS87TY7Vn14rCLxWLl5eX9+/fP1Rk2Nzen0+ny8vJcnWEhaGhoaGpqKisrKykpyfcsuZRM\nJvv16xeLBfVagpaWllgslsOrdCFIJpONjY2BXaiWlpZEIlFaWlpWVpbvWXKpvr4+Ho/H4/F8\nD5JLNTU16XS6X79+gf0/sLW1NbCbVRg6L0rO02K3OzWCelwEANifCTsAgEAIOwCAQAg7AIBA\nCDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCA\nQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsA\ngEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7\nAIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAI\nOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBA\nCDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCA\nQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsA\ngEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7\nAIBACDsAgED06ekfsGnTpgULFqxfv/6RRx5p2zh79ux33nmn7WDfvn0ffPDBKIrq6+sXL178\nyiuvJBKJcePGzZo1a+jQoT09IQBAGHo27J599tl77rnnmGOOWb9+ffvt9fX1M2bMmDx5cvZg\nLPZfOw7vuOOO+vr6OXPmlJaW3n///fPmzbvzzjvbjgUAoAs920yJROL73/9+W8C1qaurGz58\n+JC/GTRoUBRF1dXVa9eunTFjxqhRo0aMGDFr1qxNmza9+uqrPTohAEAwenaP3amnnhpF0YYN\nG9pvTCQSLS0tq1evvu++++rq6j760Y9eeumlBx100FtvvVVSUjJq1Kjsyfr37z9y5Mg333xz\n4sSJPTokAEAYevw1dp01NjYOGDAgmUxeffXVURQ98MADN954449//OPa2tqKioqioqK2U1ZV\nVdXU1LQdfP755xcuXNh2MJVK1dbW7tixI1eDpdPpKIpaW1tzdYaFIJVKRVFUX1/f/hcbgOzq\n53uKHMtkMul0OodX6UIQ5IXK3lc0NTW1tLTke5ZcSqfTiUSisbEx34PkUvY+sP1DSRjCu1mF\nofOi5DwtEolE9jx3JQ9hV1VVde+997YdvP7666dNm/b73/8+iqKu46Ouru71119vOzhmzJhU\nKpVMJnM7Xte/r14qe9cWmJwvfSHIZDJBXq4gL1Q6nQ7y7iJIQV4Dg7xQvd2uFiWH9xW7Xfc8\nhF0HZWVlBxxwQHV19ejRo2trazOZTFve1dTUDBw4sO2Un/rUp55//vm2gzNnzhw4cOCQIUNy\nNUlzc3M6nS4vL8/VGRaChoaGpqamqqqqkpKSfM+SSzt27KisrAzsjTVbt26NxWLtr/MBSCaT\njY2NlZWV+R4kl1paWurq6vr161dWVpbvWXKpvr4+Ho/H4/F8D5JLNTU1iURi8ODBgT1rsW3b\ntuzL0ykonZsk52mRSCS6fuzLw+Piu+++u2jRorbkbG5u3rJly/Dhw8eOHZtIJNpekFdbW/ve\ne++NHz/+w58QAKA36tk9dtu3b0+lUnV1dVEUVVdXR1HUv3//QYMGrV69OplMXnzxxalU6t57\n7+3fv//xxx9fWlp63HHH3XXXXbNnz47H4/fcc8+YMWMOP/zwHp0QACAYPRt2X//61zdv3pz9\n+vLLL4+iaPr06eeee+78+fOXLl16zTXXlJSUjBs37tZbby0tLY2iaPbs2YsXL547d24qlTri\niCNuuummwHaeAwD0nJ4Nu3vuuWen20ePHj1//vzO28vLy6+55poeHQkAIFRBvfYcAGB/JuwA\nAAIh7AAAAiHsAAACIewAAAIh7AAAApH/PykGAOTEj9auyvcI+7eTpuZ7AnvsAABCIewAAAIh\n7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAAC\nIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAA\nAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewA\nAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHs\nAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh\n7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAAC\nIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAA\nAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAAC0SffA+y9TCbT2tra0tKSqzNM\nJpOZTCaHZ1gIUqlUFEWJRCKdTud7llxKp9Otra1FRUX5HiTHgrwGptPpwC5UIpGIoiiZTAZ2\nuVKpVCKRyGQy+R4kl7J3fS0tLYHdXezqvqIXP6gHofOi5Dwtdnsj7cXXgUwmk0qlkslkrs4w\n20A5PMNCkL1TS6VSgd1ZR1GUTCbDu6eOQrwGZjKZ8C5U9t/wLlf2bjAk2ZtVeJcr2sV9RS9+\nUA9C50XJeVrs9qx68XUgFouVlZX169cvV2fY3NycTqfLy8tzdYaFoKGhIZlM9u3bt6SkJN+z\n5FIikSgvL4/FgnotQXNzcywWy+FVuhAkk8nGxsbALlRLS0tra2s8Hi8rK8v3LLmUyWTi8Xg8\nHs/3ILmUTCazd+yB/T+wpaVlpzerAAO2V+m8KDlPi0Qi0fWVOajHRQCA/ZmwAwAIhLADAAiE\nsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAI\nhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMA\nCISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLAD\nAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISw\nAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiE\nsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAI\nhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMA\nCISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLAD\nAAhEn3wPAEBBm/ns/fkeYb/2LydNzfcI9Cb22AEABKLH99ht2rRpwYIF69evf+SRR9o21tfX\nL168+JVXXkkkEuPGjZs1a9bQoUO72A4AwG51a49dQ0PD8uXLr7jiimOOOebggw+uqKgYOXLk\nMcccc8UVVyxfvryhoWFX3/jss89+85vfHDlyZIftd9xxx+bNm+fMmXPbbbeVl5fPmzcvnU53\nsR0AgN3aTdi1tLTcfvvto0aNuvjii++77750On3ooYeeccYZ48aNS6fT991338UXXzxq1Kjb\nb7+9paWl87cnEonvf//7kydPbr+xurp67dq1M2bMGDVq1IgRI2bNmrVp06ZXX311V9tzeXEB\nAMLV1VOx77zzzoUXXrhu3boLL7xw2rRpp5xySnl5efsTNDY2PvXUU8uWLbv++usfeOCBhx56\n6JBDDml/glNPPTWKog0bNrTf+NZbb5WUlIwaNSp7sH///iNHjnzzzTcbGxt3un3ixIn7fDEB\nAMLXVdhNmjTp6KOP/sMf/jB+/PidnqC8vPyss84666yzXn/99a9+9avHHnvs1q1bd/sja2tr\nKyoqioqK2rZUVVXV1NRUVVXtdHvbweeff37hwoVtB1OpVG1t7Y4dO3b7E7sp+7Rva2trrs6w\nEKRSqSiK6uvr2/9iA5Bd/XxPkWOZTCadTufwKl0IgrxQ2fuKpqamnT5T0Xul0+lEItHY2Jjv\nQfhvdnrz2dXNqqLn56ELnRcl52mRSCS6fpVaV2H31a9+de7cucXFxbv9MePHj3/88cfnzJnT\nzbF2FRldx0dzc/OmTZvaDg4dOjSdTmfDJScymUzbv8HIXpzwXqqYyWRyuPSFI8jLFd6Faruv\nCO9yBfY/wDDs6moW2NUvDJ0XJedpsdt17yrs5s+f3/Z1Y2NjTU3NgQceGEVRU1PT8uXLt27d\nesEFF4wePTp7guLi4n/+53/uzkwDBgyora1tfw9SU1MzcODAXW1v+8YTTzzxiSeeaDs4c+bM\nAQMGDB48uDs/tDuam5vT6XSHp5t7u4aGhqampsrKypKSknzPkks7duyorKyMxYL6vJ6tW7fG\nYrH21/kAJJPJxsbGysrKfA+SSy0tLXV1deXl5WVlZfmeJZfq6+vj8Xg8Hs/3IPw3O32Y27Zt\n26BBgzpv13r51Xmxcp4WiUSi68e+bj0uvvHGG6NGjVq2bFkURclk8uSTT77sssuuu+66SZMm\nrVu3bk9nGjt2bCKRaHvhXW1t7XvvvTd+/Phdbd/T8wcA2D91K+y+9a1vDRs27KKLLoqi6Be/\n+MXzzz//ox/9aP369UccccQtt9zSxTdu3769urq6rq4uiqLq6urq6urm5uZBgwYdd9xxd911\n15///Ofsp9yNGTPm8MMP39X2nFxOAIDgdesDip977rlsZkVR9Ktf/WrChAlXXXVVFEVf/epX\nb7jhhi6+8etf//rmzZuzX19++eVRFE2fPv3cc8+dPXv24sWL586dm0qljjjiiJtuuin79Ouu\ntgMAsFvdCrsdO3ZkX12XSqWeeuqpK6+8Mrv9gAMO+Otf/9rFN95zzz073V5eXn7NNdd0fzsA\nALvVradihw0b9vbbb0dR9MQTT2zfvv3MM8/Mbn/vvfdy+N4FAAD2Rbf22J1xxhk33XTT+vXr\nH3jggTFjxpx88slRFG3evHnhwoUnnHBCD08IAEC3dCvs5s+f/9prr33nO98ZMmTIv//7v2c/\n2W727Nnvvvvuz372sx6eEACAbulW2B144IGrV6+ura0tKytr+zi06667buHChcOGDevJ8QAA\n6K6uXmN3+eWXNzU1tR3s8CG3H/vYx9pXXVNT0xVXXNETIwIA0B1dhd0TTzwxefLkp59+erfn\n8vTTT0+ePHnVqlW5GwwAgD3TVdi98MILw4cPP+WUU6ZMmbJ06dL2f6c1a9OmTUuXLp0yZcop\np5wyfPjwF154oSdHBQCgK129xm7w4MG//e1v77///ptvvjn78cLDhg0bMmRIVVVVTU1NdXV1\n9kPsxo4d+7Of/Wzq1KmB/eFOAIDeZTdvnojFYv/wD//wpS996bnnnlu5cuW6deu2bNmybdu2\nysrKQw455JhjjjnttNNOPPHE7PtkAQDIo269K7a4uHjKlClTpkzp6WkAANhrnjwFAAiEsAMA\nCISwAwAIhLADAAiEsAMACMQehF1zc/PatWsffvjh6urqKIqSyWSPTQUAwB7rbtjdfvvtQ4cO\n/cQnPvG5z31u/fr1URTNmTPnsssuk3cAAAWiW2H3k5/85LrrrvvUpz519913t20cN27cfffd\nt2DBgh6bDQCAPdCtsFu0aNGsWbN+/etfT5s2rW3jpZde+vWvf/2ee+7psdkAANgD3Qq7P/3p\nT5///Oc7bz/llFP+/Oc/53okAAD2RrfCrrKysrm5ufP2mpqasrKyXI8EAMDe6FbYHXXUUd//\n/vebmprab9y2bdu8efMmT57cM4MBALBn+nTnRN/61rdOO+20o4466uyzz46i6Cc/+cndd9/9\n8MMPNzU1tX87BQAAedStPXannHLKf/7nf1ZUVCxcuDCKoiVLlixbtuywww57/PHHTzjhhB6e\nEACAbunWHrsoij796U+/+OKLmzdvfv/996Mo+ru/+7uBAwf25GAAAOyZ7oZdVllZ2SGHHJL9\neseOHdkvBgwYkNuZAADYC90Ku7fffnv27NlPPfVUQ0ND52MzmUyupwIAYI91K+yuuOKKdevW\nnX/++QceeGBxcXFPzwQAwF7oVtitXbv2scceO/7443t6GgAA9lq33hXbr1+/tpfWAQBQmLoV\ndl/+8peXLFnS06MAALAvuvVU7C233HL22WevWLHiuOOOGzx4cIdjb7jhhh4YDACAPdOtsPvB\nD36wcuXKKIp+97vfdT5W2AEAFIJuhd2dd975+c9//p/+6Z+GDx/uXbEAAIWpW2G3bdu2O++8\nc8SIET09DQAAe61bb544/PDDt2zZ0tOjAACwL7oVdnfccce11177yiuv9PQ0AADstW49FfvN\nb37z3XffnThxYv/+/Tu/K/add97J/VwAAOyhboVdLBYbN27cuHHjenoaAAD2WrfC7plnnunp\nOQAA2Efdeo0dAACFr6s9docddti0adNuvPHGww47rIuTvfHGG7meCgCAPdZV2A0YMKCsrCz7\nxYc1DwAAe6mrsFuzZk2HLwAAKFjdeo3dxz72sddff73z9n/7t387/PDDcz0SAAB7o1th98IL\nLzQ0NHTYmEwmX3vttQ0bNvTAVAAA7LHdfNxJUVFR9ouPf/zjOz3BpEmTcjwRAAB7ZTdh99JL\nLz399NNf+9rXzjvvvCFDhrQ/qqioaMSIEVdeeWVPjgcAQHftJuwmTpw4ceLERx999Lbbbhs7\nduyHMxMAAHuhW395YsWKFT09BwAA+6hbb57YvHnzV77ylYMOOqi4uLiok54eEQCA7ujWHrt/\n/Md/fPjhh6dMmXL66af36dOtbwEA4EPWrUp74oknHnroofPOO6+npwEAYK9166nYpqam448/\nvqdHAQBgX3Qr7I499tjXXnutp0cBAGBfdCvsFixY8I1vfGP16tU9PQ0AAHutW6+x+9rXvvaX\nv/zl+OOPLy8vP+CAAzoc+8477+R+LgAKw4/Wrsr3CPu3k6bmewJ6k26FXSwWO/TQQw899NCe\nngYAgL3WrbB75plnenoOAAD2UbdeYwcAQOHr1h67IUOG7Oqo1tbW2tra3M0DAMBe6lbYnXji\niR22/OUvf3n11VfHjBkzZcqUHpgKAIA91q2we+SRRzpv/OCDD774xS9+9rOfzfVIAADsjb1/\njd3w4cNvv/32OXPm5HAaAAD22j69eWLkyJF//OMfczUKAAD7Yu/DLpPJLFmyZPDgwTmcBgCA\nvdat19gdffTRHbakUqkPPvigurr6uuuu64GpAADYY90Ku85KSkqOOuqo8847b9asWbkdCACA\nvdOtsHvppZd6eg4AAPbRvv7liXfeeScXYwAAsK92E3bPPPPMZz7zmbFjx37mM5/57W9/2/6o\nlpaW//2///fhhx/ek+MBANBdXYXdmjVrTjvttMcff7y1tfXJJ588++yzf/nLX2aPeuyxx448\n8sibbrrpIx/5yIcyJwAAu9FV2H3nO98pLy9ft27du+++u3HjxmOPPXbOnDkbN2686KKLPvOZ\nz2zZsmXBggWvvvrqhzYrAABd6OrNEy+//PJXvvKViRMnRlE0dOjQ+fPnf/aznx07dmwikbjq\nqqvmzZs3ZMiQD2tOAAB2o6uw27hx46GHHtp2cPz48VEUffKTn1y0aNGECRN6fDQAAPZEV0/F\nJpPJeDzedrC0tDSKohtuuEHVAQAUoH39uBMAAAqEsAMACMRu/vLE22+/vWbNmuzX27Zti6Lo\njTfeGDBgQPvTTJ48uYeGAwCg+3YTdrfeeuutt97afss//dM/dThNJpPJ8VAAAOy5rsJuzpw5\nH9ocAADso67Cbu7cuR/WGAAA7CtvngAACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMA\nCISwAwAIhLADAAiEsAMACERXf1KswKXT6ZaWlubm5lydYSKRyGQyOTzDQpBMJqMoam1tTaVS\n+Z4ll7KrX1RUlO9BcimTyYR3DUyn0+l0OrALlb1ZJZPJwC5XKpVqbW1Np9MdtpfkZRr+ZqdX\ns13dV1is/Oq8KDlPi+wZdnGCXhx2URSl0+kc9kr27iywAMouf+d76gCkUqnAwi6KokwmE9g1\nMJ1OB3mholzf/xSCdDpdVFTU+UJphfza1dVsp9stVn51XpScp8Vuz6oXh10sFisrK+vXr1+u\nzrC5uTmdTpeXl+fqDAtBQ0NDMpns27dvSUlQt/dEIlFeXh6LBfVagubm5lgslsOrdCFIJpON\njY2BXaiWlpbW1tZ4PF5WVpbvWXIpk8nE4/F4PN5he1D12gvt9ObT0tKy0+0WK786L0rO0yKR\nSHS9UyOox0UAgP2ZsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLAD\nAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISw\nAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiE\nsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAI\nhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMA\nCISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLAD\nAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIRJ98DwDsj2Y+e3++R9jf/ctJU/M9ApB79tgB\nAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELY\nAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAASi\nT15+6uzZs9955522g3379n3wwQejKKqvr1+8ePErr7ySSCTGjRs3a9asoUOH5mVCAIBeJz9h\nV19fP2PGjMmTJ2cPxmL/tePwjjvuqK+vnzNnTmlp6f333z9v3rw777yz7VgAALqQn2aqq6sb\nPnz4kL8ZNGhQFEXV1dVr166dMWPGqFGjRowYMWvWrE2bNr366qt5mRAAoNfJwx67RCLR0tKy\nevXq++67r66u7qMf/eill1560EEHvfXWWyUlJaNGjcqerH///iNHjnzzzTcnTpz44Q8JANDr\n5CHsGhsbBwwYkEwmr7766iiKHnjggRtvvPHHP/5xbW1tRUVFUVFR2ymrqqpqamraDq5Zs+bW\nW29tO9ivX7+ampr+/fvnarBMJhNFUUtLS67OsBCk0+koiurq6tr/YgOQTqfbX/4R7ycAAB1Y\nSURBVDfCkMlkUqnU9u3b8z1ILmUymUwmE9iFCkPnRUmn062trZ3vKyo/rJHYqZ3efHZ1s7JY\n+dV5UXKeFolEIvvIvit5CLuqqqp777237eD1118/bdq03//+91EUdR0fyWSyrq6u7WBZWVkm\nk+n64u2R7G8/sADKXqjsg2u+Z8ml3C59QQnvcgW8WL1a50Vpu7vIxzjs0k5vPm5WhWlXN6sc\npsVu1z0/b55or6ys7IADDqiurh49enRtbW0mk2m7/DU1NQMHDmw75YknnvjEE0+0HZw5c+aA\nAQMGDx6cq0mam5vT6XR5eXmuzrAQNDQ0NDU1VVZWlpSU5HuWXNqxY0dlZWVgb6zZunVrLBZr\nf50PQDKZbGxsrKy0H6HgdL7zrK+vj8fj8Xi8w/bUhzUSO7XTh7lt27ZlX57egcXKr86LlfO0\nSCQSXT/25eFx8d133120aFEymcwebG5u3rJly/Dhw8eOHZtIJDZs2JDdXltb+957740fP/7D\nnxAAoDfKwx67QYMGrV69OplMXnzxxalU6t577+3fv//xxx9fWlp63HHH3XXXXbNnz47H4/fc\nc8+YMWMOP/zwD39CAIDeKA9hV1FRMX/+/KVLl15zzTUlJSXjxo279dZbS0tLoyiaPXv24sWL\n586dm0qljjjiiJtuuimwV7wBAPSc/LzGbvTo0fPnz++8vby8/Jprrvnw5wEACEBQrz0HANif\nCTsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCA\nQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBA9Mn3\nAMD+6EdrV+V7hP3eSVPzPQGQe/bYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAE\nQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEA\nBELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgB\nAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELY\nAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC\n2AEABKJPvgeAXJr57P35HmG/9i8nTc33CAD7NXvsAAACIewAAAIh7AAAAiHsAAACIewAAAIh\n7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAAC\nIewAAALRJ98D7L10Ot3c3NzU1JSrM0wkElEU5fAMC0EymYyiqKWlJftFMLKrX1RUlO9B+G86\n33zS6XQqleq8Pf5hjcSudF6U7L1EKpXqsN1i5ddOH5UymcxOt1us/Oq8KDlPi0QikclkujiB\nPXYAAIHoxXvsYrFY3759y8rKcnWGRUVF6XQ6h2dYCNLpdCKRKC0tLSkpyfcsudTS0tK3b99Y\nzP9MCkvnm08ymUylUp23d9wpxIduJ4uSSsXj8Xi8404fi5VfO31Uampq2ul2i5VfnRcl52nR\np0+frp+t8rgIABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcAEIhe/AHFAEB7\nCwdfle8R9mvX5nuAyB47AIBgCDsAgEB4Kpag/GjtqnyPsH87aWq+JwDYr9ljBwAQCGEHABAI\nYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQ\nCGEHABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcA\nEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEH\nABAIYQcAEAhhBwAQiD75HgCAgrZw8FX5HmG/dm2+B6B3sccOACAQwg4AIBDCDgAgEMIOACAQ\n3jwBAIGYurk53yOQZ/bYAQAEQtgBAATCU7G7N/PZ+/M9wv7uX06amu8RAKAXsMcOACAQwg4A\nIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIO\nACAQwg4AIBB98j0AAAVt6ubmfI9Adz157sJ8j7Bf+1J0Yr5HsMcOACAU9tjt3o/Wrsr3CPu9\nk6bmewIA6AXssQMACIQ9dkAeLBx8Vb5H2N9dm+8BgJ5gjx0AQCCEHQBAIIQdAEAghB0AQCCE\nHQBAILwrFoCu+GMG+VUIf8yAXsQeOwCAQAg7AIBACDsAgEB4jR2QB1M3N+d7BIAACTuC4g9V\n5Ze/UgWQX56KBQAIhLADAAiEp2KBPPDRaHnn09EgSMKOoHhJPgD7s8IKu/r6+sWLF7/yyiuJ\nRGLcuHGzZs0aOnRovocCAOgdCivs7rjjjvr6+jlz5pSWlt5///3z5s278847YzEvBKS7PMGX\nX57dA8ivAmqm6urqtWvXzpgxY9SoUSNGjJg1a9amTZteffXVfM8FANA7FNAeu7feequkpGTU\nqFHZg/379x85cuSbb745ceLE/A62JXVZfgdgeL4HAIBeoYDCrra2tqKioqioqG1LVVVVTU1N\n28E1a9bceuutbQf79etXU1PTv3//XA2QyWSiKGppaemw3bN7eXfm9iM6bEmn0+2vGxSI7du3\nd9iSyWQymUzn7eRd50VJp9Otra3t74QpBDu9+bhZFaad3gdGO0uLvZZIJNLpdBcnKKCwi6Ko\nMO9Qzhy6ON8j7L10Op3JZGKxWGH+bnOuVy9WKpWKoqi4uDjfg3wYevVKZTKZdDrtZtUr7Fc3\nq6g3L1b2ZlVUVOSF9fuogMJuwIABtbW1mUym7b6ypqZm4MCBbSeYPHnyr3/967aDM2fOrKqq\nan+CfdTc3JxOp8vLy3N1hoWgoaGhqampoqKipKQk37Pk0o4dOyorKwO7/W/dujUWi+XwKl0I\nkslkY2NjZWVlvgfJpZaWlrq6urKysrKysnzPkkv19fXxeDwej+d7kFyqqalJJBIDBgwIrMK3\nbdsW2H1FKpXavn17PB6vqKjI9yy5lPO0SCQSXT/2FdDj4tixYxOJxIYNG7IHa2tr33vvvfHj\nx+d3KgCA3qKAwm7QoEHHHXfcXXfd9ec//3nTpk0LFiwYM2bM4Ycfnu+5AAB6hwJ6KjaKotmz\nZy9evHju3LmpVOqII4646aabAtt5DgDQcwor7MrLy6+55pp8TwEA0CsV0FOxAADsC2EHABAI\nYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQ\nCGEHABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcA\nEAhhBwAQCGEHABAIYQcAEAhhBwAQiD75HmCfPPzww1VVVbk6t2QymclkSkpKcnWGhaC1tTWR\nSPTt27e4uDjfs+RSU1NT3759i4qK8j1ILjU2NhYVFZWVleV7kFxKp9OJRKK0tDTfg+RSMpls\naWmJx+Ph3V0UFxcHdl/R3NycSqXKy8vDu7soLy/P9xS5lE6nm5qa+vTpE97dRW7TIpVKdX2C\nokwmk6sf9iF75plnqqurc3iG6XQ6iqJYLKi9mG+88caGDRsmT548ePDgfM+SS8lksri4OLB7\n6sceeywej59yyin5HiSXMplMKpXq06d3/x+yg/fff3/dunXjx48fPXp0vmfJpVQqFYvFArtZ\nrVmzZuvWrWeeeWZgwZpMJgO7WTU2Nj755JMHHnjgpEmT8j1LLvVEWvTv3/+MM87Y1bG9+Gpx\n8skn53uEXmDRokUvv/zy1Vdffeyxx+Z7FnZj0aJFAwcO/NznPpfvQdiNlStX/uu//uunPvUp\ni1X4Vq1a9fLLL//whz8MbP9WeN5///077rhj+PDhblb7KKi9UwAA+zNhBwAQCGEHABCIXvzm\nCQAA2rPHDgAgEMIOACAQwg4AIBC9+HPs6Gzbtm1Llix5+eWXW1tbR48efdlllx166KFRFNXX\n1y9evPiVV15JJBLjxo2bNWvW0KFD8z0s/2XVqlULFy785je/OXny5MhiFapHH3304Ycf3rp1\n60EHHXTppZd+/OMfjyxW4dm4cePSpUvffPPNZDI5atSoL3/5y4cffnhkpQrJpk2bFixYsH79\n+kceeaRt464WyMLtBXvsgvLP//zP1dXVN9988x133DFkyJB58+Y1NzdHUXTHHXds3rx5zpw5\nt912W3l5+bx587KfhU3e7dixY9myZfF4vG2LxSpAq1atWr58+cyZM+++++7TTjvtJz/5SWNj\nY2SxCkwmk5k3b97AgQMXL168bNmyCRMmzJ07t66uLrJSBePZZ5/95je/OXLkyA7bd7VAFm5v\nZAhFbW3tLbfc8v/+3//LHty8efM555zzpz/9acuWLeeee+6GDRuy2+vq6s4///yXXnopf5Py\n/7v11lt/+tOffvnLX169enUmk7FYhenKK69ctWpVh40Wq9Ds2LHjnHPOef3117MHt23bds45\n57z55ptWqnCsWrVq8+bNq1evPu+889o27mqBLNzesccuHBUVFTfeeOPBBx+cPbh169ZYLDZk\nyJC33nqrpKRk1KhR2e39+/cfOXLkm2++mb9J+S+rV6/esGHD1KlT27ZYrAK0devWDz74IIqi\n2bNnX3TRRdddd90bb7wRWazCU1VVddhhh61YsaKurq65uXnFihXDhg075JBDrFThOPXUUw84\n4IAOG3e1QBZu7wi7MNXV1f3whz88//zzBw4cWFtbW1FR0f4Pe1dVVdXU1ORxPKIoqq+vv/vu\nu7/61a/27du3baPFKkBbt26NomjlypXXX3/9kiVLxo0bd/PNN9fU1FisAnTDDTesX7/+kksu\n+cIXvrBixYobbrghHo9bqQK3qwWycHtH2AVo48aN11133YQJE6ZNm5bd0v6GQYH46U9/OmnS\npKOPPrrDdotVmL74xS+OHDmyoqLi8ssvLyoqev755yOLVWCSyeS8efMOO+ywn/3sZ7/4xS/O\nOeecOXPmbN++PbJSBW9XC2Th9oKwC83LL7/8jW9845xzzrnqqquyN4kBAwbU1tZm2v2JkZqa\nmoEDB+ZvRqKXXnrpxRdfvPzyyztst1gFaNCgQVEU9evXL3uwuLh40KBB27dvt1iF5tVXX/3z\nn/88ffr0qqqq8vLyCy+8sLS09LnnnrNSBW5XC2Th9o6wC8of//jH7373u9dee+3f//3ft20c\nO3ZsIpHYsGFD9mBtbe177703fvz4PM1IFEXR448/3tDQMGvWrEsuueSSSy6pqalZsGDBrbfe\narEK0KBBgwYOHJh9XV0URa2trVu2bBk2bJjFKjTZV463f9dkMpmM3AcWvF0tkIXbO8Vz587N\n9wzkRmtr6//6X//rzDPPnDRpUuPfxGKxioqKd99998knnxw3blxjY+OPfvSjfv36XXLJJXZx\n59FRRx312Xaeeuqpyy677IILLhgwYIDFKjRFRUWpVOqhhx4aPXp0nz59/vVf/3Xz5s0zZ850\nyyo0VVVV2TddZj+77te//vWLL744ffr0oUOHWqkCsX379oaGhnfffXft2rWnnXZa1w9S5eXl\nFm4vFLXfyUmv9vLLL3/729/usHHmzJlnn312Y2Pj4sWL161bl0qljjjiiFmzZtmbXVAuvfTS\nq6++OvsBxRarAKXT6fvuu2/lypX19fXjxo27+uqrs28/t1iF5t133122bNmf/vSnVCr1kY98\n5B/+4R+OPPLIyEoVjOnTp2/evLnDlnPPPXdXC2Th9oKwAwAIhNfYAQAEQtgBAARC2AEABELY\nAQAEQtgBAARC2AEABELYAQAEQtgBe2/u3LlFRUVDhw5NJBKdj50+fXpRUdGJJ564d2d+8cUX\n9+/fvzunPPHEEw877LBdHVtdXX3LLbcce+yxQ4YMKSkpGTp06Jlnnvmf//mfbSeYPHlyF9++\nL7Zu3XrIIYdcccUVbVt+9atffeELX8h+vWXLlhEjRvTEz+2g+7/JXbnpppsGDx78zjvv5Ggi\noKf0yfcAQO8Wi8W2bdv2H//xH+eff3777U1NTb/85S9LSkryNVjWtm3bPv7xj2/evPnyyy+/\n9tpri4uLN2zYsGTJkrPOOuvnP//5xRdfHEXRxRdf3NTUlPMfnU6np06dWlVVtWjRoraNL774\n4jHHHNP56wJ38803//73v7/wwgt/97vflZaW5nscYJeEHbBPYrHYJz7xiaVLl3YIu4cffrip\nqWnixIn5Gixr2bJl77zzzi9+8YsvfvGLbRuvvvrqI4888oYbbvjCF74Qi8WuueaanvjR999/\n/2OPPfbUU0+VlZW1bXzhhRfaftyLL744adKknvjROVdcXHzXXXdNmDBh0aJF//N//s98jwPs\nkqdigX2STCb//u///tFHH/3rX//afvuyZcs+9alPddi789vf/vbkk0+uqKgoKyubMGHCD37w\ng7a/apjJZObNm3fwwQf37dv3yCOPfOihhzr8oKeffvr000+vrKwsLy+fNGnSkiVLujPeX/7y\nlyiKjj322PYbBw4cuGbNmtdffz0Wi0Xtnop9/vnni3bmD3/4w57OkEql5s+ff/LJJ0+ZMqX9\n9vYx10XYnXzyySeddNK6des+/elPV1ZWDh069Etf+lL7P7LZQ7/Jv/zlL1deeeXf/d3f9e3b\nd/jw4Z///OffeOON7FHjx4+/8MILv/e97zU0NOzqUgP5lwHYW3PmzImi6K233orFYt///vfb\ntm/cuDEWiy1ZsmTy5MknnHBCduPDDz9cVFR05plnPvLIIytXrrz22mujKPr617+ePfa73/1u\nFEWXXHLJ448/vnz58gkTJowbN65fv37ZY1euXFlcXHzyySf/+7//+2OPPTZr1qwoitp+4gkn\nnDBu3LidTvjAAw9EUXTBBRds3759V5fik5/8ZPbba2trH2/nN7/5zQEHHDBy5MgdO3bsdoYO\nnn766SiKlixZkj142223lZaWZjO39G+KioqyX2zcuLHDt3/6058++OCDP/7xjz/++ON//etf\nH3rooeLi4mnTpvX0b3Ly5MnDhw+/5557nnjiiZ///OdHHnnk0KFDGxoassf+x3/8RxRFy5cv\n39VvEsg7YQfsvWzYNTU1nXbaaUcccUTb9u985ztlZWW1tbWf/OQn28LusMMO+8hHPtLS0tJ2\nsvPPP7+kpKS6ujqdTo8YMWLChAltR73//vslJSVtOXLMMcd89KMfbSuMTCZz7rnnVlRUNDU1\nZboMu1QqlX2zQmlp6VlnnfXd7353zZo1qVSq/Wnawq6Dyy67rLS09P/+3//bnRk6+Pa3vx1F\nUYdie+ihhz73uc9lv/7ggw9GjBix05kzmcynP/3pKIqee+659lvaTt9Dv8mampooim644Ya2\no9avX3/LLbds2rQpe7ChoSEej19xxRW7GhvIO0/FAjnwla985bXXXlu7dm324LJly84///yK\nioq2E7z//vtvvPHGWWedFY/H2zaec845iURizZo177333vvvv3/qqae2HXXggQd+7GMfy369\nefPmdevWnX322bFYrPlvzjrrrLq6uldffbXrwWKx2PLly1esWPH5z3/+pZde+sY3vjF58uRh\nw4bdeOONjY2NXXzjj3/846VLly5atOgTn/jEXszw4osvDhs27KCDDmq/8Xe/+13be4R/97vf\nHX/88V0MUF5efsIJJ7QdHDly5AcffBD15G+yrKxs8ODBDzzwwKpVq9LpdBRFY8aMufHGG9ve\nulteXn7YYYe98MILXYwN5JewA3LgggsuqKioWLp0aRRFa9euff311y+99NL2J9i0aVMURR1C\n58ADD4yi6P33388mywEHHND+2LaeeP/996MoWrhwYVk72ecQN27c2J3xPvOZz/z85z/ftGnT\nhg0bfvKTn4wfP/473/nOaaedls2XzlavXn3NNdfMmDFj+vTpezfDli1bhgwZ0mHjc88919Zq\nzz33XNdh1+G30adPn+y0PfebLCkp+fWvfx2LxU477bShQ4deeOGF999/fzKZbH9WQ4YMqa6u\n7mJsIL+8KxbIgfLy8osuuuiBBx74wQ9+sGzZsgMPPPD0009vf4KioqIoijqEVCaTiaIoFotl\n/vbC//ZSqVT7g5dffvmVV17Z4TQf/ehH92jO0aNHjx49+oorrpg+ffqSJUuee+65k08+ucNp\nPvjggwsvvPCYY4754Q9/2OGo7s9QW1s7aNCgtoMjR46srq5uaWlp+3Gtra0lJSU33njj1KlT\nu/lGkKwe/U2ecMIJb7311tNPP/3b3/720UcfveSSSxYsWPDMM8+0vbF3wIABO3bs6P60wIdM\n2AG5MW3atCVLljz22GPLly+fNm1acXFx+2NHjhwZ/W1vU5vswZEjR2b3MGX3NrVp+zjcj3zk\nI1EUpVKpyZMn79FILS0tDz30UL9+/Tp8FEtRUdGUKVOWLFny3nvvdfiWRCLxhS98IZVK/du/\n/Vv75zr3dIbKysrsS9ayNm7cuHr16uuvv/7ZZ5+NoiiZTA4cOLC6unovPhOup3+TxcXFp556\n6qmnnnrbbbf9+Mc/vvrqqx988MFp06Zlj92xY0dVVdWezgx8aDwVC+TGSSedNHr06Pnz51dX\nV3d4HjaKouHDh0+YMOE3v/lNc3Nz28Zf/epX5eXlxx133CGHHDJkyJAVK1a07Yj605/+9PLL\nL2e/HjRo0Cc+8YlHHnmk/b6ie++996abburwRGEH8Xj85ptvnjFjxttvv91+eyqV+uUvfxlF\n0VFHHdXhW6699trVq1c/+OCDHZ7r3NMZDjjggA5PWb700ktHH3109us//vGPY8aM2btP+u25\n3+QLL7xw8cUXt/9QlTPOOCOKoi1btrRtqa6u7vA8L1BQhB2QG0VFRZdeeunzzz8/ceLEzsEU\nRdF3v/vdDz744Lzzzvs//+f/rFix4uqrr16xYsW3v/3tysrKWCx21VVXbdiw4aKLLvrVr351\n9913n3HGGe0/4+173/teY2PjlClT7r333scee+zb3/729OnTN23a1KdPV087FBUVLV68uKmp\n6eijj54xY8add97505/+dP78+ZMmTfrNb37zP/7H/zjyyCPbn/7BBx9ctGjR5z73udbW1pXt\nZLtwj2Y4+uij//rXv7bfr9Y+7NatW7cvH03cQ7/Jgw466NFHHz399NOXLFmycuXK5cuXX3rp\npZWVlRdccEH2exsbG998883e8tcyYD+V3zflAr1a28edZA++/fbbRUVFt99+e9sJ2n/cSSaT\neeyxx0488cR+/fqVlpYec8wxbR/zlslkksnkDTfcMHz48Hg8fuSRRz788MP/+I//GI/H207w\n7LPPnn766RUVFSUlJYceeuj3vve9RCKRPaqLjzvJZDKvvfba5Zdfnt1D1qdPn2HDhn32s599\n6KGH2g+Z/favfe1rO72fnDNnzm5n6ODJJ5+Momjp0qXtf8rzzz+f/fprX/va/9feHaMoDERh\nAHYlgoW1RUBsvYegdUrPYJ8yeAcPERBsrSystAuks8sFRC8gcQth2UJsXIk7fF85MPBmqp83\nM8xyuXyysePxeDgc/h65fzj77p0syzJJkn6/3+l04jhOkqQoip+Jm82m1Wrlef6kcqBZX7dH\nN20BeMX1eh2NRoPB4J7wwjCbzbbbbVVVvV6v6VqAxxzFAvy9KIqyLNvtdvfXEgE4Ho+r1SpN\nU6kOPpmOHcBb1HU9nU5Pp9PhcOh2u02X85K6rieTyfl83u/3/30tEDYdO4C3aLfbeZ5fLpf5\nfN50La9aLBZFUazXa6kOPpyOHQBAIHTsAAACIdgBAARCsAMACIRgBwAQCMEOACAQgh0AQCAE\nOwCAQHwDo//Ib6bHudQAAAAASUVORK5CYII=",
526 "text/plain": [
527 "plot without title"
528 ]
529 },
530 "metadata": {
531 "image/png": {
532 "height": 420,
533 "width": 420
534 },
535 "text/plain": {
536 "height": 420,
537 "width": 420
538 }
539 },
540 "output_type": "display_data"
541 }
542 ],
543 "source": [
544 "FamilyTreeRQ2Raw <- rbind(\n",
545 " Load10Log(\"measurements/stats/FamilyTree//size020to-1r10n10rt3600stats.csv\", 20),\n",
546 " Load10Log(\"measurements/stats/FamilyTree/size040to-1r10n10rt3600stats.csv\", 40),\n",
547 " Load10Log(\"measurements/stats/FamilyTree//size060to-1r10n10rt3600stats.csv\", 60),\n",
548 " Load10Log(\"measurements/stats/FamilyTree//size080to-1r10n10rt3600stats.csv\", 80),\n",
549 " Load10Log(\"measurements/stats/FamilyTree//size100to-1r10n10rt3600stats.csv\", 100)\n",
550 ")\n",
551 "FamilyTreeRQ2 <- FamilyTreeRQ2Raw %>% ProcessRQ2\n",
552 "FamilyTreeRQ2\n",
553 "median(FamilyTreeRQ2Raw$preprocessingTime) / 1000.0\n",
554 "FamilyTreeRQ2 %>% RQ2Plot('FamilyTree')"
555 ]
556 },
557 {
558 "cell_type": "markdown",
559 "metadata": {},
560 "source": [
561 "### Sat domain"
562 ]
563 },
564 {
565 "cell_type": "code",
566 "execution_count": 49,
567 "metadata": {},
568 "outputs": [
569 {
570 "name": "stderr",
571 "output_type": "stream",
572 "text": [
573 "Warning message:\n",
574 "“`cols` is now required when using unnest().\n",
575 "Please use `cols = c(Solution1DetailedStatistics)`”\n",
576 "Warning message:\n",
577 "“`cols` is now required when using unnest().\n",
578 "Please use `cols = c(Solution1DetailedStatistics)`”\n",
579 "Warning message:\n",
580 "“`cols` is now required when using unnest().\n",
581 "Please use `cols = c(Solution1DetailedStatistics)`”\n",
582 "Warning message:\n",
583 "“`cols` is now required when using unnest().\n",
584 "Please use `cols = c(Solution1DetailedStatistics)`”\n",
585 "Warning message:\n",
586 "“`cols` is now required when using unnest().\n",
587 "Please use `cols = c(Solution1DetailedStatistics)`”\n"
588 ]
589 },
590 {
591 "data": {
592 "text/html": [
593 "<table>\n",
594 "<caption>A tibble: 5 × 7</caption>\n",
595 "<thead>\n",
596 "\t<tr><th scope=col>n</th><th scope=col>preprocessingTime</th><th scope=col>StateCoderTime</th><th scope=col>ForwardTime</th><th scope=col>BacktrackingTime</th><th scope=col>NumericalSolverSumTime</th><th scope=col>additionalTime</th></tr>\n",
597 "\t<tr><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th></tr>\n",
598 "</thead>\n",
599 "<tbody>\n",
600 "\t<tr><td> 20</td><td>3.3930</td><td> 0.0360</td><td>0.6015</td><td>0.1010</td><td>0.5525</td><td> 0.8300</td></tr>\n",
601 "\t<tr><td> 40</td><td>3.5435</td><td> 0.3145</td><td>1.2860</td><td>0.2645</td><td>1.0255</td><td> 2.4225</td></tr>\n",
602 "\t<tr><td> 60</td><td>3.3420</td><td> 1.0390</td><td>2.3665</td><td>0.6415</td><td>1.5570</td><td> 3.4750</td></tr>\n",
603 "\t<tr><td> 80</td><td>3.2475</td><td> 3.7925</td><td>4.5785</td><td>1.8590</td><td>2.0665</td><td> 4.8600</td></tr>\n",
604 "\t<tr><td>100</td><td>3.3660</td><td>11.2280</td><td>8.8810</td><td>5.1165</td><td>2.7360</td><td>15.2750</td></tr>\n",
605 "</tbody>\n",
606 "</table>\n"
607 ],
608 "text/latex": [
609 "A tibble: 5 × 7\n",
610 "\\begin{tabular}{lllllll}\n",
611 " n & preprocessingTime & StateCoderTime & ForwardTime & BacktrackingTime & NumericalSolverSumTime & additionalTime\\\\\n",
612 " <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl>\\\\\n",
613 "\\hline\n",
614 "\t 20 & 3.3930 & 0.0360 & 0.6015 & 0.1010 & 0.5525 & 0.8300\\\\\n",
615 "\t 40 & 3.5435 & 0.3145 & 1.2860 & 0.2645 & 1.0255 & 2.4225\\\\\n",
616 "\t 60 & 3.3420 & 1.0390 & 2.3665 & 0.6415 & 1.5570 & 3.4750\\\\\n",
617 "\t 80 & 3.2475 & 3.7925 & 4.5785 & 1.8590 & 2.0665 & 4.8600\\\\\n",
618 "\t 100 & 3.3660 & 11.2280 & 8.8810 & 5.1165 & 2.7360 & 15.2750\\\\\n",
619 "\\end{tabular}\n"
620 ],
621 "text/markdown": [
622 "\n",
623 "A tibble: 5 × 7\n",
624 "\n",
625 "| n &lt;dbl&gt; | preprocessingTime &lt;dbl&gt; | StateCoderTime &lt;dbl&gt; | ForwardTime &lt;dbl&gt; | BacktrackingTime &lt;dbl&gt; | NumericalSolverSumTime &lt;dbl&gt; | additionalTime &lt;dbl&gt; |\n",
626 "|---|---|---|---|---|---|---|\n",
627 "| 20 | 3.3930 | 0.0360 | 0.6015 | 0.1010 | 0.5525 | 0.8300 |\n",
628 "| 40 | 3.5435 | 0.3145 | 1.2860 | 0.2645 | 1.0255 | 2.4225 |\n",
629 "| 60 | 3.3420 | 1.0390 | 2.3665 | 0.6415 | 1.5570 | 3.4750 |\n",
630 "| 80 | 3.2475 | 3.7925 | 4.5785 | 1.8590 | 2.0665 | 4.8600 |\n",
631 "| 100 | 3.3660 | 11.2280 | 8.8810 | 5.1165 | 2.7360 | 15.2750 |\n",
632 "\n"
633 ],
634 "text/plain": [
635 " n preprocessingTime StateCoderTime ForwardTime BacktrackingTime\n",
636 "1 20 3.3930 0.0360 0.6015 0.1010 \n",
637 "2 40 3.5435 0.3145 1.2860 0.2645 \n",
638 "3 60 3.3420 1.0390 2.3665 0.6415 \n",
639 "4 80 3.2475 3.7925 4.5785 1.8590 \n",
640 "5 100 3.3660 11.2280 8.8810 5.1165 \n",
641 " NumericalSolverSumTime additionalTime\n",
642 "1 0.5525 0.8300 \n",
643 "2 1.0255 2.4225 \n",
644 "3 1.5570 3.4750 \n",
645 "4 2.0665 4.8600 \n",
646 "5 2.7360 15.2750 "
647 ]
648 },
649 "metadata": {},
650 "output_type": "display_data"
651 },
652 {
653 "data": {
654 "text/html": [
655 "3.3735"
656 ],
657 "text/latex": [
658 "3.3735"
659 ],
660 "text/markdown": [
661 "3.3735"
662 ],
663 "text/plain": [
664 "[1] 3.3735"
665 ]
666 },
667 "metadata": {},
668 "output_type": "display_data"
669 },
670 {
671 "data": {
672 "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAIAAAByhViMAAAACXBIWXMAABJ0AAASdAHeZh94\nAAAgAElEQVR4nOzdeXzcdZ348W/uu01LD6jlKLW0pYVi8SiHgMoqglwKyrGCHNKgu11EXEFx\nW4oLKmJbARcrlu2qVR6yorurskC51KW7lRYoCJVWYNsChtA0k2QyyWRmfn/Mb7PdHmlavtNJ\nPn0+/+gj853pd97JJzPzyndmkpJcLhcBADD0lRZ7AAAA4iHsAAACIewAAAIh7AAAAiHsAAAC\nIewAAAIh7AAAAiHsAAACUV7sAXbty1/+8rPPPhvvPrPZbGlpaFGby+VyuVxJSUlJSUmxZ4mZ\n9RparNfQYr2GliDXK4qibDYb6nrF/nmNHTt28eLFOzt3CIRdS0vL7bfffuCBB8a1w2w2m0gk\nGhsb49rhIJFMJpPJ5LBhwyorK4s9S8w2b948cuTIYk8Rs1Qq1dHR0dDQUFVVVexZYhbkenV3\nd7e3t9fV1dXU1BR7lpi1trY2NjYG9oCaTqfb2tpqamrq6uqKPUvM2tra6uvry8rKij1InDKZ\nTGtra3V1dX19fbFniVl7e3tNTU15eWy5lU6nzznnnH4uEGD1AwDsm4QdAEAghB0AQCCEHQBA\nIIbAmycymUwikdiyZUu8+4x3h4NBNpuNoqizszOZTBZ7lphls9nw1iuXy0VRlEwmu7q6ij1L\nzIJcr/ztq6urq7u7u9izxCyTybS1tRV7ipjlb1/d3d3pdLrYs8Qs/5gY2Jtd8np6eoK86+jt\n7Y1xvdLpdP7uaGeGQNiVlpbW1dU1NDTEtcNsNpt/N2JcOxwkUqlUV1dXTU1NRUVFsWeJWVtb\nW3jr1d3dnUwmq6urw3sXc5Dr1dPT09nZWVVVVV1dXexZYpZIJOrr6wMLhd7e3vb29srKyvDe\nxdze3l5bWxveu2ITiURFRUVtbW2xZ4lZZ2dndXV1jOuVTqf7/303QyDsSkpKysrKYvyi5H+j\nTGC3iiiK8vfLpaWl4X1qURSF90nlb5nWa6gIfr0CC7v8IY1Q7+rjfUwcPEJdr3jvN/o/XBd5\njR0AQDCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBA\nIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0A\nQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAgyos9AADwVs3+zbJij0D03fdeUOwRHLEDAAiF\nsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAI\nhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMA\nCISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLAD\nAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISw\nAwAIhLADAAiEsAMACMReCrvly5efccYZK1asyJ/s6Oj41re+9alPferCCy+cP39+c3Pz3hkD\nACBgeyPstmzZsnTp0srKyr4tCxcubG5unjt37i233FJbWzt//vxsNrsXJgEACNjeCLs777zz\npJNOqq2tzZ9saWlZuXLlFVdcMWHChHHjxjU1NW3atGnNmjV7YRIAgICVF/oKnnjiifXr1191\n1VWPPvpofsuLL75YUVExYcKE/Mn6+vrx48evXbt2xowZ+S3Nzc3PPPNM3x7S6XRPT093d3dc\nI+VyuWw2G+MOB4lMJhNFUTqdzuVyxZ4lZrlcLrz16u3t7fs3MEGuVzqdjqKot7c3vE8tv14l\nJSXFHiRO+fvDTCYT3npls9menp7SUi+RH4y2/37LZDI9PT35b8hY7PJRvrBh19HRceedd37u\nc5+rrq7u25hIJBoaGra+Exk+fHhbW1vfyeeee+7aa6/tOzlx4sTOzs729vZ4Z4t9h4NEV1dX\nsUcoCOs1tIS6Xt3d3eGFQhRFHR0dxR6hIHp6enp6eoo9Rfw6OzuLPQI7tsO7vnh/gC9y2H3/\n+9+fOXPmUUcdtc32/n80nDhx4l//9V/3nXz44Ydramrq6urimiqXy6VSqZqamrh2OEjkD21W\nV1eXlZUVe5aYJZPJvqfyg5E/9lNVVVVeXvAD53tZwOtVWVlZUVFR7Fli1tXVVV1dHd4Ru1Qq\nVVFRsfXLu8OQSqUqKysdsRuctm+V7u7uioqKGNcrnU73f2st4CPKU089tWrVqttvv32b7Y2N\njYlEIpfL9U3W1tY2YsSIvgscdNBBF198cd/J//iP/6iuro6xw/LHscMLu1wu19PTU1lZGd4d\nWVdXV3jrlUql8qFQVVVV7FliFuR65Y/VVVRUhPep5X/QDSzs0ul0KpUqLy8Pb71C/QE+DNt/\nv/X29sb7A3x5eXnRwu7BBx/s7OxsamrKn+zo6FiwYMFRRx01e/bsdDq9fv36t7/97VEUJRKJ\nDRs2TJ06tXCTAADsCwoYdk1NTZdccknfyc997nMXXXTRe97znmHDhh1zzDF33HHHnDlzKisr\n77rrrokTJx5++OGFmwQAYF9QwLBraGhoaGjoO1lSUtLQ0DBs2LAoiubMmbN48eJ58+ZlMplp\n06Zdf/31gT0LAACw9+29V23/0z/9U9/HtbW1V1111V67agCAfYG31QAABELYAQAEQtgBAARC\n2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAE\nQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEA\nBELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgB\nAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELY\nAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC\n2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAE\nQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAASivNgD7Fomk2lra6uvr493n62t\nrTHucDDI5XJRFHV0dJSUlBR7lphls9lQ16uzszOZTBZ7lpgFvF5dXV2pVKrYs8Qsk8ls2bKl\n2FPELL9eqVSqp6en2LPELJvNtrW1hXc/H4bt7/qy2Wxvb2+MV5FOp7PZbD8XGAJhV1ZWNnz4\n8BEjRsS1w2w2m0gkGhsb49rhIJFMJpPJZH19fWVlZbFnidnmzZtj/AYYJFKpVEdHR11dXVVV\nVbFniVmQ69Xd3d3e3l5TU1NTU1PsWWLW2tra2NgYWCik0+m2trbq6uq6urpizxKz/JGOsrKy\nYg/CDmx/15e/3ygvjy230ul0aWl/T7d6KhYAIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQ\nwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAg\nEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4A\nIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIO\nACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDC\nDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQ\nwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAg\nEMIOACAQwg4AIBDCDgAgEMIOACAQ5QXd+4YNG5YuXfr888/ncrkJEyZ88pOfnDJlShRFHR0d\nixcvfuaZZ9Lp9OTJk5uamsaMGVPQSQAAglfAI3a9vb1f+cpX6urqvvGNb9x6662jR4++4YYb\nurq6oihauHBhc3Pz3Llzb7nlltra2vnz52ez2cJNAgCwLyhg2HV2dp555plNTU1ve9vbDjjg\ngHPPPbezs/O1115raWlZuXLlFVdcMWHChHHjxjU1NW3atGnNmjWFmwQAYF9QwLAbPnz42Wef\nXVNTE0VRe3v7v/zLv4wfP/7AAw988cUXKyoqJkyYkL9YfX39+PHj165dW7hJAAD2BYV9jV0U\nRdls9txzz02n09OnT7/xxhsrKioSiURDQ0NJSUnfZYYPH97W1tZ38r//+78feeSRvpOpVCqV\nSuWfw41FLpfLZrMx7nCQ6O3tjaKop6cnk8kUe5aY5XK5gNcrvNchBLxe6XS62IPEL79eW98n\nByB/N9jb2xvet2I2m02lUqWl3vs4GG3//ZbJZLq7u2O860in07lcrp8LFDzsSktLFy1a1Nra\n+stf/vJLX/rSrbfeGkVR//cg69evv+222/pOTpw4saurq7OzM97BYt/hIJFKpYo9QkGEul7d\n3d3d3d3FniJ+oa5XT09PT09PsaeIXzKZLPYIBZFOp4Ns8fBqNRg7vOvL/1gYl+KHXRRF48eP\nHz9+/LRp0y644ILHHnts1KhRiUQil8v15V1bW9uIESP6Lj9t2rSvfe1rfSeXLVtWV1fX0NAQ\n1zy5XC6ZTNbV1cW1w0Gip6enu7u7pqamvHxvLOve1NHRUV9fX+wpYpZOp1OplPUaKvLrVVVV\nVVlZWexZYtbZ2VlbWxveEbtkMllZWVlVVVXsWWKWTCarq6sdsRuctm+Vrq6uysrKsrKyuK4i\nnU73f2st4CPK6tWr/+Ef/uG2227L365KSkryD2CTJk1Kp9Pr169/+9vfHkVRIpHYsGHD1KlT\n+/7jmDFjTj755L6TP/3pT+O9ceaPY4d3a88/9VBRURHkA09465X/kau8vDy8Ty3I9YqiKJVK\nBbleyWSyqqoqsLDLH6grKysLb71SqVS8oUCMtv9+6+npqaysjPEH+NLS0v5vrQVM/kmTJqVS\nqYULF27YsOH111+/6667UqnU0UcfPXLkyGOOOeaOO+546aWXNm3atGDBgokTJx5++OGFmwQA\nYF9QwCN29fX1N95449133/35z3++pKTkoIMO+spXvrL//vtHUTRnzpzFixfPmzcvk8lMmzbt\n+uuvD+yHRQCAva+wL+45+OCD582bt/322traq666qqBXDQCwr/HqSwCAQAg7AIBACDsAgEAI\nOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBA\nCDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCA\nQAg7AIBACDsAgEAIOwCAQJQXewAA4K36zsrlxR6BKHrvBcWewBE7AIBQCDsAgEAIOwCAQAg7\nAIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAI\nOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBA\nCDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCA\nQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgECUF3sAAOCtWrTflcUe\ngejqYg8QOWIHABCMoXHELpfL5XK5GPfW929I+j6v8D61yHoNNeF9UtZraOn7jML71KJwvw8D\nsMN1KUTD9GMIhF0mk2lvb29ra4t3n/HucDDIZrNRFCWTya6urmLPErNsNhveeuVvnF1dXalU\nqtizxCzI9crfvlKpVE9PT7FniVkmk0kkEsWeImb521d3d3c6nS72LDHLPyaWlJQUexB2YPu7\nvmw229vbG+N6pdPp/N3RzgyBsCsrKxs2bFhjY2NcO8xms4lEIsYdDhLJZDKZTNbV1VVWVhZ7\nlpht3rw5vPVKpVIdHR21tbVVVVXFniVmQa5Xd3d3e3t7TU1NTU1NsWeJWWtr6/DhwwMLhXQ6\n3dbWVlVVVVdXV+xZYtbW1lZfX19WVlbsQdiB7e/68vcb5eWx5VY6nS4t7e91dF5jBwAQCGEH\nABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEHABCIAf3GvM7Ozn/7t3974IEHVq1a1dLS\nsmXLluHDh48ePXrmzJkf/OAHP/KRj4T3GyABAIacXRyx6+7uvvXWWydMmHDeeef98Ic/zGaz\nhx122Ac/+MHJkydns9kf/vCH55133oQJE2699dbu7u69MzEAADvU3xG7l19++Zxzzlm9evU5\n55xz8cUXn3TSSbW1tVtfIJlMPvroo0uXLv3bv/3bH//4x/fee+8hhxxS2HkBANiJ/o7YzZw5\nc9iwYc8+++w999xz6qmnblN1URTV1taeeuqp99xzz7PPPjts2LCjjz66kKMCANCf/sLus5/9\n7IMPPjh16tRd7mXq1KkPPvjglVdeGd9gAADsnv6eir3xxhv7Pk4mk21tbQcccEAURV1dXffc\nc8+bb7559tlnH3roofkLlJWVffWrXy3orAAA9GNAv+7khRdemDBhwtKlS6Mo6u3tPeGEEy65\n5JJrrrlm5syZq1evLvCEAAAMyIDC7stf/vLYsWPPPffcKIp+8pOf/P73v//Od76zbt26adOm\n3XTTTQWeEACAARlQ2P32t7+99tprJ06cGEXRz372s+nTp1955ZUTJ0787Gc/+5//+Z8FnhAA\ngAEZUNht2bIl/+q6TCbz6KOPnnrqqfnto0eP/vOf/1zA6QAAGLABhd3YsWP/9Kc/RVH08MMP\nt7a2nnLKKfntGzZs2G+//Qo4HQAAAzagPyn2wQ9+8Prrr1+3bt2Pf/zjiRMnnnDCCVEUNTc3\nL1q06LjjjivwhAAADMiAwu7GG2987rnnvva1r40aNepf//Vfy8rKoiiaM2fOK6+88oMf/KDA\nEwIAMCADCrsDDjjgiSeeSCQSNTU1FRUV+Y3XXHPNokWLxo4dW8jxAAAYqP5eY3fppZd2dXX1\nnRw2bFhf1UVR9M53vnPrquvq6rrssssKMSIAAAPRX9g9/PDDs2bNeuyxx3a5l8cee2zWrFnL\nly+PbzAAAHZPf2H35JNP7r///ieddNKJJ5549913b9q0aZsLbNq06e677z7xxBNPOumk/fff\n/8knnyzkqAAA9Ke/19jtt99+v/71r5ctW3bDDTdceumlURSNHTt21KhRw4cPb2tra2lpyf8S\nu0mTJv3gBz+44IILSksH9MtTAAAohF28eaK0tPQv//Ivzz///N/+9rcPPfTQ6tWr33jjjc2b\nNw8bNuyQQw55xzvecfLJJx9//PH598kCAFBEA3pXbFlZ2YknnnjiiScWehoAAPaYJ08BAAIh\n7AAAAiHsAAACIewAAAIh7AAAArEbYZdKpVauXHnfffe1tLREUdTb21uwqQAA2G0DDbtbb711\nzJgx7373uz/60Y+uW7cuiqK5c+decskl8g4AYJAYUNh973vfu+aaa973vvfdeeedfRsnT578\nwx/+cMGCBQWbDQCA3TCgsLv99tubmpp+8YtfXHzxxX0bL7rooi984Qt33XVXwWYDAGA3DCjs\n/vjHP37sYx/bfvtJJ5300ksvxT0SAAB7YkBhN2zYsFQqtf32tra2mpqauEcCAGBPDCjsjjzy\nyG9+85tdXV1bb9y8efP8+fNnzZpVmMEAANg95QO50Je//OWTTz75yCOPPO2006Io+t73vnfn\nnXfed999XV1dW7+dAgCAIhrQEbuTTjrp3//93xsaGhYtWhRF0ZIlS5YuXTplypQHH3zwuOOO\nK/CEAAAMyICO2EVR9IEPfGDVqlXNzc2vvvpqFEUHH3zwiBEjCjkYAAC7Z6Bhl1dTU3PIIYfk\nP96yZUv+g8bGxnhnAgBgDwwo7P70pz/NmTPn0Ucf7ezs3P7cXC4X91QAAOy2AYXdZZddtnr1\n6rPOOuuAAw4oKysr9EwAAOyBAYXdypUrH3jggWOPPbbQ0wAAsMcG9K7Yurq6vpfWAQAwOA0o\n7D75yU8uWbKk0KMAAPBWDOip2Jtuuum00067//77jznmmP3222+bc6+99toCDAYAwO4ZUNh9\n61vfeuihh6Io+t3vfrf9ucIOAGAwGFDYffvb3/7Yxz72uc99bv/99/euWACAwWlAYbd58+Zv\nf/vb48aNK/Q0AADssQG9eeLwww9/4403Cj0KAABvxYDCbuHChVdfffUzzzxT6GkAANhjA3oq\n9ktf+tIrr7wyY8aM+vr67d8V+/LLL8c/FwAAu2lAYVdaWjp58uTJkycXehoAAPbYgMLu8ccf\nL/QcAAC8RQN6jR0AAINff0fspkyZcvHFF1933XVTpkzp52IvvPBC3FMBALDb+gu7xsbGmpqa\n/Ad7ax4AAPZQf2G3YsWKbT4AAGDQGtBr7N75znc+//zz22//53/+58MPPzzukQAA2BMDCrsn\nn3yys7Nzm429vb3PPffc+vXrCzAVAAC7bRe/7qSkpCT/wbve9a4dXmDmzJkxTwQAwB7ZRdg9\n9dRTjz322N/8zd+ceeaZo0aN2vqskpKScePGffrTny7keAAADNQuwm7GjBkzZsz41a9+dcst\nt0yaNGnvzAQAwB4Y0F+euP/++ws9BwAAb9GA3jzR3Nz8qU996m1ve1tZWVnJdgo9IgAAAzGg\nI3Z/9Vd/dd9995144ol/8Rd/UV4+oP8CAMBeNqBKe/jhh++9994zzzyz0NMAALDHBvRUbFdX\n17HHHlvoUQAAeCsGFHZHH330c889V+hRAAB4KwYUdgsWLPjiF7/4xBNPFHoaAAD22IBeY/c3\nf/M3r7322rHHHltbWzt69Ohtzn355ZfjnwsAgN00oLArLS097LDDDjvssN3d++bNm5csWfL0\n00/39PQceuihl1xySX4nHR0dixcvfuaZZ9Lp9OTJk5uamsaMGbPbswMAsJUBhd3jjz++Z3v/\n6le/WllZecMNN9TU1Cxbtmz+/Pl33XVXdXX1woULOzo65s6dW1VVld/+7W9/u7R0QM8LAwCw\nQwVsqfb29tGjR3/2s5899NBDDzjggIsuuiiRSGzYsKGlpWXlypVXXHHFhAkTxo0b19TUtGnT\npjVr1hRuEgCAfcGAjtiNGjVqZ2f19PQkEokdntXQ0HDdddf1nXzzzTdLS0tHjRr1wgsvVFRU\nTJgwIb+9vr5+/Pjxa9eunTFjxu5MDgDA/zGgsDv++OO32fLaa6+tWbNm4sSJJ5544kD20N7e\nftttt5111lkjRoxIJBINDQ1b/y2y4cOHt7W19Z384x//eO+99/ad7OrqSiaTHR0dA7migcjl\nctlsNsYdDhK9vb1RFHV1dfX09BR7lpjlcrnw1iuTyURRlEql0ul0sWeJWcDr1d3dnf8gJNls\ntrOzs9hTxCybzUZR1NPTk8vlij1LzDKZTDKZ9Pc8B6ft7/p6e3uTyWSMLzZLp9P9f1cPKOx+\n/vOfb7/x9ddf/8QnPvHhD394l/9948aNN95441FHHXXxxRfnt/T/Hblp06af/exnfScnTpzY\n3d2dSqUGMurAxb7DQSKdTocXCpH1GmpCXa/e3t78T1CBCXW9MplMeCEeRVF3d3exR2DHdnhT\nivebMJ6w26H999//1ltvbWpqOu200/q52NNPP/2Nb3zj/PPP/8hHPpLf0tjYmEgkcrlcX961\ntbWNGDGi77+8853v/MEPftB38tZbbx02bFhjY+Mej7qN/I+nDQ0Nce1wkEilUqlUqq6urqKi\notizxCyRSAwbNqzYU8Ssp6cnmUzW1tZWVlYWe5aYBbxeNTU1VVVVxZ4lZts/ixKA3t7ejo6O\nqqqqmpqaYs8Ss46OjtraWm83HJy2b5VkMllVVVVWVhbXVaTT6f5Xf8/DLoqi8ePH/+EPf+jn\nAn/4wx++/vWvf/7znz/66KP7Nk6aNCmdTq9fv/7tb397FEX5d1RMnTq17wINDQ1bnywrKysr\nKysvf0ujbi2bzZaUlMS4w0Eiv9Lxfq0Gj/A+qfyBH+s1VOR/5i4tLQ3vU8vfHwYWdvlDGqGu\nV/5hsdiDsAPbf7/l1yvG78Ndvrpgz5M/l8stWbJkv/3229kFenp6Fi5ceMYZZxx88MEt/yOV\nSo0cOfKYY4654447XnrppU2bNi1YsGDixImHH374Hk8CAEA0wCN2Rx111DZbMpnM66+/3tLS\ncs011+zsfz3//POvv/76smXLli1b1rdx9uzZp5122pw5cxYvXjxv3rxMJjNt2rTrr78+sB8W\nAQD2vj08NlhRUXHkkUeeeeaZTU1NO7vMjBkz/uVf/mWHZ9XW1l511VV7dtUAAOzQgMLuqaee\nKvQcAAC8RW/1bTUvv/xyHGMAAPBW7SLsHn/88Q996EOTJk360Ic+9Otf/3rrs7q7u//+7//e\nmx4AAAaJ/sJuxYoVJ5988oMPPtjT0/PII4+cdtppP/3pT/NnPfDAA0ccccT1119/0EEH7ZU5\nAQDYhf7C7mtf+1ptbe3q1atfeeWVjRs3Hn300XPnzt24ceO55577oQ996I033liwYMGaNWv2\n2qwAAPSjvzdPPP3005/61KdmzJgRRdGYMWNuvPHGD3/4w/lfL3zllVfOnz9/1KhRe2tOAAB2\nob+w27hx42GHHdZ3Mv/XIN7znvfcfvvt06dPL/hoAADsjv6eiu3t7d36r1jm//QlEucAACAA\nSURBVELitddeq+oAAAYhf0UYACAQwg4AIBC7+MsTf/rTn1asWJH/ePPmzVEUvfDCC42NjVtf\nZtasWQUaDgCAgdtF2N18880333zz1ls+97nPbXOZXC4X81AAAOy+/sJu7ty5e20OAADeov7C\nbt68eXtrDAAA3ipvngAACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLAD\nAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISw\nAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAhEebEHAGAwmv2bZcUeYV/3\n3fdeUOwRGHocsQMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiE\nsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAI\nhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMA\nCISwAwAIhLADAAhEebEH2LVcLpfJZHp7e+PaYTabzeVyMe5wkMhms1EUxfu1GjzC+6Ss19CS\nyWSiKMpms+F9avn7w5KSkmIPwrZ2+M2Wf0zM5XJ7fx52afsly69XQa9iG0Mg7LLZbCqV6urq\nimuHuVwum83GuMNBIv+t09PTE94DT8DrlU6n473NDwa5XC7g9coXeUhyuVwqlSr2FOzADm9H\n+cdEIT44bb9kmUymu7s7xvXa5b3QEAi7srKyurq6hoaGuHaYzWYTiUSMOxwkkslkb29vTU1N\nZWVlsWeJWTqdDm+9UqlUR0dHdXV1VVVVsWeJ2ebNm8Nbr+7u7vb29qqqqpqammLPErPW1tb6\n+nqhMAjt8HbU1tZWV1dXVla29+dhl7Zfsvb29pqamvLy2HIrnU6Xlvb3OjqvsQMACISwAwAI\nhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMA\nCISwAwAIhLADAAhEebEHAADeqguaU8UegUHBETsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7\nAIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAI\nOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBA\nlBd7AAAGo++sXF7sEfZ5772g2BMw9DhiBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcAEAhh\nBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEHABAI\nYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQ\nCGEHABAIYQcAEAhhBwAQiPJCX8GmTZsWLFiwbt26n//8530bOzo6Fi9e/Mwzz6TT6cmTJzc1\nNY0ZM6bQkwAAhK2wYfeb3/zmrrvuesc73rFu3bqtty9cuLCjo2Pu3LlVVVXLli2bP3/+t7/9\n7dJShw8BBotF+11Z7BH2dVcXewCGosK2VDqd/uY3vzlr1qytN7a0tKxcufKKK66YMGHCuHHj\nmpqaNm3atGbNmoJOAgAQvMKG3fvf//7Ro0dvs/HFF1+sqKiYMGFC/mR9ff348ePXrl1b0EkA\nAIJX8NfYbS+RSDQ0NJSUlPRtGT58eFtbW9/Jp59++rvf/W7fyY6Ojvb29q0v8BblcrlMJhPj\nDgeJbDYbRVFnZ2dXV1exZ4lZNpsNdb26urpSqVSxZ4lZwOuVSqV6enqKPUvMMplMIpEo9hTs\nwA5vR729ve3t7Vs/hjJ4bL9kmUwmk8nEuF7pdDp/d7QzRQi7KIr6/ww3b978X//1X30nJ06c\n2Nvbm06n450h9h0OEvnvoWJPEb9Q16u3t7fYIxREqOvl9sXetLN1CfV+IwA7XLL+OyyWq9ha\nEcKusbExkUjkcrm+vGtraxsxYkTfBd73vvf9/ve/7zs5e/bsESNGjBo1Kq4BstlsIpFobGyM\na4eDRDKZTCaTw4YNq6ysLPYsMdu8efPIkSOLPUXMUqlUR0dHQ0NDVVVVsWeJWZDr1d3d3d7e\nXldXV1NTU+xZYtba2trY2Lijn7df3vvDsLUdPvC1tbXV19eXlZVts/31vTIS/dt+ydrb22tq\nasrLY8utdDrd/5tNi/BG1EmTJqXT6fXr1+dPJhKJDRs2TJ06de9PAgAQksKGXWtra0tLS3t7\nexRFLS0tLS0tqVRq5MiRxxxzzB133PHSSy/lf8vdxIkTDz/88IJOAgAQvMI+FfuFL3yhubk5\n//Gll14aRdHll19+xhlnzJkzZ/HixfPmzctkMtOmTbv++uu9DhQA4C0qbNjdddddO9xeW1t7\n1VVXFfSqAQD2Nf7YAwBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0A\nQCAK+5cnAPrM/s2yYo+wr/vuey8o9ghAYTliBwAQCGEHABAIT8UCwJD3yBmLij0C0fnR8cUe\nwRE7AIBQCDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsA\ngEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7\nAIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAI\nOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBAlBd7AAAGowuaU8UeAdht\njtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEA\nBELYAQAEorzYAwD7iu+sXF7sEfZ5772g2BMAheWIHQBAIIQdAEAghB0AQCCEHQBAILx5giFs\n9m+WFXuEfd13vRgfYDBxxA4AIBDCDgAgEMIOACAQQ+A1dtlstru7O5VKxbXDXC6XzWZj3OEg\n0dvbG0VRT09PNpst9iwxy+Vy4a1XGHa4Ljtbr4rCz0P/+lmvkpKSvT8P/dvheuUfE0tLHZcZ\njLZfskwm09PTk3+AjkU6nc7lcv1cYAiEXRRF2Ww2k8nEtbf8VyTGHQ4S+c8r3q/V4BHkJxWA\nna3LDrcLu6Lb4brkf9bd+8OwSztbr0wm0/9DO8Wy/ZLFvl67fDQcAmFXWlpaU1NTV1cX1w6z\n2Wxvb2+MOxwkkslkOp2urq6urKws9iwx6+7uDm+9wrDDddnZemnzotvhuvT09NTW1m5/xK59\nr4xEP3a4Xr29vbW1tWVlZXt/HnZp+yXLZrM1NTXl5bHlVjqd7v/4umO5AACBEHYAAIEQdgAA\ngRB2AACBEHYAAIEYAu+KBWDve+SMRcUeYV93fnR8sUdg6HHEDgAgEMIOACAQwg4AIBDCDgAg\nEMIOACAQwg4AIBDCDgAgEMIOACAQfkExsJcs2u/KYo+wr7u62AMAheaIHQBAIIQdAEAghB0A\nQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQd\nAEAghB0AQCCEHQBAIMqLPQCwr7igOVXsEQAC54gdAEAgHLFjCPvOyuXFHmGf994Lij0BAP/L\nETsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgED4PXbAXvLIGYuKPcK+7vzo+GKP\nABSWI3YAAIEQdgAAgRB2AACB8Bq7/2P2b5YVe4R93Xf97VEA2FOO2AEABELYAQAEQtgBAATC\na+wYwhbtd2WxR9jXXV3sAQDYmiN2AACBEHYAAIEQdgAAgRB2AACBEHYAAIHwrliGsAuaU8Ue\nAQAGEUfsAAACIewAAAIh7AAAAuE1dv/Hd1YuL/YI+7z3XjDwyz5yxqLCDcJAnB8dX+wRAPhf\njtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABMIvKP4/3shcUuwR9nX7\nF3sAABi6HLEDAAiEI3b/hz9RVXT+RBUA7DFH7AAAAiHsAAACIewAAAIh7AAAAlGcN090dHQs\nXrz4mWeeSafTkydPbmpqGjNmTFEmAQAIRnGO2C1cuLC5uXnu3Lm33HJLbW3t/Pnzs9lsUSYB\nAAhGEcKupaVl5cqVV1xxxYQJE8aNG9fU1LRp06Y1a9bs/UkAAEJShLB78cUXKyoqJkyYkD9Z\nX18/fvz4tWvX7v1JAABCUoTX2CUSiYaGhpKSkr4tw4cPb2tr6zu5YsWKm2++ue9kXV1dW1tb\nfX19jDNks9nW1tYYd0hcdrguuVzOeg1O1mto2eG6ZLPZLVu27P1h2KWdrVcikdj7wzAQ2y9Z\nNptNp9NbN89blE6n+3/1WnHePBHjZxivU8YsLvYIey6Xy2Wz2dLS0kH75Y2d9RparNfQEsB6\nlZSUlJbuK7/8YUivVxRFmUxmn7p9FU4Rwq6xsTGRSORyub71a2trGzFiRN8FZs2a9Ytf/KLv\n5OzZs4cPH771Bd6i/I87jY2Nce1wkEgmk8lksr6+vrKystizxGzz5s0xfgMMEqlUqqOjo66u\nrqqqqtizxCzI9eru7m5vb6+pqampqSn2LDFrbW1tbGwM7AE1nU63tbVVV1fX1dUVe5aY5Z/C\nKisrK/YgccpkMq2trZWVlfE+OzcY5O83ystjy610Ot3/jytF+FFm0qRJ6XR6/fr1+ZOJRGLD\nhg1Tp07d+5MAAISkCGE3cuTIY4455o477njppZc2bdq0YMGCiRMnHn744Xt/EgCAkBTnNXZz\n5sxZvHjxvHnzMpnMtGnTrr/++sCeBQAA2PuKE3a1tbVXXXVVUa4aACBU+8rbhQAAgifsAAAC\nIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAA\nAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewA\nAAIh7AAAAiHsAAACIewAAAIh7AAAAlFe7AEG5L777hs+fHhce8vlcqlUqqamJq4dDhLpdLqn\np6e6urqsrKzYs8QsmUzW1tYWe4qY9fb2dnd3V1VVlZcPjZvhwAW8XpWVlRUVFcWeJWZdXV3V\n1dUlJSXFHiROmUwmlUpVVFRUVlYWe5aYpVKpysrK0tKgjstks9murq4g16u7u7uioiLG9cpk\nMv1foCSXy8V1ZQXy+OOPt7S0xLjDXC6XyWTCezRdu3btunXr3v3ud48ePbrYs8Sst7c3vPV6\n5ZVXnn322SOPPPLAAw8s9iwxC3K9Xn311dWrV0+dOvXQQw8t9iwxC3K93nzzzRUrVhx66KFT\np04t9iwx6+3tLSsrCyzE29vbH3/88fHjx8+YMaPYs8Qsk8mUlpbGu1719fUf/OAHd3buELgx\nn3DCCcUeYWhYvHjxP//zP1922WXHHntssWdh137605/+6Ec/+uhHP3raaacVexZ27aGHHvrH\nf/zH973vfR/96EeLPQu7tmrVqu9+97tHHXWU9RoSXnrppdtuu+3ggw+2Xm9dUMdyAQD2ZcIO\nACAQwg4AIBBD4M0TAAAMhCN2AACBEHYAAIEQdgAAgRgCv8eOHdq8efOSJUuefvrpnp6eQw89\n9JJLLjnssMOiKOro6Fi8ePEzzzyTTqcnT57c1NQ0ZsyYYg/L/1q+fPmiRYu+9KUvzZo1K7Je\ng9uvfvWr++67780333zb29520UUXvetd74os2WC1cePGu+++e+3atb29vRMmTPjkJz95+OGH\nR9ZrkNm0adOCBQvWrVv385//vG/jztbI2u0ZR+yGqq9+9astLS033HDDwoULR40aNX/+/FQq\nFUXRwoULm5ub586de8stt9TW1s6fPz+bzRZ7WP6/LVu2LF26dOu/mWO9Bq3ly5ffc889s2fP\nvvPOO08++eTvfe97yWQysmSDUi6Xmz9//ogRIxYvXrx06dLp06fPmzevvb09sl6DyW9+85sv\nfelL48eP32b7ztbI2u2hHENQIpG46aab/vu//zt/srm5+fTTT//jH//4xhtvnHHGGevXr89v\nb29vP+uss5566qniTcr/cfPNN3//+9//5Cc/+cQTT+RyOes1mH36059evnz5Nhst2eC0ZcuW\n008//fnnn8+f3Lx58+mnn7527VrrNagsX768ubn5iSeeOPPMM/s27myNrN0ec8RuSGpoaLju\nuuv6/sbom2++WVpaOmrUqBdffLGiomLChAn57fX19ePHj1+7dm3xJuV/PfHEE+vXr7/gggv6\ntlivQevNN998/fXXoyiaM2fOueeee80117zwwguRJRushg8fPmXKlPvvv7+9vT2VSt1///1j\nx4495JBDrNeg8v73v3/7P2W+szWydntM2A157e3tt91221lnnTVixIhEItHQ0LD1HxsePnx4\nW1tbEccjr6Oj48477/zsZz9bXV3dt9F6DVpvvvlmFEUPPfTQ3/7t3y5ZsmTy5Mk33HBDW1ub\nJRu0rr322nXr1l144YUf//jH77///muvvbaystJ6DX47WyNrt8eE3dC2cePGa665Zvr06Rdf\nfHF+y9Y3AwaP73//+zNnzjzqqKO22W69BrNPfOIT48ePb2houPTSS0tKSn7/+99HlmxQ6u3t\nnT9//pQpU37wgx/85Cc/Of300+fOndva2hpZr6FgZ2tk7faMsBvCnn766S9+8Yunn376lVde\nmb8BNDY2JhKJ3FZ/TaStrW3EiBHFm5EoiqKnnnpq1apVl1566TbbrdegNXLkyCiK6urq8ifL\nyspGjhzZ2tpqyQanNWvWvPTSS5dffvnw4cNra2vPOeecqqqq3/72t9Zr8NvZGlm7PSbshqo/\n/OEPX//616+++uqPfOQjfRsnTZqUTqfXr1+fP5lIJDZs2DB16tQizcj/9+CDD3Z2djY1NV14\n4YUXXnhhW1vbggULbr75Zus1aI0cOXLEiBH519VFUdTT0/PGG2+MHTvWkg1O+deMb/2Wyd7e\n3shd4lCwszWydnusbN68ecWegd3W09Pzd3/3d6eccsrMmTOT/6O0tLShoeGVV1555JFHJk+e\nnEwmv/Od79TV1V144YUOaBfXkUce+eGtPProo5dccsnZZ5/d2NhovQankpKSTCZz7733Hnro\noeXl5f/4j//Y3Nw8e/ZsN7HBafjw4fl3XOZ/d90vfvGLVatWXX755WPGjLFeg0dra2tnZ+cr\nr7yycuXKk08+uf+HrdraWmu3Z0q2Ps7JUPH0009/5Stf2Wbj7NmzTzvttGQyuXjx4tWrV2cy\nmWnTpjU1NTl2PdhcdNFFn/nMZ/K/oNh6DVrZbPaHP/zhQw891NHRMXny5M985jP596FbssHp\nlVdeWbp06R//+MdMJnPQQQf95V/+5RFHHBFZr8Hk8ssvb25u3mbLGWecsbM1snZ7RtgBAATC\na+wAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7IDdM2/evJKSkjFjxqTT6e3P\nvfzyy0tKSo4//vg92/l5551XX18/kEsef/zxU6ZM2dm5LS0tN91009FHHz1q1KiKiooxY8ac\ncsop//7v/953gVmzZvXz39+KN99885BDDrnsssv6tvzsZz/7+Mc/nv/4jTfeGDduXCGudxsD\n/0ruzPXXX7/ffvu9/PLLMU0E7A3lxR4AGHpKS0s3b978y1/+8qyzztp6e1dX109/+tOKiopi\nDZa3efPmd73rXc3NzZdeeunVV19dVla2fv36JUuWnHrqqT/60Y/OO++8KIrOO++8rq6u2K86\nm81ecMEFw4cPv/322/s2rlq16h3veMf2Hw9yN9xww3/8x3+cc845v/vd76qqqoo9DjAgwg7Y\nbaWlpe9+97vvvvvubcLuvvvu6+rqmjFjRrEGy1u6dOnLL7/8k5/85BOf+ETfxs985jNHHHHE\ntdde+/GPf7y0tPSqq64qxFUvW7bsgQceePTRR2tqavo2Pvnkk31Xt2rVqpkzZxbiqmNXVlZ2\nxx13TJ8+/fbbb//85z9f7HGAAfFULLDbent7P/KRj/zqV7/685//vPX2pUuXvu9979vm6M6v\nf/3rE044oaGhoaamZvr06d/61rf6/pJhLpebP3/+gQceWF1dfcQRR9x7773bXNFjjz32F3/x\nF8OGDautrZ05c+aSJUsGMt5rr70WRdHRRx+99cYRI0asWLHi+eefLy0tjbZ6Kvb3v/99yY48\n++yzuztDJpO58cYbTzjhhBNPPHHr7VvHXD9hd8IJJ7z3ve9dvXr1Bz7wgWHDho0ZM+b888/f\n+m9rFugr+dprr336058++OCDq6ur999//4997GMvvPBC/qypU6eec8453/jGNzo7O3f2WQOD\nSw5gd8ydOzeKohdffLG0tPSb3/xm3/aNGzeWlpYuWbJk1qxZxx13XH7jfffdV1JScsopp/z8\n5z9/6KGHrr766iiKvvCFL+TP/frXvx5F0YUXXvjggw/ec88906dPnzx5cl1dXf7chx56qKys\n7IQTTvjXf/3XBx54oKmpKYqivms87rjjJk+evMMJf/zjH0dRdPbZZ7e2tu7ss3jPe96T/++J\nROLBrfzbv/3b6NGjx48fv2XLll3OsI3HHnssiqIlS5bkT95yyy1VVVX5zK36HyUlJfkPNm7c\nuM1//8AHPnDggQe+613vevDBB//85z/fe++9ZWVlF198caG/krNmzdp///3vuuuuhx9++Ec/\n+tERRxwxZsyYzs7O/Lm//OUvoyi65557dvaVBAYVYQfsnnzYdXV1nXzyydOmTevb/rWvfa2m\npiaRSLznPe/pC7spU6YcdNBB3d3dfRc766yzKioqWlpastnsuHHjpk+f3nfWq6++WlFR0Zcj\n73jHO97+9rf3FUYulzvjjDMaGhq6urpy/YZdJpPJv1mhqqrq1FNP/frXv75ixYpMJrP1ZfrC\nbhuXXHJJVVXVf/7nfw5khm185StfiaJom2K79957P/rRj+Y/fv3118eNG7fDmXO53Ac+8IEo\nin77299uvaXv8gX6Sra1tUVRdO211/adtW7duptuumnTpk35k52dnZWVlZdddtnOxgYGFU/F\nAnvoU5/61HPPPbdy5cr8yaVLl5511lkNDQ19F3j11VdfeOGFU089tbKysm/j6aefnk6nV6xY\nsWHDhldfffX9739/31kHHHDAO9/5zvzHzc3Nq1evPu2000pLS1P/49RTT21vb1+zZk3/g5WW\nlt5zzz3333//xz72saeeeuqLX/zirFmzxo4de9111yWTyX7+4z/8wz/cfffdt99++7vf/e49\nmGHVqlVjx45929vetvXG3/3ud33vEf7d73537LHH9jNAbW3tcccd13dy/Pjxr7/+elTIr2RN\nTc1+++334x//ePny5dlsNoqiiRMnXnfddX1v3a2trZ0yZcqTTz7Zz9jA4CHsgD109tlnNzQ0\n3H333VEUrVy58vnnn7/ooou2vsCmTZuiKNomdA444IAoil599dV8sowePXrrc/t64tVXX42i\naNGiRTVbyT+HuHHjxoGM96EPfehHP/rRpk2b1q9f/73/1979hTT1hnEAf8/cVmgtk2mWy2SG\nKDSdXoRRJqibeBUTjVRwYHPQTJQupCBL8aaUEjJQDBd60XD+6Q8yxxj0x+FuTPOi8A+uixQm\nHkq80NTN87s4dDicwtxKzP2+n6tz3vOe7fG9kIfnPefZkycpKSn37t3Ly8tj05efud3u2tpa\no9FoMBiCi2FpaUkulwsGXS4Xl6u5XK7tEzvBaojFYjba3VtJiUTy8uVLkUiUl5cXExNTVFT0\n7Nkzn8/H/yi5XE7T9DZhA8C/A2/FAkCQwsPDi4uLLRbLw4cPu7u7jx8/rtFo+BMoiiKECBIp\nhmEIISKRiPnx4D+f3+/nn1ZUVFRWVgrmnD59OqA4lUqlUqm8evWqwWAwm80ul+vixYuCOV6v\nt6ioKD09va2tTXBp5zGsrKxERUVxpwqFgqbp9fV17us2NjYkEsmtW7dKS0t3+CIIa1dX8vz5\n87Ozs2/fvh0eHrbZbGVlZa2tre/eveNe7I2MjFxeXt55tACwh5DYAUDw9Hq92Wx2OBy9vb16\nvT4sLIx/VaFQkB/VJg57qlAo2AoTW23icO1w4+PjCSF+vz8zMzOgkNbX1/v7+yMiIgStWCiK\nys7ONpvNX758Edyyubl5+fJlv98/MDDA3+sMNAaZTMY+ssaan593u911dXUjIyOEEJ/Pd/To\nUZqmg+gJt9srGRYWlpOTk5OT09LS0t7ebjKZrFarXq9nry4vLx85ciTQmAFgT2ArFgCCl5WV\npVQqm5qaaJoW7MMSQmJjY8+cOTM0NPT9+3ducHBwMDw8/Ny5cwkJCXK53G63c4WomZmZyclJ\n9jgqKurs2bMvXrzg14p6enpu374t2CgUkEqljY2NRqPR4/Hwx/1+f19fHyEkNTVVcMuNGzfc\nbrfVahXsdQYaQ3R0tGDL8sOHD2q1mj3+9OlTYmJicJ1+d28l379/f+XKFX5TFa1WSwhZWlri\nRmiaFuzzAsA/C4kdAASPoqjy8vKxsbG0tLSfEyZCyP37971e76VLl169emW3200mk91ur6+v\nl8lkIpHo2rVrc3NzxcXFg4ODHR0dWq2W3+Otubl5dXU1Ozu7p6fH4XDU19cbDIaFhQWxeLut\nBoqiOjs719bW1Gq10Wh89OhRV1dXU1NTRkbG0NBQdXW1SqXiz7darY8fU3tKhgAAAfpJREFU\nPy4sLNzY2HDysHlhQDGo1erFxUV+XY2f2E1MTPxJa+JdWsm4uDibzabRaMxms9Pp7O3tLS8v\nl8lkOp2OvXd1dXV6enq//FoGAKDdCQAEhmt3wp56PB6Koh48eMBN4Lc7YRjG4XBcuHAhIiLi\nwIED6enpXJs3hmF8Pt/NmzdjY2OlUqlKpXr+/Pn169elUik3YWRkRKPRHD58WCKRJCUlNTc3\nb25uspe2aXfCMMzHjx8rKirYCplYLD527FhBQUF/fz8/SPb2mpqaX/5vvHv37m9jEHj9+jUh\n5OnTp/xvGRsbY49ramra2tq2Wdjc3NxTp07xR9gfnN3tlZycnNTpdDExMRKJ5MSJEzqdbnx8\nnLvRZrMRQiwWyzaRA8C/g2J+9dQtAAAEyufzJScnnzx5ks3wQkNJSYnT6fz8+fOhQ4f2OhYA\n+D1sxQIA/B1isfjOnTtv3rxh35YIAVNTU1arta6uDlkdwH6Bih0AwF+ztbWVn59P07Tb7T54\n8OBeh/NHtra2tFrt169fR0dH9/vfAvD/gYodAMBfIxKJLBbLt2/fqqqq9jqWP9XQ0DA+Pj4w\nMICsDmAfQcUOAAAAIESgYgcAAAAQIpDYAQAAAIQIJHYAAAAAIQKJHQAAAECIQGIHAAAAECKQ\n2AEAAACECCR2AAAAACHiP6WXkP19M9alAAAAAElFTkSuQmCC",
673 "text/plain": [
674 "plot without title"
675 ]
676 },
677 "metadata": {
678 "image/png": {
679 "height": 420,
680 "width": 420
681 },
682 "text/plain": {
683 "height": 420,
684 "width": 420
685 }
686 },
687 "output_type": "display_data"
688 }
689 ],
690 "source": [
691 "SatelliteRQ2Raw <- rbind(\n",
692 " Load10Log(\"measurements/stats/Satellite//size020to-1r10n10rt3600stats.csv\", 20),\n",
693 " Load10Log(\"measurements/stats/Satellite//size040to-1r10n10rt3600stats.csv\", 40),\n",
694 " Load10Log(\"measurements/stats/Satellite//size060to-1r10n10rt3600stats.csv\", 60),\n",
695 " Load10Log(\"measurements/stats/Satellite//size080to-1r10n10rt3600stats.csv\", 80),\n",
696 " Load10Log(\"measurements/stats/Satellite//size100to-1r10n10rt3600stats.csv\", 100)\n",
697 ")\n",
698 "SatelliteRQ2 <- SatelliteRQ2Raw%>% ProcessRQ2\n",
699 "SatelliteRQ2\n",
700 "median(SatelliteRQ2Raw$preprocessingTime) / 1000.0\n",
701 "SatelliteRQ2 %>% RQ2Plot('Satellite')"
702 ]
703 },
704 {
705 "cell_type": "markdown",
706 "metadata": {},
707 "source": [
708 "### Tax domain"
709 ]
710 },
711 {
712 "cell_type": "code",
713 "execution_count": 50,
714 "metadata": {},
715 "outputs": [
716 {
717 "name": "stderr",
718 "output_type": "stream",
719 "text": [
720 "Warning message:\n",
721 "“`cols` is now required when using unnest().\n",
722 "Please use `cols = c(Solution1DetailedStatistics)`”\n",
723 "Warning message:\n",
724 "“`cols` is now required when using unnest().\n",
725 "Please use `cols = c(Solution1DetailedStatistics)`”\n",
726 "Warning message:\n",
727 "“`cols` is now required when using unnest().\n",
728 "Please use `cols = c(Solution1DetailedStatistics)`”\n",
729 "Warning message:\n",
730 "“`cols` is now required when using unnest().\n",
731 "Please use `cols = c(Solution1DetailedStatistics)`”\n",
732 "Warning message:\n",
733 "“`cols` is now required when using unnest().\n",
734 "Please use `cols = c(Solution1DetailedStatistics)`”\n"
735 ]
736 },
737 {
738 "data": {
739 "text/html": [
740 "<table>\n",
741 "<caption>A tibble: 5 × 7</caption>\n",
742 "<thead>\n",
743 "\t<tr><th scope=col>n</th><th scope=col>preprocessingTime</th><th scope=col>StateCoderTime</th><th scope=col>ForwardTime</th><th scope=col>BacktrackingTime</th><th scope=col>NumericalSolverSumTime</th><th scope=col>additionalTime</th></tr>\n",
744 "\t<tr><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th></tr>\n",
745 "</thead>\n",
746 "<tbody>\n",
747 "\t<tr><td> 20</td><td>156.6110</td><td>0.0390</td><td>1.9825</td><td>2.3225</td><td>1.5325</td><td>1.9990</td></tr>\n",
748 "\t<tr><td> 40</td><td>145.8325</td><td>0.1520</td><td>3.0100</td><td>2.7595</td><td>2.7345</td><td>2.4120</td></tr>\n",
749 "\t<tr><td> 60</td><td>156.0370</td><td>0.3870</td><td>4.4595</td><td>3.4015</td><td>4.1200</td><td>3.2555</td></tr>\n",
750 "\t<tr><td> 80</td><td>148.0285</td><td>0.6785</td><td>6.2100</td><td>3.8615</td><td>5.6045</td><td>4.9620</td></tr>\n",
751 "\t<tr><td>100</td><td>142.0205</td><td>0.8895</td><td>6.4795</td><td>3.8965</td><td>6.3855</td><td>5.2630</td></tr>\n",
752 "</tbody>\n",
753 "</table>\n"
754 ],
755 "text/latex": [
756 "A tibble: 5 × 7\n",
757 "\\begin{tabular}{lllllll}\n",
758 " n & preprocessingTime & StateCoderTime & ForwardTime & BacktrackingTime & NumericalSolverSumTime & additionalTime\\\\\n",
759 " <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl>\\\\\n",
760 "\\hline\n",
761 "\t 20 & 156.6110 & 0.0390 & 1.9825 & 2.3225 & 1.5325 & 1.9990\\\\\n",
762 "\t 40 & 145.8325 & 0.1520 & 3.0100 & 2.7595 & 2.7345 & 2.4120\\\\\n",
763 "\t 60 & 156.0370 & 0.3870 & 4.4595 & 3.4015 & 4.1200 & 3.2555\\\\\n",
764 "\t 80 & 148.0285 & 0.6785 & 6.2100 & 3.8615 & 5.6045 & 4.9620\\\\\n",
765 "\t 100 & 142.0205 & 0.8895 & 6.4795 & 3.8965 & 6.3855 & 5.2630\\\\\n",
766 "\\end{tabular}\n"
767 ],
768 "text/markdown": [
769 "\n",
770 "A tibble: 5 × 7\n",
771 "\n",
772 "| n &lt;dbl&gt; | preprocessingTime &lt;dbl&gt; | StateCoderTime &lt;dbl&gt; | ForwardTime &lt;dbl&gt; | BacktrackingTime &lt;dbl&gt; | NumericalSolverSumTime &lt;dbl&gt; | additionalTime &lt;dbl&gt; |\n",
773 "|---|---|---|---|---|---|---|\n",
774 "| 20 | 156.6110 | 0.0390 | 1.9825 | 2.3225 | 1.5325 | 1.9990 |\n",
775 "| 40 | 145.8325 | 0.1520 | 3.0100 | 2.7595 | 2.7345 | 2.4120 |\n",
776 "| 60 | 156.0370 | 0.3870 | 4.4595 | 3.4015 | 4.1200 | 3.2555 |\n",
777 "| 80 | 148.0285 | 0.6785 | 6.2100 | 3.8615 | 5.6045 | 4.9620 |\n",
778 "| 100 | 142.0205 | 0.8895 | 6.4795 | 3.8965 | 6.3855 | 5.2630 |\n",
779 "\n"
780 ],
781 "text/plain": [
782 " n preprocessingTime StateCoderTime ForwardTime BacktrackingTime\n",
783 "1 20 156.6110 0.0390 1.9825 2.3225 \n",
784 "2 40 145.8325 0.1520 3.0100 2.7595 \n",
785 "3 60 156.0370 0.3870 4.4595 3.4015 \n",
786 "4 80 148.0285 0.6785 6.2100 3.8615 \n",
787 "5 100 142.0205 0.8895 6.4795 3.8965 \n",
788 " NumericalSolverSumTime additionalTime\n",
789 "1 1.5325 1.9990 \n",
790 "2 2.7345 2.4120 \n",
791 "3 4.1200 3.2555 \n",
792 "4 5.6045 4.9620 \n",
793 "5 6.3855 5.2630 "
794 ]
795 },
796 "metadata": {},
797 "output_type": "display_data"
798 },
799 {
800 "data": {
801 "text/html": [
802 "150.1755"
803 ],
804 "text/latex": [
805 "150.1755"
806 ],
807 "text/markdown": [
808 "150.1755"
809 ],
810 "text/plain": [
811 "[1] 150.1755"
812 ]
813 },
814 "metadata": {},
815 "output_type": "display_data"
816 },
817 {
818 "data": {
819 "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAIAAAByhViMAAAACXBIWXMAABJ0AAASdAHeZh94\nAAAgAElEQVR4nOzdeXzcdZ348e9MruZq0tILqEJboRQKFVAsNyIogiAqKhSlckgL7rLIAoKy\nW2hd0EUtyCFWLBYRRFFgvZBDTi0+KpRTQFqh0iKm6ZH7mOv3x/zMZps0TcNMZ/Lp8/kHj8w3\nw8w7eTfJK9+ZJLFMJhMBADD8xQs9AAAAuSHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAA\nAiHsAAACUVroAbbsK1/5ygsvvJDb20yn0/F4aFGbyWQymUwsFovFYoWeJcfsa3ixr+HFvoaX\nIPcVRVE6nQ51Xzl/u8aPH79o0aLNvXYYhF1jY+P111//jne8I1c3mE6nm5ub6+vrc3WDRaK9\nvb29vX3kyJHl5eWFniXH1q9fP3r06EJPkWOdnZ2tra21tbUVFRWFniXHgtxXV1dXS0tLdXV1\nZWVloWfJsQ0bNtTX1wf2BTWRSDQ1NVVWVlZXVxd6lhxramqqqakpKSkp9CC5lEqlNmzYMGLE\niJqamkLPkmMtLS2VlZWlpTnLrUQicdJJJw1whQCrHwBg+yTsAAACIewAAAIh7AAAAiHsAAAC\nIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAA\nAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewA\nAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAlFa6AEAgLdrzuO3F3oEou8e\nOqvQIzhjBwAQCmEHABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQ\niOHxJ8UymUwmk8nhrfX8NyQ9b1d4b1pkX8NNeG+UfQ0vPW9ReG9aFO6/wwD0u5d8NMwAhkHY\npVKplpaWpqam3N5mbm+wGKTT6SiK2tvbOzo6Cj1LjqXT6fD2lf3g7Ojo6OzsLPQsORbkvrIf\nX52dnd3d3YWeJcdSqVRzc3Ohp8ix7MdXV1dXIpEo9Cw5lv2aGIvFCj0I/ej7qS+dTieTyRzu\nK5FIZD8dbc4wCLuSkpKRI0fW19fn6gbT6XRzc3MOb7BItLe3t7e3V1dXl5eXF3qWHFu/fn14\n++rs7Gxtba2qqqqoqCj0LDkW5L66urpaWloqKysrKysLPUuObdiwoa6uLrBQSCQSTU1NFRUV\n1dXVhZ4lx5qammpqakpKSgo9CP3o+6kv+3mjtDRnuZVIJOLxgZ5H5zl2AACBEHYAAIEQdgAA\ngRB2AACBEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYA\nAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2\nAACBEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYAAIEo\nLfQAABSjOY/fXugRtnffPXRWoUdg+HHGDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDC\nDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQ\nwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAg\nEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQpXm99fXr1y9evPjZZ5/t7u6e\nPHny6aefvvvuu0dR1NraumjRoueeey6RSEydOnXu3Lnjxo3L6yQAAMHL7xm7r371q42NjVdc\nccU111wzZsyY+fPnd3Z2RlF0zTXXNDQ0zJs37+qrr66qqpo/f346nc7rJAAAwctj2LW0tIwd\nO/YLX/jC5MmTd9xxx9NOO625ufmNN95obGxctmzZ2WefPWnSpJ122mnu3Llr1qx5/vnn8zcJ\nAMD2II8PxdbW1l566aU9F9etWxePx8eMGfPyyy+XlZVNmjQpe7ympmbixImvvPLKjBkzskfW\nr1+/YsWKnv8xkUgkk8lEIpGrwTKZTCaTyeENFonsWc9kMhmLxQo9S+6Ft69UKpX9b3hvWmRf\nw00ikQjy88Zw1+8/tkwmk0wmPcxVnPquLJ1OJ5PJTCaTw7sY+Nby+xy7Hi0tLdddd92JJ544\natSo5ubm2tra3p9E6urqmpqaei4+++yzF110Uc/FKVOmtLS09L5CTuT8BotEe3t7oUfIC/sa\nXkLdV2dnZ/b5JIFpbm4u9Aj0Y3MfRy0tLdt4Egap35Xl9rvBogi71atXL1iw4N3vfvfs2bOz\nRwb+1nCXXXbpuWYURX/6059GjBhRWVmZq3kymUx3d3dFRUWubrBIZM9rlpeXl5SUFHqWHOvs\n7BwxYkShp8ixVCrV3d1tX8NFdl9lZWWlpdvo++FtJsh9haHfL3xdXV3l5eXOsBanvivr7u4u\nLS2Nx3P2zLfS0tKBt5/3z1DPPvvsf//3f59yyikf+chHskfq6+ubm5szmUzPZE1NTaNGjer5\nXyZPnvyv//qvPRfnzJlTWVlZXV2dq5Gy50VzeINFor29PZFIjBgxory8vNCz5FhXV1d4++rs\n7Mx+gxHe9xhB7qurqysb4jn8JrNIdHd3V1VVCYUi1O/HUTKZrKysDO8bwjD0XVk6na6srMzh\nN4RbfOJEfn8q9s9//vPXv/71Cy64oKfqoijabbfdEonEypUrsxezP1Exbdq0vE4CABC8PIZd\nd3f3Nddcc8IJJ+yyyy6N/9TZ2Tl69OgDDzzwhhtueO2119asWbNw4cIpU6bsueee+ZsEAGB7\nkMeHYl966aW33nrr9ttvv/3223sOzpkz57jjjjvvvPMWLVp0+eWXp1Kpvfba67LLLvMoAADA\n25THsJsxY8b//M//9Puqqqqq888/P393DQCwHfK3YgEAAiHsAAACIewAAAIh7AAAAiHsAAAC\nIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAA\nAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewA\nAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHs\nAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh\n7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAAC\nIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAJRWugBAIC368ZlDxV6BKLo0FmF\nnsAZOwCAUAg7AIBACDsAgEAMg+fYpdPpjo6Otra2XN1gJpNJp9M5vMEikUwmoyjq7OxMJBKF\nniXHMplMePtKpVJRFHV1dWUXF5KA99Xd3Z1Opws9S46l0+n29vZCT0E/+v04SqVS7e3t8fim\n52VGbJORGFjflSWTyY6Ojr77GrJEIpHJZAa4wjAIuyiK4vF4SUlJrm4t+x7J4Q0WiewXnty+\nr4pHeG9Utg/sa7jIft4Icl+xWCwej8disUIPwqb6/ccWi8VKSkpyGArkUN+V5XxfW/zechiE\nXTwer6ioGDEiZ9+NpNPprq6uHN5gkUin093d3eXl5eXl5YWeJcfa29vD21cURV1dXWVlZRUV\nFYUeJMeC3FdXV1dnZ2dpaWl4b1pHR8eIESOEXRHq9x9bV1dXRUVF34BIbZORGFjflSUSifLy\n8tLSnOVWSUnJwB+tkh8AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIO\nACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDC\nDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQ\nwg4AIBDCDgAgEMIOACAQpYUeAIBidOOyhwo9wnbv0FmFnoDhxxk7AIBACDsAgEAIOwCAQAg7\nAIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAI\nOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBAlBZ6AGB7Mefx2ws9wvbu\nu4fOKvQIQH45YwcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEHABAI\nYQcAEAhhBwAQCGEHABAIYQcAEIjSfN/BmjVrFi5cuGLFinvuuafn4Hnnnff666/3XBwxYsRP\nfvKTfE8CABC2/Ibd448/fvPNN++7774rVqzofby1tfXss8+eOXNm9mI87sQhAMDbld+wSyQS\n3/jGN1auXPnII4/0Pt7S0jJhwoQxY8bk9d4BALYr+Q27I488MoqilStX9j6YSCS6urqWLl16\n2223tbS0vOtd7zrttNN23nnnvE4CABC8vD/Hrq/29vb6+vpkMnnuuedGUXTHHXdceuml3/nO\nd6qrq7NXePHFF3/4wx/2XL+tra2tra2lpSVXA2QymXQ6ncMbLBKpVCqKoo6Ojq6urkLPkmOZ\nTCbUfXV2dnZ3dxd6lhwLcl9h6Hcv6XS6tbW17/Gq/M/DwPrdVyqVamtri8Vimxy3r2LQd2XJ\nZLK9vb3vvoYskUik0+kBrlCAsKurq7v11lt7Ll588cWzZ8/+wx/+cPTRR2ePNDQ0PPjggz1X\nmDJlSnd3d85jJbz6yUokEoUeIS/sa3gJdV/D3eb20u9xoVBwm9tXv98N2lcx6Hdl2W/jc2WL\nXzUKEHabqKysHDt2bGNjY8+RmTNn3nvvvT0X582bN3LkyFGjRuXqHrPfno4cOTJXN1gkOjs7\nOzo6ampqysrKCj1Ljm3cuLG+vr7QU+RYV1dXe3t7dXV1eXl5oWfJsSD3FYZ+P5E2NTWNHDky\nh2cUyJV+99XS0lJVVVVSUrLt52GL+q6sra1txIgROdxXIpEY+EdOCxB2q1at+sUvfjF37tzS\n0tIoijo7O9euXTthwoSeK1RWVvZ+yl3JP+VqgFgsFovFwvuoyH5ejsfjQb5p4b1R2Y9M+2Jb\n6ncv2X31DbtcnmRgSAbYV99X2Vcx6LuXWCyW28/zAz8OG+U77DZs2JBKpbIPOWfPydXU1Iwe\nPXrp0qXJZPLkk09OpVK33nprTU3NQQcdlNdJAACCl9+wu+iiixoaGrIvn3HGGVEUnXXWWSec\ncMKCBQtuueWW888/v6ysbOrUqVdddVVFRUVeJwEACF5+w+7mm2/u9/jkyZMXLFiQ17sGANje\n+JMPAACBEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYA\nAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2\nAACBEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYAAIEQ\ndgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACB\nEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAA\ngRB2AACBEHYAAIEQdgAAgRB2AACBKB3Mldra2n75y1/ef//9Tz/9dGNj48aNG+vq6saOHbvf\nfvt98IMf/MhHPlJdXZ3vQQEAGNgWzth1dXV985vfnDRp0sknn3zbbbel0+ndd9/9gx/84NSp\nU9Pp9G233XbyySdPmjTpm9/8ZldX17aZGACAfg10xu71118/6aSTli9fftJJJ82ePfuII46o\nqqrqfYX29vZHHnlkyZIlF1988R133HHXXXftuuuu+Z0XAIDNGOiM3X777Tdy5MgXXnjhzjvv\nPPbYYzepuiiKqqqqjj322DvvvPOFF14YOXLk/vvvn89RAQAYyEBh94UvfOGBBx6YNm3aFm9l\n2rRpDzzwwDnnnJO7wQAA2DoDPRS7YMGCnpfb29ubmpp23HHHKIo6OjruvPPOdevWfexjH5s8\neXL2CiUlJV/96lfzOisAAAMY1K87efnllydNmrRkyZIoipLJ5GGHHXb66adfeOGF++233/Ll\ny/M8IQAAgzKosPvKV74yfvz4T37yk1EU/fjHP/7Tn/504403rlixYq+99rryyivzPCEAAIMy\nqLB74oknLrnkkilTpkRR9POf/3z69OnnnHPOlClTvvCFL/zxj3/M84QAAAzKoMJu48aN2WfX\npVKpRx555Nhjj80eHzt27D/+8Y88TgcAwKANKuzGjx//17/+NYqi3/3udxs2bDjmmGOyx994\n440ddtghj9MBADBog/qTYh/84Acvu+yyFStW3HHHHVOmTDnssMOiKGpoaLj22msPPvjgPE8I\nAMCgDCrsFixY8OKLL37ta18bM2bML37xi5KSkiiKzjvvvFWrVv3whz/M84QAAAzKoMJuxx13\nXLp0aXNzc2VlZVlZWfbghRdeeO21144fPz6f40VRFCWTyY0bN/b9uxdvRyaTWbduXQ5vsHg0\nNzfHYrFCT5FjAe+rtbW1tbW10FPkWMD7Gu763Usmk1m/fn3f4/X5n4eBbW5fGzdu7HvcvopB\nvyvr7u7O4V0kEol0Oj3AFQYKuzPOOOOGG26orKzMXhw5cmTv177nPe/pfbGjo+Nf/uVfvv/9\n7w911M2PWFpaX1+fwyfzpdPp5ubm+vrQPgra29vb29tHjhxZXl5e6FlybP369aNHjy70FDnW\n2dnZ2tpaU1NTUVFR6FlyLMh9haHfT6QbNmyor6/v+w1hapuMxAD63VdTU1NNTU32obPe7KsY\n9F1ZS0tLZWVlaemgzqMNRiKRiMcH+gGJgV73u9/9bubMmY8++ugW7+bRRx+dOXPmQw89tNUD\nAgCQIwOF3VNPPTVhwoQjjjji8MMPv+WWW9asWbPJFdasWXPLLbccfvjhRxxxxIQJE5566ql8\njgoAwEAGOje4ww47/OY3v7n99tuvuOKKM844I4qi8ePHjxkzpq6urqmpqbGxMftL7Hbbbbcf\n/vCHs2bNGvjcIAAAebWFB33j8fhnPvOZU0455YknnnjwwQeXL1++du3a9evXjxw5ctddd913\n332POuqoQw45pO+D/QCbuHGZZ2sU2qGzCj0BkF+DejZfSUnJ4Ycffvjhh+d7GgAAhsyDpwAA\ngRB2AACBEHYAAIEQdgAAgRB2AACB2Iqw6+zsXLZs2d13393Y2BhFUTKZzNtUAABstcGG3Te/\n+c1x48YdcMABH//4x1esWBFF0bx5804//XR5BwBQJAYVdt/73vcuvPDC97///TfddFPPwalT\np952220LFy7M22wAAGyFQYXd9ddfP3fu3HvvvXf27Nk9B0877bSLLrro5ptvzttsAABshUGF\n3V/+8pdPfOITfY8fccQRr732Wq5HAgBgKAYVdiNHjuzs7Ox7vKmpqbKyMtcjAQAwFIMKu332\n2ecb3/hGR0dH74Pr16+fP3/+zJkz8zMYAABbp3QwV/rKV75y1FFH7bPPPscdd1wURd/73vdu\nuummu+++u6Ojo/ePUwAAUECDOmN3xBFH/Pa3v62trb322mujKFq8ePGSJUv22GOPBx544OCD\nD87zhAAADMqgzthFUfSBD3zg6aefbmhoePPNN6Mo2mWXXUaNGpXPwQAA2DqDDbusysrKXXfd\nNfvyxo0bsy/U19fndiYAAIZgUGH317/+9bzzznvkkUfa2tr6vjaTyeR6KgAAttqgwu7MM89c\nvnz5iSeeuOOOO5aUlOR7JgAAhmBQYbds2bL777//oIMOyvc0AAAM2aB+Kra6urrnqXUAABSn\nQYXdZz/72cWLF+d7FAAA3o5BPRR75ZVXHnfccffdd9+BBx64ww47bPLaSy65JA+DAQCwdQYV\ndt/61rcefPDBKIp+//vf932tsAMAKAaDCrtvf/vbn/jEJ774xS9OmDDBT8UCABSnQYXd+vXr\nv/3tb++00075ngYAgCEb1A9P7LnnnmvXrs33KAAAvB2DCrtrrrnmggsueO655/I9DQAAQzao\nh2K//OUvr1q1asaMGTU1NX1/Kvb111/P/VwAAGylQYVdPB6fOnXq1KlT8z0NAABDNqiwe+yx\nx/I9BwAAb9OgnmMHAEDxG+iM3R577DF79uxLL710jz32GOBqL7/8cq6nAgBgqw0UdvX19ZWV\nldkXttU8AMBWu3aHcwo9AtEFhR4gGjjsnnzyyU1eAACgaA3qOXbvec97Xnrppb7Hf/azn+25\n5565HgkAgKEYVNg99dRTbW1tmxxMJpMvvvjiypUr8zAVAABbbQu/7iQWi2VfeO9739vvFfbb\nb78cTwQAwJBsIeyeeeaZRx999N/+7d8++tGPjhkzpverYrHYTjvt9PnPfz6f4wEAMFhbCLsZ\nM2bMmDHj17/+9dVXX73bbrttm5lgkOY8fnuhR9jefffQWYUeAYD/Nai/PHHfffflew4AAN6m\nQf3wRENDw+c+97mdd965pKQk1ke+RwQAYDAGdcbuX/7lX+6+++7DDz/86KOPLi0d1P8CAMA2\nNqhK+93vfnfXXXd99KMfzfc0AAAM2aAeiu3o6DjooIPyPQoAAG/HoMJu//33f/HFF/M9CgAA\nb8egwm7hwoVf+tKXli5dmu9pAAAYskE9x+7f/u3f/v73vx900EFVVVVjx47d5LWvv/567ucC\nAGArDSrs4vH47rvvvvvuu+d7GgAAhmxQYffYY4/lew4Aisq1O5xT6BG2dxcUegCGo0E9xw4A\ngOI3qDN2Y8aM2dyruru7m5ubczcPAABDNKiwO+SQQzY58ve///3555+fMmXK4YcfnoepAADY\naoMKu3vuuafvwbfeeuvTn/70hz/84VyPBADAUAz9OXYTJkz45je/OW/evBxOAwDAkL2tH56Y\nOHHin//851yNAgDA2zH0sMtkMosXL95hhx1yOA0AAEM2qOfYvfvd797kSCqVeuuttxobGy+8\n8MI8TAUAwFYbVNj1VVZWts8++3z0ox+dO3dubgcCAGBoBhV2zzzzTL7nAADgbRriGbser7/+\n+q677pqLSQCAIZrV0FnoESgKW/jhiccee+xDH/rQbrvt9qEPfeg3v/lN71d1dXX913/91557\n7pnP8QAAGKyBwu7JJ5886qijHnjgge7u7ocffvi444776U9/mn3V/fffv/fee1922WXvfOc7\nt8mcAABswUBh97Wvfa2qqmr58uWrVq1avXr1/vvvP2/evNWrV3/yk5/80Ic+tHbt2oULFz7/\n/PPbbFYAAAYw0HPsnn322c997nMzZsyIomjcuHELFiz48Ic/vNtuuyUSiXPOOWf+/PljxozZ\nVnMCALAFA4Xd6tWrd999956L06ZNi6Lofe973/XXXz99+vS8jwYAwNYY6KHYZDJZXl7ec7Gi\noiKKoksuuUTVAQAUobf76062aM2aNQsXLlyxYsU999zTc7C1tXXRokXPPfdcIpGYOnXq3Llz\nx40bl+9JAADCNvS/FTsYjz/++Je//OWJEyducvyaa65paGiYN2/e1VdfXVVVNX/+/HQ6nddJ\nAACCt4Uzdn/961+ffPLJ7Mvr16+Poujll1+ur6/vfZ2ZM2du7n9PJBLf+MY3Vq5c+cgjj/Qc\nbGxsXLZs2cKFCydNmhRF0dy5cz/72c8+//zz2Z/SAABgaLYQdlddddVVV13V+8gXv/jFTa6T\nyWQ2978feeSRURStXLmy98FXX321rKwsW3VRFNXU1EycOPGVV17pCbtkMtne3t779rO28KYM\nWvamcniDRaLn7QrvTYtC3FcYNrcX+ypOW7Uvf8mg4AbYlw+x4tTvXvLRMAMYKOzmzZuXqzl6\na25urq2tjcViPUfq6uqampp6Lj7++OMXXXRRz8UpU6Zs3Lixqqoqt2OsW7cutzdYJFpaWgo9\nQl6Euq/hbnN76ff4qDwPwxZtbl/ZB2QoNpvb18aNG7fxJAxSvyvr6urK4V0kEomBn702UNhd\nfvnlORylt95V19fo0aMPOOCAnotNTU2lpaVlZWW5uvdMJpNKpUpL8/6DI9tYOp1OpVIlJSXx\neH6fOrntJRKJHP4DIIf63Yt9Fa2t2lcy//MwsP73kkyWlJT0/TJqX8Wg78pSqVQ8Hh84e3Kr\nAHFTX1/f3NycyWR63s6mpqZRo/73m/kZM2bceOONPRfnzJlTW1tbV1eXqwHS6XRzc3MOb7BI\ntLe3t7e3V1dX9/4lNWFYv359ePsKQ7972dy+Uvmfh4H1u5cNGzaMHDmy7xeejm0yEgPod19N\nTU01NTUlJSWbHLevYtB3ZS0tLZWVlTk8l5RIJAY+fVOAUzvZv13R88S75ubmN954I/vbjwEA\nGLL8ht2GDRsaGxuzz/pqbGxsbGzs7OwcPXr0gQceeMMNN7z22mvZ33I3ZcqUPffcM6+TAAAE\nL78PxV500UUNDQ3Zl88444wois4666wTTjjhvPPOW7Ro0eWXX55Kpfbaa6/LLrtsWz78DAAQ\npPyG3c0339zv8aqqqvPPPz+vdw0AsL0J7ccnAQC2W8IOACAQwg4AIBDCDgAgEMIOACAQwg4A\nIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIO\nACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOAAMQ6f0AAB/l\nSURBVCAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQpYUe\nAIbuxmUPFXqE7d6hswo9AQD/yxk7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBA\nCDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQJQWegBge3HtDucUeoTt3QWFHgDIN2fsAAACIewA\nAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAALhb8X+H3Me\nv73QI2zvvnvorEKPQL7Maugs9AgAgXPGDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDC\nDgAgEMIOACAQwg4AIBDD4C9PZDKZ7u7urq6uHN5gJpPJ4Q2SQ/3uZXP7Ggb/fEO3Vfui4AbY\nVywW2/bzMLB+95VOp7u7u+Nx52WKUd+VpdPpRCKRSqVydReJRCKTyQxwhWHwlTGTyaRSqWQy\nmcMbzGQyObxBcmhze+n3+DD45xu6rdoXBdfvXrKfY7f9MGzR5vaVTCaFXXHqu7J0Op3bfW3x\ns+sw+MoYj8crKyurq6tzdYPZ93IOb5Ac6ncvXV1d/R73tajgtmpfLfmfh4H1u5fu7u6qqqq+\nZ+zsq+D63VcymayqqiopKdnkuH0Vg74rS6fTlZWVpaU5y61EIjHw+XXJDwAQCGEHABAIYQcA\nEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEH\nABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcAEAhh\nBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcAEIjSQg8AALxdD59wbaFHIDolOqTQIzhjBwAQ\nCmEHABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCL/HDoB++L1oBVcMvxSNYccZOwCAQAg7\nAIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBA+AXFDGPX7nBOoUfY3l1Q6AEA6E3Y\n/R83Lnuo0CNs9w6dVegJAGC48lAsAEAghB0AQCCEHQBAIDzHjmFsVkNnoUcAgCLijB0AQCCE\nHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAg\nhB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIEoLcq/nnXfe66+/3nNxxIgRP/nJTwoyCQBAMAoT\ndq2trWefffbMmTOzF+NxJw4BAN6uwoRdS0vLhAkTxowZU5B7BwAIUgHCLpFIdHV1LV269Lbb\nbmtpaXnXu9512mmn7bzzztt+EgCAkBQg7Nrb2+vr65PJ5LnnnhtF0R133HHppZd+5zvfqa6u\nzl7hb3/728MPP9xz/c7Ozs7Ozo6OjlwNkMlk0ul0vzdYnqv7YKj63Usmk8nhPwByyL6GlwH2\nFYvFtv08DKzffaXT6c7OTk9hKk59V5ZKpbq6uhKJRK7uIpFIZDKZAa5QgLCrq6u79dZbey5e\nfPHFs2fP/sMf/nD00Udnj6xcufK6667rucKUKVM6Ojra2tpyO0a/NyjsCm5zi875PwBywr6G\nl83tpb29fRtPwmBsbl++cSpa/a4smUzm8C6KMew2UVlZOXbs2MbGxp4jM2bMuPHGG3su3nTT\nTbW1tXV1dbm6x0wm09bWVlNTk6sbJIf6XXRLS0ttbW3f4+vyPw8Ds6/hpd99tba2VldX93PG\nzsIKrd99tbW1VVZW9nPGzr6KQN+Vtbe3V1RUlJSU5OouEonEwOfXCxB2q1at+sUvfjF37tzS\n0tIoijo7O9euXTthwoSeK4wePfqAAw7oufj973+/tLS0rKwsVwOk0+lYLNbvDaZydR8M1eYW\nncN/AOSQfQ0vA+zLQ7FFqN99xWKx0tLSHIYCOdR3ZfF4vLS0NBs8uVJ0YTd69OilS5cmk8mT\nTz45lUrdeuutNTU1Bx100LafBAAgJAUIu9ra2gULFtxyyy3nn39+WVnZ1KlTr7rqqoqKim0/\nCQBASArzHLvJkycvWLCgIHcNABAqPy8NABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEH\nABAIYQcAEAhhBwAQCGEHABAIYQcAEIjC/K1YYDv08AnXFnqE7d0p0SGFHgHIL2fsAAACIewA\nAAIh7AAAAuE5dv/HtTucU+gRtncXFHoAABi+hN3/Mauhs9AjAAAMkYdiAQACIewAAAIh7AAA\nAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewA\nAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHs\nAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh\n7AAAAiHsAAACIewAAAIh7AAAAlFa6AFg6B4+4dpCj7C9OyU6pNAjAPC/nLEDAAiEsAMACISw\nAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiE\nsAMACERpoQfYslQq1dLS0tTUlKsbzGQyqVQqhzdIDvW7l3Q6bV/Fyb6Gl83tq7m5edsPwxb1\nu69kMtnS0hKLxbb9PGxR35WlUqlUKpXDfSUSiXQ6PcAVhkHYxePxqqqqmpqaXN1gOp1ubW3t\n9wY7cnUfDFW/e2lqasrhPwByyL6Gl3730tzcXF1dLRSKUL/7amlpqaqqKikp2fbzsEV9V9bW\n1jZixIgc7iuRSMTjAz3cOgzCLhaLlZSU5PCdEovFsreZqxskhza3F/sqTvY1vAywL2FXhPrd\nV86/JpJDffcSi8Xi8XgO9zXw6brIc+wAAIIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewA\nAAIh7AAAAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7AAAAlFa6AGKy8MnXFvoEbZ3p0SH\nFHoEABiunLEDAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLAD\nAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISw\nAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiE\nsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAI\nhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMA\nCISwAwAIhLADAAhEaUHutbW1ddGiRc8991wikZg6dercuXPHjRtXkEkAAIJRmDN211xzTUND\nw7x5866++uqqqqr58+en0+mCTAIAEIwChF1jY+OyZcvOPvvsSZMm7bTTTnPnzl2zZs3zzz+/\n7ScBAAhJAcLu1VdfLSsrmzRpUvZiTU3NxIkTX3nllW0/CQBASArwHLvm5uba2tpYLNZzpK6u\nrqmpqefik08+edVVV/VcrK6ubmpqqqmpyeEM6XR6w4YNObxBcqXfvWQyGfsqTvY1vPS7l3Q6\nvXHjxm0/DFu0uX01Nzdv+2EYjL4rS6fTiUSid/O8TYlEYuBnrxXmhydy+Bbm1jHjFhV6hKHL\nZDLpdDoejxftuzfn7Gt4sa/hJYB9xWKxeHx7+eUPw3pfURSlUqnt6uMrfwoQdvX19c3NzZlM\npmd/TU1No0aN6rnCzJkz77333p6Lc+bMqaur632Ftyn77U59fX2ubrBItLe3t7e319TUlJeX\nF3qWHFu/fn0O/wEUic7OztbW1urq6oqKikLPkmNB7qurq6ulpaWysrKysrLQs+TYhg0b6uvr\nA/uCmkgkmpqaRowYUV1dXehZciz7EFZJSUmhB8mlVCq1YcOG8vLy3D46VwyynzdKS3OWW4lE\nYuBvVwrwrcxuu+2WSCRWrlyZvdjc3PzGG29MmzZt208CABCSAoTd6NGjDzzwwBtuuOG1115b\ns2bNwoULp0yZsueee277SQAAQlKY59idd955ixYtuvzyy1Op1F577XXZZZcF9igAAMC2V5iw\nq6qqOv/88wty1wAAodpeflwIACB4wg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4A\nIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIO\nACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQpYUeYFDu\nvvvuurq6XN1aJpPp7OysrKzM1Q0WiUQi0d3dPWLEiJKSkkLPkmPt7e1VVVWFniLHkslkV1dX\nRUVFaenw+DAcvID3VV5eXlZWVuhZcqyjo2PEiBGxWKzQg+RSKpXq7OwsKysrLy8v9Cw51tnZ\nWV5eHo8HdV4mnU53dHQEua+urq6ysrIc7iuVSg18hVgmk8nVneXJY4891tjYmMMbzGQyqVQq\nvK+mr7zyyooVKw444ICxY8cWepYcSyaT4e1r1apVL7zwwj777POOd7yj0LPkWJD7evPNN5cv\nXz5t2rTJkycXepYcC3Jf69ate/LJJydPnjxt2rRCz5JjyWSypKQksBBvaWl57LHHJk6cOGPG\njELPkmOpVCoej+d2XzU1NR/84Ac399ph8MF82GGHFXqE4WHRokU/+9nPzjzzzIMOOqjQs7Bl\nP/3pT3/0ox99/OMfP+644wo9C1v24IMP/uAHP3j/+9//8Y9/vNCzsGVPP/30d7/73Xe/+932\nNSy89tpr11133S677GJfb19Q53IBALZnwg4AIBDCDgAgEMPghycAABgMZ+wAAAIh7AAAAiHs\nAAACMQx+jx39Wr9+/eLFi5999tnu7u7Jkyeffvrpu+++exRFra2tixYteu655xKJxNSpU+fO\nnTtu3LhCD8v/euihh6699tovf/nLM2fOjOyruP3617++++67161bt/POO5922mnvfe97Iysr\nVqtXr77lllteeeWVZDI5adKkz372s3vuuWdkX0VmzZo1CxcuXLFixT333NNzcHM7sruhccZu\nuPrqV7/a2Nh4xRVXXHPNNWPGjJk/f35nZ2cURddcc01DQ8O8efOuvvrqqqqq+fPnp9PpQg/L\n/7dx48YlS5b0/ps59lW0HnrooTvvvHPOnDk33XTTUUcd9b3vfa+9vT2ysqKUyWTmz58/atSo\nRYsWLVmyZPr06ZdffnlLS0tkX8Xk8ccf//KXvzxx4sRNjm9uR3Y3RBmGoebm5iuvvPJvf/tb\n9mJDQ8Pxxx//l7/8Ze3atSeccMLKlSuzx1taWk488cRnnnmmcJPyf1x11VXf//73P/vZzy5d\nujSTydhXMfv85z//0EMPbXLQyorTxo0bjz/++Jdeeil7cf369ccff/wrr7xiX0XloYceamho\nWLp06Uc/+tGeg5vbkd0NmTN2w1Jtbe2ll17a8zdG161bF4/Hx4wZ8+qrr5aVlU2aNCl7vKam\nZuLEia+88krhJuV/LV26dOXKlbNmzeo5Yl9Fa926dW+99VYUReedd94nP/nJCy+88OWXX46s\nrFjV1dXtscce9913X0tLS2dn53333Td+/Phdd93VvorKkUce2fdPmW9uR3Y3ZMJu2Gtpabnu\nuutOPPHEUaNGNTc319bW9v5jw3V1dU1NTQUcj6zW1tabbrrpC1/4wogRI3oO2lfRWrduXRRF\nDz744MUXX7x48eKpU6deccUVTU1NVla0LrnkkhUrVpx66qmf+tSn7rvvvksuuaS8vNy+it/m\ndmR3QybshrfVq1dfeOGF06dPnz17dvZI7w8Disf3v//9/fbb793vfvcmx+2rmH3605+eOHFi\nbW3tGWecEYvF/vSnP0VWVpSSyeT8+fP32GOPH/7whz/+8Y+PP/74efPmbdiwIbKv4WBzO7K7\noRF2w9izzz77pS996fjjjz/nnHOyHwD19fXNzc2ZXn9NpKmpadSoUYWbkSiKomeeeebpp58+\n44wzNjluX0Vr9OjRURRVV1dnL5aUlIwePXrDhg1WVpyef/7511577ayzzqqrq6uqqjrppJMq\nKiqeeOIJ+yp+m9uR3Q2ZsBuu/vznP3/961+/4IILPvKRj/Qc3G233RKJxMqVK7MXm5ub33jj\njWnTphVoRv6/Bx54oK2tbe7cuaeeeuqpp57a1NS0cOHCq666yr6K1ujRo0eNGpV9Xl0URd3d\n3WvXrh0/fryVFafsc8Z7/8hkMpmMfEocDja3I7sbspLLL7+80DOw1bq7u//zP//zmGOO2W+/\n/dr/KR6P19bWrlq16uGHH546dWp7e/uNN95YXV196qmnOqFdWPvss8+He3nkkUdOP/30j33s\nY/X19fZVnGKxWCqVuuuuuyZPnlxaWvqDH/ygoaFhzpw5PsSKU11dXfYnLrO/u+7ee+99+umn\nzzrrrHHjxtlX8diwYUNbW9uqVauWLVt21FFHDfxlq6qqyu6GJtb7PCfDxbPPPvsf//Efmxyc\nM2fOcccd197evmjRouXLl6dSqb322mvu3LnOXReb00477dxzz83+gmL7KlrpdPq222578MEH\nW1tbp06deu6552Z/Dt3KitOqVauWLFnyl7/8JZVKvfOd7/zMZz6z9957R/ZVTM4666yGhoZN\njpxwwgmb25HdDY2wAwAIhOfYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgB\nW+fyyy+PxWLjxo1LJBJ9X3vWWWfFYrFDDjlkaDd+8skn19TUDOaahxxyyB577LG51zY2Nl55\n5ZX777//mDFjysrKxo0bd8wxx/z2t7/tucLMmTMH+N/fjnXr1u26665nnnlmz5Gf//znn/rU\np7Ivr127dqeddsrH/W5i8O/Jzbnssst22GGH119/PUcTAdtCaaEHAIafeDy+fv36X/3qVyee\neGLv4x0dHT/96U/LysoKNVjW+vXr3/ve9zY0NJxxxhkXXHBBSUnJypUrFy9efOyxx/7oRz86\n+eSToyg6+eSTOzo6cn7X6XR61qxZdXV1119/fc/Bp59+et999+37cpG74oor/vCHP5x00km/\n//3vKyoqCj0OMCjCDthq8Xj8gAMOuOWWWzYJu7vvvrujo2PGjBmFGixryZIlr7/++o9//ONP\nf/rTPQfPPffcvffe+5JLLvnUpz4Vj8fPP//8fNz17bfffv/99z/yyCOVlZU9B5966qmeu3v6\n6af322+/fNx1zpWUlNxwww3Tp0+//vrr//3f/73Q4wCD4qFYYKslk8mPfOQjv/71r//xj3/0\nPr5kyZL3v//9m5zd+c1vfnPYYYfV1tZWVlZOnz79W9/6Vs9fMsxkMvPnz3/HO94xYsSIvffe\n+6677trkjh599NGjjz565MiRVVVV++233+LFiwcz3t///vcoivbff//eB0eNGvXkk0++9NJL\n8Xg86vVQ7J/+9KdYf1544YWtnSGVSi1YsOCwww47/PDDex/vHXMDhN1hhx126KGHLl++/AMf\n+MDIkSPHjRt3yimn9P7bmnl6T/7973///Oc/v8suu4wYMWLChAmf+MQnXn755eyrpk2bdtJJ\nJ/33f/93W1vb5t5qoLhkALbGvHnzoih69dVX4/H4N77xjZ7jq1evjsfjixcvnjlz5sEHH5w9\nePfdd8disWOOOeaee+558MEHL7jggiiKLrroouxrv/71r0dRdOqppz7wwAN33nnn9OnTp06d\nWl1dnX3tgw8+WFJScthhh/3iF7+4//77586dG0VRzz0efPDBU6dO7XfCO+64I4qij33sYxs2\nbNjcW/G+970v+783Nzc/0Msvf/nLsWPHTpw4cePGjVucYROPPvpoFEWLFy/OXrz66qsrKiqy\nmVvxT7FYLPvC6tWrN/nfP/CBD7zjHe9473vf+8ADD/zjH/+46667SkpKZs+ene/35MyZMydM\nmHDzzTf/7ne/+9GPfrT33nuPGzeura0t+9pf/epXURTdeeedm3tPAkVF2AFbJxt2HR0dRx11\n1F577dVz/Gtf+1plZWVzc/P73ve+nrDbY4893vnOd3Z1dfVc7cQTTywrK2tsbEyn0zvttNP0\n6dN7XvXmm2+WlZX15Mi+++77rne9q6cwMpnMCSecUFtb29HRkRkw7FKpVPaHFSoqKo499tiv\nf/3rTz75ZCqV6n2dnrDbxOmnn15RUfHHP/5xMDNs4j/+4z+iKNqk2O66666Pf/zj2Zffeuut\nnXbaqd+ZM5nMBz7wgSiKnnjiid5Heq6fp/dkU1NTFEWXXHJJz6tWrFhx5ZVXrlmzJnuxra2t\nvLz8zDPP3NzYQFHxUCwwRJ/73OdefPHFZcuWZS8uWbLkxBNPrK2t7bnCm2+++fLLLx977LHl\n5eU9B48//vhEIvHkk0++8cYbb7755pFHHtnzqh133PE973lP9uWGhobly5cfd9xx8Xi885+O\nPfbYlpaW559/fuDB4vH4nXfeed99933iE5945plnvvSlL82cOXP8+PGXXnppe3v7AP/jd77z\nnVtuueX6668/4IADhjDD008/PX78+J133rn3wd///vc9PyP8+9///qCDDhpggKqqqoMPPrjn\n4sSJE996660on+/JysrKHXbY4Y477njooYfS6XQURVOmTLn00kt7fnS3qqpqjz32eOqppwYY\nGygewg4Yoo997GO1tbW33HJLFEXLli176aWXTjvttN5XWLNmTRRFm4TOjjvuGEXRm2++mU2W\nsWPH9n5tT0+8+eabURRde+21lb1kH0NcvXr1YMb70Ic+9KMf/WjNmjUrV6783ve+N23atK99\n7WtHHXVUNl/6Wrp06fnnn3/22WefddZZQ5th7dq1Y8aM2eTgE0880dNqTzzxxMBht8l7o7S0\nNDtt/t6TZWVl9957bzweP+qoo8aNG3fSSSfdfvvtyWSy902NGTOmsbFxgLGB4uGnYoEhqqqq\n+uQnP3nHHXd861vfWrJkyY477nj00Uf3vkIsFouiaJOQymQyURTF4/HMP5/431sqlep98Ywz\nzvj85z+/yXXe9a53bdWckydPnjx58plnnnnWWWctXrz4iSeeOOywwza5zltvvXXSSSftu+++\n11133SavGvwMzc3No0eP7rk4ceLExsbGrq6unrvr7u4uKyu79NJLZ82aNcgfBMnK63vy4IMP\nfvXVVx999NHf/OY3v/71r0899dSFCxc+9thjPT/YW19fv3HjxsFPCxSQsAOGbvbs2YsXL77/\n/vvvvPPO2bNnl5SU9H7txIkTo3+ebeqRvThx4sTsGabs2aYePb8O953vfGcURalUaubMmVs1\nUldX11133VVdXb3Jr2KJxWKHH3744sWL33jjjU3+l0Qi8alPfSqVSv3sZz/r/Vjn1s4wcuTI\n7FPWslavXr106dKLL7748ccfj6IomUyOGjWqsbFxCL8TLt/vyZKSkiOPPPLII4+8+uqrv/Od\n75x77rk/+clPZs+enX3txo0b6+rqtnZmoCA8FAsM3aGHHjp58uQFCxY0NjZu8jhsFEUTJkyY\nPn36L3/5y87Ozp6DP//5z6uqqg488MBdd911zJgx9913X8+JqL/85S/PPvts9uXRo0cfcMAB\n99xzT+9zRbfeeutll122yQOFmygvL7/iiivOPvvsv/71r72Pp1Kpn/70p1EU7bPPPpv8Lxdc\n8P/au3eQ1qE4juNJSaugdvOBIg6CuBSjs+AgjThJBEGXDiKCLwp3EJeq4GTBRR1EUMGlGHyA\nSCmloCDYpVYdFB3USVAsulXQ0twhUEKvVHyhzf1+pjQ9of+eofw4J/3nTzQa1TQta6/zvTWU\nlpZmbVkeHx/Lsmwcn52d1dbWfqzT7/fN5OHhYXd3t7mpiqIogiDc399nziQSiax9XgC/FsEO\nwMeJoujxeGKxWENDw7+BSRCE6enp29vbjo6O7e3tUCg0ODgYCoV8Pp/T6bTZbAMDA5eXl11d\nXZubmwsLC4qimHu8+f3+ZDLZ0tKyuroaDod9Pl9fX9/NzY0k5dpqEEVxcXHx6elJluX+/v7Z\n2dmlpaWpqammpqadnZ2RkRGXy2Uer2na/Px8Z2fn8/NzxMTIhe+qQZblu7s787qaOdgdHR19\npjXxN81kVVVVMBh0u93Ly8uRSGRtbc3j8TidTlVVjWuTyeTFxUW+PC0DAO1OALxPpt2J8fLq\n6koUxZmZmcwAc7sTXdfD4XBzc3NRUVFBQUFjY2OmzZuu66lUamxsrKKiwuFwuFyura2t4eFh\nh8ORGbC/v+92u0tKSux2e11dnd/vf3l5Md7K0e5E1/XT09Pe3l5jhUySpPLy8vb29vX1dXOR\nxuVer/fV38aJiYk3a8iyu7srCMLKyor5U2KxmHHs9Xrn5uZyTGxra2tNTY35jPHA2e+eyZOT\nE1VVy8rK7HZ7ZWWlqqrxeDxzYTAYFAQhEAjkqBzA7yHqr911CwB4r1QqVV9fX11dbSQ8a+jp\n6YlEItfX18XFxT9dC4C3sRULAF9DkqTx8fG9vT3j3xIWcH5+rmna6OgoqQ7IF6zYAcCXSafT\nbW1tiUQiGo0WFhb+dDmfkk6nFUV5eHg4ODjI9+8C/D9YsQOAL2Oz2QKBwOPj49DQ0E/X8lmT\nk5PxeHxjY4NUB+QRVuwAAAAsghU7AAAAiyDYAQAAWATBDgAAwCIIdgAAABZBsAMAALAIgh0A\nAIBFEOwAAAAs4i8nDdfMbsZcLgAAAABJRU5ErkJggg==",
820 "text/plain": [
821 "plot without title"
822 ]
823 },
824 "metadata": {
825 "image/png": {
826 "height": 420,
827 "width": 420
828 },
829 "text/plain": {
830 "height": 420,
831 "width": 420
832 }
833 },
834 "output_type": "display_data"
835 }
836 ],
837 "source": [
838 "TaxationRQ2Raw <- rbind(\n",
839 " Load10Log(\"measurements/stats/Taxation//size020to-1r10n10rt3600hh1stats.csv\", 20),\n",
840 " Load10Log(\"measurements/stats/Taxation//size040to-1r10n10rt3600hh2stats.csv\", 40),\n",
841 " Load10Log(\"measurements/stats/Taxation//size060to-1r10n10rt3600hh3stats.csv\", 60),\n",
842 " Load10Log(\"measurements/stats/Taxation//size080to-1r10n10rt3600hh4stats.csv\", 80),\n",
843 " Load10Log(\"measurements/stats/Taxation//size100to-1r10n10rt3600hh5stats.csv\", 100)\n",
844 ")\n",
845 "TaxationRQ2 <- TaxationRQ2Raw %>% ProcessRQ2\n",
846 "TaxationRQ2\n",
847 "median(TaxationRQ2Raw$preprocessingTime) / 1000.0\n",
848 "TaxationRQ2 %>% RQ2Plot('Taxation')"
849 ]
850 },
851 {
852 "cell_type": "markdown",
853 "metadata": {},
854 "source": [
855 "## RQ3\n",
856 "\n",
857 "Similarly to RQ2, we will create a plot for each of the 3 domains. Thus we factor the common logic out into a function."
858 ]
859 },
860 {
861 "cell_type": "code",
862 "execution_count": 51,
863 "metadata": {},
864 "outputs": [],
865 "source": [
866 "RQ3Plot <- function(df, name, breaks) {\n",
867 " plot <- df %>% ggplot(aes(x=n, y=time)) +\n",
868 " geom_bar(stat='identity') +\n",
869 " scale_x_continuous(breaks=breaks, name=\"Model Size (# nodes)\") +\n",
870 " scale_y_continuous(name=\"Runtime(s)\") +\n",
871 " theme_bw()\n",
872 " ggsave(plot=plot, filename=paste0('plots/plot_RQ3_', name, '.pdf'), width=3.5, height=1.2)\n",
873 " plot\n",
874 "}"
875 ]
876 },
877 {
878 "cell_type": "markdown",
879 "metadata": {},
880 "source": [
881 "Just like previously, we display aggreate results as a table after parsing the raw logs, then create the respective plots."
882 ]
883 },
884 {
885 "cell_type": "markdown",
886 "metadata": {},
887 "source": [
888 "### Fam domain"
889 ]
890 },
891 {
892 "cell_type": "code",
893 "execution_count": 52,
894 "metadata": {},
895 "outputs": [
896 {
897 "data": {
898 "text/html": [
899 "<table>\n",
900 "<caption>A tibble: 5 × 2</caption>\n",
901 "<thead>\n",
902 "\t<tr><th scope=col>n</th><th scope=col>time</th></tr>\n",
903 "\t<tr><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th></tr>\n",
904 "</thead>\n",
905 "<tbody>\n",
906 "\t<tr><td>100</td><td> 173.7245</td></tr>\n",
907 "\t<tr><td>150</td><td> 432.7295</td></tr>\n",
908 "\t<tr><td>200</td><td> 904.6210</td></tr>\n",
909 "\t<tr><td>250</td><td>1641.0980</td></tr>\n",
910 "\t<tr><td>300</td><td>2571.7965</td></tr>\n",
911 "</tbody>\n",
912 "</table>\n"
913 ],
914 "text/latex": [
915 "A tibble: 5 × 2\n",
916 "\\begin{tabular}{ll}\n",
917 " n & time\\\\\n",
918 " <dbl> & <dbl>\\\\\n",
919 "\\hline\n",
920 "\t 100 & 173.7245\\\\\n",
921 "\t 150 & 432.7295\\\\\n",
922 "\t 200 & 904.6210\\\\\n",
923 "\t 250 & 1641.0980\\\\\n",
924 "\t 300 & 2571.7965\\\\\n",
925 "\\end{tabular}\n"
926 ],
927 "text/markdown": [
928 "\n",
929 "A tibble: 5 × 2\n",
930 "\n",
931 "| n &lt;dbl&gt; | time &lt;dbl&gt; |\n",
932 "|---|---|\n",
933 "| 100 | 173.7245 |\n",
934 "| 150 | 432.7295 |\n",
935 "| 200 | 904.6210 |\n",
936 "| 250 | 1641.0980 |\n",
937 "| 300 | 2571.7965 |\n",
938 "\n"
939 ],
940 "text/plain": [
941 " n time \n",
942 "1 100 173.7245\n",
943 "2 150 432.7295\n",
944 "3 200 904.6210\n",
945 "4 250 1641.0980\n",
946 "5 300 2571.7965"
947 ]
948 },
949 "metadata": {},
950 "output_type": "display_data"
951 },
952 {
953 "data": {
954 "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAC61BMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJyco\nKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6\nOjo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tM\nTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1e\nXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZoaGhpaWlqampra2tsbGxtbW1ubm5vb29wcHBx\ncXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGCgoKD\ng4OEhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+RkZGSkpKTk5OVlZWWlpaX\nl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGjo6OkpKSlpaWmpqanp6eoqKipqamq\nqqqrq6usrKytra2urq6vr6+wsLCxsbGzs7O0tLS1tbW2tra3t7e4uLi5ubm6urq7u7u8vLy9\nvb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnKysrLy8vMzMzOzs7Pz8/Q\n0NDR0dHS0tLT09PU1NTV1dXW1tbX19fZ2dna2trb29vc3Nzd3d3e3t7f39/g4ODh4eHi4uLj\n4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w8PDx8fHy8vLz8/P09PT1\n9fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7///8taJGaAAAACXBIWXMAABJ0AAASdAHe\nZh94AAAgAElEQVR4nO3de4BedX3n8UMgiXKRWm6KKN16QRdMoaFgQWwFlro1F+QqoIQkBRW6\nKNIFhS5Q2tAaMK7QNtwEWURAK6AIimBdgoIGRUFIcCUQw5OZkHvI7fy5z2UmGfP7vknOycnM\ncybvzx/PeSbz5DNfzu/7Yi4Yk+XGmK1ONtQDGDMcIiRjKoiQjKkgQjKmggjJmAoiJGMqiJCM\nqSBCMqaCVATp8xMw48bz+7Y84yuqcRiq6aphxlXRMmFcRTX8rrOrhnTOb/FdS9ZU8QGWNaqp\nWVVFy4pGNTUrqmhZ1aimZlkVLWsa1dQsrqJlXaOamkX4rtUTNjwVUokIiSKkrYyQytQIiWqE\nlEZIWCMkqhFSGiFhjZCoRkhphIQ1QqIaIaUREtYIiWqElEZIWCMkqhFSGiFhjZCoRkhphIQ1\nQqIaIaUREtYIiWqElEZIWCMkqhFSGiFhjZCoRkhphIQ1QqIaIaUREtYIiWqElEZIWCMkqhFS\nGiFhjZCoRkhphIQ1QqIaIaUREtYIiWqElEZIWCMkqhFSGiFhjZCoRkhphIQ1QqIaIaUREtYI\niWqElEZIWCMkqhFSGiFhjZCoRkhphIQ1QqIaIaUREtYIiWqElEZIWCMkqhFSGiFhjZCoRkhp\nhIQ1QqIaIaUREtYIiWqElEZIWCMkqhFSGiFhjZCoRkhphIQ1QqIaIaUREtYIiWqElEZIWCMk\nqukTcNrQpjOEkKIaIVGNkIRUoEZIVCMkIRWoERLVCElIBWqERDVCElKBGiFRjZCEVKBGSFQj\nJCEVqBES1QhJSAVqhEQ1QhJSgRohUY2QhFSgRkhUIyQhFagREtUISUgFaoRENUISUoEaIVGN\nkIRUoEZIVCMkIRWoERLVCElIBWqERDVCElKBGiFRjZC6AdLZz6+lLH4V31UgSxvV1KyoomVZ\no5qaZVW0rGhUU7O0ipZXG9XUvNK5DjGkzhCre3HOlZVDmvrUIkpPL76rQHoaVbQs6umppKVR\nTc3wG6a3mmF6F3auQwypb5qFOOfL46qG5Jd2ZWr80o5qttsv7YRUpkZIVCOkNELCGiFRjZDS\nCAlrhEQ1QkojJKwREtUIKY2QsEZIVCOkNELCGiFRjZDSCAlrhEQ1QkojJKwREtUIKY2QsEZI\nVCOkNELCGiFRjZDSCAlrhEQ1QkojJKwREtUIKY2QsEZIVCOkNELCGiFRjZDSCAlrhEQ1Qkoj\nJKwREtUIKY2QsEZIVCOkNELCGiFRjZDSCAlrhEQ1QkojJKwREtUIKY2QsEZIVCOkNELCGiFR\njZDSCAlrhEQ1QkojJKwREtUIKY2QsEZIVCOkNELCGiFRjZDSCAlrhEQ1QkojJKwREtUIKY2Q\nsEZIVCOkNELCGiFRjZDSCAlrhEQ1QkojJKwREtUIKY2QsEZIVCOkNELCGiFRjZDSCAlrhEQ1\nQkojJKwREtUIKY2QsEZIVCOkNELCGiFRjZDSCAlrhEQ1QkojJKwREtUIKY2QsEZIVCOkNELC\nGiFRjZDSCAlrhEQ1QkojJKwREtUIKY2QsEZIVCOkNELCGiFRjZDSCAlrhEQ1QkojJKwREtUI\nKY2QsEZIVCOkNELCGiFRjZDSCAlrhEQ1QkojJKwREtUIKY2QsEZIVCOkNELCGiFRjZDSCAlr\nhEQ1QkojJKwREtUIKY2QsEZIVCOkNELCGiFRjZDSCAlrhEQ1QkojJKwREtUIKY2QsEZIVCOk\nNELCGiFRjZDSCAlrhEQ1QkojJKwREtUIKY2QsEZIVCOkNELCGiFRjZDSCAlrhEQ1QkojJKwR\nEtUIKY2QsEZIVCOkNELCGiFRjZDSCAlrhEQ1QkojJKwREtUIKY2QsEZIVCOkNELCGiFRjZDS\nCAlrhEQ1QkojJKwREtUIKY2QsEZIVCOkNELCGiFRjZDSCAlrhEQ1QkojJKwREtUIKY2QsEZI\nVCOkNELCGiFRjZDSCAlrhEQ1QkojJKwREtUIKY2QsEZIVCOkNELCGiFRjZDSCAlrhEQ1Qkoj\nJKwREtUIKY2QsEZIVCOkNELCGiFRjZDSCAlrhEQ1QkojJKwREtUIKY2QsEZIVCOkNELCGiFR\njZDSCAlrhEQ1QkojJKwREtUIKY2QsEZIVCOkNELCGiFRjZDSCAlrhEQ1QkojJKwREtUIKY2Q\nsEZIVCOkNELCGiFRjZDSCAlrhEQ1QkojJKwREtUIKY2QsEZIVCOkNELCGiFRjZDSCAlrhEQ1\nQkojJKwREtUIKY2QsEZIVCOkNELCGiFRjZDSCAlrhEQ1QkojJKwREtUIKY2QsEZIVCOkNELC\nGiFRjZDSCAlrhEQ1QkojJKwREtUIKY2QsEZIVCOkNELCGiFRjZDSCAlrhEQ1QkojJKwREtUI\nKY2QsEZIVCOkNELCGiFRjZDSCAlrhEQ1QkojJKwREtUIKY2QsEZIVCOkNELCGiFRjZDSCAlr\nhEQ1QkojJKwREtUIKY2QsEZIVCOkNELCGiFRjZDSCAlrhEQ1ww9Sz/SPnXLxM3m+9JpJp1+x\nIL32RUhlaoRENcMP0mcumvPS1WeszK+8aO6L089dl1z7IqQyNUKimmEHacm0ppCXx/+6MWFO\n87PQ8bM3vfa/TkhlaoRENcMOUjtPT+x99MT1zSfn3bHptf8lQipTIySqGZaQlnzq5vz+s1rP\nLpm56bX58PjHmjntqUWUhb34rgLpaVTRsqinomF6KqmppqWaYXqraalomIWd6xBD6ptmIc75\n8rgCkF4457r1+f2T+wBtcm0+/OcHmzn15wspDXxPoVRTU9UwlfR0U0u33eDOZYghbfafaX4B\nSLNPv6f5+FjnS7k7N732v8ov7crU+KUd1Qy/L+1+edoTrUvPhGfzfPHEpza99r9MSGVqhEQ1\nww7Sq2ff3mhmZX7Vp+fOu/yC9cm1L0IqUyMkqhl2kGaPb+fefPmMM8+Y1psn174IqUyNkKhm\n2EHa0gipTI2QqEZIaYSENUKiGiGlERLWCIlqhJRGSFgjJKoRUhohYY2QqEZIaYSENUKiGiGl\nERLWCIlqhJRGSFgjJKoRUhohYY2QqEZIaYSENUKiGiGlERLWCIlqhJRGSFgjJKoRUhohYY2Q\nqEZIaYSENUKiGiGlERLWCIlqhJRGSFgjJKoRUhohYY2QqEZIaYSENUKiGiGlERLWCIlqhJRG\nSFgjJKoRUhohYY2QqEZIaYSENUKiGiGlERLWCIlqhJRGSFgjJKoRUhohYY2QqEZIaYSENUKi\nGiGlERLWCIlqhJRGSFgjJKoRUhohYY2QqEZIaYSENUKiGiGlERLWCIlqhJRGSFgjJKoRUhoh\nYY2QqEZIaYSENUKiGiGlERLWCIlqhJRGSFgjJKoRUhohYY2QqEZIaYSENUKiGiGlERLWCIlq\nhJRGSFgjJKoRUhohYY2QqEZIaYSENUKiGiGlERLWCIlqhJRGSFgjJKoRUhohYY2QqEZIaYSE\nNUKiGiGlERLWCIlqhJRGSFgjJKoRUhohYY2QqEZIaYSENUKiGiGlERLWCIlqhJRGSFgjJKoR\nUhohYY2QqEZIaYSENUKiGiGlERLWCIlqhJRGSFgjJKoRUhohYY2QqEZIaYSENUKiGiGlERLW\nCIlqhJRGSFgjJKoRUhohYY2QqEZIaYSENUKiGiGlERLWCIlqhJRGSFgjJKoRUhohYY2QqEZI\naYSENUKiGiGlERLWCIlqhJRGSFgjJKoRUhohYY2QqEZIaYSENUKiGiGlERLWCIlqhJRGSFgj\nJKoRUhohYY2QqEZIaYSENUKiGiGlERLWCIlqhJRGSFgjJKoRUhohYY2QqEZIaYSENUKiGiGl\nERLWCIlqhJRGSFgjJKoRUhohYY2QqEZIaYSENUKiGiGlERLWCIlqhJRGSFgjJKoRUhohYY2Q\nqEZIaYSENUKiGiGlERLWCIlqhJRGSFgjJKoRUhohYY2QqEZIaYSENUKiGiGlERLWCIlqhJRG\nSFgjJKoRUhohYY2QqEZIaYSENUKiGiGlERLWdCOkrthdIQUREtYICXZXSEGEhDVCgt0VUhAh\nYY2QYHeFFERIWCMk2F0hBRES1ggJdldIQYSENUKC3RVSECFhjZBgd4UUREhYIyTYXSEFERLW\nCAl2V0hBhIQ1QoLdFVIQIWGNkGB3hRRESFgjJNhdIQUREtYICXZXSEGEhDVCgt0VUhAhYY2Q\nYHeFFERIWCMk2F0hBRES1ggJdldIQYSENUKC3RVSECFhjZBgd4UUREhYIyTYXSEFERLWCAl2\nV0hBhIQ1QoLdFVIQIWGNkGB3hRRESFgjJNhdIQUREtYICXZXSEGEhDVCgt0VUhAhYY2QYHeF\nFERIWCMk2F0hBRES1ggJdldIQYSENUKC3RVSECFhjZBgd4UUREhYIyTYXSEFERLWCAl2V0hB\nhIQ1QoLdFVIQIWGNkGB3hRRESFgjJNhdIQUREtYICXZ3+4U09ekllN7F+K4C6W1UU7OoipZF\njWpqumqY3s51iHe3M8Tinm4aZiHetJ5xVUM6e+5qyisr8V0FsqRRTc3yKlqWNqqpWVpFy/JG\nNTVLOtch3t3OECsXddEwq3r5po2vGpJf2pWp8Uu7JJ0htt8v7YRUpkZIsLtCCiIkrBES7K6Q\ngggJa4QEuyukIELCGiHB7gopiJCwRkiwu0IKIiSsERLsrpCCCAlrhAS7K6QgQsIaIcHuCimI\nkLBGSLC7QgoiJKwREuyukIIICWuEBLsrpCBCwhohwe4KKYiQsEZIsLtCCiIkrBES7G7dIS37\n2pSD99v1LQdP+dqygscgpDI1QoLdrTekVVfvlY0ac/QJR48Zle11dbFVEVKZGiHB7tYa0vNj\nR5xy3/L20+X3nTJi7PNFjkFIZWqEBLtba0hv/OCvBrzkVx/8wyLHIKQyNUKC3a01pEvX/t5r\n1l5S5BiEVKZGSLC7tYbUyvKXmsd789VzCh+DkMrUCAl2t+6Qnt77qnzNoVm2+0+LHoOQytQI\nCXa37pBOeO9z+a3Zdc8dcVLRYxBSmRohwe7WHdLet+X5Rw7K89veWvQYhFSmRkiwu3WHNOqh\nfO0b/2eePzCq6DEIqUyNkGB36w7prTfkD2QP5fmNby56DEIqUyMk2N26Q5r6pov3f/vafMEY\nv0d6zQhpG+9u3SG99L5sz1l5furuTxY9BiGVqRES7G7dIeX54tXNh8d/V/gYhFSmRkiwu7WG\nNPn3z2PFlCLHIKQyNUKC3a01pP3HPDzgJQ+P2b/IMQipTI2QYHdrDWnhcdkHbprXfjrvpg9k\nxy0scgxCKlMjJNjdWkPK1936jizb58AjDtwny95567pCxyCkMjVCgt2tN6Q8X/vwpR8+7N2H\nffjSh9cmv+e1I6QyNUKC3a07pPIRUpkaIcHu1h/Syp98o5GXWFkhlakREuxu7SFdvVuWzco/\nf1bhpRVSmRohwe7WHdLMbMK/NSHdstMXih6DkMrUCAl2t+6QxnwiX9mElH/uXUWPQUhlaoQE\nu1t3SK97sAPpuyOLHoOQytQICXa37pD2vqcD6etvKHoMQipTIyTY3bpDOvYvVrQg9Rx0XNFj\nEFKZGiHB7tYd0g92fMf52ZRJbxj5o6LHIKQyNUKC3a07pPx7h2TNHPbwpr9hsxFSmRohwe7W\nHlKeL/jZz3pLHIOQytQICXZ3GEBasqidoscgpDI1QoLdrTukOR/eJeuk6DEIqUyNkGB36w7p\nL3c/48KL2il6DEIqUyMk2N26Q9rl/5Y9BiGVqRES7G7dIe39YtljEFKZGiHB7tYd0mevLHsM\nQipTIyTY3bpDevXYIy+8qp2ixyCkMjVCgt2tO6Srssyf2m1BhLSNd7fukN584o+ee76doscg\npDI1QoLdrTuk0f6wYYsipG28u3WHdMjssscgpDI1QoLdrTukR44u/P+e3xchlakREuxu3SEd\nuV+26/7tFD0GIZWpERLsbt0hHXVMf4oeg5DK1AgJdrfukMpHSGVqhAS7K6QgQsIaIcHu1hrS\nAdPyAzak6DEIqUyNkGB3aw3p8Bn54RtS9BiEVKZGSLC7tYa0VRFSmRohwe7WHdLYX3Wud72n\n6DEIqUyNkGB36w4pe7zzj3HFqKLHIKQyNUKC3a03pGxj/rToMQipTI2QYHfrDWn2l7KJU1v5\nm//1QtFjEFKZGiHB7tYbUp7/1a/LHoOQytQICXa37pDKR0hlaoQEu1t3SAsm7TvCPyG7+Qhp\nG+9u3SGdvNMxk9rfJU0tegxCKlMjJNjdukPa4z/KHoOQytQICXa37pB2frnsMQipTI2QYHfr\nDumoH5Q9BiGVqRES7G7dIT1x2KMlj0FIZWqEBLtbd0hHvjXb2T9qvvkIaRvvbt0h+UfNtyxC\n2sa7W3dI5SOkMjVCgt0VUhAhYY2QYHfrDmmP/uxW9BiEVKZGSLC7dYc0sZ3DXn/QuUWPQUhl\naoQEu1t3SH2Z/4F7ix6DkMrUCAl2d5hAyh8fW/QYhFSmRkiwu8MF0vzXFz0GIZWpERLs7jCB\ntP6f9it6DEIqUyMk2N26Q/qTdg7aM7uw6DEIqUyNkGB3hwekQ47+0qtFj0FIZWqEBLtbd0jl\nI6QyNUKC3R02kJ4vegxCKlMjJNjdekN65Lh3HPft9j39R39q95oR0jbe3VpDmjVyh7eN3OHr\nef7dd2b+bRSvGSFt492tNaSJu8/OFxz6nhdOyv5gxuqixyCkMjVCgt2tNaQ/Or/58J3sdTt+\nslH8GIRUpkZIsLu1hrTTtc2H32R/8YsyxyCkMjVCgt2tNaTs+ubD/Ow7pY5BSGVqhAS7K6Qg\nQsIaIcHuCimIkLBGSLC79Yb0uVmzZt2XzZjVStFjEFKZGiHB7tYb0sAUPQYhlakREuxurSFd\nNjBFj0FIZWqEBLtba0hbFSGVqRES7K6QgggJa4QEuyukIELCGiHB7gopiJCwRkiwu0IKIiSs\nERLsrpCCCAlrhAS7K6QgQsIaIcHuCimIkLBGSLC7QgoiJKwREuyukIIICWuEBLsrpCBCwhoh\nwe4KKYiQsEZIsLtCCiIkrBES7K6QgggJa4QEuyukIELCGiHB7gopiJCwRkiwu0IKIiSsERLs\nrpCCCAlrhAS7K6QgQsIaIcHuCimIkLBGSLC7QgoiJKwREuyukIIICWuEBLsrpCBCwhohwe4K\nKYiQsEZIsLtCCiIkrBES7K6QgggJa4QEuyukIELCGiHB7gopiJCwRkiwu0IKIiSsERLsrpCC\nCAlrhAS7K6QgQsIaIcHuDkdI8z47sXVZes2k069YkF77IqQyNUKC3R2GkH545ow2pCsvmvvi\n9HPXJde+CKlMjZBgd4chpO+/PKsFqTFhTvOz0PGzN732v0xIZWqEBLs7DCHleRvSoyeubz6e\nd8em1+bDggebmfzcKsqi5fiuAlncWFFJzdIqWpY0qqlZUkXL0kY1NYs71yHe3c4Qyxd10TAr\ne/imjS8K6f6zWk8vmbnptfnw0NhmTnmyYYZFhnh3u3iYIC+NKwxpch+gTa7NhxfvbmbSsysp\ni5bjuwrklUY1NUuraGl+RqqkZkkVLc3PSJXUvNK5DvHudoZYvqiLhlnRgzdtSeHPSI91vpS7\nc9Nr/4v8HqlMjd8jJekMMXy/R+qZ8GyeL5741KbX/hcJqUyNkGB3hyGk3sYDExuNlflVn547\n7/IL1ifXvgipTI2QYHeHIaSp41v5Vr58xplnTOvNk2tfhFSmRkiwu8MQ0hZGSGVqhAS7K6Qg\nQsIaIcHuCimIkLBGSLC7QgoiJKwREuyukIIICWuEBLsrpCBCwhohwe4KKYiQsEZIsLtCCiIk\nrBES7K6QgggJa4QEuyukIELCGiHB7gopiJCwRkiwu0IKIiSsERLsrpCCCAlrhAS7K6QgQsIa\nIcHuCimIkLBGSLC7QgoiJKwREuyukIIICWuEBLsrpCBCwhohwe4KKYiQsEZIsLtCCiIkrBES\n7K6QgggJa4QEuyukIELCmj4BXbEuQqJhhBTVCAnWRUg0jJCiGiHBugiJhhFSVCMkWBch0TBC\nimqEBOsiJBpGSFGNkGBdhETDCCmqERKsi5BoGCFFNUKCdRESDSOkqEZIsC5ComGEFNUICdZF\nSDSMkKIaIcG6CImGEVJUIyRYFyHRMEKKaoQE6yIkGkZIUY2QYF2ERMMIKaoREqyLkGgYIUU1\nQoJ1ERINI6SoRkiwLkKiYYQU1QgJ1kVINIyQohohwboIiYYRUlQjJFgXIdEwQopqhATrIiQa\nRkhRjZBgXYREwwgpqhESrIuQaBghRTVCgnUREg0jpKhGSLAuQqJhhBTVCAnWRUg0jJCiGiHB\nugiJhhFSVCMkWBch0TBCimqEBOsiJBpGSFGNkGBdhETDCCmqERKsi5BoGCFFNUKCdRESDSOk\nqEZIsC5ComGEFNUICdZFSDSMkKIaIcG6CImGEVJUIyRYFyHRMEKKaoQE6yIkGkZIUY2QYF2E\nRMMIKaoREqyLkGgYIUU1QoJ1ERINI6SoRkiwLkKiYYQU1QgJ1kVINIyQohohwboIiYYRUlQj\nJFgXIdEwQopqhATrIiQaRkhRjZBgXYREwwgpqhESrIuQaBghRTVCgnUREg0jpKhGSLAuQqJh\nhBTVCAnWRUg0jJCiGiHBugiJhhFSVCMkWBch0TBCimqEBOsiJBpGSFGNkGBdhETDCCmqERKs\ni5BoGCFFNUKCdRESDSOkqEZIsC5ComGEFNUICdZFSDSMkKIaIcG6CImGEVJUIyRYFyHRMEKK\naoQE6yIkGkZIUY2QYF2ERMMIKaoREqyLkGgYIUU1QoJ1ERINI6SoRkiwLkKiYYQU1QgJ1kVI\nNIyQohohwboIiYYRUlQjJFgXIdEwQopqhATrIiQaRkhRjZBgXYREwwgpqhESrIuQaBghRTVC\ngnUREg0jpKhGSLAuQqJhhBTVCAnWRUg0jJCiGiHBugiJhhFSVCMkWBch0TBCimqEBOsiJBpG\nSFGNkGBdhETDCCmqERKsi5BoGCFFNUKCdRESDSOkqEZIsC5ComGEFNUICdZFSDSMkKIaIcG6\nCImGEVJUIyRYFyHRMEKKaoQE6yIkGkZIUY2QYF2ERMMIKaoREqyLkGgYIUU1QoJ1ERINI6So\nRkiwLkKiYYQU1QgJ1kVINIyQohohwboIiYYRUlQjJFgXIdEwQopqhATrIiQaRkhRjZBgXYRE\nwwgpqhESrIuQaBghRTVCgnUREg0jpKhGSLAuQqJhhBTVCAnWRUg0jJCiGiHBugiJhhFSVCMk\nWBch0TBCimqEBOsiJBpGSFGNkGBdhETDCCmqERKsi5BoGCFFNUKCdRESDSOkqEZIsC5ComGE\nFNUICdZFSDSMkKIaIcG6CImGEVJUIyRYFyHRMEKKaoQE6yIkGkZIUY2QYF2ERMMMKqSzn19D\nWbwK31UgSxrV1CyvomVZo5qaZZ3rEK9LZ4jlS7pomFWvdNEwr/biCa6oHNLUX75C6VmE7yqQ\nnkY1Nb1VtPQ2qqnpaxnidekbpqeLhlm0sAuHCdIYVzUkv7QrU+OXdjDM9vulnZDK1AgJhhFS\nECFhjZBgGCEFERLWCAmGEVIQIWGNkGAYIQUREtYICYYRUhAhYY2QYBghBRES1ggJhhFSECFh\njZBgGCEFERLWCAmGEVIQIWGNkGAYIQUREtYICYYRUhAhYY2QYBghBRES1ggJhhFSECFhjZBg\nGCEFERLWCAmGEVIQIWGNkGAYIQUREtYICYYRUpCuhNQVJyQkGkZIQYREJyQkGkZIQYREJyQk\nGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQk\nGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQk\nGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQk\nGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQk\nGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQk\nGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQk\nGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQk\nGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQk\nGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQk\nGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQk\nGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQkGkZIQYREJyQk\nGkZIQYREJyQkGkZIQYREJyQkGkZIQfohdcVNERINIyQaRkjBTRESDSMkGkZIwU0REg0jJBpG\nSMFNERINIyQaRkjBTRESDSMkGkZIwU0REg0jJBpGSMFNERINIyQaRkjBTRESDSMkGkZIwU0R\nEg0jJBpGSMFNERINIyQaRkjBTRESDSMkGkZIwU0REg0jJBpGSMFNERINIyQaRkjBTRESDSMk\nGkZIwU0REg0jJBpGSMFNERINIyQaRkjBTRESDSMkGkZIwU0REg0jJBpGSMFNERINIyQaRkjB\nTRESDSMkGkZIwU0REg0jJBpGSMFNERINIyQaRkjBTRESDSMkGkZIwU0REg0jJBpGSMFNERIN\nIyQaRkjBTRESDSMkGkZIwU0REg0jJBpGSMFNERINIyQaRkjBTRESDSMkGkZIwU0REvuAGGcA\nAArmSURBVA0jJBpGSMFNERINIyQaRkjBTRESDSMkGkZIwU0REg0jJBpGSMFNERINIyQaRkjB\nTRESDSMkGkZIwU0REg0jJBpGSMFNERINIyQaRkjBTRESDSMkGkZIwU0REg0jJBpGSMFNERIN\nIyQaRkjBTRESDSMkGkZIwU0REg0jJBpGSMFNERINIyQaZttCWnrNpNOvWLDhTSGVGEZINMx2\nBOnKi+a+OP3cdf1vCqnEMEKiYbYfSI0Jc5qflY6f3f+2kEoMIyQaZvuB9OiJ65uP593R/7aQ\nSgwjJBpm+4F0/1mtx0tmNh9mTWjmtF/0Uhb2dK5DfFM6Q/Q4TC2GWdhFw/QuxN1eMG6rIU0u\nDGnr0tOoomXDumxlS6OamuE3TG9Fw/DuFkmjmpptCemxzpd2d/a/vQVf2m1dljWqqVlVRcuK\nRjU1K6poWdWopmZZFS1rGtXULK6iZV2jmppt+aVdz4Rn83zxxKf63xZSmRohUc12Aym/6tNz\n511+wfr+N4VUpkZIVLP9QFo+48wzpvVueFNIZWqERDXbD6RNIqQyNUKiGiGlERLWCIlqhJRG\nSFgjJKoRUhohYY2QqEZIaYSENUKiGiGlERLWCIlqhJRGSFgjJKoRUhohYY2QqEZIaYSENUKi\nGiGlERLWCIlqhJRGSFgjJKoRUhohYY2QqEZIaYSENUKiGiGlERLWCIlqhJRGSFgjJKoRUhoh\nYY2QqEZIaYSENUKiGiGlERLWCIlqhJRGSFgjJKoRUhohYY2QqEZIaYSENUKiGiGlERLWCIlq\nhJRGSFgjJKoRUhohYY2QqEZIaYSENUKiGiGlERLWCIlqhJRGSFgjJKoRUhohYY2QqEZIaYSE\nNUKimu0X0pe+Qvn3m/BdBTLz2mpqbqii5fprq6m5voqWG66tpmZmFS03XVtNzb9X0XLztdXU\n/Cu+68bKIT1yN+brd/H7tjz/MOXGKmruvLOKlulTvlxFTTXDfHnK9CpqqhnmxilXVFFz19er\naLltyueqqLnrDn7fd6uGtM1zzdifD/UIG3Pr2AeHeoSNeXDsrUM9wsb8YuzVQz3CxjTGXjh4\nH0xIJSIkipC6PUKiCIkipCBCogiJIiRj6hYhGVNBhGRMBRGSMRWkyyHN++zE1mXpNZNOv2LB\nxuuQDvO345s5eaiH6Zn+sVMufqZLbk3/MF1xa3575emnff7pwb4z3Q3ph2fOaO/ulRfNfXH6\nues2XId0mMn3NBqNnnxoh8k/c9Gcl64+Y2V33Jr+Ybrh1qyZ9MV5L8346IpBvjPdDen7L89q\n7W5jwpzmv1iOn91/HdJh8pMeb785tMMsmfbbPH95/K+74tb0D9MVt+aVb6xofvEwfs4g35nu\nhpTn7d199MT1zcfz7ui/Dukwq8f/7/OnTJuXD/UwzTw9sbdbbk17mK65NUuu++TqQb4ztYB0\n/1mtp5fM7L8O6TCvfPyLzzxz+ceXDfUwzXX51M1dc2vaw3TJrVl3wvjPLRzsO1MPSJNbT5v3\npO86pMO0s+LkB4Z6mPyFc65b3zW3pj1MO11wa174+VXnLB3kO1MLSI91Pjvf2X8d0mE6+dT/\nGephZp9+T941t6YzTCdDf2uan5ROvXeQ70wtIPVMeDbPF098qv86pMP85str8nzlyQ8N8TC/\nPO2J1qU7bk3fMF1xa3569qo8X3/GvYN8Z7obUm/jgYmNxsr8qk/PnXf5Bes3XIdymCWnz5g/\nb9rkVUM7zKtn395odMut6R+mK27N0o//82/nzzxx/iDfme6GNLX1H/jGfytfPuPMM6b15huu\nQzrMnEtP/diVvxviYWa3hxl/b1fcmg3DdMWt+c1lJ59y4ex8kO9Md0MypiYRkjEVREjGVBAh\nGVNBhGRMBRGSMRVESMZUECEZU0GENLi5LNtrdefZ1OzI9N2n7jLwrSMP6H/W+Kc/3WOnvf7q\n/ubTww9IfteALNx/SvPx7pPz/OU3b3aY3/9o/bnkD5/f7O80m0ZIg5vLRuz4zfaTFW8YueWQ\nev5o5/O+evs//vGI2/N8xrTXqF933JjW301xSfM19//1ZoeJIa394NhK/rKN7StCGtxcttMR\nnb/B4LaRh245pC9mX2tdet+y/2b+xPSt2cOty4ean7qmXbrZYWJI+a9GdNH/y2NdIqTBzWXZ\ntJ1+13py3HFHtiB9+6hdX3fgNevzfP0V+40+6M72aj987G6vP+TGfACkv8uebV9fWNH+0u7x\nrJNfDHhtO2vf9YH2de+X8/ykb/T94lHv/+nRu+310QWb+2gv/c3bRu9zwtPNZ6fsXcnfcrRd\nRUiDm8uyZ9v/vp834qb3NSF9c4cP/cf3Lsj+Ls//JTvjwTsOOqC52t/b8QP3PPCJ7OoBkG7P\nPrLhb7tqQlryYDP37rXfKwNe284j2U15Pn306Gz06NE7jB49r/2Lx7z1zx5ccNeOkzb30d73\nphseuu29ey/P8/uyofwD9PWMkAY3l2Urjz2wef3n1y85vAnp3W97tfnG8SMXrt/3oOaTl0Y2\nV/uQdzR3OZ+w28qNkNadko3+6395rP11Xf8PGyaP/vHA17bz91nbzl0n5Pnv9u3/kMdkP2o9\n7ruZj7Y4u7j55LlpL+b58lFTt/mNGG4R0uCmCemr2U/y/D2n5U1IL2afaP3ijdm9/y/7H61n\nf75LviA7f2Uz/9Z81caf2uX3n75vlu158fINkK7Lrs8HvradD+/Tvnzmi3l+90n9v/WYnVuP\nk0Zs5qOt3mP/7/V/Bzbm4G14C4ZnhDS4aUJavtsn859k32lB+kl2ZesXv53N/HHn2Ym75D/r\n+wYo+8ZASM3Muf6o7M/X9UF6dNQ5zccBr23nsAPblz/7cQdTJ8fs33qcmm3uo/3ov2R7nHhb\n+6/qPXq/bXkPhmWENLhpQsqn/MHKc9+8tgXp8eyK1i/el93wWGe1j2+t9pRZ7TQ2gZTn66dk\nj3Qgzd/38NZXaQNe2867j2g+vKXzLdKo0ZM7v7gB0mY+Wr72+xf+1+zQ1o/PT9h1W9+HYRch\nDW5akB7JvrXnZ/MWpPlZ6/NKPjO7f052buvZwbvkPdmk/hf3Q1r11c5/e8pvyb7ahrT6qH3a\n3wwNeG07nc9Ij74/z9fsuuG/BW2AtJmP1s512Veaj0e/pbJ/4O0lQhrctCCt/+NDsyfbkPKD\n9m39mOBDOy9et+fbm9+gPLND89v/w3Zv/YTulkvWbIC0/p17zWld147Lft6GdN5Oj3Tes/G1\n7XS+R7ruvDx/8k82fMgNkF77oz1xausH5M9l03O/RyoRIQ1uWpDyy7PWmrcg3TfiuG9955PZ\nVa0fuJ1w97/uP7a52g+PHHPLdy8dedaAH3//YNfdzv7SDf8wJvvb9g8b7shOaf0A/ME5A17b\nziXtn9qdc0Oef2Xyhg+5EdJrfrT5u4258cGvHfGG5/J8+ejJuSkWIQ1u2pDm7nBN3oGUP/D+\nXUYfclPzydqL3zTqvd88b1Tz6X/+t91GvusLawb+b+1+OeXto3fa57/flbchnd/3A4LLBry2\nnR9kN7de8USen//lDR9yI6TX/mhPfmTvkft+5Kd568cRtw/GvRhWEdJwypq3/2UVNR/dc2kV\nNdtVhDSsckv2w60veXrEF7a+ZHuLkIZV1h178Mqt7jjmkK3u2P4ipOGVRvvPI21V/v6Nc6uY\nZDuLkIypIEIypoIIyZgKIiRjKoiQjKkgQjKmggjJmAoiJGMqyP8Hytpq6Z9ZZJkAAAAASUVO\nRK5CYII=",
955 "text/plain": [
956 "plot without title"
957 ]
958 },
959 "metadata": {
960 "image/png": {
961 "height": 420,
962 "width": 420
963 },
964 "text/plain": {
965 "height": 420,
966 "width": 420
967 }
968 },
969 "output_type": "display_data"
970 }
971 ],
972 "source": [
973 "FamilyTreeRQ3Raw <- rbind(\n",
974 " Load1Log(\"measurements/stats/FamilyTree/size100to-1r10n1rt3600stats.csv\", 100),\n",
975 " Load1Log(\"measurements/stats/FamilyTree/size150to-1r10n1rt3600stats.csv\", 150),\n",
976 " Load1Log(\"measurements/stats/FamilyTree/size200to-1r10n1rt3600stats.csv\", 200),\n",
977 " Load1Log(\"measurements/stats/FamilyTree/size250to-1r10n1rt3600stats.csv\", 250),\n",
978 " Load1Log(\"measurements/stats/FamilyTree/size300to-1r10n1rt3600stats.csv\", 300)\n",
979 ")\n",
980 "FamilyTreeRQ3 <- FamilyTreeRQ3Raw %>% ProcessRQ3\n",
981 "FamilyTreeRQ3\n",
982 "FamilyTreeRQ3 %>% RQ3Plot('FamilyTree', c(100, 150, 200, 250, 300))"
983 ]
984 },
985 {
986 "cell_type": "markdown",
987 "metadata": {},
988 "source": [
989 "### Sat domain"
990 ]
991 },
992 {
993 "cell_type": "code",
994 "execution_count": 53,
995 "metadata": {},
996 "outputs": [
997 {
998 "data": {
999 "text/html": [
1000 "<table>\n",
1001 "<caption>A tibble: 5 × 2</caption>\n",
1002 "<thead>\n",
1003 "\t<tr><th scope=col>n</th><th scope=col>time</th></tr>\n",
1004 "\t<tr><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th></tr>\n",
1005 "</thead>\n",
1006 "<tbody>\n",
1007 "\t<tr><td>100</td><td> 31.3970</td></tr>\n",
1008 "\t<tr><td>150</td><td> 132.9415</td></tr>\n",
1009 "\t<tr><td>200</td><td> 373.5750</td></tr>\n",
1010 "\t<tr><td>250</td><td> 927.9225</td></tr>\n",
1011 "\t<tr><td>300</td><td>2234.0605</td></tr>\n",
1012 "</tbody>\n",
1013 "</table>\n"
1014 ],
1015 "text/latex": [
1016 "A tibble: 5 × 2\n",
1017 "\\begin{tabular}{ll}\n",
1018 " n & time\\\\\n",
1019 " <dbl> & <dbl>\\\\\n",
1020 "\\hline\n",
1021 "\t 100 & 31.3970\\\\\n",
1022 "\t 150 & 132.9415\\\\\n",
1023 "\t 200 & 373.5750\\\\\n",
1024 "\t 250 & 927.9225\\\\\n",
1025 "\t 300 & 2234.0605\\\\\n",
1026 "\\end{tabular}\n"
1027 ],
1028 "text/markdown": [
1029 "\n",
1030 "A tibble: 5 × 2\n",
1031 "\n",
1032 "| n &lt;dbl&gt; | time &lt;dbl&gt; |\n",
1033 "|---|---|\n",
1034 "| 100 | 31.3970 |\n",
1035 "| 150 | 132.9415 |\n",
1036 "| 200 | 373.5750 |\n",
1037 "| 250 | 927.9225 |\n",
1038 "| 300 | 2234.0605 |\n",
1039 "\n"
1040 ],
1041 "text/plain": [
1042 " n time \n",
1043 "1 100 31.3970\n",
1044 "2 150 132.9415\n",
1045 "3 200 373.5750\n",
1046 "4 250 927.9225\n",
1047 "5 300 2234.0605"
1048 ]
1049 },
1050 "metadata": {},
1051 "output_type": "display_data"
1052 },
1053 {
1054 "data": {
1055 "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAC7lBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJyco\nKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6\nOjo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tM\nTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1e\nXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZoaGhpaWlqampra2tsbGxtbW1ubm5vb29wcHBx\ncXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGCgoKD\ng4OEhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+RkZGSkpKTk5OVlZWWlpaX\nl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGjo6OkpKSlpaWmpqanp6eoqKipqamq\nqqqrq6usrKytra2urq6vr6+wsLCxsbGzs7O0tLS1tbW2tra3t7e4uLi5ubm6urq7u7u8vLy9\nvb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnKysrLy8vMzMzOzs7Pz8/Q\n0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd3d3e3t7f39/g4ODh4eHi\n4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w8PDx8fHy8vLz8/P0\n9PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7///8z8EZqAAAACXBIWXMAABJ0AAAS\ndAHeZh94AAAgAElEQVR4nO3dbYBdVWGv8Q0SogJaKy+KKG19r0ilsWhFbAUv9da8IJAgCSQk\nEVTwgkgvKPQCTRtaA0SBthFQERFBrYBGUATrJShqEJSLkKASCGFnZjKTTCaEZPa3e17mTELW\negh7ZzFnzuT5f5gzyYxP1jmzfmYSS8kK59wOL2v3AZwbCxOScwkmJOcSTEjOJZiQnEswITmX\nYEJyLsGE5FyCJYL02cm4iZP4Y89/kxJlPAxlRtVhJqaoTJ6YKMMfOiU1pFP/gB/qeybFL7Au\nT5PZkKKyPk+TWZ+isiFPk1mXovJMnibTm6KyOU+T6cEPbZw8/K6QKkxINCHt4IRUJSMkyggp\nnJAwIyTKCCmckDAjJMoIKZyQMCMkyggpnJAwIyTKCCmckDAjJMoIKZyQMCMkyggpnJAwIyTK\nCCmckDAjJMoIKZyQMCMkyggpnJAwIyTKCCmckDAjJMoIKZyQMCMkyggpnJAwIyTKCCmckDAj\nJMoIKZyQMCMkyggpnJAwIyTKCCmckDAjJMoIKZyQMCMkyggpnJAwIyTKCCmckDAjJMoIKZyQ\nMCMkyggpnJAwIyTKCCmckDAjJMoIKZyQMCMkyggpnJAwIyTKCCmckDAjJMrstJDm3t9NW40f\nKbOuPElmdVeKSleeJjP2DtOd5jCJLk2eJsOVVRNTQ/J3pCoZf0eizE77O5KQqmSERBkhhRMS\nZoREGSGFExJmhEQZIYUTEmaERBkhhRMSZoREmSEBJ7R3zUMIKZYREmWEJKQSGSFRRkhCKpER\nEmWEJKQSGSFRRkhCKpEREmWEJKQSGSFRRkhCKpEREmWEJKQSGSFRRkhCKpEREmWEJKQSGSFR\nRkhCKpEREmWEJKQSGSFRRkhCKpEREmWEJKQSGSFRRkhCKpEREmWEJKQSGSFRRkhCKpEREmWE\nJKQSGSFRRkhCKpEREmWEJKQSGSFRRkhCKpEREmWEJKQSGSFRRkhCKpEREmWEJKQSGSFRRkhC\nKpEREmWEJKQSGSFRRkhCKpEREmWEJKQSGSFRRkhCKpEREmWEJKQSGSFRRkhCKpEREmWEJKQS\nGSFRRkhCKpEREmWEJKQSGSFRRkhCKpEREmWEJKQSGSFRRkhCKpEREmWEJKQSGSFRRkhCKpER\nEmWEJKQSGSFRRkhCKpEREmWEJKQSGSFRRkhCKpEREmWEJKQSGSFRRkhCKpEREmWEJKQSGSFR\nRkhCKpEREmWEJKQSGSFRRkhCKpEREmWEJKQSGSFRRkhCKpEREmWEJKQSGSFRRkhCKpEREmWE\nJKQSGSFRRkhCKpEREmWEJKQSGSFRRkhCKpEREmWEJKQSGSFRRkhCKpEREmWEJKQSGSFRRkhC\nKpEREmWEJKQSGSFRRkhCKpEREmWEJKQSGSFRRkhCKpEREmWEJKQSGSFRRkhCKpEREmWEJKQS\nGSFRRkgvKKSuBSdOO/eholh76azpF60KH4cmpCoZIVFm7EH61DnLnrhkxkAx75zljy84bXPw\nODQhVckIiTJjDlLf/JqQpyb9Np+8rPa70NFLt31sfZ6QqmSERJkxB6mxB6d0333sYO2d02/Y\n9rH2Zv2K2uY+uonW+zR+qMTW5kkyfetTVNblaTLrUlTW52kyfSkqT+drk2TWNB/bDKl5iI3d\neM6BUpD6PvGlYvHJ9ffOW7TtY+3NHRNqm3Zf7lzqtRnSds/3xMQSkB479crBYvHsIUDbPNbe\nPHBObTMe7KN19+KHSqw7T5NZk6LSk/ckyaSppDnMmu4Uld48Taar+dhmSM8+TGRdJSAtnX5z\n7e09zW/lbtz2sfVZ/hmpSsY/I1Fm7P0Z6dcn/Lz+0DX54aLonfLAto+tTxNSlYyQKDPmID19\nyvX17wUHiovPXL7iwrMGg8ehCalKRkiUGXOQlk5q7Jaif+HMGfO7i+BxaEKqkhESZcYcpOc7\nIVXJCIkyQgonJMwIiTJCCickzAiJMkIKJyTMCIkyQgonJMwIiTJCCickzAiJMkIKJyTMCIky\nQgonJMwIiTJCCickzAiJMkIKJyTMCIkyQgonJMwIiTJCCickzAiJMkIKJyTMCIkyQgonJMwI\niTJCCickzAiJMkIKJyTMCIkyQgonJMwIiTJCCickzAiJMkIKJyTMCIkyQgonJMwIiTJCCick\nzAiJMkIKJyTMCIkyQgonJMwIiTJCCickzAiJMkIKJyTMCIkyQgonJMwIiTJCCickzAiJMkIK\nJyTMCIkyQgonJMwIiTJCCickzAiJMkIKJyTMCIkyQgonJMwIiTJCCickzAiJMkIKJyTMCIky\nQgonJMwIiTJCCickzAiJMkIKJyTMCIkyQgonJMwIiTJCCickzAiJMkIKJyTMCIkyQgonJMwI\niTJCCickzAiJMkIKJyTMCIkyQgonJMwIiTJCCickzAiJMkIKJyTMCIkyQgonJMwIiTJCCick\nzAiJMkIKJyTMCIkyQgonJMwIiTJCCickzAiJMkIKJyTMCIkyQgonJMwIiTJCCickzAiJMkIK\nJyTMCIkyQgonJMwIiTJCCickzAiJMkIKJyTMCIkyQgonJMwIiTJCCickzAiJMkIKJyTMCIky\nQgonJMwIiTJCCickzAiJMkIKJyTMCIkyQgonJMwIiTJCCickzAiJMkIKJyTMCIkyQgonJMwI\niTJCCickzAiJMkIKJyTMCIkyQgonJMwIiTJCCickzAiJMkIKJyTMCIkyOy2kjz48QOvpxw+V\n2Jo8TWZtikpfnibTl6KyNk+TWZOi0p/3Jsl0Nx/bDKl5iPVdeM6+SckhPbSO1t2HHyqxnjxN\npjdFZU2eJrMmRaU3T5PpSVHpy9NkupqPbYbUPMTaLjxnT3JIfmtXJeO3dpTZab+1E1KVjJAo\nI6RwQsKMkCgjpHBCwoyQKCOkcELCjJAoI6RwQsKMkCgjpHBCwoyQKCOkcELCjJAoI6RwQsKM\nkCgjpHBCwoyQKCOkcELCjJAoI6RwQsKMkCgjpHBCwoyQKCOkcELCjJAoI6RwQsKMkCgjpHBC\nwoyQKCOkcELCjJAoI6RwQsKMkCgjpHBCwoyQKCOkcELCjJAoI6RwQsKMkCgjpHBCwoyQKCOk\ncELCjJAoI6RwQsKMkCgjpHBCwoyQKCOkcELCjJAoI6RwQsKMkCgjpHBCwoyQKCOkcELCjJAo\nI6RwQsKMkCgjpHBCwoyQKCOkcELCjJAoI6RwQsKMkCgjpHBCwoyQKCOkcELCjJAoI6RwQsKM\nkCgjpHBCwoyQKCOkcELCjJAoI6RwQsKMkCgjpHBCwoyQKCOkcELCjJAoI6RwQsKMkCgjpHBC\nwoyQKCOkcELCjJAoI6RwQsKMkCgjpHBCwoyQKCOkcELCjJAoI6RwQsKMkCgjpHBCwoyQKCOk\ncELCjJAoI6RwQsKMkCgjpHBCwoyQKCOkcELCjJAoI6RwQsKMkCgjpHBCwoyQKCOkcELCjJAo\nI6RwQsKMkCgjpHBCwoyQKCOkcELCjJAoI6RwQsKMkCgjpHBCwoyQKCOkcELCjJAoI6RwQsKM\nkCgjpHBCwoyQKCOkcELCjJAoI6RwQsKMkCgjpHBCwoyQKCOkcELCjJAoI6RwQsKMkCgjpHBC\nwoyQKCOkcELCjJAoI6RwQsKMkCgjpHBCwoyQKDMGIa349JT6wycn1Ta1KNZeOmv6Rau2PA5N\nSFUyQqLM2IP045kLG5Bm35zneVdRzDtn+eMLTts8/Dg0IVXJCIkyYw/SD59a0oB03L2NH+aT\nl9V+Nzp6aeux9WlCqpIREmXGHqSiaEDaOOkLZ8yZv6K4+9jB2o9Ov6H12PokIVXJCIkyYxbS\nmpMue+ihC09at/jk+k+dt6j1WHuz7Au1zXxoHa27Dz9UYj15mkxvisqaPE1mTYpKb54m05Oi\n0penyXQ1H9sMqXmItV14zp5JZSE1tn7qbYtnD0GaPQzpjgm1Tbsvdy712gxpu+d7YmIlSMUn\nvnZP81u6G1uPtTd9v6lt7qPP0Ho34IdKrC9Pk+lPUVmXp8msS1Hpz9Nk+lJUNuRpMmuaj22G\n1DzE0914zvWlv7X73eW1P6IMTL2ja/LDRdE75YHWY+uT/DNSlYx/RqLM2PszUnd+25Q8H+ib\nvnDlivmzNxQXn7l8xYVnDQ4/Dk1IVTJCoszYgzS3/j/ETvpOsez840+c92RR9C+cOWN+95bH\noQmpSkZIlBl7kJ7nhFQlIyTKCCmckDAjJMoIKZyQMCMkyggpnJAwIyTKCCmckDAjJMoIKZyQ\nMCMkyggpnJAwIyTKCCmckDAjJMoIKZyQMCMkyggpnJAwIyTKCCmckDAjJMoIKZyQMCMkyggp\nnJAwIyTKCCmckDAjJMoIKZyQMCMkyggpnJAwIyTKCCmckDAjJMoIKZyQMCMkyggpnJAwIyTK\nCCmckDAjJMoIKZyQMCMkyggpnJAwIyTKCCmckDAjJMoIKZyQMCMkyggpnJAwIyTKCCmckDAj\nJMoIKZyQMCMkyggpnJAwIyTKCCmckDAjJMoIKZyQMCMkyggpnJAwIyTKCCmckDAjJMoIKZyQ\nMCMkyggpnJAwIyTKCCmckDAjJMoIKZyQMCMkyggpnJAwIyTKCCmckDAjJMoIKZyQMCMkyggp\nnJAwIyTKCCmckDAjJMoIKZyQMCMkyggpnJAwIyTKCCmckDAjJMoIKZyQMCMkyggpnJAwIyTK\nCCmckDAjJMoIKZyQMCMkyggpnJAwIyTKCCmckDAjJMoIKZyQMCMkyggpnJAwIyTKCCmckDAj\nJMoIKZyQMCMkyggpnJAwIyTKCCmckDAjJMoIKZyQMCMkyggpnJAwIyTKCCmckDAjJMoIKZyQ\nMCMkyggpnJAwIyTKCCmckDAjJMoIKZyQMCMkyggpnJAwIyTKCCmckDAjJMoIKZyQMCMkyggp\nnJAwIyTKCCmckDAjJMoIKZyQMCMkyggpnJAwIyTKCCmckDAjJMoIKZyQMCMkyggpnJAwIyTK\nCCmckDAjJMp0OKR1X5/zjgP2fM075ny97Msx9/5u2mr8SJl15Ukyq7tSVLryNJmxd5juNIdp\nXZo2Q3r2YSJbNTEGacMl+2S7H3zEMUccvHu2zyXl/jv31N8P0vo24odKbF2eJjOQotKfp8n0\np6gM5Gky61JUNuZpMr3NxzZDah5iUw+e8+nY70iPTth12q39jXf7b52264RHS0HyW7sKGb+1\no0wnf2v3ivf/ZqtP+c37/7jMMxdSlYyQKNPJkM7f9KzP2XRemWcupCoZIVGmkyHV1/9E7cv7\npUuWlX7mQqqSERJlOhzSg/teXDzzzix7+S/KPnMhVckIiTIdDumYtz9SXJtd+ch7jiv7zIVU\nJSMkynQ4pH2vK4oPH1QU17227DMXUpWMkCjT4ZB2v6PY9Ir/XRS37V72mQupSkZIlOlwSK+9\nqrgtu6Morn512WcupCoZIVGmwyHNfdW5B75+U7HqYP+M9JwTEk1IjT3x7mzvJUVx/MvvK/vM\nhVQlIyTKdDikoujdWHtz75Oln7mQqmSERJlOhjT72V+P9XPKPHMhVckIiTKdDOnAg+/c6lPu\nPPjAMs9cSFUyQqJMJ0NafVT2vmtWNN5dcc37sqNWl3nmQqqSERJlOhlSsfnaN2TZfm97z9v2\ny7I3Xru51DMXUpWMkCjT0ZCKYtOd53/o0Lcc+qHz79wU/Geee0KqkhESZTocUvUJqUpGSJTp\neEgDP/tWXlS4skKqkhESZTod0iV7ZdmS4rMnl760QqqSERJlOhzSomzyf9QgfWW3z5V95kKq\nkhESZToc0sEfKwZqkIrPvKnsMxdSlYyQKNPhkF58exPS98eVfeZCqpIREmU6HNK+NzchfeNl\nZZ+5kKpkhESZDof0gb9ZX4fUddBRZZ+5kKpkhESZDof0oxe94YxszqyXjftJ2WcupCoZIVGm\nwyEVPzgkq+3QO7f9D2x3QqqSERJlOh1SUaz65S+7KzxzIVXJCIkynQ+pr6exss9cSFUyQqJM\nh0Na9qE9subKPnMhVckIiTIdDulvXz7j7HMaK/vMhVQlIyTKdDikPf5v1WcupCoZIVGmwyHt\n+3jVZy6kKhkhUabDIX16XtVnLqQqGSFRpsMhPf2Bw86+uLGyz1xIVTJCokyHQ7o4y/xbu+cx\nIdGE1Nirj/3JI482VvaZC6lKRkiU6XBI4/3Lhuc1IdGE1NghS6s+cyFVyQiJMh0O6a4jSv9/\nzx+akKpkhESZDod02AHZngc2VvaZC6lKRkiU6XBIhx/ZWtlnLqQqGSFRpsMhVZ+QqmSERBkh\nhRMSZoREmU6G9Ob5xZuHV/aZC6lKRkiU6WRI71pYvGt4ZZ+5kKpkhESZToa0QxNSlYyQKNPh\nkCb8pvl401vLPnMhVckIiTIdDim7t/k0Ltq97DMXUpWMkCjT0ZCyLfvLss9cSFUyQqJMR0Na\n+vlsytz6Pvp/Hiv7zIVUJSMkynQ0pKL4u99WfeZCqpIREmU6HFL1CalKRkiU6XBIq2btv6v/\nhOz2JySakBqbutuRsxp/Sppb9pkLqUpGSJTpcEiv/K+qz1xIVTJCokyHQ3rpU1WfuZCqZIRE\nmQ6HdPiPqj5zIVXJCIkyHQ7p54feXfGZC6lKRkiU6XBIh702e6n/qPn2JySakBrzHzV/fhMS\nTUg7OCFVyQiJMkIKJyTMCIkyHQ7pla3tVfaZC6lKRkiU6XBIUxo79CUHnVb2mQupSkZIlOlw\nSENb+b5byj5zIVXJCIkyYwNSce+Ess9cSFUyQqLMGIG08iVln7mQqmSERJmxAWnwXw4o+8yF\nVCUjJMp0OKS/aOygvbOzyz5zIVXJCIkyYwLSIUd8/umyz1xIVTJCokyHQ6o+IVXJCIkyYwXS\no2WfuZCqZIREmY6GdNdRbzjqu/V3NvzzVn9rt+LTU+oPay+dNf2iVeHj0IRUJSMkynQypCXj\ndnnduF2+URTff2O25d9G8eOZCxuQ5p2z/PEFp20OHocmpCoZIVGmkyFNefnSYtU73/rYcdkf\nLdw4/LM/fGpJHVI+eVntd6Gjl2772Po0IVXJCIkynQzpT86ovfle9uIXfTx/1ic3IN197GDt\n7ek3bPvY+iQhVckIiTKdDGm3K2pvfpf9zf3bfHID0uKT6++et2jbx9qbOybUNu2+3LnUazOk\n7Z7viYkRSNkXa29WZt/bVl0T0uwhQNs81t7ce2JtJzzQQ1vdjR8qsa48RaWnK9FhupJk0lTS\nHKY7TSXRYVY3H9sMaeg0q/GcT5WGdE/zW7kbt31sfZLf2lXJ+K0dZTr5W7vnhNQ1+eGi6J3y\nwLaPrU8SUpWMkCjT0ZA+s2TJkluzhUvqG/7Z7vy2KXk+UFx85vIVF541GDwOTUhVMkKiTEdD\n2nrDPzt3Un3fKfoXzpwxv7sIHocmpCoZIVGmkyFdsPXKPnMhVckIiTKdDGmHJqQqGSFRRkjh\nhIQZIVFGSOGEhBkhUUZI4YSEGSFRRkjhhIQZIVFGSOGEhBkhUUZI4YSEGSFRRkjhhIQZIVFG\nSOGEhBkhUUZI4YSEGSFRRkjhhIQZIVFGSOGEhBkhUUZI4YSEGSFRRkjhhIQZIVFGSOGEhBkh\nUUZI4YSEGSFRRkjhhIQZIVFGSOGEhJnRCGlU3F0hRSYkzAgJ7q6QIhMSZoQEd1dIkQkJM0KC\nuyukyISEGSHB3RVSZELCjJDg7gopMiFhRkhwd4UUmZAwIyS4u0KKTEiYERLcXSFFJiTMCAnu\nrpAiExJmhAR3V0iRCQkzQoK7K6TIhIQZIcHdFVJkQsKMkODuCikyIWFGSHB3hRSZkDAjJLi7\nQopMSJgREtxdIUUmJMwICe6ukCITEmaEBHdXSJEJCTNCgrsrpMiEhBkhwd0VUmRCwoyQ4O4K\nKTIhYUZIcHeFFJmQMCMkuLtCikxImBES3F0hRSYkzAgJ7q6QIhMSZoQEd1dIkQkJM0KCuyuk\nyISEGSHB3RVSZELCjJDg7gopMiFhRkhwd4UUmZAwIyS4u0KKTEiYERLcXSFFJiTMCAnurpAi\nExJmhAR3V0iRCQkzQoK7K6TIhIQZIcHdFVJkQsKMkODuCikyIWFGSHB3hRSZkDAjJLi7QopM\nSJgREtxdIUUmJMwICe6ukCITEmaEBHdXSJEJCTNCgrsrpMiEhBkhwd0VUmRCwoyQ4O4KKTIh\nYUZIcHeFFJmQMCMkuLtCikxImBES3F0hRSYkzAgJ7q6QIhMSZoQEd1dIkQkJM0KCuyukyISE\nGSHB3RVSZELCjJDg7gopMiFhRkhwd3deSKcs30hbM4AfKrG+PE2mP0VlbZ4mszZFpT9Pk+lr\nPrb57jYPMdAzig6zoZtftEmpIX30/62ldffhh0qsJ0+TWZOkkqfJ9KSorMnTZIYqbb67zUP0\ndY3Cw0TWnRyS39pVyfitXbDmIXbeb+2EVCUjJLi7QopMSJgREtxdIUUmJMwICe6ukCITEmaE\nBHdXSJEJCTNCgrsrpMiEhBkhwd0VUmRCwoyQ4O4KKTIhYUZIcHeFFJmQMCMkuLtCikxImBES\n3F0hRSYkzAgJ7q6QIhMSZoQEd1dIkQkJM0KCuyukyISEGSHB3RVSZELCjJDg7gopMiFhRkhw\nd4UUmZAwIyS4u0KKTEiYERLcXSFFJiTMCAnurpAiExJmhAR3V0iRCQkzQoK7K6TIhIQZIcHd\nFVJkQsKMkODuCikyIWFGSHB3hRSZkDAjJLi7QopMSJgREtxdIUUmJMwICe6ukCITEmaEBHdX\nSJEJCTNCgrsrpMiEhBkhwd0VUmRCwoyQ4O4KKTIhYUZIcHeFFJmQMCMkuLtCikxImBES3F0h\nRSYkzAgJ7q6QIhMSZoQEd1dIkQkJM0KCuyukyISEGSHB3RVSZELCjJDg7gopMiFhRkhwd4UU\nmZAwIyS4u0KKTEiYERLcXSFFJiTMCAnurpAiExJmhAR3V0iRCQkzQoK7K6TIhIQZIcHdFVJk\nQsKMkODuCikyIWFGSHB3hRSZkDAjJLi7QopMSJgREtxdIUUmJMwICe6ukCITEmaEBHdXSJEJ\nCTNCgrsrpMiEhBkhwd0VUmRCwoyQ4O4KKTIhYUZIcHeFFJmQMCMkuLtCikxImBES3F0hRSYk\nzAgJ7q6QIhMSZoQEd1dIkQkJM0KCuyukyISEGSHB3RVSZELCjJDg7gopMiFhRkhwd4UUmZAw\nIyS4u0KKTEiYERLcXSFFJiTMCAnurpAiExJmhAR3V0iRCQkzQoK7K6TIhIQZIcHdFVJkQsKM\nkODuCikyIWFGSHB3xzCkT06qbWpRrL101vSLVm15HJqQqmSEBHd3DEOafXOe511FMe+c5Y8v\nOG3z8OPQhFQlIyS4u2MY0nH3Nh7yyctqvxsdvbT12PqwkKpkhAR3d+xC2jjpC2fMmb+iuPvY\nwdqPTr+h9dj6uJCqZIQEd3fsQlpz0mUPPXThSesWn1z/0XmLWo+1N7//cm0zf7ue1rMOP1Ri\na/I0mb4Uld48TaY3RaUvT5NZ03xs891tHmJdzyg6TH8Xvmi9k8pCamz91NsWzx6CNHsY0h0T\napt2X+7GxNp8d0fxYSJ7YmIlSMUnvnZP81u6G1uPtTerbq9t9iMbaD39+KES683XJ8msTVHp\ny9Nk+lJU1uZpMr3Nxzbf3eYh+ntG0WEGuvhFK/070u8ur/0RZWDqHV2THy6K3ikPtB5bH/fP\nSFUy/hkpWPMQY/fPSH3TF65cMX/2huLiM5evuPCsweHHoQmpSkZIcHfHLqRi2fnHnzjvyaLo\nXzhzxvzuLY9DE1KVjJDg7o5hSNuZkKpkhAR3V0iRCQkzQoK7K6TIhIQZIcHdFVJkQsKMkODu\nCikyIWFGSHB3hRSZkDAjJLi7QopMSJgREtxdIUUmJMwICe6ukCITEmaEBHdXSJEJCTNCgrsr\npMiEhBkhwd0VUmRCwoyQ4O4KKTIhYUZIcHeFFJmQMCMkuLtCikxImBES3F0hRSYkzAgJ7q6Q\nIhMSZoQEd1dIkQkJM0KCuyukyISEGSHB3RVSZELCjJDg7gopMiFhRkhwd4UUmZAwIyS4u0KK\nTEiYERLcXSFFJiTMCAnurpAiExJmhAR3V0iRCQkzQoK7K6TIhIQZIcHdFVJkQsKMkODuCiky\nIWFGSHB3hRSZkDAjJLi7QopMSJgREtxdIUUmJMwICe6ukCITEmaEBHdXSJEJCTNCgrsrpMiE\nhBkhwd0VUmRCwoyQ4O4KKTIhYWZIwKi4LkKiwwgplhESXBch0WGEFMsICa6LkOgwQoplhATX\nRUh0GCHFMkKC6yIkOoyQYhkhwXUREh1GSLGMkOC6CIkOI6RYRkhwXYREhxFSLCMkuC5CosMI\nKZYRElwXIdFhhBTLCAmui5DoMEKKZYQE10VIdBghxTJCgusiJDqMkGIZIcF1ERIdRkixjJDg\nugiJDiOkWEZIcF2ERIcRUiwjJLguQqLDCCmWERJcFyHRYYQUywgJrouQ6DBCimWEBNdFSHQY\nIcUyQoLrIiQ6jJBiGSHBdRESHUZIsYyQ4LoIiQ4jpFhGSHBdhESHEVIsIyS4LkKiwwgplhES\nXBch0WGEFMsICa6LkOgwQoplhATXRUh0GCHFMkKC6yIkOoyQYhkhwXUREh1GSLGMkOC6CIkO\nI6RYRkhwXYREhxFSLCMkuC5CosMIKZYRElwXIdFhhBTLCAmui5DoMEKKZYQE10VIdBghxTJC\ngusiJDqMkGIZIcF1ERIdZkQhzf31GlpXD36oxLryNJnuFJXuPE1mqNLm6zJ0mK5RdJie1aPw\nMJHlE1NDOuXRTbTep/FDJbY2T5NZn6KyLk+TWdd8bPN1aR5i/dpRdJin14yiw2zsxq/ggN/a\n7dD81u4FPszO+62dkKpkhASHEVJkQsKMkOAwQopMSJgREhxGSJEJCTNCgsMIKTIhYUZIcBgh\nRSYkzAgJDiOkyISEGSHBYYQUmZAwIyQ4jJAiExJmhASHEVJkQsKMkOAwQopMSJgREhxGSOqT\n+U8AAAyZSURBVJEJCTNCgsMIKTIhYUZIcBghRSYkzAgJDiOkyISEGSHBYYQUmZAwIyQ4jJAi\nExJmhASHEVJkQsKMkOAwQopMSJgREhxGSJEJCTNCgsMIKTIhYUZIcBghRSYkzAgJDiOkyISE\nGSHBYYQUmZAwIyQ4jJAiExJmhASHEVJkQsKMkOAwQopMSJgREhxGSJEJCTNCgsMIKTIhYUZI\ncBghRSYkzAgJDiOkyISEGSHBYYQUmZAwIyQ4jJAiExJmhASHEVJkQsKMkOAwQopMSJgREhxG\nSJGNSkij4iskJDqMkCITEn2FhESHEVJkQqKvkJDoMEKKTEj0FRISHUZIkQmJvkJCosMIKTIh\n0VdISHQYIUUmJPoKCYkOI6TIhERfISHRYYQUmZDoKyQkOoyQIhMSfYWERIcRUmRCoq+QkOgw\nQopMSPQVEhIdRkiRCYm+QkKiwwgpMiHRV0hIdBghRSYk+goJiQ4jpMiERF8hIdFhhBSZkOgr\nJCQ6jJAiExJ9hYREhxFSZEKir5CQ6DBCikxI9BUSEh1GSJEJib5CQqLDCCkyIdFXSEh0GCFF\nJiT6CgmJDiOkyIREXyEh0WGEFJmQ6CskJDqMkCITEn2FhESHEVJkQqKvkJDoMEKKTEj0FRIS\nHUZIkQmJvkJCosMIKTIh0VdISHQYIUUmJPoKCYkOI6TIhERfISHRYYQUWQvSqHhRhESHERId\nRkiRF0VIdBgh0WGEFHlRhESHERIdRkiRF0VIdBgh0WGEFHlRhESHERId5oWFtPbSWdMvWjX8\nQyFVOIyQ6DA7EaR55yx/fMFpm1s/FFKFwwiJDrPzQMonL6v9rnT00taPhVThMEKiw+w8kO4+\ndrD29vQbWj8WUoXDCIkOs/NAWnxy/e15i2pvlkyu7YT7u2mru5qPbX5Rmofo8jAdcZjVo+gw\n3avxbq+auMOQZpeGtGPrylNUhq/LDlbyNJmxd5juRIfhu1tmeZrMCwnpnua3dje2ftxp/7d2\nO7b1eZrM+hSVDXmazLoUlWfyNJneFJXNeZrMC/mtXdfkh4uid8oDrR8LqUpGSJTZaSAVF5+5\nfMWFZw22fiikKhkhUWbngdS/cOaM+d3DPxRSlYyQKLPzQNpmQqqSERJlhBROSJgREmWEFE5I\nmBESZYQUTkiYERJlhBROSJgREmWEFE5ImBESZYQUTkiYERJlhBROSJgREmWEFE5ImBESZYQU\nTkiYERJlhBROSJgREmWEFE5ImBESZYQUTkiYERJlhBROSJgREmWEFE5ImBESZYQUTkiYERJl\nhBROSJgREmWEFE5ImBESZYQUTkiYERJlhBROSJgREmWEFE5ImBESZYQUTkiYERJlhBROSJgR\nEmWEFE5ImBESZYQUTkiYERJlhBROSJgREmWEFE5ImBESZYQUTkiYERJlhBROSJgREmV2Xkif\n/zLtP6/BD5XYoivSZK5KUfniFWkyX0xRueqKNJlFKSrXXJEm858pKl+6Ik3m3/FDVyeHdNc3\ncd+4iT/2/PdPc65OkbnxxhSVBXMuT5FJc5jL5yxIkUlzmKvnXJQic9M3UlSum/OZFJmbbuCP\nfT81pBd8l074VbuPsGXXTri93UfYstsnXNvuI2zZ/RMuafcRtiyfcPbI/WJCqjAh0YQ02ick\nmpBoQopMSDQh0YTkXKdNSM4lmJCcSzAhOZdgoxzSik9PqT+svXTW9ItWbXls62E+Oam2qe0+\nTNeCE6ed+9AoeWlahxkVL80f5k0/4bMPjvQrM7oh/XjmwsbdnXfO8scXnLZ5+LGth5l9c57n\nXUV7D1N86pxlT1wyY2B0vDStw4yGl+aZWZeteGLhR9aP8CszuiH98Kkl9bubT15W+y+Wo5e2\nHtt6mOK4exs/bO9h+ub/oSiemvTbUfHStA4zKl6aNd9aX/vmYdKyEX5lRjekomjc3buPHay9\nPf2G1mNbD7Nx0hfOmDN/RdHuw9T24JTu0fLSNA4zal6avis/vnGEX5mOgLT45Pq75y1qPbb1\nMGtOuuyhhy48aV27D1O7Lp/40qh5aRqHGSUvzeZjJn1m9Ui/Mp0BaXb93dprMvTY1sM0tn7q\nbe0+TPHYqVcOjpqXpnGYxkbBS/PYry4+de0IvzIdAeme5u/ON7Ye23qY5j7xtXYfZun0m4tR\n89I0D9Nc+1+a2m9Kx98ywq9MR0DqmvxwUfROeaD12NbD/O7yZ4piYOodbT7Mr0/4ef1hdLw0\nQ4cZFS/NL07ZUBSDM24Z4VdmdEPqzm+bkucDxcVnLl9x4VmDw4/tPEzf9IUrV8yfvaG9h3n6\nlOvzfLS8NK3DjIqXZu1J//qHlYuOXTnCr8zohjS3/j/wTfpO0b9w5oz53cXwY1sPs+z840+c\n92SbD7O0cZhJt4yKl2b4MKPipfndBVOnnb20GOFXZnRDcq5DJiTnEkxIziWYkJxLMCE5l2BC\nci7BhORcggnJuQQT0sjugmyfjc335maHhR8+fo+tf3TYm1vv5f/yl6/cbZ+/W1x7911vDv5T\nW231gXNqb785tSieevV2D/PsX6218/740e3+J922E9LI7oJdX/TtxjvrXzbu+UPq+pOXnv7V\n6//5z3a9vigWzn+O/OajDq7/uynOq33O4r/f7mHikDa9f0KSf9nGzjUhjewu2O09zX+DwXXj\n3vn8IV2Wfb3+0P2aA7fzT0xfm91Zf/hg7beu+edv9zBxSMVvdh1F/18eO2VCGtldkM3f7cn6\nO0cddVgd0ncP3/PFb7t0sCgGLzpg/EE3Nq72nR/Y6yWHXF1sBekfsocbj4+tb3xrd2/W3P1b\nfW5jm970vsbjvk8VxXHfGvrJw9/7iyP22ucjq7b3qz3x0deN3++YB2vvTds3yb/laKeakEZ2\nF2QPN/77fsWu17y7Bunbu3zwv35wVvYPRfFv2YzbbzjozbWr/YMXve/m2z6WXbIVpOuzDw//\n265qkPpur+2WfQ5Ys9XnNnZXdk1RLBg/Phs/fvwu48evaPzkka/9q9tX3fSiWdv71d79qqvu\nuO7t+/YXxa1ZO/8B+s6ckEZ2F2QDH3hb7fFfX9L3rhqkt7zu6doPjh63enD/g2rvPDGudrUP\neUPtLheT9xrYAmnztGz83//bPY3v61p/2TB7/E+3/tzG/jFr2LnpmKJ4cv/WL3lk9pP62/23\n86v1ZufW3nlk/uNF0b/73Bf8hRhrE9LIrgbpq9nPiuKtJxQ1SI9nH6v/5NXZLb/P/lf9vb/e\no1iVnTFQ23/UPmvL39oVi6fvn2V7n9s/DOnK7IvF1p/b2If2azx86rKi+OZxrf/okS+tv521\n63Z+tY2vPPAHrT+BHfyOF/I1GJMT0siuBql/r48XP8u+V4f0s2xe/Se/my36afO9Y/cofjn0\nB6DsW1tDqm3ZFw/P/nrzEKS7dz+19narz23s0Lc1Hv7qp01MzR15YP3t3Gx7v9pP/jR75bHX\nNf5VvUcc8EK+BmNyQhrZ1SAVc/5o4LRXb6pDuje7qP6Tt2ZX3dO82kfXr/acJY3l20AqisE5\n2V1NSCv3f1f9u7StPrext7yn9uY1zT8i7T5+dvMnhyFt51crNv3w7D/P3ln/6/Nj9nyhX4cx\nNyGN7OqQ7sq+s/enizqklVn995ViUbZ4WXZa/b137FF0ZbNan9yCtOGrzf/tqfhK9tUGpI2H\n79f4w9BWn9tY83eku99bFM/sOfy/BQ1D2s6v1tiV2Zdrb494TbInvLNMSCO7OqTBP3tndl8D\nUnHQ/vW/JvjgS3s37/362h9QHtql9sf/Q19e/xu6r5z3zDCkwTfus6z+uGli9qsGpNN3u6v5\nkS2f21jzz0hXnl4U9/3F8C85DOm5f7WfH1//C/JHsgWFf0aqMCGN7OqQiguz+jWvQ7p116O+\n872PZxfX/8LtmG/++4ETalf7znEHf+X75487eau//v7Rnnud8vmr/ung7JONv2y4IZtW/wvw\n25dt9bmNndf4W7tTryqKL88e/iW3QHrOX23lXgdfffvX3/OyR4qif/zswpWbkEZ2DUjLd7m0\naEIqbnvvHuMPuab2zqZzX7X72799+u61d//7f+w17k2fe2br/1u7X895/fjd9vufNxUNSGcM\n/QXBBVt9bmM/yr5U/4yfF8UZlw//klsgPfevdt+H9x23/4d/UdT/OuL6kXgtxtSENJb2zOv/\nNkXmI3uvTZHZqSakMbWvZD/e8ciDu35uxyM724Q0prb5A+8Y2OHGkYfscGPnm5DG1vLGP4+0\nQ/vHVyxPcZKdbEJyLsGE5FyCCcm5BBOScwkmJOcSTEjOJZiQnEswITmXYP8fiqiDPT7OFVMA\nAAAASUVORK5CYII=",
1056 "text/plain": [
1057 "plot without title"
1058 ]
1059 },
1060 "metadata": {
1061 "image/png": {
1062 "height": 420,
1063 "width": 420
1064 },
1065 "text/plain": {
1066 "height": 420,
1067 "width": 420
1068 }
1069 },
1070 "output_type": "display_data"
1071 }
1072 ],
1073 "source": [
1074 "SatelliteRQ3Raw <- rbind(\n",
1075 " Load1Log(\"measurements/stats/Satellite//size100to-1r10n1rt3600stats.csv\", 100),\n",
1076 " Load1Log(\"measurements/stats/Satellite//size150to-1r10n1rt3600stats.csv\", 150),\n",
1077 " Load1Log(\"measurements/stats/Satellite//size200to-1r10n1rt3600stats.csv\", 200),\n",
1078 " Load1Log(\"measurements/stats/Satellite/size250to-1r10n1rt3600stats.csv\", 250),\n",
1079 " Load1Log(\"measurements/stats/Satellite/size300to-1r10n1rt3600stats.csv\", 300)\n",
1080 ")\n",
1081 "SatelliteRQ3 <- SatelliteRQ3Raw %>% ProcessRQ3\n",
1082 "SatelliteRQ3\n",
1083 "SatelliteRQ3 %>% RQ3Plot('Satellite', c(100, 150, 200, 250, 300))"
1084 ]
1085 },
1086 {
1087 "cell_type": "markdown",
1088 "metadata": {},
1089 "source": [
1090 "### Tax domain"
1091 ]
1092 },
1093 {
1094 "cell_type": "code",
1095 "execution_count": 54,
1096 "metadata": {},
1097 "outputs": [
1098 {
1099 "data": {
1100 "text/html": [
1101 "<table>\n",
1102 "<caption>A tibble: 5 × 2</caption>\n",
1103 "<thead>\n",
1104 "\t<tr><th scope=col>n</th><th scope=col>time</th></tr>\n",
1105 "\t<tr><th scope=col>&lt;dbl&gt;</th><th scope=col>&lt;dbl&gt;</th></tr>\n",
1106 "</thead>\n",
1107 "<tbody>\n",
1108 "\t<tr><td> 300</td><td> 275.5005</td></tr>\n",
1109 "\t<tr><td> 500</td><td> 517.4950</td></tr>\n",
1110 "\t<tr><td> 700</td><td> 926.3555</td></tr>\n",
1111 "\t<tr><td> 900</td><td>1667.9120</td></tr>\n",
1112 "\t<tr><td>1100</td><td>2811.5475</td></tr>\n",
1113 "</tbody>\n",
1114 "</table>\n"
1115 ],
1116 "text/latex": [
1117 "A tibble: 5 × 2\n",
1118 "\\begin{tabular}{ll}\n",
1119 " n & time\\\\\n",
1120 " <dbl> & <dbl>\\\\\n",
1121 "\\hline\n",
1122 "\t 300 & 275.5005\\\\\n",
1123 "\t 500 & 517.4950\\\\\n",
1124 "\t 700 & 926.3555\\\\\n",
1125 "\t 900 & 1667.9120\\\\\n",
1126 "\t 1100 & 2811.5475\\\\\n",
1127 "\\end{tabular}\n"
1128 ],
1129 "text/markdown": [
1130 "\n",
1131 "A tibble: 5 × 2\n",
1132 "\n",
1133 "| n &lt;dbl&gt; | time &lt;dbl&gt; |\n",
1134 "|---|---|\n",
1135 "| 300 | 275.5005 |\n",
1136 "| 500 | 517.4950 |\n",
1137 "| 700 | 926.3555 |\n",
1138 "| 900 | 1667.9120 |\n",
1139 "| 1100 | 2811.5475 |\n",
1140 "\n"
1141 ],
1142 "text/plain": [
1143 " n time \n",
1144 "1 300 275.5005\n",
1145 "2 500 517.4950\n",
1146 "3 700 926.3555\n",
1147 "4 900 1667.9120\n",
1148 "5 1100 2811.5475"
1149 ]
1150 },
1151 "metadata": {},
1152 "output_type": "display_data"
1153 },
1154 {
1155 "data": {
1156 "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAC8VBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJyco\nKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6\nOjo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tM\nTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1e\nXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29w\ncHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGC\ngoKDg4OEhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+RkZGSkpKTk5OVlZWW\nlpaXl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGjo6OkpKSlpaWmpqanp6eoqKip\nqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4uLi5ubm6urq7\nu7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnKysrLy8vMzMzO\nzs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fZ2dna2trb29vc3Nzd3d3e3t7f39/g4ODh\n4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w8PDx8fHy8vLz\n8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7///8qETbmAAAACXBIWXMAABJ0\nAAASdAHeZh94AAAgAElEQVR4nO3de4BdZXnv8cUliXKRWm6KKG29oAdMoaFgQWy5HOqpJOGO\ngBISkKOFHizSAwg9QGmDFTAeoZabghQR1HoERUC56CEIKgIKQgJHAjHszJBMbpjb+uvsy8xk\nyPt8SdbKysxek+/vj1k72ZvfPK73+SR7BkOy3BizwclGegBjRkOEZEwFEZIxFURIxlQQIRlT\nQYRkTAURkjEVREjGVJCKIH12Eubwifzc+mdiRTUOQzVdNczhVbRMOryiGn7qE1VDOv23+FTf\niio+weJGNTWvVtGytFFNzdIqWl5tVFOzuIqWFY1qahZW0bKqUU3NK/jU8kmDD4VUIkKiCGkD\nI6QyNUKiGiGlERLWCIlqhJRGSFgjJKoRUhohYY2QqEZIaYSENUKiGiGlERLWCIlqhJRGSFgj\nJKoRUhohYY2QqEZIaYSENUKiGiGlERLWCIlqhJRGSFgjJKoRUhohYY2QqEZIaYSENUKiGiGl\nERLWCIlqhJRGSFgjJKoRUhohYY2QqEZIaYSENUKiGiGlERLWCIlqhJRGSFgjJKoRUhohYY2Q\nqEZIaYSENUKiGiGlERLWCIlqhJRGSFgjJKoRUhohYY2QqEZIaYSENUKiGiGlERLWCIlqhJRG\nSFgjJKoRUhohYY2QqEZIaYSENUKiGiGlERLWCIlqhJRGSFgjJKoRUhohYY2QqEZIaYSENUKi\nGiGlERLWCIlq+gWcMLLpDCGkqEZIVCMkIRWoERLVCElIBWqERDVCElKBGiFRjZCEVKBGSFQj\nJCEVqBES1QhJSAVqhEQ1QhJSgRohUY2QhFSgRkhUIyQhFagREtUISUgFaoRENUISUoEaIVGN\nkIRUoEZIVCMkIRWoERLVCElIBWqERDVCElKBGiFRjZCEVKBGSFQjJCEVqBES1QhJSAVqhEQ1\nQhJSgRohUY2QhFSgRkhUIyQhFagREtUISUgFaoRENUISUoEaIVGNkIRUoEZIVCMkIRWoERLV\nCElIBWqERDVCElKBGiFRjZCEVKBGSFQjJCEVqBES1QhJSAVqhEQ1QhJSgRohUY2QhFSgRkhU\nIyQhFagREtUISUgFaoRENUISUoEaIVGNkIRUoEZIVCMkIRWoERLVCElIBWqERDVCElKBGiFR\njZCEVKBGSFQjJCEVqBES1QhJSAVqhEQ1QhJSgRohUY2QhFSgRkhUIyQhFagREtUISUgFaoRE\nNUISUoEaIVGNkIRUoEZIVCMkIRWoERLVCElIBWqERDVCElKBGiFRjZCEVKBGSFQjJCEVqBES\n1QhJSAVqhEQ1QhJSgRohUY2QhFSgRkhUIyQhFagREtUISUgFaoRENUISUoEaIVGNkIRUoEZI\nVCMkIRWoERLVCElIBWqERDVCElKBGiFRjZCEVKBGSFQjJCEVqBES1QhJSAVqhEQ1QhJSgRoh\nUY2QhFSgRkhUIyQhFagREtUISUgFaoRENUISUoEaIVGNkIRUoEZIVCMkIRWoERLVCElIBWqE\nRDVCElKBGiFRjZC6AdJpzyyjvLIEnyqQBY1qahZV0dLXqKamr4qWRY1qahZU0bKksbCSmt7O\ndYQhdYZY2oNz9k2sHNLTiym9ffhUgbzSqKZmYRUtCxrV1CyoomVho5qaV6po6WtUU9PTuY4w\npM4Qi3pwzlcqh+RbuzI1vrWjmk32rZ2QytQIiWqElEZIWCMkqhFSGiFhjZCoRkhphIQ1QqIa\nIaUREtYIiWqElEZIWCMkqhFSGiFhjZCoRkhphIQ1QqIaIaUREtYIiWqElEZIWCMkqhFSGiFh\njZCoRkhphIQ1QqIaIaUREtYIiWqElEZIWCMkqhFSGiFhjZCoRkhphIQ1QqIaIaUREtYIiWqE\nlEZIWCMkqhFSGiFhjZCoRkhphIQ1QqIaIaUREtYIiWqElEZIWCMkqhFSGiFhjZCoRkhphIQ1\nQqIaIaUREtYIiWqElEZIWCMkqhFSGiFhjZCoRkhphIQ1QqIaIaUREtYIiWqElEZIWCMkqhFS\nGiFhjZCoRkhphIQ1QqIaIaUREtYIiWqElEZIWCMkqhFSGiFhjZCoRkhphIQ1QqIaIaUREtYI\niWqElEZIWCMkqhFSGiFhjZCoRkhphIQ1QqIaIaUREtYIiWqElEZIWCMkqhFSGiFhjZCoRkhp\nhIQ1QqIaIaUREtYIiWqElEZIWCMkqhFSGiFhjZCoRkhphIQ1QqIaIaUREtYIiWqElEZIWCMk\nqhFSGiFhjZCoRkhphIQ1QqIaIaUREtYIiWqElEZIWCMkqhFSGiFhjZCoRkhphIQ1QqIaIaUR\nEtYIiWqElEZIWCMkqhFSGiFhjZCoRkhphIQ1QqIaIaUREtYIiWqElEZIWCMkqhFSGiFhjZCo\nRkhphIQ1QqIaIaUREtYIiWqElEZIWCMkqhFSGiFhjZCoRkhphIQ1QqIaIaUREtYIiWqElEZI\nWCMkqhFSGiFhjZCoRkhphIQ1QqIaIaUREtYIiWqElEZIWCMkqhFSGiFhjZCoRkhphIQ1QqIa\nIaUREtYIiWqElEZIWCMkqhFSGiFhjZCoRkhphIQ1QqIaIaUREtYIiWqElEZIWCMkqhFSGiFh\njZCoRkhphIQ1QqIaIaUREtYIiWqElEZIWCMkqhFSGiFhjZCoRkhphIQ1QqIaIaUREtYIiWqE\nlEZIWCMkqhFSGiFhjZCoRkhphIQ1QqIaIaUREtYIiWqElEZIWCMkqhFSGiFhjZCoRkhphIQ1\nQqIaIaUREtYIiWqElEZIWCMkqhFSGiFhjZCoRkhphIQ1QqIaIaUREtYIiWqElEZIWCMkqhFS\nGiFhjZCoRkhphIQ1QqIaIaUREtYIiWqElEZIWCMkqhFSGiFhjZCoRkhphIQ1QqIaIaUREtYI\niWqElEZIWCMkqhFSGiFhjZCoRkhphIQ1QqIaIaUREtYIiWqElEZIWCMkqhFSGiFhjZCoRkhp\nhIQ1QqIaIaUREtYIiWqElEZIWCMkqhFSGiFhjZCoZvRB6rn8Y8ed93SeL7pyyomXzEuv/RFS\nmRohUc3og/T358566YqTluWXnjv7xcvPWJVc+yOkMjVCoppRB6lvelPIyxN/05g0q/m70BGP\nrX0deJ2QytQIiWpGHaR2nprc+9DRq5sPzrx17evAS4RUpkZIVDMqIfX97Vfyu05pPbrgmrWv\nzQ8zJzVzwhO9lPk9+FSB9DSqaOntqWiYampG3zC9FQ0zv3MdYUj908zHOecdXgDSC6dfvTq/\na2o/oLWuzQ8/PqiZ4x+fT2ngM4VSTU1Vw1TS000t3XaDO5cRhrTO/01zC0B67MTvNj8+3Hkr\nd9va14FX+dauTI1v7ahm9L21+9UJP2tdeiY9k+cLJz+59nXgZUIqUyMkqhl1kH7/iVsazSzL\nL/v07DkXn706ufZHSGVqhEQ1ow7SYxPbuSNfMuPkk6b35sm1P0IqUyMkqhl1kNY3QipTIySq\nEVIaIWGNkKhGSGmEhDVCohohpRES1giJaoSURkhYIySqEVIaIWGNkKhGSGmEhDVCohohpRES\n1giJaoSURkhYIySqEVIaIWGNkKhGSGmEhDVCohohpRES1giJaoSURkhYIySqEVIaIWGNkKhG\nSGmEhDVCohohpRES1giJaoSURkhYIySqEVIaIWGNkKhGSGmEhDVCohohpRES1giJaoSURkhY\nIySqEVIaIWGNkKhGSGmEhDVCohohpRES1giJaoSURkhYIySqEVIaIWGNkKhGSGmEhDVCohoh\npRES1giJaoSURkhYIySqEVIaIWGNkKhGSGmEhDVCohohpRES1giJaoSURkhYIySqEVIaIWGN\nkKhGSGmEhDVCohohpRES1giJaoSURkhYIySqEVIaIWGNkKhGSGmEhDVCohohpRES1giJaoSU\nRkhYIySqEVIaIWGNkKhGSGmEhDVCohohpRES1giJaoSURkhYIySqEVIaIWGNkKhGSGmEhDVC\nohohpRES1giJaoSURkhYIySqEVIaIWGNkKhGSGmEhDVCohohpRES1giJaoSURkhYIySqEVIa\nIWGNkKhGSGmEhDVCohohpRES1giJaoSURkhYIySqEVIaIWGNkKhGSGmEhDVCohohpRES1giJ\naoSURkhYIySqEVIaIWGNkKhGSGmEhDVCohohpRES1giJaoSURkhYIySqEVIaIWGNkKhGSGmE\nhDVCohohpRES1giJaoSURkhYIySqEVIaIWGNkKhGSGmEhDVCohohpRES1giJaoSURkhYIySq\nEVIaIWGNkKhGSGmEhDVCohohpRES1giJaoSURkhYIySqEVIaIWGNkKhGSGmEhDVCohohpRES\n1nQjpK7YXSEFERLWCAl2V0hBhIQ1QoLdFVIQIWGNkGB3hRRESFgjJNhdIQUREtYICXZXSEGE\nhDVCgt0VUhAhYY2QYHeFFERIWCMk2F0hBRES1ggJdldIQYSENUKC3RVSECFhjZBgd4UUREhY\nIyTYXSEFERLWCAl2V0hBhIQ1QoLdFVIQIWGNkGB3hRRESFgjJNhdIQUREtYICXZXSEGEhDVC\ngt0VUhAhYY2QYHeFFERIWCMk2F0hBRES1ggJdldIQYSENUKC3a07pMVfn7bXrtu8ba9pXy/6\nXycTUpkaIcHu1hvSq1fsmI0df/BRB48fm+14RbFVEVKZGiHB7tYa0nMTNj/uziXth0vuPG7z\nCc8VOQYhlakREuxurSG9+aBfD3nJrw/6wyLHIKQyNUKC3a01pAtXvuY1Ky8ocgxCKlMjJNjd\nWkNqZclLzeP9yhWzCh+DkMrUCAl2t+6QntrpsnzFPlm23c+LHoOQytQICXa37pCOev+z+U3Z\n1c/uf0zRYxBSmRohwe7WHdJON+f5kXvm+c1vL3oMQipTIyTY3bpDGvujfOWb/2ee3z226DEI\nqUyNkGB36w7p7dfld2c/yvPr31r0GIRUpkZIsLt1h3TqW87b7Z0r83nj/RrpdSOkjby7dYf0\n0geyHWbm+fHb/bLoMQipTI2QYHfrDinPFy5vfnj0d4WPQUhlaoQEu1trSFNfex5LpxU5BiGV\nqRES7G6tIe02/v4hL7l//G5FjkFIZWqEBLtba0jzD8s+dMOc9sM5N3woO2x+kWMQUpkaIcHu\n1hpSvuqmd2XZznvsv8fOWfbum1YVOgYhlakREuxuvSHl+cr7L/zIvu/d9yMX3r8y+WdeP6c9\ns4zyyhJ8qkAWNKqpWVRFS1+jmpq+KloWNaqpWdC5jvDudoZY0ttFwyztwZvWNzGGVD6n/WYp\n5ZXF+FSBLGhUU9NXRcvCRjU1C6to6WtUU7Ogcx3h3e0Msbi3i4ZZ0oM3bSFCWvbItxp5iTdR\nvrUrU+NbuySdIer+1i6/Ytssm5l/9pTCSyukMjVCgt2tO6RrsklfbkK6ccvPFz0GIZWpERLs\nbt0hjf9kvqwJKT//PUWPQUhlaoQEu1t3SG+4pwPpB2OKHoOQytQICXa37pB2+m4H0jfeVPQY\nhFSmRkiwu3WHdOhfLm1B6tnzsKLHIKQyNUKC3a07pPu2eNdZ2bQpbxrzk6LHIKQyNUKC3a07\npPzevbNm9r1/7X9gnRFSmRohwe7WHlKez/vFL3pLHIOQytQICXZ3FEDqe6WdoscgpDI1QoLd\nrTukWR/ZOuuk6DEIqUyNkGB36w7pr7Y76Zxz2yl6DEIqUyMk2N26Q9r6/5Y9BiGVqRES7G7d\nIe30YtljEFKZGiHB7tYd0mcuLXsMQipTIyTY3bpD+v2hB5xzWTtFj0FIZWqEBLtbd0iXZZnf\ntVuPCGkj727dIb316J88+1w7RY9BSGVqhAS7W3dI4/xmw3pFSBt5d+sOae/Hyh6DkMrUCAl2\nt+6QHji48H89vz9CKlMjJNjdukM6YNdsm93aKXoMQipTIyTY3bpDOvCQgRQ9BiGVqRES7G7d\nIZWPkMrUCAl2V0hBhIQ1QoLdrTWk3afnuw+m6DEIqUyNkGB3aw1pvxn5foMpegxCKlMjJNjd\nWkPaoAipTI2QYHfrDmnCrzvX299X9BiEVKZGSLC7dYeUPdr5n3HJ2KLHIKQyNUKC3a03pGxN\n/qzoMQipTI2QYHfrDemxL2aTT23ltP/1QtFjEFKZGiHB7tYbUp7/9W/KHoOQytQICXa37pDK\nR0hlaoQEu1t3SPOm7LK5f0J23RHSRt7dukM6dstDprS/Sjq16DEIqUyNkGB36w5p+/8sewxC\nKlMjJNjdukPa6uWyxyCkMjVCgt2tO6QD7yt7DEIqUyMk2N26Q/rZvg+VPAYhlakREuxu3SEd\n8PZsK/+o+bojpI28u3WH5B81X78IaSPvbt0hlY+QytQICXZXSEGEhDVCgt2tO6TtB7Jt0WMQ\nUpkaIcHu1h3S5Hb2feOeZxQ9BiGVqRES7G7dIfVn7ofuKHoMQipTIyTY3VECKX90QtFjEFKZ\nGiHB7o4WSHPfWPQYhFSmRkiwu6ME0up/2bXoMQipTI2QYHfrDulP29lzh+ycoscgpDI1QoLd\nHR2Q9j74i78vegxCKlMjJNjdukMqHyGVqRES7O6ogfRc0WMQUpkaIcHu1hvSA4e967Dvte/p\nP/tdu9eNkDby7tYa0swxm71jzGbfyPMfvDvzb6N43QhpI+9urSFN3u6xfN4+73vhmOwPZiwv\negxCKlMjJNjdWkP6o7OaH76fvWGLTzWKH4OQytQICXa31pC2vKr54fnsL58ocwxCKlMjJNjd\nWkPKrm1+mJt9v9QxCKlMjZBgd4UUREhYIyTYXSEFERLWCAl2t96Qzp85c+ad2YyZrRQ9BiGV\nqRES7G69IQ1N0WMQUpkaIcHu1hrSRUNT9BiEVKZGSLC7tYa0QRFSmRohwe4KKYiQsEZIsLtC\nCiIkrBES7K6QgggJa4QEuyukIELCGiHB7gopiJCwRkiwu0IKIiSsERLsrpCCCAlrhAS7K6Qg\nQsIaIcHuCimIkLBGSLC7QgoiJKwREuyukIIICWuEBLsrpCBCwhohwe4KKYiQsEZIsLtCCiIk\nrBES7K6QgggJa4QEuyukIELCGiHB7gopiJCwRkiwu0IKIiSsERLsrpCCCAlrhAS7K6QgQsIa\nIcHuCimIkLBGSLC7QgoiJKwREuyukIIICWuEBLsrpCBCwhohwe4KKYiQsEZIsLtCCiIkrBES\n7K6QgggJa4QEuyukIELCGiHB7gopiJCwRkiwu0IKIiSsERLsrpCCCAlrhAS7K6QgQsIaIcHu\nCimIkLBGSLC7QgoiJKwREuyukIIICWuEBLsrpCBCwhohwe4KKYiQsEZIsLtCCiIkrBES7K6Q\ngggJa4QEuyukIELCGiHB7gopiJCwRkiwu0IKIiSsERLsrpCCCAlrhAS7K6QgQsIaIcHuCimI\nkLBGSLC7QgoiJKwREuyukIIICWuEBLsrpCBCwhohwe4KKYiQsEZIsLtCCiIkrBES7K6QgggJ\na4QEuyukIELCGiHB7gopiJCwRkiwu6MR0pzPTG5dFl055cRL5qXX/gipTI2QYHdHIaQHT57R\nhnTpubNfvPyMVcm1P0IqUyMk2N1RCOmHL89sQWpMmtX8XeiIx9a+DrxMSGVqhAS7Owoh5Xkb\n0kNHr25+PPPWta8DLxJSmRohwe6OXkh3ndJ6eME1a19bz09q5oQneinze/CpAulpVNHS21PR\nMNXUdOMwI7y7/cPM76JheufjTZt3eGFIU/sBrXVtfvjxQc0c//h8SgOfKZRqaqoappKebmoZ\nvDUjvLtdPEyQuYUhPdx5K3fb2teBF/nWrkyNb+2SdIYYvW/teiY9k+cLJz+59nXgRUIqUyMk\n2N1RCKm3cffkRmNZftmnZ8+5+OzVybU/QipTIyTY3VEI6dSJrXwnXzLj5JOm9+bJtT9CKlMj\nJNjdUQhpPSOkMjVCgt0VUhAhYY2QYHeFFERIWCMk2F0hBRES1ggJdldIQYSENUKC3RVSECFh\njZBgd4UUREhYIyTYXSEFERLWCAl2V0hBhIQ1QoLdFVIQIWGNkGB3hRRESFgjJNhdIQUREtYI\nCXZXSEGEhDVCgt0VUhAhYY2QYHeFFERIWNMvoCvWRUg0jJCiGiHBugiJhhFSVCMkWBch0TBC\nimqEBOsiJBpGSFGNkGBdhETDCCmqERKsi5BoGCFFNUKCdRESDSOkqEZIsC5ComGEFNUICdZF\nSDSMkKIaIcG6CImGEVJUIyRYFyHRMEKKaoQE6yIkGkZIUY2QYF2ERMMIKaoREqyLkGgYIUU1\nQoJ1ERINI6SoRkiwLkKiYYQU1QgJ1kVINIyQohohwboIiYYRUlQjJFgXIdEwQopqhATrIiQa\nRkhRjZBgXYREwwgpqhESrIuQaBghRTVCgnUREg0jpKhGSLAuQqJhhBTVCAnWRUg0jJCiGiHB\nugiJhhFSVCMkWBch0TBCimqEBOsiJBpGSFGNkGBdhETDCCmqERKsi5BoGCFFNUKCdRESDSOk\nqEZIsC5ComGEFNUICdZFSDSMkKIaIcG6CImGEVJUIyRYFyHRMEKKaoQE6yIkGkZIUY2QYF2E\nRMMIKaoREqyLkGgYIUU1QoJ1ERINI6SoRkiwLkKiYYQU1QgJ1kVINIyQohohwboIiYYRUlQj\nJFgXIdEwQopqhATrIiQaRkhRjZBgXYREwwgpqhESrIuQaBghRTVCgnUREg0jpKhGSLAuQqJh\nhBTVCAnWRUg0jJCiGiHBugiJhhFSVCMkWBch0TBCimqEBOsiJBpGSFGNkGBdhETDCCmqERKs\ni5BoGCFFNUKCdRESDSOkqEZIsC5ComGEFNUICdZFSDSMkKIaIcG6CImGEVJUIyRYFyHRMEKK\naoQE6yIkGkZIUY2QYF2ERMMIKaoREqyLkGgYIUU1QoJ1ERINI6SoRkiwLkKiYYQU1QgJ1kVI\nNIyQohohwboIiYYRUlQjJFgXIdEwQopqhATrIiQaRkhRjZBgXYREwwgpqhESrIuQaBghRTVC\ngnUREg0jpKhGSLAuQqJhhBTVCAnWRUg0jJCiGiHBugiJhhFSVCMkWBch0TBCimqEBOsiJBpG\nSFGNkGBdhETDCCmqERKsi5BoGCFFNUKCdRESDSOkqEZIsC5ComGEFNUICdZFSDSMkKIaIcG6\nCImGEVJUIyRYFyHRMEKKaoQE6yIkGkZIUY2QYF2ERMMIKaoREqyLkGgYIUU1QoJ1ERINI6So\nRkiwLkKiYYQU1QgJ1kVINIyQohohwboIiYYRUlQjJFgXIdEwQopqhATrIiQaRkhRjZBgXYRE\nwwgpqhESrIuQaBghRTVCgnUREg0jpKhGSLAuQqJhhBTVCAnWRUg0jJCiGiHBugiJhhFSVCMk\nWBch0TBCimqEBOsiJBpGSFGNkGBdhETDCCmqERKsi5BoGCFFNUKCdRESDSOkqKZfQFeckJBo\nGCEFERKdkJBoGCEFERKdkJBomE0X0mm/WUp5ZTE+VSALGtXU9HWuI3xCnSEWLuyiYfoWdNEw\ni3u7aJglPbhOCycKqQtOSEg0zKYLybd2hdIZwrd2NMym+9ZOSCVOSEg0jJCCCIlOSEg0jJCC\nCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCC\nCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCC\nCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCC\nCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCC\nCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCC\nCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCC\nCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCC\nCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCC\nCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCCCIlOSEg0jJCCDEDqipsiJBpG\nSDSMkIKbIiQaRkg0jJCCmyIkGkZINIyQgpsiJBpGSDSMkIKbIiQaRkg0jJCCmyIkGkZINIyQ\ngpsiJBpGSDSMkIKbIiQaRkg0jJCCmyIkGkZINIyQgpsiJBpGSDSMkIKbIiQaRkg0jJCCmyIk\nGkZINIyQgpsiJBpGSDSMkIKbIiQaRkg0jJCCmyIkGkZINIyQgpsiJBpGSDSMkIKbIiQaRkg0\njJCCmyIkGkZINIyQgpsiJBpGSDSMkIKbIiQaRkg0jJCCmyIkGkZINIyQgpsiJBpGSDSMkIKb\nIiQaRkg0jJCCmyIkGkZINIyQgpsiJBpGSDSMkIKbIiQaRkg0jJCCmyIkGkZINIyQgpsiJBpG\nSDSMkIKbIiQaRkg0jJCCmyIkGkZINIyQgpsiJBpGSDSMkIKbIiQaRkg0jJCCmyIkGkZINIyQ\ngpsiJBpGSDSMkIKbIiQaRkg0jJCCmyIkGkZINIyQgpsiJBpGSDSMkIKbIiQaRkg0jJCCmyIk\nGkZINIyQgpsiJBpGSDSMkIKbIiQaRkg0jJCCmyIkGkZINIyQgpsiJBpGSDSMkIKbIiQaRkg0\njJCCmyIkGkZINIyQgpsiJBpGSDSMkIKbIiQaRkg0jJCCmyIkGkZINIyQgpsiJBpGSDSMkIKb\nIiQaRkg0jJCCmyIkGkZINIyQgpsiJBpGSDSMkIKbIiQaRkg0jJCCmyIkGkZINIyQgpsiJBpG\nSDSMkIKbIiQaRkg0jJCCmyIkGkZINIyQgpsiJBpGSDSMkIKbIiQaRkg0jJCCmyIkGkZINIyQ\ngrv9XRwAAAq/SURBVJsiJBpGSDSMkIKbIiQaRkg0jJCCmyIkGkZINIyQgpsiJBpGSDTMxoW0\n6MopJ14yb/CHQioxjJBomE0I0qXnzn7x8jNWDfxQSCWGERINs+lAakya1fxd6YjHBn4spBLD\nCImG2XQgPXT06ubHM28d+LGQSgwjJBpm04F01ymtjxdc0/wwc1IzJzzRS5nf07mO8E3pDNHj\nMLUYZn4XDdM7H3d73uEbDGlqYUgblp5GFS2D67KBLY1qakbfML0VDcO7WySNamo2JqSHO2/t\nbhv48Xq8tduwLG5UU/NqFS1LG9XULK2i5dVGNTWLq2hZ0aimZmEVLasa1dRszLd2PZOeyfOF\nk58c+LGQytQIiWo2GUj5ZZ+ePefis1cP/FBIZWqERDWbDqQlM04+aXrv4A+FVKZGSFSz6UBa\nK0IqUyMkqhFSGiFhjZCoRkhphIQ1QqIaIaUREtYIiWqElEZIWCMkqhFSGiFhjZCoRkhphIQ1\nQqIaIaUREtYIiWqElEZIWCMkqhFSGiFhjZCoRkhphIQ1QqIaIaUREtYIiWqElEZIWCMkqhFS\nGiFhjZCoRkhphIQ1QqIaIaUREtYIiWqElEZIWCMkqhFSGiFhjZCoRkhphIQ1QqIaIaUREtYI\niWqElEZIWCMkqhFSGiFhjZCoRkhphIQ1QqIaIaUREtYIiWqElEZIWCMkqhFSGiFhjZCoRkhp\nhIQ1QqIaIaUREtYIiWqElEZIWCMkqtl0IX3xq5R/vwGfKpBrrqqm5roqWq69qpqaa6toue6q\namquqaLlhquqqfn3Klq+clU1Nf+GT11fOaQHvon5xu383Prnn6ZdX0XNbbdV0XL5tC9VUVPN\nMF+adnkVNdUMc/20S6qouf0bVbTcPO38Kmpuv5Wf+0HVkDZ6rpzw+EiPsCY3TbhnpEdYk3sm\n3DTSI6zJExOuGOkR1qQx4Zzh+2RCKhEhUYTU7RESRUgUIQUREkVIFCEZU7cIyZgKIiRjKoiQ\njKkg3Q3pt5eeeMJnn8rzRVdOOfGSeWuuI5K/m9jMsV0yzOMT27mjO6aZO/1jx35uQTfcmjmf\nmTz0OnwDdTWkFVO+MOelGR9dml967uwXLz9j1eB1RDL1u41GoyfvjmGWN2dp/OrY33bFNMv/\n+6Vznr/w/C64NQ+ePGPy0OvwDdTVkBZ8a2nz15aJsxqTZjV/UTnisYHryExzzKPtS3cM086F\n/9Ed0zw9cX7zvkx8fuSH+eHLMycPuQ7jQF0NqZW+qz+1/KGjVzcfnXnrwHVEBlk+8X+fNW36\nnLwrhmnnwVNXdMc0T07sy/OVR9zbDcN0IPVfh3GgLoe06qiJ58/P7zql9fiCawauIzLKgo9/\n4emnL/744q4YppVVn7wn745bs/SkL69YcfMR3+6GYV4DaRgH6nJI+QuPX3b6orumth4270f/\ndeTGWXrs3V0zzIOnrGyuSldM88TpRxx/8+n/pxuGeS2k4Ruo2yE1f+E9/o6HO78z3zZwHcFp\n/vY/umaYS1p70S3TLF6x4siZ3TDMayAN40BdDennn3g1z1efdEfPpGfyfOHkJweuIzLM819a\nkefLjv1RVwzTzOL2185dMc3KB3vz/JEjFnbDMK+BNIwDdTWkRR//3G/nXnP03PyyT8+ec/HZ\nqwevI5G+E2fMnTN96qtdMUwzj01s/3uRrpjmrOmNJ6dc3QXD9DbuntxoLBu8Dt9AXQ0pf/6i\nY487p/kL75IZJ580vXfNdUQy68LjP3bp77pkmDy/b1L7v2LRFdO8+NljPnbtii4Y5tT2v6b+\nzuB1+AbqbkjG1CRCMqaCCMmYCiIkYyqIkIypIEIypoIIyZgKIiRjKoiQhjcXZTsu7zw6NTsg\nffr4rYf+6IDdBx41/uXPtt9yx7++q/lwv92Tf2pI5u82rfnxm8fm+ctvXecwr/1sA7ngD59b\n5z9p1o6QhjcXbb7Ft9sPlr5pzPpD6vmjrc782i3//Ceb35LnM6a/Tv2qw8a3/m6KC5qvuetv\n1jlMDGnlQRMq+cs2Nq0IaXhz0Zb7d/4Gg5vH7LP+kL6Qfb116X3bbuv409I3Zfe3Lh9u/tY1\n/cJ1DhNDyn+9eRf9Vx7rEiENby7Kpm/5u9aDww47oAXpewdu84Y9rlyd56sv2XXcnre1V/v+\nQ7d9497X50Mg/UP2TPv6wtL2W7tHs06eGPLadla+50Pt604v5/kx3+r/yQM/+PODt93xo/PW\n9dleOu0d43Y+6qnmo+N2quRvOdqkIqThzUXZM+1f7+dsfsMHmpC+vdmH//Pes7N/yPN/zU66\n59Y9d2+u9r1bfOi7d38yu2IIpFuyIwf/tqsmpL57mrljx10XDHltOw9kN+T55ePGZePGjdts\n3Lg57Z885O1/fs+827eYsq7P9oG3XPejm9+/05I8vzMbwT9AX9MIaXhzUbbs0D2a18+9sW+/\nJqT3vuP3zR8cMWb+6l32bD54aUxztfd+V3OX80nbLlsDadVx2bi/+deH2+/rBr7ZMHXcT4e+\ntp1/zNp2bj8qz3+3y8CnPCT7SevjLuv4bAuz85oPnp3+Yp4vGXvqRr4Noy9CGt40IX0teyTP\n33dC3oT0YvbJ1k9en93x/7L/0Xr0F1vn87KzljXz5ear1nzXLr/rxF2ybIfzlgxCujq7Nh/6\n2nY+snP78vdfyPNvHjPwjx6yVevjlM3X8dmWb7/bvQNfgY3fa2Peg1EZIQ1vmpCWbPup/JHs\n+y1Ij2SXtn7ye9k1P+08Onrr/Bf9XwBl3xoKqZlZ1x6Y/cWqfkgPjT29+XHIa9vZd4/25c9/\n2sHUySG7tT6emq3rs/3kj7Ptj765/YecDt51Y96DURkhDW+akPJpf7DsjLeubEF6NLuk9ZN3\nZtc93FntI1qrPW1mO421IOX56mnZAx1Ic3fZr/Uubchr23nv/s0Pb+t8iTR23NTOTw5CWsdn\ny1f+8Jz/ku3T+vb5Udts5Nsw+iKk4U0L0gPZd3b4TN6CNDdr/b6SX5PdNSs7o/Vor63znmzK\nwIsHIL36tc6/e8pvzL7WhrT8wJ3bXwwNeW07nd+RHvpgnq/YZvDfBQ1CWsdna+fq7KvNjwe/\nrbL/wZtKhDS8aUFa/Sf7ZL9sQ8r33KX1bYIPb7Vw1Q7vbH6B8vRmzS//992u9R26Gy9YMQhp\n9bt3nNW6rjw8e7wN6cwtH+g8s+a17XS+Rrr6zDz/5Z8OfspBSK//2X52fOsb5M9ml+d+jVQi\nQhretCDlF2etNW9BunPzw77z/U9ll7W+4XbUN/9ttwnN1b5/zPgbf3DhmFOGfPv7vm22/cQX\nr/un8dnftb/ZcGt2XOsb4PfMGvLadi5of9fu9Ovy/KtTBz/lGkiv+9nmbjv++nu+vv+bns3z\nJeOm5qZYhDS8aUOavdmVeQdSfvcHtx639w3NByvPe8vY93/7zLHNhz/+r9uOec/nVwz9/9r9\nato7x22583+7PW9DOqv/GwQXDXltO/dlX2m94md5ftaXBj/lGkiv/9l+eeROY3Y58ud569sR\ntwzHvRhVEdJoyop3/lUVNR/dYVEVNZtUhDSqcmP24IaXPLX55ze8ZFOLkEZVVh2617IN7jhk\n7w3u2PQipNGVRvvPI21Q/vHNs6uYZBOLkIypIEIypoIIyZgKIiRjKoiQjKkgQjKmggjJmAoi\nJGMqyP8HNNSkiq77EC0AAAAASUVORK5CYII=",
1157 "text/plain": [
1158 "plot without title"
1159 ]
1160 },
1161 "metadata": {
1162 "image/png": {
1163 "height": 420,
1164 "width": 420
1165 },
1166 "text/plain": {
1167 "height": 420,
1168 "width": 420
1169 }
1170 },
1171 "output_type": "display_data"
1172 }
1173 ],
1174 "source": [
1175 "TaxationRQ3Raw <- rbind(\n",
1176 " Load1Log(\"measurements/stats/Taxation//size300to-1r10n1rt3600hh15stats.csv\", 300),\n",
1177 " Load1Log(\"measurements/stats/Taxation//size500to-1r10n1rt3600hh25stats.csv\", 500),\n",
1178 " Load1Log(\"measurements/stats/Taxation//size700to-1r10n1rt3600hh35stats.csv\", 700),\n",
1179 " Load1Log(\"measurements/stats/Taxation//size900to-1r10n1rt3600hh45stats.csv\", 900),\n",
1180 " Load1Log(\"measurements/stats/Taxation//size1100to-1r10n1rt3600hh55stats.csv\", 1100)\n",
1181 ")\n",
1182 "TaxationRQ3 <- TaxationRQ3Raw %>% ProcessRQ3\n",
1183 "TaxationRQ3\n",
1184 "TaxationRQ3 %>% RQ3Plot('Taxation', c(300, 500, 700, 900, 1100))"
1185 ]
1186 },
1187 {
1188 "cell_type": "markdown",
1189 "metadata": {},
1190 "source": [
1191 "## RQ4\n",
1192 "\n",
1193 "The diversity results output by the `models20.diversity-calculator` tool are nearly ready for visualization, we only need to take care of assigning the appropriate labels for the domains (as they are used in the paper, opposed to how they are named in the filesystem) and ordering the in a logical way. Then we can generate a box plot."
1194 ]
1195 },
1196 {
1197 "cell_type": "code",
1198 "execution_count": 55,
1199 "metadata": {},
1200 "outputs": [
1201 {
1202 "data": {
1203 "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAC61BMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8RERESEhIUFBQVFRUWFhYXFxcY\nGBgZGRkaGhobGxscHBwdHR0eHh4fHx8hISEiIiIjIyMkJCQmJiYnJycoKCgpKSkrKyssLCwt\nLS0uLi4vLy8xMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6Ojo7Ozs8PDw9PT0+Pj4/Pz9A\nQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tMTExNTU1OTk5PT09QUFBRUVFS\nUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1eXl5fX19gYGBhYWFiYmJjY2Nk\nZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29wcHBxcXFycnJzc3N0dHR1dXV2\ndnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGCgoKDg4OFhYWGhoaHh4eIiIiJ\niYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OUlJSVlZWWlpaXl5eYmJiZmZmampqb\nm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWmpqanp6eoqKipqamqqqqrq6usrKyt\nra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4uLi5ubm6urq7u7u8vLy9vb2+vr6/\nv7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnKysrLy8vMzMzNzc3Ozs7Pz8/Q0NDR\n0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd3d3e3t7f39/g4ODh4eHi4uLj\n4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w8PDx8fHy8vLz8/P09PT1\n9fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7///92cknFAAAACXBIWXMAABJ0AAASdAHe\nZh94AAAgAElEQVR4nO3df4DVdZ3v8WP2w7Vyt273rrdu93Zv27bd3dHbT++6UWl3HdAAf+DP\nASVAycQUIgvUxU0lFNI1TNLaLBdp8WckhUYtZm6F5GYkCBE/wjM/GECGkWE+f97vYZjxgLxn\nPO/zfb++M/J8/HHOmXO+fN7nO3Oenu8ZZ86UEoC6lYq+A8CrASEBOSAkIAeEBOSAkIAcEBKQ\nA0ICckBIQA7yDGn68Hw0ntKY00q1Ty5o8PBTmKycnNcD7KKQkMZvyGedF8ov5rNQzbaXuwqa\nvK1c0ODU0lLU5PK2ggZ3lbfns9CLw/suElI1QlIiJAMh+RGSECFFIyQlQjIQkh8hCRFSNEJS\nIiQDIfkRkhAhRSMkJUIyEJIfIQkRUjRCUiIkAyH5EZIQIUUjJCVCMhCSHyEJEVI0QlIiJAMh\n+RGSECFFIyQlQjIQkh8hCRFSNEJSIiQDIfkRkhAhRSMkJUIyEJIfIQkRUjRCUiIkAyH5EZIQ\nIUUjJCVCMhCSHyEJEVI0QlIiJAMh+RGSECFFIyQlQjIQkh8hCRFSNEJSOrxC2nj5iMrZjtnn\nj7l660vnt02/YlV2dfmCqgcAIfkRklARIS0/b86+kK6d+tymGy7e23u+8vK0ZmJ29YwlVdsS\nkh8hCRUR0o+ef7wSUnn42uzZ6NSVveeL5qWuxs609KrqbQnJj5CEinmNtC+kFSO7s9NL7uk9\nf/Cm1Hlad3PTqhlT7qtstHVppmnN7lxsL7+Qz0I1ayvvKmhya7mgwbubm4uaXG4taPCucls+\nC+1orDWkJRdULn5hfu/56vGdK65M1zw0Y0nn+Geza5Y1ZE5/qgwcRjafUnNITftD2n+eFk6e\ntn7Z9O5RLenWxdk1v78zc97vduWivbwjn4Vq1lbeWdDk1nJBg3c1Nxc1udxa0OCd5bZ8Fmqv\n+RnpZz2HdAt7zys3tDVt6WrsSAvu7t2S10h+vEYSKvA1Usvw7ACufcTTveeVG2bdn9LItjRv\nce+WhORHSEJFhNRafmREudyRrvvscxtnTunuO09p+dTsdObyrgnrerclJD9CEioipHGNFfel\nF+acd/as1tR3ntrHbspON1w2qe/IjpDqQEhCh8uPCH37zJX5LFQzQlIiJENeId3c8G/5LFQz\nQlIiJAMh+RGS0BAO6bdP1GBaw4JaNt+U3x4QkhIhGeyQ1h3XEOcT+e0BISkRksEOaVXDuXOj\nfPyD+e0BISkRkqG/kGbnOOdAZxFSXQjJj5AMhKRESAZC8iMkIUI6FEKqDyH5EZKBkJQIyUBI\nfoQkREiHQkj1ISQ/QjIQkhIhGQjJj5CECOlQCKk+hORHSAZCUiIkAyH5EZIQIR0KIdWHkPwI\nyUBISoRkICQ/QhIayiFNXBTlk4RUF0LyKyCkQIRUF0LyIyQDISkRkoGQ/AhJaCiHdPXGKKMI\nqS6E5MebnxgISYmQDHZIz0W+HdfH89sDQlIiJEM/bxD5DG8Q2T9CEhrCIdWEtyxWIiQ/QjIQ\nkhIhGQjJj5CECCkaISkRkoGQ/AhJiJCiEZISIRnyCun3K9ryWahmhKRESAb+GLMfIQkRUjRC\nUiIkAyH5EZIQIUUjJCVCMhCSHyEJEVI0QlIiJAMh+RGSECFFIyQlQjIQkh8hCRFSNEJSIiQD\nIfkRkhAhRSMkJUIyEJIfIQkRUjRCUiIkAyH5EZIQIUUjJCVCMhCSHyEJEVI0QlIiJAMh+RGS\nECFFIyQlQjIQkh8hCRFSNEJSIiQDIfkRkhAhRSMkJUIyEJIfIQkRUjRCUiIkAyH5EZIQIUUj\nJCVCMhCSHyEJEVI0QlIiJAMh+RGSECFFIyQlQjIQkh8hCRFSNEJSIiQDIfkRkhAhRSMkJUIy\nEJIfIQkRUjRCUiIkAyH5EZIQIUUjJCVCMhCSHyEJEVI0QlIiJAMh+RGSECFFIyQlQjIQkh8h\nCRFSNEJSIiTDRWt252J7+YV8FqpZW3lXQZNbywUN3t3cXNTkcmtBg3eV2/JZaEdjSEgXrt6Z\ni23l7fksVLPW8o6CJreUCxq8s7m5qMnlloIG7yi35rNQW0xIHNr5cWgnNNgP7QjJj5CECCka\nISkRkoGQ/AhJiJCiEZISIRkIyY+QhAgpGiEpEZKBkPwISYiQohGSEiEZCMmPkIQIKRohKRGS\ngZD8CEmIkKIRkhIhGQjJj5CECCkaISkRkoGQ/AhJiJCiEZISIRkIyY+QhAgpGiEpEZKBkPwI\nSYiQohGSEiEZCMmPkIQIKRohKRGSgZD8CEmIkKIRkhIhGQjJr7iQLv9cUZMJyUBIfsWFdNLJ\nRU0mJAMh+S28pbugyYTkR0iG4kI6v2FvQZMJyY+QDISkREgGQvIjJCFCikZISoRkICQ/QhIi\npGiEpERIBkLyIyQhQopGSEqEZCAkP0ISIqRohKRESAZC8iMkIUKKRkhKhGQYlCGt/U0NJjX8\nsJbN2/O7m4QkREi1e6Ih0Ljc7iYhKRFS7X7Q0PQPUT4wMre7SUhKhFS7HzR8O7e1DnZi/yFt\n2ViDsxo21LL5nvz2gpD8CCkX/Yf0UORB5TX57QUh+RFSLvoP6RsNTVODTGmYnN9eEJIfIeVi\noJAejRrcTkh1IaTaEdJACMnvsAqpqO/aEdJACMkwOEOKcxwh1YWQDIRUrbiQXli2tAYn/l0t\nWz/2Qn67QUgGQqpWXEg3Be5zw8357QYhGQZnSIffNxv+oeHGO4Pc0HBdfrtBSAZCqlZkSKuj\nJv+WkKoRUi4IqT6EZCCkaoQ0EEIyEFI1QhoIIRkGZ0hzavlVvZqcQEh1ISTDYAxpaeS3gkf3\nN5mQBkJIhsEYUvuNtfzQz4iGabVsvrS/yYQ0EEIyDMaQajOtYV1uaxHSQAjJQEjVCGkghGQg\npGqENBBCMhBSNUIaCCEZCKlakSEtifqO//cJqRohGV4tIQUipCqEZMg3pC9F/Qz21wipLoQU\n7XcrduW21jciH86EVA9Cipbnm+gXGdI3a/ml11rcRUjVCMnwagmJ79r1i5Ci5RvSolrehLgW\nvyWkuhBStHxDejS3tQ7C/0eqDyFFI6QBENIBCMlASAMgpAMQkoGQBkBIByAkAyENgJAOQEgG\nQhoAIR2AkAyENABCOgAhGQhpAIR0AEIyENIACOkAhGQgpAEQ0gEIyUBIAyCkAxCSgZAGQEgH\nqD2kVY37PJgmV85Gp3Tb9CtWZdeXLyi/tBEhVSsypKvnBplJSNVqD+nFcuY/Rm9ITQ9kF1rS\nysvTmonZ9TOWVG1ESNWKC2lu5C9wfDW/3TgcQ9rnqrtTGvXkvouL5qWuxs609Krq2wmpWnEh\n7f75EzX46LBatv55Z367cbiGtHzcnvRi49xLx87amB68KXWe1t3ctGrGlPsqt22vvMXMuHV7\ncrGj3JHPQjVrL3fmttYdkSFdktvd3HPSyfmtVZtyW0GDO8vt+Sy0yxPS3glLU9p27ldWr555\n7s7V4ztXXJmueWjGks7xz2Y3Lqs865/+VBl9vhoZ0qfzu58nnZzfWoebzaf0fU1eeUjLL+g9\n7Nk1+pG0cPK09cumd49qSbcuzq5aW3klet7qnbnYVt6ez0I1ay3vyG2tr0WGNCm3u7nzpJPz\nW6smG5Y8Vi5m8o5yaz4LtTX2fU1eeUhXz++7OOnuymlb05auxo604O7eq3mNVK2410i1Oenk\n/NaqxS0faGj4+KOFjC70NdLOU1dmp+vn7UmpY/SyyjWz7k9pZFuat7h3E0KqRkj9WrTve4Af\nXlvE7EJDWtm4NTvdPmbOlo2zmnZnF5dP7U5p5vKuCet6NyGkaoTUr1E9303/chGzCw3p0eF7\nKmdrrzrjnGv/mF1oH7spO91w2aS+IztCOgAh9euEnpAuK2J20f8faSCEVI2Q+nXYPiO9AoRU\njZD6ddi+RnoFCKkaIfVv33ftlhUympCiEZJQ8/eX5/cnC2pCSNHyDWl+LT/EVotHXxUhHbY/\nazcgQqr2zcifwf5sbneTkOpASIY8QyrfUssv+pzUcHMtm/86t7tJSHUgJEOeIdXm/Ia9BU0m\nJD9CMhCSEiEZCMmPkIQIKRohKRGSgZD8CEmIkKIRkhIhGQjJj5CECCkaISkRkoGQ/AhJiJCi\nEZISIRkIyY+QhAgpGiEpEZKBkPwISYiQohGSEiEZCMmPkIQIKRohKRGSgZD8CEmIkKIRkhIh\nGQjJ75tfJiQZQopWXEjbygNvE+MwDGnDA4/n84cHCclASEoFhfTi1Q0NDcN/mctShHRohKRU\nUEg9f6v6Y805LEVIBkJSKiakrv1/B+NbOaxFSAZCUiompNb977F5Yw5rEZKBkIT2fu+xIsZ2\nvb8npK/msBYhGQipPrceH/cuzR/+t3zuY+fxhBSOkOpzScNZ5wQZ0XBnPvexbX+Ys3NYi5AM\nhFSfSxp25LfYgZblFdLeYT0h3ZvDWoRkOBxD2pDTV61iKISU7tnX0adeyGEpQjIcjiG1tOS3\n1pAIqfubf9vQMCmXxyohGQipPkMipOzxv2pzTgsR0qERUn2GSEj80Go0QqoPIeWCkPwIaQCE\nVDtCUiIkP0IyEFJ9Lmn4998E+SYh1YyQlPINKRAh1YqQlAjJj5AMhFQfQsoFIfm9WkJ6YGmQ\nmwipZoSkxHft/AjJQEj1IaRcEJIfIQ2AkGpHSEqE5EdIBkKqDyHlgpD8Xi0hzZ4b5HOEVDNC\nUsozpGmR/x9pUW53k5CiEVJ92p+owYqGUbVs/ov8vjSEFI2QhPY0XFDQZEKKRkhChGQhJD9C\nEiKkaIQkREgWQvIjJCFCikZIQt0rfl3QZEKKRkhK/A1ZAyH5EZIQIUUjJCVCMhCSHyEJEVI0\nQlIiJAMh+RGSECFFIyQlQjIQkh8hCRFSNEJSIiQDIfkRkhAhRSMkJUIyEJIfIQkRUjRCUiIk\nAyH5EZIQIUUjJCVCMhCSHyEJEVI0QlIiJAMh+RGSECFFIyQlQjIQkh8hCRFSNEJSIiTDRev2\n5GJHuSOfhWrWXu4saHJbuaDBe1paippcbitocGe5PZ+FdsWENO6Z7bloK2/LZ6GatZTbC5tc\n0ODtzc1FTS63FDS4Pa/JLaeEhMShnR+HdkKD/dCOkPwISYiQohGSEiEZCMmPkIQIKRohKRGS\ngZD8CEmIkKIRkhIhGQjJj5CECCkaISkRkoGQ/AhJiJCiEZISIRkIyY+QhAgpGiEpEZKBkPwI\nSYiQohGSEiEZCMmPkIQIKRohKRGSgZD8CEmIkKIRkhIhGQjJj5CECCkaISkRkoGQ/AhJiJCi\nEZISIRkIyY+QhAgpGiEpEZKBkPwISYiQohGSEiEZCMmPkIQIKRohKRGSgZD8CEmIkKIRkhIh\nGQjJj5CECCkaISkRkoGQ/AhJiJCiEZISIRkIyY+QhAgpGiEpEZKBkPwISYiQohGSEiEZCMmP\nkIQIKRohKRGSgZD8CEmIkKIRkhIhGQjJj5CECCkaISkRkoGQ/AhJiJCiEZISIRkIyY+QhAgp\nGiEpEZKBkPwISYiQohGSEiEZCMmPkITCQ6rz8UtIfoQkFB7SWz/zi3qWJSQ/QhIKD+nE15Te\ne/1m97KE5EdIQvGvkbbMO+GII0/+zi7fsoTkR0hCkm82bLrp+NIxFz7hWZaQ/AhJSPRdu6fH\nlEqlDz1Z+7KE5EdIQoqQ/jj7faUj/37R/ccduaTmZQnJj5CEwkPqvLfxtaV3X1f5dsOLJ7+r\n5mUJyY+QhMJDekvpTU0/2X958RE1L0tIfoQkFB7SR+7Y2Xd5wx01L0tIfoQkFB5Sw296zu99\nj2tZQvIjJKHwkEo936rbc/XrXcsSkh8hCQWHVHrJ37iWJSQ/QhIKDmnlzaUR4you/NIfXMsS\nkh8hCYUf2p30u7qWJSQ/QhLi95GiEZLSqzSkd89K7+7jWpaQ/AhJKDak989J7+/jWpaQ/AhJ\niEO7aISk9CoO6YXNKe36xo1rfcsSkh8hCYWH9Mzbrkt7jiuV/vSXrmUJyY+QhMJD+tRfrUnf\nKt265kOjXMsSkh8hCYWH9LZvp3Tae1P69jtcyxKSHyEJhYf0+mWp68+uTOkRftZOjZCEwkN6\nx9fTI6VlKd3x565lCcmPkITCQxr3X6a9811daev7eI2kRkhC4SFt/kDprY+ndMafPuValpD8\nCElI8D9k2ysP4Sf/6FuWkPwISSg8pA8+VNeyhORHSELhIb19dl3LEpIfIQmFh3Tfe/61nocw\nIfkRklB4SCf8Ven1x76z4mX/ZHJjZnRKO2afP+bqrSndNv2KVdnV5QuqHgCE5EdIQuEhffij\nw/Z72T9peqBcLmef8munPrfphov3rrw8rZmYXT2j+v1YCcmPkISK/DWKUT1vMFQevjZ7Vjp1\n5aJ5qauxMy29qnobQvIjJCFBSB0//1457TnEv2ice+nYWRvTipHd2UeX3PPgTanztO7mplUz\nptxXuX3Xxsy4dV252Fnenc9CNWsvdxY0ua1c0OCulpaiJpfbChrcWW7PZ6EOK6Qb31wqPZ6m\nX/CylLad+5XVq2eeu3PJBZWPvjB/9fjOFVemax6asaRz/LPZNcsaMqc/VQYOI5tPOXRI80vD\nb8tCuuu11x/yiWzX6EeWNPWElBZOnrZ+2fTuUS3p1sXZNU9PzZz9zPZctJW35bNQzVrK7YVN\nLmjw9ubmoiaXWwoa3J7X5BYjpPdNSB1ZSOnz/+uQIaVJd/+s59BuYeWjtqYtXY0dacHdvTfz\nGsmP10hC4a+RjlraE9IPXnfwv1g/Lzva6xi9rGV4diDXPuLpynWz7k9pZFuat7h3I0LyIySh\n+F/se6AnpH855uB/sX3MnC0bZzXtTtd99rmNM6dUnpaWT81OZy7vmrCudyNC8iMkofCQPva3\nuyohtbz3Ey/7J2uvOuOca/+YPcjnnHf2rNbsivaxm7LTDZdN6juyI6Q6EJJQeEiPHvk/Ly2N\nPf+Y1/3UtSwh+RGSUPz/R/rhX1f+FsX/ecy3LCH5EVKdLp34yk24cHwNW0/8kTnUCil7FG39\n1a9avftCSH6EVJ/ZxzWE+cTvralWSH8+5Vf17Awh+RFSfb4cGNJH11tTrZA+cETpL//RXwMh\n+RFSncae88qdfeZZNWx9zsPmUPM10u9vOL50xIl3tPv2hZD8CElI8tPf6758XOmo013LEpIf\nIQmpfo3ie//D9zcqCMmPkIQUIXU9evGxpbdc5FqWkPwISSg8pD2PjH9b6egz7nM+jgnJj5CE\nwkN6S+m1n/zWTveyhORHSELhIX3klrq+nITkR0hC/OnLaISk9CoNib9qTkhar9KQ+KvmhKT1\nKg2pfoTkR0hC8SGtefiepf6vKCH5EZJQdEjff1/lt5GOGPaEc1lC8iMkoeCQ5h/xxvPnLri+\n8cjXfce3LCH5EZJQbEhr3nDcln0XnvmLNzzrWpaQ/AhJKDakKX+ycf+ldUdNdC1LSH6EJBQb\n0v8+q+/iee9yLUtIfoQkFBvSm2/ou3jTG1zLEpIfIQnFhlSa33fxdn4fSY2QhIJDur3vIiHJ\nEZJQcEiff7zX5wlJjZCEgkOq5lqWkPwISSg2pBnVXMsSkh8hCfFDq9EISYmQDITkR0hChBSN\nkJQIyUBIfoQkREjRCEmJkAyE5EdIQoQUjZCUCMlASH6EJERI0QhJiZAMhORHSEKEFI2QlAjJ\nQEh+hCRESNEISYmQDITkR0hChBSNkJQIyUBIfoQkREjRCEmJkAyE5EdIQoQUjZCUCMlASH6E\nJERI0QhJiZAMhORHSEKEFI2QlAjJQEh+hCRESNEISYmQDITkR0hChBSNkJQIyUBIfoQkREjR\nCEmJkAyE5EdIQoQUjZCUCMlASH6EJERI0QhJiZAMhORHSEKEFI2QlAjJQEh+hCRESNEISYmQ\nDITkR0hChBSNkJQIyUBIfoQkREjRCEmJkAyE5EdIQoQUjZCUCMlASH6EJERI0QhJiZAMhORH\nSEKEFI2QlAjJQEh+hCRESNEISYmQDITkR0hChBSNkJQIyUBIfoQkREjRCEmJkAyE5EdIQoM9\npIvWdeViZ3l3PgvVrL3cWdDktnJBg7taWoqaXG4raHBnuT2fhTpiQhr3dFsuWsqt+SxUs+YC\nJxc0uK1c3OTmgga35jX5+VNCQuLQzo9DO6HBfmhHSH6EJERI0QhJiZAMhORHSEKEFI2QlAjJ\nQEh+hCRESNEISYmQDITkR0hChBSNkJQIyUBIfoQkREjRCEmJkAyE5EdIQoQUjZCUCMlASH6E\nJERI0QhJiZAMhORHSEKEFI2QlAjJQEh+hCRESNEISYmQDITkR0hChBSNkJQIyUBIfoQkREjR\nCEmJkAyE5EdIQoQUjZCUCMlASH6EJERI0QhJiZAMhORHSEKEFI2QlAjJQEh+hCRESNEISYmQ\nDITkR0hChBSNkJQIyUBIfoQkREjRCEmJkAyE5EdIQoQUjZCUCMlASH6EJERI0QhJiZAMhORH\nSEKEFI2QlAjJQEh+hCRESNEISYmQDITkR0hChBSNkJQIyUBIfoQkREjRCEmJkAyE5EdIQoQU\njZCUCMlASH6EJERI0QhJiZAMhORHSEKEFI2QlAjJQEh+hCRESNEISYmQDITkR0hChBSNkJQI\nyUBIfoQkREjRCEmJkAyE5EdIQoQUjZCUCMlASH6EJERI0QhJiZAMhORHSEKEFI2QlAjJQEh+\nhCRESNEISYmQDITkR0hChBSNkJQIyUBIfoQkREjRCEmJkAyE5EdIQoQUjZCUCMlASH6EJERI\n0QhJiZAMhORHSEKEFI2QlAjJQEh+hCRESNEISYmQDITkR0hChBSNkJQIyUBIfoQkREjRCEnp\nsAyp5YZzTp+2OqXJjZnRKd02/YpV2dXlC6oeAITkR0hCRYZ02dS1m288uyM1PVAul1vSysvT\nmonZ1TOWVG1DSH6EJFRgSNtnZZE83/i7NOrJfR8vmpe6GjvT0quqNyIkP0ISKvo10jMjWl9s\nnHvp2Fkb04M3pc7TupubVs2Ycl/f7YTkR0hCBYe0fdI30rZzv7J69cxzd64e37niynTNQzOW\ndI5/NrttWUPm9KfKwGFk8ymOkP4w/tbunku7Rj+SFk6etn7Z9O5RLenWxdlVT56TOevptly0\nlFvzWahmzQVOLmhwW7m4yc0FDW7Na/LzjpBWjnmg7/KkuyunbU1buho70oK7e6/m0M6PQzuh\nIg/t/uOsf6+crZ+3J6WO0csql2fdn9LItjRvce82hORHSEIFhtR50Xcqx4Qd28fM2bJxVtPu\n7KrlU7MjvZnLuyas692IkPwISajAkFY27vNgWnvVGedc+8fsmvaxm7LTDZdN6juyI6Q6EJJQ\n0d/+Hggh+RGSECFFIyQlQjIQkh8hCRFSNEJSIiQDIfkRkhAhRSMkJUIyEJIfIQkRUjRCUiIk\nAyH5EZIQIUUjJCVCMhCSHyEJEVI0QlIiJAMh+RGSECFFIyQlQjIQkh8hCRFSNEJSIiQDIfkR\nkhAhRSMkJUIyEJIfIQkRUjRCUiIkAyH5EZIQIUUjJCVCMhCSHyEJEVI0QlIiJAMh+RGSECFF\nIyQlQjIQkh8hCRFSNEJSIiQDIfkRkhAhRSMkJUIyEJIfIQkRUjRCUiIkAyH5EZIQIUUjJCVC\nMhCSHyEJEVI0QlIiJAMh+RGSECFFIyQlQjIQkh8hCRFSNEJSIiQDIfkRkhAhRSMkJUIyEJIf\nIQkRUjRCUiIkAyH5EZIQIUUjJCVCMhCSHyEJEVI0QlIiJAMh+RGSECFFIyQlQjIQkh8hCRFS\nNEJSIiQDIfkRkhAhRSMkJUIyEJIfIQkRUjRCUiIkAyH5EZIQIUUjJCVCMhCSHyEJEVI0QlIi\nJAMh+RGSECFFIyQlQjIQkh8hCRFSNEJSIiQDIfkRkhAhRSMkJUIyEJIfIQkRUjRCUiIkAyH5\nEZIQIUUjJCVCMhCSHyEJEVI0QlIiJAMh+RGSECFFIyQlQjIQkh8hCRFSNEJSIiQDIfkRkhAh\nRSMkJUIyEJIfIQkRUjRCUiIkAyH5EZIQIUUjJCVCMhCSHyEJDfaQxv26NRct5XzWqV1zuaWw\nyQUNbi0XN7l5qE/eekpISDwj+fGMJDTYn5EIyY+QhAgpGiEpEZKBkPwISYiQohGSEiEZCMmP\nkIQIKRohKRGSgZD8CEmIkKIRkhIhGQjJj5CECCkaISkRkoGQ/AhJiJCiEZISIRkIyY+QhAgp\nGiEpEZKBkPwISYiQohGSEiEZCMmPkIQIKRohKRGSgZD8CEmIkKIRkhIhGQjJj5CECCkaISkR\nkoGQ/AhJiJCiEZISIRkIyY+QhAgpGiEpEZKBkPwISYiQohGSEiEZCMmPkIQIKRohKRGSgZD8\nCEmIkKIRkhIhGQjJj5CECCkaISkRkoGQ/AhJiJCiEZISIRkIyY+QhAgpGiEpEZKBkPwISYiQ\nohGSEiEZCMmPkIQIKRohKRGSgZD8CEmIkKIRkhIhGQjJj5CECCkaISkRkoGQ/AhJiJCiEZIS\nIRkIyY+QhAgpGiEpEZKBkPwISYiQohGSEiEZCMmPkIQIKRohKRGSgZD8CEmIkKIRkhIhGQjJ\nj5CECCkaISkRkoGQ/AhJiJCiEZISIRkIyY+QhAgpGiEpEZKBkPwISYiQohGSEiEZCMmPkIQI\nKRohKRGSgZD8CEmIkKIRkhIhGQjJj5CECCkaISkRkoGQ/AhJiJCiEZISIRkIyY+QhAgpGiEp\nEZKBkPwISYiQohGSEiEZCMmPkIQIKRohKRGSgZD8CEmIkKIRkhIhGQjJj5CECCkaISkd1iHt\nmH3+mKu3pnTb9CtWZR+WL6h6ABCSHyEJDYaQrp363KYbLt678vK0ZmL24YwlVbcRkh8hCQ2C\nkMrD12bPSqeuXDQvdTV2pqVXVd9ISH6EJDQIQloxsjs7veSeB29Knad1NzetmjHlvr4bCcmP\nkIQGQUhLLqicfmH+6vGdK65M1zw0Y0nn+Gezax4fnjnr1625aCnns07tmssthU0uaIEk0ZwA\nAAdZSURBVHBrubjJzUN98tZT3CE19YSUFk6etn7Z9O5RLenWxYSUx+SCBhNSHfwh/azn0G5h\n5XJb05auxo604O7eGzm08+PQTmgQHNq1DM8O5NpHPF25POv+lEa2pXmLe28kJD9CEhoEIaXr\nPvvcxplTKk9Ly6dmpzOXd01Y13sbIfkRktBgCOmFOeedPas1u9A+dlN2uuGySX1HdoRUB0IS\nGgwh9YeQ/AhJiJCiEZISIRkIyY+QhAgpGiEpEZKBkPwISYiQohGSEiEZCMmPkIQIKRohKRGS\ngZD8CEmIkKIRkhIhGQjJj5CECCkaISkRkoGQ/AhJiJCiEZISIRkIyY+QhAgpGiEpEZKBkPwI\nSYiQohGSEiEZCMmPkIQIKRohKRGSgZD8CEmIkKIRkhIhGQjJj5CECCkaISkRkoGQ/AhJiJCi\nEZISIRkIyY+QhAgpGiEpEZKBkPwISWjQh3Tznbm4/ZY78lmoZl+7ZUFBk2+7paDBd956a1GT\nb7mtoMELbvlaPgvdERPSjxflY9bY23JaqVZfHHtXQZMvH3tvQZMnTipo8L1jpxQ0+a6xV+W0\n0g9CQsrLrQ1PFDT5iw05HZ3WbGzD3oImf/L/FTR4T8OFBU3+fcOXcl+TkKoRkhAhRSMkJULK\nBSFVIyQhQgJwEEICckBIQA4ICchBsSFd1rjPDwfYauSmytnFD4tnx8zN7F04efRpExZ2v3TN\nU88q5g4wO3LudT2f7cY5xu1Fzc5tbsEhzd5cscu4ecfqnq3GTK+c5R1S/7PD5ma+fv6Tra2P\nnfHPL11z9b4Zofs7wOzgua2bNz/e+MvNm1/243WCfTZn5zm34JBu239h/RfPOuNLm1N344+m\nj5u09o7PnLeocu2qz/Rsdc+YpSn/kPqfHTY3c8ldldNf/qJv9vThn/psCt7fAWZHz03p2cY/\n9A390ZltKV11XdLsszU7z7mDJKQJczpeuO6KlEZM7dg77cwV6RcjKv/56P0kP7j0rG1xIR16\ndtjczOzxvUdTvbPH7ZsRur8DzI6eu//B3Dv02uvTY+eEf40HmJ3n3EES0o7dKa04tTuNyHbo\nzqaUOhp/m6o+yekL18eFdOjZYXMz268fceHsJduqZh8UUtDc/mZHz93/YO4d2jbmJ+etqFyr\n2Gdrdp5zCw5p+IiKZ9NT088998zGrjTiiZTuvjylrsZVK884Y/TwM86Ysm9nN498MveQ+pn9\nk+yG3wTN3Wf7igWTPrUs9c3OHszR+9vf7PD9rdj3YO4dmn48PHv8yvb5ELNz3ueCQ7phfUXn\n5k8t7Ew/qzyYf973YO7cunX5pK1bm/d9ktPCsR2X5BxSP7NfyG7YHTS3z+2ju/pmZw/m6P3t\nb7ZkfysP5r6h6bujL+vS7fMhZue8z4Pj0G75iGz37jrwwZyqn/ZT1yXzL405tDNmh81N6fl/\nfL5y9tPhHX2zDz60C5nb7+zguannwdw3dN3oNRd/t3KtYJ/N2XnOHRwh/bbx6Rd/PK3xeTuk\ntPrUc2JCMmaHzU1p7+TJT2x9/omLZrw0e9IdO1Pw/g4wO3hu6nkw9w7tuvSf0zMj1yXJPpuz\n85w7OEJK3zhrzNwdl5259WUP5n1bVXY2zW8M+maDOTtmbmb7HZ8eddqEO3e9NPv+kU1V9yxq\n7gCzQ+fuf52yf+jNE19M6Z8ufekdMoqandtcfkQIyAEhATkgJCAHhATkgJCAHBASkANCAnJA\nSEAOCGlomFHKHPM3Vz73Crd//7tD7w4ORkhDw4zS52+ff/3pRx214JVtP2dW7P3BQQhpaJhR\nerxy9ofjXrOk6LuCQyGkoWF/SGnz0e/LTh8+4U1H/eXs7pRO+Mjy44869voXpx77pmFrsxu+\nc/yfvLnhO6nn0O6Ej/zyo2/+T2duLfJ+HzYIaWjoDSmdV1qT/vWIkxf/cErpipSGvf3vfvGH\n00ofu3rjj4/5+5S+WzrtwQdPLj3YE9Kwdxy/dOu9R55f7D0/TBDS0NAX0tzSw+kv/ltndunU\n1zWnYaWVKf2k9KHsw7PfmNKsj2Y3tL/27P0hlX6aXT/s2OLu9WGEkIaGvpAWlO7ZVJpQuXRH\n9swzLKsnrSl9Ljv9XKn37zm+/YT9IR1d+ej81xRwdw8/hDQ09IV0fWnpz0vXVi49XJqfhr0z\nu7CuVHlvqamlttT+xfcec+SRpQ/vD6lyYxrHl1iBz/LQ0BfS8CPKT5aurlx6qPT1g0P6v0dO\nX77q18cSkh6f5aGhN6RnXjssbSmNr1ycX1pyUEjPli7KLuw5ipD0+CwPDftDWv+e1/0spfce\n25FdPvno9oNC+s2+p6q5pQ8Qkhyf5aGh8pMNt9/cdPQbKm/a/dBrPnHf9ydW8jkwpBff8V/v\n++nlJ5745mU7CUmMz/LQsO9n7V7/38f3vOX8Ix954xv+uvLDQge9Rnryg0f/50+3P/DWP1tN\nSGJ8loEcEBKQA0ICckBIQA4ICcgBIQE5ICQgB4QE5ICQgBwQEpADQgJyQEhADv4/lwjrcaPc\nu8QAAAAASUVORK5CYII=",
1204 "text/plain": [
1205 "plot without title"
1206 ]
1207 },
1208 "metadata": {
1209 "image/png": {
1210 "height": 420,
1211 "width": 420
1212 },
1213 "text/plain": {
1214 "height": 420,
1215 "width": 420
1216 }
1217 },
1218 "output_type": "display_data"
1219 }
1220 ],
1221 "source": [
1222 "diversity <- read_csv('measurements/diversity.csv',\n",
1223 " col_names = c('domain', 'file', 'diversity'),\n",
1224 " col_types = cols(domain = col_factor(),\n",
1225 " file = col_character(),\n",
1226 " diversity = col_double()))\n",
1227 "levels(diversity$domain) <- c(\"Fam+N\", \"Sat+N\", \"Tax+N\", \"Fam-N\", \"Sat-N\", \"Tax-N\")\n",
1228 "diversity$domain <- factor(diversity$domain, levels=c(\"Fam+N\", \"Fam-N\", \"Sat+N\", \"Sat-N\", \"Tax+N\", \"Tax-N\"))\n",
1229 "diversityPlot <- ggplot(diversity, aes(y = diversity, group=domain, x=domain)) +\n",
1230 " geom_boxplot() +\n",
1231 " scale_y_continuous(limits=c(0, 1), name=\"Diversity\", labels = scales::percent) +\n",
1232 " scale_x_discrete(name=\"Domain\") +\n",
1233 " theme_bw()\n",
1234 "ggsave(plot=diversityPlot, filename='plots/plot_diversity.pdf', width=5, height=1.5*5/4)\n",
1235 "diversityPlot"
1236 ]
1237 }
1238 ],
1239 "metadata": {
1240 "kernelspec": {
1241 "display_name": "R",
1242 "language": "R",
1243 "name": "ir"
1244 },
1245 "language_info": {
1246 "codemirror_mode": "r",
1247 "file_extension": ".r",
1248 "mimetype": "text/x-r-source",
1249 "name": "R",
1250 "pygments_lexer": "r",
1251 "version": "4.0.0"
1252 }
1253 },
1254 "nbformat": 4,
1255 "nbformat_minor": 2
1256}
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.run/SMTEndMeasurements.bat b/Tests/MODELS2020-CaseStudies/case.study.pledge.run/SMTEndMeasurements.bat
deleted file mode 100644
index 37adbbe1..00000000
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.run/SMTEndMeasurements.bat
+++ /dev/null
@@ -1,5 +0,0 @@
1java -Xms12G -jar gencache.jar -d FamilyTreeSMTEnd -lb 20 -rt 350
2java -Xms12G -jar gencache.jar -d FamilyTreeSMTEnd -lb 40 -rt 350
3java -Xms12G -jar gencache.jar -d FamilyTreeSMTEnd -lb 60 -rt 350
4java -Xms12G -jar gencache.jar -d FamilyTreeSMTEnd -lb 80 -rt 350
5java -Xms12G -jar gencache.jar -d FamilyTreeSMTEnd -lb 100 -rt 350
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.run/SMTQualMeasurements.bat b/Tests/MODELS2020-CaseStudies/case.study.pledge.run/SMTQualMeasurements.bat
deleted file mode 100644
index c76fc2d8..00000000
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.run/SMTQualMeasurements.bat
+++ /dev/null
@@ -1,5 +0,0 @@
1java -Xms12G -jar gencache.jar -d FamilyTreeSMTQual -lb 20 -rt 350
2java -Xms12G -jar gencache.jar -d FamilyTreeSMTQual -lb 40 -rt 350
3java -Xms12G -jar gencache.jar -d FamilyTreeSMTQual -lb 60 -rt 350
4java -Xms12G -jar gencache.jar -d FamilyTreeSMTQual -lb 80 -rt 350
5java -Xms12G -jar gencache.jar -d FamilyTreeSMTQual -lb 100 -rt 350
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.run/officialMeasurementsSetup.bat b/Tests/MODELS2020-CaseStudies/case.study.pledge.run/officialMeasurementsSetup.bat
deleted file mode 100644
index e7817090..00000000
--- a/Tests/MODELS2020-CaseStudies/case.study.pledge.run/officialMeasurementsSetup.bat
+++ /dev/null
@@ -1,18 +0,0 @@
1java -Xms12G -jar gencache.jar -d Taxation -lb 20 -hh 1
2java -Xms12G -jar gencache.jar -d Satellite -lb 20
3REM java -Xms12G -jar gencache.jar -d FamilyTree -lb 20
4
5java -Xms12G -jar gencache.jar -d Taxation -lb 40 -hh 2
6java -Xms12G -jar gencache.jar -d Satellite -lb 40
7REM java -Xms12G -jar gencache.jar -d FamilyTree -lb 40
8
9java -Xms12G -jar gencache.jar -d Satellite -lb 60
10java -Xms12G -jar gencache.jar -d FamilyTree -lb 60
11java -Xms12G -jar gencache.jar -d Satellite -lb 80
12java -Xms12G -jar gencache.jar -d FamilyTree -lb 80
13java -Xms12G -jar gencache.jar -d Satellite -lb 100
14java -Xms12G -jar gencache.jar -d FamilyTree -lb 100
15
16java -Xms12G -jar gencache.jar -d Taxation -lb 60 -hh 3
17java -Xms12G -jar gencache.jar -d Taxation -lb 80 -hh 4
18java -Xms12G -jar gencache.jar -d Taxation -lb 100 -hh 5
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.run/readme-vm.md b/Tests/MODELS2020-CaseStudies/case.study.pledge.run/readme-vm.md
new file mode 100644
index 00000000..b8fc4958
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.run/readme-vm.md
@@ -0,0 +1,200 @@
1# Artifacts for the paper "Automated Generation of Consistent Models with Structural and Attribute Constraints"
2
3This virtual machine image contains the following measurement setup and results for our paper:
4
5 * `~/VIATRA-Generator` contains the source code our our graph generator.
6 * `~/VIATRA-Generator/Tests/MODELS2020/case.study.pledge.run` is the measurement setup used in the paper.
7 * `~/VIATRA-Generator/Tests/MODELS2020/case.study.pledge.run/config` contains the configuration files for the various model generation tasks.
8 * `~/VIATRA-Generator/Tests/MODELS2020/case.study.pledge.run/inputs` contains the initial partial snapshots in single selected root objects.
9 * `~/VIATRA-Generator/Tests/MODELS2020/case.study.pledge.run/queries` contains the well-formedness constraints for the domains.
10 * `~/VIATRA-Generator.wiki` is the documentation for our graph generator.
11 * `~/eclipse` is a preconfigured Eclipse 2020-06 instance for inspecting and compiling the source code of the graph generator.
12 * `~/eclipse-workspace/models20.diversity-calculator` contains an additional utility used for measuring the diversity of models.
13 * `~/MODELS20-Attributes.pdf` is a copy of our paper containing updated plots for the measurements.
14 * `~/data-analysis` contains the raw data and the data analysis scripts.
15 * `~/data-analysis/measurements` contains the raw data.
16 * `~/data-analysis/measurements/stats` contains statistical logs of execution times.
17 * `~/data-analysis/measurements/models` contain all the output models in `.xmi` and `.gml` formats. The standard `.gml` format can be opened with visualization tools such as [yEd](https://www.yworks.com/products/yed). Where the size of the model permitted it, `.png` visualizations are also available.
18 * `~/data-analysis/measurements/debug` contains miscellaneous debug output.
19 * `~/data-analysis/measurements/diversity.csv` contains the results of internal diversity evaluations of the generated models.
20 * `~/data-analysis/MODELS2020Plots.ipynb` is the data analysis R script.
21
22Throughout this set of instructions, commands
23
24 set in code blocks
25
26like above should be executed in the _Terminal_ (available from the _Applications_ menu in the top bar).
27
28In file paths, the `~` symbol refers to the home directory `/home/models`.
29
30## Setting up the workspace
31
32This virtual machine image contains a fully set up workspace for inspecting, modifying and running VIATRA Generator extended with attribute constraint support. In particular, upon running
33
34 ~/eclipse/eclipse &
35
36a preconfigured Eclipse 2020-06 instance is started.
37
38The workspace is ready to use, and no further tasks are required before running the measurements.
39
40However, if you have made any changes to the generator, you should export the _RunGeneratorConfig_ launch configuration of the _case.study.pledge.run_ project to the path `~/VIATRA-Generator/Tests/MODELS2020/case.study.pledge.run/RunGeneratorConfig.jar`.
41
42### Setting up on another machine
43
44The version of VIATRA Generator used in the paper is available from https://github.com/viatra/VIATRA-Generator along with the installation instructions at https://github.com/viatra/VIATRA-Generator/wiki/Installation-Guide and the user guide at https://github.com/viatra/VIATRA-Generator/wiki/UserGuide. For completeness, we reproduce both the Installation guide and the User Guide in the folder `~/VIATRA-Generator.wiki`.
45
46Currently, we only support running the generator on Linux systems. Additional system requirements are
47
48 * [Coin-OR Cbc](https://github.com/coin-or/Cbc) version 2.9.8 or later with development headers;
49 * [cmake](https://cmake.org/download/) version 3.13.5 or later;
50 * Java JDK 11 with development header;
51 * g++ compiler version 9.2.8 or later.
52
53After installing these pieces of software (preferably from you distribution's package manager), the native libraries for the generator must be recompiled. You can do so by issuing the commands
54
55 mkdir -p ~/VIATRA-Generator/Solvers/ILP-Solver/hu.bme.mit.inf.dslreasoner.ilp.cbc/cpp/build
56 cd ~/VIATRA-Generator/Solvers/ILP-Solver/hu.bme.mit.inf.dslreasoner.ilp.cbc/cpp/build
57 cmake ..
58 make
59
60## Running the measurements
61
62### Adjusting memory limits
63
64In order to achieve optimum performance, the memory limits in `~/VIATRA-Generator/Tests/MODELS2020-CaseStudies/case.study.pledge.run/run.sh` should be set to as large values as feasible.
65
66To do so, replace the limits `-Xmx2g` and `-Xms2g` with the desired limits.
67
68In our measurements, we used `12gb` for both values.
69
70### Measurement runner script
71
72The script `~/VIATRA-Generator/Tests/MODELS2020-CaseStudies/case.study.pledge.run/run.sh` is used to issue benchmarking campaigns.
73
74Before running, you should switch to the containg directory:
75
76 cd ~/VIATRA-Generator/Tests/MODELS2020-CaseStudies/case.study.pledge.run
77
78The outputs of the measurements will be written to `~/VIATRA-Generator/Tests/MODELS2020-CaseStudies/case.study.pledge.run/measurements`. Each output file (statistics log, generated models, debug logs) is named after all the parameters passed to the script, as well as the current timestamp, so that various runs can be saved at the same place.
79
80The first argument of the script is the index of the CPU cores to use. If the value `0` is passed, the measurements will run on cores 0, 1, 2. If you have at least 6 cores, `1` may be passed to run on cores 3, 4, 5, `2` may be passed to run on 6, 7, 8, etc.
81
82The other arguments are the following:
83
84 * `-d` selects the domain to run. Configuration files for each domain are located in `~/VIATRA-Generator/Tests/MODELS2020-CaseStudies/case.study.pledge.run/config`.
85 * `-lb` is the lower bound of the number of objects in the model.
86 * `-ub` is the upper bound of the number of objects in the model
87 * `-nr` is the number of times to run the model generator. By default, the generator is run 10 times.
88 * `-nm` is the number of models to generate per run.
89 * `-rt` is the runtime limit in seconds.
90 * `-hh` sets the numer of _Household_ objects. For other domains, this option is ignored.
91
92For example, to generate models of sizes 20, 40 and 60 in the _Fam_, _Sat_ and _Tax_ domains, we may run
93
94 ./run.sh 0 -d FamilyTree -lb 20 -nr 10 -nm 1 -rt 3600
95 ./run.sh 0 -d FamilyTree -lb 40 -nr 10 -nm 1 -rt 3600
96 ./run.sh 0 -d FamilyTree -lb 60 -nr 10 -nm 1 -rt 3600
97
98 ./run.sh 0 -d Satellite -lb 20 -nr 10 -nm 1 -rt 3600
99 ./run.sh 0 -d Satellite -lb 40 -nr 10 -nm 1 -rt 3600
100 ./run.sh 0 -d Satellite -lb 60 -nr 10 -nm 1 -rt 3600
101
102 ./run.sh 0 -d Taxation -lb 20 -nr 10 -nm 1 -rt 3600 -hh 1
103 ./run.sh 0 -d Taxation -lb 40 -nr 10 -nm 1 -rt 3600 -hh 2
104 ./run.sh 0 -d Taxation -lb 60 -nr 10 -nm 1 -rt 3600 -hh 3
105
106### RQ1
107
108The script `runFamilyTree_exact.sh` runs the measurements for RQ1. The models for the _contSMT_ configuration are generated by running
109
110 ./runFamilyTree_exact.sh 0 ""
111
112for _qualSMT_ they are generated with
113
114 ./runFamilyTree_exact.sh 0 SMTQual
115
116and for _postSMT_ they are generated with
117
118 ./runFamilyTree_exact.sh 0 SMTEnd
119
120You can replace the `0` with the desired index of CPUs to use.
121
122### RQ2
123
124The scripts
125
126 ./runFamilyTree.sh 0
127 ./runSatellite.sh 0
128 ./runTaxation.sh 0
129
130are provided for measurements in the _Fam_, _Sat_ and _Tax_ domains.
131
132You can replace the `0` with the desired index of CPUs to use.
133
134### RQ3
135
136As the individual measurements for RQ3 may take a very long time, they were separately executed using the `./run.sh` script. For example,
137
138 ./run.sh 0 -d FamilyTree -lb 300 -nr 10 -nm 1 -rt 3600
139 ./run.sh 0 -d Satellite -lb 300 -nr 10 -nm 1 -rt 3600
140
141generate models with 300 objects from the _Fam_ and _Sat_ domains, respectively, while
142
143 ./run.sh 0 -d Taxation -lb 1000 -nr 10 -nm 1 -rt 3600 -hh 50
144
145generates a model with 1000 objects from the _Tax_ domain. In the _Tax_ domain, there should be 1 _Household_ object (`-hh`) for every 20 objects (`-lb`).
146
147You can replace the `0` with the desired index of CPUs to use.
148
149## Diversity measurements (RQ4)
150
151The Eclipse project at `~/eclipse-workspace/models20.diversity-calculator` contains an additional utility used for measuring the diversity of models.
152
153The `inputs` subfolder contains the models of which the internal diversity is measured. We already placed the models generated in our experiments there.
154
155To run the measurements on newly generated models (see _RQ2_ above), copy the contents of
156
157 * `~/VIATRA-Generator/Tests/MODELS2020/case.study.pledge.run/measurements/models/FamilyTree/size100to-1r10n10rt3600_*/run*/*_1.xmi` to `~/eclipse-workspace/models20.diversity-calculator/inputs/FamilyTree`;
158 * `~/VIATRA-Generator/Tests/MODELS2020/case.study.pledge.run/measurements/models/Satellite/size100to-1r10n10rt3600_*/run*/*_1.xmi` to `~/eclipse-workspace/models20.diversity-calculator/inputs/Satellite`;
159 * `~/VIATRA-Generator/Tests/MODELS2020/case.study.pledge.run/measurements/models/Taxation/size100to-1r10n10rt3600hh5_*/run*/*_1.xmi` to `~/eclipse-workspace/models20.diversity-calculator/inputs/Taxation`.
160
161That is, the first modes output by each of the generator runs (`run1`-`run10`) in _RQ2_ with models of size 100 should be copied over to `inputs`.
162
163The folders `inputs/FamilyTreeNoNum`, `inputs/SatelliteNoNum` and `inputs/TaxationNoNum` contains models generated with an earlier version of the generator (without numeric attribute support) for comparison.
164
165Upon executing the _MeasureDiversity_ launch configuration in Eclipse, the output file `~/eclipse-workspace/models20.diversity-calculator/inputs/diversity.csv` is produced.
166
167## Statistical analysis
168
169To recreate the diagrams presented in our paper with the newly created statistical data, follow the instructions below.
170
171The data analysis pipeline uses a [Jupyter](https://jupyter.org/) [R](https://www.r-project.org/) notebook run inside a [Docker](https://www.docker.com/) container to produce the plots.
172
173### Preparing the raw data
174
175The inputs for the analysis are stored in `~/data-analysis/measurements`. No further tasks are required if one wishes to run the analysis on them.
176
177Nevertheless, it is possible to run the analysis on other data. To do so, raw statistical logs from `~/VIATRA-Generator/Tests/MODELS2020/case.study.pledge.run/measurements/stats` must be copied to `~/data-analysis/measurements/stats`. The file names for the logs as produced by `run.sh` contain timestamps to unambiguously store the results of multiple measurement campaigns. The logs must be renamed to remove the timestamps so that the R notebook can find and load them. Alternately, the paths in the R notebook may be edited to refer to the logs by timestamp.
178
179Moreover, the diversity measurement results from `~/eclipse-workspace/models20.diversity-calculator/inputs/diversity.csv` must be copied to `~/data-analysis/measurements/diversity.csv`.
180
181Lastly, in Fedora 32, the SELinux security context of the newly copied files must be changed so that Docker is allowed to access them:
182
183 sudo chcon -Rt svirt_sandbox_file_t ~/data-analysis/
184
185If `sudo` prompts for a password, the password `models20` of the `models` user should be provided.
186
187### Running the Jupyter notebook
188
189The Jupyer Docker container may be started with
190
191 docker run --rm -p 8888:8888 -v /home/models/data-analysis:/home/jovyan/work jupyter/r-notebook
192
193Upon starting the container, it will display instructions to access it via a web browser by navigatin to the URL `http://127.0.0.1:8888/?token=<security-token>`, where `<security-token>` is replaced with a hexadecimal string. Copy the URL from the terminal and open it in Firefox (available from the _Applications_ menu in the top bar).
194
195If you ran your own measurements for RQ1-4, the paths for the statistical logs might need to be adjusted, e.g. if timestamps in log file names were preserved, or if different model sizes were used in RQ2.
196
197The data analysis notebook can be accessed by navigating to `/work/MODELS2020Plots.ipynb` in the Jupyer web interface. To re-run all the analyses, select _Kernel > Restart & Run All_ from the menu and confirm the re-run.
198
199The generated plots are displayed in the web interface. They are also saved as `.pdf` files in the `~/data-analysis` directory.
200
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.run/run.sh b/Tests/MODELS2020-CaseStudies/case.study.pledge.run/run.sh
new file mode 100755
index 00000000..0b0c560e
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.run/run.sh
@@ -0,0 +1,5 @@
1#!/usr/bin/env bash
2NODE="$1"
3shift
4CPUS="$((NODE*3))-$((NODE*3+2))"
5taskset -c "${CPUS}" env LD_LIBRARY_PATH=/home/models/VIATRA-Generator/Framework/hu.bme.mit.inf.dslreasoner.viatra2logic/lib:/home/models/VIATRA-Generator/Solvers/ILP-Solver/hu.bme.mit.inf.dslreasoner.ilp.cbc/lib java -Xmx2g -Xms2g -XX:+UseG1GC -XX:ParallelGCThreads=3 -XX:ConcGCThreads=1 -XX:G1ConcRefinementThreads=3 -jar RunGeneratorConfig.jar "$@"
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.run/runFamilyTree.sh b/Tests/MODELS2020-CaseStudies/case.study.pledge.run/runFamilyTree.sh
new file mode 100755
index 00000000..5895ff6a
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.run/runFamilyTree.sh
@@ -0,0 +1,7 @@
1#!/usr/bin/bash
2NODE="$1"
3./run.sh "${NODE}" -d FamilyTree -lb 20 -nm 10 -rt 3600
4./run.sh "${NODE}" -d FamilyTree -lb 40 -nm 10 -rt 3600
5./run.sh "${NODE}" -d FamilyTree -lb 60 -nm 10 -rt 3600
6./run.sh "${NODE}" -d FamilyTree -lb 80 -nm 10 -rt 3600
7./run.sh "${NODE}" -d FamilyTree -lb 100 -nm 10 -rt 3600
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.run/runFamilyTree_exact.sh b/Tests/MODELS2020-CaseStudies/case.study.pledge.run/runFamilyTree_exact.sh
new file mode 100755
index 00000000..3d4a4755
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.run/runFamilyTree_exact.sh
@@ -0,0 +1,14 @@
1#!/usr/bin/bash
2NODE="$1"
3VERSION="$2"
4./run.sh "${NODE}" -d "FamilyTree${VERSION}" -lb 5 -ub 5 -nm 1 -rt 300
5./run.sh "${NODE}" -d "FamilyTree${VERSION}" -lb 6 -ub 6 -nm 1 -rt 300
6./run.sh "${NODE}" -d "FamilyTree${VERSION}" -lb 7 -ub 7 -nm 1 -rt 300
7./run.sh "${NODE}" -d "FamilyTree${VERSION}" -lb 8 -ub 8 -nm 1 -rt 300
8./run.sh "${NODE}" -d "FamilyTree${VERSION}" -lb 9 -ub 9 -nm 1 -rt 300
9./run.sh "${NODE}" -d "FamilyTree${VERSION}" -lb 10 -ub 10 -nm 1 -rt 300
10./run.sh "${NODE}" -d "FamilyTree${VERSION}" -lb 20 -ub 20 -nm 1 -rt 300
11./run.sh "${NODE}" -d "FamilyTree${VERSION}" -lb 40 -ub 40 -nm 1 -rt 300
12./run.sh "${NODE}" -d "FamilyTree${VERSION}" -lb 60 -ub 60 -nm 1 -rt 300
13./run.sh "${NODE}" -d "FamilyTree${VERSION}" -lb 80 -ub 80 -nm 1 -rt 300
14./run.sh "${NODE}" -d "FamilyTree${VERSION}" -lb 100 -ub 100 -nm 1 -rt 300
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.run/runSatellite.sh b/Tests/MODELS2020-CaseStudies/case.study.pledge.run/runSatellite.sh
new file mode 100755
index 00000000..f5eee8a3
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.run/runSatellite.sh
@@ -0,0 +1,7 @@
1#!/usr/bin/bash
2NODE="$1"
3./run.sh "${NODE}" -d Satellite -lb 20 -nm 10 -rt 3600
4./run.sh "${NODE}" -d Satellite -lb 40 -nm 10 -rt 3600
5./run.sh "${NODE}" -d Satellite -lb 60 -nm 10 -rt 3600
6./run.sh "${NODE}" -d Satellite -lb 80 -nm 10 -rt 3600
7./run.sh "${NODE}" -d Satellite -lb 100 -nm 10 -rt 3600
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.run/runTaxation.sh b/Tests/MODELS2020-CaseStudies/case.study.pledge.run/runTaxation.sh
new file mode 100755
index 00000000..75080359
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.run/runTaxation.sh
@@ -0,0 +1,7 @@
1#!/usr/bin/bash
2NODE="$1"
3./run.sh "${NODE}" -d Taxation -lb 20 -nm 10 -rt 3600 -hh 1
4./run.sh "${NODE}" -d Taxation -lb 40 -nm 10 -rt 3600 -hh 2
5./run.sh "${NODE}" -d Taxation -lb 60 -nm 10 -rt 3600 -hh 3
6./run.sh "${NODE}" -d Taxation -lb 80 -nm 10 -rt 3600 -hh 4
7./run.sh "${NODE}" -d Taxation -lb 100 -nm 10 -rt 3600 -hh 5
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/.classpath b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/.classpath
new file mode 100644
index 00000000..1c96fe2f
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/.classpath
@@ -0,0 +1,8 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<classpath>
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.pde.core.requiredPlugins"/>
5 <classpathentry kind="src" path="src"/>
6 <classpathentry kind="src" path="xtend-gen"/>
7 <classpathentry kind="output" path="bin"/>
8</classpath>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/.project b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/.project
new file mode 100644
index 00000000..b2d56397
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/.project
@@ -0,0 +1,34 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<projectDescription>
3 <name>models20.diversity-calculator</name>
4 <comment></comment>
5 <projects>
6 </projects>
7 <buildSpec>
8 <buildCommand>
9 <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
10 <arguments>
11 </arguments>
12 </buildCommand>
13 <buildCommand>
14 <name>org.eclipse.jdt.core.javabuilder</name>
15 <arguments>
16 </arguments>
17 </buildCommand>
18 <buildCommand>
19 <name>org.eclipse.pde.ManifestBuilder</name>
20 <arguments>
21 </arguments>
22 </buildCommand>
23 <buildCommand>
24 <name>org.eclipse.pde.SchemaBuilder</name>
25 <arguments>
26 </arguments>
27 </buildCommand>
28 </buildSpec>
29 <natures>
30 <nature>org.eclipse.pde.PluginNature</nature>
31 <nature>org.eclipse.jdt.core.javanature</nature>
32 <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
33 </natures>
34</projectDescription>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/.settings/org.eclipse.jdt.core.prefs b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000..295926d9
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
1eclipse.preferences.version=1
2org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
3org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
4org.eclipse.jdt.core.compiler.compliance=1.8
5org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
6org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
7org.eclipse.jdt.core.compiler.source=1.8
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/META-INF/MANIFEST.MF b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..866763f6
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/META-INF/MANIFEST.MF
@@ -0,0 +1,34 @@
1Manifest-Version: 1.0
2Bundle-ManifestVersion: 2
3Bundle-Name: %pluginName
4Bundle-SymbolicName: models20.diversity-calculator;singleton:=true
5Bundle-Version: 1.0.0.qualifier
6Bundle-ClassPath: .
7Bundle-Vendor: %providerName
8Bundle-Localization: plugin
9Automatic-Module-Name: models20.diversity-calculator
10Bundle-RequiredExecutionEnvironment: JavaSE-1.8
11Export-Package: familytree,
12 familytree.impl,
13 familytree.util,
14 satellite,
15 satellite.impl,
16 satellite.util,
17 TaxationWithRoot,
18 TaxationWithRoot.impl,
19 TaxationWithRoot.util
20Require-Bundle: org.eclipse.core.runtime,
21 org.eclipse.emf.ecore;visibility:=reexport,
22 com.google.guava,
23 org.eclipse.xtext.xbase.lib,
24 org.eclipse.xtend.lib,
25 org.eclipse.xtend.lib.macro,
26 hu.bme.mit.inf.dslreasoner.ecore2logic;bundle-version="1.0.0",
27 hu.bme.mit.inf.dslreasoner.viatra2logic;bundle-version="1.0.0",
28 hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage;bundle-version="1.0.0",
29 org.eclipse.emf.ecore.xmi;bundle-version="2.16.0",
30 org.eclipse.viatra.query.runtime;bundle-version="2.2.0",
31 org.eclipse.viatra.query.runtime.rete;bundle-version="2.2.0",
32 org.eclipse.viatra.query.runtime.localsearch;bundle-version="2.2.0",
33 org.eclipse.collections;bundle-version="9.2.0"
34Bundle-ActivationPolicy: lazy
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/bin/hu/bme/mit/inf/dslreasoner/diversitycalculator/.FileComparator.java._trace b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/bin/hu/bme/mit/inf/dslreasoner/diversitycalculator/.FileComparator.java._trace
new file mode 100644
index 00000000..66809531
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/bin/hu/bme/mit/inf/dslreasoner/diversitycalculator/.FileComparator.java._trace
Binary files differ
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/bin/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureDiversity.java._trace b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/bin/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureDiversity.java._trace
new file mode 100644
index 00000000..87a0a021
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/bin/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureDiversity.java._trace
Binary files differ
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/bin/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureDiversity.xtendbin b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/bin/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureDiversity.xtendbin
new file mode 100644
index 00000000..b2685222
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/bin/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureDiversity.xtendbin
Binary files differ
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/bin/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureInternalDiversity.java._trace b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/bin/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureInternalDiversity.java._trace
new file mode 100644
index 00000000..f9773278
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/bin/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureInternalDiversity.java._trace
Binary files differ
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/bin/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureInternalDiversity.xtendbin b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/bin/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureInternalDiversity.xtendbin
new file mode 100644
index 00000000..1ffee322
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/bin/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureInternalDiversity.xtendbin
Binary files differ
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/bin/hu/bme/mit/inf/dslreasoner/diversitycalculator/.PatternWithMatches.java._trace b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/bin/hu/bme/mit/inf/dslreasoner/diversitycalculator/.PatternWithMatches.java._trace
new file mode 100644
index 00000000..f8d273ed
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/bin/hu/bme/mit/inf/dslreasoner/diversitycalculator/.PatternWithMatches.java._trace
Binary files differ
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/build.properties b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/build.properties
new file mode 100644
index 00000000..4d3b1827
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/build.properties
@@ -0,0 +1,10 @@
1#
2
3bin.includes = .,\
4 model/,\
5 META-INF/,\
6 plugin.xml,\
7 plugin.properties
8jars.compile.order = .
9source.. = src/
10output.. = bin/
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/10_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/10_1.xmi
new file mode 100644
index 00000000..cd445da5
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/10_1.xmi
@@ -0,0 +1,103 @@
1<?xml version="1.0" encoding="ASCII"?>
2<familytree:FamilyTree xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:familytree="http://www.example.org/familytree" xsi:schemaLocation="http://www.example.org/familytree ../case.study.familyTree.model/model/familytree.ecore">
3 <members parents="//@members.3 //@members.13"/>
4 <members parents="//@members.60 //@members.86"/>
5 <members age="39" children="//@members.73" parents="//@members.29 //@members.61"/>
6 <members age="39" children="//@members.0 //@members.17" parents="//@members.31 //@members.52"/>
7 <members parents="//@members.6 //@members.58"/>
8 <members parents="//@members.15 //@members.62"/>
9 <members age="39" children="//@members.4 //@members.64" parents="//@members.28 //@members.41"/>
10 <members age="169" children="//@members.11 //@members.27 //@members.50 //@members.55 //@members.97" parents="//@members.62 //@members.85"/>
11 <members age="104" children="//@members.42 //@members.63 //@members.86 //@members.87 //@members.88 //@members.99" parents="//@members.35 //@members.70"/>
12 <members age="156" children="//@members.10 //@members.24 //@members.60 //@members.63 //@members.69 //@members.91 //@members.98" parents="//@members.62 //@members.85"/>
13 <members age="78" children="//@members.17 //@members.29 //@members.32 //@members.36 //@members.61" parents="//@members.9 //@members.87"/>
14 <members parents="//@members.7 //@members.97"/>
15 <members age="78" children="//@members.20 //@members.26" parents="//@members.66 //@members.70"/>
16 <members age="13" children="//@members.0" parents="//@members.20 //@members.36"/>
17 <members age="13" children="//@members.56" parents="//@members.64 //@members.97"/>
18 <members age="208" children="//@members.5 //@members.16 //@members.20 //@members.62 //@members.85" parents="//@members.25 //@members.70"/>
19 <members parents="//@members.15 //@members.21"/>
20 <members age="26" children="//@members.75 //@members.96" parents="//@members.3 //@members.10"/>
21 <members age="13" children="//@members.90" parents="//@members.27 //@members.54"/>
22 <members parents="//@members.20 //@members.76"/>
23 <members age="65" children="//@members.13 //@members.19 //@members.41 //@members.82" parents="//@members.12 //@members.15"/>
24 <members age="39" children="//@members.16 //@members.73 //@members.86 //@members.89 //@members.90" parents="//@members.62 //@members.70"/>
25 <members parents="//@members.39 //@members.61"/>
26 <members age="143" children="//@members.31 //@members.35 //@members.40 //@members.53" parents="//@members.55 //@members.81"/>
27 <members age="117" children="//@members.26 //@members.34 //@members.51 //@members.59" parents="//@members.9 //@members.35"/>
28 <members age="221" children="//@members.15 //@members.33 //@members.43 //@members.49 //@members.57 //@members.83 //@members.85" parents="//@members.39 //@members.70"/>
29 <members age="13" children="//@members.40" parents="//@members.12 //@members.24"/>
30 <members age="117" children="//@members.18 //@members.60 //@members.66 //@members.80" parents="//@members.7 //@members.55"/>
31 <members age="52" children="//@members.6 //@members.47" parents="//@members.35 //@members.69"/>
32 <members age="65" children="//@members.2 //@members.41" parents="//@members.10 //@members.37"/>
33 <members parents="//@members.31 //@members.98"/>
34 <members age="52" children="//@members.3 //@members.30 //@members.46 //@members.65" parents="//@members.23 //@members.33"/>
35 <members parents="//@members.10 //@members.88"/>
36 <members age="65" children="//@members.31" parents="//@members.25 //@members.60"/>
37 <members parents="//@members.24 //@members.47"/>
38 <members age="130" children="//@members.8 //@members.24 //@members.28 //@members.54 //@members.67 //@members.88" parents="//@members.23 //@members.49"/>
39 <members age="39" children="//@members.13 //@members.45 //@members.79 //@members.98" parents="//@members.10 //@members.67"/>
40 <members age="78" children="//@members.29" parents="//@members.52 //@members.58"/>
41 <members parents="//@members.52 //@members.86"/>
42 <members age="273" children="//@members.22 //@members.25 //@members.68 //@members.70 //@members.71 //@members.82 //@members.93 //@members.95"/>
43 <members parents="//@members.23 //@members.26"/>
44 <members age="52" children="//@members.6" parents="//@members.20 //@members.29"/>
45 <members age="39" children="//@members.64" parents="//@members.8 //@members.52"/>
46 <members age="117" children="//@members.59 //@members.67" parents="//@members.25 //@members.50"/>
47 <members parents="//@members.86 //@members.94"/>
48 <members parents="//@members.36 //@members.54"/>
49 <members age="13" children="//@members.68" parents="//@members.31 //@members.51"/>
50 <members age="13" children="//@members.34" parents="//@members.28 //@members.98"/>
51 <members parents="//@members.62 //@members.80"/>
52 <members age="143" children="//@members.35 //@members.58 //@members.89" parents="//@members.25 //@members.62"/>
53 <members age="130" children="//@members.43 //@members.52 //@members.74" parents="//@members.7 //@members.69"/>
54 <members age="26" children="//@members.46" parents="//@members.24 //@members.80"/>
55 <members age="91" children="//@members.3 //@members.37 //@members.38 //@members.42 //@members.94" parents="//@members.50 //@members.59"/>
56 <members parents="//@members.23 //@members.76"/>
57 <members age="26" children="//@members.18 //@members.45" parents="//@members.35 //@members.71"/>
58 <members age="156" children="//@members.23 //@members.27 //@members.92" parents="//@members.7 //@members.81"/>
59 <members parents="//@members.14 //@members.72"/>
60 <members parents="//@members.25"/>
61 <members age="91" children="//@members.4 //@members.37 //@members.79" parents="//@members.49 //@members.80"/>
62 <members age="104" children="//@members.52 //@members.72 //@members.87" parents="//@members.24 //@members.43"/>
63 <members age="78" children="//@members.1 //@members.33 //@members.94 //@members.97" parents="//@members.9 //@members.27"/>
64 <members age="52" children="//@members.2 //@members.22" parents="//@members.10 //@members.69"/>
65 <members age="182" children="//@members.5 //@members.7 //@members.9 //@members.21 //@members.48 //@members.49 //@members.78 //@members.81" parents="//@members.15 //@members.85"/>
66 <members parents="//@members.8 //@members.9"/>
67 <members age="26" children="//@members.14" parents="//@members.6 //@members.42"/>
68 <members age="26" children="//@members.76" parents="//@members.31 //@members.82"/>
69 <members age="91" children="//@members.12" parents="//@members.27 //@members.69"/>
70 <members age="52" children="//@members.36" parents="//@members.35 //@members.43"/>
71 <members parents="//@members.39 //@members.46"/>
72 <members age="143" children="//@members.28 //@members.50 //@members.61 //@members.66 //@members.80" parents="//@members.9 //@members.81"/>
73 <members age="234" children="//@members.8 //@members.12 //@members.15 //@members.21 //@members.25 //@members.74" parents="//@members.39 //@members.71"/>
74 <members age="247" children="//@members.54 //@members.70" parents="//@members.39 //@members.93"/>
75 <members age="13" children="//@members.56 //@members.84" parents="//@members.59 //@members.87"/>
76 <members age="26" children="//@members.76" parents="//@members.2 //@members.21"/>
77 <members parents="//@members.50 //@members.70"/>
78 <members parents="//@members.17 //@members.97"/>
79 <members age="13" children="//@members.19 //@members.53" parents="//@members.65 //@members.73"/>
80 <members parents="//@members.81 //@members.85"/>
81 <members age="13" children="//@members.91" parents="//@members.62 //@members.86"/>
82 <members parents="//@members.36 //@members.58"/>
83 <members age="104" children="//@members.48 //@members.51 //@members.58 //@members.92 //@members.95" parents="//@members.27 //@members.69"/>
84 <members age="169" children="//@members.23 //@members.55 //@members.69 //@members.77" parents="//@members.62 //@members.85"/>
85 <members age="39" children="//@members.65" parents="//@members.20 //@members.39"/>
86 <members parents="//@members.25 //@members.87"/>
87 <members parents="//@members.72 //@members.97"/>
88 <members age="195" children="//@members.7 //@members.9 //@members.62 //@members.77 //@members.81" parents="//@members.15 //@members.25"/>
89 <members age="26" children="//@members.1 //@members.38 //@members.44 //@members.78" parents="//@members.8 //@members.21"/>
90 <members age="91" children="//@members.10 //@members.72 //@members.83" parents="//@members.8 //@members.59"/>
91 <members age="26" children="//@members.32 //@members.96" parents="//@members.8 //@members.35"/>
92 <members parents="//@members.21 //@members.49"/>
93 <members parents="//@members.18 //@members.21"/>
94 <members parents="//@members.9 //@members.78"/>
95 <members parents="//@members.55 //@members.80"/>
96 <members age="260" children="//@members.71" parents="//@members.39"/>
97 <members age="13" children="//@members.44" parents="//@members.52 //@members.60"/>
98 <members parents="//@members.39 //@members.80"/>
99 <members age="13" children="//@members.99" parents="//@members.17 //@members.88"/>
100 <members age="26" children="//@members.11 //@members.14 //@members.75 //@members.84" parents="//@members.7 //@members.60"/>
101 <members age="26" children="//@members.30 //@members.47" parents="//@members.9 //@members.36"/>
102 <members parents="//@members.8 //@members.96"/>
103</familytree:FamilyTree>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/1_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/1_1.xmi
new file mode 100644
index 00000000..4d55d654
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/1_1.xmi
@@ -0,0 +1,103 @@
1<?xml version="1.0" encoding="ASCII"?>
2<familytree:FamilyTree xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:familytree="http://www.example.org/familytree" xsi:schemaLocation="http://www.example.org/familytree ../case.study.familyTree.model/model/familytree.ecore">
3 <members parents="//@members.30 //@members.74"/>
4 <members age="182" children="//@members.6 //@members.55 //@members.58" parents="//@members.42 //@members.74"/>
5 <members age="104" children="//@members.3 //@members.16 //@members.26 //@members.76" parents="//@members.38 //@members.47"/>
6 <members parents="//@members.2 //@members.65"/>
7 <members age="13" children="//@members.18 //@members.24" parents="//@members.69 //@members.73"/>
8 <members age="39" children="//@members.23 //@members.34 //@members.71" parents="//@members.58 //@members.65"/>
9 <members age="156" children="//@members.28 //@members.85" parents="//@members.1 //@members.74"/>
10 <members age="13" children="//@members.71 //@members.79" parents="//@members.74 //@members.88"/>
11 <members parents="//@members.64 //@members.69"/>
12 <members parents="//@members.67 //@members.69"/>
13 <members parents="//@members.28 //@members.40"/>
14 <members age="26" children="//@members.59 //@members.86 //@members.87" parents="//@members.63 //@members.82"/>
15 <members age="13" children="//@members.91" parents="//@members.44 //@members.60"/>
16 <members age="39" children="//@members.17 //@members.23" parents="//@members.77 //@members.80"/>
17 <members age="52" children="//@members.41" parents="//@members.47 //@members.60"/>
18 <members age="39" children="//@members.69 //@members.72" parents="//@members.47 //@members.60"/>
19 <members age="78" children="//@members.29 //@members.61" parents="//@members.2 //@members.19"/>
20 <members parents="//@members.13 //@members.19"/>
21 <members parents="//@members.4 //@members.73"/>
22 <members age="91" children="//@members.16 //@members.17 //@members.35 //@members.43" parents="//@members.20 //@members.85"/>
23 <members age="104" children="//@members.19 //@members.45 //@members.49" parents="//@members.42 //@members.56"/>
24 <members age="78" children="//@members.33 //@members.90" parents="//@members.56 //@members.62"/>
25 <members parents="//@members.33 //@members.43"/>
26 <members age="26" children="//@members.52 //@members.84" parents="//@members.5 //@members.13"/>
27 <members parents="//@members.4 //@members.90"/>
28 <members age="39" children="//@members.78 //@members.88 //@members.89 //@members.94" parents="//@members.48 //@members.77"/>
29 <members age="91" children="//@members.45 //@members.88" parents="//@members.2 //@members.77"/>
30 <members parents="//@members.41 //@members.55"/>
31 <members age="143" children="//@members.10 //@members.48" parents="//@members.6 //@members.65"/>
32 <members age="65" children="//@members.30 //@members.34 //@members.61" parents="//@members.16 //@members.96"/>
33 <members age="13" children="//@members.0" parents="//@members.29 //@members.35"/>
34 <members parents="//@members.39 //@members.45"/>
35 <members age="117" children="//@members.40 //@members.98" parents="//@members.38 //@members.60"/>
36 <members age="65" children="//@members.22 //@members.43 //@members.64 //@members.80" parents="//@members.21 //@members.45"/>
37 <members parents="//@members.5 //@members.29"/>
38 <members age="26" children="//@members.30" parents="//@members.19 //@members.38"/>
39 <members parents="//@members.49 //@members.57"/>
40 <members age="52" children="//@members.41 //@members.63" parents="//@members.58 //@members.65"/>
41 <members age="221" children="//@members.2 //@members.32 //@members.35 //@members.42 //@members.69 //@members.74 //@members.77" parents="//@members.83 //@members.97"/>
42 <members age="273" children="//@members.31 //@members.68 //@members.97"/>
43 <members age="104" children="//@members.10 //@members.62 //@members.75" parents="//@members.32 //@members.58"/>
44 <members age="39" children="//@members.27 //@members.70 //@members.73 //@members.91" parents="//@members.14 //@members.37"/>
45 <members age="208" children="//@members.1 //@members.20 //@members.60 //@members.65 //@members.72 //@members.74 //@members.78" parents="//@members.38 //@members.83"/>
46 <members age="39" children="//@members.22 //@members.46" parents="//@members.19 //@members.33"/>
47 <members age="52" children="//@members.12 //@members.57 //@members.95" parents="//@members.67 //@members.83"/>
48 <members age="78" children="//@members.31 //@members.33 //@members.90" parents="//@members.20 //@members.26"/>
49 <members age="26" children="//@members.51" parents="//@members.43 //@members.74"/>
50 <members age="117" children="//@members.2 //@members.14 //@members.15 //@members.55 //@members.82 //@members.87" parents="//@members.58 //@members.81"/>
51 <members age="130" children="//@members.25 //@members.56 //@members.94" parents="//@members.28 //@members.65"/>
52 <members age="26" children="//@members.36 //@members.70" parents="//@members.20 //@members.57"/>
53 <members parents="//@members.92 //@members.97"/>
54 <members age="13" children="//@members.93" parents="//@members.46 //@members.85"/>
55 <members age="13" children="//@members.84" parents="//@members.23 //@members.77"/>
56 <members parents="//@members.70 //@members.97"/>
57 <members parents="//@members.87"/>
58 <members age="104" children="//@members.27 //@members.59 //@members.67 //@members.82" parents="//@members.1 //@members.47"/>
59 <members age="117" children="//@members.20 //@members.21 //@members.57 //@members.96" parents="//@members.48 //@members.81"/>
60 <members age="39" children="//@members.36 //@members.49 //@members.66" parents="//@members.44 //@members.56"/>
61 <members age="169" children="//@members.5 //@members.37 //@members.40 //@members.47 //@members.65" parents="//@members.1 //@members.74"/>
62 <members age="13" children="//@members.93" parents="//@members.11 //@members.55"/>
63 <members age="130" children="//@members.12 //@members.14 //@members.15 //@members.32 //@members.89 //@members.99" parents="//@members.42 //@members.81"/>
64 <members age="52" children="//@members.63 //@members.79" parents="//@members.16 //@members.29"/>
65 <members age="91" children="//@members.21 //@members.64" parents="//@members.40 //@members.85"/>
66 <members age="39" children="//@members.11" parents="//@members.37 //@members.61"/>
67 <members age="13" children="//@members.8" parents="//@members.33 //@members.62"/>
68 <members age="156" children="//@members.3 //@members.5 //@members.28 //@members.37 //@members.48 //@members.81 //@members.85" parents="//@members.42 //@members.58"/>
69 <members parents="//@members.57 //@members.81"/>
70 <members age="65" children="//@members.9 //@members.44" parents="//@members.55 //@members.82"/>
71 <members age="247" children="//@members.83 //@members.92" parents="//@members.39 //@members.97"/>
72 <members age="26" children="//@members.4 //@members.8 //@members.9 //@members.92" parents="//@members.15 //@members.38"/>
73 <members age="13" children="//@members.53" parents="//@members.41 //@members.49"/>
74 <members parents="//@members.5 //@members.7"/>
75 <members parents="//@members.15 //@members.42"/>
76 <members age="26" children="//@members.4 //@members.18 //@members.75" parents="//@members.41 //@members.83"/>
77 <members age="195" children="//@members.0 //@members.1 //@members.6 //@members.7 //@members.46 //@members.58 //@members.81" parents="//@members.38 //@members.42"/>
78 <members parents="//@members.40 //@members.73"/>
79 <members parents="//@members.2 //@members.81"/>
80 <members age="104" children="//@members.13 //@members.25 //@members.26 //@members.52" parents="//@members.38 //@members.81"/>
81 <members parents="//@members.25 //@members.42"/>
82 <members parents="//@members.7 //@members.61"/>
83 <members age="52" children="//@members.13" parents="//@members.33 //@members.90"/>
84 <members age="143" children="//@members.47 //@members.56 //@members.60 //@members.66 //@members.76 //@members.77" parents="//@members.65 //@members.74"/>
85 <members age="91" children="//@members.11 //@members.67 //@members.96 //@members.99" parents="//@members.47 //@members.55"/>
86 <members age="234" children="//@members.38 //@members.42 //@members.44 //@members.73" parents="//@members.68 //@members.97"/>
87 <members parents="//@members.23 //@members.52"/>
88 <members age="104" children="//@members.19 //@members.51 //@members.62 //@members.95" parents="//@members.6 //@members.65"/>
89 <members parents="//@members.11 //@members.92"/>
90 <members age="13" children="//@members.54" parents="//@members.11 //@members.47"/>
91 <members age="26" children="//@members.7" parents="//@members.25 //@members.26"/>
92 <members age="13" children="//@members.98" parents="//@members.25 //@members.60"/>
93 <members age="65" children="//@members.24 //@members.80" parents="//@members.21 //@members.45"/>
94 <members parents="//@members.12 //@members.41"/>
95 <members age="13" children="//@members.50 //@members.86" parents="//@members.68 //@members.69"/>
96 <members parents="//@members.51 //@members.59"/>
97 <members parents="//@members.25 //@members.48"/>
98 <members parents="//@members.44 //@members.85"/>
99 <members age="78" children="//@members.29" parents="//@members.56 //@members.82"/>
100 <members age="260" children="//@members.38 //@members.50 //@members.53 //@members.68 //@members.83" parents="//@members.39"/>
101 <members parents="//@members.32 //@members.89"/>
102 <members parents="//@members.60 //@members.82"/>
103</familytree:FamilyTree>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/2_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/2_1.xmi
new file mode 100644
index 00000000..690b7492
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/2_1.xmi
@@ -0,0 +1,103 @@
1<?xml version="1.0" encoding="ASCII"?>
2<familytree:FamilyTree xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:familytree="http://www.example.org/familytree" xsi:schemaLocation="http://www.example.org/familytree ../case.study.familyTree.model/model/familytree.ecore">
3 <members age="13" children="//@members.30 //@members.59" parents="//@members.64 //@members.88"/>
4 <members parents="//@members.53 //@members.65"/>
5 <members age="208" children="//@members.7 //@members.27 //@members.86" parents="//@members.23 //@members.44"/>
6 <members age="39" children="//@members.27 //@members.98" parents="//@members.80 //@members.88"/>
7 <members age="26" children="//@members.11 //@members.48 //@members.72" parents="//@members.51 //@members.68"/>
8 <members age="13" children="//@members.40 //@members.45" parents="//@members.23 //@members.99"/>
9 <members age="26" children="//@members.53" parents="//@members.31 //@members.39"/>
10 <members age="195" children="//@members.9 //@members.18 //@members.71 //@members.76 //@members.78 //@members.92" parents="//@members.2 //@members.23"/>
11 <members parents="//@members.39 //@members.76"/>
12 <members age="182" children="//@members.13 //@members.70 //@members.71" parents="//@members.7 //@members.23"/>
13 <members age="13" children="//@members.69" parents="//@members.42 //@members.78"/>
14 <members parents="//@members.4 //@members.22"/>
15 <members parents="//@members.62 //@members.99"/>
16 <members age="26" children="//@members.20 //@members.36 //@members.70" parents="//@members.9 //@members.89"/>
17 <members age="13" children="//@members.47" parents="//@members.22 //@members.57"/>
18 <members age="26" children="//@members.53" parents="//@members.42 //@members.64"/>
19 <members age="26" children="//@members.83" parents="//@members.78 //@members.87"/>
20 <members parents="//@members.31 //@members.92"/>
21 <members age="156" children="//@members.19 //@members.26 //@members.51 //@members.57 //@members.59 //@members.68 //@members.78" parents="//@members.7 //@members.71"/>
22 <members age="104" children="//@members.26 //@members.45 //@members.54 //@members.64 //@members.88 //@members.89" parents="//@members.18 //@members.76"/>
23 <members age="13" children="//@members.34" parents="//@members.13 //@members.54"/>
24 <members age="13" children="//@members.81" parents="//@members.50 //@members.51"/>
25 <members age="65" children="//@members.11 //@members.14 //@members.37 //@members.47 //@members.61 //@members.80" parents="//@members.68 //@members.92"/>
26 <members age="234" children="//@members.2 //@members.5 //@members.7 //@members.9 //@members.44 //@members.77" parents="//@members.43"/>
27 <members age="52" children="//@members.89" parents="//@members.75 //@members.94"/>
28 <members parents="//@members.58 //@members.91"/>
29 <members age="78" children="//@members.58 //@members.87 //@members.90 //@members.94" parents="//@members.18 //@members.19"/>
30 <members age="26" children="//@members.30 //@members.48 //@members.97" parents="//@members.2 //@members.3"/>
31 <members parents="//@members.52 //@members.78"/>
32 <members parents="//@members.52 //@members.94"/>
33 <members parents="//@members.0 //@members.27"/>
34 <members age="39" children="//@members.6 //@members.17 //@members.57" parents="//@members.46 //@members.76"/>
35 <members age="13" children="//@members.34" parents="//@members.51 //@members.71"/>
36 <members age="52" children="//@members.41 //@members.52" parents="//@members.92 //@members.96"/>
37 <members parents="//@members.20 //@members.32"/>
38 <members parents="//@members.68 //@members.90"/>
39 <members parents="//@members.13 //@members.52"/>
40 <members parents="//@members.22 //@members.48"/>
41 <members age="65" children="//@members.87" parents="//@members.84 //@members.88"/>
42 <members age="39" children="//@members.6 //@members.8" parents="//@members.87 //@members.96"/>
43 <members parents="//@members.5 //@members.52"/>
44 <members parents="//@members.33 //@members.91"/>
45 <members age="39" children="//@members.10 //@members.15" parents="//@members.68 //@members.96"/>
46 <members age="247" children="//@members.23 //@members.44"/>
47 <members age="221" children="//@members.2 //@members.56 //@members.99" parents="//@members.23 //@members.43"/>
48 <members parents="//@members.5 //@members.19"/>
49 <members age="104" children="//@members.31 //@members.51 //@members.62 //@members.64 //@members.73 //@members.96" parents="//@members.78 //@members.92"/>
50 <members parents="//@members.14 //@members.22"/>
51 <members age="13" children="//@members.37" parents="//@members.4 //@members.27"/>
52 <members parents="//@members.76 //@members.94"/>
53 <members age="78" children="//@members.21 //@members.80 //@members.96 //@members.98" parents="//@members.68 //@members.92"/>
54 <members age="91" children="//@members.4 //@members.21 //@members.32 //@members.88 //@members.97" parents="//@members.18 //@members.46"/>
55 <members age="39" children="//@members.28 //@members.29 //@members.36 //@members.40 //@members.54 //@members.63 //@members.67 //@members.79 //@members.90" parents="//@members.33 //@members.73"/>
56 <members age="13" children="//@members.1" parents="//@members.6 //@members.15"/>
57 <members age="26" children="//@members.20" parents="//@members.19 //@members.52"/>
58 <members age="13" children="//@members.74" parents="//@members.67 //@members.99"/>
59 <members parents="//@members.44 //@members.89"/>
60 <members age="26" children="//@members.14" parents="//@members.18 //@members.31"/>
61 <members age="13" children="//@members.25" parents="//@members.26 //@members.82"/>
62 <members parents="//@members.0 //@members.18"/>
63 <members age="39" children="//@members.99" parents="//@members.71 //@members.82"/>
64 <members parents="//@members.22 //@members.68"/>
65 <members age="78" children="//@members.12 //@members.94" parents="//@members.46 //@members.75"/>
66 <members parents="//@members.52 //@members.87"/>
67 <members age="91" children="//@members.0 //@members.15 //@members.67 //@members.84" parents="//@members.19 //@members.46"/>
68 <members age="13" children="//@members.1" parents="//@members.91 //@members.94"/>
69 <members parents="//@members.88 //@members.96"/>
70 <members age="26" children="//@members.55" parents="//@members.52 //@members.64"/>
71 <members age="104" children="//@members.4 //@members.22 //@members.35 //@members.42 //@members.50 //@members.61 //@members.75 //@members.91" parents="//@members.18 //@members.78"/>
72 <members parents="//@members.10 //@members.98"/>
73 <members parents="//@members.9 //@members.13"/>
74 <members age="169" children="//@members.18 //@members.32 //@members.60 //@members.73" parents="//@members.7 //@members.9"/>
75 <members parents="//@members.4 //@members.88"/>
76 <members age="65" children="//@members.52 //@members.82" parents="//@members.46 //@members.71"/>
77 <members parents="//@members.55 //@members.94"/>
78 <members age="91" children="//@members.24 //@members.62 //@members.82" parents="//@members.68 //@members.92"/>
79 <members age="117" children="//@members.8 //@members.19 //@members.31 //@members.49" parents="//@members.7 //@members.92"/>
80 <members parents="//@members.23"/>
81 <members age="143" children="//@members.10 //@members.16 //@members.28 //@members.46 //@members.68 //@members.83 //@members.92" parents="//@members.7 //@members.18"/>
82 <members parents="//@members.52 //@members.94"/>
83 <members age="52" children="//@members.3 //@members.91" parents="//@members.22 //@members.50"/>
84 <members parents="//@members.21 //@members.87"/>
85 <members age="52" children="//@members.58 //@members.60" parents="//@members.73 //@members.75"/>
86 <members age="13" children="//@members.85" parents="//@members.16 //@members.78"/>
87 <members age="78" children="//@members.38 //@members.85 //@members.93 //@members.95" parents="//@members.64 //@members.92"/>
88 <members parents="//@members.83 //@members.84"/>
89 <members parents="//@members.2 //@members.98"/>
90 <members age="52" children="//@members.16 //@members.39 //@members.63 //@members.81" parents="//@members.26 //@members.38"/>
91 <members age="78" children="//@members.0 //@members.3 //@members.38 //@members.66 //@members.72 //@members.95" parents="//@members.19 //@members.51"/>
92 <members age="39" children="//@members.13 //@members.56 //@members.93" parents="//@members.19 //@members.24"/>
93 <members age="13" children="//@members.35" parents="//@members.26 //@members.52"/>
94 <members age="26" children="//@members.25 //@members.41 //@members.65" parents="//@members.68 //@members.80"/>
95 <members age="130" children="//@members.17 //@members.22 //@members.33 //@members.46 //@members.50 //@members.75 //@members.76 //@members.84" parents="//@members.7 //@members.78"/>
96 <members parents="//@members.84 //@members.89"/>
97 <members age="65" children="//@members.24 //@members.29 //@members.49 //@members.65 //@members.74 //@members.79" parents="//@members.26 //@members.62"/>
98 <members parents="//@members.84 //@members.88"/>
99 <members age="65" children="//@members.33 //@members.39 //@members.42 //@members.66" parents="//@members.46 //@members.50"/>
100 <members parents="//@members.27 //@members.51"/>
101 <members age="13" children="//@members.69 //@members.86" parents="//@members.3 //@members.50"/>
102 <members age="26" children="//@members.5 //@members.12 //@members.55" parents="//@members.44 //@members.60"/>
103</familytree:FamilyTree>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/3_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/3_1.xmi
new file mode 100644
index 00000000..a1e10f7d
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/3_1.xmi
@@ -0,0 +1,103 @@
1<?xml version="1.0" encoding="ASCII"?>
2<familytree:FamilyTree xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:familytree="http://www.example.org/familytree" xsi:schemaLocation="http://www.example.org/familytree ../case.study.familyTree.model/model/familytree.ecore">
3 <members age="39" children="//@members.20 //@members.70 //@members.92" parents="//@members.64 //@members.91"/>
4 <members parents="//@members.79 //@members.87"/>
5 <members parents="//@members.51 //@members.91"/>
6 <members parents="//@members.27 //@members.89"/>
7 <members parents="//@members.35 //@members.65"/>
8 <members age="52" children="//@members.18 //@members.19 //@members.25 //@members.79" parents="//@members.43 //@members.51"/>
9 <members age="13" children="//@members.34 //@members.59" parents="//@members.7 //@members.9"/>
10 <members age="104" children="//@members.6 //@members.14 //@members.77" parents="//@members.64 //@members.91"/>
11 <members parents="//@members.51 //@members.86"/>
12 <members age="26" children="//@members.6 //@members.27 //@members.38" parents="//@members.18 //@members.64"/>
13 <members age="65" children="//@members.58 //@members.85" parents="//@members.64 //@members.72"/>
14 <members age="26" children="//@members.97" parents="//@members.57 //@members.91"/>
15 <members parents="//@members.28 //@members.40"/>
16 <members age="26" children="//@members.79 //@members.89" parents="//@members.33 //@members.86"/>
17 <members age="91" children="//@members.40 //@members.68 //@members.73 //@members.74 //@members.78 //@members.86" parents="//@members.7 //@members.76"/>
18 <members age="91" children="//@members.44 //@members.50 //@members.67" parents="//@members.64 //@members.91"/>
19 <members age="221" children="//@members.21 //@members.43 //@members.48 //@members.84 //@members.92" parents="//@members.88"/>
20 <members parents="//@members.35 //@members.95"/>
21 <members age="39" children="//@members.9 //@members.27" parents="//@members.5 //@members.51"/>
22 <members age="26" children="//@members.97" parents="//@members.5 //@members.22"/>
23 <members age="13" children="//@members.36" parents="//@members.0 //@members.57"/>
24 <members age="208" children="//@members.23 //@members.26 //@members.43 //@members.44 //@members.83" parents="//@members.16 //@members.88"/>
25 <members age="39" children="//@members.19 //@members.23" parents="//@members.39 //@members.84"/>
26 <members parents="//@members.21 //@members.22"/>
27 <members age="143" children="//@members.35 //@members.57 //@members.64 //@members.69 //@members.91 //@members.94" parents="//@members.28 //@members.61"/>
28 <members parents="//@members.5 //@members.50"/>
29 <members parents="//@members.21 //@members.90"/>
30 <members age="13" children="//@members.3" parents="//@members.9 //@members.18"/>
31 <members age="156" children="//@members.12 //@members.24 //@members.53 //@members.57 //@members.63 //@members.80 //@members.91" parents="//@members.43 //@members.61"/>
32 <members parents="//@members.60 //@members.89"/>
33 <members parents="//@members.50 //@members.66"/>
34 <members parents="//@members.76 //@members.91"/>
35 <members parents="//@members.39 //@members.90"/>
36 <members age="52" children="//@members.13 //@members.38 //@members.41 //@members.47 //@members.55 //@members.56 //@members.62 //@members.77" parents="//@members.61 //@members.69"/>
37 <members parents="//@members.6 //@members.97"/>
38 <members age="13" children="//@members.4 //@members.17" parents="//@members.24 //@members.69"/>
39 <members parents="//@members.20 //@members.80"/>
40 <members parents="//@members.41 //@members.77"/>
41 <members parents="//@members.9 //@members.33"/>
42 <members age="52" children="//@members.22 //@members.32 //@members.45 //@members.52 //@members.96" parents="//@members.43 //@members.76"/>
43 <members age="13" children="//@members.12" parents="//@members.14 //@members.83"/>
44 <members age="26" children="//@members.37 //@members.67 //@members.87" parents="//@members.33 //@members.91"/>
45 <members parents="//@members.55 //@members.96"/>
46 <members age="195" children="//@members.5 //@members.28 //@members.39 //@members.58 //@members.61 //@members.69 //@members.72 //@members.83" parents="//@members.16 //@members.21"/>
47 <members age="78" children="//@members.82 //@members.94" parents="//@members.15 //@members.21"/>
48 <members parents="//@members.39 //@members.72"/>
49 <members parents="//@members.76"/>
50 <members parents="//@members.33 //@members.88"/>
51 <members age="13" children="//@members.63" parents="//@members.16 //@members.91"/>
52 <members parents="//@members.66 //@members.70"/>
53 <members age="13" children="//@members.25 //@members.30 //@members.99" parents="//@members.15 //@members.96"/>
54 <members age="117" children="//@members.2 //@members.5 //@members.8 //@members.18 //@members.72 //@members.73 //@members.76" parents="//@members.61 //@members.91"/>
55 <members parents="//@members.39 //@members.89"/>
56 <members parents="//@members.28 //@members.95"/>
57 <members parents="//@members.78 //@members.88"/>
58 <members age="39" children="//@members.42 //@members.60 //@members.70 //@members.98" parents="//@members.33 //@members.73"/>
59 <members age="26" children="//@members.60" parents="//@members.33 //@members.90"/>
60 <members age="39" children="//@members.11 //@members.20" parents="//@members.24 //@members.28"/>
61 <members age="52" children="//@members.85 //@members.99" parents="//@members.10 //@members.43"/>
62 <members parents="//@members.6 //@members.92"/>
63 <members age="13" children="//@members.29 //@members.74" parents="//@members.55 //@members.56"/>
64 <members age="169" children="//@members.24 //@members.28 //@members.33 //@members.51 //@members.64 //@members.75" parents="//@members.43 //@members.83"/>
65 <members age="13" children="//@members.93" parents="//@members.33 //@members.72"/>
66 <members parents="//@members.28 //@members.48"/>
67 <members age="117" children="//@members.0 //@members.7 //@members.9 //@members.10 //@members.15 //@members.76 //@members.86 //@members.96" parents="//@members.24 //@members.61"/>
68 <members age="13" children="//@members.4" parents="//@members.82 //@members.84"/>
69 <members age="13" children="//@members.30 //@members.49" parents="//@members.70 //@members.88"/>
70 <members parents="//@members.15 //@members.41"/>
71 <members age="13" children="//@members.75" parents="//@members.14 //@members.81"/>
72 <members age="65" children="//@members.33 //@members.35" parents="//@members.24 //@members.43"/>
73 <members age="26" children="//@members.49 //@members.66" parents="//@members.0 //@members.55"/>
74 <members parents="//@members.72 //@members.85"/>
75 <members age="78" children="//@members.10 //@members.45 //@members.62 //@members.71 //@members.80" parents="//@members.43 //@members.51"/>
76 <members age="52" children="//@members.55" parents="//@members.14 //@members.51"/>
77 <members parents="//@members.14 //@members.60"/>
78 <members parents="//@members.61 //@members.68"/>
79 <members age="104" children="//@members.14 //@members.31 //@members.39 //@members.46" parents="//@members.51 //@members.64"/>
80 <members age="26" children="//@members.37 //@members.87" parents="//@members.7 //@members.33"/>
81 <members age="13" children="//@members.54" parents="//@members.14 //@members.94"/>
82 <members age="13" children="//@members.1" parents="//@members.5 //@members.13"/>
83 <members age="13" children="//@members.36" parents="//@members.28 //@members.72"/>
84 <members age="26" children="//@members.68" parents="//@members.85 //@members.86"/>
85 <members age="65" children="//@members.65 //@members.84 //@members.95" parents="//@members.44 //@members.86"/>
86 <members age="182" children="//@members.40 //@members.61 //@members.90" parents="//@members.21 //@members.43"/>
87 <members age="52" children="//@members.22 //@members.65" parents="//@members.16 //@members.82"/>
88 <members age="39" children="//@members.71 //@members.81 //@members.95" parents="//@members.10 //@members.58"/>
89 <members age="78" children="//@members.8 //@members.13 //@members.81 //@members.82" parents="//@members.14 //@members.64"/>
90 <members age="13" children="//@members.1" parents="//@members.41 //@members.77"/>
91 <members age="234" children="//@members.16 //@members.21 //@members.47 //@members.54 //@members.66"/>
92 <members age="13" children="//@members.3 //@members.29 //@members.52" parents="//@members.13 //@members.95"/>
93 <members age="39" children="//@members.26 //@members.32 //@members.56 //@members.98" parents="//@members.83 //@members.91"/>
94 <members age="130" children="//@members.0 //@members.2 //@members.7 //@members.11 //@members.15 //@members.31 //@members.41 //@members.48 //@members.51 //@members.90 //@members.93" parents="//@members.24 //@members.28"/>
95 <members age="13" children="//@members.59" parents="//@members.0 //@members.16"/>
96 <members parents="//@members.62 //@members.91"/>
97 <members age="26" children="//@members.78" parents="//@members.24 //@members.44"/>
98 <members age="26" children="//@members.17 //@members.53 //@members.89" parents="//@members.82 //@members.85"/>
99 <members age="26" children="//@members.42 //@members.50" parents="//@members.39 //@members.64"/>
100 <members age="13" children="//@members.34" parents="//@members.11 //@members.19"/>
101 <members parents="//@members.55 //@members.90"/>
102 <members parents="//@members.50 //@members.58"/>
103</familytree:FamilyTree>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/4_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/4_1.xmi
new file mode 100644
index 00000000..9e950b3b
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/4_1.xmi
@@ -0,0 +1,103 @@
1<?xml version="1.0" encoding="ASCII"?>
2<familytree:FamilyTree xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:familytree="http://www.example.org/familytree" xsi:schemaLocation="http://www.example.org/familytree ../case.study.familyTree.model/model/familytree.ecore">
3 <members age="65" children="//@members.14 //@members.20 //@members.37 //@members.57" parents="//@members.2 //@members.73"/>
4 <members parents="//@members.2 //@members.28"/>
5 <members age="130" children="//@members.0 //@members.1 //@members.8 //@members.15 //@members.16 //@members.34 //@members.50 //@members.72" parents="//@members.27 //@members.98"/>
6 <members age="52" children="//@members.28 //@members.57 //@members.76" parents="//@members.40 //@members.78"/>
7 <members age="26" children="//@members.43" parents="//@members.65 //@members.67"/>
8 <members parents="//@members.18 //@members.73"/>
9 <members age="52" children="//@members.33 //@members.38 //@members.56" parents="//@members.17 //@members.40"/>
10 <members age="13" children="//@members.68" parents="//@members.44 //@members.73"/>
11 <members age="52" children="//@members.71 //@members.92 //@members.97" parents="//@members.2 //@members.34"/>
12 <members age="52" children="//@members.36 //@members.47" parents="//@members.17 //@members.83"/>
13 <members age="143" children="//@members.53 //@members.65 //@members.77 //@members.83 //@members.86" parents="//@members.30 //@members.42"/>
14 <members age="65" children="//@members.44 //@members.67" parents="//@members.40 //@members.88"/>
15 <members age="13" children="//@members.13" parents="//@members.84 //@members.98"/>
16 <members parents="//@members.12 //@members.76"/>
17 <members parents="//@members.0 //@members.93"/>
18 <members parents="//@members.2 //@members.22"/>
19 <members age="91" children="//@members.88" parents="//@members.2 //@members.40"/>
20 <members age="195" children="//@members.6 //@members.9 //@members.27 //@members.29 //@members.30 //@members.75 //@members.81 //@members.86 //@members.90" parents="//@members.49 //@members.78"/>
21 <members age="39" children="//@members.5 //@members.41 //@members.93 //@members.96" parents="//@members.20 //@members.32"/>
22 <members age="13" children="//@members.63" parents="//@members.49 //@members.57"/>
23 <members age="52" children="//@members.18 //@members.47 //@members.51" parents="//@members.0 //@members.42"/>
24 <members age="13" children="//@members.63" parents="//@members.79 //@members.93"/>
25 <members age="91" children="//@members.15 //@members.23 //@members.28 //@members.35 //@members.50 //@members.59 //@members.88" parents="//@members.29 //@members.32"/>
26 <members age="26" children="//@members.55 //@members.76" parents="//@members.22 //@members.98"/>
27 <members parents="//@members.40 //@members.97"/>
28 <members age="26" children="//@members.43 //@members.60" parents="//@members.26 //@members.45"/>
29 <members age="65" children="//@members.25 //@members.46 //@members.51 //@members.52" parents="//@members.29 //@members.81"/>
30 <members age="182" children="//@members.2 //@members.30 //@members.42 //@members.81" parents="//@members.17 //@members.49"/>
31 <members age="26" children="//@members.1 //@members.82 //@members.87 //@members.97" parents="//@members.3 //@members.22"/>
32 <members age="117" children="//@members.22 //@members.26 //@members.31 //@members.32" parents="//@members.17 //@members.42"/>
33 <members age="156" children="//@members.10 //@members.35 //@members.39 //@members.58" parents="//@members.17 //@members.27"/>
34 <members parents="//@members.29 //@members.98"/>
35 <members age="104" children="//@members.18 //@members.22 //@members.41 //@members.69 //@members.96" parents="//@members.29 //@members.98"/>
36 <members parents="//@members.6 //@members.57"/>
37 <members age="117" children="//@members.8 //@members.40 //@members.55" parents="//@members.2 //@members.83"/>
38 <members parents="//@members.22 //@members.30"/>
39 <members age="39" children="//@members.84" parents="//@members.9 //@members.39"/>
40 <members age="39" children="//@members.70 //@members.74" parents="//@members.0 //@members.90"/>
41 <members age="39" children="//@members.84" parents="//@members.6 //@members.42"/>
42 <members age="52" children="//@members.36 //@members.58 //@members.62" parents="//@members.30 //@members.49"/>
43 <members age="104" children="//@members.3 //@members.6 //@members.11 //@members.16 //@members.24 //@members.79" parents="//@members.34 //@members.98"/>
44 <members parents="//@members.18 //@members.32"/>
45 <members age="156" children="//@members.10 //@members.20 //@members.29 //@members.38 //@members.71 //@members.85" parents="//@members.27 //@members.81"/>
46 <members age="13" children="//@members.60" parents="//@members.4 //@members.25"/>
47 <members age="26" children="//@members.7" parents="//@members.11 //@members.71"/>
48 <members age="39" children="//@members.25 //@members.56 //@members.94" parents="//@members.52 //@members.67"/>
49 <members age="52" children="//@members.65" parents="//@members.26 //@members.78"/>
50 <members parents="//@members.9 //@members.20"/>
51 <members age="13" children="//@members.61" parents="//@members.74 //@members.93"/>
52 <members age="208" children="//@members.17 //@members.19 //@members.27 //@members.39 //@members.69" parents="//@members.78 //@members.98"/>
53 <members parents="//@members.2 //@members.22"/>
54 <members age="13" children="//@members.82 //@members.87" parents="//@members.20 //@members.26"/>
55 <members age="52" children="//@members.45" parents="//@members.26 //@members.81"/>
56 <members parents="//@members.10 //@members.90"/>
57 <members age="13" children="//@members.99" parents="//@members.72 //@members.81"/>
58 <members parents="//@members.23 //@members.34"/>
59 <members parents="//@members.6 //@members.45"/>
60 <members age="39" children="//@members.19 //@members.33 //@members.66 //@members.93" parents="//@members.0 //@members.3"/>
61 <members age="13" children="//@members.66 //@members.95" parents="//@members.30 //@members.39"/>
62 <members parents="//@members.22 //@members.67"/>
63 <members parents="//@members.25 //@members.43"/>
64 <members parents="//@members.48"/>
65 <members parents="//@members.39 //@members.72"/>
66 <members parents="//@members.19 //@members.21"/>
67 <members parents="//@members.70 //@members.90"/>
68 <members age="39" children="//@members.4 //@members.91 //@members.95" parents="//@members.10 //@members.46"/>
69 <members parents="//@members.57 //@members.58"/>
70 <members age="52" children="//@members.4 //@members.45 //@members.59 //@members.75" parents="//@members.11 //@members.81"/>
71 <members parents="//@members.7 //@members.88"/>
72 <members age="39" children="//@members.72" parents="//@members.32 //@members.49"/>
73 <members age="13" children="//@members.64" parents="//@members.37 //@members.86"/>
74 <members age="39" children="//@members.44 //@members.91" parents="//@members.8 //@members.42"/>
75 <members age="26" children="//@members.54 //@members.62" parents="//@members.2 //@members.69"/>
76 <members age="247" children="//@members.0 //@members.5 //@members.7 //@members.78 //@members.85 //@members.98" parents="//@members.80 //@members.89"/>
77 <members age="26" children="//@members.48 //@members.99" parents="//@members.37 //@members.86"/>
78 <members parents="//@members.17 //@members.67"/>
79 <members age="13" children="//@members.13" parents="//@members.3 //@members.23"/>
80 <members parents="//@members.10 //@members.91"/>
81 <members age="221" children="//@members.3 //@members.17 //@members.46 //@members.49" parents="//@members.73 //@members.98"/>
82 <members age="26" children="//@members.21" parents="//@members.40 //@members.83"/>
83 <members age="273" children="//@members.73 //@members.89"/>
84 <members age="169" children="//@members.26 //@members.42 //@members.52 //@members.54 //@members.67 //@members.83 //@members.90" parents="//@members.17 //@members.27"/>
85 <members parents="//@members.28 //@members.51"/>
86 <members age="130" children="//@members.9 //@members.34 //@members.79 //@members.92" parents="//@members.10 //@members.81"/>
87 <members age="26" children="//@members.12" parents="//@members.36 //@members.38"/>
88 <members parents="//@members.42 //@members.73"/>
89 <members age="39" children="//@members.70 //@members.74" parents="//@members.10 //@members.17"/>
90 <members parents="//@members.28 //@members.51"/>
91 <members age="78" children="//@members.11 //@members.68" parents="//@members.16 //@members.22"/>
92 <members age="260" children="//@members.73 //@members.94 //@members.98" parents="//@members.80"/>
93 <members age="52" children="//@members.37 //@members.53 //@members.64" parents="//@members.17 //@members.81"/>
94 <members age="13" children="//@members.77" parents="//@members.65 //@members.71"/>
95 <members parents="//@members.8 //@members.83"/>
96 <members age="26" children="//@members.14 //@members.21 //@members.48" parents="//@members.18 //@members.57"/>
97 <members parents="//@members.45 //@members.89"/>
98 <members parents="//@members.58 //@members.65"/>
99 <members parents="//@members.18 //@members.32"/>
100 <members age="13" children="//@members.24" parents="//@members.8 //@members.28"/>
101 <members age="234" children="//@members.2 //@members.12 //@members.23 //@members.31 //@members.32 //@members.40 //@members.49 //@members.78" parents="//@members.73 //@members.89"/>
102 <members parents="//@members.54 //@members.74"/>
103</familytree:FamilyTree>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/5_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/5_1.xmi
new file mode 100644
index 00000000..c1d02cfb
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/5_1.xmi
@@ -0,0 +1,103 @@
1<?xml version="1.0" encoding="ASCII"?>
2<familytree:FamilyTree xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:familytree="http://www.example.org/familytree" xsi:schemaLocation="http://www.example.org/familytree ../case.study.familyTree.model/model/familytree.ecore">
3 <members age="78" children="//@members.24 //@members.51 //@members.60 //@members.66 //@members.75 //@members.87 //@members.88" parents="//@members.42 //@members.94"/>
4 <members parents="//@members.65 //@members.95"/>
5 <members age="182" children="//@members.14 //@members.24 //@members.31 //@members.83 //@members.86 //@members.91" parents="//@members.29 //@members.80"/>
6 <members age="13" children="//@members.50" parents="//@members.29 //@members.68"/>
7 <members age="52" children="//@members.70 //@members.90 //@members.98" parents="//@members.12 //@members.66"/>
8 <members age="26" children="//@members.13 //@members.26 //@members.61" parents="//@members.20 //@members.40"/>
9 <members age="13" children="//@members.63" parents="//@members.12 //@members.53"/>
10 <members age="52" children="//@members.11 //@members.36 //@members.56" parents="//@members.60 //@members.86"/>
11 <members age="39" children="//@members.59" parents="//@members.53 //@members.80"/>
12 <members parents="//@members.76 //@members.94"/>
13 <members parents="//@members.15 //@members.97"/>
14 <members age="13" children="//@members.82" parents="//@members.7 //@members.39"/>
15 <members age="91" children="//@members.4 //@members.6 //@members.25 //@members.33 //@members.39 //@members.72" parents="//@members.18 //@members.85"/>
16 <members parents="//@members.5 //@members.40"/>
17 <members age="13" children="//@members.36 //@members.46" parents="//@members.2 //@members.40"/>
18 <members age="13" children="//@members.10 //@members.93" parents="//@members.42 //@members.80"/>
19 <members parents="//@members.77 //@members.94"/>
20 <members parents="//@members.19 //@members.70"/>
21 <members age="104" children="//@members.12 //@members.38 //@members.47 //@members.66 //@members.92" parents="//@members.65 //@members.85"/>
22 <members age="13" children="//@members.17 //@members.57" parents="//@members.33 //@members.85"/>
23 <members age="39" children="//@members.5" parents="//@members.35 //@members.43"/>
24 <members age="13" children="//@members.30" parents="//@members.42 //@members.52"/>
25 <members age="13" children="//@members.48" parents="//@members.35 //@members.47"/>
26 <members age="13" children="//@members.45 //@members.73" parents="//@members.80 //@members.98"/>
27 <members parents="//@members.0 //@members.2"/>
28 <members parents="//@members.12 //@members.40"/>
29 <members parents="//@members.5 //@members.35"/>
30 <members age="234" children="//@members.29 //@members.70 //@members.80 //@members.84" parents="//@members.67"/>
31 <members age="65" children="//@members.41" parents="//@members.42 //@members.69"/>
32 <members age="208" children="//@members.2 //@members.3 //@members.80 //@members.91" parents="//@members.27 //@members.84"/>
33 <members parents="//@members.21 //@members.86"/>
34 <members parents="//@members.2 //@members.59"/>
35 <members parents="//@members.52 //@members.97"/>
36 <members age="65" children="//@members.19 //@members.41 //@members.73 //@members.97 //@members.99" parents="//@members.12 //@members.39"/>
37 <members parents="//@members.65"/>
38 <members age="52" children="//@members.20 //@members.22 //@members.26 //@members.58" parents="//@members.40 //@members.96"/>
39 <members parents="//@members.7 //@members.14"/>
40 <members age="13" children="//@members.49" parents="//@members.89 //@members.91"/>
41 <members age="26" children="//@members.76" parents="//@members.18 //@members.80"/>
42 <members age="78" children="//@members.11 //@members.33 //@members.78" parents="//@members.12 //@members.86"/>
43 <members age="65" children="//@members.5 //@members.13 //@members.14 //@members.25 //@members.35 //@members.44 //@members.55 //@members.71 //@members.98" parents="//@members.47 //@members.94"/>
44 <members age="52" children="//@members.56" parents="//@members.28 //@members.33"/>
45 <members age="91" children="//@members.0 //@members.15 //@members.21 //@members.28 //@members.47 //@members.51 //@members.62" parents="//@members.85 //@members.94"/>
46 <members age="130" children="//@members.20 //@members.52 //@members.65 //@members.96" parents="//@members.80 //@members.85"/>
47 <members age="26" children="//@members.82 //@members.95" parents="//@members.40 //@members.81"/>
48 <members parents="//@members.23 //@members.69"/>
49 <members parents="//@members.14 //@members.61"/>
50 <members age="78" children="//@members.22 //@members.40" parents="//@members.18 //@members.42"/>
51 <members parents="//@members.22 //@members.60"/>
52 <members parents="//@members.37 //@members.97"/>
53 <members parents="//@members.3 //@members.96"/>
54 <members age="13" children="//@members.62" parents="//@members.0 //@members.42"/>
55 <members age="26" children="//@members.21 //@members.32 //@members.76" parents="//@members.43 //@members.86"/>
56 <members age="52" children="//@members.6 //@members.8 //@members.57 //@members.97" parents="//@members.60 //@members.86"/>
57 <members parents="//@members.71 //@members.80"/>
58 <members parents="//@members.40 //@members.83"/>
59 <members age="39" children="//@members.68" parents="//@members.7 //@members.41"/>
60 <members parents="//@members.19 //@members.53"/>
61 <members parents="//@members.35 //@members.88"/>
62 <members age="26" children="//@members.31 //@members.61" parents="//@members.8 //@members.66"/>
63 <members age="65" children="//@members.7 //@members.48 //@members.53 //@members.93" parents="//@members.0 //@members.77"/>
64 <members age="13" children="//@members.46 //@members.63" parents="//@members.5 //@members.59"/>
65 <members parents="//@members.42 //@members.51"/>
66 <members parents="//@members.6 //@members.61"/>
67 <members parents="//@members.66 //@members.83"/>
68 <members age="117" children="//@members.1 //@members.18 //@members.34 //@members.77 //@members.83" parents="//@members.43 //@members.85"/>
69 <members age="65" children="//@members.4 //@members.59 //@members.64 //@members.79 //@members.81" parents="//@members.0 //@members.18"/>
70 <members age="247" children="//@members.27 //@members.84"/>
71 <members age="26" children="//@members.3" parents="//@members.56 //@members.98"/>
72 <members age="78" children="//@members.28 //@members.45" parents="//@members.85 //@members.96"/>
73 <members age="13" children="//@members.17" parents="//@members.4 //@members.27"/>
74 <members age="13" children="//@members.54" parents="//@members.40 //@members.94"/>
75 <members parents="//@members.12 //@members.88"/>
76 <members parents="//@members.23 //@members.33"/>
77 <members parents="//@members.86 //@members.94"/>
78 <members parents="//@members.0 //@members.92"/>
79 <members age="13" children="//@members.9" parents="//@members.38 //@members.52"/>
80 <members age="104" children="//@members.16 //@members.60 //@members.78 //@members.96" parents="//@members.65 //@members.85"/>
81 <members parents="//@members.39 //@members.77"/>
82 <members parents="//@members.66 //@members.99"/>
83 <members age="195" children="//@members.2 //@members.8 //@members.15 //@members.23 //@members.38 //@members.43 //@members.54 //@members.85 //@members.86 //@members.94" parents="//@members.27 //@members.29"/>
84 <members age="39" children="//@members.44" parents="//@members.66 //@members.85"/>
85 <members parents="//@members.11 //@members.44"/>
86 <members age="26" children="//@members.55 //@members.64 //@members.92" parents="//@members.2 //@members.65"/>
87 <members age="221" children="//@members.29" parents="//@members.27 //@members.67"/>
88 <members age="143" children="//@members.12 //@members.18 //@members.19 //@members.42 //@members.43 //@members.65 //@members.69 //@members.77 //@members.81 //@members.88" parents="//@members.80 //@members.94"/>
89 <members age="169" children="//@members.7 //@members.30 //@members.39 //@members.52 //@members.53 //@members.74 //@members.94" parents="//@members.2 //@members.80"/>
90 <members parents="//@members.0 //@members.97"/>
91 <members age="13" children="//@members.58 //@members.72 //@members.90" parents="//@members.0 //@members.85"/>
92 <members age="26" children="//@members.37 //@members.95" parents="//@members.94 //@members.97"/>
93 <members parents="//@members.4 //@members.88"/>
94 <members age="26" children="//@members.37" parents="//@members.2 //@members.29"/>
95 <members age="13" children="//@members.75" parents="//@members.18 //@members.83"/>
96 <members parents="//@members.15 //@members.60"/>
97 <members age="156" children="//@members.0 //@members.9 //@members.16 //@members.40 //@members.42 //@members.71 //@members.74 //@members.85 //@members.89 //@members.99" parents="//@members.80 //@members.86"/>
98 <members age="13" children="//@members.1" parents="//@members.44 //@members.89"/>
99 <members age="91" children="//@members.35 //@members.50 //@members.69" parents="//@members.43 //@members.77"/>
100 <members age="39" children="//@members.10 //@members.32 //@members.49 //@members.87 //@members.89" parents="//@members.33 //@members.53"/>
101 <members age="39" children="//@members.23 //@members.68" parents="//@members.4 //@members.40"/>
102 <members age="13" children="//@members.79" parents="//@members.33 //@members.94"/>
103</familytree:FamilyTree>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/6_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/6_1.xmi
new file mode 100644
index 00000000..4e1092cb
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/6_1.xmi
@@ -0,0 +1,103 @@
1<?xml version="1.0" encoding="ASCII"?>
2<familytree:FamilyTree xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:familytree="http://www.example.org/familytree" xsi:schemaLocation="http://www.example.org/familytree ../case.study.familyTree.model/model/familytree.ecore">
3 <members age="26" children="//@members.6" parents="//@members.16 //@members.79"/>
4 <members age="13" children="//@members.66" parents="//@members.36 //@members.91"/>
5 <members age="39" children="//@members.49 //@members.51" parents="//@members.64 //@members.72"/>
6 <members age="65" children="//@members.54 //@members.58 //@members.60 //@members.70 //@members.72 //@members.88" parents="//@members.64 //@members.85"/>
7 <members age="26" children="//@members.83 //@members.98" parents="//@members.45 //@members.87"/>
8 <members parents="//@members.26 //@members.83"/>
9 <members age="13" children="//@members.19" parents="//@members.0 //@members.45"/>
10 <members age="65" children="//@members.8 //@members.17 //@members.20 //@members.27" parents="//@members.26 //@members.80"/>
11 <members parents="//@members.7 //@members.14"/>
12 <members age="26" children="//@members.73 //@members.93 //@members.95" parents="//@members.25 //@members.68"/>
13 <members parents="//@members.70 //@members.80"/>
14 <members age="143" children="//@members.16 //@members.23 //@members.24 //@members.26 //@members.68 //@members.82 //@members.85 //@members.95" parents="//@members.43 //@members.80"/>
15 <members age="26" children="//@members.82 //@members.88" parents="//@members.50 //@members.94"/>
16 <members parents="//@members.71 //@members.85"/>
17 <members age="13" children="//@members.8" parents="//@members.69 //@members.70"/>
18 <members age="39" children="//@members.57" parents="//@members.54 //@members.70"/>
19 <members age="117" children="//@members.0 //@members.26 //@members.40 //@members.68 //@members.76 //@members.78 //@members.92 //@members.94" parents="//@members.11 //@members.85"/>
20 <members age="13" children="//@members.35 //@members.38" parents="//@members.7 //@members.55"/>
21 <members age="234" children="//@members.59 //@members.71 //@members.86"/>
22 <members parents="//@members.6"/>
23 <members age="13" children="//@members.28" parents="//@members.7 //@members.87"/>
24 <members age="13" children="//@members.89" parents="//@members.59 //@members.97"/>
25 <members parents="//@members.43 //@members.92"/>
26 <members age="13" children="//@members.89" parents="//@members.11 //@members.71"/>
27 <members age="39" children="//@members.33 //@members.97" parents="//@members.11 //@members.85"/>
28 <members age="39" children="//@members.9" parents="//@members.43 //@members.78"/>
29 <members age="104" children="//@members.5 //@members.7 //@members.36 //@members.45 //@members.53" parents="//@members.11 //@members.16"/>
30 <members age="52" children="//@members.62 //@members.65 //@members.98 //@members.99" parents="//@members.7 //@members.91"/>
31 <members parents="//@members.20 //@members.77"/>
32 <members parents="//@members.64 //@members.84"/>
33 <members age="13" children="//@members.74" parents="//@members.72 //@members.90"/>
34 <members parents="//@members.64 //@members.97"/>
35 <members parents="//@members.93 //@members.99"/>
36 <members parents="//@members.24 //@members.46"/>
37 <members parents="//@members.69 //@members.72"/>
38 <members parents="//@members.17 //@members.85"/>
39 <members age="65" children="//@members.1 //@members.53 //@members.55 //@members.79" parents="//@members.26 //@members.85"/>
40 <members parents="//@members.39 //@members.88"/>
41 <members parents="//@members.17 //@members.47"/>
42 <members age="13" children="//@members.37 //@members.56" parents="//@members.43 //@members.77"/>
43 <members age="78" children="//@members.48 //@members.72 //@members.84 //@members.90 //@members.91" parents="//@members.16 //@members.45"/>
44 <members parents="//@members.46 //@members.71"/>
45 <members parents="//@members.43 //@members.54"/>
46 <members age="156" children="//@members.11 //@members.22 //@members.25 //@members.39 //@members.42 //@members.47 //@members.87 //@members.90 //@members.94" parents="//@members.77 //@members.80"/>
47 <members age="13" children="//@members.51 //@members.86" parents="//@members.84 //@members.92"/>
48 <members age="91" children="//@members.4 //@members.6 //@members.40 //@members.60 //@members.63 //@members.64 //@members.92" parents="//@members.26 //@members.85"/>
49 <members age="13" children="//@members.33 //@members.41" parents="//@members.49 //@members.57"/>
50 <members age="13" children="//@members.38" parents="//@members.43 //@members.54"/>
51 <members parents="//@members.40 //@members.80"/>
52 <members age="26" children="//@members.46 //@members.52 //@members.81 //@members.96" parents="//@members.2 //@members.62"/>
53 <members age="39" children="//@members.12" parents="//@members.53 //@members.85"/>
54 <members parents="//@members.2 //@members.44"/>
55 <members parents="//@members.49 //@members.76"/>
56 <members age="52" children="//@members.50 //@members.67" parents="//@members.26 //@members.36"/>
57 <members age="52" children="//@members.15 //@members.42 //@members.47 //@members.57" parents="//@members.3 //@members.78"/>
58 <members age="52" children="//@members.17 //@members.63 //@members.87" parents="//@members.36 //@members.64"/>
59 <members parents="//@members.39 //@members.90"/>
60 <members age="26" children="//@members.46" parents="//@members.15 //@members.54"/>
61 <members parents="//@members.3 //@members.61"/>
62 <members age="221" children="//@members.21 //@members.71 //@members.77" parents="//@members.18"/>
63 <members parents="//@members.3 //@members.45"/>
64 <members age="182" children="//@members.58 //@members.80 //@members.91" parents="//@members.71 //@members.77"/>
65 <members age="39" children="//@members.49 //@members.73 //@members.99" parents="//@members.27 //@members.77"/>
66 <members parents="//@members.45 //@members.55"/>
67 <members age="78" children="//@members.2 //@members.3 //@members.29 //@members.31 //@members.55 //@members.79" parents="//@members.45 //@members.78"/>
68 <members age="13" children="//@members.66" parents="//@members.27 //@members.94"/>
69 <members parents="//@members.1 //@members.65"/>
70 <members parents="//@members.53 //@members.95"/>
71 <members age="104" children="//@members.9 //@members.78" parents="//@members.11 //@members.16"/>
72 <members age="26" children="//@members.14 //@members.34" parents="//@members.84 //@members.94"/>
73 <members age="52" children="//@members.10 //@members.14 //@members.15" parents="//@members.3 //@members.94"/>
74 <members age="208" children="//@members.13 //@members.23 //@members.41 //@members.61 //@members.77" parents="//@members.18 //@members.59"/>
75 <members age="52" children="//@members.2 //@members.30 //@members.34 //@members.75" parents="//@members.3 //@members.40"/>
76 <members parents="//@members.9 //@members.62"/>
77 <members parents="//@members.30 //@members.95"/>
78 <members age="26" children="//@members.76" parents="//@members.72 //@members.91"/>
79 <members age="13" children="//@members.52" parents="//@members.16 //@members.75"/>
80 <members age="195" children="//@members.28 //@members.39 //@members.43 //@members.61 //@members.62 //@members.80 //@members.83" parents="//@members.59 //@members.71"/>
81 <members age="91" children="//@members.25 //@members.54 //@members.64" parents="//@members.16 //@members.68"/>
82 <members age="39" children="//@members.0" parents="//@members.36 //@members.64"/>
83 <members age="169" children="//@members.7 //@members.10 //@members.11 //@members.43 //@members.48 //@members.85" parents="//@members.61 //@members.77"/>
84 <members parents="//@members.49 //@members.92"/>
85 <members parents="//@members.11 //@members.12"/>
86 <members age="13" children="//@members.5" parents="//@members.4 //@members.77"/>
87 <members age="39" children="//@members.29 //@members.44 //@members.69" parents="//@members.40 //@members.91"/>
88 <members age="130" children="//@members.3 //@members.13 //@members.16 //@members.24 //@members.35 //@members.36 //@members.45 //@members.50" parents="//@members.11 //@members.80"/>
89 <members parents="//@members.18 //@members.44"/>
90 <members age="39" children="//@members.4 //@members.20" parents="//@members.43 //@members.55"/>
91 <members age="13" children="//@members.37" parents="//@members.3 //@members.12"/>
92 <members parents="//@members.21 //@members.23"/>
93 <members age="26" children="//@members.30 //@members.56 //@members.93" parents="//@members.40 //@members.43"/>
94 <members age="65" children="//@members.1 //@members.27 //@members.75 //@members.84" parents="//@members.40 //@members.61"/>
95 <members age="26" children="//@members.22 //@members.44 //@members.81" parents="//@members.16 //@members.45"/>
96 <members age="13" children="//@members.32" parents="//@members.9 //@members.90"/>
97 <members age="65" children="//@members.12 //@members.65 //@members.69 //@members.70 //@members.97" parents="//@members.16 //@members.43"/>
98 <members age="13" children="//@members.67 //@members.74" parents="//@members.9 //@members.11"/>
99 <members parents="//@members.49 //@members.97"/>
100 <members age="26" children="//@members.21 //@members.31 //@members.96" parents="//@members.24 //@members.94"/>
101 <members parents="//@members.4 //@members.27"/>
102 <members age="13" children="//@members.32" parents="//@members.27 //@members.62"/>
103</familytree:FamilyTree>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/7_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/7_1.xmi
new file mode 100644
index 00000000..3db68771
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/7_1.xmi
@@ -0,0 +1,103 @@
1<?xml version="1.0" encoding="ASCII"?>
2<familytree:FamilyTree xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:familytree="http://www.example.org/familytree" xsi:schemaLocation="http://www.example.org/familytree ../case.study.familyTree.model/model/familytree.ecore">
3 <members age="13" children="//@members.73 //@members.99" parents="//@members.65 //@members.71"/>
4 <members age="65" children="//@members.66" parents="//@members.48 //@members.97"/>
5 <members age="117" children="//@members.11 //@members.19 //@members.38 //@members.52 //@members.60 //@members.79 //@members.88 //@members.93 //@members.97" parents="//@members.3 //@members.44"/>
6 <members age="143" children="//@members.2 //@members.19 //@members.21 //@members.37 //@members.44 //@members.71 //@members.75 //@members.88" parents="//@members.27 //@members.48"/>
7 <members age="13" children="//@members.51" parents="//@members.67 //@members.97"/>
8 <members parents="//@members.16 //@members.44"/>
9 <members parents="//@members.84"/>
10 <members age="13" children="//@members.18 //@members.25" parents="//@members.44 //@members.57"/>
11 <members age="65" children="//@members.24 //@members.38 //@members.65 //@members.67 //@members.89" parents="//@members.19 //@members.27"/>
12 <members parents="//@members.21 //@members.53"/>
13 <members parents="//@members.14 //@members.80"/>
14 <members age="39" children="//@members.16 //@members.33 //@members.70" parents="//@members.2 //@members.27"/>
15 <members age="39" children="//@members.75 //@members.85" parents="//@members.19 //@members.89"/>
16 <members age="39" children="//@members.16 //@members.24 //@members.43 //@members.59 //@members.68" parents="//@members.17 //@members.91"/>
17 <members age="13" children="//@members.10 //@members.77 //@members.98" parents="//@members.38 //@members.72"/>
18 <members parents="//@members.35 //@members.85"/>
19 <members age="13" children="//@members.5" parents="//@members.11 //@members.13"/>
20 <members age="65" children="//@members.13 //@members.36 //@members.49 //@members.59 //@members.61 //@members.87" parents="//@members.44 //@members.71"/>
21 <members parents="//@members.7 //@members.62"/>
22 <members age="104" children="//@members.8 //@members.12 //@members.50 //@members.57 //@members.64 //@members.84 //@members.86" parents="//@members.2 //@members.3"/>
23 <members age="13" children="//@members.56" parents="//@members.58 //@members.87"/>
24 <members age="13" children="//@members.9" parents="//@members.3 //@members.62"/>
25 <members parents="//@members.30 //@members.35"/>
26 <members age="13" children="//@members.26 //@members.31 //@members.99" parents="//@members.43 //@members.52"/>
27 <members age="13" children="//@members.55 //@members.90" parents="//@members.8 //@members.13"/>
28 <members parents="//@members.7 //@members.92"/>
29 <members parents="//@members.23 //@members.87"/>
30 <members age="156" children="//@members.3 //@members.8 //@members.11 //@members.44 //@members.57" parents="//@members.48 //@members.69"/>
31 <members parents="//@members.71 //@members.88"/>
32 <members age="221" children="//@members.69 //@members.91"/>
33 <members age="65" children="//@members.22 //@members.66 //@members.90 //@members.92" parents="//@members.64 //@members.88"/>
34 <members parents="//@members.23 //@members.71"/>
35 <members parents="//@members.70 //@members.86"/>
36 <members age="13" children="//@members.34 //@members.94" parents="//@members.11 //@members.86"/>
37 <members parents="//@members.33 //@members.71"/>
38 <members age="13" children="//@members.15 //@members.22" parents="//@members.86 //@members.87"/>
39 <members parents="//@members.17 //@members.86"/>
40 <members parents="//@members.3 //@members.71"/>
41 <members age="26" children="//@members.14" parents="//@members.2 //@members.8"/>
42 <members parents="//@members.43 //@members.86"/>
43 <members age="26" children="//@members.81" parents="//@members.64 //@members.83"/>
44 <members age="13" children="//@members.76" parents="//@members.63 //@members.70"/>
45 <members parents="//@members.57 //@members.86"/>
46 <members age="26" children="//@members.23 //@members.39 //@members.96" parents="//@members.13 //@members.52"/>
47 <members age="130" children="//@members.2 //@members.5 //@members.7 //@members.17 //@members.49" parents="//@members.3 //@members.27"/>
48 <members parents="//@members.65 //@members.71"/>
49 <members parents="//@members.86 //@members.88"/>
50 <members parents="//@members.88 //@members.97"/>
51 <members age="169" children="//@members.1 //@members.3 //@members.27 //@members.54 //@members.97" parents="//@members.69 //@members.74"/>
52 <members age="52" children="//@members.62 //@members.63" parents="//@members.17 //@members.44"/>
53 <members age="26" children="//@members.53" parents="//@members.19 //@members.74"/>
54 <members parents="//@members.4 //@members.87"/>
55 <members age="39" children="//@members.23 //@members.43 //@members.78 //@members.80" parents="//@members.2 //@members.74"/>
56 <members age="13" children="//@members.9 //@members.95" parents="//@members.50 //@members.67"/>
57 <members age="13" children="//@members.76" parents="//@members.48 //@members.78"/>
58 <members parents="//@members.24 //@members.84"/>
59 <members parents="//@members.20 //@members.71"/>
60 <members age="91" children="//@members.7 //@members.42 //@members.64" parents="//@members.19 //@members.27"/>
61 <members age="26" children="//@members.20" parents="//@members.74 //@members.97"/>
62 <members parents="//@members.13 //@members.17"/>
63 <members parents="//@members.2 //@members.81"/>
64 <members parents="//@members.17 //@members.87"/>
65 <members age="39" children="//@members.18 //@members.21 //@members.70" parents="//@members.49 //@members.66"/>
66 <members age="26" children="//@members.41 //@members.94" parents="//@members.49 //@members.97"/>
67 <members age="78" children="//@members.30 //@members.40 //@members.83" parents="//@members.19 //@members.57"/>
68 <members age="26" children="//@members.0 //@members.45" parents="//@members.8 //@members.86"/>
69 <members age="52" children="//@members.62 //@members.96" parents="//@members.1 //@members.30"/>
70 <members age="26" children="//@members.4 //@members.53 //@members.77" parents="//@members.8 //@members.97"/>
71 <members parents="//@members.13 //@members.87"/>
72 <members age="195" children="//@members.27 //@members.48 //@members.74" parents="//@members.29 //@members.91"/>
73 <members age="26" children="//@members.32 //@members.41" parents="//@members.11 //@members.62"/>
74 <members age="78" children="//@members.0 //@members.17 //@members.28 //@members.31 //@members.34 //@members.37 //@members.45 //@members.56 //@members.84" parents="//@members.3 //@members.88"/>
75 <members age="26" children="//@members.14" parents="//@members.86 //@members.97"/>
76 <members parents="//@members.0 //@members.86"/>
77 <members age="182" children="//@members.48 //@members.50 //@members.52 //@members.58 //@members.87 //@members.98" parents="//@members.69 //@members.91"/>
78 <members age="26" children="//@members.80" parents="//@members.3 //@members.12"/>
79 <members parents="//@members.41 //@members.54"/>
80 <members parents="//@members.14 //@members.67"/>
81 <members age="26" children="//@members.54 //@members.81" parents="//@members.52 //@members.88"/>
82 <members parents="//@members.2 //@members.81"/>
83 <members age="13" children="//@members.10" parents="//@members.52 //@members.75"/>
84 <members age="13" children="//@members.60 //@members.79" parents="//@members.40 //@members.78"/>
85 <members parents="//@members.84 //@members.86"/>
86 <members age="39" children="//@members.40" parents="//@members.64 //@members.88"/>
87 <members age="13" children="//@members.6 //@members.55 //@members.82" parents="//@members.19 //@members.71"/>
88 <members age="13" children="//@members.15" parents="//@members.12 //@members.97"/>
89 <members age="65" children="//@members.32 //@members.33 //@members.35 //@members.36 //@members.39 //@members.42 //@members.46 //@members.65 //@members.72 //@members.73 //@members.82 //@members.89" parents="//@members.19 //@members.91"/>
90 <members age="26" children="//@members.20 //@members.26 //@members.35 //@members.51 //@members.61 //@members.68 //@members.93" parents="//@members.17 //@members.74"/>
91 <members age="91" children="//@members.28 //@members.30 //@members.46 //@members.47 //@members.71 //@members.78 //@members.83" parents="//@members.2 //@members.3"/>
92 <members age="52" children="//@members.12" parents="//@members.8 //@members.86"/>
93 <members parents="//@members.24 //@members.30"/>
94 <members age="208" children="//@members.13 //@members.69 //@members.74 //@members.86 //@members.92 //@members.95" parents="//@members.29"/>
95 <members age="13" children="//@members.25" parents="//@members.30 //@members.91"/>
96 <members parents="//@members.2 //@members.87"/>
97 <members parents="//@members.33 //@members.63"/>
98 <members parents="//@members.53 //@members.91"/>
99 <members parents="//@members.43 //@members.66"/>
100 <members age="78" children="//@members.1 //@members.4 //@members.47 //@members.58 //@members.63 //@members.67 //@members.72 //@members.85" parents="//@members.2 //@members.48"/>
101 <members parents="//@members.14 //@members.74"/>
102 <members parents="//@members.0 //@members.23"/>
103</familytree:FamilyTree>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/8_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/8_1.xmi
new file mode 100644
index 00000000..383b6c76
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/8_1.xmi
@@ -0,0 +1,103 @@
1<?xml version="1.0" encoding="ASCII"?>
2<familytree:FamilyTree xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:familytree="http://www.example.org/familytree" xsi:schemaLocation="http://www.example.org/familytree ../case.study.familyTree.model/model/familytree.ecore">
3 <members age="78" children="//@members.27 //@members.77 //@members.79" parents="//@members.40 //@members.61"/>
4 <members age="208" children="//@members.6 //@members.7 //@members.19 //@members.30 //@members.37 //@members.61 //@members.63" parents="//@members.71 //@members.86"/>
5 <members age="26" children="//@members.26" parents="//@members.42 //@members.61"/>
6 <members age="117" children="//@members.61" parents="//@members.7 //@members.70"/>
7 <members age="39" children="//@members.11 //@members.34 //@members.96" parents="//@members.70 //@members.71"/>
8 <members age="13" children="//@members.69" parents="//@members.62 //@members.66"/>
9 <members age="169" children="//@members.42 //@members.43 //@members.65 //@members.68 //@members.78 //@members.87 //@members.89 //@members.99" parents="//@members.1 //@members.19"/>
10 <members age="195" children="//@members.3 //@members.19 //@members.20 //@members.25 //@members.55 //@members.57 //@members.87 //@members.95 //@members.97" parents="//@members.1 //@members.71"/>
11 <members age="13" children="//@members.77" parents="//@members.78 //@members.95"/>
12 <members parents="//@members.15 //@members.17"/>
13 <members age="52" children="//@members.94" parents="//@members.42 //@members.57"/>
14 <members parents="//@members.4 //@members.46"/>
15 <members parents="//@members.74 //@members.86"/>
16 <members parents="//@members.38 //@members.54"/>
17 <members age="13" children="//@members.82" parents="//@members.17 //@members.34"/>
18 <members age="65" children="//@members.9 //@members.28" parents="//@members.19 //@members.70"/>
19 <members parents="//@members.27 //@members.50"/>
20 <members age="52" children="//@members.9 //@members.14 //@members.49" parents="//@members.31 //@members.89"/>
21 <members age="247" children="//@members.71 //@members.86"/>
22 <members age="182" children="//@members.6 //@members.15 //@members.30 //@members.46 //@members.70 //@members.93 //@members.98 //@members.99" parents="//@members.1 //@members.7"/>
23 <members age="39" children="//@members.66" parents="//@members.7 //@members.32"/>
24 <members parents="//@members.61 //@members.74"/>
25 <members age="91" children="//@members.41 //@members.83 //@members.85 //@members.96 //@members.98" parents="//@members.42 //@members.74"/>
26 <members parents="//@members.40 //@members.83"/>
27 <members parents="//@members.55 //@members.57"/>
28 <members age="39" children="//@members.81" parents="//@members.7 //@members.63"/>
29 <members age="13" children="//@members.76" parents="//@members.2 //@members.97"/>
30 <members age="65" children="//@members.16 //@members.34 //@members.43 //@members.67 //@members.79" parents="//@members.0 //@members.41"/>
31 <members age="52" children="//@members.55 //@members.62 //@members.94" parents="//@members.15 //@members.42"/>
32 <members parents="//@members.42 //@members.56"/>
33 <members age="13" children="//@members.51" parents="//@members.1 //@members.19"/>
34 <members age="65" children="//@members.17 //@members.38 //@members.62 //@members.73" parents="//@members.42 //@members.71"/>
35 <members age="52" children="//@members.20 //@members.92" parents="//@members.70 //@members.89"/>
36 <members age="13" children="//@members.82" parents="//@members.53 //@members.97"/>
37 <members age="26" children="//@members.14" parents="//@members.4 //@members.27"/>
38 <members age="39" children="//@members.50 //@members.53 //@members.59" parents="//@members.70 //@members.90"/>
39 <members age="26" children="//@members.75" parents="//@members.41 //@members.87"/>
40 <members parents="//@members.1 //@members.61"/>
41 <members age="13" children="//@members.13" parents="//@members.31 //@members.71"/>
42 <members parents="//@members.57 //@members.75"/>
43 <members age="91" children="//@members.0 //@members.23 //@members.44" parents="//@members.61 //@members.70"/>
44 <members age="78" children="//@members.27 //@members.36 //@members.58 //@members.59 //@members.76" parents="//@members.22 //@members.87"/>
45 <members age="117" children="//@members.2 //@members.10 //@members.22 //@members.28 //@members.29 //@members.31 //@members.49 //@members.74" parents="//@members.6 //@members.99"/>
46 <members age="52" children="//@members.69 //@members.85" parents="//@members.6 //@members.27"/>
47 <members parents="//@members.40 //@members.50"/>
48 <members parents="//@members.47 //@members.78"/>
49 <members age="13" children="//@members.11 //@members.51" parents="//@members.19 //@members.81"/>
50 <members age="13" children="//@members.45 //@members.60 //@members.91" parents="//@members.90 //@members.96"/>
51 <members parents="//@members.54 //@members.75"/>
52 <members age="39" children="//@members.64" parents="//@members.17 //@members.42"/>
53 <members age="13" children="//@members.16 //@members.44" parents="//@members.35 //@members.64"/>
54 <members parents="//@members.30 //@members.46"/>
55 <members parents="//@members.89 //@members.98"/>
56 <members age="26" children="//@members.33 //@members.80" parents="//@members.35 //@members.85"/>
57 <members age="13" children="//@members.13 //@members.48" parents="//@members.68 //@members.78"/>
58 <members age="13" children="//@members.24" parents="//@members.7 //@members.28"/>
59 <members age="39" children="//@members.29 //@members.66 //@members.92" parents="//@members.57 //@members.93"/>
60 <members age="65" children="//@members.10 //@members.24 //@members.39 //@members.56 //@members.80 //@members.83" parents="//@members.7 //@members.70"/>
61 <members age="13" children="//@members.73" parents="//@members.41 //@members.88"/>
62 <members parents="//@members.35 //@members.41"/>
63 <members parents="//@members.47 //@members.96"/>
64 <members age="104" children="//@members.0 //@members.2 //@members.21 //@members.37 //@members.40 //@members.88" parents="//@members.1 //@members.3"/>
65 <members age="26" children="//@members.5" parents="//@members.28 //@members.31"/>
66 <members age="52" children="//@members.25" parents="//@members.1 //@members.99"/>
67 <members age="26" children="//@members.50" parents="//@members.49 //@members.72"/>
68 <members parents="//@members.6 //@members.92"/>
69 <members age="26" children="//@members.5" parents="//@members.20 //@members.56"/>
70 <members parents="//@members.27 //@members.90"/>
71 <members age="26" children="//@members.54" parents="//@members.6 //@members.86"/>
72 <members parents="//@members.5 //@members.43"/>
73 <members age="130" children="//@members.3 //@members.4 //@members.15 //@members.32 //@members.35 //@members.40 //@members.57 //@members.74 //@members.90" parents="//@members.19 //@members.93"/>
74 <members age="221" children="//@members.1 //@members.4 //@members.7 //@members.31 //@members.38" parents="//@members.18 //@members.86"/>
75 <members age="39" children="//@members.64" parents="//@members.89 //@members.93"/>
76 <members parents="//@members.31 //@members.58"/>
77 <members age="104" children="//@members.12 //@members.21 //@members.22 //@members.90" parents="//@members.42 //@members.70"/>
78 <members age="13" children="//@members.39 //@members.48" parents="//@members.36 //@members.79"/>
79 <members parents="//@members.26 //@members.41"/>
80 <members parents="//@members.0 //@members.8"/>
81 <members age="26" children="//@members.8 //@members.45 //@members.54" parents="//@members.6 //@members.95"/>
82 <members age="26" children="//@members.75" parents="//@members.0 //@members.27"/>
83 <members parents="//@members.53 //@members.57"/>
84 <members age="26" children="//@members.46" parents="//@members.25 //@members.86"/>
85 <members parents="//@members.14 //@members.33"/>
86 <members age="13" children="//@members.23" parents="//@members.22 //@members.57"/>
87 <members parents="//@members.93"/>
88 <members age="39" children="//@members.53" parents="//@members.22 //@members.43"/>
89 <members age="234" children="//@members.1 //@members.12 //@members.68 //@members.71 //@members.81" parents="//@members.18"/>
90 <members age="91" children="//@members.36 //@members.41" parents="//@members.6 //@members.7"/>
91 <members age="26" children="//@members.58" parents="//@members.61 //@members.90"/>
92 <members age="65" children="//@members.17 //@members.32 //@members.52 //@members.72" parents="//@members.6 //@members.90"/>
93 <members age="78" children="//@members.35 //@members.47 //@members.67 //@members.88 //@members.89" parents="//@members.70 //@members.74"/>
94 <members parents="//@members.47 //@members.96"/>
95 <members age="13" children="//@members.65" parents="//@members.32 //@members.56"/>
96 <members age="143" children="//@members.56 //@members.70 //@members.72 //@members.84 //@members.95" parents="//@members.19 //@members.99"/>
97 <members age="39" children="//@members.97" parents="//@members.10 //@members.28"/>
98 <members age="39" children="//@members.8 //@members.78" parents="//@members.7 //@members.93"/>
99 <members age="26" children="//@members.47 //@members.60 //@members.91" parents="//@members.4 //@members.22"/>
100 <members age="26" children="//@members.26 //@members.33" parents="//@members.7 //@members.94"/>
101 <members age="13" children="//@members.52" parents="//@members.19 //@members.22"/>
102 <members age="156" children="//@members.42 //@members.63 //@members.93" parents="//@members.6 //@members.19"/>
103</familytree:FamilyTree>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/9_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/9_1.xmi
new file mode 100644
index 00000000..8b884bb4
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTree/9_1.xmi
@@ -0,0 +1,103 @@
1<?xml version="1.0" encoding="ASCII"?>
2<familytree:FamilyTree xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:familytree="http://www.example.org/familytree" xsi:schemaLocation="http://www.example.org/familytree ../case.study.familyTree.model/model/familytree.ecore">
3 <members age="13" children="//@members.38" parents="//@members.12 //@members.73"/>
4 <members age="78" children="//@members.25 //@members.35 //@members.70" parents="//@members.4 //@members.62"/>
5 <members age="52" children="//@members.82" parents="//@members.9 //@members.40"/>
6 <members parents="//@members.7 //@members.59"/>
7 <members age="91" children="//@members.1 //@members.16 //@members.29 //@members.94" parents="//@members.13 //@members.15"/>
8 <members age="78" children="//@members.70" parents="//@members.23 //@members.64"/>
9 <members age="26" children="//@members.8 //@members.68" parents="//@members.49 //@members.74"/>
10 <members age="13" children="//@members.3 //@members.80" parents="//@members.49 //@members.54"/>
11 <members age="13" children="//@members.21 //@members.48" parents="//@members.6 //@members.84"/>
12 <members age="117" children="//@members.2 //@members.42 //@members.58 //@members.61 //@members.83" parents="//@members.10 //@members.84"/>
13 <members age="130" children="//@members.9 //@members.86 //@members.87" parents="//@members.53 //@members.88"/>
14 <members parents="//@members.78 //@members.90"/>
15 <members age="78" children="//@members.0 //@members.83" parents="//@members.88 //@members.95"/>
16 <members age="156" children="//@members.4 //@members.44 //@members.62 //@members.87" parents="//@members.15 //@members.73"/>
17 <members parents="//@members.63 //@members.69"/>
18 <members age="221" children="//@members.4 //@members.13 //@members.35 //@members.73 //@members.78 //@members.88 //@members.95 //@members.97" parents="//@members.17 //@members.54"/>
19 <members age="13" children="//@members.37" parents="//@members.4 //@members.35"/>
20 <members age="247" children="//@members.15 //@members.54 //@members.71"/>
21 <members age="65" children="//@members.58 //@members.89" parents="//@members.67 //@members.88"/>
22 <members age="26" children="//@members.98" parents="//@members.56 //@members.82"/>
23 <members age="13" children="//@members.68" parents="//@members.46 //@members.95"/>
24 <members parents="//@members.8 //@members.75"/>
25 <members age="169" children="//@members.69 //@members.93 //@members.95 //@members.99" parents="//@members.53 //@members.73"/>
26 <members age="117" children="//@members.5 //@members.33 //@members.39 //@members.45 //@members.47 //@members.90" parents="//@members.50 //@members.76"/>
27 <members age="26" children="//@members.30 //@members.86" parents="//@members.49 //@members.66"/>
28 <members parents="//@members.1 //@members.88"/>
29 <members parents="//@members.98"/>
30 <members parents="//@members.28 //@members.35"/>
31 <members age="13" children="//@members.27" parents="//@members.29 //@members.97"/>
32 <members age="26" children="//@members.28" parents="//@members.4 //@members.35"/>
33 <members parents="//@members.24 //@members.35"/>
34 <members parents="//@members.75 //@members.77"/>
35 <members age="91" children="//@members.67" parents="//@members.55 //@members.87"/>
36 <members parents="//@members.23 //@members.82"/>
37 <members parents="//@members.59 //@members.86"/>
38 <members age="39" children="//@members.16 //@members.27 //@members.29 //@members.30" parents="//@members.1 //@members.15"/>
39 <members parents="//@members.53 //@members.73"/>
40 <members parents="//@members.16 //@members.78"/>
41 <members parents="//@members.0 //@members.43"/>
42 <members age="26" children="//@members.51" parents="//@members.23 //@members.50"/>
43 <members age="65" children="//@members.2 //@members.43" parents="//@members.52 //@members.87"/>
44 <members parents="//@members.88 //@members.95"/>
45 <members age="26" children="//@members.75" parents="//@members.9 //@members.62"/>
46 <members age="13" children="//@members.38" parents="//@members.40 //@members.73"/>
47 <members age="13" children="//@members.72" parents="//@members.13 //@members.50"/>
48 <members age="13" children="//@members.65" parents="//@members.23 //@members.83"/>
49 <members age="117" children="//@members.20 //@members.47 //@members.48" parents="//@members.55 //@members.73"/>
50 <members age="104" children="//@members.92" parents="//@members.23 //@members.46"/>
51 <members parents="//@members.8 //@members.46"/>
52 <members age="156" children="//@members.6 //@members.7 //@members.24 //@members.62 //@members.81 //@members.84" parents="//@members.53 //@members.78"/>
53 <members age="130" children="//@members.23 //@members.39 //@members.44 //@members.60" parents="//@members.55 //@members.78"/>
54 <members age="13" children="//@members.81" parents="//@members.39 //@members.61"/>
55 <members age="78" children="//@members.40" parents="//@members.53 //@members.92"/>
56 <members age="182" children="//@members.10 //@members.22 //@members.36 //@members.49 //@members.52 //@members.66 //@members.76 //@members.84" parents="//@members.73 //@members.78"/>
57 <members age="234" children="//@members.7 //@members.15 //@members.78 //@members.94" parents="//@members.17"/>
58 <members age="143" children="//@members.32 //@members.46 //@members.50 //@members.59" parents="//@members.73 //@members.76"/>
59 <members age="39" children="//@members.19" parents="//@members.59 //@members.73"/>
60 <members age="13" children="//@members.71" parents="//@members.62 //@members.93"/>
61 <members parents="//@members.9 //@members.18"/>
62 <members age="65" children="//@members.3 //@members.34 //@members.56 //@members.79" parents="//@members.55 //@members.73"/>
63 <members age="13" children="//@members.85" parents="//@members.50 //@members.66"/>
64 <members age="104" children="//@members.51 //@members.92" parents="//@members.9 //@members.66"/>
65 <members age="143" children="//@members.1 //@members.42 //@members.57 //@members.74 //@members.99" parents="//@members.13 //@members.49"/>
66 <members age="13" children="//@members.14" parents="//@members.69 //@members.73"/>
67 <members age="91" children="//@members.5" parents="//@members.95 //@members.97"/>
68 <members parents="//@members.45 //@members.97"/>
69 <members age="117" children="//@members.24 //@members.60 //@members.61 //@members.80" parents="//@members.53 //@members.74"/>
70 <members age="78" children="//@members.18" parents="//@members.32 //@members.69"/>
71 <members parents="//@members.6 //@members.20"/>
72 <members age="91" children="//@members.14 //@members.63 //@members.67" parents="//@members.22 //@members.78"/>
73 <members age="65" children="//@members.75 //@members.79" parents="//@members.1 //@members.5"/>
74 <members parents="//@members.17 //@members.57"/>
75 <members parents="//@members.44 //@members.74"/>
76 <members age="195" children="//@members.0 //@members.13 //@members.22 //@members.36 //@members.43 //@members.46 //@members.53 //@members.55 //@members.56 //@members.59 //@members.63 //@members.76" parents="//@members.15 //@members.78"/>
77 <members age="130" children="//@members.6 //@members.66 //@members.72 //@members.77" parents="//@members.62 //@members.97"/>
78 <members age="13" children="//@members.21 //@members.31" parents="//@members.42 //@members.70"/>
79 <members age="156" children="//@members.23 //@members.55 //@members.90" parents="//@members.53 //@members.73"/>
80 <members age="13" children="//@members.31" parents="//@members.74 //@members.89"/>
81 <members age="208" children="//@members.11 //@members.37 //@members.49 //@members.50 //@members.53 //@members.69 //@members.73 //@members.88" parents="//@members.15 //@members.54"/>
82 <members age="52" children="//@members.91 //@members.96" parents="//@members.59 //@members.70"/>
83 <members parents="//@members.7 //@members.66"/>
84 <members parents="//@members.49 //@members.51"/>
85 <members age="39" children="//@members.19 //@members.33" parents="//@members.2 //@members.89"/>
86 <members age="65" children="//@members.45 //@members.89" parents="//@members.9 //@members.12"/>
87 <members age="130" children="//@members.8 //@members.9 //@members.91" parents="//@members.49 //@members.53"/>
88 <members parents="//@members.60 //@members.87"/>
89 <members age="13" children="//@members.34" parents="//@members.10 //@members.24"/>
90 <members age="104" children="//@members.32 //@members.40 //@members.85" parents="//@members.10 //@members.13"/>
91 <members age="143" children="//@members.10 //@members.12 //@members.18 //@members.25 //@members.41" parents="//@members.15 //@members.78"/>
92 <members age="52" children="//@members.77 //@members.82" parents="//@members.18 //@members.83"/>
93 <members age="13" children="//@members.11" parents="//@members.23 //@members.76"/>
94 <members age="39" children="//@members.93" parents="//@members.79 //@members.84"/>
95 <members age="91" children="//@members.52" parents="//@members.47 //@members.61"/>
96 <members age="26" children="//@members.57 //@members.96" parents="//@members.22 //@members.91"/>
97 <members parents="//@members.4 //@members.54"/>
98 <members age="156" children="//@members.12 //@members.20 //@members.41 //@members.64 //@members.97" parents="//@members.15 //@members.22"/>
99 <members parents="//@members.79 //@members.93"/>
100 <members age="143" children="//@members.28 //@members.64 //@members.65 //@members.74 //@members.98" parents="//@members.15 //@members.95"/>
101 <members age="13" children="//@members.26" parents="//@members.19 //@members.97"/>
102 <members parents="//@members.22 //@members.62"/>
103</familytree:FamilyTree>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/10_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/10_1.xmi
new file mode 100644
index 00000000..c851f77c
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/10_1.xmi
@@ -0,0 +1,103 @@
1<?xml version="1.0" encoding="ASCII"?>
2<familytree:FamilyTree xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:familytree="http://www.example.org/familytree" xsi:schemaLocation="http://www.example.org/familytree ../case.study.familyTree.model/model/familytree.ecore">
3 <members children="//@members.13 //@members.17 //@members.20 //@members.23 //@members.25 //@members.58 //@members.77" parents="//@members.31 //@members.69"/>
4 <members children="//@members.27 //@members.29 //@members.30 //@members.31 //@members.42 //@members.44 //@members.64 //@members.76 //@members.79" parents="//@members.30 //@members.79"/>
5 <members parents="//@members.18 //@members.73"/>
6 <members children="//@members.55 //@members.63" parents="//@members.71 //@members.76"/>
7 <members children="//@members.12 //@members.18 //@members.21 //@members.83" parents="//@members.7 //@members.30"/>
8 <members children="//@members.74 //@members.84" parents="//@members.7 //@members.35"/>
9 <members parents="//@members.9 //@members.67"/>
10 <members children="//@members.4 //@members.5 //@members.8 //@members.33 //@members.45 //@members.91 //@members.96" parents="//@members.44 //@members.79"/>
11 <members children="//@members.15 //@members.33 //@members.45 //@members.58 //@members.76 //@members.99" parents="//@members.7 //@members.44"/>
12 <members children="//@members.6" parents="//@members.18 //@members.29"/>
13 <members parents="//@members.22 //@members.49"/>
14 <members parents="//@members.64 //@members.96"/>
15 <members parents="//@members.4 //@members.20"/>
16 <members parents="//@members.0 //@members.74"/>
17 <members parents="//@members.24 //@members.79"/>
18 <members children="//@members.21 //@members.31 //@members.35 //@members.65 //@members.97" parents="//@members.8 //@members.44"/>
19 <members parents="//@members.33 //@members.96"/>
20 <members parents="//@members.0 //@members.58"/>
21 <members children="//@members.2 //@members.9 //@members.46 //@members.81 //@members.94" parents="//@members.4 //@members.84"/>
22 <members children="//@members.26 //@members.53" parents="//@members.67 //@members.92"/>
23 <members children="//@members.12" parents="//@members.0 //@members.94"/>
24 <members children="//@members.52 //@members.54 //@members.60 //@members.90" parents="//@members.4 //@members.15"/>
25 <members children="//@members.10 //@members.56 //@members.61" parents="//@members.37 //@members.79"/>
26 <members parents="//@members.0 //@members.72"/>
27 <members children="//@members.14" parents="//@members.66 //@members.79"/>
28 <members parents="//@members.0 //@members.75"/>
29 <members children="//@members.46" parents="//@members.19 //@members.76"/>
30 <members parents="//@members.1 //@members.52"/>
31 <members parents="//@members.33 //@members.95"/>
32 <members children="//@members.9 //@members.32" parents="//@members.1 //@members.38"/>
33 <members children="//@members.1 //@members.4 //@members.35 //@members.37 //@members.44 //@members.51 //@members.54 //@members.59 //@members.66 //@members.91 //@members.96" parents="//@members.1 //@members.79"/>
34 <members children="//@members.0 //@members.82 //@members.88 //@members.92" parents="//@members.1 //@members.15"/>
35 <members parents="//@members.29 //@members.75"/>
36 <members children="//@members.16 //@members.28 //@members.34 //@members.72" parents="//@members.7 //@members.8"/>
37 <members parents="//@members.33 //@members.54"/>
38 <members children="//@members.5 //@members.69" parents="//@members.15 //@members.30"/>
39 <members children="//@members.60 //@members.80" parents="//@members.44 //@members.69"/>
40 <members children="//@members.22 //@members.53 //@members.92" parents="//@members.30 //@members.54"/>
41 <members children="//@members.29 //@members.67 //@members.83 //@members.85 //@members.89 //@members.97" parents="//@members.51 //@members.64"/>
42 <members parents="//@members.44 //@members.93"/>
43 <members children="//@members.72 //@members.75" parents="//@members.44 //@members.69"/>
44 <members parents="//@members.56 //@members.95"/>
45 <members parents="//@members.1 //@members.87"/>
46 <members parents="//@members.56 //@members.71"/>
47 <members children="//@members.7 //@members.8 //@members.15 //@members.36 //@members.39 //@members.40 //@members.47 //@members.64 //@members.78 //@members.79 //@members.85 //@members.95" parents="//@members.1 //@members.30"/>
48 <members parents="//@members.7 //@members.8"/>
49 <members parents="//@members.18 //@members.26"/>
50 <members parents="//@members.44 //@members.67"/>
51 <members children="//@members.62 //@members.73" parents="//@members.54 //@members.71"/>
52 <members children="//@members.10" parents="//@members.67 //@members.99"/>
53 <members parents="//@members.72 //@members.74"/>
54 <members children="//@members.38 //@members.69 //@members.71 //@members.90" parents="//@members.30 //@members.79"/>
55 <members children="//@members.27 //@members.75" parents="//@members.21 //@members.97"/>
56 <members parents="//@members.19 //@members.37"/>
57 <members children="//@members.34 //@members.37 //@members.48 //@members.81 //@members.93 //@members.99" parents="//@members.21 //@members.30"/>
58 <members parents="//@members.3 //@members.71"/>
59 <members children="//@members.41 //@members.43" parents="//@members.22 //@members.82"/>
60 <members parents="//@members.78 //@members.94"/>
61 <members children="//@members.17 //@members.61 //@members.80 //@members.82 //@members.93" parents="//@members.0 //@members.8"/>
62 <members children="//@members.89 //@members.95" parents="//@members.30 //@members.66"/>
63 <members children="//@members.86 //@members.88" parents="//@members.21 //@members.36"/>
64 <members parents="//@members.22 //@members.58"/>
65 <members parents="//@members.48 //@members.76"/>
66 <members parents="//@members.3 //@members.64"/>
67 <members children="//@members.11 //@members.38 //@members.63 //@members.66 //@members.98" parents="//@members.1 //@members.44"/>
68 <members parents="//@members.15 //@members.93"/>
69 <members children="//@members.24 //@members.59 //@members.67" parents="//@members.30 //@members.64"/>
70 <members children="//@members.6 //@members.19 //@members.47 //@members.49" parents="//@members.38 //@members.66"/>
71 <members parents="//@members.84 //@members.85"/>
72 <members children="//@members.0 //@members.36 //@members.40" parents="//@members.35 //@members.51"/>
73 <members/>
74 <members children="//@members.3 //@members.43 //@members.48 //@members.55" parents="//@members.51 //@members.76"/>
75 <members children="//@members.23 //@members.50" parents="//@members.33 //@members.40"/>
76 <members children="//@members.2" parents="//@members.48 //@members.82"/>
77 <members children="//@members.13 //@members.50" parents="//@members.5 //@members.79"/>
78 <members children="//@members.25 //@members.32" parents="//@members.40 //@members.52"/>
79 <members children="//@members.3 //@members.26 //@members.62 //@members.71 //@members.87" parents="//@members.1 //@members.8"/>
80 <members parents="//@members.0 //@members.84"/>
81 <members children="//@members.57" parents="//@members.44 //@members.91"/>
82 <members children="//@members.1 //@members.7 //@members.14 //@members.22 //@members.24 //@members.30 //@members.51 //@members.74 //@members.87" parents="//@members.1 //@members.44"/>
83 <members parents="//@members.36 //@members.58"/>
84 <members parents="//@members.18 //@members.54"/>
85 <members children="//@members.56 //@members.73" parents="//@members.31 //@members.58"/>
86 <members children="//@members.98" parents="//@members.4 //@members.38"/>
87 <members children="//@members.18 //@members.68 //@members.77" parents="//@members.5 //@members.99"/>
88 <members children="//@members.68" parents="//@members.38 //@members.44"/>
89 <members parents="//@members.60 //@members.91"/>
90 <members children="//@members.42" parents="//@members.76 //@members.79"/>
91 <members parents="//@members.31 //@members.60"/>
92 <members parents="//@members.38 //@members.59"/>
93 <members children="//@members.94" parents="//@members.21 //@members.51"/>
94 <members children="//@members.78 //@members.86" parents="//@members.7 //@members.30"/>
95 <members children="//@members.19" parents="//@members.31 //@members.37"/>
96 <members children="//@members.39 //@members.65" parents="//@members.54 //@members.58"/>
97 <members children="//@members.20 //@members.57" parents="//@members.18 //@members.90"/>
98 <members children="//@members.28 //@members.41" parents="//@members.44 //@members.59"/>
99 <members children="//@members.11 //@members.16" parents="//@members.7 //@members.30"/>
100 <members children="//@members.52" parents="//@members.15 //@members.38"/>
101 <members parents="//@members.64 //@members.83"/>
102 <members children="//@members.49 //@members.84" parents="//@members.8 //@members.54"/>
103</familytree:FamilyTree>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/1_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/1_1.xmi
new file mode 100644
index 00000000..d4e2a212
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/1_1.xmi
@@ -0,0 +1,103 @@
1<?xml version="1.0" encoding="ASCII"?>
2<familytree:FamilyTree xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:familytree="http://www.example.org/familytree" xsi:schemaLocation="http://www.example.org/familytree ../case.study.familyTree.model/model/familytree.ecore">
3 <members children="//@members.49 //@members.62 //@members.64 //@members.72 //@members.94 //@members.95" parents="//@members.37 //@members.50"/>
4 <members parents="//@members.53 //@members.55"/>
5 <members parents="//@members.24 //@members.72"/>
6 <members parents="//@members.24 //@members.35"/>
7 <members parents="//@members.15 //@members.31"/>
8 <members children="//@members.30 //@members.46 //@members.79 //@members.88 //@members.98" parents="//@members.27 //@members.78"/>
9 <members parents="//@members.64 //@members.87"/>
10 <members children="//@members.36" parents="//@members.9 //@members.28"/>
11 <members children="//@members.80 //@members.93" parents="//@members.40 //@members.77"/>
12 <members children="//@members.7 //@members.41" parents="//@members.43 //@members.94"/>
13 <members parents="//@members.13 //@members.80"/>
14 <members children="//@members.29 //@members.39 //@members.60 //@members.68" parents="//@members.28 //@members.58"/>
15 <members parents="//@members.63 //@members.97"/>
16 <members children="//@members.10 //@members.32 //@members.44" parents="//@members.64 //@members.76"/>
17 <members children="//@members.21 //@members.61 //@members.73" parents="//@members.18 //@members.50"/>
18 <members children="//@members.4 //@members.90" parents="//@members.27 //@members.77"/>
19 <members children="//@members.45 //@members.94" parents="//@members.28 //@members.86"/>
20 <members parents="//@members.31 //@members.57"/>
21 <members children="//@members.14 //@members.65" parents="//@members.43 //@members.77"/>
22 <members children="//@members.82" parents="//@members.78 //@members.91"/>
23 <members parents="//@members.27 //@members.89"/>
24 <members parents="//@members.14 //@members.90"/>
25 <members children="//@members.25 //@members.51 //@members.75" parents="//@members.37 //@members.74"/>
26 <members children="//@members.26" parents="//@members.43 //@members.64"/>
27 <members children="//@members.2 //@members.3 //@members.40 //@members.97" parents="//@members.46 //@members.62"/>
28 <members parents="//@members.22 //@members.27"/>
29 <members parents="//@members.23 //@members.82"/>
30 <members children="//@members.5 //@members.15 //@members.20 //@members.25 //@members.33 //@members.50 //@members.74 //@members.81 //@members.97 //@members.98" parents="//@members.37 //@members.89"/>
31 <members children="//@members.7 //@members.11 //@members.16 //@members.57" parents="//@members.34 //@members.77"/>
32 <members parents="//@members.11 //@members.38"/>
33 <members children="//@members.33 //@members.56 //@members.69 //@members.70" parents="//@members.5 //@members.63"/>
34 <members children="//@members.4 //@members.17 //@members.41" parents="//@members.76 //@members.94"/>
35 <members parents="//@members.13 //@members.93"/>
36 <members parents="//@members.27 //@members.30"/>
37 <members children="//@members.28 //@members.66 //@members.77 //@members.89 //@members.99" parents="//@members.43 //@members.77"/>
38 <members children="//@members.3" parents="//@members.48 //@members.78"/>
39 <members parents="//@members.7 //@members.85"/>
40 <members children="//@members.0 //@members.22 //@members.27 //@members.40 //@members.47 //@members.54 //@members.76 //@members.88 //@members.92 //@members.95 //@members.96" parents="//@members.77 //@members.78"/>
41 <members children="//@members.29 //@members.54 //@members.83 //@members.93" parents="//@members.76 //@members.85"/>
42 <members parents="//@members.11 //@members.61"/>
43 <members children="//@members.8" parents="//@members.24 //@members.37"/>
44 <members children="//@members.83" parents="//@members.9 //@members.31"/>
45 <members parents="//@members.43 //@members.75"/>
46 <members children="//@members.9 //@members.18 //@members.23 //@members.34 //@members.42 //@members.48 //@members.53 //@members.63 //@members.65 //@members.77 //@members.80 //@members.84" parents="//@members.77 //@members.78"/>
47 <members children="//@members.52" parents="//@members.13 //@members.74"/>
48 <members parents="//@members.16 //@members.86"/>
49 <members children="//@members.24" parents="//@members.5 //@members.48"/>
50 <members children="//@members.57" parents="//@members.37 //@members.63"/>
51 <members children="//@members.35 //@members.46 //@members.52 //@members.64 //@members.71" parents="//@members.43 //@members.99"/>
52 <members parents="//@members.0 //@members.77"/>
53 <members children="//@members.0 //@members.14 //@members.53 //@members.85" parents="//@members.27 //@members.65"/>
54 <members children="//@members.67" parents="//@members.22 //@members.96"/>
55 <members parents="//@members.44 //@members.48"/>
56 <members children="//@members.1 //@members.75" parents="//@members.43 //@members.50"/>
57 <members parents="//@members.37 //@members.38"/>
58 <members children="//@members.1" parents="//@members.80 //@members.85"/>
59 <members parents="//@members.30 //@members.74"/>
60 <members children="//@members.17" parents="//@members.28 //@members.47"/>
61 <members children="//@members.11 //@members.86 //@members.87" parents="//@members.65 //@members.77"/>
62 <members/>
63 <members children="//@members.66" parents="//@members.11 //@members.74"/>
64 <members children="//@members.39" parents="//@members.14 //@members.92"/>
65 <members children="//@members.24" parents="//@members.0 //@members.69"/>
66 <members children="//@members.12 //@members.30 //@members.47 //@members.82 //@members.91" parents="//@members.43 //@members.85"/>
67 <members children="//@members.6 //@members.13 //@members.23" parents="//@members.0 //@members.48"/>
68 <members children="//@members.50 //@members.58 //@members.69" parents="//@members.18 //@members.43"/>
69 <members children="//@members.79" parents="//@members.34 //@members.60"/>
70 <members parents="//@members.51 //@members.86"/>
71 <members parents="//@members.11 //@members.86"/>
72 <members children="//@members.62" parents="//@members.30 //@members.65"/>
73 <members children="//@members.81 //@members.96" parents="//@members.30 //@members.94"/>
74 <members parents="//@members.48 //@members.78"/>
75 <members children="//@members.2" parents="//@members.0 //@members.85"/>
76 <members children="//@members.91" parents="//@members.14 //@members.86"/>
77 <members children="//@members.22 //@members.44 //@members.56 //@members.60" parents="//@members.27 //@members.77"/>
78 <members children="//@members.42" parents="//@members.22 //@members.53"/>
79 <members children="//@members.13 //@members.31 //@members.38 //@members.90" parents="//@members.37 //@members.85"/>
80 <members children="//@members.8 //@members.15 //@members.18 //@members.28 //@members.34 //@members.37 //@members.43 //@members.49 //@members.58 //@members.74 //@members.78 //@members.89" parents="//@members.34 //@members.43"/>
81 <members children="//@members.5 //@members.19 //@members.35 //@members.37 //@members.43 //@members.71 //@members.92 //@members.99" parents="//@members.77 //@members.89"/>
82 <members parents="//@members.5 //@members.66"/>
83 <members children="//@members.10 //@members.55" parents="//@members.8 //@members.43"/>
84 <members parents="//@members.27 //@members.70"/>
85 <members children="//@members.26" parents="//@members.19 //@members.63"/>
86 <members parents="//@members.38 //@members.41"/>
87 <members parents="//@members.43 //@members.88"/>
88 <members children="//@members.36 //@members.38 //@members.55 //@members.63 //@members.72 //@members.76" parents="//@members.50 //@members.99"/>
89 <members children="//@members.16 //@members.45 //@members.67 //@members.68 //@members.73" parents="//@members.58 //@members.89"/>
90 <members children="//@members.6" parents="//@members.58 //@members.92"/>
91 <members children="//@members.84" parents="//@members.5 //@members.37"/>
92 <members children="//@members.20 //@members.27 //@members.78 //@members.86" parents="//@members.34 //@members.77"/>
93 <members children="//@members.21" parents="//@members.15 //@members.76"/>
94 <members children="//@members.19" parents="//@members.63 //@members.73"/>
95 <members children="//@members.61 //@members.87" parents="//@members.37 //@members.78"/>
96 <members children="//@members.32" parents="//@members.8 //@members.38"/>
97 <members children="//@members.9 //@members.31 //@members.70" parents="//@members.0 //@members.16"/>
98 <members parents="//@members.0 //@members.37"/>
99 <members children="//@members.51" parents="//@members.37 //@members.70"/>
100 <members children="//@members.12" parents="//@members.24 //@members.27"/>
101 <members parents="//@members.5 //@members.27"/>
102 <members children="//@members.48 //@members.85" parents="//@members.34 //@members.78"/>
103</familytree:FamilyTree>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/2_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/2_1.xmi
new file mode 100644
index 00000000..a2a7156f
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/2_1.xmi
@@ -0,0 +1,103 @@
1<?xml version="1.0" encoding="ASCII"?>
2<familytree:FamilyTree xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:familytree="http://www.example.org/familytree" xsi:schemaLocation="http://www.example.org/familytree ../case.study.familyTree.model/model/familytree.ecore">
3 <members children="//@members.28" parents="//@members.71 //@members.88"/>
4 <members parents="//@members.7 //@members.83"/>
5 <members children="//@members.56" parents="//@members.79 //@members.91"/>
6 <members children="//@members.37 //@members.48" parents="//@members.46 //@members.52"/>
7 <members parents="//@members.15 //@members.29"/>
8 <members parents="//@members.6 //@members.14"/>
9 <members children="//@members.5 //@members.25 //@members.30 //@members.32 //@members.39 //@members.75 //@members.81 //@members.83 //@members.92" parents="//@members.70 //@members.74"/>
10 <members children="//@members.1" parents="//@members.44 //@members.74"/>
11 <members children="//@members.59" parents="//@members.51 //@members.86"/>
12 <members/>
13 <members parents="//@members.46 //@members.58"/>
14 <members children="//@members.26 //@members.47" parents="//@members.41 //@members.75"/>
15 <members children="//@members.20 //@members.88" parents="//@members.17 //@members.93"/>
16 <members children="//@members.26 //@members.50" parents="//@members.29 //@members.79"/>
17 <members children="//@members.5 //@members.38" parents="//@members.77 //@members.78"/>
18 <members children="//@members.4 //@members.35 //@members.45" parents="//@members.46 //@members.95"/>
19 <members children="//@members.64 //@members.67 //@members.78" parents="//@members.46 //@members.95"/>
20 <members children="//@members.12 //@members.98" parents="//@members.70 //@members.75"/>
21 <members children="//@members.57" parents="//@members.61 //@members.99"/>
22 <members parents="//@members.46 //@members.63"/>
23 <members parents="//@members.12 //@members.42"/>
24 <members children="//@members.58" parents="//@members.46 //@members.54"/>
25 <members children="//@members.55" parents="//@members.62 //@members.65"/>
26 <members parents="//@members.45 //@members.93"/>
27 <members parents="//@members.54 //@members.89"/>
28 <members children="//@members.34 //@members.69" parents="//@members.6 //@members.71"/>
29 <members children="//@members.89" parents="//@members.11 //@members.13"/>
30 <members parents="//@members.70 //@members.98"/>
31 <members parents="//@members.0 //@members.87"/>
32 <members children="//@members.4 //@members.13 //@members.42 //@members.44 //@members.80" parents="//@members.74 //@members.79"/>
33 <members children="//@members.43 //@members.52 //@members.77" parents="//@members.6 //@members.34"/>
34 <members children="//@members.65" parents="//@members.69 //@members.70"/>
35 <members children="//@members.57" parents="//@members.6 //@members.68"/>
36 <members children="//@members.36 //@members.82" parents="//@members.46 //@members.86"/>
37 <members children="//@members.30 //@members.68 //@members.77" parents="//@members.25 //@members.95"/>
38 <members parents="//@members.15 //@members.46"/>
39 <members parents="//@members.33 //@members.93"/>
40 <members children="//@members.90" parents="//@members.3 //@members.95"/>
41 <members parents="//@members.14 //@members.96"/>
42 <members children="//@members.94" parents="//@members.6 //@members.70"/>
43 <members children="//@members.64" parents="//@members.93 //@members.99"/>
44 <members children="//@members.11 //@members.52 //@members.91" parents="//@members.79 //@members.95"/>
45 <members children="//@members.20 //@members.62" parents="//@members.29 //@members.86"/>
46 <members children="//@members.45 //@members.96" parents="//@members.30 //@members.71"/>
47 <members children="//@members.7 //@members.53 //@members.58" parents="//@members.29 //@members.93"/>
48 <members children="//@members.23" parents="//@members.15 //@members.43"/>
49 <members children="//@members.3 //@members.10 //@members.15 //@members.16 //@members.19 //@members.21 //@members.33 //@members.35 //@members.54 //@members.60" parents="//@members.71 //@members.74"/>
50 <members children="//@members.49" parents="//@members.11 //@members.71"/>
51 <members parents="//@members.3 //@members.79"/>
52 <members children="//@members.98" parents="//@members.47 //@members.99"/>
53 <members parents="//@members.13 //@members.63"/>
54 <members children="//@members.8 //@members.94" parents="//@members.67 //@members.96"/>
55 <members children="//@members.3 //@members.67 //@members.68 //@members.73 //@members.81" parents="//@members.30 //@members.41"/>
56 <members children="//@members.63" parents="//@members.44 //@members.79"/>
57 <members children="//@members.21 //@members.24 //@members.69 //@members.99" parents="//@members.46 //@members.79"/>
58 <members children="//@members.59" parents="//@members.22 //@members.58"/>
59 <members parents="//@members.2 //@members.73"/>
60 <members parents="//@members.18 //@members.32"/>
61 <members children="//@members.10 //@members.55 //@members.76 //@members.82" parents="//@members.21 //@members.44"/>
62 <members parents="//@members.8 //@members.55"/>
63 <members children="//@members.85" parents="//@members.46 //@members.99"/>
64 <members children="//@members.18" parents="//@members.71 //@members.73"/>
65 <members children="//@members.22" parents="//@members.42 //@members.69"/>
66 <members children="//@members.19 //@members.50" parents="//@members.53 //@members.82"/>
67 <members children="//@members.80" parents="//@members.16 //@members.40"/>
68 <members children="//@members.22 //@members.85" parents="//@members.31 //@members.99"/>
69 <members children="//@members.72" parents="//@members.81 //@members.87"/>
70 <members children="//@members.51" parents="//@members.16 //@members.52"/>
71 <members children="//@members.32 //@members.72" parents="//@members.34 //@members.52"/>
72 <members children="//@members.31 //@members.62 //@members.83 //@members.87" parents="//@members.25 //@members.54"/>
73 <members children="//@members.6 //@members.17 //@members.27 //@members.31 //@members.39 //@members.71 //@members.74 //@members.93" parents="//@members.74 //@members.95"/>
74 <members children="//@members.0 //@members.25 //@members.43 //@members.46 //@members.47 //@members.61 //@members.79 //@members.95 //@members.97 //@members.99" parents="//@members.70 //@members.95"/>
75 <members parents="//@members.66 //@members.68"/>
76 <members children="//@members.56 //@members.61" parents="//@members.52 //@members.93"/>
77 <members children="//@members.6 //@members.7 //@members.29 //@members.46 //@members.70 //@members.88 //@members.95" parents="//@members.70 //@members.95"/>
78 <members children="//@members.11 //@members.17 //@members.96" parents="//@members.6 //@members.93"/>
79 <members children="//@members.87" parents="//@members.58 //@members.92"/>
80 <members children="//@members.14" parents="//@members.30 //@members.34"/>
81 <members children="//@members.14" parents="//@members.16 //@members.91"/>
82 <members children="//@members.2 //@members.13 //@members.29 //@members.41 //@members.48 //@members.53 //@members.54 //@members.93" parents="//@members.71 //@members.95"/>
83 <members parents="//@members.29 //@members.64"/>
84 <members children="//@members.66" parents="//@members.6 //@members.52"/>
85 <members children="//@members.63" parents="//@members.33 //@members.58"/>
86 <members children="//@members.1" parents="//@members.6 //@members.69"/>
87 <members parents="//@members.86 //@members.94"/>
88 <members parents="//@members.60 //@members.65"/>
89 <members children="//@members.8 //@members.33 //@members.42 //@members.84 //@members.90" parents="//@members.92 //@members.95"/>
90 <members children="//@members.28 //@members.66" parents="//@members.69 //@members.76"/>
91 <members children="//@members.0" parents="//@members.12 //@members.74"/>
92 <members children="//@members.24" parents="//@members.26 //@members.98"/>
93 <members parents="//@members.37 //@members.86"/>
94 <members children="//@members.2 //@members.78" parents="//@members.41 //@members.93"/>
95 <members children="//@members.76 //@members.86" parents="//@members.6 //@members.95"/>
96 <members children="//@members.12 //@members.23 //@members.36 //@members.40 //@members.44 //@members.73 //@members.75 //@members.91 //@members.97" parents="//@members.70 //@members.79"/>
97 <members children="//@members.84" parents="//@members.39 //@members.51"/>
98 <members children="//@members.15 //@members.16 //@members.34 //@members.37 //@members.41 //@members.70 //@members.71 //@members.74 //@members.79 //@members.86 //@members.92" parents="//@members.71 //@members.74"/>
99 <members children="//@members.38 //@members.51" parents="//@members.43 //@members.75"/>
100 <members parents="//@members.71 //@members.93"/>
101 <members children="//@members.27 //@members.89" parents="//@members.17 //@members.49"/>
102 <members children="//@members.18 //@members.40 //@members.49 //@members.60 //@members.65" parents="//@members.54 //@members.71"/>
103</familytree:FamilyTree>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/3_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/3_1.xmi
new file mode 100644
index 00000000..d6c73be9
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/3_1.xmi
@@ -0,0 +1,103 @@
1<?xml version="1.0" encoding="ASCII"?>
2<familytree:FamilyTree xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:familytree="http://www.example.org/familytree" xsi:schemaLocation="http://www.example.org/familytree ../case.study.familyTree.model/model/familytree.ecore">
3 <members parents="//@members.7 //@members.77"/>
4 <members children="//@members.20" parents="//@members.55 //@members.83"/>
5 <members children="//@members.90" parents="//@members.63 //@members.76"/>
6 <members children="//@members.80" parents="//@members.26 //@members.27"/>
7 <members parents="//@members.21 //@members.85"/>
8 <members children="//@members.7 //@members.29" parents="//@members.48 //@members.61"/>
9 <members children="//@members.70" parents="//@members.35 //@members.76"/>
10 <members children="//@members.0" parents="//@members.5 //@members.67"/>
11 <members children="//@members.42" parents="//@members.12 //@members.69"/>
12 <members children="//@members.29 //@members.98" parents="//@members.11 //@members.25"/>
13 <members children="//@members.30 //@members.36 //@members.59" parents="//@members.40 //@members.55"/>
14 <members children="//@members.9 //@members.77 //@members.84" parents="//@members.19 //@members.67"/>
15 <members children="//@members.8 //@members.73 //@members.97" parents="//@members.61 //@members.76"/>
16 <members children="//@members.32 //@members.61 //@members.78 //@members.96" parents="//@members.40 //@members.56"/>
17 <members children="//@members.43 //@members.72" parents="//@members.32 //@members.62"/>
18 <members parents="//@members.53 //@members.78"/>
19 <members children="//@members.34 //@members.63" parents="//@members.25 //@members.40"/>
20 <members/>
21 <members parents="//@members.26 //@members.35"/>
22 <members children="//@members.11" parents="//@members.48 //@members.67"/>
23 <members children="//@members.28" parents="//@members.1 //@members.92"/>
24 <members children="//@members.4 //@members.35" parents="//@members.56 //@members.81"/>
25 <members parents="//@members.37 //@members.67"/>
26 <members children="//@members.41 //@members.45 //@members.85 //@members.89" parents="//@members.26 //@members.40"/>
27 <members parents="//@members.55 //@members.87"/>
28 <members children="//@members.9 //@members.16 //@members.50 //@members.70" parents="//@members.92 //@members.93"/>
29 <members children="//@members.3 //@members.18 //@members.23 //@members.35 //@members.57 //@members.75" parents="//@members.54 //@members.64"/>
30 <members children="//@members.3 //@members.28 //@members.45 //@members.52" parents="//@members.56 //@members.93"/>
31 <members parents="//@members.20 //@members.27"/>
32 <members parents="//@members.5 //@members.9"/>
33 <members children="//@members.44 //@members.88" parents="//@members.10 //@members.51"/>
34 <members parents="//@members.75 //@members.92"/>
35 <members children="//@members.14" parents="//@members.13 //@members.35"/>
36 <members parents="//@members.35 //@members.46"/>
37 <members parents="//@members.16 //@members.39"/>
38 <members children="//@members.6 //@members.18 //@members.32 //@members.33 //@members.42 //@members.95" parents="//@members.21 //@members.26"/>
39 <members children="//@members.46" parents="//@members.10 //@members.76"/>
40 <members children="//@members.22 //@members.51 //@members.58 //@members.68 //@members.83" parents="//@members.40 //@members.62"/>
41 <members children="//@members.88" parents="//@members.40 //@members.53"/>
42 <members children="//@members.34 //@members.59 //@members.61" parents="//@members.64 //@members.92"/>
43 <members children="//@members.10 //@members.13 //@members.16 //@members.23 //@members.37 //@members.38 //@members.55 //@members.67 //@members.76 //@members.79 //@members.87 //@members.91 //@members.93 //@members.95" parents="//@members.55 //@members.76"/>
44 <members parents="//@members.23 //@members.54"/>
45 <members children="//@members.43 //@members.80" parents="//@members.8 //@members.35"/>
46 <members parents="//@members.14 //@members.42"/>
47 <members children="//@members.53" parents="//@members.30 //@members.94"/>
48 <members parents="//@members.23 //@members.27"/>
49 <members children="//@members.33 //@members.99" parents="//@members.36 //@members.50"/>
50 <members parents="//@members.52 //@members.68"/>
51 <members children="//@members.5 //@members.19 //@members.62 //@members.67 //@members.75 //@members.84 //@members.89 //@members.92" parents="//@members.55 //@members.64"/>
52 <members children="//@members.69" parents="//@members.50 //@members.62"/>
53 <members children="//@members.46 //@members.49" parents="//@members.25 //@members.81"/>
54 <members children="//@members.30" parents="//@members.37 //@members.67"/>
55 <members children="//@members.47 //@members.86" parents="//@members.27 //@members.84"/>
56 <members children="//@members.15 //@members.38 //@members.65" parents="//@members.44 //@members.68"/>
57 <members children="//@members.26 //@members.41 //@members.77" parents="//@members.64 //@members.76"/>
58 <members children="//@members.1 //@members.10 //@members.24 //@members.40 //@members.48 //@members.56 //@members.64 //@members.73 //@members.76 //@members.92 //@members.94" parents="//@members.40 //@members.76"/>
59 <members children="//@members.13 //@members.21 //@members.27 //@members.58" parents="//@members.55 //@members.76"/>
60 <members parents="//@members.26 //@members.71"/>
61 <members parents="//@members.37 //@members.56"/>
62 <members parents="//@members.10 //@members.39"/>
63 <members parents="//@members.75 //@members.94"/>
64 <members children="//@members.5 //@members.12 //@members.97" parents="//@members.13 //@members.39"/>
65 <members children="//@members.14 //@members.37 //@members.49" parents="//@members.48 //@members.64"/>
66 <members children="//@members.2" parents="//@members.16 //@members.81"/>
67 <members children="//@members.26 //@members.39 //@members.48 //@members.54 //@members.62 //@members.82" parents="//@members.55 //@members.76"/>
68 <members children="//@members.66" parents="//@members.53 //@members.91"/>
69 <members children="//@members.72" parents="//@members.65 //@members.97"/>
70 <members children="//@members.7 //@members.11 //@members.19 //@members.22 //@members.51 //@members.74 //@members.96" parents="//@members.40 //@members.48"/>
71 <members children="//@members.47 //@members.53 //@members.87" parents="//@members.37 //@members.93"/>
72 <members children="//@members.8" parents="//@members.49 //@members.93"/>
73 <members parents="//@members.6 //@members.25"/>
74 <members children="//@members.57" parents="//@members.81 //@members.83"/>
75 <members parents="//@members.14 //@members.66"/>
76 <members parents="//@members.12 //@members.55"/>
77 <members parents="//@members.67 //@members.91"/>
78 <members children="//@members.31 //@members.60" parents="//@members.26 //@members.48"/>
79 <members children="//@members.2 //@members.6 //@members.12 //@members.36 //@members.40 //@members.54 //@members.55 //@members.56 //@members.64 //@members.79 //@members.81 //@members.91 //@members.93" parents="//@members.40 //@members.55"/>
80 <members children="//@members.0" parents="//@members.11 //@members.54"/>
81 <members children="//@members.15" parents="//@members.13 //@members.93"/>
82 <members parents="//@members.40 //@members.76"/>
83 <members parents="//@members.3 //@members.42"/>
84 <members children="//@members.21 //@members.50 //@members.63 //@members.71 //@members.94" parents="//@members.76 //@members.93"/>
85 <members parents="//@members.64 //@members.97"/>
86 <members children="//@members.1 //@members.71" parents="//@members.37 //@members.97"/>
87 <members children="//@members.52" parents="//@members.11 //@members.48"/>
88 <members children="//@members.4" parents="//@members.23 //@members.92"/>
89 <members parents="//@members.52 //@members.95"/>
90 <members children="//@members.24 //@members.90" parents="//@members.40 //@members.68"/>
91 <members children="//@members.99" parents="//@members.30 //@members.38"/>
92 <members parents="//@members.23 //@members.48"/>
93 <members parents="//@members.2 //@members.87"/>
94 <members children="//@members.65 //@members.74" parents="//@members.40 //@members.76"/>
95 <members children="//@members.20 //@members.25 //@members.31 //@members.39 //@members.85" parents="//@members.48 //@members.55"/>
96 <members children="//@members.25 //@members.27 //@members.68 //@members.69 //@members.78 //@members.81" parents="//@members.40 //@members.76"/>
97 <members children="//@members.44 //@members.60" parents="//@members.55 //@members.81"/>
98 <members children="//@members.86 //@members.98" parents="//@members.35 //@members.40"/>
99 <members parents="//@members.13 //@members.67"/>
100 <members children="//@members.66 //@members.82 //@members.83" parents="//@members.12 //@members.61"/>
101 <members parents="//@members.9 //@members.95"/>
102 <members parents="//@members.46 //@members.88"/>
103</familytree:FamilyTree>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/4_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/4_1.xmi
new file mode 100644
index 00000000..c185adfc
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/4_1.xmi
@@ -0,0 +1,103 @@
1<?xml version="1.0" encoding="ASCII"?>
2<familytree:FamilyTree xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:familytree="http://www.example.org/familytree" xsi:schemaLocation="http://www.example.org/familytree ../case.study.familyTree.model/model/familytree.ecore">
3 <members children="//@members.7 //@members.8 //@members.13 //@members.14 //@members.31 //@members.63 //@members.64 //@members.78 //@members.83 //@members.87 //@members.88" parents="//@members.13 //@members.64"/>
4 <members children="//@members.79" parents="//@members.68 //@members.88"/>
5 <members children="//@members.23" parents="//@members.14 //@members.47"/>
6 <members parents="//@members.40 //@members.88"/>
7 <members parents="//@members.66 //@members.73"/>
8 <members parents="//@members.34 //@members.41"/>
9 <members parents="//@members.31 //@members.66"/>
10 <members children="//@members.17 //@members.25 //@members.52 //@members.91" parents="//@members.0 //@members.78"/>
11 <members children="//@members.28 //@members.36 //@members.41" parents="//@members.0 //@members.68"/>
12 <members parents="//@members.37 //@members.48"/>
13 <members children="//@members.30 //@members.69" parents="//@members.15 //@members.87"/>
14 <members children="//@members.17" parents="//@members.37 //@members.92"/>
15 <members children="//@members.24 //@members.54 //@members.56 //@members.99" parents="//@members.35 //@members.78"/>
16 <members children="//@members.0 //@members.53 //@members.64 //@members.68 //@members.71 //@members.72 //@members.78" parents="//@members.0 //@members.64"/>
17 <members children="//@members.2 //@members.89" parents="//@members.0 //@members.52"/>
18 <members children="//@members.10 //@members.75 //@members.87" parents="//@members.72 //@members.87"/>
19 <members children="//@members.38 //@members.59" parents="//@members.21 //@members.83"/>
20 <members parents="//@members.7 //@members.11"/>
21 <members children="//@members.31 //@members.90 //@members.92 //@members.94" parents="//@members.78 //@members.88"/>
22 <members children="//@members.50 //@members.75 //@members.82" parents="//@members.68 //@members.80"/>
23 <members children="//@members.26 //@members.48" parents="//@members.37 //@members.64"/>
24 <members children="//@members.16 //@members.59" parents="//@members.63 //@members.86"/>
25 <members parents="//@members.34 //@members.75"/>
26 <members children="//@members.90" parents="//@members.2 //@members.78"/>
27 <members children="//@members.49" parents="//@members.12 //@members.91"/>
28 <members children="//@members.51" parents="//@members.7 //@members.27"/>
29 <members children="//@members.66 //@members.85" parents="//@members.20 //@members.35"/>
30 <members children="//@members.25 //@members.67 //@members.95" parents="//@members.36 //@members.88"/>
31 <members children="//@members.39 //@members.76" parents="//@members.8 //@members.72"/>
32 <members parents="//@members.35 //@members.78"/>
33 <members children="//@members.84" parents="//@members.10 //@members.43"/>
34 <members children="//@members.6 //@members.44 //@members.62" parents="//@members.0 //@members.18"/>
35 <members parents="//@members.82 //@members.94"/>
36 <members parents="//@members.76 //@members.82"/>
37 <members children="//@members.5 //@members.22" parents="//@members.56 //@members.80"/>
38 <members children="//@members.12 //@members.26 //@members.29 //@members.51 //@members.82 //@members.95" parents="//@members.64 //@members.86"/>
39 <members children="//@members.27 //@members.53 //@members.73 //@members.93" parents="//@members.8 //@members.92"/>
40 <members children="//@members.9 //@members.11 //@members.20 //@members.74 //@members.94" parents="//@members.64 //@members.68"/>
41 <members parents="//@members.16 //@members.75"/>
42 <members parents="//@members.28 //@members.43"/>
43 <members children="//@members.3 //@members.92" parents="//@members.60 //@members.63"/>
44 <members children="//@members.5 //@members.48" parents="//@members.8 //@members.43"/>
45 <members parents="//@members.64 //@members.81"/>
46 <members children="//@members.30 //@members.39 //@members.41 //@members.54 //@members.97" parents="//@members.56 //@members.78"/>
47 <members children="//@members.46" parents="//@members.31 //@members.86"/>
48 <members/>
49 <members children="//@members.57" parents="//@members.44 //@members.68"/>
50 <members children="//@members.2 //@members.77" parents="//@members.52 //@members.92"/>
51 <members children="//@members.9 //@members.49 //@members.61 //@members.67 //@members.97" parents="//@members.20 //@members.41"/>
52 <members parents="//@members.24 //@members.48"/>
53 <members parents="//@members.19 //@members.80"/>
54 <members parents="//@members.25 //@members.35"/>
55 <members children="//@members.14 //@members.47 //@members.55 //@members.66" parents="//@members.7 //@members.78"/>
56 <members parents="//@members.13 //@members.36"/>
57 <members children="//@members.65" parents="//@members.12 //@members.43"/>
58 <members children="//@members.74" parents="//@members.52 //@members.81"/>
59 <members children="//@members.34 //@members.43 //@members.65" parents="//@members.12 //@members.64"/>
60 <members children="//@members.62" parents="//@members.46 //@members.77"/>
61 <members parents="//@members.87 //@members.92"/>
62 <members children="//@members.79" parents="//@members.16 //@members.21"/>
63 <members children="//@members.40" parents="//@members.64 //@members.87"/>
64 <members children="//@members.77" parents="//@members.48 //@members.66"/>
65 <members parents="//@members.31 //@members.57"/>
66 <members children="//@members.21 //@members.40 //@members.69 //@members.81" parents="//@members.0 //@members.68"/>
67 <members children="//@members.0 //@members.13 //@members.20 //@members.35 //@members.37 //@members.42 //@members.56 //@members.60 //@members.72 //@members.86 //@members.96" parents="//@members.0 //@members.13"/>
68 <members children="//@members.85" parents="//@members.54 //@members.56"/>
69 <members children="//@members.4 //@members.6 //@members.61 //@members.70 //@members.83" parents="//@members.26 //@members.52"/>
70 <members parents="//@members.27 //@members.48"/>
71 <members children="//@members.1 //@members.8 //@members.19 //@members.37 //@members.46 //@members.63 //@members.80 //@members.91" parents="//@members.13 //@members.87"/>
72 <members parents="//@members.10 //@members.63"/>
73 <members parents="//@members.66 //@members.92"/>
74 <members children="//@members.73" parents="//@members.13 //@members.78"/>
75 <members children="//@members.15 //@members.28 //@members.80 //@members.96" parents="//@members.13 //@members.64"/>
76 <members children="//@members.4" parents="//@members.36 //@members.71"/>
77 <members parents="//@members.37 //@members.55"/>
78 <members children="//@members.22 //@members.38" parents="//@members.15 //@members.19"/>
79 <members children="//@members.33" parents="//@members.28 //@members.82"/>
80 <members children="//@members.57" parents="//@members.47 //@members.61"/>
81 <members children="//@members.7 //@members.12 //@members.18 //@members.23 //@members.29 //@members.43 //@members.52 //@members.71 //@members.88 //@members.98" parents="//@members.0 //@members.13"/>
82 <members parents="//@members.1 //@members.59"/>
83 <members children="//@members.19 //@members.34 //@members.50 //@members.89" parents="//@members.68 //@members.72"/>
84 <members children="//@members.42 //@members.55" parents="//@members.63 //@members.88"/>
85 <members children="//@members.32 //@members.33 //@members.76 //@members.84" parents="//@members.19 //@members.35"/>
86 <members children="//@members.16 //@members.99" parents="//@members.0 //@members.66"/>
87 <members parents="//@members.30 //@members.82"/>
88 <members parents="//@members.26 //@members.65"/>
89 <members children="//@members.21 //@members.35 //@members.44 //@members.93" parents="//@members.64 //@members.87"/>
90 <members children="//@members.10 //@members.15 //@members.58 //@members.60 //@members.68 //@members.86" parents="//@members.0 //@members.15"/>
91 <members children="//@members.1 //@members.3 //@members.18 //@members.27 //@members.81" parents="//@members.0 //@members.78"/>
92 <members parents="//@members.14 //@members.80"/>
93 <members parents="//@members.18 //@members.23"/>
94 <members children="//@members.24" parents="//@members.7 //@members.68"/>
95 <members children="//@members.11 //@members.36 //@members.47 //@members.58 //@members.70" parents="//@members.18 //@members.40"/>
96 <members children="//@members.98" parents="//@members.36 //@members.86"/>
97 <members children="//@members.32" parents="//@members.18 //@members.37"/>
98 <members parents="//@members.27 //@members.35"/>
99 <members parents="//@members.64 //@members.72"/>
100 <members parents="//@members.43 //@members.48"/>
101 <members parents="//@members.78 //@members.93"/>
102 <members parents="//@members.12 //@members.83"/>
103</familytree:FamilyTree>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/5_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/5_1.xmi
new file mode 100644
index 00000000..0a806b53
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/5_1.xmi
@@ -0,0 +1,103 @@
1<?xml version="1.0" encoding="ASCII"?>
2<familytree:FamilyTree xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:familytree="http://www.example.org/familytree" xsi:schemaLocation="http://www.example.org/familytree ../case.study.familyTree.model/model/familytree.ecore">
3 <members parents="//@members.52 //@members.82"/>
4 <members parents="//@members.40 //@members.94"/>
5 <members children="//@members.3 //@members.16 //@members.47" parents="//@members.86 //@members.96"/>
6 <members children="//@members.79" parents="//@members.2 //@members.11"/>
7 <members children="//@members.65" parents="//@members.13 //@members.99"/>
8 <members parents="//@members.86 //@members.97"/>
9 <members children="//@members.50" parents="//@members.34 //@members.41"/>
10 <members children="//@members.12 //@members.25 //@members.34 //@members.36 //@members.39 //@members.46 //@members.51 //@members.53 //@members.75 //@members.78" parents="//@members.13 //@members.60"/>
11 <members children="//@members.35" parents="//@members.13 //@members.27"/>
12 <members children="//@members.55" parents="//@members.23 //@members.41"/>
13 <members parents="//@members.43 //@members.83"/>
14 <members children="//@members.3 //@members.35" parents="//@members.62 //@members.72"/>
15 <members children="//@members.45 //@members.46 //@members.98 //@members.99" parents="//@members.7 //@members.13"/>
16 <members children="//@members.4 //@members.7 //@members.8 //@members.12 //@members.18 //@members.44 //@members.57 //@members.58 //@members.60 //@members.70 //@members.75 //@members.86 //@members.88 //@members.96" parents="//@members.60 //@members.86"/>
17 <members parents="//@members.49 //@members.61"/>
18 <members parents="//@members.39 //@members.90"/>
19 <members parents="//@members.2 //@members.71"/>
20 <members children="//@members.95" parents="//@members.48 //@members.90"/>
21 <members children="//@members.83 //@members.93" parents="//@members.13 //@members.21"/>
22 <members parents="//@members.22 //@members.52"/>
23 <members children="//@members.37 //@members.48 //@members.90" parents="//@members.32 //@members.97"/>
24 <members children="//@members.18 //@members.22 //@members.70 //@members.92" parents="//@members.51 //@members.60"/>
25 <members children="//@members.19 //@members.81 //@members.82" parents="//@members.21 //@members.60"/>
26 <members children="//@members.9 //@members.28 //@members.33 //@members.66" parents="//@members.72 //@members.88"/>
27 <members parents="//@members.49 //@members.79"/>
28 <members children="//@members.27 //@members.52" parents="//@members.7 //@members.34"/>
29 <members parents="//@members.53 //@members.61"/>
30 <members children="//@members.8" parents="//@members.25 //@members.99"/>
31 <members children="//@members.68" parents="//@members.23 //@members.92"/>
32 <members/>
33 <members children="//@members.42 //@members.67" parents="//@members.60 //@members.92"/>
34 <members parents="//@members.37 //@members.39"/>
35 <members children="//@members.20 //@members.34 //@members.39 //@members.49" parents="//@members.86 //@members.96"/>
36 <members children="//@members.98" parents="//@members.23 //@members.78"/>
37 <members children="//@members.6 //@members.25 //@members.38 //@members.49 //@members.63 //@members.69 //@members.78 //@members.87" parents="//@members.7 //@members.32"/>
38 <members parents="//@members.8 //@members.11"/>
39 <members children="//@members.89 //@members.91" parents="//@members.7 //@members.78"/>
40 <members children="//@members.31" parents="//@members.20 //@members.57"/>
41 <members parents="//@members.34 //@members.58"/>
42 <members children="//@members.15 //@members.31 //@members.54 //@members.61 //@members.84" parents="//@members.7 //@members.32"/>
43 <members children="//@members.1" parents="//@members.47 //@members.51"/>
44 <members children="//@members.6 //@members.9 //@members.97 //@members.99" parents="//@members.51 //@members.78"/>
45 <members parents="//@members.30 //@members.88"/>
46 <members children="//@members.10 //@members.85 //@members.94" parents="//@members.55 //@members.89"/>
47 <members children="//@members.59" parents="//@members.13 //@members.67"/>
48 <members parents="//@members.12 //@members.90"/>
49 <members children="//@members.59 //@members.77 //@members.95" parents="//@members.7 //@members.12"/>
50 <members children="//@members.40" parents="//@members.2 //@members.53"/>
51 <members children="//@members.17" parents="//@members.20 //@members.51"/>
52 <members children="//@members.14 //@members.24" parents="//@members.32 //@members.34"/>
53 <members children="//@members.81" parents="//@members.6 //@members.75"/>
54 <members children="//@members.21 //@members.40 //@members.41 //@members.48 //@members.56 //@members.58 //@members.72 //@members.74 //@members.76 //@members.93" parents="//@members.7 //@members.86"/>
55 <members children="//@members.0 //@members.19 //@members.73 //@members.85" parents="//@members.25 //@members.88"/>
56 <members children="//@members.26 //@members.47" parents="//@members.7 //@members.75"/>
57 <members parents="//@members.39 //@members.60"/>
58 <members children="//@members.43 //@members.64" parents="//@members.9 //@members.71"/>
59 <members parents="//@members.51 //@members.74"/>
60 <members children="//@members.37" parents="//@members.13 //@members.89"/>
61 <members children="//@members.38 //@members.63" parents="//@members.13 //@members.51"/>
62 <members parents="//@members.44 //@members.46"/>
63 <members children="//@members.7 //@members.13 //@members.21 //@members.22 //@members.30 //@members.54 //@members.74 //@members.86 //@members.96" parents="//@members.13 //@members.86"/>
64 <members children="//@members.14 //@members.26" parents="//@members.39 //@members.75"/>
65 <members children="//@members.11 //@members.76" parents="//@members.75 //@members.89"/>
66 <members children="//@members.65" parents="//@members.34 //@members.58"/>
67 <members parents="//@members.55 //@members.83"/>
68 <members parents="//@members.4 //@members.63"/>
69 <members parents="//@members.23 //@members.83"/>
70 <members children="//@members.44" parents="//@members.30 //@members.74"/>
71 <members parents="//@members.28 //@members.97"/>
72 <members children="//@members.71 //@members.88" parents="//@members.34 //@members.96"/>
73 <members children="//@members.80 //@members.84 //@members.89" parents="//@members.13 //@members.21"/>
74 <members children="//@members.16 //@members.55 //@members.77" parents="//@members.69 //@members.74"/>
75 <members children="//@members.11 //@members.23" parents="//@members.51 //@members.75"/>
76 <members parents="//@members.52 //@members.93"/>
77 <members children="//@members.56 //@members.67 //@members.71" parents="//@members.51 //@members.60"/>
78 <members children="//@members.50 //@members.53 //@members.61 //@members.62 //@members.72" parents="//@members.7 //@members.13"/>
79 <members parents="//@members.51 //@members.62"/>
80 <members parents="//@members.46 //@members.71"/>
81 <members children="//@members.33 //@members.36 //@members.41 //@members.91 //@members.97" parents="//@members.7 //@members.34"/>
82 <members children="//@members.24" parents="//@members.3 //@members.97"/>
83 <members parents="//@members.70 //@members.91"/>
84 <members parents="//@members.22 //@members.50"/>
85 <members children="//@members.0" parents="//@members.22 //@members.84"/>
86 <members children="//@members.10 //@members.64 //@members.66 //@members.90" parents="//@members.18 //@members.89"/>
87 <members children="//@members.82" parents="//@members.39 //@members.70"/>
88 <members parents="//@members.43 //@members.52"/>
89 <members children="//@members.2 //@members.5 //@members.13 //@members.32 //@members.51 //@members.60" parents="//@members.13 //@members.60"/>
90 <members parents="//@members.34 //@members.99"/>
91 <members children="//@members.23 //@members.42 //@members.52" parents="//@members.13 //@members.69"/>
92 <members children="//@members.43 //@members.57 //@members.62 //@members.83" parents="//@members.36 //@members.70"/>
93 <members children="//@members.15 //@members.17 //@members.45" parents="//@members.20 //@members.83"/>
94 <members children="//@members.80 //@members.92 //@members.94" parents="//@members.36 //@members.78"/>
95 <members children="//@members.28 //@members.30" parents="//@members.21 //@members.91"/>
96 <members children="//@members.73" parents="//@members.18 //@members.51"/>
97 <members children="//@members.1" parents="//@members.43 //@members.91"/>
98 <members parents="//@members.17 //@members.46"/>
99 <members children="//@members.2 //@members.32 //@members.69" parents="//@members.13 //@members.60"/>
100 <members children="//@members.5 //@members.20 //@members.68 //@members.79" parents="//@members.41 //@members.78"/>
101 <members parents="//@members.12 //@members.33"/>
102 <members children="//@members.4 //@members.27 //@members.87" parents="//@members.12 //@members.41"/>
103</familytree:FamilyTree>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/6_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/6_1.xmi
new file mode 100644
index 00000000..7718a1a4
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/6_1.xmi
@@ -0,0 +1,103 @@
1<?xml version="1.0" encoding="ASCII"?>
2<familytree:FamilyTree xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:familytree="http://www.example.org/familytree" xsi:schemaLocation="http://www.example.org/familytree ../case.study.familyTree.model/model/familytree.ecore">
3 <members children="//@members.16 //@members.22 //@members.25 //@members.30 //@members.67 //@members.96" parents="//@members.49 //@members.53"/>
4 <members parents="//@members.2 //@members.68"/>
5 <members children="//@members.1 //@members.8 //@members.22 //@members.37 //@members.74" parents="//@members.36 //@members.41"/>
6 <members children="//@members.43 //@members.87" parents="//@members.9 //@members.49"/>
7 <members children="//@members.45" parents="//@members.10 //@members.27"/>
8 <members children="//@members.43 //@members.47" parents="//@members.44 //@members.73"/>
9 <members children="//@members.48" parents="//@members.41 //@members.72"/>
10 <members parents="//@members.19 //@members.96"/>
11 <members children="//@members.30 //@members.54 //@members.93" parents="//@members.2 //@members.39"/>
12 <members children="//@members.3 //@members.19 //@members.35 //@members.36 //@members.38 //@members.39 //@members.42 //@members.49 //@members.50 //@members.82 //@members.90 //@members.93 //@members.97" parents="//@members.36 //@members.39"/>
13 <members children="//@members.4 //@members.21 //@members.66" parents="//@members.31 //@members.49"/>
14 <members children="//@members.14 //@members.88" parents="//@members.20 //@members.55"/>
15 <members children="//@members.99" parents="//@members.50 //@members.63"/>
16 <members children="//@members.20" parents="//@members.36 //@members.41"/>
17 <members parents="//@members.11 //@members.69"/>
18 <members parents="//@members.38 //@members.56"/>
19 <members children="//@members.23 //@members.48" parents="//@members.0 //@members.36"/>
20 <members children="//@members.27 //@members.56" parents="//@members.42 //@members.86"/>
21 <members parents="//@members.45 //@members.96"/>
22 <members children="//@members.7" parents="//@members.9 //@members.31"/>
23 <members children="//@members.11 //@members.34 //@members.86" parents="//@members.13 //@members.71"/>
24 <members children="//@members.98" parents="//@members.10 //@members.53"/>
25 <members children="//@members.68" parents="//@members.0 //@members.2"/>
26 <members parents="//@members.16 //@members.71"/>
27 <members children="//@members.69 //@members.77 //@members.94 //@members.96" parents="//@members.61 //@members.97"/>
28 <members parents="//@members.0 //@members.38"/>
29 <members parents="//@members.32 //@members.49"/>
30 <members children="//@members.4 //@members.65" parents="//@members.17 //@members.86"/>
31 <members parents="//@members.61 //@members.88"/>
32 <members parents="//@members.70 //@members.95"/>
33 <members children="//@members.80" parents="//@members.0 //@members.8"/>
34 <members children="//@members.10 //@members.19" parents="//@members.55 //@members.59"/>
35 <members children="//@members.26" parents="//@members.82 //@members.84"/>
36 <members parents="//@members.61 //@members.89"/>
37 <members parents="//@members.20 //@members.67"/>
38 <members parents="//@members.9 //@members.44"/>
39 <members children="//@members.2 //@members.9 //@members.13 //@members.16 //@members.41 //@members.42 //@members.53 //@members.59 //@members.62 //@members.82" parents="//@members.9 //@members.39"/>
40 <members children="//@members.63" parents="//@members.2 //@members.86"/>
41 <members children="//@members.15 //@members.25 //@members.47 //@members.70" parents="//@members.9 //@members.62"/>
42 <members children="//@members.8 //@members.9 //@members.36 //@members.41 //@members.45 //@members.53 //@members.61 //@members.64 //@members.84" parents="//@members.9 //@members.53"/>
43 <members children="//@members.89" parents="//@members.67 //@members.73"/>
44 <members children="//@members.2 //@members.6 //@members.13 //@members.71" parents="//@members.36 //@members.39"/>
45 <members children="//@members.17 //@members.49 //@members.60" parents="//@members.9 //@members.36"/>
46 <members children="//@members.99" parents="//@members.3 //@members.5"/>
47 <members children="//@members.5 //@members.35 //@members.59 //@members.67 //@members.76" parents="//@members.53 //@members.82"/>
48 <members children="//@members.18 //@members.46 //@members.52" parents="//@members.4 //@members.39"/>
49 <members parents="//@members.45 //@members.98"/>
50 <members children="//@members.65 //@members.68" parents="//@members.5 //@members.38"/>
51 <members parents="//@members.6 //@members.16"/>
52 <members children="//@members.0 //@members.3 //@members.10 //@members.26 //@members.97" parents="//@members.9 //@members.42"/>
53 <members children="//@members.12 //@members.55 //@members.88" parents="//@members.9 //@members.54"/>
54 <members parents="//@members.59 //@members.62"/>
55 <members parents="//@members.45 //@members.69"/>
56 <members children="//@members.0 //@members.21 //@members.39 //@members.44 //@members.62 //@members.83 //@members.86 //@members.90 //@members.92" parents="//@members.36 //@members.39"/>
57 <members children="//@members.50" parents="//@members.8 //@members.83"/>
58 <members children="//@members.11 //@members.31 //@members.64" parents="//@members.50 //@members.73"/>
59 <members children="//@members.15 //@members.75" parents="//@members.17 //@members.64"/>
60 <members/>
61 <members parents="//@members.91 //@members.98"/>
62 <members children="//@members.31 //@members.51" parents="//@members.36 //@members.44"/>
63 <members children="//@members.94" parents="//@members.42 //@members.95"/>
64 <members children="//@members.24 //@members.28 //@members.33 //@members.66" parents="//@members.39 //@members.84"/>
65 <members children="//@members.38 //@members.51 //@members.69 //@members.70 //@members.73" parents="//@members.36 //@members.53"/>
66 <members children="//@members.12 //@members.81" parents="//@members.37 //@members.82"/>
67 <members children="//@members.56" parents="//@members.39 //@members.55"/>
68 <members parents="//@members.27 //@members.47"/>
69 <members parents="//@members.10 //@members.61"/>
70 <members children="//@members.34 //@members.40 //@members.77" parents="//@members.0 //@members.44"/>
71 <members children="//@members.1" parents="//@members.22 //@members.47"/>
72 <members children="//@members.14 //@members.52" parents="//@members.24 //@members.62"/>
73 <members children="//@members.29 //@members.81 //@members.91" parents="//@members.38 //@members.62"/>
74 <members children="//@members.20 //@members.23 //@members.74 //@members.85 //@members.92" parents="//@members.41 //@members.82"/>
75 <members children="//@members.6" parents="//@members.74 //@members.90"/>
76 <members children="//@members.5 //@members.40 //@members.55 //@members.78 //@members.83" parents="//@members.62 //@members.90"/>
77 <members children="//@members.72 //@members.78 //@members.95" parents="//@members.2 //@members.71"/>
78 <members children="//@members.80" parents="//@members.56 //@members.82"/>
79 <members children="//@members.89" parents="//@members.44 //@members.88"/>
80 <members parents="//@members.24 //@members.67"/>
81 <members parents="//@members.73 //@members.74"/>
82 <members parents="//@members.88 //@members.92"/>
83 <members parents="//@members.30 //@members.75"/>
84 <members parents="//@members.63 //@members.70"/>
85 <members children="//@members.32 //@members.44 //@members.63 //@members.71 //@members.75 //@members.95" parents="//@members.9 //@members.36"/>
86 <members children="//@members.54 //@members.84 //@members.87" parents="//@members.53 //@members.73"/>
87 <members children="//@members.32 //@members.61" parents="//@members.39 //@members.83"/>
88 <members parents="//@members.71 //@members.90"/>
89 <members children="//@members.17 //@members.27 //@members.37" parents="//@members.20 //@members.53"/>
90 <members parents="//@members.3 //@members.83"/>
91 <members children="//@members.28 //@members.76 //@members.79 //@members.91" parents="//@members.11 //@members.50"/>
92 <members children="//@members.33" parents="//@members.40 //@members.76"/>
93 <members children="//@members.72 //@members.73 //@members.85" parents="//@members.9 //@members.53"/>
94 <members children="//@members.58" parents="//@members.70 //@members.88"/>
95 <members children="//@members.79 //@members.98" parents="//@members.53 //@members.71"/>
96 <members parents="//@members.8 //@members.9"/>
97 <members parents="//@members.24 //@members.60"/>
98 <members children="//@members.29 //@members.60" parents="//@members.74 //@members.82"/>
99 <members children="//@members.7 //@members.18" parents="//@members.0 //@members.24"/>
100 <members children="//@members.24" parents="//@members.9 //@members.49"/>
101 <members children="//@members.46 //@members.58" parents="//@members.21 //@members.92"/>
102 <members parents="//@members.12 //@members.43"/>
103</familytree:FamilyTree>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/7_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/7_1.xmi
new file mode 100644
index 00000000..55a1f039
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/7_1.xmi
@@ -0,0 +1,103 @@
1<?xml version="1.0" encoding="ASCII"?>
2<familytree:FamilyTree xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:familytree="http://www.example.org/familytree" xsi:schemaLocation="http://www.example.org/familytree ../case.study.familyTree.model/model/familytree.ecore">
3 <members children="//@members.62" parents="//@members.6 //@members.12"/>
4 <members parents="//@members.73 //@members.97"/>
5 <members parents="//@members.4 //@members.59"/>
6 <members children="//@members.30 //@members.94" parents="//@members.10 //@members.51"/>
7 <members children="//@members.2 //@members.66 //@members.88 //@members.98" parents="//@members.30 //@members.72"/>
8 <members children="//@members.21 //@members.32 //@members.43" parents="//@members.11 //@members.42"/>
9 <members children="//@members.0 //@members.14 //@members.40 //@members.45 //@members.46 //@members.48 //@members.51 //@members.76 //@members.92 //@members.96" parents="//@members.36 //@members.49"/>
10 <members children="//@members.57 //@members.61" parents="//@members.44 //@members.91"/>
11 <members parents="//@members.66 //@members.87"/>
12 <members children="//@members.12 //@members.20" parents="//@members.36 //@members.72"/>
13 <members children="//@members.3 //@members.25 //@members.63 //@members.80" parents="//@members.36 //@members.83"/>
14 <members children="//@members.5 //@members.64 //@members.86 //@members.91 //@members.99" parents="//@members.37 //@members.50"/>
15 <members children="//@members.0" parents="//@members.9 //@members.56"/>
16 <members parents="//@members.47 //@members.70"/>
17 <members children="//@members.39 //@members.84" parents="//@members.6 //@members.63"/>
18 <members children="//@members.26 //@members.82" parents="//@members.36 //@members.38"/>
19 <members children="//@members.23" parents="//@members.44 //@members.99"/>
20 <members children="//@members.28 //@members.41 //@members.76 //@members.83 //@members.87 //@members.88" parents="//@members.41 //@members.83"/>
21 <members parents="//@members.46 //@members.61"/>
22 <members children="//@members.93" parents="//@members.76 //@members.86"/>
23 <members parents="//@members.9 //@members.80"/>
24 <members children="//@members.65 //@members.75 //@members.81" parents="//@members.5 //@members.54"/>
25 <members children="//@members.60" parents="//@members.34 //@members.83"/>
26 <members parents="//@members.16 //@members.72"/>
27 <members parents="//@members.69 //@members.89"/>
28 <members children="//@members.48" parents="//@members.10 //@members.56"/>
29 <members children="//@members.34 //@members.35 //@members.57" parents="//@members.15 //@members.44"/>
30 <members parents="//@members.41 //@members.46"/>
31 <members children="//@members.93" parents="//@members.17 //@members.72"/>
32 <members parents="//@members.50 //@members.66"/>
33 <members children="//@members.4" parents="//@members.3 //@members.78"/>
34 <members children="//@members.39 //@members.54" parents="//@members.70 //@members.79"/>
35 <members children="//@members.53" parents="//@members.5 //@members.39"/>
36 <members children="//@members.56 //@members.82" parents="//@members.78 //@members.79"/>
37 <members children="//@members.22 //@members.40" parents="//@members.26 //@members.41"/>
38 <members children="//@members.91" parents="//@members.26 //@members.36"/>
39 <members children="//@members.6 //@members.9 //@members.10 //@members.15 //@members.35 //@members.45 //@members.49 //@members.50 //@members.70 //@members.80 //@members.87" parents="//@members.41 //@members.83"/>
40 <members children="//@members.11 //@members.69 //@members.78 //@members.79" parents="//@members.70 //@members.83"/>
41 <members children="//@members.15 //@members.73 //@members.84" parents="//@members.42 //@members.72"/>
42 <members children="//@members.32" parents="//@members.14 //@members.31"/>
43 <members parents="//@members.6 //@members.34"/>
44 <members children="//@members.17 //@members.27 //@members.34 //@members.36 //@members.44 //@members.62 //@members.70 //@members.79 //@members.83 //@members.86 //@members.89 //@members.95" parents="//@members.17 //@members.83"/>
45 <members children="//@members.5 //@members.38" parents="//@members.44 //@members.76"/>
46 <members children="//@members.90" parents="//@members.5 //@members.99"/>
47 <members children="//@members.7 //@members.16 //@members.26 //@members.42 //@members.46 //@members.47 //@members.52" parents="//@members.41 //@members.72"/>
48 <members children="//@members.74" parents="//@members.6 //@members.36"/>
49 <members children="//@members.18 //@members.27" parents="//@members.6 //@members.44"/>
50 <members children="//@members.13 //@members.51 //@members.90" parents="//@members.44 //@members.49"/>
51 <members parents="//@members.6 //@members.25"/>
52 <members children="//@members.6 //@members.47" parents="//@members.36 //@members.83"/>
53 <members children="//@members.11 //@members.29 //@members.66 //@members.97" parents="//@members.36 //@members.51"/>
54 <members children="//@members.3 //@members.50 //@members.67 //@members.99" parents="//@members.6 //@members.47"/>
55 <members children="//@members.77" parents="//@members.44 //@members.76"/>
56 <members parents="//@members.32 //@members.62"/>
57 <members children="//@members.21" parents="//@members.31 //@members.76"/>
58 <members parents="//@members.57 //@members.58"/>
59 <members children="//@members.12 //@members.25" parents="//@members.33 //@members.63"/>
60 <members children="//@members.55 //@members.77" parents="//@members.7 //@members.26"/>
61 <members children="//@members.55 //@members.81" parents="//@members.61 //@members.89"/>
62 <members children="//@members.2 //@members.67 //@members.71 //@members.74" parents="//@members.83 //@members.87"/>
63 <members parents="//@members.22 //@members.77"/>
64 <members children="//@members.18 //@members.58" parents="//@members.7 //@members.76"/>
65 <members children="//@members.53 //@members.65" parents="//@members.0 //@members.41"/>
66 <members children="//@members.14 //@members.56 //@members.97" parents="//@members.10 //@members.92"/>
67 <members parents="//@members.11 //@members.69"/>
68 <members parents="//@members.21 //@members.62"/>
69 <members children="//@members.8 //@members.29" parents="//@members.4 //@members.50"/>
70 <members parents="//@members.51 //@members.59"/>
71 <members parents="//@members.70 //@members.87"/>
72 <members children="//@members.24 //@members.64" parents="//@members.37 //@members.86"/>
73 <members children="//@members.13 //@members.31 //@members.37 //@members.68 //@members.72" parents="//@members.36 //@members.41"/>
74 <members parents="//@members.59 //@members.79"/>
75 <members children="//@members.4 //@members.9 //@members.23 //@members.28 //@members.38 //@members.44 //@members.78" parents="//@members.70 //@members.76"/>
76 <members children="//@members.1" parents="//@members.38 //@members.94"/>
77 <members parents="//@members.45 //@members.59"/>
78 <members parents="//@members.21 //@members.96"/>
79 <members children="//@members.19 //@members.42 //@members.52 //@members.54 //@members.61 //@members.72 //@members.89" parents="//@members.6 //@members.17"/>
80 <members children="//@members.60" parents="//@members.52 //@members.57"/>
81 <members children="//@members.30 //@members.33 //@members.94 //@members.95 //@members.98" parents="//@members.37 //@members.72"/>
82 <members children="//@members.31 //@members.33 //@members.71 //@members.92" parents="//@members.37 //@members.41"/>
83 <members children="//@members.20" parents="//@members.10 //@members.36"/>
84 <members parents="//@members.21 //@members.58"/>
85 <members parents="//@members.15 //@members.33"/>
86 <members children="//@members.10 //@members.17 //@members.22 //@members.36 //@members.37 //@members.41 //@members.49 //@members.59" parents="//@members.17 //@members.41"/>
87 <members parents="//@members.14 //@members.38"/>
88 <members/>
89 <members children="//@members.19 //@members.69" parents="//@members.11 //@members.41"/>
90 <members children="//@members.8 //@members.59 //@members.68" parents="//@members.17 //@members.36"/>
91 <members parents="//@members.4 //@members.17"/>
92 <members children="//@members.24 //@members.58" parents="//@members.41 //@members.76"/>
93 <members parents="//@members.43 //@members.47"/>
94 <members children="//@members.7" parents="//@members.11 //@members.35"/>
95 <members children="//@members.63" parents="//@members.6 //@members.79"/>
96 <members parents="//@members.19 //@members.28"/>
97 <members children="//@members.73" parents="//@members.3 //@members.78"/>
98 <members parents="//@members.41 //@members.78"/>
99 <members children="//@members.75" parents="//@members.6 //@members.97"/>
100 <members children="//@members.1 //@members.96" parents="//@members.50 //@members.63"/>
101 <members parents="//@members.4 //@members.78"/>
102 <members children="//@members.16 //@members.43" parents="//@members.11 //@members.51"/>
103</familytree:FamilyTree>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/8_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/8_1.xmi
new file mode 100644
index 00000000..d0ad5be7
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/8_1.xmi
@@ -0,0 +1,103 @@
1<?xml version="1.0" encoding="ASCII"?>
2<familytree:FamilyTree xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:familytree="http://www.example.org/familytree" xsi:schemaLocation="http://www.example.org/familytree ../case.study.familyTree.model/model/familytree.ecore">
3 <members children="//@members.16 //@members.62" parents="//@members.51 //@members.64"/>
4 <members parents="//@members.30 //@members.51"/>
5 <members children="//@members.11 //@members.13 //@members.26 //@members.34 //@members.46 //@members.56 //@members.79" parents="//@members.26 //@members.34"/>
6 <members children="//@members.12 //@members.22" parents="//@members.13 //@members.55"/>
7 <members children="//@members.41 //@members.45" parents="//@members.18 //@members.19"/>
8 <members children="//@members.60" parents="//@members.50 //@members.89"/>
9 <members children="//@members.68" parents="//@members.39 //@members.78"/>
10 <members parents="//@members.31 //@members.48"/>
11 <members children="//@members.85" parents="//@members.94 //@members.99"/>
12 <members parents="//@members.11 //@members.79"/>
13 <members children="//@members.19 //@members.50 //@members.62 //@members.77 //@members.78 //@members.81" parents="//@members.34 //@members.65"/>
14 <members children="//@members.9 //@members.14 //@members.73 //@members.92" parents="//@members.2 //@members.18"/>
15 <members children="//@members.38 //@members.63" parents="//@members.3 //@members.19"/>
16 <members children="//@members.3 //@members.35 //@members.41 //@members.47 //@members.55" parents="//@members.2 //@members.80"/>
17 <members children="//@members.16 //@members.17" parents="//@members.11 //@members.50"/>
18 <members children="//@members.67" parents="//@members.75 //@members.94"/>
19 <members parents="//@members.0 //@members.14"/>
20 <members children="//@members.33" parents="//@members.14 //@members.44"/>
21 <members children="//@members.4 //@members.11 //@members.40 //@members.42 //@members.48 //@members.57 //@members.80 //@members.95 //@members.98" parents="//@members.26 //@members.65"/>
22 <members children="//@members.4 //@members.12 //@members.51 //@members.72" parents="//@members.10 //@members.78"/>
23 <members children="//@members.25 //@members.56 //@members.74 //@members.77 //@members.89" parents="//@members.26 //@members.79"/>
24 <members parents="//@members.41 //@members.78"/>
25 <members parents="//@members.3 //@members.41"/>
26 <members parents="//@members.79 //@members.81"/>
27 <members children="//@members.31 //@members.61 //@members.85" parents="//@members.34 //@members.50"/>
28 <members children="//@members.44 //@members.86" parents="//@members.20 //@members.91"/>
29 <members children="//@members.2 //@members.18 //@members.20 //@members.65 //@members.80 //@members.84" parents="//@members.2 //@members.34"/>
30 <members parents="//@members.36 //@members.50"/>
31 <members children="//@members.29" parents="//@members.32 //@members.35"/>
32 <members parents="//@members.28 //@members.54"/>
33 <members children="//@members.1" parents="//@members.57 //@members.86"/>
34 <members children="//@members.7 //@members.59" parents="//@members.24 //@members.38"/>
35 <members children="//@members.28 //@members.54" parents="//@members.48 //@members.75"/>
36 <members parents="//@members.17 //@members.48"/>
37 <members children="//@members.2 //@members.10 //@members.24 //@members.26 //@members.65 //@members.71 //@members.90" parents="//@members.2 //@members.90"/>
38 <members children="//@members.28 //@members.36 //@members.63 //@members.75 //@members.93" parents="//@members.13 //@members.79"/>
39 <members children="//@members.27" parents="//@members.35 //@members.99"/>
40 <members children="//@members.38 //@members.83 //@members.86 //@members.99" parents="//@members.56 //@members.94"/>
41 <members children="//@members.31 //@members.60" parents="//@members.12 //@members.37"/>
42 <members children="//@members.6 //@members.94" parents="//@members.90 //@members.95"/>
43 <members children="//@members.54 //@members.87" parents="//@members.18 //@members.50"/>
44 <members children="//@members.21 //@members.22" parents="//@members.4 //@members.13"/>
45 <members parents="//@members.18 //@members.89"/>
46 <members/>
47 <members children="//@members.17" parents="//@members.25 //@members.56"/>
48 <members parents="//@members.4 //@members.73"/>
49 <members children="//@members.49 //@members.71 //@members.76" parents="//@members.2 //@members.80"/>
50 <members children="//@members.48 //@members.49 //@members.55 //@members.57 //@members.75 //@members.78 //@members.89" parents="//@members.13 //@members.56"/>
51 <members children="//@members.7 //@members.32 //@members.33 //@members.61" parents="//@members.18 //@members.47"/>
52 <members children="//@members.83 //@members.96" parents="//@members.46 //@members.47"/>
53 <members children="//@members.5 //@members.14 //@members.24 //@members.27 //@members.40 //@members.91" parents="//@members.10 //@members.90"/>
54 <members children="//@members.0 //@members.1" parents="//@members.19 //@members.78"/>
55 <members parents="//@members.73 //@members.86"/>
56 <members children="//@members.67" parents="//@members.87 //@members.90"/>
57 <members children="//@members.29 //@members.98" parents="//@members.32 //@members.40"/>
58 <members children="//@members.3 //@members.58 //@members.64 //@members.70 //@members.72" parents="//@members.13 //@members.47"/>
59 <members children="//@members.37 //@members.44 //@members.47" parents="//@members.2 //@members.20"/>
60 <members children="//@members.30" parents="//@members.18 //@members.47"/>
61 <members children="//@members.96" parents="//@members.55 //@members.94"/>
62 <members parents="//@members.31 //@members.74"/>
63 <members parents="//@members.5 //@members.38"/>
64 <members parents="//@members.24 //@members.48"/>
65 <members parents="//@members.0 //@members.10"/>
66 <members parents="//@members.12 //@members.35"/>
67 <members children="//@members.0 //@members.66 //@members.69 //@members.74" parents="//@members.55 //@members.78"/>
68 <members children="//@members.10 //@members.18 //@members.68 //@members.69 //@members.90 //@members.97" parents="//@members.26 //@members.34"/>
69 <members children="//@members.88" parents="//@members.64 //@members.79"/>
70 <members parents="//@members.15 //@members.53"/>
71 <members parents="//@members.6 //@members.65"/>
72 <members children="//@members.91 //@members.93" parents="//@members.64 //@members.65"/>
73 <members parents="//@members.55 //@members.93"/>
74 <members children="//@members.87" parents="//@members.34 //@members.46"/>
75 <members parents="//@members.19 //@members.55"/>
76 <members children="//@members.45 //@members.52" parents="//@members.11 //@members.79"/>
77 <members children="//@members.59 //@members.84" parents="//@members.20 //@members.64"/>
78 <members children="//@members.15 //@members.32 //@members.76 //@members.82" parents="//@members.35 //@members.47"/>
79 <members parents="//@members.46 //@members.75"/>
80 <members children="//@members.88" parents="//@members.10 //@members.20"/>
81 <members children="//@members.6 //@members.19 //@members.21 //@members.51 //@members.64 //@members.82 //@members.92" parents="//@members.10 //@members.47"/>
82 <members children="//@members.9 //@members.20 //@members.23 //@members.35 //@members.66 //@members.73" parents="//@members.2 //@members.80"/>
83 <members children="//@members.13 //@members.46 //@members.79 //@members.94" parents="//@members.18 //@members.26"/>
84 <members children="//@members.23" parents="//@members.10 //@members.90"/>
85 <members parents="//@members.75 //@members.78"/>
86 <members parents="//@members.37 //@members.49"/>
87 <members parents="//@members.26 //@members.74"/>
88 <members parents="//@members.8 //@members.24"/>
89 <members children="//@members.30 //@members.52" parents="//@members.25 //@members.37"/>
90 <members children="//@members.53" parents="//@members.40 //@members.71"/>
91 <members parents="//@members.66 //@members.77"/>
92 <members children="//@members.5 //@members.42" parents="//@members.20 //@members.47"/>
93 <members children="//@members.34 //@members.39 //@members.50 //@members.53 //@members.81 //@members.95" parents="//@members.34 //@members.65"/>
94 <members children="//@members.25" parents="//@members.50 //@members.69"/>
95 <members parents="//@members.11 //@members.78"/>
96 <members children="//@members.70" parents="//@members.35 //@members.69"/>
97 <members children="//@members.8 //@members.15 //@members.37 //@members.58 //@members.99" parents="//@members.39 //@members.80"/>
98 <members children="//@members.39" parents="//@members.18 //@members.90"/>
99 <members parents="//@members.49 //@members.58"/>
100 <members parents="//@members.65 //@members.98"/>
101 <members children="//@members.97" parents="//@members.18 //@members.54"/>
102 <members children="//@members.8 //@members.36" parents="//@members.37 //@members.94"/>
103</familytree:FamilyTree>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/9_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/9_1.xmi
new file mode 100644
index 00000000..885e350b
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/FamilyTreeNoNum/9_1.xmi
@@ -0,0 +1,103 @@
1<?xml version="1.0" encoding="ASCII"?>
2<familytree:FamilyTree xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:familytree="http://www.example.org/familytree" xsi:schemaLocation="http://www.example.org/familytree ../case.study.familyTree.model/model/familytree.ecore">
3 <members parents="//@members.22 //@members.95"/>
4 <members parents="//@members.26 //@members.67"/>
5 <members parents="//@members.15 //@members.42"/>
6 <members parents="//@members.4 //@members.28"/>
7 <members children="//@members.3 //@members.7 //@members.17 //@members.30 //@members.42" parents="//@members.24 //@members.45"/>
8 <members parents="//@members.25 //@members.26"/>
9 <members children="//@members.12 //@members.13 //@members.17 //@members.24 //@members.27 //@members.30 //@members.45 //@members.52 //@members.57 //@members.77" parents="//@members.12 //@members.52"/>
10 <members children="//@members.32" parents="//@members.4 //@members.65"/>
11 <members parents="//@members.15 //@members.17"/>
12 <members children="//@members.38 //@members.47 //@members.71" parents="//@members.42 //@members.66"/>
13 <members children="//@members.21 //@members.61 //@members.82" parents="//@members.53 //@members.99"/>
14 <members parents="//@members.78 //@members.92"/>
15 <members children="//@members.6 //@members.18 //@members.27 //@members.45 //@members.50 //@members.61 //@members.77 //@members.78" parents="//@members.6 //@members.77"/>
16 <members children="//@members.37 //@members.63 //@members.99" parents="//@members.6 //@members.27"/>
17 <members children="//@members.16 //@members.85" parents="//@members.49 //@members.53"/>
18 <members children="//@members.2 //@members.8" parents="//@members.19 //@members.99"/>
19 <members parents="//@members.14 //@members.93"/>
20 <members children="//@members.8 //@members.29 //@members.86" parents="//@members.4 //@members.6"/>
21 <members children="//@members.34" parents="//@members.12 //@members.41"/>
22 <members children="//@members.15 //@members.20 //@members.22" parents="//@members.51 //@members.55"/>
23 <members children="//@members.94" parents="//@members.19 //@members.46"/>
24 <members children="//@members.22" parents="//@members.10 //@members.65"/>
25 <members children="//@members.0" parents="//@members.19 //@members.21"/>
26 <members parents="//@members.50 //@members.69"/>
27 <members children="//@members.4 //@members.26 //@members.51 //@members.57 //@members.63 //@members.64" parents="//@members.6 //@members.77"/>
28 <members children="//@members.5" parents="//@members.41 //@members.99"/>
29 <members children="//@members.1 //@members.5" parents="//@members.24 //@members.28"/>
30 <members children="//@members.13 //@members.28 //@members.58 //@members.67 //@members.68 //@members.72 //@members.79 //@members.84 //@members.96" parents="//@members.6 //@members.12"/>
31 <members children="//@members.3 //@members.26" parents="//@members.27 //@members.66"/>
32 <members parents="//@members.17 //@members.73"/>
33 <members parents="//@members.4 //@members.6"/>
34 <members parents="//@members.46 //@members.67"/>
35 <members children="//@members.80 //@members.89" parents="//@members.7 //@members.84"/>
36 <members parents="//@members.73 //@members.79"/>
37 <members parents="//@members.18 //@members.75"/>
38 <members children="//@members.40 //@members.73 //@members.97" parents="//@members.45 //@members.63"/>
39 <members children="//@members.39 //@members.41 //@members.55" parents="//@members.65 //@members.92"/>
40 <members children="//@members.43 //@members.90" parents="//@members.13 //@members.69"/>
41 <members parents="//@members.9 //@members.40"/>
42 <members parents="//@members.36 //@members.57"/>
43 <members children="//@members.38 //@members.54" parents="//@members.35 //@members.58"/>
44 <members children="//@members.18 //@members.25 //@members.48 //@members.96" parents="//@members.36 //@members.53"/>
45 <members children="//@members.2 //@members.9" parents="//@members.4 //@members.58"/>
46 <members children="//@members.72 //@members.98" parents="//@members.37 //@members.49"/>
47 <members parents="//@members.80 //@members.86"/>
48 <members children="//@members.4 //@members.35 //@members.51 //@members.53 //@members.65 //@members.70 //@members.92" parents="//@members.6 //@members.12"/>
49 <members children="//@members.20 //@members.31" parents="//@members.57 //@members.84"/>
50 <members children="//@members.70 //@members.88 //@members.98" parents="//@members.9 //@members.58"/>
51 <members parents="//@members.41 //@members.53"/>
52 <members children="//@members.14 //@members.43" parents="//@members.66 //@members.67"/>
53 <members children="//@members.23 //@members.69 //@members.95" parents="//@members.12 //@members.67"/>
54 <members children="//@members.19 //@members.67 //@members.80" parents="//@members.24 //@members.45"/>
55 <members children="//@members.6 //@members.56 //@members.58 //@members.86 //@members.87" parents="//@members.6 //@members.77"/>
56 <members children="//@members.10 //@members.14 //@members.41 //@members.48 //@members.56 //@members.83 //@members.93" parents="//@members.45 //@members.67"/>
57 <members children="//@members.79" parents="//@members.40 //@members.99"/>
58 <members children="//@members.19 //@members.68" parents="//@members.36 //@members.87"/>
59 <members parents="//@members.52 //@members.53"/>
60 <members children="//@members.39 //@members.46 //@members.59 //@members.66" parents="//@members.6 //@members.24"/>
61 <members children="//@members.40 //@members.42 //@members.47 //@members.75 //@members.81 //@members.87 //@members.92 //@members.99" parents="//@members.27 //@members.52"/>
62 <members children="//@members.85 //@members.88" parents="//@members.57 //@members.87"/>
63 <members parents="//@members.63 //@members.66"/>
64 <members children="//@members.91" parents="//@members.10 //@members.12"/>
65 <members/>
66 <members children="//@members.35 //@members.60 //@members.82" parents="//@members.13 //@members.24"/>
67 <members children="//@members.75" parents="//@members.24 //@members.69"/>
68 <members children="//@members.7 //@members.21 //@members.36 //@members.78" parents="//@members.45 //@members.87"/>
69 <members children="//@members.9 //@members.28 //@members.49 //@members.60" parents="//@members.57 //@members.77"/>
70 <members children="//@members.1 //@members.31 //@members.49 //@members.50 //@members.53 //@members.69" parents="//@members.27 //@members.51"/>
71 <members parents="//@members.27 //@members.55"/>
72 <members children="//@members.23 //@members.37 //@members.64" parents="//@members.50 //@members.67"/>
73 <members parents="//@members.45 //@members.47"/>
74 <members parents="//@members.9 //@members.72"/>
75 <members children="//@members.71" parents="//@members.27 //@members.43"/>
76 <members children="//@members.29 //@members.33 //@members.94 //@members.97" parents="//@members.35 //@members.92"/>
77 <members parents="//@members.85 //@members.98"/>
78 <members children="//@members.34" parents="//@members.58 //@members.64"/>
79 <members parents="//@members.80 //@members.83"/>
80 <members children="//@members.12 //@members.24 //@members.52 //@members.66 //@members.93" parents="//@members.6 //@members.12"/>
81 <members children="//@members.11" parents="//@members.12 //@members.65"/>
82 <members children="//@members.33" parents="//@members.27 //@members.54"/>
83 <members children="//@members.44 //@members.76" parents="//@members.32 //@members.51"/>
84 <members children="//@members.91 //@members.95" parents="//@members.58 //@members.99"/>
85 <members parents="//@members.10 //@members.63"/>
86 <members children="//@members.76" parents="//@members.53 //@members.86"/>
87 <members children="//@members.32 //@members.46" parents="//@members.27 //@members.99"/>
88 <members children="//@members.74" parents="//@members.14 //@members.59"/>
89 <members children="//@members.44 //@members.83" parents="//@members.17 //@members.52"/>
90 <members children="//@members.55 //@members.59 //@members.65" parents="//@members.52 //@members.58"/>
91 <members parents="//@members.47 //@members.59"/>
92 <members parents="//@members.32 //@members.99"/>
93 <members parents="//@members.37 //@members.92"/>
94 <members parents="//@members.61 //@members.81"/>
95 <members children="//@members.11 //@members.36 //@members.73 //@members.90" parents="//@members.45 //@members.58"/>
96 <members children="//@members.16" parents="//@members.53 //@members.77"/>
97 <members parents="//@members.20 //@members.73"/>
98 <members children="//@members.0" parents="//@members.50 //@members.81"/>
99 <members parents="//@members.27 //@members.41"/>
100 <members parents="//@members.35 //@members.73"/>
101 <members children="//@members.74" parents="//@members.43 //@members.47"/>
102 <members children="//@members.10 //@members.15 //@members.25 //@members.54 //@members.81 //@members.84 //@members.89" parents="//@members.13 //@members.58"/>
103</familytree:FamilyTree>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/10_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/10_1.xmi
new file mode 100644
index 00000000..7a8f6972
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/10_1.xmi
@@ -0,0 +1,135 @@
1<?xml version="1.0" encoding="ASCII"?>
2<satellite:InterferometryMission xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:satellite="http://www.example.org/satellite" xsi:schemaLocation="http://www.example.org/satellite ../../../Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore">
3 <groundStationNetwork>
4 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
5 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:SmallSat">
8 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
9 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.26/@commSubsystem.0" frequency="300" pathLength="150"/>
10 <payload xsi:type="satellite:InterferometryPayload"/>
11 </spacecraft>
12 <spacecraft xsi:type="satellite:CubeSat3U">
13 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
14 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1" frequency="8000" pathLength="385000"/>
15 <payload xsi:type="satellite:InterferometryPayload"/>
16 </spacecraft>
17 <spacecraft xsi:type="satellite:SmallSat">
18 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.7/@commSubsystem.1" frequency="300" pathLength="150"/>
19 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
20 <payload xsi:type="satellite:InterferometryPayload"/>
21 </spacecraft>
22 <spacecraft xsi:type="satellite:CubeSat6U">
23 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
24 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.6/@commSubsystem.1" frequency="8000" pathLength="150"/>
25 <payload xsi:type="satellite:InterferometryPayload"/>
26 </spacecraft>
27 <spacecraft xsi:type="satellite:CubeSat6U">
28 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1" frequency="8000" pathLength="385000"/>
29 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
30 <payload xsi:type="satellite:InterferometryPayload"/>
31 </spacecraft>
32 <spacecraft xsi:type="satellite:CubeSat6U">
33 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
34 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.8/@commSubsystem.0" frequency="300" pathLength="150"/>
35 </spacecraft>
36 <spacecraft xsi:type="satellite:CubeSat6U">
37 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.10/@commSubsystem.1" frequency="8000" pathLength="150"/>
38 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
39 <payload xsi:type="satellite:InterferometryPayload"/>
40 </spacecraft>
41 <spacecraft xsi:type="satellite:SmallSat">
42 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.1/@commSubsystem.1" frequency="8000" pathLength="150"/>
43 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
44 <payload xsi:type="satellite:InterferometryPayload"/>
45 </spacecraft>
46 <spacecraft xsi:type="satellite:SmallSat">
47 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.21/@commSubsystem.0" frequency="300" pathLength="150"/>
48 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
49 <payload xsi:type="satellite:InterferometryPayload"/>
50 </spacecraft>
51 <spacecraft xsi:type="satellite:CubeSat6U">
52 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.6/@commSubsystem.1" frequency="8000" pathLength="150"/>
53 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
54 <payload xsi:type="satellite:InterferometryPayload"/>
55 </spacecraft>
56 <spacecraft xsi:type="satellite:CubeSat6U">
57 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.7/@commSubsystem.0" frequency="8000" pathLength="150"/>
58 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
59 <payload xsi:type="satellite:InterferometryPayload"/>
60 </spacecraft>
61 <spacecraft xsi:type="satellite:CubeSat3U">
62 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
63 </spacecraft>
64 <spacecraft xsi:type="satellite:CubeSat3U">
65 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
66 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1" frequency="8000" pathLength="385000"/>
67 <payload xsi:type="satellite:InterferometryPayload"/>
68 </spacecraft>
69 <spacecraft xsi:type="satellite:CubeSat6U">
70 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.12/@commSubsystem.0" frequency="8000" pathLength="150"/>
71 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
72 <payload xsi:type="satellite:InterferometryPayload"/>
73 </spacecraft>
74 <spacecraft xsi:type="satellite:CubeSat3U">
75 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.26/@commSubsystem.0" frequency="300" pathLength="150"/>
76 <payload xsi:type="satellite:InterferometryPayload"/>
77 </spacecraft>
78 <spacecraft xsi:type="satellite:CubeSat6U">
79 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
80 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.19/@commSubsystem.0" frequency="8000" pathLength="150"/>
81 <payload xsi:type="satellite:InterferometryPayload"/>
82 </spacecraft>
83 <spacecraft xsi:type="satellite:CubeSat3U">
84 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
85 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
86 <payload xsi:type="satellite:InterferometryPayload"/>
87 </spacecraft>
88 <spacecraft xsi:type="satellite:SmallSat">
89 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
90 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.4/@commSubsystem.1" frequency="300" pathLength="150"/>
91 </spacecraft>
92 <spacecraft xsi:type="satellite:CubeSat6U">
93 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
94 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.19/@commSubsystem.0" frequency="8000" pathLength="150"/>
95 <payload xsi:type="satellite:InterferometryPayload"/>
96 </spacecraft>
97 <spacecraft xsi:type="satellite:CubeSat6U">
98 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.7/@commSubsystem.0" frequency="8000" pathLength="150"/>
99 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
100 <payload xsi:type="satellite:InterferometryPayload"/>
101 </spacecraft>
102 <spacecraft xsi:type="satellite:SmallSat">
103 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.1/@commSubsystem.0" frequency="8000" pathLength="150"/>
104 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
105 <payload xsi:type="satellite:InterferometryPayload"/>
106 </spacecraft>
107 <spacecraft xsi:type="satellite:CubeSat3U">
108 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
109 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.2/@commSubsystem.0" frequency="300" pathLength="150"/>
110 <payload xsi:type="satellite:InterferometryPayload"/>
111 </spacecraft>
112 <spacecraft xsi:type="satellite:SmallSat">
113 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@spacecraft.17/@commSubsystem.0" frequency="26500" pathLength="150"/>
114 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
115 </spacecraft>
116 <spacecraft xsi:type="satellite:CubeSat3U">
117 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
118 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
119 <payload xsi:type="satellite:InterferometryPayload"/>
120 </spacecraft>
121 <spacecraft xsi:type="satellite:CubeSat6U">
122 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1" frequency="8000" pathLength="385000"/>
123 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
124 <payload xsi:type="satellite:InterferometryPayload"/>
125 </spacecraft>
126 <spacecraft xsi:type="satellite:CubeSat3U">
127 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.26/@commSubsystem.0" frequency="300" pathLength="150"/>
128 <payload xsi:type="satellite:InterferometryPayload"/>
129 </spacecraft>
130 <spacecraft xsi:type="satellite:CubeSat3U">
131 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
132 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.7/@commSubsystem.1" frequency="300" pathLength="150"/>
133 <payload xsi:type="satellite:InterferometryPayload"/>
134 </spacecraft>
135</satellite:InterferometryMission>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/1_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/1_1.xmi
new file mode 100644
index 00000000..2c5fcb8a
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/1_1.xmi
@@ -0,0 +1,131 @@
1<?xml version="1.0" encoding="ASCII"?>
2<satellite:InterferometryMission xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:satellite="http://www.example.org/satellite" xsi:schemaLocation="http://www.example.org/satellite ../../../Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore">
3 <groundStationNetwork>
4 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
5 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:CubeSat3U">
8 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
9 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.18/@commSubsystem.1" frequency="300" pathLength="150"/>
10 <payload xsi:type="satellite:InterferometryPayload"/>
11 </spacecraft>
12 <spacecraft xsi:type="satellite:CubeSat6U">
13 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.20/@commSubsystem.0" frequency="300" pathLength="150"/>
14 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
15 <payload xsi:type="satellite:InterferometryPayload"/>
16 </spacecraft>
17 <spacecraft xsi:type="satellite:CubeSat6U">
18 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.20/@commSubsystem.0" frequency="300" pathLength="150"/>
19 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
20 <payload xsi:type="satellite:InterferometryPayload"/>
21 </spacecraft>
22 <spacecraft xsi:type="satellite:CubeSat6U">
23 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
24 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.6/@commSubsystem.0" frequency="8000" pathLength="150"/>
25 <payload xsi:type="satellite:InterferometryPayload"/>
26 </spacecraft>
27 <spacecraft xsi:type="satellite:SmallSat">
28 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.16/@commSubsystem.0" frequency="8000" pathLength="150"/>
29 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
30 <payload xsi:type="satellite:InterferometryPayload"/>
31 </spacecraft>
32 <spacecraft xsi:type="satellite:SmallSat">
33 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1" frequency="26500" pathLength="385000"/>
34 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
35 <payload xsi:type="satellite:InterferometryPayload"/>
36 </spacecraft>
37 <spacecraft xsi:type="satellite:SmallSat">
38 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
39 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.20/@commSubsystem.1" frequency="8000" pathLength="150"/>
40 <payload xsi:type="satellite:InterferometryPayload"/>
41 </spacecraft>
42 <spacecraft xsi:type="satellite:CubeSat6U">
43 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.16/@commSubsystem.0" frequency="8000" pathLength="150"/>
44 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
45 <payload xsi:type="satellite:InterferometryPayload"/>
46 </spacecraft>
47 <spacecraft xsi:type="satellite:CubeSat3U">
48 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
49 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.2/@commSubsystem.0" frequency="300" pathLength="150"/>
50 <payload xsi:type="satellite:InterferometryPayload"/>
51 </spacecraft>
52 <spacecraft xsi:type="satellite:CubeSat3U">
53 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
54 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.2/@commSubsystem.0" frequency="300" pathLength="150"/>
55 <payload xsi:type="satellite:InterferometryPayload"/>
56 </spacecraft>
57 <spacecraft xsi:type="satellite:CubeSat6U">
58 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.12/@commSubsystem.0" frequency="300" pathLength="150"/>
59 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
60 <payload xsi:type="satellite:InterferometryPayload"/>
61 </spacecraft>
62 <spacecraft xsi:type="satellite:CubeSat6U">
63 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
64 </spacecraft>
65 <spacecraft xsi:type="satellite:CubeSat6U">
66 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.4/@commSubsystem.1" frequency="300" pathLength="150"/>
67 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
68 <payload xsi:type="satellite:InterferometryPayload"/>
69 </spacecraft>
70 <spacecraft xsi:type="satellite:CubeSat6U">
71 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.2/@commSubsystem.0" frequency="300" pathLength="150"/>
72 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
73 <payload xsi:type="satellite:InterferometryPayload"/>
74 </spacecraft>
75 <spacecraft xsi:type="satellite:CubeSat3U">
76 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
77 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
78 <payload xsi:type="satellite:InterferometryPayload"/>
79 </spacecraft>
80 <spacecraft xsi:type="satellite:SmallSat">
81 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.16/@commSubsystem.0" frequency="8000" pathLength="150"/>
82 </spacecraft>
83 <spacecraft xsi:type="satellite:CubeSat3U">
84 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
85 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.13/@commSubsystem.1" frequency="300" pathLength="150"/>
86 <payload xsi:type="satellite:InterferometryPayload"/>
87 </spacecraft>
88 <spacecraft xsi:type="satellite:CubeSat3U">
89 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.13/@commSubsystem.0" frequency="300" pathLength="150"/>
90 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
91 <payload xsi:type="satellite:InterferometryPayload"/>
92 </spacecraft>
93 <spacecraft xsi:type="satellite:CubeSat6U">
94 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.1/@commSubsystem.1" frequency="8000" pathLength="150"/>
95 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
96 <payload xsi:type="satellite:InterferometryPayload"/>
97 </spacecraft>
98 <spacecraft xsi:type="satellite:CubeSat3U">
99 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.12/@commSubsystem.0" frequency="300" pathLength="150"/>
100 </spacecraft>
101 <spacecraft xsi:type="satellite:CubeSat3U">
102 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
103 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
104 <payload xsi:type="satellite:InterferometryPayload"/>
105 </spacecraft>
106 <spacecraft xsi:type="satellite:CubeSat6U">
107 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.20/@commSubsystem.0" frequency="300" pathLength="150"/>
108 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
109 <payload xsi:type="satellite:InterferometryPayload"/>
110 </spacecraft>
111 <spacecraft xsi:type="satellite:SmallSat">
112 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
113 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.6/@commSubsystem.1" frequency="8000" pathLength="150"/>
114 <payload xsi:type="satellite:InterferometryPayload"/>
115 </spacecraft>
116 <spacecraft xsi:type="satellite:SmallSat">
117 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
118 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.1/@commSubsystem.0" frequency="300" pathLength="150"/>
119 <payload xsi:type="satellite:InterferometryPayload"/>
120 </spacecraft>
121 <spacecraft xsi:type="satellite:SmallSat">
122 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.18/@commSubsystem.1" frequency="300" pathLength="150"/>
123 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
124 <payload xsi:type="satellite:InterferometryPayload"/>
125 </spacecraft>
126 <spacecraft xsi:type="satellite:CubeSat6U">
127 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
128 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.4/@commSubsystem.1" frequency="300" pathLength="150"/>
129 <payload xsi:type="satellite:InterferometryPayload"/>
130 </spacecraft>
131</satellite:InterferometryMission>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/2_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/2_1.xmi
new file mode 100644
index 00000000..6be77d9b
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/2_1.xmi
@@ -0,0 +1,129 @@
1<?xml version="1.0" encoding="ASCII"?>
2<satellite:InterferometryMission xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:satellite="http://www.example.org/satellite" xsi:schemaLocation="http://www.example.org/satellite ../../../Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore">
3 <groundStationNetwork>
4 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
5 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:CubeSat3U">
8 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.13/@commSubsystem.0" frequency="300" pathLength="150"/>
9 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
10 <payload xsi:type="satellite:InterferometryPayload"/>
11 </spacecraft>
12 <spacecraft xsi:type="satellite:CubeSat3U">
13 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.7/@commSubsystem.0" frequency="300" pathLength="150"/>
14 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
15 <payload xsi:type="satellite:InterferometryPayload"/>
16 </spacecraft>
17 <spacecraft xsi:type="satellite:CubeSat6U">
18 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
19 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.12/@commSubsystem.1" frequency="8000" pathLength="150"/>
20 <payload xsi:type="satellite:InterferometryPayload"/>
21 </spacecraft>
22 <spacecraft xsi:type="satellite:CubeSat3U">
23 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1" frequency="8000" pathLength="385000"/>
24 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
25 <payload xsi:type="satellite:InterferometryPayload"/>
26 </spacecraft>
27 <spacecraft xsi:type="satellite:CubeSat3U">
28 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
29 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1" frequency="8000" pathLength="385000"/>
30 <payload xsi:type="satellite:InterferometryPayload"/>
31 </spacecraft>
32 <spacecraft xsi:type="satellite:SmallSat">
33 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
34 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@spacecraft.18/@commSubsystem.0" frequency="26500" pathLength="150"/>
35 <payload xsi:type="satellite:InterferometryPayload"/>
36 </spacecraft>
37 <spacecraft xsi:type="satellite:SmallSat">
38 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.19/@commSubsystem.1" frequency="8000" pathLength="150"/>
39 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
40 <payload xsi:type="satellite:InterferometryPayload"/>
41 </spacecraft>
42 <spacecraft xsi:type="satellite:CubeSat3U">
43 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.15/@commSubsystem.0" frequency="300" pathLength="150"/>
44 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
45 </spacecraft>
46 <spacecraft xsi:type="satellite:CubeSat3U">
47 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.3/@commSubsystem.1" frequency="300" pathLength="150"/>
48 <payload xsi:type="satellite:InterferometryPayload"/>
49 </spacecraft>
50 <spacecraft xsi:type="satellite:SmallSat">
51 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
52 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.1/@commSubsystem.1" frequency="300" pathLength="150"/>
53 <payload xsi:type="satellite:InterferometryPayload"/>
54 </spacecraft>
55 <spacecraft xsi:type="satellite:SmallSat">
56 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
57 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.13/@commSubsystem.0" frequency="300" pathLength="150"/>
58 <payload xsi:type="satellite:InterferometryPayload"/>
59 </spacecraft>
60 <spacecraft xsi:type="satellite:SmallSat">
61 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.4/@commSubsystem.1" frequency="8000" pathLength="150"/>
62 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
63 <payload xsi:type="satellite:InterferometryPayload"/>
64 </spacecraft>
65 <spacecraft xsi:type="satellite:CubeSat6U">
66 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
67 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.4/@commSubsystem.0" frequency="8000" pathLength="150"/>
68 <payload xsi:type="satellite:InterferometryPayload"/>
69 </spacecraft>
70 <spacecraft xsi:type="satellite:CubeSat6U">
71 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.3/@commSubsystem.1" frequency="300" pathLength="150"/>
72 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
73 <payload xsi:type="satellite:InterferometryPayload"/>
74 </spacecraft>
75 <spacecraft xsi:type="satellite:CubeSat6U">
76 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
77 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.4/@commSubsystem.0" frequency="8000" pathLength="150"/>
78 <payload xsi:type="satellite:InterferometryPayload"/>
79 </spacecraft>
80 <spacecraft xsi:type="satellite:CubeSat3U">
81 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.3/@commSubsystem.1" frequency="300" pathLength="150"/>
82 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
83 <payload xsi:type="satellite:InterferometryPayload"/>
84 </spacecraft>
85 <spacecraft xsi:type="satellite:CubeSat6U">
86 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
87 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.0/@commSubsystem.1" frequency="300" pathLength="150"/>
88 </spacecraft>
89 <spacecraft xsi:type="satellite:CubeSat6U">
90 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
91 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1" frequency="8000" pathLength="385000"/>
92 <payload xsi:type="satellite:InterferometryPayload"/>
93 </spacecraft>
94 <spacecraft xsi:type="satellite:SmallSat">
95 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
96 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.1/@commSubsystem.0" frequency="300" pathLength="150"/>
97 <payload xsi:type="satellite:InterferometryPayload"/>
98 </spacecraft>
99 <spacecraft xsi:type="satellite:CubeSat3U">
100 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
101 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1" frequency="8000" pathLength="385000"/>
102 <payload xsi:type="satellite:InterferometryPayload"/>
103 </spacecraft>
104 <spacecraft xsi:type="satellite:CubeSat3U">
105 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.14/@commSubsystem.0" frequency="300" pathLength="150"/>
106 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
107 <payload xsi:type="satellite:InterferometryPayload"/>
108 </spacecraft>
109 <spacecraft xsi:type="satellite:SmallSat">
110 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1" frequency="8000" pathLength="385000"/>
111 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
112 <payload xsi:type="satellite:InterferometryPayload"/>
113 </spacecraft>
114 <spacecraft xsi:type="satellite:CubeSat3U">
115 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
116 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1" frequency="8000" pathLength="385000"/>
117 <payload xsi:type="satellite:InterferometryPayload"/>
118 </spacecraft>
119 <spacecraft xsi:type="satellite:CubeSat6U">
120 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
121 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.4/@commSubsystem.1" frequency="8000" pathLength="150"/>
122 <payload xsi:type="satellite:InterferometryPayload"/>
123 </spacecraft>
124 <spacecraft xsi:type="satellite:SmallSat">
125 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.14/@commSubsystem.0" frequency="300" pathLength="150"/>
126 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
127 <payload xsi:type="satellite:InterferometryPayload"/>
128 </spacecraft>
129</satellite:InterferometryMission>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/3_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/3_1.xmi
new file mode 100644
index 00000000..3f21991a
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/3_1.xmi
@@ -0,0 +1,131 @@
1<?xml version="1.0" encoding="ASCII"?>
2<satellite:InterferometryMission xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:satellite="http://www.example.org/satellite" xsi:schemaLocation="http://www.example.org/satellite ../../../Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore">
3 <groundStationNetwork>
4 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
5 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:CubeSat3U">
8 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.17/@commSubsystem.1" frequency="300" pathLength="150"/>
9 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
10 <payload xsi:type="satellite:InterferometryPayload"/>
11 </spacecraft>
12 <spacecraft xsi:type="satellite:CubeSat3U">
13 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1" frequency="8000" pathLength="385000"/>
14 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
15 <payload xsi:type="satellite:InterferometryPayload"/>
16 </spacecraft>
17 <spacecraft xsi:type="satellite:SmallSat">
18 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@spacecraft.24/@commSubsystem.0" frequency="26500" pathLength="150"/>
19 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
20 </spacecraft>
21 <spacecraft xsi:type="satellite:SmallSat">
22 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.1/@commSubsystem.1" frequency="8000" pathLength="150"/>
23 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
24 <payload xsi:type="satellite:InterferometryPayload"/>
25 </spacecraft>
26 <spacecraft xsi:type="satellite:CubeSat3U">
27 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
28 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.14/@commSubsystem.0" frequency="300" pathLength="150"/>
29 <payload xsi:type="satellite:InterferometryPayload"/>
30 </spacecraft>
31 <spacecraft xsi:type="satellite:CubeSat3U">
32 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1" frequency="8000" pathLength="385000"/>
33 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
34 <payload xsi:type="satellite:InterferometryPayload"/>
35 </spacecraft>
36 <spacecraft xsi:type="satellite:CubeSat3U">
37 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
38 </spacecraft>
39 <spacecraft xsi:type="satellite:SmallSat">
40 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
41 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0" frequency="26500" pathLength="385000"/>
42 <payload xsi:type="satellite:InterferometryPayload"/>
43 </spacecraft>
44 <spacecraft xsi:type="satellite:SmallSat">
45 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
46 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.5/@commSubsystem.1" frequency="8000" pathLength="150"/>
47 <payload xsi:type="satellite:InterferometryPayload"/>
48 </spacecraft>
49 <spacecraft xsi:type="satellite:SmallSat">
50 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.17/@commSubsystem.0" frequency="8000" pathLength="150"/>
51 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
52 <payload xsi:type="satellite:InterferometryPayload"/>
53 </spacecraft>
54 <spacecraft xsi:type="satellite:CubeSat3U">
55 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.17/@commSubsystem.1" frequency="300" pathLength="150"/>
56 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
57 <payload xsi:type="satellite:InterferometryPayload"/>
58 </spacecraft>
59 <spacecraft xsi:type="satellite:CubeSat3U">
60 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.19/@commSubsystem.1" frequency="300" pathLength="150"/>
61 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
62 <payload xsi:type="satellite:InterferometryPayload"/>
63 </spacecraft>
64 <spacecraft xsi:type="satellite:CubeSat3U">
65 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
66 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.25/@commSubsystem.1" frequency="300" pathLength="150"/>
67 <payload xsi:type="satellite:InterferometryPayload"/>
68 </spacecraft>
69 <spacecraft xsi:type="satellite:CubeSat3U">
70 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
71 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.16/@commSubsystem.0" frequency="300" pathLength="150"/>
72 <payload xsi:type="satellite:InterferometryPayload"/>
73 </spacecraft>
74 <spacecraft xsi:type="satellite:CubeSat3U">
75 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.10/@commSubsystem.0" frequency="300" pathLength="150"/>
76 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
77 <payload xsi:type="satellite:InterferometryPayload"/>
78 </spacecraft>
79 <spacecraft xsi:type="satellite:CubeSat6U">
80 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
81 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.17/@commSubsystem.0" frequency="8000" pathLength="150"/>
82 <payload xsi:type="satellite:InterferometryPayload"/>
83 </spacecraft>
84 <spacecraft xsi:type="satellite:CubeSat3U">
85 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.19/@commSubsystem.0" frequency="300" pathLength="150"/>
86 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
87 <payload xsi:type="satellite:InterferometryPayload"/>
88 </spacecraft>
89 <spacecraft xsi:type="satellite:CubeSat3U">
90 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1" frequency="8000" pathLength="385000"/>
91 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
92 <payload xsi:type="satellite:InterferometryPayload"/>
93 </spacecraft>
94 <spacecraft xsi:type="satellite:CubeSat3U">
95 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
96 </spacecraft>
97 <spacecraft xsi:type="satellite:CubeSat6U">
98 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.17/@commSubsystem.1" frequency="300" pathLength="150"/>
99 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
100 <payload xsi:type="satellite:InterferometryPayload"/>
101 </spacecraft>
102 <spacecraft xsi:type="satellite:CubeSat6U">
103 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
104 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1" frequency="8000" pathLength="385000"/>
105 <payload xsi:type="satellite:InterferometryPayload"/>
106 </spacecraft>
107 <spacecraft xsi:type="satellite:CubeSat6U">
108 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.19/@commSubsystem.1" frequency="300" pathLength="150"/>
109 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
110 <payload xsi:type="satellite:InterferometryPayload"/>
111 </spacecraft>
112 <spacecraft xsi:type="satellite:CubeSat6U">
113 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.16/@commSubsystem.0" frequency="300" pathLength="150"/>
114 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
115 <payload xsi:type="satellite:InterferometryPayload"/>
116 </spacecraft>
117 <spacecraft xsi:type="satellite:SmallSat">
118 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1" frequency="8000" pathLength="385000"/>
119 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
120 </spacecraft>
121 <spacecraft xsi:type="satellite:SmallSat">
122 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0" frequency="26500" pathLength="385000"/>
123 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
124 <payload xsi:type="satellite:InterferometryPayload"/>
125 </spacecraft>
126 <spacecraft xsi:type="satellite:SmallSat">
127 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
128 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.21/@commSubsystem.1" frequency="300" pathLength="150"/>
129 <payload xsi:type="satellite:InterferometryPayload"/>
130 </spacecraft>
131</satellite:InterferometryMission>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/4_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/4_1.xmi
new file mode 100644
index 00000000..497c7d03
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/4_1.xmi
@@ -0,0 +1,131 @@
1<?xml version="1.0" encoding="ASCII"?>
2<satellite:InterferometryMission xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:satellite="http://www.example.org/satellite" xsi:schemaLocation="http://www.example.org/satellite ../../../Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore">
3 <groundStationNetwork>
4 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
5 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:SmallSat">
8 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1" frequency="26500" pathLength="385000"/>
9 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
10 <payload xsi:type="satellite:InterferometryPayload"/>
11 </spacecraft>
12 <spacecraft xsi:type="satellite:CubeSat3U">
13 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.2/@commSubsystem.0" frequency="300" pathLength="150"/>
14 </spacecraft>
15 <spacecraft xsi:type="satellite:CubeSat3U">
16 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
17 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0" frequency="8000" pathLength="385000"/>
18 <payload xsi:type="satellite:InterferometryPayload"/>
19 </spacecraft>
20 <spacecraft xsi:type="satellite:CubeSat3U">
21 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
22 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.20/@commSubsystem.0" frequency="300" pathLength="150"/>
23 <payload xsi:type="satellite:InterferometryPayload"/>
24 </spacecraft>
25 <spacecraft xsi:type="satellite:CubeSat3U">
26 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.8/@commSubsystem.0" frequency="300" pathLength="150"/>
27 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
28 <payload xsi:type="satellite:InterferometryPayload"/>
29 </spacecraft>
30 <spacecraft xsi:type="satellite:CubeSat3U">
31 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
32 <payload xsi:type="satellite:InterferometryPayload"/>
33 </spacecraft>
34 <spacecraft xsi:type="satellite:SmallSat">
35 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
36 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0" frequency="8000" pathLength="385000"/>
37 <payload xsi:type="satellite:InterferometryPayload"/>
38 </spacecraft>
39 <spacecraft xsi:type="satellite:SmallSat">
40 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.15/@commSubsystem.0" frequency="8000" pathLength="150"/>
41 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
42 <payload xsi:type="satellite:InterferometryPayload"/>
43 </spacecraft>
44 <spacecraft xsi:type="satellite:CubeSat6U">
45 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
46 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.13/@commSubsystem.0" frequency="8000" pathLength="150"/>
47 <payload xsi:type="satellite:InterferometryPayload"/>
48 </spacecraft>
49 <spacecraft xsi:type="satellite:SmallSat">
50 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@spacecraft.0/@commSubsystem.0" frequency="26500" pathLength="150"/>
51 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
52 <payload xsi:type="satellite:InterferometryPayload"/>
53 </spacecraft>
54 <spacecraft xsi:type="satellite:CubeSat6U">
55 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.16/@commSubsystem.1" frequency="8000" pathLength="150"/>
56 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
57 <payload xsi:type="satellite:InterferometryPayload"/>
58 </spacecraft>
59 <spacecraft xsi:type="satellite:CubeSat3U">
60 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
61 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0" frequency="8000" pathLength="385000"/>
62 <payload xsi:type="satellite:InterferometryPayload"/>
63 </spacecraft>
64 <spacecraft xsi:type="satellite:CubeSat6U">
65 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.8/@commSubsystem.0" frequency="300" pathLength="150"/>
66 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
67 <payload xsi:type="satellite:InterferometryPayload"/>
68 </spacecraft>
69 <spacecraft xsi:type="satellite:SmallSat">
70 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.0/@commSubsystem.1" frequency="8000" pathLength="150"/>
71 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
72 <payload xsi:type="satellite:InterferometryPayload"/>
73 </spacecraft>
74 <spacecraft xsi:type="satellite:CubeSat3U">
75 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
76 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0" frequency="8000" pathLength="385000"/>
77 <payload xsi:type="satellite:InterferometryPayload"/>
78 </spacecraft>
79 <spacecraft xsi:type="satellite:SmallSat">
80 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.0/@commSubsystem.1" frequency="8000" pathLength="150"/>
81 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
82 <payload xsi:type="satellite:InterferometryPayload"/>
83 </spacecraft>
84 <spacecraft xsi:type="satellite:CubeSat3U">
85 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0" frequency="8000" pathLength="385000"/>
86 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
87 <payload xsi:type="satellite:InterferometryPayload"/>
88 </spacecraft>
89 <spacecraft xsi:type="satellite:SmallSat">
90 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.8/@commSubsystem.0" frequency="300" pathLength="150"/>
91 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
92 <payload xsi:type="satellite:InterferometryPayload"/>
93 </spacecraft>
94 <spacecraft xsi:type="satellite:CubeSat6U">
95 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.8/@commSubsystem.1" frequency="8000" pathLength="150"/>
96 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
97 <payload xsi:type="satellite:InterferometryPayload"/>
98 </spacecraft>
99 <spacecraft xsi:type="satellite:CubeSat3U">
100 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
101 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.8/@commSubsystem.0" frequency="300" pathLength="150"/>
102 <payload xsi:type="satellite:InterferometryPayload"/>
103 </spacecraft>
104 <spacecraft xsi:type="satellite:CubeSat3U">
105 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
106 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.12/@commSubsystem.0" frequency="300" pathLength="150"/>
107 <payload xsi:type="satellite:InterferometryPayload"/>
108 </spacecraft>
109 <spacecraft xsi:type="satellite:CubeSat6U">
110 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
111 </spacecraft>
112 <spacecraft xsi:type="satellite:CubeSat6U">
113 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
114 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.18/@commSubsystem.1" frequency="300" pathLength="150"/>
115 <payload xsi:type="satellite:InterferometryPayload"/>
116 </spacecraft>
117 <spacecraft xsi:type="satellite:CubeSat6U">
118 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.16/@commSubsystem.1" frequency="8000" pathLength="150"/>
119 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
120 </spacecraft>
121 <spacecraft xsi:type="satellite:CubeSat3U">
122 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
123 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.4/@commSubsystem.0" frequency="300" pathLength="150"/>
124 <payload xsi:type="satellite:InterferometryPayload"/>
125 </spacecraft>
126 <spacecraft xsi:type="satellite:CubeSat3U">
127 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
128 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.20/@commSubsystem.1" frequency="300" pathLength="150"/>
129 <payload xsi:type="satellite:InterferometryPayload"/>
130 </spacecraft>
131</satellite:InterferometryMission>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/5_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/5_1.xmi
new file mode 100644
index 00000000..1194f5d0
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/5_1.xmi
@@ -0,0 +1,129 @@
1<?xml version="1.0" encoding="ASCII"?>
2<satellite:InterferometryMission xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:satellite="http://www.example.org/satellite" xsi:schemaLocation="http://www.example.org/satellite ../../../Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore">
3 <groundStationNetwork>
4 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
5 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:CubeSat6U">
8 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.21/@commSubsystem.0" frequency="300" pathLength="150"/>
9 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
10 <payload xsi:type="satellite:InterferometryPayload"/>
11 </spacecraft>
12 <spacecraft xsi:type="satellite:SmallSat">
13 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.10/@commSubsystem.0" frequency="300" pathLength="150"/>
14 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
15 <payload xsi:type="satellite:InterferometryPayload"/>
16 </spacecraft>
17 <spacecraft xsi:type="satellite:CubeSat6U">
18 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
19 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.23/@commSubsystem.1" frequency="300" pathLength="150"/>
20 <payload xsi:type="satellite:InterferometryPayload"/>
21 </spacecraft>
22 <spacecraft xsi:type="satellite:CubeSat6U">
23 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.13/@commSubsystem.0" frequency="8000" pathLength="150"/>
24 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
25 <payload xsi:type="satellite:InterferometryPayload"/>
26 </spacecraft>
27 <spacecraft xsi:type="satellite:CubeSat3U">
28 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.2/@commSubsystem.0" frequency="300" pathLength="150"/>
29 <payload xsi:type="satellite:InterferometryPayload"/>
30 </spacecraft>
31 <spacecraft xsi:type="satellite:CubeSat3U">
32 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
33 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1" frequency="8000" pathLength="385000"/>
34 <payload xsi:type="satellite:InterferometryPayload"/>
35 </spacecraft>
36 <spacecraft xsi:type="satellite:CubeSat3U">
37 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
38 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.23/@commSubsystem.1" frequency="300" pathLength="150"/>
39 <payload xsi:type="satellite:InterferometryPayload"/>
40 </spacecraft>
41 <spacecraft xsi:type="satellite:CubeSat3U">
42 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
43 <payload xsi:type="satellite:InterferometryPayload"/>
44 </spacecraft>
45 <spacecraft xsi:type="satellite:SmallSat">
46 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@spacecraft.1/@commSubsystem.1" frequency="26500" pathLength="150"/>
47 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
48 <payload xsi:type="satellite:InterferometryPayload"/>
49 </spacecraft>
50 <spacecraft xsi:type="satellite:CubeSat6U">
51 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.13/@commSubsystem.1" frequency="300" pathLength="150"/>
52 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
53 <payload xsi:type="satellite:InterferometryPayload"/>
54 </spacecraft>
55 <spacecraft xsi:type="satellite:CubeSat3U">
56 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.21/@commSubsystem.1" frequency="300" pathLength="150"/>
57 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
58 <payload xsi:type="satellite:InterferometryPayload"/>
59 </spacecraft>
60 <spacecraft xsi:type="satellite:CubeSat6U">
61 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.17/@commSubsystem.1" frequency="8000" pathLength="150"/>
62 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
63 <payload xsi:type="satellite:InterferometryPayload"/>
64 </spacecraft>
65 <spacecraft xsi:type="satellite:CubeSat6U">
66 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.0/@commSubsystem.1" frequency="8000" pathLength="150"/>
67 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
68 <payload xsi:type="satellite:InterferometryPayload"/>
69 </spacecraft>
70 <spacecraft xsi:type="satellite:CubeSat6U">
71 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.5/@commSubsystem.0" frequency="8000" pathLength="150"/>
72 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
73 <payload xsi:type="satellite:InterferometryPayload"/>
74 </spacecraft>
75 <spacecraft xsi:type="satellite:CubeSat6U">
76 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.9/@commSubsystem.1" frequency="300" pathLength="150"/>
77 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
78 <payload xsi:type="satellite:InterferometryPayload"/>
79 </spacecraft>
80 <spacecraft xsi:type="satellite:CubeSat6U">
81 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
82 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.5/@commSubsystem.1" frequency="8000" pathLength="150"/>
83 <payload xsi:type="satellite:InterferometryPayload"/>
84 </spacecraft>
85 <spacecraft xsi:type="satellite:SmallSat">
86 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.0/@commSubsystem.0" frequency="300" pathLength="150"/>
87 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
88 </spacecraft>
89 <spacecraft xsi:type="satellite:SmallSat">
90 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.0/@commSubsystem.1" frequency="8000" pathLength="150"/>
91 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
92 <payload xsi:type="satellite:InterferometryPayload"/>
93 </spacecraft>
94 <spacecraft xsi:type="satellite:CubeSat6U">
95 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
96 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.11/@commSubsystem.0" frequency="8000" pathLength="150"/>
97 <payload xsi:type="satellite:InterferometryPayload"/>
98 </spacecraft>
99 <spacecraft xsi:type="satellite:SmallSat">
100 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.18/@commSubsystem.1" frequency="8000" pathLength="150"/>
101 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
102 <payload xsi:type="satellite:InterferometryPayload"/>
103 </spacecraft>
104 <spacecraft xsi:type="satellite:CubeSat6U">
105 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
106 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.24/@commSubsystem.1" frequency="300" pathLength="150"/>
107 <payload xsi:type="satellite:InterferometryPayload"/>
108 </spacecraft>
109 <spacecraft xsi:type="satellite:SmallSat">
110 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
111 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.22/@commSubsystem.1" frequency="300" pathLength="150"/>
112 <payload xsi:type="satellite:InterferometryPayload"/>
113 </spacecraft>
114 <spacecraft xsi:type="satellite:CubeSat3U">
115 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
116 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.23/@commSubsystem.1" frequency="300" pathLength="150"/>
117 <payload xsi:type="satellite:InterferometryPayload"/>
118 </spacecraft>
119 <spacecraft xsi:type="satellite:CubeSat6U">
120 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
121 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.9/@commSubsystem.0" frequency="300" pathLength="150"/>
122 <payload xsi:type="satellite:InterferometryPayload"/>
123 </spacecraft>
124 <spacecraft xsi:type="satellite:CubeSat3U">
125 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
126 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.9/@commSubsystem.1" frequency="300" pathLength="150"/>
127 <payload xsi:type="satellite:InterferometryPayload"/>
128 </spacecraft>
129</satellite:InterferometryMission>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/6_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/6_1.xmi
new file mode 100644
index 00000000..cf399d44
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/6_1.xmi
@@ -0,0 +1,129 @@
1<?xml version="1.0" encoding="ASCII"?>
2<satellite:InterferometryMission xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:satellite="http://www.example.org/satellite" xsi:schemaLocation="http://www.example.org/satellite ../../../Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore">
3 <groundStationNetwork>
4 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
5 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:SmallSat">
8 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0" frequency="26500" pathLength="385000"/>
9 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
10 <payload xsi:type="satellite:InterferometryPayload"/>
11 </spacecraft>
12 <spacecraft xsi:type="satellite:CubeSat3U">
13 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.2/@commSubsystem.1" frequency="300" pathLength="150"/>
14 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
15 <payload xsi:type="satellite:InterferometryPayload"/>
16 </spacecraft>
17 <spacecraft xsi:type="satellite:CubeSat3U">
18 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
19 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.0/@commSubsystem.1" frequency="300" pathLength="150"/>
20 <payload xsi:type="satellite:InterferometryPayload"/>
21 </spacecraft>
22 <spacecraft xsi:type="satellite:CubeSat6U">
23 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.0/@commSubsystem.1" frequency="300" pathLength="150"/>
24 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
25 <payload xsi:type="satellite:InterferometryPayload"/>
26 </spacecraft>
27 <spacecraft xsi:type="satellite:CubeSat3U">
28 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
29 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.11/@commSubsystem.1" frequency="300" pathLength="150"/>
30 <payload xsi:type="satellite:InterferometryPayload"/>
31 </spacecraft>
32 <spacecraft xsi:type="satellite:SmallSat">
33 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.24/@commSubsystem.0" frequency="8000" pathLength="150"/>
34 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
35 <payload xsi:type="satellite:InterferometryPayload"/>
36 </spacecraft>
37 <spacecraft xsi:type="satellite:SmallSat">
38 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@spacecraft.0/@commSubsystem.0" frequency="26500" pathLength="150"/>
39 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
40 </spacecraft>
41 <spacecraft xsi:type="satellite:CubeSat3U">
42 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
43 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.15/@commSubsystem.1" frequency="300" pathLength="150"/>
44 <payload xsi:type="satellite:InterferometryPayload"/>
45 </spacecraft>
46 <spacecraft xsi:type="satellite:CubeSat6U">
47 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
48 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.14/@commSubsystem.0" frequency="300" pathLength="150"/>
49 <payload xsi:type="satellite:InterferometryPayload"/>
50 </spacecraft>
51 <spacecraft xsi:type="satellite:CubeSat6U">
52 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
53 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.13/@commSubsystem.1" frequency="300" pathLength="150"/>
54 <payload xsi:type="satellite:InterferometryPayload"/>
55 </spacecraft>
56 <spacecraft xsi:type="satellite:CubeSat3U">
57 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
58 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.1/@commSubsystem.0" frequency="300" pathLength="150"/>
59 <payload xsi:type="satellite:InterferometryPayload"/>
60 </spacecraft>
61 <spacecraft xsi:type="satellite:SmallSat">
62 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.22/@commSubsystem.1" frequency="8000" pathLength="150"/>
63 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
64 <payload xsi:type="satellite:InterferometryPayload"/>
65 </spacecraft>
66 <spacecraft xsi:type="satellite:CubeSat3U">
67 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
68 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
69 <payload xsi:type="satellite:InterferometryPayload"/>
70 </spacecraft>
71 <spacecraft xsi:type="satellite:SmallSat">
72 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.11/@commSubsystem.0" frequency="8000" pathLength="150"/>
73 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
74 <payload xsi:type="satellite:InterferometryPayload"/>
75 </spacecraft>
76 <spacecraft xsi:type="satellite:SmallSat">
77 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.13/@commSubsystem.1" frequency="300" pathLength="150"/>
78 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
79 <payload xsi:type="satellite:InterferometryPayload"/>
80 </spacecraft>
81 <spacecraft xsi:type="satellite:SmallSat">
82 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
83 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.8/@commSubsystem.1" frequency="300" pathLength="150"/>
84 <payload xsi:type="satellite:InterferometryPayload"/>
85 </spacecraft>
86 <spacecraft xsi:type="satellite:CubeSat6U">
87 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
88 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.3/@commSubsystem.0" frequency="300" pathLength="150"/>
89 <payload xsi:type="satellite:InterferometryPayload"/>
90 </spacecraft>
91 <spacecraft xsi:type="satellite:CubeSat6U">
92 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.18/@commSubsystem.1" frequency="8000" pathLength="150"/>
93 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
94 </spacecraft>
95 <spacecraft xsi:type="satellite:CubeSat6U">
96 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
97 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.19/@commSubsystem.0" frequency="8000" pathLength="150"/>
98 <payload xsi:type="satellite:InterferometryPayload"/>
99 </spacecraft>
100 <spacecraft xsi:type="satellite:CubeSat6U">
101 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.4/@commSubsystem.0" frequency="8000" pathLength="150"/>
102 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
103 <payload xsi:type="satellite:InterferometryPayload"/>
104 </spacecraft>
105 <spacecraft xsi:type="satellite:CubeSat3U">
106 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
107 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
108 <payload xsi:type="satellite:InterferometryPayload"/>
109 </spacecraft>
110 <spacecraft xsi:type="satellite:CubeSat3U">
111 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.7/@commSubsystem.1" frequency="300" pathLength="150"/>
112 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
113 </spacecraft>
114 <spacecraft xsi:type="satellite:CubeSat3U">
115 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.0/@commSubsystem.1" frequency="300" pathLength="150"/>
116 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
117 <payload xsi:type="satellite:InterferometryPayload"/>
118 </spacecraft>
119 <spacecraft xsi:type="satellite:CubeSat6U">
120 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
121 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.11/@commSubsystem.0" frequency="8000" pathLength="150"/>
122 <payload xsi:type="satellite:InterferometryPayload"/>
123 </spacecraft>
124 <spacecraft xsi:type="satellite:CubeSat6U">
125 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.22/@commSubsystem.1" frequency="8000" pathLength="150"/>
126 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
127 <payload xsi:type="satellite:InterferometryPayload"/>
128 </spacecraft>
129</satellite:InterferometryMission>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/7_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/7_1.xmi
new file mode 100644
index 00000000..bd1a4072
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/7_1.xmi
@@ -0,0 +1,129 @@
1<?xml version="1.0" encoding="ASCII"?>
2<satellite:InterferometryMission xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:satellite="http://www.example.org/satellite" xsi:schemaLocation="http://www.example.org/satellite ../../../Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore">
3 <groundStationNetwork>
4 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
5 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:SmallSat">
8 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
9 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0" frequency="26500" pathLength="385000"/>
10 <payload xsi:type="satellite:InterferometryPayload"/>
11 </spacecraft>
12 <spacecraft xsi:type="satellite:CubeSat6U">
13 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.15/@commSubsystem.1" frequency="8000" pathLength="150"/>
14 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
15 <payload xsi:type="satellite:InterferometryPayload"/>
16 </spacecraft>
17 <spacecraft xsi:type="satellite:CubeSat6U">
18 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
19 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.4/@commSubsystem.0" frequency="8000" pathLength="150"/>
20 <payload xsi:type="satellite:InterferometryPayload"/>
21 </spacecraft>
22 <spacecraft xsi:type="satellite:SmallSat">
23 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0" frequency="26500" pathLength="385000"/>
24 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
25 <payload xsi:type="satellite:InterferometryPayload"/>
26 </spacecraft>
27 <spacecraft xsi:type="satellite:CubeSat3U">
28 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
29 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.19/@commSubsystem.0" frequency="300" pathLength="150"/>
30 <payload xsi:type="satellite:InterferometryPayload"/>
31 </spacecraft>
32 <spacecraft xsi:type="satellite:SmallSat">
33 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.22/@commSubsystem.0" frequency="300" pathLength="150"/>
34 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
35 <payload xsi:type="satellite:InterferometryPayload"/>
36 </spacecraft>
37 <spacecraft xsi:type="satellite:CubeSat6U">
38 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
39 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.18/@commSubsystem.0" frequency="300" pathLength="150"/>
40 <payload xsi:type="satellite:InterferometryPayload"/>
41 </spacecraft>
42 <spacecraft xsi:type="satellite:CubeSat6U">
43 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.8/@commSubsystem.1" frequency="8000" pathLength="150"/>
44 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
45 <payload xsi:type="satellite:InterferometryPayload"/>
46 </spacecraft>
47 <spacecraft xsi:type="satellite:CubeSat3U">
48 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
49 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
50 <payload xsi:type="satellite:InterferometryPayload"/>
51 </spacecraft>
52 <spacecraft xsi:type="satellite:CubeSat3U">
53 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
54 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
55 <payload xsi:type="satellite:InterferometryPayload"/>
56 </spacecraft>
57 <spacecraft xsi:type="satellite:SmallSat">
58 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
59 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.18/@commSubsystem.1" frequency="8000" pathLength="150"/>
60 <payload xsi:type="satellite:InterferometryPayload"/>
61 </spacecraft>
62 <spacecraft xsi:type="satellite:CubeSat3U">
63 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
64 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
65 <payload xsi:type="satellite:InterferometryPayload"/>
66 </spacecraft>
67 <spacecraft xsi:type="satellite:SmallSat">
68 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@spacecraft.3/@commSubsystem.0" frequency="26500" pathLength="150"/>
69 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
70 <payload xsi:type="satellite:InterferometryPayload"/>
71 </spacecraft>
72 <spacecraft xsi:type="satellite:SmallSat">
73 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
74 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.14/@commSubsystem.0" frequency="300" pathLength="150"/>
75 <payload xsi:type="satellite:InterferometryPayload"/>
76 </spacecraft>
77 <spacecraft xsi:type="satellite:CubeSat3U">
78 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.22/@commSubsystem.0" frequency="300" pathLength="150"/>
79 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
80 <payload xsi:type="satellite:InterferometryPayload"/>
81 </spacecraft>
82 <spacecraft xsi:type="satellite:CubeSat6U">
83 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.18/@commSubsystem.1" frequency="8000" pathLength="150"/>
84 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
85 <payload xsi:type="satellite:InterferometryPayload"/>
86 </spacecraft>
87 <spacecraft xsi:type="satellite:CubeSat6U">
88 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.19/@commSubsystem.0" frequency="300" pathLength="150"/>
89 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
90 <payload xsi:type="satellite:InterferometryPayload"/>
91 </spacecraft>
92 <spacecraft xsi:type="satellite:CubeSat3U">
93 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.23/@commSubsystem.1" frequency="300" pathLength="150"/>
94 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
95 <payload xsi:type="satellite:InterferometryPayload"/>
96 </spacecraft>
97 <spacecraft xsi:type="satellite:CubeSat6U">
98 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.16/@commSubsystem.0" frequency="300" pathLength="150"/>
99 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
100 <payload xsi:type="satellite:InterferometryPayload"/>
101 </spacecraft>
102 <spacecraft xsi:type="satellite:CubeSat6U">
103 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
104 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.8/@commSubsystem.0" frequency="8000" pathLength="150"/>
105 <payload xsi:type="satellite:InterferometryPayload"/>
106 </spacecraft>
107 <spacecraft xsi:type="satellite:SmallSat">
108 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
109 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@spacecraft.3/@commSubsystem.0" frequency="26500" pathLength="150"/>
110 </spacecraft>
111 <spacecraft xsi:type="satellite:SmallSat">
112 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.2/@commSubsystem.0" frequency="300" pathLength="150"/>
113 <payload xsi:type="satellite:InterferometryPayload"/>
114 </spacecraft>
115 <spacecraft xsi:type="satellite:CubeSat6U">
116 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
117 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.16/@commSubsystem.1" frequency="300" pathLength="150"/>
118 <payload xsi:type="satellite:InterferometryPayload"/>
119 </spacecraft>
120 <spacecraft xsi:type="satellite:CubeSat3U">
121 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
122 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.14/@commSubsystem.0" frequency="300" pathLength="150"/>
123 <payload xsi:type="satellite:InterferometryPayload"/>
124 </spacecraft>
125 <spacecraft xsi:type="satellite:CubeSat3U">
126 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
127 <payload xsi:type="satellite:InterferometryPayload"/>
128 </spacecraft>
129</satellite:InterferometryMission>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/8_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/8_1.xmi
new file mode 100644
index 00000000..51289c6a
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/8_1.xmi
@@ -0,0 +1,129 @@
1<?xml version="1.0" encoding="ASCII"?>
2<satellite:InterferometryMission xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:satellite="http://www.example.org/satellite" xsi:schemaLocation="http://www.example.org/satellite ../../../Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore">
3 <groundStationNetwork>
4 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
5 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:CubeSat6U">
8 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.10/@commSubsystem.0" frequency="300" pathLength="150"/>
9 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
10 <payload xsi:type="satellite:InterferometryPayload"/>
11 </spacecraft>
12 <spacecraft xsi:type="satellite:CubeSat6U">
13 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
14 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.6/@commSubsystem.0" frequency="300" pathLength="150"/>
15 <payload xsi:type="satellite:InterferometryPayload"/>
16 </spacecraft>
17 <spacecraft xsi:type="satellite:CubeSat3U">
18 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0" frequency="8000" pathLength="385000"/>
19 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
20 <payload xsi:type="satellite:InterferometryPayload"/>
21 </spacecraft>
22 <spacecraft xsi:type="satellite:CubeSat3U">
23 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
24 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.7/@commSubsystem.0" frequency="300" pathLength="150"/>
25 <payload xsi:type="satellite:InterferometryPayload"/>
26 </spacecraft>
27 <spacecraft xsi:type="satellite:CubeSat6U">
28 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
29 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.5/@commSubsystem.1" frequency="300" pathLength="150"/>
30 <payload xsi:type="satellite:InterferometryPayload"/>
31 </spacecraft>
32 <spacecraft xsi:type="satellite:CubeSat3U">
33 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
34 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.10/@commSubsystem.0" frequency="300" pathLength="150"/>
35 <payload xsi:type="satellite:InterferometryPayload"/>
36 </spacecraft>
37 <spacecraft xsi:type="satellite:CubeSat6U">
38 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.3/@commSubsystem.1" frequency="300" pathLength="150"/>
39 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
40 </spacecraft>
41 <spacecraft xsi:type="satellite:CubeSat6U">
42 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.9/@commSubsystem.0" frequency="300" pathLength="150"/>
43 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
44 <payload xsi:type="satellite:InterferometryPayload"/>
45 </spacecraft>
46 <spacecraft xsi:type="satellite:SmallSat">
47 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0" frequency="8000" pathLength="385000"/>
48 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
49 </spacecraft>
50 <spacecraft xsi:type="satellite:CubeSat3U">
51 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.18/@commSubsystem.1" frequency="300" pathLength="150"/>
52 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
53 <payload xsi:type="satellite:InterferometryPayload"/>
54 </spacecraft>
55 <spacecraft xsi:type="satellite:CubeSat3U">
56 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.7/@commSubsystem.0" frequency="300" pathLength="150"/>
57 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
58 <payload xsi:type="satellite:InterferometryPayload"/>
59 </spacecraft>
60 <spacecraft xsi:type="satellite:CubeSat3U">
61 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0" frequency="8000" pathLength="385000"/>
62 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
63 <payload xsi:type="satellite:InterferometryPayload"/>
64 </spacecraft>
65 <spacecraft xsi:type="satellite:CubeSat6U">
66 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.11/@commSubsystem.0" frequency="8000" pathLength="150"/>
67 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
68 <payload xsi:type="satellite:InterferometryPayload"/>
69 </spacecraft>
70 <spacecraft xsi:type="satellite:SmallSat">
71 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
72 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@spacecraft.20/@commSubsystem.1" frequency="26500" pathLength="150"/>
73 <payload xsi:type="satellite:InterferometryPayload"/>
74 </spacecraft>
75 <spacecraft xsi:type="satellite:SmallSat">
76 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
77 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.1/@commSubsystem.1" frequency="300" pathLength="150"/>
78 </spacecraft>
79 <spacecraft xsi:type="satellite:CubeSat6U">
80 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
81 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.19/@commSubsystem.0" frequency="300" pathLength="150"/>
82 <payload xsi:type="satellite:InterferometryPayload"/>
83 </spacecraft>
84 <spacecraft xsi:type="satellite:SmallSat">
85 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
86 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.7/@commSubsystem.1" frequency="8000" pathLength="150"/>
87 <payload xsi:type="satellite:InterferometryPayload"/>
88 </spacecraft>
89 <spacecraft xsi:type="satellite:SmallSat">
90 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
91 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@spacecraft.13/@commSubsystem.1" frequency="26500" pathLength="150"/>
92 <payload xsi:type="satellite:InterferometryPayload"/>
93 </spacecraft>
94 <spacecraft xsi:type="satellite:CubeSat6U">
95 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.2/@commSubsystem.1" frequency="8000" pathLength="150"/>
96 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
97 <payload xsi:type="satellite:InterferometryPayload"/>
98 </spacecraft>
99 <spacecraft xsi:type="satellite:SmallSat">
100 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.18/@commSubsystem.1" frequency="300" pathLength="150"/>
101 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
102 <payload xsi:type="satellite:InterferometryPayload"/>
103 </spacecraft>
104 <spacecraft xsi:type="satellite:SmallSat">
105 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.7/@commSubsystem.1" frequency="8000" pathLength="150"/>
106 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
107 <payload xsi:type="satellite:InterferometryPayload"/>
108 </spacecraft>
109 <spacecraft xsi:type="satellite:SmallSat">
110 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.2/@commSubsystem.1" frequency="8000" pathLength="150"/>
111 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
112 <payload xsi:type="satellite:InterferometryPayload"/>
113 </spacecraft>
114 <spacecraft xsi:type="satellite:CubeSat3U">
115 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0" frequency="8000" pathLength="385000"/>
116 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
117 <payload xsi:type="satellite:InterferometryPayload"/>
118 </spacecraft>
119 <spacecraft xsi:type="satellite:CubeSat6U">
120 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
121 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.7/@commSubsystem.0" frequency="300" pathLength="150"/>
122 <payload xsi:type="satellite:InterferometryPayload"/>
123 </spacecraft>
124 <spacecraft xsi:type="satellite:CubeSat3U">
125 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
126 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0" frequency="8000" pathLength="385000"/>
127 <payload xsi:type="satellite:InterferometryPayload"/>
128 </spacecraft>
129</satellite:InterferometryMission>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/9_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/9_1.xmi
new file mode 100644
index 00000000..a9adec32
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Satellite/9_1.xmi
@@ -0,0 +1,132 @@
1<?xml version="1.0" encoding="ASCII"?>
2<satellite:InterferometryMission xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:satellite="http://www.example.org/satellite" xsi:schemaLocation="http://www.example.org/satellite ../../../Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore">
3 <groundStationNetwork>
4 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
5 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:SmallSat">
8 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
9 <payload xsi:type="satellite:InterferometryPayload"/>
10 </spacecraft>
11 <spacecraft xsi:type="satellite:CubeSat6U">
12 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
13 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.7/@commSubsystem.1" frequency="300" pathLength="150"/>
14 <payload xsi:type="satellite:InterferometryPayload"/>
15 </spacecraft>
16 <spacecraft xsi:type="satellite:SmallSat">
17 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
18 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.15/@commSubsystem.0" frequency="300" pathLength="150"/>
19 <payload xsi:type="satellite:InterferometryPayload"/>
20 </spacecraft>
21 <spacecraft xsi:type="satellite:CubeSat3U">
22 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
23 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0" frequency="8000" pathLength="385000"/>
24 <payload xsi:type="satellite:InterferometryPayload"/>
25 </spacecraft>
26 <spacecraft xsi:type="satellite:CubeSat3U">
27 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0" frequency="8000" pathLength="385000"/>
28 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
29 <payload xsi:type="satellite:InterferometryPayload"/>
30 </spacecraft>
31 <spacecraft xsi:type="satellite:CubeSat6U">
32 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0" frequency="8000" pathLength="385000"/>
33 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
34 <payload xsi:type="satellite:InterferometryPayload"/>
35 </spacecraft>
36 <spacecraft xsi:type="satellite:CubeSat6U">
37 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.24/@commSubsystem.0" frequency="8000" pathLength="150"/>
38 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
39 <payload xsi:type="satellite:InterferometryPayload"/>
40 </spacecraft>
41 <spacecraft xsi:type="satellite:CubeSat3U">
42 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0" frequency="8000" pathLength="385000"/>
43 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
44 <payload xsi:type="satellite:InterferometryPayload"/>
45 </spacecraft>
46 <spacecraft xsi:type="satellite:CubeSat3U">
47 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
48 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.4/@commSubsystem.1" frequency="300" pathLength="150"/>
49 <payload xsi:type="satellite:InterferometryPayload"/>
50 </spacecraft>
51 <spacecraft xsi:type="satellite:CubeSat3U">
52 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
53 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.2/@commSubsystem.1" frequency="300" pathLength="150"/>
54 <payload xsi:type="satellite:InterferometryPayload"/>
55 </spacecraft>
56 <spacecraft xsi:type="satellite:CubeSat6U">
57 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
58 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.4/@commSubsystem.0" frequency="8000" pathLength="150"/>
59 <payload xsi:type="satellite:InterferometryPayload"/>
60 </spacecraft>
61 <spacecraft xsi:type="satellite:CubeSat6U">
62 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.16/@commSubsystem.1" frequency="8000" pathLength="150"/>
63 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
64 <payload xsi:type="satellite:InterferometryPayload"/>
65 </spacecraft>
66 <spacecraft xsi:type="satellite:CubeSat3U">
67 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
68 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.25/@commSubsystem.1" frequency="300" pathLength="150"/>
69 <payload xsi:type="satellite:InterferometryPayload"/>
70 </spacecraft>
71 <spacecraft xsi:type="satellite:CubeSat3U">
72 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
73 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.17/@commSubsystem.0" frequency="300" pathLength="150"/>
74 <payload xsi:type="satellite:InterferometryPayload"/>
75 </spacecraft>
76 <spacecraft xsi:type="satellite:CubeSat6U">
77 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.20/@commSubsystem.1" frequency="300" pathLength="150"/>
78 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
79 <payload xsi:type="satellite:InterferometryPayload"/>
80 </spacecraft>
81 <spacecraft xsi:type="satellite:CubeSat3U">
82 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.8/@commSubsystem.1" frequency="300" pathLength="150"/>
83 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
84 <payload xsi:type="satellite:InterferometryPayload"/>
85 </spacecraft>
86 <spacecraft xsi:type="satellite:SmallSat">
87 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
88 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.20/@commSubsystem.0" frequency="8000" pathLength="150"/>
89 <payload xsi:type="satellite:InterferometryPayload"/>
90 </spacecraft>
91 <spacecraft xsi:type="satellite:CubeSat6U">
92 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.20/@commSubsystem.1" frequency="300" pathLength="150"/>
93 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
94 <payload xsi:type="satellite:InterferometryPayload"/>
95 </spacecraft>
96 <spacecraft xsi:type="satellite:CubeSat6U">
97 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
98 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.7/@commSubsystem.1" frequency="300" pathLength="150"/>
99 <payload xsi:type="satellite:InterferometryPayload"/>
100 </spacecraft>
101 <spacecraft xsi:type="satellite:CubeSat3U">
102 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.17/@commSubsystem.1" frequency="300" pathLength="150"/>
103 </spacecraft>
104 <spacecraft xsi:type="satellite:SmallSat">
105 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
106 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.8/@commSubsystem.1" frequency="300" pathLength="150"/>
107 <payload xsi:type="satellite:InterferometryPayload"/>
108 </spacecraft>
109 <spacecraft xsi:type="satellite:SmallSat">
110 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.9/@commSubsystem.0" frequency="8000" pathLength="150"/>
111 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
112 </spacecraft>
113 <spacecraft xsi:type="satellite:SmallSat">
114 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@spacecraft.16/@commSubsystem.0" frequency="26500" pathLength="150"/>
115 <commSubsystem xsi:type="satellite:KaCommSubsystem" frequency="26500"/>
116 <payload xsi:type="satellite:InterferometryPayload"/>
117 </spacecraft>
118 <spacecraft xsi:type="satellite:CubeSat3U">
119 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0" frequency="8000" pathLength="385000"/>
120 <commSubsystem xsi:type="satellite:UHFCommSubsystem" frequency="300"/>
121 </spacecraft>
122 <spacecraft xsi:type="satellite:CubeSat6U">
123 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
124 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.10/@commSubsystem.1" frequency="8000" pathLength="150"/>
125 <payload xsi:type="satellite:InterferometryPayload"/>
126 </spacecraft>
127 <spacecraft xsi:type="satellite:CubeSat3U">
128 <commSubsystem xsi:type="satellite:XCommSubsystem" frequency="8000"/>
129 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.17/@commSubsystem.0" frequency="300" pathLength="150"/>
130 <payload xsi:type="satellite:InterferometryPayload"/>
131 </spacecraft>
132</satellite:InterferometryMission>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/10_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/10_1.xmi
new file mode 100644
index 00000000..77457289
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/10_1.xmi
@@ -0,0 +1,135 @@
1<?xml version="1.0" encoding="ASCII"?>
2<satellite:InterferometryMission xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:satellite="http://www.example.org/satellite" xsi:schemaLocation="http://www.example.org/satellite ../../../Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore">
3 <groundStationNetwork>
4 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
5 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:CubeSat6U">
8 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
9 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.25/@commSubsystem.0"/>
10 <payload xsi:type="satellite:InterferometryPayload"/>
11 </spacecraft>
12 <spacecraft xsi:type="satellite:SmallSat">
13 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
14 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.11/@commSubsystem.0"/>
15 <payload xsi:type="satellite:InterferometryPayload"/>
16 </spacecraft>
17 <spacecraft xsi:type="satellite:SmallSat">
18 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
19 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0"/>
20 <payload xsi:type="satellite:InterferometryPayload"/>
21 </spacecraft>
22 <spacecraft xsi:type="satellite:CubeSat3U">
23 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
24 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.17/@commSubsystem.1"/>
25 <payload xsi:type="satellite:InterferometryPayload"/>
26 </spacecraft>
27 <spacecraft xsi:type="satellite:SmallSat">
28 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
29 </spacecraft>
30 <spacecraft xsi:type="satellite:CubeSat3U">
31 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
32 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.11/@commSubsystem.0"/>
33 <payload xsi:type="satellite:InterferometryPayload"/>
34 </spacecraft>
35 <spacecraft xsi:type="satellite:CubeSat6U">
36 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.20/@commSubsystem.0"/>
37 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
38 <payload xsi:type="satellite:InterferometryPayload"/>
39 </spacecraft>
40 <spacecraft xsi:type="satellite:CubeSat6U">
41 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
42 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.11/@commSubsystem.0"/>
43 <payload xsi:type="satellite:InterferometryPayload"/>
44 </spacecraft>
45 <spacecraft xsi:type="satellite:SmallSat">
46 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@spacecraft.1/@commSubsystem.0"/>
47 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
48 </spacecraft>
49 <spacecraft xsi:type="satellite:SmallSat">
50 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
51 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.19/@commSubsystem.1"/>
52 <payload xsi:type="satellite:InterferometryPayload"/>
53 </spacecraft>
54 <spacecraft xsi:type="satellite:CubeSat3U">
55 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0"/>
56 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
57 <payload xsi:type="satellite:InterferometryPayload"/>
58 </spacecraft>
59 <spacecraft xsi:type="satellite:CubeSat6U">
60 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
61 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.25/@commSubsystem.0"/>
62 <payload xsi:type="satellite:InterferometryPayload"/>
63 </spacecraft>
64 <spacecraft xsi:type="satellite:SmallSat">
65 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
66 </spacecraft>
67 <spacecraft xsi:type="satellite:CubeSat6U">
68 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
69 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.11/@commSubsystem.1"/>
70 <payload xsi:type="satellite:InterferometryPayload"/>
71 </spacecraft>
72 <spacecraft xsi:type="satellite:CubeSat6U">
73 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.18/@commSubsystem.1"/>
74 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
75 <payload xsi:type="satellite:InterferometryPayload"/>
76 </spacecraft>
77 <spacecraft xsi:type="satellite:CubeSat6U">
78 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.17/@commSubsystem.0"/>
79 <payload xsi:type="satellite:InterferometryPayload"/>
80 </spacecraft>
81 <spacecraft xsi:type="satellite:CubeSat3U">
82 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
83 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.25/@commSubsystem.0"/>
84 <payload xsi:type="satellite:InterferometryPayload"/>
85 </spacecraft>
86 <spacecraft xsi:type="satellite:CubeSat6U">
87 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
88 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.25/@commSubsystem.0"/>
89 <payload xsi:type="satellite:InterferometryPayload"/>
90 </spacecraft>
91 <spacecraft xsi:type="satellite:CubeSat6U">
92 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.11/@commSubsystem.1"/>
93 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
94 <payload xsi:type="satellite:InterferometryPayload"/>
95 </spacecraft>
96 <spacecraft xsi:type="satellite:SmallSat">
97 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
98 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0"/>
99 <payload xsi:type="satellite:InterferometryPayload"/>
100 </spacecraft>
101 <spacecraft xsi:type="satellite:CubeSat6U">
102 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
103 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.16/@commSubsystem.0"/>
104 <payload xsi:type="satellite:InterferometryPayload"/>
105 </spacecraft>
106 <spacecraft xsi:type="satellite:SmallSat">
107 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
108 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.9/@commSubsystem.0"/>
109 <payload xsi:type="satellite:InterferometryPayload"/>
110 </spacecraft>
111 <spacecraft xsi:type="satellite:SmallSat">
112 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
113 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
114 </spacecraft>
115 <spacecraft xsi:type="satellite:CubeSat6U">
116 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
117 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.2/@commSubsystem.1"/>
118 <payload xsi:type="satellite:InterferometryPayload"/>
119 </spacecraft>
120 <spacecraft xsi:type="satellite:CubeSat3U">
121 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
122 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0"/>
123 <payload xsi:type="satellite:InterferometryPayload"/>
124 </spacecraft>
125 <spacecraft xsi:type="satellite:SmallSat">
126 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.24/@commSubsystem.0"/>
127 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
128 <payload xsi:type="satellite:InterferometryPayload"/>
129 </spacecraft>
130 <spacecraft xsi:type="satellite:CubeSat6U">
131 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.13/@commSubsystem.0"/>
132 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
133 <payload xsi:type="satellite:InterferometryPayload"/>
134 </spacecraft>
135</satellite:InterferometryMission>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/1_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/1_1.xmi
new file mode 100644
index 00000000..65c314e9
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/1_1.xmi
@@ -0,0 +1,137 @@
1<?xml version="1.0" encoding="ASCII"?>
2<satellite:InterferometryMission xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:satellite="http://www.example.org/satellite" xsi:schemaLocation="http://www.example.org/satellite ../../../Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore">
3 <groundStationNetwork>
4 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
5 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:CubeSat6U">
8 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.17/@commSubsystem.1"/>
9 </spacecraft>
10 <spacecraft xsi:type="satellite:SmallSat">
11 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
12 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.24/@commSubsystem.0"/>
13 <payload xsi:type="satellite:InterferometryPayload"/>
14 </spacecraft>
15 <spacecraft xsi:type="satellite:CubeSat6U">
16 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.20/@commSubsystem.1"/>
17 <payload xsi:type="satellite:InterferometryPayload"/>
18 </spacecraft>
19 <spacecraft xsi:type="satellite:CubeSat3U">
20 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
21 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
22 <payload xsi:type="satellite:InterferometryPayload"/>
23 </spacecraft>
24 <spacecraft xsi:type="satellite:CubeSat3U">
25 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
26 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.20/@commSubsystem.1"/>
27 <payload xsi:type="satellite:InterferometryPayload"/>
28 </spacecraft>
29 <spacecraft xsi:type="satellite:CubeSat6U">
30 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.21/@commSubsystem.1"/>
31 <payload xsi:type="satellite:InterferometryPayload"/>
32 </spacecraft>
33 <spacecraft xsi:type="satellite:CubeSat3U">
34 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.20/@commSubsystem.1"/>
35 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
36 <payload xsi:type="satellite:InterferometryPayload"/>
37 </spacecraft>
38 <spacecraft xsi:type="satellite:SmallSat">
39 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.24/@commSubsystem.1"/>
40 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
41 <payload xsi:type="satellite:InterferometryPayload"/>
42 </spacecraft>
43 <spacecraft xsi:type="satellite:SmallSat">
44 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.27/@commSubsystem.1"/>
45 </spacecraft>
46 <spacecraft xsi:type="satellite:CubeSat3U">
47 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.21/@commSubsystem.0"/>
48 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
49 <payload xsi:type="satellite:InterferometryPayload"/>
50 </spacecraft>
51 <spacecraft xsi:type="satellite:SmallSat">
52 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
53 <payload xsi:type="satellite:InterferometryPayload"/>
54 </spacecraft>
55 <spacecraft xsi:type="satellite:CubeSat3U">
56 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.14/@commSubsystem.0"/>
57 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
58 <payload xsi:type="satellite:InterferometryPayload"/>
59 </spacecraft>
60 <spacecraft xsi:type="satellite:CubeSat6U">
61 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.22/@commSubsystem.0"/>
62 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
63 <payload xsi:type="satellite:InterferometryPayload"/>
64 </spacecraft>
65 <spacecraft xsi:type="satellite:CubeSat6U">
66 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.21/@commSubsystem.1"/>
67 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
68 <payload xsi:type="satellite:InterferometryPayload"/>
69 </spacecraft>
70 <spacecraft xsi:type="satellite:CubeSat3U">
71 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
72 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.12/@commSubsystem.1"/>
73 <payload xsi:type="satellite:InterferometryPayload"/>
74 </spacecraft>
75 <spacecraft xsi:type="satellite:CubeSat3U">
76 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.14/@commSubsystem.1"/>
77 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
78 <payload xsi:type="satellite:InterferometryPayload"/>
79 </spacecraft>
80 <spacecraft xsi:type="satellite:CubeSat6U">
81 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.6/@commSubsystem.0"/>
82 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
83 </spacecraft>
84 <spacecraft xsi:type="satellite:CubeSat6U">
85 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.19/@commSubsystem.0"/>
86 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
87 <payload xsi:type="satellite:InterferometryPayload"/>
88 </spacecraft>
89 <spacecraft xsi:type="satellite:SmallSat">
90 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.12/@commSubsystem.1"/>
91 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
92 <payload xsi:type="satellite:InterferometryPayload"/>
93 </spacecraft>
94 <spacecraft xsi:type="satellite:CubeSat3U">
95 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
96 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
97 <payload xsi:type="satellite:InterferometryPayload"/>
98 </spacecraft>
99 <spacecraft xsi:type="satellite:CubeSat3U">
100 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
101 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.14/@commSubsystem.1"/>
102 <payload xsi:type="satellite:InterferometryPayload"/>
103 </spacecraft>
104 <spacecraft xsi:type="satellite:SmallSat">
105 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.14/@commSubsystem.1"/>
106 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
107 <payload xsi:type="satellite:InterferometryPayload"/>
108 </spacecraft>
109 <spacecraft xsi:type="satellite:CubeSat3U">
110 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
111 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
112 <payload xsi:type="satellite:InterferometryPayload"/>
113 </spacecraft>
114 <spacecraft xsi:type="satellite:CubeSat3U">
115 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.16/@commSubsystem.0"/>
116 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
117 <payload xsi:type="satellite:InterferometryPayload"/>
118 </spacecraft>
119 <spacecraft xsi:type="satellite:SmallSat">
120 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.20/@commSubsystem.0"/>
121 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
122 <payload xsi:type="satellite:InterferometryPayload"/>
123 </spacecraft>
124 <spacecraft xsi:type="satellite:CubeSat6U">
125 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.24/@commSubsystem.0"/>
126 </spacecraft>
127 <spacecraft xsi:type="satellite:CubeSat6U">
128 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
129 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.7/@commSubsystem.0"/>
130 <payload xsi:type="satellite:InterferometryPayload"/>
131 </spacecraft>
132 <spacecraft xsi:type="satellite:CubeSat6U">
133 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.24/@commSubsystem.0"/>
134 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
135 <payload xsi:type="satellite:InterferometryPayload"/>
136 </spacecraft>
137</satellite:InterferometryMission>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/2_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/2_1.xmi
new file mode 100644
index 00000000..2b219e7a
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/2_1.xmi
@@ -0,0 +1,131 @@
1<?xml version="1.0" encoding="ASCII"?>
2<satellite:InterferometryMission xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:satellite="http://www.example.org/satellite" xsi:schemaLocation="http://www.example.org/satellite ../../../Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore">
3 <groundStationNetwork>
4 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
5 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:SmallSat">
8 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
9 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
10 <payload xsi:type="satellite:InterferometryPayload"/>
11 </spacecraft>
12 <spacecraft xsi:type="satellite:CubeSat6U">
13 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
14 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.19/@commSubsystem.0"/>
15 </spacecraft>
16 <spacecraft xsi:type="satellite:SmallSat">
17 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
18 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.12/@commSubsystem.0"/>
19 <payload xsi:type="satellite:InterferometryPayload"/>
20 </spacecraft>
21 <spacecraft xsi:type="satellite:SmallSat">
22 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
23 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@spacecraft.13/@commSubsystem.0"/>
24 <payload xsi:type="satellite:InterferometryPayload"/>
25 </spacecraft>
26 <spacecraft xsi:type="satellite:CubeSat3U">
27 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
28 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
29 <payload xsi:type="satellite:InterferometryPayload"/>
30 </spacecraft>
31 <spacecraft xsi:type="satellite:CubeSat6U">
32 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
33 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.13/@commSubsystem.1"/>
34 <payload xsi:type="satellite:InterferometryPayload"/>
35 </spacecraft>
36 <spacecraft xsi:type="satellite:SmallSat">
37 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
38 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.24/@commSubsystem.0"/>
39 <payload xsi:type="satellite:InterferometryPayload"/>
40 </spacecraft>
41 <spacecraft xsi:type="satellite:SmallSat">
42 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
43 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.24/@commSubsystem.0"/>
44 <payload xsi:type="satellite:InterferometryPayload"/>
45 </spacecraft>
46 <spacecraft xsi:type="satellite:CubeSat3U">
47 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.19/@commSubsystem.0"/>
48 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
49 <payload xsi:type="satellite:InterferometryPayload"/>
50 </spacecraft>
51 <spacecraft xsi:type="satellite:CubeSat6U">
52 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.16/@commSubsystem.0"/>
53 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
54 </spacecraft>
55 <spacecraft xsi:type="satellite:CubeSat3U">
56 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.8/@commSubsystem.1"/>
57 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
58 <payload xsi:type="satellite:InterferometryPayload"/>
59 </spacecraft>
60 <spacecraft xsi:type="satellite:CubeSat6U">
61 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.25/@commSubsystem.1"/>
62 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
63 <payload xsi:type="satellite:InterferometryPayload"/>
64 </spacecraft>
65 <spacecraft xsi:type="satellite:CubeSat3U">
66 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
67 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
68 <payload xsi:type="satellite:InterferometryPayload"/>
69 </spacecraft>
70 <spacecraft xsi:type="satellite:SmallSat">
71 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
72 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.20/@commSubsystem.0"/>
73 <payload xsi:type="satellite:InterferometryPayload"/>
74 </spacecraft>
75 <spacecraft xsi:type="satellite:CubeSat6U">
76 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.13/@commSubsystem.1"/>
77 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
78 </spacecraft>
79 <spacecraft xsi:type="satellite:CubeSat3U">
80 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
81 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.19/@commSubsystem.0"/>
82 <payload xsi:type="satellite:InterferometryPayload"/>
83 </spacecraft>
84 <spacecraft xsi:type="satellite:SmallSat">
85 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.19/@commSubsystem.0"/>
86 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
87 <payload xsi:type="satellite:InterferometryPayload"/>
88 </spacecraft>
89 <spacecraft xsi:type="satellite:CubeSat3U">
90 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
91 </spacecraft>
92 <spacecraft xsi:type="satellite:SmallSat">
93 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0"/>
94 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
95 <payload xsi:type="satellite:InterferometryPayload"/>
96 </spacecraft>
97 <spacecraft xsi:type="satellite:CubeSat6U">
98 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
99 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
100 <payload xsi:type="satellite:InterferometryPayload"/>
101 </spacecraft>
102 <spacecraft xsi:type="satellite:SmallSat">
103 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
104 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
105 <payload xsi:type="satellite:InterferometryPayload"/>
106 </spacecraft>
107 <spacecraft xsi:type="satellite:CubeSat6U">
108 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
109 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.22/@commSubsystem.1"/>
110 <payload xsi:type="satellite:InterferometryPayload"/>
111 </spacecraft>
112 <spacecraft xsi:type="satellite:CubeSat6U">
113 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
114 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.24/@commSubsystem.1"/>
115 <payload xsi:type="satellite:InterferometryPayload"/>
116 </spacecraft>
117 <spacecraft xsi:type="satellite:SmallSat">
118 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
119 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.2/@commSubsystem.0"/>
120 </spacecraft>
121 <spacecraft xsi:type="satellite:CubeSat6U">
122 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
123 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.2/@commSubsystem.1"/>
124 <payload xsi:type="satellite:InterferometryPayload"/>
125 </spacecraft>
126 <spacecraft xsi:type="satellite:SmallSat">
127 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
128 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
129 <payload xsi:type="satellite:InterferometryPayload"/>
130 </spacecraft>
131</satellite:InterferometryMission>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/3_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/3_1.xmi
new file mode 100644
index 00000000..c1ce3de5
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/3_1.xmi
@@ -0,0 +1,134 @@
1<?xml version="1.0" encoding="ASCII"?>
2<satellite:InterferometryMission xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:satellite="http://www.example.org/satellite" xsi:schemaLocation="http://www.example.org/satellite ../../../Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore">
3 <groundStationNetwork>
4 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
5 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:CubeSat3U">
8 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
9 </spacecraft>
10 <spacecraft xsi:type="satellite:SmallSat">
11 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
12 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.4/@commSubsystem.1"/>
13 <payload xsi:type="satellite:InterferometryPayload"/>
14 </spacecraft>
15 <spacecraft xsi:type="satellite:CubeSat3U">
16 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
17 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
18 <payload xsi:type="satellite:InterferometryPayload"/>
19 </spacecraft>
20 <spacecraft xsi:type="satellite:CubeSat3U">
21 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
22 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
23 </spacecraft>
24 <spacecraft xsi:type="satellite:CubeSat6U">
25 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.17/@commSubsystem.1"/>
26 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
27 <payload xsi:type="satellite:InterferometryPayload"/>
28 </spacecraft>
29 <spacecraft xsi:type="satellite:CubeSat3U">
30 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
31 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
32 <payload xsi:type="satellite:InterferometryPayload"/>
33 </spacecraft>
34 <spacecraft xsi:type="satellite:SmallSat">
35 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@spacecraft.18/@commSubsystem.0"/>
36 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
37 <payload xsi:type="satellite:InterferometryPayload"/>
38 </spacecraft>
39 <spacecraft xsi:type="satellite:CubeSat6U">
40 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
41 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.14/@commSubsystem.0"/>
42 <payload xsi:type="satellite:InterferometryPayload"/>
43 </spacecraft>
44 <spacecraft xsi:type="satellite:SmallSat">
45 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
46 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.4/@commSubsystem.0"/>
47 <payload xsi:type="satellite:InterferometryPayload"/>
48 </spacecraft>
49 <spacecraft xsi:type="satellite:CubeSat3U">
50 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.15/@commSubsystem.1"/>
51 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
52 <payload xsi:type="satellite:InterferometryPayload"/>
53 </spacecraft>
54 <spacecraft xsi:type="satellite:CubeSat6U">
55 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.11/@commSubsystem.0"/>
56 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
57 <payload xsi:type="satellite:InterferometryPayload"/>
58 </spacecraft>
59 <spacecraft xsi:type="satellite:SmallSat">
60 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.18/@commSubsystem.1"/>
61 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
62 <payload xsi:type="satellite:InterferometryPayload"/>
63 </spacecraft>
64 <spacecraft xsi:type="satellite:CubeSat3U">
65 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
66 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
67 <payload xsi:type="satellite:InterferometryPayload"/>
68 </spacecraft>
69 <spacecraft xsi:type="satellite:CubeSat6U">
70 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.14/@commSubsystem.1"/>
71 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
72 <payload xsi:type="satellite:InterferometryPayload"/>
73 </spacecraft>
74 <spacecraft xsi:type="satellite:CubeSat3U">
75 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
76 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.20/@commSubsystem.1"/>
77 <payload xsi:type="satellite:InterferometryPayload"/>
78 </spacecraft>
79 <spacecraft xsi:type="satellite:CubeSat3U">
80 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
81 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.25/@commSubsystem.1"/>
82 <payload xsi:type="satellite:InterferometryPayload"/>
83 </spacecraft>
84 <spacecraft xsi:type="satellite:SmallSat">
85 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
86 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0"/>
87 <payload xsi:type="satellite:InterferometryPayload"/>
88 </spacecraft>
89 <spacecraft xsi:type="satellite:CubeSat6U">
90 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.14/@commSubsystem.0"/>
91 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
92 <payload xsi:type="satellite:InterferometryPayload"/>
93 </spacecraft>
94 <spacecraft xsi:type="satellite:SmallSat">
95 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
96 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.19/@commSubsystem.1"/>
97 <payload xsi:type="satellite:InterferometryPayload"/>
98 </spacecraft>
99 <spacecraft xsi:type="satellite:CubeSat6U">
100 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
101 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
102 <payload xsi:type="satellite:InterferometryPayload"/>
103 </spacecraft>
104 <spacecraft xsi:type="satellite:CubeSat6U">
105 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
106 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
107 <payload xsi:type="satellite:InterferometryPayload"/>
108 </spacecraft>
109 <spacecraft xsi:type="satellite:CubeSat3U">
110 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
111 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
112 <payload xsi:type="satellite:InterferometryPayload"/>
113 </spacecraft>
114 <spacecraft xsi:type="satellite:SmallSat">
115 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.20/@commSubsystem.1"/>
116 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
117 <payload xsi:type="satellite:InterferometryPayload"/>
118 </spacecraft>
119 <spacecraft xsi:type="satellite:SmallSat">
120 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.24/@commSubsystem.0"/>
121 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
122 <payload xsi:type="satellite:InterferometryPayload"/>
123 </spacecraft>
124 <spacecraft xsi:type="satellite:CubeSat3U">
125 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
126 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.8/@commSubsystem.0"/>
127 <payload xsi:type="satellite:InterferometryPayload"/>
128 </spacecraft>
129 <spacecraft xsi:type="satellite:SmallSat">
130 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
131 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.17/@commSubsystem.1"/>
132 <payload xsi:type="satellite:InterferometryPayload"/>
133 </spacecraft>
134</satellite:InterferometryMission>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/4_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/4_1.xmi
new file mode 100644
index 00000000..969d3315
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/4_1.xmi
@@ -0,0 +1,137 @@
1<?xml version="1.0" encoding="ASCII"?>
2<satellite:InterferometryMission xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:satellite="http://www.example.org/satellite" xsi:schemaLocation="http://www.example.org/satellite ../../../Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore">
3 <groundStationNetwork>
4 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
5 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:CubeSat3U">
8 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
9 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
10 <payload xsi:type="satellite:InterferometryPayload"/>
11 </spacecraft>
12 <spacecraft xsi:type="satellite:CubeSat3U">
13 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
14 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.13/@commSubsystem.1"/>
15 <payload xsi:type="satellite:InterferometryPayload"/>
16 </spacecraft>
17 <spacecraft xsi:type="satellite:SmallSat">
18 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
19 <payload xsi:type="satellite:InterferometryPayload"/>
20 </spacecraft>
21 <spacecraft xsi:type="satellite:SmallSat">
22 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@spacecraft.19/@commSubsystem.0"/>
23 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
24 <payload xsi:type="satellite:InterferometryPayload"/>
25 </spacecraft>
26 <spacecraft xsi:type="satellite:CubeSat3U">
27 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.6/@commSubsystem.0"/>
28 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
29 <payload xsi:type="satellite:InterferometryPayload"/>
30 </spacecraft>
31 <spacecraft xsi:type="satellite:CubeSat3U">
32 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
33 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.17/@commSubsystem.0"/>
34 <payload xsi:type="satellite:InterferometryPayload"/>
35 </spacecraft>
36 <spacecraft xsi:type="satellite:CubeSat3U">
37 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.17/@commSubsystem.1"/>
38 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
39 <payload xsi:type="satellite:InterferometryPayload"/>
40 </spacecraft>
41 <spacecraft xsi:type="satellite:SmallSat">
42 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
43 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.17/@commSubsystem.0"/>
44 <payload xsi:type="satellite:InterferometryPayload"/>
45 </spacecraft>
46 <spacecraft xsi:type="satellite:CubeSat6U">
47 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
48 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.20/@commSubsystem.1"/>
49 <payload xsi:type="satellite:InterferometryPayload"/>
50 </spacecraft>
51 <spacecraft xsi:type="satellite:CubeSat6U">
52 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.7/@commSubsystem.1"/>
53 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
54 </spacecraft>
55 <spacecraft xsi:type="satellite:CubeSat3U">
56 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.17/@commSubsystem.1"/>
57 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
58 <payload xsi:type="satellite:InterferometryPayload"/>
59 </spacecraft>
60 <spacecraft xsi:type="satellite:CubeSat3U">
61 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
62 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
63 </spacecraft>
64 <spacecraft xsi:type="satellite:CubeSat3U">
65 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.6/@commSubsystem.0"/>
66 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
67 <payload xsi:type="satellite:InterferometryPayload"/>
68 </spacecraft>
69 <spacecraft xsi:type="satellite:CubeSat3U">
70 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
71 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.12/@commSubsystem.1"/>
72 <payload xsi:type="satellite:InterferometryPayload"/>
73 </spacecraft>
74 <spacecraft xsi:type="satellite:SmallSat">
75 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.0/@commSubsystem.1"/>
76 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
77 <payload xsi:type="satellite:InterferometryPayload"/>
78 </spacecraft>
79 <spacecraft xsi:type="satellite:CubeSat3U">
80 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.8/@commSubsystem.1"/>
81 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
82 <payload xsi:type="satellite:InterferometryPayload"/>
83 </spacecraft>
84 <spacecraft xsi:type="satellite:SmallSat">
85 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
86 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.23/@commSubsystem.1"/>
87 <payload xsi:type="satellite:InterferometryPayload"/>
88 </spacecraft>
89 <spacecraft xsi:type="satellite:SmallSat">
90 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
91 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
92 <payload xsi:type="satellite:InterferometryPayload"/>
93 </spacecraft>
94 <spacecraft xsi:type="satellite:CubeSat6U">
95 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
96 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.17/@commSubsystem.1"/>
97 <payload xsi:type="satellite:InterferometryPayload"/>
98 </spacecraft>
99 <spacecraft xsi:type="satellite:SmallSat">
100 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0"/>
101 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
102 <payload xsi:type="satellite:InterferometryPayload"/>
103 </spacecraft>
104 <spacecraft xsi:type="satellite:CubeSat3U">
105 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
106 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.6/@commSubsystem.0"/>
107 <payload xsi:type="satellite:InterferometryPayload"/>
108 </spacecraft>
109 <spacecraft xsi:type="satellite:CubeSat6U">
110 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
111 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.0/@commSubsystem.1"/>
112 <payload xsi:type="satellite:InterferometryPayload"/>
113 </spacecraft>
114 <spacecraft xsi:type="satellite:SmallSat">
115 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.12/@commSubsystem.1"/>
116 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
117 <payload xsi:type="satellite:InterferometryPayload"/>
118 </spacecraft>
119 <spacecraft xsi:type="satellite:CubeSat6U">
120 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.4/@commSubsystem.1"/>
121 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
122 <payload xsi:type="satellite:InterferometryPayload"/>
123 </spacecraft>
124 <spacecraft xsi:type="satellite:CubeSat6U">
125 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.5/@commSubsystem.1"/>
126 </spacecraft>
127 <spacecraft xsi:type="satellite:CubeSat6U">
128 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.0/@commSubsystem.0"/>
129 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
130 <payload xsi:type="satellite:InterferometryPayload"/>
131 </spacecraft>
132 <spacecraft xsi:type="satellite:CubeSat3U">
133 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.6/@commSubsystem.1"/>
134 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
135 <payload xsi:type="satellite:InterferometryPayload"/>
136 </spacecraft>
137</satellite:InterferometryMission>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/5_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/5_1.xmi
new file mode 100644
index 00000000..8c017bd5
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/5_1.xmi
@@ -0,0 +1,141 @@
1<?xml version="1.0" encoding="ASCII"?>
2<satellite:InterferometryMission xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:satellite="http://www.example.org/satellite" xsi:schemaLocation="http://www.example.org/satellite ../../../Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore">
3 <groundStationNetwork>
4 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
5 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:SmallSat">
8 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
9 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.22/@commSubsystem.1"/>
10 <payload xsi:type="satellite:InterferometryPayload"/>
11 </spacecraft>
12 <spacecraft xsi:type="satellite:CubeSat3U">
13 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0"/>
14 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
15 <payload xsi:type="satellite:InterferometryPayload"/>
16 </spacecraft>
17 <spacecraft xsi:type="satellite:CubeSat6U">
18 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
19 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.22/@commSubsystem.1"/>
20 <payload xsi:type="satellite:InterferometryPayload"/>
21 </spacecraft>
22 <spacecraft xsi:type="satellite:CubeSat3U">
23 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0"/>
24 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
25 <payload xsi:type="satellite:InterferometryPayload"/>
26 </spacecraft>
27 <spacecraft xsi:type="satellite:CubeSat3U">
28 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0"/>
29 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
30 <payload xsi:type="satellite:InterferometryPayload"/>
31 </spacecraft>
32 <spacecraft xsi:type="satellite:CubeSat3U">
33 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
34 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.4/@commSubsystem.1"/>
35 <payload xsi:type="satellite:InterferometryPayload"/>
36 </spacecraft>
37 <spacecraft xsi:type="satellite:SmallSat">
38 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.8/@commSubsystem.1"/>
39 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
40 <payload xsi:type="satellite:InterferometryPayload"/>
41 </spacecraft>
42 <spacecraft xsi:type="satellite:SmallSat">
43 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.4/@commSubsystem.1"/>
44 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
45 <payload xsi:type="satellite:InterferometryPayload"/>
46 </spacecraft>
47 <spacecraft xsi:type="satellite:CubeSat6U">
48 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
49 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.9/@commSubsystem.1"/>
50 <payload xsi:type="satellite:InterferometryPayload"/>
51 </spacecraft>
52 <spacecraft xsi:type="satellite:CubeSat6U">
53 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
54 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0"/>
55 <payload xsi:type="satellite:InterferometryPayload"/>
56 </spacecraft>
57 <spacecraft xsi:type="satellite:SmallSat">
58 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
59 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.11/@commSubsystem.1"/>
60 <payload xsi:type="satellite:InterferometryPayload"/>
61 </spacecraft>
62 <spacecraft xsi:type="satellite:CubeSat3U">
63 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
64 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0"/>
65 <payload xsi:type="satellite:InterferometryPayload"/>
66 </spacecraft>
67 <spacecraft xsi:type="satellite:CubeSat6U">
68 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
69 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.6/@commSubsystem.1"/>
70 <payload xsi:type="satellite:InterferometryPayload"/>
71 </spacecraft>
72 <spacecraft xsi:type="satellite:SmallSat">
73 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@spacecraft.14/@commSubsystem.0"/>
74 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
75 <payload xsi:type="satellite:InterferometryPayload"/>
76 </spacecraft>
77 <spacecraft xsi:type="satellite:SmallSat">
78 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
79 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
80 <payload xsi:type="satellite:InterferometryPayload"/>
81 </spacecraft>
82 <spacecraft xsi:type="satellite:CubeSat3U">
83 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.9/@commSubsystem.0"/>
84 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
85 <payload xsi:type="satellite:InterferometryPayload"/>
86 </spacecraft>
87 <spacecraft xsi:type="satellite:CubeSat3U">
88 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.12/@commSubsystem.1"/>
89 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
90 <payload xsi:type="satellite:InterferometryPayload"/>
91 </spacecraft>
92 <spacecraft xsi:type="satellite:SmallSat">
93 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
94 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.21/@commSubsystem.1"/>
95 <payload xsi:type="satellite:InterferometryPayload"/>
96 </spacecraft>
97 <spacecraft xsi:type="satellite:CubeSat3U">
98 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
99 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.2/@commSubsystem.0"/>
100 <payload xsi:type="satellite:InterferometryPayload"/>
101 </spacecraft>
102 <spacecraft xsi:type="satellite:CubeSat3U">
103 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
104 <payload xsi:type="satellite:InterferometryPayload"/>
105 </spacecraft>
106 <spacecraft xsi:type="satellite:SmallSat">
107 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
108 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.11/@commSubsystem.0"/>
109 <payload xsi:type="satellite:InterferometryPayload"/>
110 </spacecraft>
111 <spacecraft xsi:type="satellite:CubeSat3U">
112 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
113 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.16/@commSubsystem.0"/>
114 <payload xsi:type="satellite:InterferometryPayload"/>
115 </spacecraft>
116 <spacecraft xsi:type="satellite:SmallSat">
117 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.23/@commSubsystem.1"/>
118 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
119 <payload xsi:type="satellite:InterferometryPayload"/>
120 </spacecraft>
121 <spacecraft xsi:type="satellite:SmallSat">
122 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.8/@commSubsystem.0"/>
123 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
124 <payload xsi:type="satellite:InterferometryPayload"/>
125 </spacecraft>
126 <spacecraft xsi:type="satellite:CubeSat3U">
127 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.23/@commSubsystem.0"/>
128 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
129 <payload xsi:type="satellite:InterferometryPayload"/>
130 </spacecraft>
131 <spacecraft xsi:type="satellite:CubeSat3U">
132 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
133 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0"/>
134 <payload xsi:type="satellite:InterferometryPayload"/>
135 </spacecraft>
136 <spacecraft xsi:type="satellite:CubeSat6U">
137 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.8/@commSubsystem.0"/>
138 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
139 <payload xsi:type="satellite:InterferometryPayload"/>
140 </spacecraft>
141</satellite:InterferometryMission>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/6_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/6_1.xmi
new file mode 100644
index 00000000..3dd5ffa8
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/6_1.xmi
@@ -0,0 +1,134 @@
1<?xml version="1.0" encoding="ASCII"?>
2<satellite:InterferometryMission xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:satellite="http://www.example.org/satellite" xsi:schemaLocation="http://www.example.org/satellite ../../../Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore">
3 <groundStationNetwork>
4 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
5 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:SmallSat">
8 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
9 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
10 <payload xsi:type="satellite:InterferometryPayload"/>
11 </spacecraft>
12 <spacecraft xsi:type="satellite:CubeSat6U">
13 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
14 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.6/@commSubsystem.1"/>
15 <payload xsi:type="satellite:InterferometryPayload"/>
16 </spacecraft>
17 <spacecraft xsi:type="satellite:SmallSat">
18 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.6/@commSubsystem.0"/>
19 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
20 <payload xsi:type="satellite:InterferometryPayload"/>
21 </spacecraft>
22 <spacecraft xsi:type="satellite:CubeSat6U">
23 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
24 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.24/@commSubsystem.0"/>
25 <payload xsi:type="satellite:InterferometryPayload"/>
26 </spacecraft>
27 <spacecraft xsi:type="satellite:SmallSat">
28 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.8/@commSubsystem.1"/>
29 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
30 <payload xsi:type="satellite:InterferometryPayload"/>
31 </spacecraft>
32 <spacecraft xsi:type="satellite:CubeSat6U">
33 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.12/@commSubsystem.0"/>
34 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
35 <payload xsi:type="satellite:InterferometryPayload"/>
36 </spacecraft>
37 <spacecraft xsi:type="satellite:CubeSat6U">
38 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
39 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.8/@commSubsystem.1"/>
40 <payload xsi:type="satellite:InterferometryPayload"/>
41 </spacecraft>
42 <spacecraft xsi:type="satellite:CubeSat6U">
43 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
44 <payload xsi:type="satellite:InterferometryPayload"/>
45 </spacecraft>
46 <spacecraft xsi:type="satellite:CubeSat3U">
47 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
48 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
49 <payload xsi:type="satellite:InterferometryPayload"/>
50 </spacecraft>
51 <spacecraft xsi:type="satellite:CubeSat6U">
52 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
53 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.14/@commSubsystem.1"/>
54 <payload xsi:type="satellite:InterferometryPayload"/>
55 </spacecraft>
56 <spacecraft xsi:type="satellite:SmallSat">
57 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
58 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.8/@commSubsystem.1"/>
59 <payload xsi:type="satellite:InterferometryPayload"/>
60 </spacecraft>
61 <spacecraft xsi:type="satellite:CubeSat3U">
62 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
63 <payload xsi:type="satellite:InterferometryPayload"/>
64 </spacecraft>
65 <spacecraft xsi:type="satellite:SmallSat">
66 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
67 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.6/@commSubsystem.0"/>
68 <payload xsi:type="satellite:InterferometryPayload"/>
69 </spacecraft>
70 <spacecraft xsi:type="satellite:SmallSat">
71 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
72 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.17/@commSubsystem.1"/>
73 <payload xsi:type="satellite:InterferometryPayload"/>
74 </spacecraft>
75 <spacecraft xsi:type="satellite:SmallSat">
76 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
77 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
78 <payload xsi:type="satellite:InterferometryPayload"/>
79 </spacecraft>
80 <spacecraft xsi:type="satellite:SmallSat">
81 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
82 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.12/@commSubsystem.1"/>
83 <payload xsi:type="satellite:InterferometryPayload"/>
84 </spacecraft>
85 <spacecraft xsi:type="satellite:CubeSat3U">
86 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.12/@commSubsystem.1"/>
87 <payload xsi:type="satellite:InterferometryPayload"/>
88 </spacecraft>
89 <spacecraft xsi:type="satellite:SmallSat">
90 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
91 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.8/@commSubsystem.1"/>
92 <payload xsi:type="satellite:InterferometryPayload"/>
93 </spacecraft>
94 <spacecraft xsi:type="satellite:SmallSat">
95 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.23/@commSubsystem.0"/>
96 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
97 <payload xsi:type="satellite:InterferometryPayload"/>
98 </spacecraft>
99 <spacecraft xsi:type="satellite:CubeSat3U">
100 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.25/@commSubsystem.1"/>
101 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
102 <payload xsi:type="satellite:InterferometryPayload"/>
103 </spacecraft>
104 <spacecraft xsi:type="satellite:CubeSat6U">
105 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
106 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.5/@commSubsystem.1"/>
107 <payload xsi:type="satellite:InterferometryPayload"/>
108 </spacecraft>
109 <spacecraft xsi:type="satellite:CubeSat6U">
110 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.12/@commSubsystem.0"/>
111 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
112 <payload xsi:type="satellite:InterferometryPayload"/>
113 </spacecraft>
114 <spacecraft xsi:type="satellite:SmallSat">
115 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
116 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.10/@commSubsystem.1"/>
117 <payload xsi:type="satellite:InterferometryPayload"/>
118 </spacecraft>
119 <spacecraft xsi:type="satellite:CubeSat6U">
120 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.5/@commSubsystem.0"/>
121 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
122 <payload xsi:type="satellite:InterferometryPayload"/>
123 </spacecraft>
124 <spacecraft xsi:type="satellite:SmallSat">
125 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
126 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.25/@commSubsystem.0"/>
127 <payload xsi:type="satellite:InterferometryPayload"/>
128 </spacecraft>
129 <spacecraft xsi:type="satellite:CubeSat3U">
130 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
131 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.17/@commSubsystem.0"/>
132 <payload xsi:type="satellite:InterferometryPayload"/>
133 </spacecraft>
134</satellite:InterferometryMission>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/7_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/7_1.xmi
new file mode 100644
index 00000000..635410f2
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/7_1.xmi
@@ -0,0 +1,131 @@
1<?xml version="1.0" encoding="ASCII"?>
2<satellite:InterferometryMission xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:satellite="http://www.example.org/satellite" xsi:schemaLocation="http://www.example.org/satellite ../../../Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore">
3 <groundStationNetwork>
4 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
5 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:SmallSat">
8 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
9 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0"/>
10 <payload xsi:type="satellite:InterferometryPayload"/>
11 </spacecraft>
12 <spacecraft xsi:type="satellite:CubeSat6U">
13 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.3/@commSubsystem.0"/>
14 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
15 <payload xsi:type="satellite:InterferometryPayload"/>
16 </spacecraft>
17 <spacecraft xsi:type="satellite:CubeSat3U">
18 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
19 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0"/>
20 <payload xsi:type="satellite:InterferometryPayload"/>
21 </spacecraft>
22 <spacecraft xsi:type="satellite:SmallSat">
23 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
24 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.19/@commSubsystem.1"/>
25 <payload xsi:type="satellite:InterferometryPayload"/>
26 </spacecraft>
27 <spacecraft xsi:type="satellite:CubeSat6U">
28 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.13/@commSubsystem.1"/>
29 </spacecraft>
30 <spacecraft xsi:type="satellite:CubeSat3U">
31 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
32 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
33 <payload xsi:type="satellite:InterferometryPayload"/>
34 </spacecraft>
35 <spacecraft xsi:type="satellite:CubeSat6U">
36 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.19/@commSubsystem.0"/>
37 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
38 <payload xsi:type="satellite:InterferometryPayload"/>
39 </spacecraft>
40 <spacecraft xsi:type="satellite:SmallSat">
41 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
42 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.19/@commSubsystem.0"/>
43 <payload xsi:type="satellite:InterferometryPayload"/>
44 </spacecraft>
45 <spacecraft xsi:type="satellite:CubeSat6U">
46 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
47 </spacecraft>
48 <spacecraft xsi:type="satellite:CubeSat6U">
49 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.5/@commSubsystem.1"/>
50 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
51 <payload xsi:type="satellite:InterferometryPayload"/>
52 </spacecraft>
53 <spacecraft xsi:type="satellite:CubeSat6U">
54 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
55 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
56 <payload xsi:type="satellite:InterferometryPayload"/>
57 </spacecraft>
58 <spacecraft xsi:type="satellite:CubeSat3U">
59 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
60 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.23/@commSubsystem.1"/>
61 </spacecraft>
62 <spacecraft xsi:type="satellite:CubeSat3U">
63 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
64 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
65 <payload xsi:type="satellite:InterferometryPayload"/>
66 </spacecraft>
67 <spacecraft xsi:type="satellite:CubeSat3U">
68 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
69 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.3/@commSubsystem.0"/>
70 <payload xsi:type="satellite:InterferometryPayload"/>
71 </spacecraft>
72 <spacecraft xsi:type="satellite:CubeSat6U">
73 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
74 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.16/@commSubsystem.1"/>
75 <payload xsi:type="satellite:InterferometryPayload"/>
76 </spacecraft>
77 <spacecraft xsi:type="satellite:SmallSat">
78 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
79 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.17/@commSubsystem.1"/>
80 <payload xsi:type="satellite:InterferometryPayload"/>
81 </spacecraft>
82 <spacecraft xsi:type="satellite:CubeSat6U">
83 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.20/@commSubsystem.1"/>
84 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
85 <payload xsi:type="satellite:InterferometryPayload"/>
86 </spacecraft>
87 <spacecraft xsi:type="satellite:SmallSat">
88 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.3/@commSubsystem.1"/>
89 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
90 <payload xsi:type="satellite:InterferometryPayload"/>
91 </spacecraft>
92 <spacecraft xsi:type="satellite:CubeSat3U">
93 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
94 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
95 <payload xsi:type="satellite:InterferometryPayload"/>
96 </spacecraft>
97 <spacecraft xsi:type="satellite:CubeSat3U">
98 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0"/>
99 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
100 <payload xsi:type="satellite:InterferometryPayload"/>
101 </spacecraft>
102 <spacecraft xsi:type="satellite:CubeSat3U">
103 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
104 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.3/@commSubsystem.1"/>
105 <payload xsi:type="satellite:InterferometryPayload"/>
106 </spacecraft>
107 <spacecraft xsi:type="satellite:CubeSat3U">
108 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
109 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
110 <payload xsi:type="satellite:InterferometryPayload"/>
111 </spacecraft>
112 <spacecraft xsi:type="satellite:CubeSat6U">
113 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
114 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.12/@commSubsystem.0"/>
115 </spacecraft>
116 <spacecraft xsi:type="satellite:SmallSat">
117 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@spacecraft.0/@commSubsystem.0"/>
118 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
119 <payload xsi:type="satellite:InterferometryPayload"/>
120 </spacecraft>
121 <spacecraft xsi:type="satellite:CubeSat6U">
122 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.7/@commSubsystem.1"/>
123 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
124 <payload xsi:type="satellite:InterferometryPayload"/>
125 </spacecraft>
126 <spacecraft xsi:type="satellite:CubeSat3U">
127 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
128 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0"/>
129 <payload xsi:type="satellite:InterferometryPayload"/>
130 </spacecraft>
131</satellite:InterferometryMission>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/8_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/8_1.xmi
new file mode 100644
index 00000000..ec0985dc
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/8_1.xmi
@@ -0,0 +1,134 @@
1<?xml version="1.0" encoding="ASCII"?>
2<satellite:InterferometryMission xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:satellite="http://www.example.org/satellite" xsi:schemaLocation="http://www.example.org/satellite ../../../Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore">
3 <groundStationNetwork>
4 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
5 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:CubeSat6U">
8 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.9/@commSubsystem.1"/>
9 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
10 <payload xsi:type="satellite:InterferometryPayload"/>
11 </spacecraft>
12 <spacecraft xsi:type="satellite:SmallSat">
13 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
14 <payload xsi:type="satellite:InterferometryPayload"/>
15 </spacecraft>
16 <spacecraft xsi:type="satellite:CubeSat3U">
17 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.16/@commSubsystem.0"/>
18 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
19 <payload xsi:type="satellite:InterferometryPayload"/>
20 </spacecraft>
21 <spacecraft xsi:type="satellite:CubeSat3U">
22 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
23 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0"/>
24 <payload xsi:type="satellite:InterferometryPayload"/>
25 </spacecraft>
26 <spacecraft xsi:type="satellite:CubeSat3U">
27 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
28 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
29 </spacecraft>
30 <spacecraft xsi:type="satellite:CubeSat3U">
31 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
32 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
33 <payload xsi:type="satellite:InterferometryPayload"/>
34 </spacecraft>
35 <spacecraft xsi:type="satellite:CubeSat6U">
36 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
37 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.25/@commSubsystem.1"/>
38 <payload xsi:type="satellite:InterferometryPayload"/>
39 </spacecraft>
40 <spacecraft xsi:type="satellite:CubeSat6U">
41 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
42 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.8/@commSubsystem.1"/>
43 <payload xsi:type="satellite:InterferometryPayload"/>
44 </spacecraft>
45 <spacecraft xsi:type="satellite:SmallSat">
46 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
47 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.25/@commSubsystem.0"/>
48 <payload xsi:type="satellite:InterferometryPayload"/>
49 </spacecraft>
50 <spacecraft xsi:type="satellite:CubeSat3U">
51 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
52 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
53 <payload xsi:type="satellite:InterferometryPayload"/>
54 </spacecraft>
55 <spacecraft xsi:type="satellite:SmallSat">
56 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
57 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.25/@commSubsystem.0"/>
58 <payload xsi:type="satellite:InterferometryPayload"/>
59 </spacecraft>
60 <spacecraft xsi:type="satellite:CubeSat3U">
61 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.25/@commSubsystem.0"/>
62 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
63 <payload xsi:type="satellite:InterferometryPayload"/>
64 </spacecraft>
65 <spacecraft xsi:type="satellite:CubeSat6U">
66 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.16/@commSubsystem.0"/>
67 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
68 <payload xsi:type="satellite:InterferometryPayload"/>
69 </spacecraft>
70 <spacecraft xsi:type="satellite:SmallSat">
71 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.19/@commSubsystem.1"/>
72 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
73 <payload xsi:type="satellite:InterferometryPayload"/>
74 </spacecraft>
75 <spacecraft xsi:type="satellite:CubeSat3U">
76 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
77 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
78 <payload xsi:type="satellite:InterferometryPayload"/>
79 </spacecraft>
80 <spacecraft xsi:type="satellite:SmallSat">
81 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
82 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.17/@commSubsystem.1"/>
83 <payload xsi:type="satellite:InterferometryPayload"/>
84 </spacecraft>
85 <spacecraft xsi:type="satellite:CubeSat6U">
86 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
87 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.13/@commSubsystem.0"/>
88 <payload xsi:type="satellite:InterferometryPayload"/>
89 </spacecraft>
90 <spacecraft xsi:type="satellite:CubeSat3U">
91 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
92 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.0"/>
93 <payload xsi:type="satellite:InterferometryPayload"/>
94 </spacecraft>
95 <spacecraft xsi:type="satellite:SmallSat">
96 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
97 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.13/@commSubsystem.0"/>
98 <payload xsi:type="satellite:InterferometryPayload"/>
99 </spacecraft>
100 <spacecraft xsi:type="satellite:SmallSat">
101 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
102 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.0/@commSubsystem.0"/>
103 <payload xsi:type="satellite:InterferometryPayload"/>
104 </spacecraft>
105 <spacecraft xsi:type="satellite:CubeSat6U">
106 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
107 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.18/@commSubsystem.1"/>
108 <payload xsi:type="satellite:InterferometryPayload"/>
109 </spacecraft>
110 <spacecraft xsi:type="satellite:CubeSat6U">
111 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.20/@commSubsystem.1"/>
112 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
113 <payload xsi:type="satellite:InterferometryPayload"/>
114 </spacecraft>
115 <spacecraft xsi:type="satellite:SmallSat">
116 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@spacecraft.23/@commSubsystem.1"/>
117 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
118 <payload xsi:type="satellite:InterferometryPayload"/>
119 </spacecraft>
120 <spacecraft xsi:type="satellite:SmallSat">
121 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.11/@commSubsystem.0"/>
122 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
123 <payload xsi:type="satellite:InterferometryPayload"/>
124 </spacecraft>
125 <spacecraft xsi:type="satellite:SmallSat">
126 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
127 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.25/@commSubsystem.0"/>
128 </spacecraft>
129 <spacecraft xsi:type="satellite:CubeSat3U">
130 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
131 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@groundStationNetwork/@commSubsystem.1"/>
132 <payload xsi:type="satellite:InterferometryPayload"/>
133 </spacecraft>
134</satellite:InterferometryMission>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/9_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/9_1.xmi
new file mode 100644
index 00000000..dc2ccc91
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/SatelliteNoNum/9_1.xmi
@@ -0,0 +1,137 @@
1<?xml version="1.0" encoding="ASCII"?>
2<satellite:InterferometryMission xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:satellite="http://www.example.org/satellite" xsi:schemaLocation="http://www.example.org/satellite ../../../Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore">
3 <groundStationNetwork>
4 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
5 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
6 </groundStationNetwork>
7 <spacecraft xsi:type="satellite:SmallSat">
8 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.2/@commSubsystem.0"/>
9 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
10 <payload xsi:type="satellite:InterferometryPayload"/>
11 </spacecraft>
12 <spacecraft xsi:type="satellite:SmallSat">
13 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
14 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.17/@commSubsystem.0"/>
15 <payload xsi:type="satellite:InterferometryPayload"/>
16 </spacecraft>
17 <spacecraft xsi:type="satellite:CubeSat3U">
18 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.6/@commSubsystem.1"/>
19 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
20 <payload xsi:type="satellite:InterferometryPayload"/>
21 </spacecraft>
22 <spacecraft xsi:type="satellite:CubeSat3U">
23 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.5/@commSubsystem.0"/>
24 <payload xsi:type="satellite:InterferometryPayload"/>
25 </spacecraft>
26 <spacecraft xsi:type="satellite:CubeSat3U">
27 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
28 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.19/@commSubsystem.0"/>
29 <payload xsi:type="satellite:InterferometryPayload"/>
30 </spacecraft>
31 <spacecraft xsi:type="satellite:CubeSat6U">
32 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
33 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.6/@commSubsystem.1"/>
34 <payload xsi:type="satellite:InterferometryPayload"/>
35 </spacecraft>
36 <spacecraft xsi:type="satellite:CubeSat6U">
37 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.8/@commSubsystem.1"/>
38 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
39 <payload xsi:type="satellite:InterferometryPayload"/>
40 </spacecraft>
41 <spacecraft xsi:type="satellite:CubeSat6U">
42 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.24/@commSubsystem.0"/>
43 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
44 <payload xsi:type="satellite:InterferometryPayload"/>
45 </spacecraft>
46 <spacecraft xsi:type="satellite:SmallSat">
47 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
48 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.20/@commSubsystem.0"/>
49 <payload xsi:type="satellite:InterferometryPayload"/>
50 </spacecraft>
51 <spacecraft xsi:type="satellite:SmallSat">
52 <commSubsystem xsi:type="satellite:KaCommSubsystem" target="//@spacecraft.11/@commSubsystem.0"/>
53 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
54 <payload xsi:type="satellite:InterferometryPayload"/>
55 </spacecraft>
56 <spacecraft xsi:type="satellite:CubeSat6U">
57 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
58 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.14/@commSubsystem.0"/>
59 <payload xsi:type="satellite:InterferometryPayload"/>
60 </spacecraft>
61 <spacecraft xsi:type="satellite:SmallSat">
62 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
63 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.4/@commSubsystem.1"/>
64 <payload xsi:type="satellite:InterferometryPayload"/>
65 </spacecraft>
66 <spacecraft xsi:type="satellite:CubeSat3U">
67 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.16/@commSubsystem.0"/>
68 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
69 <payload xsi:type="satellite:InterferometryPayload"/>
70 </spacecraft>
71 <spacecraft xsi:type="satellite:CubeSat3U">
72 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
73 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.15/@commSubsystem.0"/>
74 <payload xsi:type="satellite:InterferometryPayload"/>
75 </spacecraft>
76 <spacecraft xsi:type="satellite:CubeSat3U">
77 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
78 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.19/@commSubsystem.0"/>
79 <payload xsi:type="satellite:InterferometryPayload"/>
80 </spacecraft>
81 <spacecraft xsi:type="satellite:CubeSat6U">
82 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.4/@commSubsystem.1"/>
83 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
84 <payload xsi:type="satellite:InterferometryPayload"/>
85 </spacecraft>
86 <spacecraft xsi:type="satellite:CubeSat3U">
87 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.2/@commSubsystem.0"/>
88 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
89 <payload xsi:type="satellite:InterferometryPayload"/>
90 </spacecraft>
91 <spacecraft xsi:type="satellite:CubeSat6U">
92 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
93 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.20/@commSubsystem.1"/>
94 </spacecraft>
95 <spacecraft xsi:type="satellite:SmallSat">
96 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.25/@commSubsystem.1"/>
97 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
98 <payload xsi:type="satellite:InterferometryPayload"/>
99 </spacecraft>
100 <spacecraft xsi:type="satellite:CubeSat6U">
101 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.16/@commSubsystem.0"/>
102 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
103 <payload xsi:type="satellite:InterferometryPayload"/>
104 </spacecraft>
105 <spacecraft xsi:type="satellite:CubeSat3U">
106 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
107 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
108 <payload xsi:type="satellite:InterferometryPayload"/>
109 </spacecraft>
110 <spacecraft xsi:type="satellite:SmallSat">
111 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
112 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.20/@commSubsystem.1"/>
113 </spacecraft>
114 <spacecraft xsi:type="satellite:CubeSat6U">
115 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
116 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.12/@commSubsystem.1"/>
117 <payload xsi:type="satellite:InterferometryPayload"/>
118 </spacecraft>
119 <spacecraft xsi:type="satellite:CubeSat3U">
120 <commSubsystem xsi:type="satellite:UHFCommSubsystem"/>
121 </spacecraft>
122 <spacecraft xsi:type="satellite:SmallSat">
123 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.19/@commSubsystem.1"/>
124 <commSubsystem xsi:type="satellite:KaCommSubsystem"/>
125 <payload xsi:type="satellite:InterferometryPayload"/>
126 </spacecraft>
127 <spacecraft xsi:type="satellite:SmallSat">
128 <commSubsystem xsi:type="satellite:XCommSubsystem" target="//@spacecraft.6/@commSubsystem.0"/>
129 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
130 <payload xsi:type="satellite:InterferometryPayload"/>
131 </spacecraft>
132 <spacecraft xsi:type="satellite:CubeSat3U">
133 <commSubsystem xsi:type="satellite:XCommSubsystem"/>
134 <commSubsystem xsi:type="satellite:UHFCommSubsystem" target="//@spacecraft.16/@commSubsystem.0"/>
135 <payload xsi:type="satellite:InterferometryPayload"/>
136 </spacecraft>
137</satellite:InterferometryMission>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/10_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/10_1.xmi
new file mode 100644
index 00000000..1abe751c
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/10_1.xmi
@@ -0,0 +1,118 @@
1<?xml version="1.0" encoding="ASCII"?>
2<TaxCardWithRoot:Resource xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:TaxCardWithRoot="http:///TaxCardWithRoot.ecore" xsi:schemaLocation="http:///TaxCardWithRoot.ecore ../case.study.pledge.model/model/TaxationWithRoot.ecore">
3 <contains id1="">
4 <parents xsi:type="TaxCardWithRoot:Marriage_Record" start_year="1950" end_year="1951" separation_cause="DIVORCE" id9="">
5 <individual_A SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
6 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
7 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
8 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
9 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
10 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
11 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
12 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
13 <properties id10=""/>
14 <properties id10=""/>
15 <properties id10=""/>
16 <properties id10=""/>
17 <properties id10=""/>
18 <properties id10=""/>
19 <properties id10=""/>
20 <properties id10=""/>
21 </parents>
22 </contains>
23 <contains id1="">
24 <parents xsi:type="TaxCardWithRoot:Partnership_Record" start_year="1950" end_year="1951" separation_cause="DIVORCE" id9="">
25 <individual_A SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
26 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
27 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
28 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
29 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
30 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
31 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
32 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
33 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
34 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
35 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
36 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
37 <properties id10=""/>
38 <properties id10=""/>
39 <properties id10=""/>
40 <properties id10=""/>
41 <properties id10=""/>
42 <properties id10=""/>
43 <properties id10=""/>
44 <properties id10=""/>
45 <properties id10=""/>
46 <properties id10=""/>
47 <properties id10=""/>
48 <properties id10=""/>
49 </parents>
50 </contains>
51 <contains id1="">
52 <parents xsi:type="TaxCardWithRoot:Marriage_Record" start_year="1950" end_year="1951" separation_cause="SEPARATION_DE_FAIT" id9="">
53 <individual_A SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
54 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
55 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
56 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
57 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
58 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
59 <properties id10=""/>
60 <properties id10=""/>
61 <properties id10=""/>
62 <properties id10=""/>
63 <properties id10=""/>
64 <properties id10=""/>
65 <properties id10=""/>
66 <properties id10=""/>
67 <properties id10=""/>
68 <properties id10=""/>
69 <properties id10=""/>
70 </parents>
71 </contains>
72 <contains id1="">
73 <parents xsi:type="TaxCardWithRoot:Partnership_Record" start_year="1950" end_year="1951" id9="">
74 <individual_A SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
75 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
76 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
77 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
78 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
79 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
80 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
81 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
82 <properties id10=""/>
83 <properties id10=""/>
84 <properties id10=""/>
85 <properties id10=""/>
86 <properties id10=""/>
87 <properties id10=""/>
88 <properties id10=""/>
89 </parents>
90 </contains>
91 <contains id1="">
92 <parents xsi:type="TaxCardWithRoot:Partnership_Record" start_year="1950" end_year="1951" id9="">
93 <individual_A SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
94 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
95 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
96 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
97 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
98 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
99 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
100 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
101 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
102 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
103 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
104 <properties id10=""/>
105 <properties id10=""/>
106 <properties id10=""/>
107 <properties id10=""/>
108 <properties id10=""/>
109 <properties id10=""/>
110 <properties id10=""/>
111 <properties id10=""/>
112 <properties id10=""/>
113 <properties id10=""/>
114 <properties id10=""/>
115 <properties id10=""/>
116 </parents>
117 </contains>
118</TaxCardWithRoot:Resource>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/1_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/1_1.xmi
new file mode 100644
index 00000000..ea419150
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/1_1.xmi
@@ -0,0 +1,118 @@
1<?xml version="1.0" encoding="ASCII"?>
2<TaxCardWithRoot:Resource xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:TaxCardWithRoot="http:///TaxCardWithRoot.ecore" xsi:schemaLocation="http:///TaxCardWithRoot.ecore ../case.study.pledge.model/model/TaxationWithRoot.ecore">
3 <contains id1="">
4 <parents xsi:type="TaxCardWithRoot:Marriage_Record" start_year="1950" end_year="1951" id9="">
5 <individual_A SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
6 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
7 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
8 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
9 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
10 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
11 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
12 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
13 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
14 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
15 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
16 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
17 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
18 <properties id10=""/>
19 <properties id10=""/>
20 <properties id10=""/>
21 <properties id10=""/>
22 <properties id10=""/>
23 <properties id10=""/>
24 <properties id10=""/>
25 </parents>
26 </contains>
27 <contains id1="">
28 <parents xsi:type="TaxCardWithRoot:Partnership_Record" start_year="1950" end_year="1951" separation_cause="SEPARATION_BY_COURT" id9="">
29 <individual_A SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
30 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
31 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
32 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
33 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
34 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
35 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
36 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
37 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
38 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
39 <properties id10=""/>
40 <properties id10=""/>
41 <properties id10=""/>
42 <properties id10=""/>
43 <properties id10=""/>
44 <properties id10=""/>
45 </parents>
46 </contains>
47 <contains id1="">
48 <parents xsi:type="TaxCardWithRoot:Partnership_Record" start_year="1950" end_year="1951" separation_cause="SEPARATION_DE_FAIT" id9="">
49 <individual_A SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
50 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
51 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
52 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
53 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
54 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
55 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
56 <properties id10=""/>
57 <properties id10=""/>
58 <properties id10=""/>
59 <properties id10=""/>
60 <properties id10=""/>
61 <properties id10=""/>
62 <properties id10=""/>
63 <properties id10=""/>
64 <properties id10=""/>
65 <properties id10=""/>
66 <properties id10=""/>
67 </parents>
68 </contains>
69 <contains id1="">
70 <parents xsi:type="TaxCardWithRoot:Marriage_Record" start_year="1950" end_year="1951" separation_cause="DIVORCE" id9="">
71 <individual_A SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
72 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
73 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
74 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
75 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
76 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
77 <properties id10=""/>
78 <properties id10=""/>
79 <properties id10=""/>
80 <properties id10=""/>
81 <properties id10=""/>
82 <properties id10=""/>
83 <properties id10=""/>
84 <properties id10=""/>
85 <properties id10=""/>
86 <properties id10=""/>
87 <properties id10=""/>
88 <properties id10=""/>
89 </parents>
90 </contains>
91 <contains id1="">
92 <parents xsi:type="TaxCardWithRoot:Marriage_Record" start_year="1950" end_year="1951" separation_cause="DIVORCE" id9="">
93 <individual_A SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
94 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
95 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
96 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
97 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
98 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
99 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
100 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
101 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
102 <properties id10=""/>
103 <properties id10=""/>
104 <properties id10=""/>
105 <properties id10=""/>
106 <properties id10=""/>
107 <properties id10=""/>
108 <properties id10=""/>
109 <properties id10=""/>
110 <properties id10=""/>
111 <properties id10=""/>
112 <properties id10=""/>
113 <properties id10=""/>
114 <properties id10=""/>
115 <properties id10=""/>
116 </parents>
117 </contains>
118</TaxCardWithRoot:Resource>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/2_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/2_1.xmi
new file mode 100644
index 00000000..30352906
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/2_1.xmi
@@ -0,0 +1,119 @@
1<?xml version="1.0" encoding="ASCII"?>
2<TaxCardWithRoot:Resource xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:TaxCardWithRoot="http:///TaxCardWithRoot.ecore" xsi:schemaLocation="http:///TaxCardWithRoot.ecore ../case.study.pledge.model/model/TaxationWithRoot.ecore">
3 <contains id1="">
4 <parents xsi:type="TaxCardWithRoot:Partnership_Record" start_year="1950" end_year="1951" separation_cause="SEPARATION_DE_FAIT" id9="">
5 <individual_A SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
6 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
7 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
8 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
9 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
10 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
11 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
12 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
13 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
14 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
15 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
16 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
17 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
18 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
19 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
20 <properties id10=""/>
21 <properties id10=""/>
22 <properties id10=""/>
23 <properties id10=""/>
24 <properties id10=""/>
25 <properties id10=""/>
26 <properties id10=""/>
27 <properties id10=""/>
28 <properties id10=""/>
29 <properties id10=""/>
30 </parents>
31 </contains>
32 <contains id1="">
33 <parents xsi:type="TaxCardWithRoot:Marriage_Record" start_year="1950" end_year="1951" id9="">
34 <individual_A SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
35 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
36 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
37 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
38 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
39 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
40 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
41 <properties id10=""/>
42 <properties id10=""/>
43 </parents>
44 </contains>
45 <contains id1="">
46 <parents xsi:type="TaxCardWithRoot:Marriage_Record" start_year="1950" end_year="1951" separation_cause="DIVORCE" id9="">
47 <individual_A SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
48 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
49 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
50 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
51 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
52 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
53 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
54 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
55 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
56 <properties id10=""/>
57 <properties id10=""/>
58 <properties id10=""/>
59 <properties id10=""/>
60 <properties id10=""/>
61 <properties id10=""/>
62 <properties id10=""/>
63 <properties id10=""/>
64 <properties id10=""/>
65 <properties id10=""/>
66 </parents>
67 </contains>
68 <contains id1="">
69 <parents xsi:type="TaxCardWithRoot:Partnership_Record" start_year="1950" end_year="1951" id9="">
70 <individual_A SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
71 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
72 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
73 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
74 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
75 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
76 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
77 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
78 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
79 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
80 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
81 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
82 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
83 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
84 <properties id10=""/>
85 <properties id10=""/>
86 <properties id10=""/>
87 <properties id10=""/>
88 <properties id10=""/>
89 <properties id10=""/>
90 <properties id10=""/>
91 <properties id10=""/>
92 <properties id10=""/>
93 <properties id10=""/>
94 <properties id10=""/>
95 <properties id10=""/>
96 <properties id10=""/>
97 </parents>
98 </contains>
99 <contains id1="">
100 <parents xsi:type="TaxCardWithRoot:Marriage_Record" start_year="1950" end_year="1951" separation_cause="SEPARATION_DE_FAIT" id9="">
101 <individual_A SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
102 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
103 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
104 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
105 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
106 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
107 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
108 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
109 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
110 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
111 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
112 <properties id10=""/>
113 <properties id10=""/>
114 <properties id10=""/>
115 <properties id10=""/>
116 <properties id10=""/>
117 </parents>
118 </contains>
119</TaxCardWithRoot:Resource>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/3_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/3_1.xmi
new file mode 100644
index 00000000..deae653a
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/3_1.xmi
@@ -0,0 +1,118 @@
1<?xml version="1.0" encoding="ASCII"?>
2<TaxCardWithRoot:Resource xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:TaxCardWithRoot="http:///TaxCardWithRoot.ecore" xsi:schemaLocation="http:///TaxCardWithRoot.ecore ../case.study.pledge.model/model/TaxationWithRoot.ecore">
3 <contains id1="">
4 <parents xsi:type="TaxCardWithRoot:Marriage_Record" start_year="1950" end_year="1951" separation_cause="DIVORCE" id9="">
5 <individual_A SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
6 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
7 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
8 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
9 <properties id10=""/>
10 <properties id10=""/>
11 <properties id10=""/>
12 <properties id10=""/>
13 <properties id10=""/>
14 <properties id10=""/>
15 <properties id10=""/>
16 <properties id10=""/>
17 </parents>
18 </contains>
19 <contains id1="">
20 <parents xsi:type="TaxCardWithRoot:Partnership_Record" start_year="1950" end_year="1951" id9="">
21 <individual_A SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
22 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
23 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
24 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
25 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
26 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
27 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
28 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
29 <properties id10=""/>
30 <properties id10=""/>
31 <properties id10=""/>
32 <properties id10=""/>
33 <properties id10=""/>
34 <properties id10=""/>
35 <properties id10=""/>
36 <properties id10=""/>
37 <properties id10=""/>
38 <properties id10=""/>
39 <properties id10=""/>
40 </parents>
41 </contains>
42 <contains id1="">
43 <parents xsi:type="TaxCardWithRoot:Marriage_Record" start_year="1950" end_year="1951" separation_cause="SEPARATION_BY_COURT" id9="">
44 <individual_A SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
45 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
46 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
47 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
48 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
49 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
50 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
51 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
52 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
53 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
54 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
55 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
56 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
57 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
58 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
59 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
60 <properties id10=""/>
61 <properties id10=""/>
62 <properties id10=""/>
63 <properties id10=""/>
64 <properties id10=""/>
65 <properties id10=""/>
66 <properties id10=""/>
67 </parents>
68 </contains>
69 <contains id1="">
70 <parents xsi:type="TaxCardWithRoot:Partnership_Record" start_year="1950" end_year="1951" id9="">
71 <individual_A SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
72 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
73 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
74 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
75 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
76 <properties id10=""/>
77 <properties id10=""/>
78 <properties id10=""/>
79 <properties id10=""/>
80 <properties id10=""/>
81 <properties id10=""/>
82 <properties id10=""/>
83 </parents>
84 </contains>
85 <contains id1="">
86 <parents xsi:type="TaxCardWithRoot:Marriage_Record" start_year="1950" end_year="1951" separation_cause="SEPARATION_BY_COURT" id9="">
87 <individual_A SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
88 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
89 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
90 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
91 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
92 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
93 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
94 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
95 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
96 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
97 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
98 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
99 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
100 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
101 <properties id10=""/>
102 <properties id10=""/>
103 <properties id10=""/>
104 <properties id10=""/>
105 <properties id10=""/>
106 <properties id10=""/>
107 <properties id10=""/>
108 <properties id10=""/>
109 <properties id10=""/>
110 <properties id10=""/>
111 <properties id10=""/>
112 <properties id10=""/>
113 <properties id10=""/>
114 <properties id10=""/>
115 <properties id10=""/>
116 </parents>
117 </contains>
118</TaxCardWithRoot:Resource>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/4_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/4_1.xmi
new file mode 100644
index 00000000..ab317053
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/4_1.xmi
@@ -0,0 +1,118 @@
1<?xml version="1.0" encoding="ASCII"?>
2<TaxCardWithRoot:Resource xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:TaxCardWithRoot="http:///TaxCardWithRoot.ecore" xsi:schemaLocation="http:///TaxCardWithRoot.ecore ../case.study.pledge.model/model/TaxationWithRoot.ecore">
3 <contains id1="">
4 <parents xsi:type="TaxCardWithRoot:Partnership_Record" start_year="1950" end_year="1951" separation_cause="DIVORCE" id9="">
5 <individual_A SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
6 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
7 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
8 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
9 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
10 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
11 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
12 <properties id10=""/>
13 <properties id10=""/>
14 <properties id10=""/>
15 <properties id10=""/>
16 <properties id10=""/>
17 <properties id10=""/>
18 <properties id10=""/>
19 <properties id10=""/>
20 <properties id10=""/>
21 <properties id10=""/>
22 <properties id10=""/>
23 <properties id10=""/>
24 <properties id10=""/>
25 <properties id10=""/>
26 <properties id10=""/>
27 <properties id10=""/>
28 </parents>
29 </contains>
30 <contains id1="">
31 <parents xsi:type="TaxCardWithRoot:Partnership_Record" start_year="1950" end_year="1951" id9="">
32 <individual_A SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
33 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
34 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
35 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
36 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
37 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
38 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
39 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
40 <properties id10=""/>
41 <properties id10=""/>
42 <properties id10=""/>
43 <properties id10=""/>
44 <properties id10=""/>
45 <properties id10=""/>
46 <properties id10=""/>
47 <properties id10=""/>
48 <properties id10=""/>
49 <properties id10=""/>
50 <properties id10=""/>
51 <properties id10=""/>
52 <properties id10=""/>
53 </parents>
54 </contains>
55 <contains id1="">
56 <parents xsi:type="TaxCardWithRoot:Marriage_Record" start_year="1950" end_year="1951" id9="">
57 <individual_A SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
58 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
59 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
60 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
61 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
62 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
63 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
64 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
65 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
66 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
67 <properties id10=""/>
68 <properties id10=""/>
69 <properties id10=""/>
70 <properties id10=""/>
71 <properties id10=""/>
72 <properties id10=""/>
73 <properties id10=""/>
74 <properties id10=""/>
75 <properties id10=""/>
76 </parents>
77 </contains>
78 <contains id1="">
79 <parents xsi:type="TaxCardWithRoot:Marriage_Record" start_year="1950" end_year="1951" separation_cause="SEPARATION_DE_FAIT" id9="">
80 <individual_A SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
81 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
82 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
83 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
84 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
85 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
86 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
87 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
88 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
89 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
90 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
91 <properties id10=""/>
92 <properties id10=""/>
93 <properties id10=""/>
94 <properties id10=""/>
95 <properties id10=""/>
96 <properties id10=""/>
97 <properties id10=""/>
98 <properties id10=""/>
99 <properties id10=""/>
100 <properties id10=""/>
101 </parents>
102 </contains>
103 <contains id1="">
104 <parents xsi:type="TaxCardWithRoot:Marriage_Record" start_year="1950" end_year="1951" separation_cause="SEPARATION_BY_COURT" id9="">
105 <individual_A SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
106 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
107 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
108 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
109 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
110 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
111 <properties id10=""/>
112 <properties id10=""/>
113 <properties id10=""/>
114 <properties id10=""/>
115 <properties id10=""/>
116 </parents>
117 </contains>
118</TaxCardWithRoot:Resource>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/5_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/5_1.xmi
new file mode 100644
index 00000000..2163e7cb
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/5_1.xmi
@@ -0,0 +1,118 @@
1<?xml version="1.0" encoding="ASCII"?>
2<TaxCardWithRoot:Resource xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:TaxCardWithRoot="http:///TaxCardWithRoot.ecore" xsi:schemaLocation="http:///TaxCardWithRoot.ecore ../case.study.pledge.model/model/TaxationWithRoot.ecore">
3 <contains id1="">
4 <parents xsi:type="TaxCardWithRoot:Partnership_Record" start_year="1950" end_year="1951" separation_cause="DIVORCE" id9="">
5 <individual_A SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
6 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
7 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
8 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
9 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
10 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
11 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
12 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
13 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
14 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
15 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
16 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
17 <properties id10=""/>
18 <properties id10=""/>
19 <properties id10=""/>
20 <properties id10=""/>
21 <properties id10=""/>
22 <properties id10=""/>
23 <properties id10=""/>
24 <properties id10=""/>
25 <properties id10=""/>
26 <properties id10=""/>
27 </parents>
28 </contains>
29 <contains id1="">
30 <parents xsi:type="TaxCardWithRoot:Marriage_Record" start_year="1950" end_year="1951" separation_cause="SEPARATION_BY_COURT" id9="">
31 <individual_A SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
32 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
33 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
34 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
35 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
36 <properties id10=""/>
37 <properties id10=""/>
38 <properties id10=""/>
39 <properties id10=""/>
40 <properties id10=""/>
41 <properties id10=""/>
42 <properties id10=""/>
43 </parents>
44 </contains>
45 <contains id1="">
46 <parents xsi:type="TaxCardWithRoot:Partnership_Record" start_year="1950" end_year="1951" id9="">
47 <individual_A SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
48 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
49 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
50 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
51 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
52 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
53 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
54 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
55 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
56 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
57 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
58 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
59 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
60 <properties id10=""/>
61 <properties id10=""/>
62 <properties id10=""/>
63 <properties id10=""/>
64 <properties id10=""/>
65 <properties id10=""/>
66 <properties id10=""/>
67 <properties id10=""/>
68 <properties id10=""/>
69 <properties id10=""/>
70 </parents>
71 </contains>
72 <contains id1="">
73 <parents xsi:type="TaxCardWithRoot:Marriage_Record" start_year="1950" end_year="1951" separation_cause="SEPARATION_BY_COURT" id9="">
74 <individual_A SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
75 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
76 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
77 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
78 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
79 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
80 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
81 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
82 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
83 <properties id10=""/>
84 <properties id10=""/>
85 <properties id10=""/>
86 <properties id10=""/>
87 <properties id10=""/>
88 <properties id10=""/>
89 <properties id10=""/>
90 <properties id10=""/>
91 <properties id10=""/>
92 <properties id10=""/>
93 <properties id10=""/>
94 <properties id10=""/>
95 </parents>
96 </contains>
97 <contains id1="">
98 <parents xsi:type="TaxCardWithRoot:Partnership_Record" start_year="1950" end_year="1951" separation_cause="SEPARATION_BY_COURT" id9="">
99 <individual_A SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
100 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
101 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
102 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
103 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
104 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
105 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
106 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
107 <properties id10=""/>
108 <properties id10=""/>
109 <properties id10=""/>
110 <properties id10=""/>
111 <properties id10=""/>
112 <properties id10=""/>
113 <properties id10=""/>
114 <properties id10=""/>
115 <properties id10=""/>
116 </parents>
117 </contains>
118</TaxCardWithRoot:Resource>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/6_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/6_1.xmi
new file mode 100644
index 00000000..7b76f910
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/6_1.xmi
@@ -0,0 +1,124 @@
1<?xml version="1.0" encoding="ASCII"?>
2<TaxCardWithRoot:Resource xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:TaxCardWithRoot="http:///TaxCardWithRoot.ecore" xsi:schemaLocation="http:///TaxCardWithRoot.ecore ../case.study.pledge.model/model/TaxationWithRoot.ecore">
3 <contains id1="">
4 <parents xsi:type="TaxCardWithRoot:Marriage_Record" start_year="1950" end_year="1951" id9="">
5 <individual_A SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
6 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
7 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
8 <properties id10=""/>
9 <properties id10=""/>
10 <properties id10=""/>
11 <properties id10=""/>
12 <properties id10=""/>
13 </parents>
14 </contains>
15 <contains id1="">
16 <parents xsi:type="TaxCardWithRoot:Partnership_Record" start_year="1950" end_year="1951" id9="">
17 <individual_A SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1" expenses=""/>
18 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1" expenses=" "/>
19 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1" expenses=""/>
20 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
21 <properties id10=""/>
22 </parents>
23 </contains>
24 <contains id1="">
25 <parents xsi:type="TaxCardWithRoot:Partnership_Record" start_year="1950" end_year="1951" id9="">
26 <individual_A SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
27 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1" expenses=""/>
28 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
29 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1" expenses=" "/>
30 <individual_B xsi:type="TaxCardWithRoot:Resident_Tax_Payer" SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1" expenses="">
31 <from_agent expense=""/>
32 <incomes xsi:type="TaxCardWithRoot:Foreign_Income">
33 <income_type xsi:type="TaxCardWithRoot:Agriculture_and_Forestry_Income" id8=""/>
34 <details id5=""/>
35 <details id5=""/>
36 <details id5=""/>
37 <details id5=""/>
38 <details id5=""/>
39 <details id5=""/>
40 <details id5=""/>
41 <details id5=""/>
42 <details id5=""/>
43 <details id5=""/>
44 <details id5=""/>
45 <details id5=""/>
46 <expenses expense_purpose="DEPENDENCE_CARE" id4="" beneficiary=""/>
47 <expenses xsi:type="TaxCardWithRoot:Special_Expense_DS" expense_purpose="ALIMONY" id4="" beneficiary=""/>
48 <expenses xsi:type="TaxCardWithRoot:Professional_Expense" expense_purpose="DEPENDENCE_CARE" from_agent="//@contains.2/@parents/@individual_B.3/@from_agent" id4="" beneficiary=""/>
49 <expenses xsi:type="TaxCardWithRoot:Miscellaneous_Expense_FO" id4="" beneficiary=""/>
50 <expenses xsi:type="TaxCardWithRoot:Travel_Expense_FD" id4="" beneficiary=""/>
51 <expenses xsi:type="TaxCardWithRoot:Miscellaneous_Expense_FO" expense_purpose="ALIMONY" id4="" beneficiary=""/>
52 <expenses xsi:type="TaxCardWithRoot:Miscellaneous_Expense_FO" expense_purpose="RECURRENT_DEPT" id4="" beneficiary=""/>
53 </incomes>
54 <incomes xsi:type="TaxCardWithRoot:Local_Income">
55 <income_type xsi:type="TaxCardWithRoot:Agriculture_and_Forestry_Income" id8=""/>
56 <details id5=""/>
57 <details id5=""/>
58 <details id5=""/>
59 <details id5=""/>
60 <details id5=""/>
61 <details id5=""/>
62 <details id5=""/>
63 <details id5=""/>
64 <details id5=""/>
65 <details id5=""/>
66 <details id5=""/>
67 <details id5=""/>
68 <expenses xsi:type="TaxCardWithRoot:Professional_Expense" expense_purpose="DEPENDENCE_CARE" id4="" beneficiary=""/>
69 <expenses xsi:type="TaxCardWithRoot:Loss_Carryforward" expense_purpose="RECURRENT_DEPT" id4="" beneficiary=""/>
70 <expenses xsi:type="TaxCardWithRoot:Loss_Carryforward" expense_purpose="HOUSE_CARE" id4="" beneficiary=""/>
71 </incomes>
72 <incomes xsi:type="TaxCardWithRoot:Foreign_Income">
73 <income_type xsi:type="TaxCardWithRoot:Capital_and_Investments_Income" id8=""/>
74 <details id5=""/>
75 <details id5=""/>
76 <details id5=""/>
77 <details id5=""/>
78 <details id5=""/>
79 <details id5=""/>
80 <details id5=""/>
81 <details id5=""/>
82 <details id5=""/>
83 <details id5=""/>
84 <details id5=""/>
85 <details id5=""/>
86 <expenses xsi:type="TaxCardWithRoot:Travel_Expense_FD" expense_purpose="CHILD_CARE" id4="" beneficiary=""/>
87 <expenses xsi:type="TaxCardWithRoot:Special_Expense_DS" expense_purpose="HOUSE_CARE" id4="" beneficiary=""/>
88 <expenses expense_purpose="ALIMONY" id4="" beneficiary=""/>
89 <expenses xsi:type="TaxCardWithRoot:Special_Expense_DS" expense_purpose="CHILD_CARE" id4="" beneficiary=""/>
90 </incomes>
91 <from_law id=""/>
92 </individual_B>
93 <properties id10=""/>
94 <properties id10=""/>
95 <properties id10=""/>
96 <properties id10=""/>
97 <properties id10=""/>
98 </parents>
99 </contains>
100 <contains id1="">
101 <parents xsi:type="TaxCardWithRoot:Marriage_Record" start_year="1950" end_year="1951" separation_cause="SEPARATION_DE_FAIT" id9="">
102 <individual_A SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
103 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1" expenses=" "/>
104 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
105 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
106 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
107 <properties id10=""/>
108 <properties id10=""/>
109 <properties id10=""/>
110 <properties id10=""/>
111 </parents>
112 </contains>
113 <contains id1="">
114 <parents xsi:type="TaxCardWithRoot:Marriage_Record" start_year="1950" end_year="1951" separation_cause="SEPARATION_DE_FAIT" id9="">
115 <individual_A SSNo="" birth_year="1918" birth_month="1" birth_day="1" expenses=""/>
116 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
117 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1" expenses=""/>
118 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1" expenses=" "/>
119 <properties id10=""/>
120 <properties id10=""/>
121 <properties id10=""/>
122 </parents>
123 </contains>
124</TaxCardWithRoot:Resource>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/7_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/7_1.xmi
new file mode 100644
index 00000000..cb046b8a
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/7_1.xmi
@@ -0,0 +1,119 @@
1<?xml version="1.0" encoding="ASCII"?>
2<TaxCardWithRoot:Resource xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:TaxCardWithRoot="http:///TaxCardWithRoot.ecore" xsi:schemaLocation="http:///TaxCardWithRoot.ecore ../case.study.pledge.model/model/TaxationWithRoot.ecore">
3 <contains id1="">
4 <parents xsi:type="TaxCardWithRoot:Marriage_Record" start_year="1950" end_year="1951" separation_cause="SEPARATION_DE_FAIT" id9="">
5 <individual_A SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
6 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
7 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
8 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
9 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
10 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
11 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
12 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
13 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
14 <properties id10=""/>
15 <properties id10=""/>
16 <properties id10=""/>
17 <properties id10=""/>
18 <properties id10=""/>
19 <properties id10=""/>
20 <properties id10=""/>
21 <properties id10=""/>
22 <properties id10=""/>
23 <properties id10=""/>
24 <properties id10=""/>
25 <properties id10=""/>
26 </parents>
27 </contains>
28 <contains id1="">
29 <parents xsi:type="TaxCardWithRoot:Partnership_Record" start_year="1950" end_year="1951" separation_cause="SEPARATION_BY_COURT" id9="">
30 <individual_A SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
31 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
32 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
33 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
34 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
35 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
36 <properties id10=""/>
37 <properties id10=""/>
38 <properties id10=""/>
39 <properties id10=""/>
40 <properties id10=""/>
41 <properties id10=""/>
42 </parents>
43 </contains>
44 <contains id1="">
45 <parents xsi:type="TaxCardWithRoot:Partnership_Record" start_year="1950" end_year="1951" id9="">
46 <individual_A SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
47 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
48 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
49 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
50 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
51 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
52 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
53 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
54 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
55 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
56 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
57 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
58 <properties id10=""/>
59 <properties id10=""/>
60 <properties id10=""/>
61 <properties id10=""/>
62 <properties id10=""/>
63 <properties id10=""/>
64 <properties id10=""/>
65 <properties id10=""/>
66 <properties id10=""/>
67 <properties id10=""/>
68 <properties id10=""/>
69 <properties id10=""/>
70 <properties id10=""/>
71 </parents>
72 </contains>
73 <contains id1="">
74 <parents xsi:type="TaxCardWithRoot:Marriage_Record" start_year="1950" end_year="1951" id9="">
75 <individual_A SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
76 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
77 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
78 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
79 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
80 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
81 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
82 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
83 <properties id10=""/>
84 <properties id10=""/>
85 <properties id10=""/>
86 <properties id10=""/>
87 <properties id10=""/>
88 <properties id10=""/>
89 <properties id10=""/>
90 <properties id10=""/>
91 <properties id10=""/>
92 </parents>
93 </contains>
94 <contains id1="">
95 <parents xsi:type="TaxCardWithRoot:Marriage_Record" start_year="1950" end_year="1951" separation_cause="DIVORCE" id9="">
96 <individual_A SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
97 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
98 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
99 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
100 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
101 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
102 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
103 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
104 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
105 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
106 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
107 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
108 <properties id10=""/>
109 <properties id10=""/>
110 <properties id10=""/>
111 <properties id10=""/>
112 <properties id10=""/>
113 <properties id10=""/>
114 <properties id10=""/>
115 <properties id10=""/>
116 <properties id10=""/>
117 </parents>
118 </contains>
119</TaxCardWithRoot:Resource>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/8_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/8_1.xmi
new file mode 100644
index 00000000..a27739a2
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/8_1.xmi
@@ -0,0 +1,118 @@
1<?xml version="1.0" encoding="ASCII"?>
2<TaxCardWithRoot:Resource xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:TaxCardWithRoot="http:///TaxCardWithRoot.ecore" xsi:schemaLocation="http:///TaxCardWithRoot.ecore ../case.study.pledge.model/model/TaxationWithRoot.ecore">
3 <contains id1="">
4 <parents xsi:type="TaxCardWithRoot:Partnership_Record" start_year="1950" end_year="1951" separation_cause="SEPARATION_DE_FAIT" id9="">
5 <individual_A SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
6 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
7 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
8 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
9 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
10 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
11 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
12 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
13 <properties id10=""/>
14 <properties id10=""/>
15 <properties id10=""/>
16 <properties id10=""/>
17 <properties id10=""/>
18 <properties id10=""/>
19 <properties id10=""/>
20 <properties id10=""/>
21 <properties id10=""/>
22 <properties id10=""/>
23 <properties id10=""/>
24 <properties id10=""/>
25 </parents>
26 </contains>
27 <contains id1="">
28 <parents xsi:type="TaxCardWithRoot:Marriage_Record" start_year="1950" end_year="1951" separation_cause="SEPARATION_BY_COURT" id9="">
29 <individual_A SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
30 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
31 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
32 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
33 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
34 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
35 <properties id10=""/>
36 <properties id10=""/>
37 <properties id10=""/>
38 <properties id10=""/>
39 <properties id10=""/>
40 <properties id10=""/>
41 <properties id10=""/>
42 <properties id10=""/>
43 </parents>
44 </contains>
45 <contains id1="">
46 <parents xsi:type="TaxCardWithRoot:Partnership_Record" start_year="1950" end_year="1951" separation_cause="DIVORCE" id9="">
47 <individual_A SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
48 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
49 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
50 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
51 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
52 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
53 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
54 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
55 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
56 <properties id10=""/>
57 <properties id10=""/>
58 <properties id10=""/>
59 <properties id10=""/>
60 <properties id10=""/>
61 <properties id10=""/>
62 <properties id10=""/>
63 <properties id10=""/>
64 <properties id10=""/>
65 <properties id10=""/>
66 <properties id10=""/>
67 <properties id10=""/>
68 <properties id10=""/>
69 <properties id10=""/>
70 </parents>
71 </contains>
72 <contains id1="">
73 <parents xsi:type="TaxCardWithRoot:Partnership_Record" start_year="1950" end_year="1951" separation_cause="DIVORCE" id9="">
74 <individual_A SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
75 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
76 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
77 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
78 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
79 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
80 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
81 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
82 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
83 <properties id10=""/>
84 <properties id10=""/>
85 <properties id10=""/>
86 <properties id10=""/>
87 </parents>
88 </contains>
89 <contains id1="">
90 <parents xsi:type="TaxCardWithRoot:Marriage_Record" start_year="1950" end_year="1951" separation_cause="DIVORCE" id9="">
91 <individual_A SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
92 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
93 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
94 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
95 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
96 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
97 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
98 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
99 <properties id10=""/>
100 <properties id10=""/>
101 <properties id10=""/>
102 <properties id10=""/>
103 <properties id10=""/>
104 <properties id10=""/>
105 <properties id10=""/>
106 <properties id10=""/>
107 <properties id10=""/>
108 <properties id10=""/>
109 <properties id10=""/>
110 <properties id10=""/>
111 <properties id10=""/>
112 <properties id10=""/>
113 <properties id10=""/>
114 <properties id10=""/>
115 <properties id10=""/>
116 </parents>
117 </contains>
118</TaxCardWithRoot:Resource>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/9_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/9_1.xmi
new file mode 100644
index 00000000..f1fdd254
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/Taxation/9_1.xmi
@@ -0,0 +1,118 @@
1<?xml version="1.0" encoding="ASCII"?>
2<TaxCardWithRoot:Resource xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:TaxCardWithRoot="http:///TaxCardWithRoot.ecore" xsi:schemaLocation="http:///TaxCardWithRoot.ecore ../case.study.pledge.model/model/TaxationWithRoot.ecore">
3 <contains id1="">
4 <parents xsi:type="TaxCardWithRoot:Marriage_Record" start_year="1950" end_year="1951" separation_cause="DIVORCE" id9="">
5 <individual_A SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
6 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
7 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
8 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
9 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
10 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
11 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
12 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
13 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
14 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
15 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
16 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
17 <properties id10=""/>
18 <properties id10=""/>
19 <properties id10=""/>
20 <properties id10=""/>
21 <properties id10=""/>
22 <properties id10=""/>
23 <properties id10=""/>
24 </parents>
25 </contains>
26 <contains id1="">
27 <parents xsi:type="TaxCardWithRoot:Partnership_Record" start_year="1950" end_year="1951" id9="">
28 <individual_A SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
29 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
30 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
31 <individual_B SSNo="" birth_year="1918" birth_month="1" birth_day="1"/>
32 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
33 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
34 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
35 <properties id10=""/>
36 <properties id10=""/>
37 <properties id10=""/>
38 <properties id10=""/>
39 <properties id10=""/>
40 <properties id10=""/>
41 <properties id10=""/>
42 <properties id10=""/>
43 <properties id10=""/>
44 <properties id10=""/>
45 </parents>
46 </contains>
47 <contains id1="">
48 <parents xsi:type="TaxCardWithRoot:Marriage_Record" start_year="1950" end_year="1951" separation_cause="DIVORCE" id9="">
49 <individual_A SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
50 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
51 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
52 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
53 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
54 <properties id10=""/>
55 <properties id10=""/>
56 <properties id10=""/>
57 <properties id10=""/>
58 <properties id10=""/>
59 <properties id10=""/>
60 <properties id10=""/>
61 <properties id10=""/>
62 <properties id10=""/>
63 </parents>
64 </contains>
65 <contains id1="">
66 <parents xsi:type="TaxCardWithRoot:Marriage_Record" start_year="1950" end_year="1951" separation_cause="SEPARATION_BY_COURT" id9="">
67 <individual_A SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
68 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
69 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
70 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
71 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
72 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
73 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
74 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
75 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
76 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
77 <individual_B SSNo="" birth_year="1918" disability_type="A" birth_month="1" birth_day="1"/>
78 <individual_B SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
79 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
80 <properties id10=""/>
81 <properties id10=""/>
82 <properties id10=""/>
83 <properties id10=""/>
84 <properties id10=""/>
85 <properties id10=""/>
86 <properties id10=""/>
87 <properties id10=""/>
88 <properties id10=""/>
89 <properties id10=""/>
90 <properties id10=""/>
91 <properties id10=""/>
92 <properties id10=""/>
93 <properties id10=""/>
94 </parents>
95 </contains>
96 <contains id1="">
97 <parents xsi:type="TaxCardWithRoot:Partnership_Record" start_year="1950" end_year="1951" separation_cause="DIVORCE" id9="">
98 <individual_A SSNo="" birth_year="1918" disability_type="D" birth_month="1" birth_day="1"/>
99 <individual_B SSNo="" birth_year="1918" disability_type="E" birth_month="1" birth_day="1"/>
100 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
101 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
102 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
103 <individual_B SSNo="" birth_year="1918" disability_type="NONE" birth_month="1" birth_day="1"/>
104 <individual_B SSNo="" birth_year="1918" disability_type="OTHER" birth_month="1" birth_day="1"/>
105 <individual_B SSNo="" birth_year="1918" disability_type="B" birth_month="1" birth_day="1"/>
106 <individual_B SSNo="" birth_year="1918" disability_type="C" birth_month="1" birth_day="1"/>
107 <properties id10=""/>
108 <properties id10=""/>
109 <properties id10=""/>
110 <properties id10=""/>
111 <properties id10=""/>
112 <properties id10=""/>
113 <properties id10=""/>
114 <properties id10=""/>
115 <properties id10=""/>
116 </parents>
117 </contains>
118</TaxCardWithRoot:Resource>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/10_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/10_1.xmi
new file mode 100644
index 00000000..d59f3d80
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/10_1.xmi
@@ -0,0 +1,105 @@
1<?xml version="1.0" encoding="ASCII"?>
2<TaxCardWithRoot:Resource xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:TaxCardWithRoot="http:///TaxCardWithRoot.ecore" xsi:schemaLocation="http:///TaxCardWithRoot.ecore ../case.study.pledge.model/model/TaxationWithRoot.ecore">
3 <contains id1="">
4 <parents xsi:type="TaxCardWithRoot:Partnership_Record" id9="">
5 <individual_A SSNo="" disability_type="NONE"/>
6 <individual_B SSNo="" disability_type="E"/>
7 <individual_B SSNo="" disability_type="D"/>
8 <individual_B SSNo="" disability_type="C"/>
9 <individual_B SSNo="" disability_type="OTHER"/>
10 <individual_B SSNo="" disability_type="NONE"/>
11 <individual_B SSNo="" disability_type="B"/>
12 <individual_B SSNo="" disability_type="E"/>
13 <individual_B SSNo="" disability_type="NONE"/>
14 <individual_B SSNo="" disability_type="C"/>
15 <individual_B SSNo="" disability_type="A"/>
16 <individual_B SSNo="" disability_type="A"/>
17 <individual_B SSNo="" disability_type="OTHER"/>
18 <individual_B SSNo="" disability_type="OTHER"/>
19 <individual_B SSNo="" disability_type="B"/>
20 <individual_B SSNo="" disability_type="A"/>
21 <individual_B SSNo=""/>
22 <individual_B SSNo="" disability_type="C"/>
23 <individual_B SSNo="" disability_type="B"/>
24 <individual_B SSNo=""/>
25 <individual_B SSNo="" disability_type="E"/>
26 <individual_B SSNo="" disability_type="NONE"/>
27 <individual_B SSNo="" disability_type="E"/>
28 <individual_B SSNo="" disability_type="NONE"/>
29 <individual_B SSNo="" disability_type="B"/>
30 <individual_B SSNo="" disability_type="C"/>
31 <individual_B SSNo="" disability_type="E"/>
32 <individual_B SSNo="" disability_type="C"/>
33 <individual_B SSNo="" disability_type="A"/>
34 <individual_B SSNo="" disability_type="D"/>
35 <individual_B SSNo="" disability_type="A"/>
36 <individual_B SSNo="" disability_type="C"/>
37 <individual_B SSNo="" disability_type="A"/>
38 <individual_B SSNo="" disability_type="E"/>
39 <individual_B SSNo="" disability_type="A"/>
40 <individual_B SSNo="" disability_type="D"/>
41 <individual_B SSNo="" disability_type="E"/>
42 <individual_B SSNo="" disability_type="A"/>
43 <individual_B SSNo="" disability_type="E"/>
44 <individual_B SSNo="" disability_type="C"/>
45 <individual_B SSNo="" disability_type="E"/>
46 <individual_B SSNo=""/>
47 <individual_B SSNo="" disability_type="OTHER"/>
48 <individual_B SSNo="" disability_type="NONE"/>
49 <individual_B SSNo="" disability_type="D"/>
50 <individual_B SSNo="" disability_type="D"/>
51 <individual_B SSNo=""/>
52 <properties id10=""/>
53 <properties id10=""/>
54 <properties id10=""/>
55 <properties id10=""/>
56 <properties id10=""/>
57 <properties id10=""/>
58 <properties id10=""/>
59 <properties id10=""/>
60 <properties id10=""/>
61 <properties id10=""/>
62 <properties id10=""/>
63 <properties id10=""/>
64 <properties id10=""/>
65 <properties id10=""/>
66 <properties id10=""/>
67 <properties id10=""/>
68 <properties id10=""/>
69 <properties id10=""/>
70 <properties id10=""/>
71 <properties id10=""/>
72 <properties id10=""/>
73 <properties id10=""/>
74 <properties id10=""/>
75 <properties id10=""/>
76 <properties id10=""/>
77 <properties id10=""/>
78 <properties id10=""/>
79 <properties id10=""/>
80 <properties id10=""/>
81 <properties id10=""/>
82 <properties id10=""/>
83 <properties id10=""/>
84 <properties id10=""/>
85 <properties id10=""/>
86 <properties id10=""/>
87 <properties id10=""/>
88 <properties id10=""/>
89 <properties id10=""/>
90 <properties id10=""/>
91 <properties id10=""/>
92 <properties id10=""/>
93 <properties id10=""/>
94 <properties id10=""/>
95 <properties id10=""/>
96 <properties id10=""/>
97 <properties id10=""/>
98 <properties id10=""/>
99 <properties id10=""/>
100 <properties id10=""/>
101 <properties id10=""/>
102 <properties id10=""/>
103 </parents>
104 </contains>
105</TaxCardWithRoot:Resource>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/1_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/1_1.xmi
new file mode 100644
index 00000000..052c7f8f
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/1_1.xmi
@@ -0,0 +1,105 @@
1<?xml version="1.0" encoding="ASCII"?>
2<TaxCardWithRoot:Resource xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:TaxCardWithRoot="http:///TaxCardWithRoot.ecore" xsi:schemaLocation="http:///TaxCardWithRoot.ecore ../case.study.pledge.model/model/TaxationWithRoot.ecore">
3 <contains id1="">
4 <parents xsi:type="TaxCardWithRoot:Partnership_Record" separation_cause="SEPARATION_BY_COURT" id9="">
5 <individual_A SSNo="" disability_type="C"/>
6 <individual_B SSNo="" disability_type="B"/>
7 <individual_B SSNo="" disability_type="E"/>
8 <individual_B SSNo="" disability_type="NONE"/>
9 <individual_B SSNo="" disability_type="E"/>
10 <individual_B SSNo="" disability_type="OTHER"/>
11 <individual_B SSNo="" disability_type="D"/>
12 <individual_B SSNo="" disability_type="B"/>
13 <individual_B SSNo="" disability_type="E"/>
14 <individual_B SSNo="" disability_type="B"/>
15 <individual_B SSNo="" disability_type="D"/>
16 <individual_B SSNo="" disability_type="D"/>
17 <individual_B SSNo=""/>
18 <individual_B SSNo="" disability_type="B"/>
19 <individual_B SSNo="" disability_type="NONE"/>
20 <individual_B SSNo="" disability_type="A"/>
21 <individual_B SSNo="" disability_type="B"/>
22 <individual_B SSNo="" disability_type="OTHER"/>
23 <individual_B SSNo="" disability_type="C"/>
24 <individual_B SSNo=""/>
25 <individual_B SSNo="" disability_type="C"/>
26 <individual_B SSNo="" disability_type="B"/>
27 <individual_B SSNo=""/>
28 <individual_B SSNo="" disability_type="D"/>
29 <individual_B SSNo="" disability_type="B"/>
30 <individual_B SSNo="" disability_type="OTHER"/>
31 <individual_B SSNo="" disability_type="NONE"/>
32 <individual_B SSNo="" disability_type="OTHER"/>
33 <individual_B SSNo="" disability_type="OTHER"/>
34 <individual_B SSNo="" disability_type="NONE"/>
35 <individual_B SSNo="" disability_type="A"/>
36 <individual_B SSNo="" disability_type="E"/>
37 <individual_B SSNo="" disability_type="C"/>
38 <individual_B SSNo="" disability_type="D"/>
39 <individual_B SSNo=""/>
40 <individual_B SSNo="" disability_type="E"/>
41 <individual_B SSNo="" disability_type="C"/>
42 <individual_B SSNo="" disability_type="C"/>
43 <individual_B SSNo="" disability_type="A"/>
44 <individual_B SSNo="" disability_type="E"/>
45 <individual_B SSNo="" disability_type="C"/>
46 <individual_B SSNo="" disability_type="E"/>
47 <individual_B SSNo="" disability_type="OTHER"/>
48 <individual_B SSNo=""/>
49 <individual_B SSNo="" disability_type="B"/>
50 <individual_B SSNo="" disability_type="C"/>
51 <individual_B SSNo="" disability_type="B"/>
52 <individual_B SSNo="" disability_type="OTHER"/>
53 <individual_B SSNo=""/>
54 <individual_B SSNo=""/>
55 <individual_B SSNo="" disability_type="B"/>
56 <individual_B SSNo="" disability_type="NONE"/>
57 <individual_B SSNo="" disability_type="A"/>
58 <properties id10=""/>
59 <properties id10=""/>
60 <properties id10=""/>
61 <properties id10=""/>
62 <properties id10=""/>
63 <properties id10=""/>
64 <properties id10=""/>
65 <properties id10=""/>
66 <properties id10=""/>
67 <properties id10=""/>
68 <properties id10=""/>
69 <properties id10=""/>
70 <properties id10=""/>
71 <properties id10=""/>
72 <properties id10=""/>
73 <properties id10=""/>
74 <properties id10=""/>
75 <properties id10=""/>
76 <properties id10=""/>
77 <properties id10=""/>
78 <properties id10=""/>
79 <properties id10=""/>
80 <properties id10=""/>
81 <properties id10=""/>
82 <properties id10=""/>
83 <properties id10=""/>
84 <properties id10=""/>
85 <properties id10=""/>
86 <properties id10=""/>
87 <properties id10=""/>
88 <properties id10=""/>
89 <properties id10=""/>
90 <properties id10=""/>
91 <properties id10=""/>
92 <properties id10=""/>
93 <properties id10=""/>
94 <properties id10=""/>
95 <properties id10=""/>
96 <properties id10=""/>
97 <properties id10=""/>
98 <properties id10=""/>
99 <properties id10=""/>
100 <properties id10=""/>
101 <properties id10=""/>
102 <properties id10=""/>
103 </parents>
104 </contains>
105</TaxCardWithRoot:Resource>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/2_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/2_1.xmi
new file mode 100644
index 00000000..f947f108
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/2_1.xmi
@@ -0,0 +1,105 @@
1<?xml version="1.0" encoding="ASCII"?>
2<TaxCardWithRoot:Resource xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:TaxCardWithRoot="http:///TaxCardWithRoot.ecore" xsi:schemaLocation="http:///TaxCardWithRoot.ecore ../case.study.pledge.model/model/TaxationWithRoot.ecore">
3 <contains id1="">
4 <parents xsi:type="TaxCardWithRoot:Marriage_Record" separation_cause="DIVORCE" id9="">
5 <individual_A SSNo=""/>
6 <individual_B SSNo="" disability_type="D"/>
7 <individual_B SSNo="" disability_type="OTHER"/>
8 <individual_B SSNo="" disability_type="B"/>
9 <individual_B SSNo="" disability_type="OTHER"/>
10 <individual_B SSNo="" disability_type="OTHER"/>
11 <individual_B SSNo="" disability_type="E"/>
12 <individual_B SSNo="" disability_type="D"/>
13 <individual_B SSNo="" disability_type="OTHER"/>
14 <individual_B SSNo="" disability_type="D"/>
15 <individual_B SSNo="" disability_type="B"/>
16 <individual_B SSNo="" disability_type="E"/>
17 <individual_B SSNo="" disability_type="OTHER"/>
18 <individual_B SSNo="" disability_type="D"/>
19 <individual_B SSNo="" disability_type="E"/>
20 <individual_B SSNo=""/>
21 <individual_B SSNo="" disability_type="E"/>
22 <individual_B SSNo="" disability_type="D"/>
23 <individual_B SSNo="" disability_type="OTHER"/>
24 <individual_B SSNo="" disability_type="A"/>
25 <individual_B SSNo="" disability_type="OTHER"/>
26 <individual_B SSNo="" disability_type="C"/>
27 <individual_B SSNo=""/>
28 <individual_B SSNo="" disability_type="B"/>
29 <individual_B SSNo="" disability_type="E"/>
30 <individual_B SSNo="" disability_type="D"/>
31 <individual_B SSNo=""/>
32 <individual_B SSNo="" disability_type="D"/>
33 <individual_B SSNo="" disability_type="E"/>
34 <individual_B SSNo="" disability_type="OTHER"/>
35 <individual_B SSNo="" disability_type="C"/>
36 <individual_B SSNo="" disability_type="D"/>
37 <individual_B SSNo="" disability_type="B"/>
38 <individual_B SSNo=""/>
39 <individual_B SSNo="" disability_type="NONE"/>
40 <individual_B SSNo="" disability_type="C"/>
41 <individual_B SSNo="" disability_type="D"/>
42 <individual_B SSNo=""/>
43 <individual_B SSNo="" disability_type="NONE"/>
44 <individual_B SSNo="" disability_type="B"/>
45 <individual_B SSNo="" disability_type="NONE"/>
46 <individual_B SSNo="" disability_type="D"/>
47 <individual_B SSNo="" disability_type="E"/>
48 <individual_B SSNo="" disability_type="OTHER"/>
49 <individual_B SSNo="" disability_type="D"/>
50 <individual_B SSNo="" disability_type="B"/>
51 <individual_B SSNo=""/>
52 <individual_B SSNo="" disability_type="A"/>
53 <individual_B SSNo="" disability_type="OTHER"/>
54 <individual_B SSNo="" disability_type="C"/>
55 <properties id10=""/>
56 <properties id10=""/>
57 <properties id10=""/>
58 <properties id10=""/>
59 <properties id10=""/>
60 <properties id10=""/>
61 <properties id10=""/>
62 <properties id10=""/>
63 <properties id10=""/>
64 <properties id10=""/>
65 <properties id10=""/>
66 <properties id10=""/>
67 <properties id10=""/>
68 <properties id10=""/>
69 <properties id10=""/>
70 <properties id10=""/>
71 <properties id10=""/>
72 <properties id10=""/>
73 <properties id10=""/>
74 <properties id10=""/>
75 <properties id10=""/>
76 <properties id10=""/>
77 <properties id10=""/>
78 <properties id10=""/>
79 <properties id10=""/>
80 <properties id10=""/>
81 <properties id10=""/>
82 <properties id10=""/>
83 <properties id10=""/>
84 <properties id10=""/>
85 <properties id10=""/>
86 <properties id10=""/>
87 <properties id10=""/>
88 <properties id10=""/>
89 <properties id10=""/>
90 <properties id10=""/>
91 <properties id10=""/>
92 <properties id10=""/>
93 <properties id10=""/>
94 <properties id10=""/>
95 <properties id10=""/>
96 <properties id10=""/>
97 <properties id10=""/>
98 <properties id10=""/>
99 <properties id10=""/>
100 <properties id10=""/>
101 <properties id10=""/>
102 <properties id10=""/>
103 </parents>
104 </contains>
105</TaxCardWithRoot:Resource>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/3_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/3_1.xmi
new file mode 100644
index 00000000..30989757
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/3_1.xmi
@@ -0,0 +1,111 @@
1<?xml version="1.0" encoding="ASCII"?>
2<TaxCardWithRoot:Resource xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:TaxCardWithRoot="http:///TaxCardWithRoot.ecore" xsi:schemaLocation="http:///TaxCardWithRoot.ecore ../case.study.pledge.model/model/TaxationWithRoot.ecore">
3 <contains id1="">
4 <parents xsi:type="TaxCardWithRoot:Partnership_Record" separation_cause="DIVORCE" id9="">
5 <individual_A SSNo="" disability_type="E" expenses=" "/>
6 <individual_B SSNo="" disability_type="OTHER" expenses=" "/>
7 <individual_B xsi:type="TaxCardWithRoot:Resident_Tax_Payer" SSNo="" expenses=" ">
8 <from_agent expense=""/>
9 <incomes xsi:type="TaxCardWithRoot:Local_Income">
10 <income_type xsi:type="TaxCardWithRoot:Rentals_and_Leases_Income" id8="" is_periodic="false"/>
11 <details id5=""/>
12 <details id5=""/>
13 <details id5=""/>
14 <details id5=""/>
15 <details id5=""/>
16 <details id5=""/>
17 <details id5=""/>
18 <details id5=""/>
19 <details id5=""/>
20 <details id5=""/>
21 <details id5=""/>
22 <details id5=""/>
23 </incomes>
24 <incomes xsi:type="TaxCardWithRoot:Foreign_Income">
25 <income_type xsi:type="TaxCardWithRoot:Agriculture_and_Forestry_Income" id8=""/>
26 <details id5=""/>
27 <details id5=""/>
28 <details id5=""/>
29 <details id5=""/>
30 <details id5=""/>
31 <details id5=""/>
32 <details id5=""/>
33 <details id5=""/>
34 <details id5=""/>
35 <details id5=""/>
36 <details id5=""/>
37 <details id5=""/>
38 <expenses xsi:type="TaxCardWithRoot:Professional_Expense" expense_purpose="CHILD_CARE" from_agent="//@contains.0/@parents/@individual_B.1/@from_agent" id4="" beneficiary=""/>
39 <expenses xsi:type="TaxCardWithRoot:Spousal_Expense_AC" expense_purpose="HOUSE_CARE" id4="" beneficiary=""/>
40 <expenses xsi:type="TaxCardWithRoot:Donation" expense_purpose="HOUSE_CARE" id4="" beneficiary="" beneficiary1=""/>
41 <expenses xsi:type="TaxCardWithRoot:Donation" expense_purpose="DEPENDENCE_CARE" id4="" beneficiary="" beneficiary1=""/>
42 <expenses xsi:type="TaxCardWithRoot:Special_Expense_DS" id4="" beneficiary=""/>
43 <expenses xsi:type="TaxCardWithRoot:Special_Expense_DS" expense_purpose="CHILD_CARE" id4=""/>
44 <expenses xsi:type="TaxCardWithRoot:Special_Expense_DS" expense_purpose="ALIMONY" id4="" beneficiary=""/>
45 <expenses xsi:type="TaxCardWithRoot:Travel_Expense_FD" expense_purpose="CHILD_CARE" id4="" beneficiary=""/>
46 <expenses xsi:type="TaxCardWithRoot:Travel_Expense_FD" expense_purpose="ALIMONY" id4="" beneficiary=""/>
47 <expenses xsi:type="TaxCardWithRoot:Interest_Expense" expense_purpose="HOUSE_CARE" id4="" beneficiary=""/>
48 <expenses xsi:type="TaxCardWithRoot:Interest_Expense" id4="" beneficiary=""/>
49 <expenses xsi:type="TaxCardWithRoot:Professional_Expense" expense_purpose="HOUSE_CARE" id4="" beneficiary=""/>
50 <expenses xsi:type="TaxCardWithRoot:Special_Expense_DS" expense_purpose="CHILD_CARE" id4="" beneficiary=""/>
51 </incomes>
52 <incomes xsi:type="TaxCardWithRoot:Foreign_Income">
53 <income_type xsi:type="TaxCardWithRoot:Agriculture_and_Forestry_Income" id8=""/>
54 <details id5=""/>
55 <details id5=""/>
56 <details id5=""/>
57 <details id5=""/>
58 <details id5=""/>
59 <details id5=""/>
60 <details id5=""/>
61 <details id5=""/>
62 <details id5=""/>
63 <details id5=""/>
64 <details id5=""/>
65 <details id5=""/>
66 <expenses xsi:type="TaxCardWithRoot:Interest_Expense" expense_purpose="HOUSE_CARE" id4="" beneficiary=""/>
67 <expenses xsi:type="TaxCardWithRoot:Interest_Expense" expense_purpose="ALIMONY" id4="" beneficiary=""/>
68 <expenses xsi:type="TaxCardWithRoot:Spousal_Expense_AC" expense_purpose="RECURRENT_DEPT" id4="" beneficiary=""/>
69 <expenses xsi:type="TaxCardWithRoot:Donation" id4="" beneficiary="" beneficiary1=""/>
70 <expenses xsi:type="TaxCardWithRoot:Miscellaneous_Expense_FO" expense_purpose="CHILD_CARE" id4="" beneficiary=""/>
71 <expenses xsi:type="TaxCardWithRoot:Loss_Carryforward" id4="" beneficiary=""/>
72 <expenses xsi:type="TaxCardWithRoot:Travel_Expense_FD" expense_purpose="RECURRENT_DEPT" id4=""/>
73 <expenses xsi:type="TaxCardWithRoot:Travel_Expense_FD" expense_purpose="DEPENDENCE_CARE" id4="" beneficiary=""/>
74 <expenses xsi:type="TaxCardWithRoot:Special_Expense_DS" id4="" beneficiary=""/>
75 </incomes>
76 <incomes xsi:type="TaxCardWithRoot:Foreign_Income">
77 <income_type xsi:type="TaxCardWithRoot:Agriculture_and_Forestry_Income" id8=""/>
78 <details id5=""/>
79 <details id5=""/>
80 <details id5=""/>
81 <details id5=""/>
82 <details id5=""/>
83 <details id5=""/>
84 <details id5=""/>
85 <details id5=""/>
86 <details id5=""/>
87 <details id5=""/>
88 <details id5=""/>
89 <details id5=""/>
90 <expenses expense_purpose="DEPENDENCE_CARE" id4="" beneficiary=""/>
91 <expenses xsi:type="TaxCardWithRoot:Spousal_Expense_AC" expense_purpose="HOUSE_CARE" id4="" beneficiary=""/>
92 <expenses xsi:type="TaxCardWithRoot:Travel_Expense_FD" expense_purpose="CHILD_CARE" id4=""/>
93 </incomes>
94 <from_law id=""/>
95 </individual_B>
96 <individual_B SSNo="" disability_type="A" expenses=" "/>
97 <individual_B SSNo="" expenses=" "/>
98 <individual_B SSNo="" disability_type="C" expenses=" "/>
99 <individual_B SSNo="" expenses=""/>
100 <individual_B SSNo="" disability_type="NONE" expenses=""/>
101 <individual_B SSNo="" disability_type="D"/>
102 <properties id10=""/>
103 <properties id10=""/>
104 <properties id10=""/>
105 <properties id10=""/>
106 <properties id10=""/>
107 <properties id10=""/>
108 <properties id10=""/>
109 </parents>
110 </contains>
111</TaxCardWithRoot:Resource>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/4_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/4_1.xmi
new file mode 100644
index 00000000..3a75ed9b
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/4_1.xmi
@@ -0,0 +1,105 @@
1<?xml version="1.0" encoding="ASCII"?>
2<TaxCardWithRoot:Resource xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:TaxCardWithRoot="http:///TaxCardWithRoot.ecore" xsi:schemaLocation="http:///TaxCardWithRoot.ecore ../case.study.pledge.model/model/TaxationWithRoot.ecore">
3 <contains id1="">
4 <parents xsi:type="TaxCardWithRoot:Partnership_Record" separation_cause="SEPARATION_DE_FAIT" id9="">
5 <individual_A SSNo=""/>
6 <individual_B SSNo=""/>
7 <individual_B SSNo="" disability_type="A"/>
8 <individual_B SSNo="" disability_type="D"/>
9 <individual_B SSNo=""/>
10 <individual_B SSNo="" disability_type="NONE"/>
11 <individual_B SSNo=""/>
12 <individual_B SSNo="" disability_type="E"/>
13 <individual_B SSNo="" disability_type="E"/>
14 <individual_B SSNo="" disability_type="E"/>
15 <individual_B SSNo="" disability_type="E"/>
16 <individual_B SSNo="" disability_type="E"/>
17 <individual_B SSNo="" disability_type="B"/>
18 <individual_B SSNo="" disability_type="B"/>
19 <individual_B SSNo="" disability_type="A"/>
20 <individual_B SSNo=""/>
21 <individual_B SSNo="" disability_type="C"/>
22 <individual_B SSNo="" disability_type="E"/>
23 <individual_B SSNo="" disability_type="D"/>
24 <individual_B SSNo=""/>
25 <individual_B SSNo="" disability_type="E"/>
26 <individual_B SSNo="" disability_type="D"/>
27 <individual_B SSNo="" disability_type="E"/>
28 <individual_B SSNo="" disability_type="C"/>
29 <individual_B SSNo="" disability_type="NONE"/>
30 <individual_B SSNo="" disability_type="A"/>
31 <individual_B SSNo="" disability_type="OTHER"/>
32 <individual_B SSNo="" disability_type="A"/>
33 <individual_B SSNo=""/>
34 <individual_B SSNo="" disability_type="OTHER"/>
35 <individual_B SSNo="" disability_type="OTHER"/>
36 <individual_B SSNo="" disability_type="NONE"/>
37 <individual_B SSNo="" disability_type="D"/>
38 <individual_B SSNo="" disability_type="D"/>
39 <individual_B SSNo="" disability_type="NONE"/>
40 <individual_B SSNo="" disability_type="D"/>
41 <individual_B SSNo="" disability_type="C"/>
42 <individual_B SSNo="" disability_type="C"/>
43 <individual_B SSNo="" disability_type="C"/>
44 <individual_B SSNo=""/>
45 <individual_B SSNo="" disability_type="OTHER"/>
46 <individual_B SSNo="" disability_type="B"/>
47 <individual_B SSNo="" disability_type="E"/>
48 <properties id10=""/>
49 <properties id10=""/>
50 <properties id10=""/>
51 <properties id10=""/>
52 <properties id10=""/>
53 <properties id10=""/>
54 <properties id10=""/>
55 <properties id10=""/>
56 <properties id10=""/>
57 <properties id10=""/>
58 <properties id10=""/>
59 <properties id10=""/>
60 <properties id10=""/>
61 <properties id10=""/>
62 <properties id10=""/>
63 <properties id10=""/>
64 <properties id10=""/>
65 <properties id10=""/>
66 <properties id10=""/>
67 <properties id10=""/>
68 <properties id10=""/>
69 <properties id10=""/>
70 <properties id10=""/>
71 <properties id10=""/>
72 <properties id10=""/>
73 <properties id10=""/>
74 <properties id10=""/>
75 <properties id10=""/>
76 <properties id10=""/>
77 <properties id10=""/>
78 <properties id10=""/>
79 <properties id10=""/>
80 <properties id10=""/>
81 <properties id10=""/>
82 <properties id10=""/>
83 <properties id10=""/>
84 <properties id10=""/>
85 <properties id10=""/>
86 <properties id10=""/>
87 <properties id10=""/>
88 <properties id10=""/>
89 <properties id10=""/>
90 <properties id10=""/>
91 <properties id10=""/>
92 <properties id10=""/>
93 <properties id10=""/>
94 <properties id10=""/>
95 <properties id10=""/>
96 <properties id10=""/>
97 <properties id10=""/>
98 <properties id10=""/>
99 <properties id10=""/>
100 <properties id10=""/>
101 <properties id10=""/>
102 <properties id10=""/>
103 </parents>
104 </contains>
105</TaxCardWithRoot:Resource>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/5_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/5_1.xmi
new file mode 100644
index 00000000..f6fdaf85
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/5_1.xmi
@@ -0,0 +1,105 @@
1<?xml version="1.0" encoding="ASCII"?>
2<TaxCardWithRoot:Resource xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:TaxCardWithRoot="http:///TaxCardWithRoot.ecore" xsi:schemaLocation="http:///TaxCardWithRoot.ecore ../case.study.pledge.model/model/TaxationWithRoot.ecore">
3 <contains id1="">
4 <parents xsi:type="TaxCardWithRoot:Marriage_Record" separation_cause="DIVORCE" id9="">
5 <individual_A SSNo="" disability_type="NONE"/>
6 <individual_B SSNo=""/>
7 <individual_B SSNo="" disability_type="NONE"/>
8 <individual_B SSNo="" disability_type="E"/>
9 <individual_B SSNo="" disability_type="OTHER"/>
10 <individual_B SSNo="" disability_type="NONE"/>
11 <individual_B SSNo="" disability_type="E"/>
12 <individual_B SSNo=""/>
13 <individual_B SSNo="" disability_type="OTHER"/>
14 <individual_B SSNo="" disability_type="OTHER"/>
15 <individual_B SSNo="" disability_type="NONE"/>
16 <individual_B SSNo="" disability_type="C"/>
17 <individual_B SSNo="" disability_type="C"/>
18 <individual_B SSNo="" disability_type="NONE"/>
19 <individual_B SSNo=""/>
20 <individual_B SSNo="" disability_type="C"/>
21 <individual_B SSNo="" disability_type="B"/>
22 <individual_B SSNo="" disability_type="B"/>
23 <individual_B SSNo="" disability_type="E"/>
24 <individual_B SSNo="" disability_type="A"/>
25 <individual_B SSNo="" disability_type="C"/>
26 <individual_B SSNo="" disability_type="A"/>
27 <individual_B SSNo="" disability_type="NONE"/>
28 <individual_B SSNo="" disability_type="B"/>
29 <individual_B SSNo="" disability_type="C"/>
30 <individual_B SSNo="" disability_type="B"/>
31 <individual_B SSNo="" disability_type="OTHER"/>
32 <individual_B SSNo="" disability_type="E"/>
33 <individual_B SSNo="" disability_type="NONE"/>
34 <individual_B SSNo="" disability_type="B"/>
35 <individual_B SSNo="" disability_type="OTHER"/>
36 <individual_B SSNo="" disability_type="A"/>
37 <individual_B SSNo="" disability_type="A"/>
38 <individual_B SSNo="" disability_type="D"/>
39 <individual_B SSNo="" disability_type="C"/>
40 <individual_B SSNo="" disability_type="D"/>
41 <individual_B SSNo="" disability_type="OTHER"/>
42 <individual_B SSNo="" disability_type="A"/>
43 <individual_B SSNo="" disability_type="B"/>
44 <individual_B SSNo="" disability_type="C"/>
45 <individual_B SSNo="" disability_type="A"/>
46 <individual_B SSNo="" disability_type="E"/>
47 <individual_B SSNo="" disability_type="D"/>
48 <individual_B SSNo=""/>
49 <individual_B SSNo="" disability_type="A"/>
50 <individual_B SSNo=""/>
51 <properties id10=""/>
52 <properties id10=""/>
53 <properties id10=""/>
54 <properties id10=""/>
55 <properties id10=""/>
56 <properties id10=""/>
57 <properties id10=""/>
58 <properties id10=""/>
59 <properties id10=""/>
60 <properties id10=""/>
61 <properties id10=""/>
62 <properties id10=""/>
63 <properties id10=""/>
64 <properties id10=""/>
65 <properties id10=""/>
66 <properties id10=""/>
67 <properties id10=""/>
68 <properties id10=""/>
69 <properties id10=""/>
70 <properties id10=""/>
71 <properties id10=""/>
72 <properties id10=""/>
73 <properties id10=""/>
74 <properties id10=""/>
75 <properties id10=""/>
76 <properties id10=""/>
77 <properties id10=""/>
78 <properties id10=""/>
79 <properties id10=""/>
80 <properties id10=""/>
81 <properties id10=""/>
82 <properties id10=""/>
83 <properties id10=""/>
84 <properties id10=""/>
85 <properties id10=""/>
86 <properties id10=""/>
87 <properties id10=""/>
88 <properties id10=""/>
89 <properties id10=""/>
90 <properties id10=""/>
91 <properties id10=""/>
92 <properties id10=""/>
93 <properties id10=""/>
94 <properties id10=""/>
95 <properties id10=""/>
96 <properties id10=""/>
97 <properties id10=""/>
98 <properties id10=""/>
99 <properties id10=""/>
100 <properties id10=""/>
101 <properties id10=""/>
102 <properties id10=""/>
103 </parents>
104 </contains>
105</TaxCardWithRoot:Resource>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/6_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/6_1.xmi
new file mode 100644
index 00000000..cf7f6a35
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/6_1.xmi
@@ -0,0 +1,105 @@
1<?xml version="1.0" encoding="ASCII"?>
2<TaxCardWithRoot:Resource xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:TaxCardWithRoot="http:///TaxCardWithRoot.ecore" xsi:schemaLocation="http:///TaxCardWithRoot.ecore ../case.study.pledge.model/model/TaxationWithRoot.ecore">
3 <contains id1="">
4 <parents xsi:type="TaxCardWithRoot:Partnership_Record" separation_cause="SEPARATION_DE_FAIT" id9="">
5 <individual_A SSNo="" disability_type="C"/>
6 <individual_B SSNo="" disability_type="B"/>
7 <individual_B SSNo="" disability_type="OTHER"/>
8 <individual_B SSNo="" disability_type="C"/>
9 <individual_B SSNo="" disability_type="NONE"/>
10 <individual_B SSNo=""/>
11 <individual_B SSNo="" disability_type="E"/>
12 <individual_B SSNo="" disability_type="OTHER"/>
13 <individual_B SSNo="" disability_type="NONE"/>
14 <individual_B SSNo=""/>
15 <individual_B SSNo=""/>
16 <individual_B SSNo="" disability_type="E"/>
17 <individual_B SSNo="" disability_type="D"/>
18 <individual_B SSNo="" disability_type="E"/>
19 <individual_B SSNo="" disability_type="B"/>
20 <individual_B SSNo="" disability_type="NONE"/>
21 <individual_B SSNo=""/>
22 <individual_B SSNo="" disability_type="B"/>
23 <individual_B SSNo="" disability_type="NONE"/>
24 <individual_B SSNo=""/>
25 <individual_B SSNo="" disability_type="E"/>
26 <individual_B SSNo="" disability_type="B"/>
27 <individual_B SSNo="" disability_type="E"/>
28 <individual_B SSNo=""/>
29 <individual_B SSNo="" disability_type="NONE"/>
30 <individual_B SSNo="" disability_type="C"/>
31 <individual_B SSNo="" disability_type="OTHER"/>
32 <individual_B SSNo="" disability_type="A"/>
33 <individual_B SSNo="" disability_type="NONE"/>
34 <individual_B SSNo=""/>
35 <individual_B SSNo="" disability_type="OTHER"/>
36 <individual_B SSNo=""/>
37 <individual_B SSNo="" disability_type="A"/>
38 <individual_B SSNo="" disability_type="E"/>
39 <individual_B SSNo="" disability_type="C"/>
40 <individual_B SSNo="" disability_type="NONE"/>
41 <individual_B SSNo="" disability_type="A"/>
42 <individual_B SSNo="" disability_type="A"/>
43 <individual_B SSNo=""/>
44 <individual_B SSNo="" disability_type="B"/>
45 <individual_B SSNo="" disability_type="A"/>
46 <individual_B SSNo="" disability_type="NONE"/>
47 <individual_B SSNo="" disability_type="E"/>
48 <individual_B SSNo=""/>
49 <individual_B SSNo="" disability_type="E"/>
50 <individual_B SSNo="" disability_type="OTHER"/>
51 <individual_B SSNo="" disability_type="C"/>
52 <individual_B SSNo="" disability_type="NONE"/>
53 <individual_B SSNo="" disability_type="D"/>
54 <individual_B SSNo=""/>
55 <individual_B SSNo="" disability_type="OTHER"/>
56 <properties id10=""/>
57 <properties id10=""/>
58 <properties id10=""/>
59 <properties id10=""/>
60 <properties id10=""/>
61 <properties id10=""/>
62 <properties id10=""/>
63 <properties id10=""/>
64 <properties id10=""/>
65 <properties id10=""/>
66 <properties id10=""/>
67 <properties id10=""/>
68 <properties id10=""/>
69 <properties id10=""/>
70 <properties id10=""/>
71 <properties id10=""/>
72 <properties id10=""/>
73 <properties id10=""/>
74 <properties id10=""/>
75 <properties id10=""/>
76 <properties id10=""/>
77 <properties id10=""/>
78 <properties id10=""/>
79 <properties id10=""/>
80 <properties id10=""/>
81 <properties id10=""/>
82 <properties id10=""/>
83 <properties id10=""/>
84 <properties id10=""/>
85 <properties id10=""/>
86 <properties id10=""/>
87 <properties id10=""/>
88 <properties id10=""/>
89 <properties id10=""/>
90 <properties id10=""/>
91 <properties id10=""/>
92 <properties id10=""/>
93 <properties id10=""/>
94 <properties id10=""/>
95 <properties id10=""/>
96 <properties id10=""/>
97 <properties id10=""/>
98 <properties id10=""/>
99 <properties id10=""/>
100 <properties id10=""/>
101 <properties id10=""/>
102 <properties id10=""/>
103 </parents>
104 </contains>
105</TaxCardWithRoot:Resource>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/7_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/7_1.xmi
new file mode 100644
index 00000000..9f9b1389
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/7_1.xmi
@@ -0,0 +1,112 @@
1<?xml version="1.0" encoding="ASCII"?>
2<TaxCardWithRoot:Resource xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:TaxCardWithRoot="http:///TaxCardWithRoot.ecore" xsi:schemaLocation="http:///TaxCardWithRoot.ecore ../case.study.pledge.model/model/TaxationWithRoot.ecore">
3 <contains id1="">
4 <parents xsi:type="TaxCardWithRoot:Partnership_Record" separation_cause="SEPARATION_DE_FAIT" id9="">
5 <individual_A SSNo="" disability_type="C" expenses=" "/>
6 <individual_B SSNo="" disability_type="NONE" expenses=" "/>
7 <individual_B xsi:type="TaxCardWithRoot:Non_Resident_Tax_Payer" SSNo="" disability_type="E" expenses="">
8 <from_agent expense=""/>
9 <incomes xsi:type="TaxCardWithRoot:Foreign_Income">
10 <income_type xsi:type="TaxCardWithRoot:Pensions_and_Annuities_Income" id8=""/>
11 <details id5=""/>
12 <details id5=""/>
13 <details id5=""/>
14 <details id5=""/>
15 <details id5=""/>
16 <details id5=""/>
17 <details id5=""/>
18 <details id5=""/>
19 <details id5=""/>
20 <details id5=""/>
21 <details id5=""/>
22 <details id5=""/>
23 <expenses xsi:type="TaxCardWithRoot:Miscellaneous_Expense_FO" expense_purpose="HOUSE_CARE" id4="" beneficiary=""/>
24 <expenses xsi:type="TaxCardWithRoot:Donation" expense_purpose="DEPENDENCE_CARE" dependent="" id4="" beneficiary="" beneficiary1=""/>
25 <expenses xsi:type="TaxCardWithRoot:Special_Expense_DS" expense_purpose="CHILD_CARE" dependent="" id4="" beneficiary=""/>
26 <expenses expense_purpose="HOUSE_CARE" id4="" beneficiary=""/>
27 <expenses xsi:type="TaxCardWithRoot:Travel_Expense_FD" expense_purpose="HOUSE_CARE" dependent="" id4="" beneficiary=""/>
28 <expenses xsi:type="TaxCardWithRoot:Loss_Carryforward" expense_purpose="RECURRENT_DEPT" dependent="" id4="" beneficiary=""/>
29 <expenses xsi:type="TaxCardWithRoot:Miscellaneous_Expense_FO" expense_purpose="DEPENDENCE_CARE" dependent="" id4="" beneficiary=""/>
30 <expenses xsi:type="TaxCardWithRoot:Travel_Expense_FD" expense_purpose="HOUSE_CARE" id4="" beneficiary=""/>
31 <expenses xsi:type="TaxCardWithRoot:Loss_Carryforward" expense_purpose="DEPENDENCE_CARE" id4="" beneficiary=""/>
32 <expenses xsi:type="TaxCardWithRoot:Special_Expense_DS" id4="" beneficiary=""/>
33 <expenses xsi:type="TaxCardWithRoot:Interest_Expense" expense_purpose="CHILD_CARE" id4="" beneficiary=""/>
34 </incomes>
35 <incomes xsi:type="TaxCardWithRoot:Foreign_Income">
36 <income_type xsi:type="TaxCardWithRoot:Employment_Income" id8=""/>
37 <details id5=""/>
38 <details id5=""/>
39 <details id5=""/>
40 <details id5=""/>
41 <details id5=""/>
42 <details id5=""/>
43 <details id5=""/>
44 <details id5=""/>
45 <details id5=""/>
46 <details id5=""/>
47 <details id5=""/>
48 <details id5=""/>
49 <expenses xsi:type="TaxCardWithRoot:Spousal_Expense_AC" expense_purpose="CHILD_CARE" id4="" beneficiary=""/>
50 <expenses xsi:type="TaxCardWithRoot:Donation" expense_purpose="RECURRENT_DEPT" id4="" beneficiary1=""/>
51 <expenses xsi:type="TaxCardWithRoot:Loss_Carryforward" expense_purpose="CHILD_CARE" id4="" beneficiary=""/>
52 <expenses expense_purpose="DEPENDENCE_CARE" dependent="" id4="" beneficiary=""/>
53 <expenses xsi:type="TaxCardWithRoot:Professional_Expense" expense_purpose="HOUSE_CARE" dependent="" id4="" beneficiary=""/>
54 <expenses xsi:type="TaxCardWithRoot:Interest_Expense" expense_purpose="RECURRENT_DEPT" dependent="" id4="" beneficiary=""/>
55 <expenses xsi:type="TaxCardWithRoot:Professional_Expense" expense_purpose="HOUSE_CARE" dependent="" id4="" beneficiary=""/>
56 <expenses xsi:type="TaxCardWithRoot:Professional_Expense" expense_purpose="ALIMONY" dependent="" id4="" beneficiary=""/>
57 <expenses xsi:type="TaxCardWithRoot:Miscellaneous_Expense_FO" expense_purpose="CHILD_CARE" from_agent="//@contains.0/@parents/@individual_B.1/@from_agent" id4="" beneficiary=""/>
58 <expenses xsi:type="TaxCardWithRoot:Loss_Carryforward" expense_purpose="CHILD_CARE" id4="" beneficiary=""/>
59 <expenses xsi:type="TaxCardWithRoot:Loss_Carryforward" expense_purpose="ALIMONY" id4="" beneficiary=""/>
60 <expenses xsi:type="TaxCardWithRoot:Donation" expense_purpose="DEPENDENCE_CARE" id4="" beneficiary="" beneficiary1=""/>
61 </incomes>
62 <incomes xsi:type="TaxCardWithRoot:Foreign_Income">
63 <income_type xsi:type="TaxCardWithRoot:Employment_Income" id8=""/>
64 <details id5=""/>
65 <details id5=""/>
66 <details id5=""/>
67 <details id5=""/>
68 <details id5=""/>
69 <details id5=""/>
70 <details id5=""/>
71 <details id5=""/>
72 <details id5=""/>
73 <details id5=""/>
74 <details id5=""/>
75 <details id5=""/>
76 <expenses xsi:type="TaxCardWithRoot:Professional_Expense" id4="" beneficiary=""/>
77 </incomes>
78 <incomes xsi:type="TaxCardWithRoot:Foreign_Income">
79 <income_type xsi:type="TaxCardWithRoot:Rentals_and_Leases_Income" id8="" is_periodic="false"/>
80 <details id5=""/>
81 <details id5=""/>
82 <details id5=""/>
83 <details id5=""/>
84 <details id5=""/>
85 <details id5=""/>
86 <details id5=""/>
87 <details id5=""/>
88 <details id5=""/>
89 <details id5=""/>
90 <details id5=""/>
91 <details id5=""/>
92 <expenses xsi:type="TaxCardWithRoot:Special_Expense_DS" id4="" beneficiary=""/>
93 </incomes>
94 <from_law id=""/>
95 </individual_B>
96 <individual_B SSNo="" expenses=""/>
97 <individual_B SSNo="" disability_type="D" expenses=" "/>
98 <individual_B SSNo="" disability_type="OTHER" expenses=" "/>
99 <individual_B SSNo="" disability_type="C" expenses=" "/>
100 <individual_B SSNo="" expenses=" "/>
101 <individual_B SSNo="" disability_type="B"/>
102 <individual_B SSNo="" disability_type="B" expenses=" "/>
103 <individual_B SSNo="" disability_type="A" expenses=" "/>
104 <properties id10=""/>
105 <properties id10=""/>
106 <properties id10=""/>
107 <properties id10=""/>
108 <properties id10=""/>
109 </parents>
110 <children SSNo="" disability_type="B" expenses="" dependent_type="NOT_OWN_CHILD" expense=" "/>
111 </contains>
112</TaxCardWithRoot:Resource>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/8_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/8_1.xmi
new file mode 100644
index 00000000..449a1402
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/8_1.xmi
@@ -0,0 +1,105 @@
1<?xml version="1.0" encoding="ASCII"?>
2<TaxCardWithRoot:Resource xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:TaxCardWithRoot="http:///TaxCardWithRoot.ecore" xsi:schemaLocation="http:///TaxCardWithRoot.ecore ../case.study.pledge.model/model/TaxationWithRoot.ecore">
3 <contains id1="">
4 <parents xsi:type="TaxCardWithRoot:Marriage_Record" id9="">
5 <individual_A SSNo="" disability_type="D"/>
6 <individual_B SSNo="" disability_type="E"/>
7 <individual_B SSNo="" disability_type="E"/>
8 <individual_B SSNo="" disability_type="A"/>
9 <individual_B SSNo="" disability_type="B"/>
10 <individual_B SSNo="" disability_type="A"/>
11 <individual_B SSNo="" disability_type="A"/>
12 <individual_B SSNo=""/>
13 <individual_B SSNo="" disability_type="A"/>
14 <individual_B SSNo="" disability_type="A"/>
15 <individual_B SSNo="" disability_type="OTHER"/>
16 <individual_B SSNo="" disability_type="OTHER"/>
17 <individual_B SSNo="" disability_type="NONE"/>
18 <individual_B SSNo="" disability_type="OTHER"/>
19 <individual_B SSNo=""/>
20 <individual_B SSNo="" disability_type="OTHER"/>
21 <individual_B SSNo="" disability_type="NONE"/>
22 <individual_B SSNo="" disability_type="B"/>
23 <individual_B SSNo="" disability_type="E"/>
24 <individual_B SSNo="" disability_type="D"/>
25 <individual_B SSNo="" disability_type="E"/>
26 <individual_B SSNo="" disability_type="E"/>
27 <individual_B SSNo="" disability_type="C"/>
28 <individual_B SSNo="" disability_type="OTHER"/>
29 <individual_B SSNo="" disability_type="B"/>
30 <individual_B SSNo=""/>
31 <individual_B SSNo="" disability_type="NONE"/>
32 <individual_B SSNo=""/>
33 <individual_B SSNo="" disability_type="A"/>
34 <individual_B SSNo="" disability_type="E"/>
35 <individual_B SSNo="" disability_type="D"/>
36 <individual_B SSNo="" disability_type="E"/>
37 <individual_B SSNo="" disability_type="A"/>
38 <individual_B SSNo="" disability_type="A"/>
39 <individual_B SSNo="" disability_type="C"/>
40 <individual_B SSNo="" disability_type="OTHER"/>
41 <individual_B SSNo=""/>
42 <individual_B SSNo="" disability_type="D"/>
43 <individual_B SSNo="" disability_type="E"/>
44 <individual_B SSNo="" disability_type="OTHER"/>
45 <individual_B SSNo="" disability_type="C"/>
46 <individual_B SSNo="" disability_type="OTHER"/>
47 <individual_B SSNo="" disability_type="D"/>
48 <individual_B SSNo="" disability_type="OTHER"/>
49 <individual_B SSNo="" disability_type="OTHER"/>
50 <properties id10=""/>
51 <properties id10=""/>
52 <properties id10=""/>
53 <properties id10=""/>
54 <properties id10=""/>
55 <properties id10=""/>
56 <properties id10=""/>
57 <properties id10=""/>
58 <properties id10=""/>
59 <properties id10=""/>
60 <properties id10=""/>
61 <properties id10=""/>
62 <properties id10=""/>
63 <properties id10=""/>
64 <properties id10=""/>
65 <properties id10=""/>
66 <properties id10=""/>
67 <properties id10=""/>
68 <properties id10=""/>
69 <properties id10=""/>
70 <properties id10=""/>
71 <properties id10=""/>
72 <properties id10=""/>
73 <properties id10=""/>
74 <properties id10=""/>
75 <properties id10=""/>
76 <properties id10=""/>
77 <properties id10=""/>
78 <properties id10=""/>
79 <properties id10=""/>
80 <properties id10=""/>
81 <properties id10=""/>
82 <properties id10=""/>
83 <properties id10=""/>
84 <properties id10=""/>
85 <properties id10=""/>
86 <properties id10=""/>
87 <properties id10=""/>
88 <properties id10=""/>
89 <properties id10=""/>
90 <properties id10=""/>
91 <properties id10=""/>
92 <properties id10=""/>
93 <properties id10=""/>
94 <properties id10=""/>
95 <properties id10=""/>
96 <properties id10=""/>
97 <properties id10=""/>
98 <properties id10=""/>
99 <properties id10=""/>
100 <properties id10=""/>
101 <properties id10=""/>
102 <properties id10=""/>
103 </parents>
104 </contains>
105</TaxCardWithRoot:Resource>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/9_1.xmi b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/9_1.xmi
new file mode 100644
index 00000000..aabb97a2
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/TaxationNoNum/9_1.xmi
@@ -0,0 +1,105 @@
1<?xml version="1.0" encoding="ASCII"?>
2<TaxCardWithRoot:Resource xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:TaxCardWithRoot="http:///TaxCardWithRoot.ecore" xsi:schemaLocation="http:///TaxCardWithRoot.ecore ../case.study.pledge.model/model/TaxationWithRoot.ecore">
3 <contains id1="">
4 <parents xsi:type="TaxCardWithRoot:Partnership_Record" id9="">
5 <individual_A SSNo="" disability_type="A"/>
6 <individual_B SSNo="" disability_type="B"/>
7 <individual_B SSNo=""/>
8 <individual_B SSNo="" disability_type="E"/>
9 <individual_B SSNo="" disability_type="NONE"/>
10 <individual_B SSNo="" disability_type="A"/>
11 <individual_B SSNo="" disability_type="C"/>
12 <individual_B SSNo="" disability_type="B"/>
13 <individual_B SSNo="" disability_type="B"/>
14 <individual_B SSNo="" disability_type="NONE"/>
15 <individual_B SSNo="" disability_type="OTHER"/>
16 <individual_B SSNo="" disability_type="OTHER"/>
17 <individual_B SSNo=""/>
18 <individual_B SSNo="" disability_type="NONE"/>
19 <individual_B SSNo="" disability_type="NONE"/>
20 <individual_B SSNo="" disability_type="A"/>
21 <individual_B SSNo="" disability_type="NONE"/>
22 <individual_B SSNo="" disability_type="NONE"/>
23 <individual_B SSNo="" disability_type="OTHER"/>
24 <individual_B SSNo="" disability_type="D"/>
25 <individual_B SSNo="" disability_type="B"/>
26 <individual_B SSNo="" disability_type="D"/>
27 <individual_B SSNo="" disability_type="NONE"/>
28 <individual_B SSNo="" disability_type="C"/>
29 <individual_B SSNo="" disability_type="B"/>
30 <individual_B SSNo="" disability_type="OTHER"/>
31 <individual_B SSNo="" disability_type="C"/>
32 <individual_B SSNo="" disability_type="OTHER"/>
33 <individual_B SSNo="" disability_type="NONE"/>
34 <individual_B SSNo=""/>
35 <individual_B SSNo="" disability_type="D"/>
36 <individual_B SSNo="" disability_type="NONE"/>
37 <individual_B SSNo="" disability_type="B"/>
38 <individual_B SSNo="" disability_type="C"/>
39 <individual_B SSNo=""/>
40 <individual_B SSNo="" disability_type="OTHER"/>
41 <individual_B SSNo=""/>
42 <individual_B SSNo="" disability_type="NONE"/>
43 <individual_B SSNo="" disability_type="E"/>
44 <individual_B SSNo="" disability_type="NONE"/>
45 <individual_B SSNo="" disability_type="A"/>
46 <individual_B SSNo="" disability_type="E"/>
47 <individual_B SSNo="" disability_type="A"/>
48 <individual_B SSNo="" disability_type="A"/>
49 <individual_B SSNo="" disability_type="C"/>
50 <individual_B SSNo="" disability_type="OTHER"/>
51 <individual_B SSNo="" disability_type="E"/>
52 <individual_B SSNo="" disability_type="OTHER"/>
53 <individual_B SSNo="" disability_type="OTHER"/>
54 <individual_B SSNo="" disability_type="B"/>
55 <individual_B SSNo="" disability_type="A"/>
56 <individual_B SSNo=""/>
57 <individual_B SSNo="" disability_type="A"/>
58 <individual_B SSNo="" disability_type="E"/>
59 <individual_B SSNo="" disability_type="B"/>
60 <individual_B SSNo="" disability_type="D"/>
61 <properties id10=""/>
62 <properties id10=""/>
63 <properties id10=""/>
64 <properties id10=""/>
65 <properties id10=""/>
66 <properties id10=""/>
67 <properties id10=""/>
68 <properties id10=""/>
69 <properties id10=""/>
70 <properties id10=""/>
71 <properties id10=""/>
72 <properties id10=""/>
73 <properties id10=""/>
74 <properties id10=""/>
75 <properties id10=""/>
76 <properties id10=""/>
77 <properties id10=""/>
78 <properties id10=""/>
79 <properties id10=""/>
80 <properties id10=""/>
81 <properties id10=""/>
82 <properties id10=""/>
83 <properties id10=""/>
84 <properties id10=""/>
85 <properties id10=""/>
86 <properties id10=""/>
87 <properties id10=""/>
88 <properties id10=""/>
89 <properties id10=""/>
90 <properties id10=""/>
91 <properties id10=""/>
92 <properties id10=""/>
93 <properties id10=""/>
94 <properties id10=""/>
95 <properties id10=""/>
96 <properties id10=""/>
97 <properties id10=""/>
98 <properties id10=""/>
99 <properties id10=""/>
100 <properties id10=""/>
101 <properties id10=""/>
102 <properties id10=""/>
103 </parents>
104 </contains>
105</TaxCardWithRoot:Resource>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/diversity.csv b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/diversity.csv
new file mode 100644
index 00000000..a44968ad
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/inputs/diversity.csv
@@ -0,0 +1,60 @@
1FamilyTree,inputs/FamilyTree/1_1.xmi,0.992
2FamilyTree,inputs/FamilyTree/2_1.xmi,0.959349593495935
3FamilyTree,inputs/FamilyTree/3_1.xmi,0.9508196721311475
4FamilyTree,inputs/FamilyTree/4_1.xmi,0.952
5FamilyTree,inputs/FamilyTree/5_1.xmi,0.967479674796748
6FamilyTree,inputs/FamilyTree/6_1.xmi,0.9426229508196722
7FamilyTree,inputs/FamilyTree/7_1.xmi,0.9586776859504132
8FamilyTree,inputs/FamilyTree/8_1.xmi,0.959349593495935
9FamilyTree,inputs/FamilyTree/9_1.xmi,0.991869918699187
10FamilyTree,inputs/FamilyTree/10_1.xmi,0.992
11Satellite,inputs/Satellite/1_1.xmi,0.7818181818181819
12Satellite,inputs/Satellite/2_1.xmi,0.8348623853211009
13Satellite,inputs/Satellite/3_1.xmi,0.7727272727272727
14Satellite,inputs/Satellite/4_1.xmi,0.7636363636363637
15Satellite,inputs/Satellite/5_1.xmi,0.8165137614678899
16Satellite,inputs/Satellite/6_1.xmi,0.7064220183486238
17Satellite,inputs/Satellite/7_1.xmi,0.8165137614678899
18Satellite,inputs/Satellite/8_1.xmi,0.7247706422018348
19Satellite,inputs/Satellite/9_1.xmi,0.7927927927927928
20Satellite,inputs/Satellite/10_1.xmi,0.7168141592920354
21Taxation,inputs/Taxation/1_1.xmi,0.6795580110497238
22Taxation,inputs/Taxation/2_1.xmi,0.6978021978021978
23Taxation,inputs/Taxation/3_1.xmi,0.6795580110497238
24Taxation,inputs/Taxation/4_1.xmi,0.6574585635359116
25Taxation,inputs/Taxation/5_1.xmi,0.6629834254143646
26Taxation,inputs/Taxation/6_1.xmi,0.7431693989071039
27Taxation,inputs/Taxation/7_1.xmi,0.6978021978021978
28Taxation,inputs/Taxation/8_1.xmi,0.6574585635359116
29Taxation,inputs/Taxation/9_1.xmi,0.6795580110497238
30Taxation,inputs/Taxation/10_1.xmi,0.6906077348066298
31FamilyTreeNoNum,inputs/FamilyTreeNoNum/1_1.xmi,0.7788461538461539
32FamilyTreeNoNum,inputs/FamilyTreeNoNum/2_1.xmi,0.7980769230769231
33FamilyTreeNoNum,inputs/FamilyTreeNoNum/3_1.xmi,0.8076923076923077
34FamilyTreeNoNum,inputs/FamilyTreeNoNum/4_1.xmi,0.7980769230769231
35FamilyTreeNoNum,inputs/FamilyTreeNoNum/5_1.xmi,0.8173076923076923
36FamilyTreeNoNum,inputs/FamilyTreeNoNum/6_1.xmi,0.8173076923076923
37FamilyTreeNoNum,inputs/FamilyTreeNoNum/7_1.xmi,0.8173076923076923
38FamilyTreeNoNum,inputs/FamilyTreeNoNum/8_1.xmi,0.7788461538461539
39FamilyTreeNoNum,inputs/FamilyTreeNoNum/9_1.xmi,0.7884615384615384
40FamilyTreeNoNum,inputs/FamilyTreeNoNum/10_1.xmi,0.8076923076923077
41SatelliteNoNum,inputs/SatelliteNoNum/1_1.xmi,0.7614678899082569
42SatelliteNoNum,inputs/SatelliteNoNum/2_1.xmi,0.8380952380952381
43SatelliteNoNum,inputs/SatelliteNoNum/3_1.xmi,0.8055555555555556
44SatelliteNoNum,inputs/SatelliteNoNum/4_1.xmi,0.7818181818181819
45SatelliteNoNum,inputs/SatelliteNoNum/5_1.xmi,0.6929824561403509
46SatelliteNoNum,inputs/SatelliteNoNum/6_1.xmi,0.7870370370370371
47SatelliteNoNum,inputs/SatelliteNoNum/7_1.xmi,0.7523809523809524
48SatelliteNoNum,inputs/SatelliteNoNum/8_1.xmi,0.7777777777777778
49SatelliteNoNum,inputs/SatelliteNoNum/9_1.xmi,0.7363636363636363
50SatelliteNoNum,inputs/SatelliteNoNum/10_1.xmi,0.8055555555555556
51TaxationNoNum,inputs/TaxationNoNum/1_1.xmi,0.4883720930232558
52TaxationNoNum,inputs/TaxationNoNum/2_1.xmi,0.4883720930232558
53TaxationNoNum,inputs/TaxationNoNum/3_1.xmi,0.6994219653179191
54TaxationNoNum,inputs/TaxationNoNum/4_1.xmi,0.4883720930232558
55TaxationNoNum,inputs/TaxationNoNum/5_1.xmi,0.4883720930232558
56TaxationNoNum,inputs/TaxationNoNum/6_1.xmi,0.4883720930232558
57TaxationNoNum,inputs/TaxationNoNum/7_1.xmi,0.6954022988505747
58TaxationNoNum,inputs/TaxationNoNum/8_1.xmi,0.4883720930232558
59TaxationNoNum,inputs/TaxationNoNum/9_1.xmi,0.4883720930232558
60TaxationNoNum,inputs/TaxationNoNum/10_1.xmi,0.4883720930232558
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/model/TaxationWithRoot.ecore b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/model/TaxationWithRoot.ecore
new file mode 100644
index 00000000..4c418a20
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/model/TaxationWithRoot.ecore
@@ -0,0 +1,551 @@
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="TaxationWithRoot" nsURI="http:///TaxCardWithRoot.ecore" nsPrefix="TaxCardWithRoot">
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_Office">
100 <eLiterals name="RTS_2" literal="RTS_2"/>
101 <eLiterals name="RTS_3" value="1" literal="RTS_3"/>
102 <eLiterals name="RTS_4" value="2" literal="RTS_4"/>
103 <eLiterals name="RTS_5" value="3" literal="RTS_5"/>
104 </eClassifiers>
105 <eClassifiers xsi:type="ecore:EEnum" name="Tax_Class_Category">
106 <eLiterals name="One" literal="One"/>
107 <eLiterals name="One_A" value="1" literal="One_A"/>
108 <eLiterals name="Two" value="2" literal="Two"/>
109 </eClassifiers>
110 <eClassifiers xsi:type="ecore:EEnum" name="Job_Activity">
111 <eLiterals name="Salary" literal="Salary"/>
112 <eLiterals name="Pension" value="1" literal="Pension"/>
113 <eLiterals name="Annuity" value="2" literal="Annuity"/>
114 </eClassifiers>
115 <eClassifiers xsi:type="ecore:EEnum" name="Town">
116 <eLiterals name="LL" literal="LL"/>
117 <eLiterals name="BB" value="1" literal="BB"/>
118 <eLiterals name="SS" value="2" literal="SS"/>
119 <eLiterals name="TT" value="3" literal="TT"/>
120 <eLiterals name="Other" value="4" literal="Other"/>
121 </eClassifiers>
122 <eClassifiers xsi:type="ecore:EEnum" name="CE_Type">
123 <eLiterals name="INALIDITY_AND_INFIRMITY" literal="INALIDITY_AND_INFIRMITY"/>
124 <eLiterals name="DEPENDENCE_AND_CARE_EXCLUDING_CHLIDREN_NOT_PART_OF_HOUSEHOLD"
125 value="1" literal="DEPENDENCE_AND_CARE_EXCLUDING_CHLIDREN_NOT_PART_OF_HOUSEHOLD"/>
126 <eLiterals name="CARE_FOR_CHILDREN_NOT_BEING_PART_OF_HOUSEHOLD" value="2" literal="CARE_FOR_CHILDREN_NOT_BEING_PART_OF_HOUSEHOLD"/>
127 </eClassifiers>
128 <eClassifiers xsi:type="ecore:EEnum" name="Expense_Purpose">
129 <eLiterals name="HOUSE_CARE" literal="HOUSE_CARE"/>
130 <eLiterals name="CHILD_CARE" value="1" literal="CHILD_CARE"/>
131 <eLiterals name="DEPENDENCE_CARE" value="2" literal="DEPENDENCE_CARE"/>
132 <eLiterals name="OTHER" value="3" literal="OTHER"/>
133 <eLiterals name="ALIMONY" value="4"/>
134 <eLiterals name="RECURRENT_DEPT" value="5"/>
135 </eClassifiers>
136 <eClassifiers xsi:type="ecore:EEnum" name="Dependent_Type">
137 <eLiterals name="CHILD" literal="CHILD"/>
138 <eLiterals name="SPOUSE" value="1" literal="SPOUSE"/>
139 <eLiterals name="RELATIVE" value="2" literal="RELATIVE"/>
140 <eLiterals name="OTHER_FAMILY_MEMBER" value="3" literal="OTHER_FAMILY_MEMBER"/>
141 <eLiterals name="NOT_OWN_CHILD" value="4"/>
142 </eClassifiers>
143 <eClassifiers xsi:type="ecore:EClass" name="Income_Tax">
144 <eStructuralFeatures xsi:type="ecore:EReference" name="taxPayer" lowerBound="1"
145 eType="#//Tax_Payer"/>
146 <eStructuralFeatures xsi:type="ecore:EAttribute" name="tax_amount" lowerBound="1"
147 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
148 <eStructuralFeatures xsi:type="ecore:EAttribute" name="tax_year" lowerBound="1"
149 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
150 <eStructuralFeatures xsi:type="ecore:EAttribute" name="id6" ordered="false" lowerBound="1"
151 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
152 </eClassifiers>
153 <eClassifiers xsi:type="ecore:EClass" name="Tax_Payer" abstract="true" eSuperTypes="#//Physical_Person #//Tax_Case">
154 <eAnnotations source="duplicates">
155 <contents xsi:type="ecore:EReference" name="expenses" ordered="false" upperBound="-1"
156 eType="#//Expense" containment="true">
157 <eAnnotations source="redefines" references="#//Physical_Person/expenses"/>
158 </contents>
159 </eAnnotations>
160 <eStructuralFeatures xsi:type="ecore:EReference" name="dependents" ordered="false"
161 upperBound="6" eType="#//Dependent" containment="true" eOpposite="#//Dependent/responsible_person"/>
162 <eStructuralFeatures xsi:type="ecore:EReference" name="from_agent" lowerBound="1"
163 eType="#//FromAgent" containment="true" eOpposite="#//FromAgent/taxPayer"/>
164 <eStructuralFeatures xsi:type="ecore:EReference" name="incomes" ordered="false"
165 lowerBound="1" upperBound="-1" eType="#//Income" containment="true" eOpposite="#//Income/taxPayer"/>
166 <eStructuralFeatures xsi:type="ecore:EReference" name="from_law" lowerBound="1"
167 eType="#//FromLaw" containment="true" eOpposite="#//FromLaw/taxPayer"/>
168 </eClassifiers>
169 <eClassifiers xsi:type="ecore:EClass" name="Physical_Person">
170 <eStructuralFeatures xsi:type="ecore:EAttribute" name="SSNo" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
171 iD="true"/>
172 <eStructuralFeatures xsi:type="ecore:EReference" name="addresses" ordered="false"
173 upperBound="-1" eType="#//Address" eOpposite="#//Address/taxPayer"/>
174 <eStructuralFeatures xsi:type="ecore:EAttribute" name="birth_year" ordered="false"
175 unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
176 <eStructuralFeatures xsi:type="ecore:EAttribute" name="disability_percentage"
177 ordered="false" unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
178 <eStructuralFeatures xsi:type="ecore:EAttribute" name="disability_type" ordered="false"
179 unique="false" lowerBound="1" eType="#//Disability_Types"/>
180 <eStructuralFeatures xsi:type="ecore:EAttribute" name="birth_month" ordered="false"
181 unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
182 <eStructuralFeatures xsi:type="ecore:EAttribute" name="birth_day" ordered="false"
183 unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
184 <eStructuralFeatures xsi:type="ecore:EReference" name="expenses" ordered="false"
185 upperBound="-1" eType="#//Expense" eOpposite="#//Expense/beneficiary"/>
186 <eStructuralFeatures xsi:type="ecore:EAttribute" name="is_widower" ordered="false"
187 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
188 </eClassifiers>
189 <eClassifiers xsi:type="ecore:EClass" name="Address">
190 <eStructuralFeatures xsi:type="ecore:EAttribute" name="country" lowerBound="1"
191 eType="#//Country" defaultValueLiteral="ZZ"/>
192 <eStructuralFeatures xsi:type="ecore:EAttribute" name="street" lowerBound="1"
193 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
194 <eStructuralFeatures xsi:type="ecore:EAttribute" name="zipCode" lowerBound="1"
195 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
196 <eStructuralFeatures xsi:type="ecore:EAttribute" name="city" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
197 <eStructuralFeatures xsi:type="ecore:EAttribute" name="id2" ordered="false" lowerBound="1"
198 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
199 <eStructuralFeatures xsi:type="ecore:EReference" name="taxPayer" ordered="false"
200 upperBound="-1" eType="#//Physical_Person" eOpposite="#//Physical_Person/addresses"/>
201 </eClassifiers>
202 <eClassifiers xsi:type="ecore:EClass" name="Expense">
203 <eStructuralFeatures xsi:type="ecore:EAttribute" name="declared_amount" lowerBound="1"
204 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
205 <eStructuralFeatures xsi:type="ecore:EAttribute" name="expense_purpose" lowerBound="1"
206 eType="#//Expense_Purpose" defaultValueLiteral="OTHER"/>
207 <eStructuralFeatures xsi:type="ecore:EReference" name="dependent" eType="#//Dependent"
208 eOpposite="#//Dependent/expense"/>
209 <eStructuralFeatures xsi:type="ecore:EReference" name="from_agent" ordered="false"
210 eType="#//FromAgent" eOpposite="#//FromAgent/expense"/>
211 <eStructuralFeatures xsi:type="ecore:EReference" name="income" lowerBound="1"
212 eType="#//Income" eOpposite="#//Income/expenses"/>
213 <eStructuralFeatures xsi:type="ecore:EAttribute" name="id4" ordered="false" lowerBound="1"
214 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
215 <eStructuralFeatures xsi:type="ecore:EReference" name="beneficiary" ordered="false"
216 eType="#//Physical_Person" eOpposite="#//Physical_Person/expenses"/>
217 </eClassifiers>
218 <eClassifiers xsi:type="ecore:EClass" name="Dependent" eSuperTypes="#//Physical_Person">
219 <eStructuralFeatures xsi:type="ecore:EAttribute" name="dependent_type" lowerBound="1"
220 eType="#//Dependent_Type"/>
221 <eStructuralFeatures xsi:type="ecore:EReference" name="responsible_person" eType="#//Tax_Payer"
222 eOpposite="#//Tax_Payer/dependents"/>
223 <eStructuralFeatures xsi:type="ecore:EAttribute" name="continued_studies" lowerBound="1"
224 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
225 <eStructuralFeatures xsi:type="ecore:EReference" name="allowances" ordered="false"
226 eType="#//External_Allowance" containment="true" eOpposite="#//External_Allowance/person"/>
227 <eStructuralFeatures xsi:type="ecore:EReference" name="household" ordered="false"
228 eType="#//Household" eOpposite="#//Household/children"/>
229 <eStructuralFeatures xsi:type="ecore:EReference" name="from_agent" ordered="false"
230 eType="#//FromAgent" eOpposite="#//FromAgent/dependent"/>
231 <eStructuralFeatures xsi:type="ecore:EReference" name="expense" ordered="false"
232 upperBound="-1" eType="#//Expense" eOpposite="#//Expense/dependent"/>
233 </eClassifiers>
234 <eClassifiers xsi:type="ecore:EClass" name="External_Allowance">
235 <eStructuralFeatures xsi:type="ecore:EAttribute" name="grantor" lowerBound="1"
236 eType="#//Grantor"/>
237 <eStructuralFeatures xsi:type="ecore:EAttribute" name="starting_year" ordered="false"
238 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
239 <eStructuralFeatures xsi:type="ecore:EAttribute" name="ending_year" ordered="false"
240 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
241 <eStructuralFeatures xsi:type="ecore:EReference" name="reciver" ordered="false"
242 lowerBound="1" eType="#//Physical_Person"/>
243 <eStructuralFeatures xsi:type="ecore:EAttribute" name="id5" ordered="false" lowerBound="1"
244 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
245 <eStructuralFeatures xsi:type="ecore:EReference" name="person" ordered="false"
246 lowerBound="1" eType="#//Dependent" eOpposite="#//Dependent/allowances"/>
247 </eClassifiers>
248 <eClassifiers xsi:type="ecore:EClass" name="Household" eSuperTypes="#//Tax_Case">
249 <eStructuralFeatures xsi:type="ecore:EReference" name="parents" ordered="false"
250 lowerBound="1" eType="#//Legal_Union_Record" containment="true" eOpposite="#//Legal_Union_Record/household"/>
251 <eStructuralFeatures xsi:type="ecore:EAttribute" name="id1" ordered="false" lowerBound="1"
252 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
253 <eStructuralFeatures xsi:type="ecore:EReference" name="children" ordered="false"
254 upperBound="-1" eType="#//Dependent" containment="true" eOpposite="#//Dependent/household"/>
255 </eClassifiers>
256 <eClassifiers xsi:type="ecore:EClass" name="Legal_Union_Record" abstract="true">
257 <eStructuralFeatures xsi:type="ecore:EAttribute" name="start_year" lowerBound="1"
258 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
259 <eStructuralFeatures xsi:type="ecore:EAttribute" name="end_year" lowerBound="1"
260 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
261 <eStructuralFeatures xsi:type="ecore:EAttribute" name="separation_cause" ordered="false"
262 lowerBound="1" eType="#//Separation_Causes"/>
263 <eStructuralFeatures xsi:type="ecore:EReference" name="individual_A" ordered="false"
264 lowerBound="1" eType="#//Physical_Person" containment="true">
265 <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
266 <details key="body" value="legal_union_A"/>
267 </eAnnotations>
268 </eStructuralFeatures>
269 <eStructuralFeatures xsi:type="ecore:EReference" name="individual_B" ordered="false"
270 lowerBound="1" upperBound="-1" eType="#//Physical_Person" containment="true">
271 <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
272 <details key="body" value="legal_union_B"/>
273 </eAnnotations>
274 </eStructuralFeatures>
275 <eStructuralFeatures xsi:type="ecore:EReference" name="properties" ordered="false"
276 lowerBound="1" upperBound="-1" eType="#//Tax_Property" containment="true"
277 eOpposite="#//Tax_Property/union_record"/>
278 <eStructuralFeatures xsi:type="ecore:EAttribute" name="mutual_agreement" ordered="false"
279 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
280 <eStructuralFeatures xsi:type="ecore:EAttribute" name="id9" ordered="false" lowerBound="1"
281 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
282 <eStructuralFeatures xsi:type="ecore:EReference" name="household" ordered="false"
283 lowerBound="1" eType="#//Household" eOpposite="#//Household/parents"/>
284 </eClassifiers>
285 <eClassifiers xsi:type="ecore:EEnum" name="Separation_Causes">
286 <eLiterals name="NONE"/>
287 <eLiterals name="DIVORCE" value="1"/>
288 <eLiterals name="SEPARATION_DE_FAIT" value="2"/>
289 <eLiterals name="SEPARATION_BY_COURT" value="3"/>
290 </eClassifiers>
291 <eClassifiers xsi:type="ecore:EClass" name="Tax_Property">
292 <eStructuralFeatures xsi:type="ecore:EAttribute" name="starting_year" ordered="false"
293 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
294 <eStructuralFeatures xsi:type="ecore:EAttribute" name="id10" ordered="false" lowerBound="1"
295 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
296 <eStructuralFeatures xsi:type="ecore:EReference" name="union_record" ordered="false"
297 lowerBound="1" eType="#//Legal_Union_Record" eOpposite="#//Legal_Union_Record/properties"/>
298 </eClassifiers>
299 <eClassifiers xsi:type="ecore:EClass" name="Tax_Case" abstract="true" interface="true"/>
300 <eClassifiers xsi:type="ecore:EClass" name="FromAgent">
301 <eStructuralFeatures xsi:type="ecore:EReference" name="taxPayer" lowerBound="1"
302 eType="#//Tax_Payer" eOpposite="#//Tax_Payer/from_agent"/>
303 <eStructuralFeatures xsi:type="ecore:EAttribute" name="is_dependent_eligible_for_CE_Not_In_Houshold_Children_Care"
304 ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
305 <eStructuralFeatures xsi:type="ecore:EReference" name="expense" ordered="false"
306 eType="#//Expense" eOpposite="#//Expense/from_agent"/>
307 <eStructuralFeatures xsi:type="ecore:EAttribute" name="is_eligible_debt" ordered="false"
308 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
309 <eStructuralFeatures xsi:type="ecore:EReference" name="dependent" ordered="false"
310 eType="#//Dependent" eOpposite="#//Dependent/from_agent"/>
311 </eClassifiers>
312 <eClassifiers xsi:type="ecore:EClass" name="Income" abstract="true">
313 <eStructuralFeatures xsi:type="ecore:EAttribute" name="income_amount" ordered="false"
314 unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
315 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
316 <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()"/>
317 </eAnnotations>
318 </eStructuralFeatures>
319 <eStructuralFeatures xsi:type="ecore:EReference" name="income_type" lowerBound="1"
320 eType="#//Income_Type" containment="true" eOpposite="#//Income_Type/income"/>
321 <eStructuralFeatures xsi:type="ecore:EReference" name="tax_card" eType="#//Tax_Card"
322 containment="true" eOpposite="#//Tax_Card/income"/>
323 <eStructuralFeatures xsi:type="ecore:EAttribute" name="tax_liability" lowerBound="1"
324 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
325 <eStructuralFeatures xsi:type="ecore:EReference" name="taxPayer" ordered="false"
326 lowerBound="1" eType="#//Tax_Payer" eOpposite="#//Tax_Payer/incomes"/>
327 <eStructuralFeatures xsi:type="ecore:EReference" name="details" lowerBound="12"
328 upperBound="12" eType="#//Income_Detail" containment="true" eOpposite="#//Income_Detail/income"/>
329 <eStructuralFeatures xsi:type="ecore:EAttribute" name="num" ordered="false" lowerBound="1"
330 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" iD="true"/>
331 <eStructuralFeatures xsi:type="ecore:EReference" name="expenses" ordered="false"
332 upperBound="-1" eType="#//Expense" containment="true" eOpposite="#//Expense/income"/>
333 </eClassifiers>
334 <eClassifiers xsi:type="ecore:EClass" name="Income_Type" abstract="true">
335 <eStructuralFeatures xsi:type="ecore:EAttribute" name="id8" ordered="false" lowerBound="1"
336 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
337 <eStructuralFeatures xsi:type="ecore:EReference" name="income" lowerBound="1"
338 eType="#//Income" eOpposite="#//Income/income_type"/>
339 </eClassifiers>
340 <eClassifiers xsi:type="ecore:EClass" name="Tax_Card">
341 <eStructuralFeatures xsi:type="ecore:EAttribute" name="card_identifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
342 iD="true"/>
343 <eStructuralFeatures xsi:type="ecore:EAttribute" name="tax_office" lowerBound="1"
344 eType="#//Tax_Office"/>
345 <eStructuralFeatures xsi:type="ecore:EAttribute" name="percentage_of_witholding"
346 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
347 <eStructuralFeatures xsi:type="ecore:EAttribute" name="tax_payers_name_surname"
348 ordered="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
349 <eStructuralFeatures xsi:type="ecore:EAttribute" name="tax_payers_partner_name_surname"
350 ordered="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
351 <eStructuralFeatures xsi:type="ecore:EReference" name="tax_payers_address" eType="#//Address"/>
352 <eStructuralFeatures xsi:type="ecore:EAttribute" name="jobs_Employer_SSNo" ordered="false"
353 unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
354 <eStructuralFeatures xsi:type="ecore:EAttribute" name="jobs_employers_name" ordered="false"
355 unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
356 <eStructuralFeatures xsi:type="ecore:EAttribute" name="jobs_activity_type" lowerBound="1"
357 eType="#//Job_Activity"/>
358 <eStructuralFeatures xsi:type="ecore:EAttribute" name="jobs_place_of_work" lowerBound="1"
359 eType="#//Town"/>
360 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_FD_daily" ordered="false"
361 unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
362 defaultValueLiteral="0.0"/>
363 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_FD_monthly" ordered="false"
364 unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
365 defaultValueLiteral="0.0"/>
366 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_AC_daily" unique="false"
367 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
368 defaultValueLiteral="0.0"/>
369 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_AC_monthly" unique="false"
370 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
371 defaultValueLiteral="0.0"/>
372 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_AC_yearly" unique="false"
373 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
374 defaultValueLiteral="0.0"/>
375 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_CE_daily" unique="false"
376 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
377 defaultValueLiteral="0.0"/>
378 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_CE_monthly" unique="false"
379 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
380 defaultValueLiteral="0.0"/>
381 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_CE_yearly" unique="false"
382 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
383 defaultValueLiteral="0.0"/>
384 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_DS_daily" unique="false"
385 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
386 defaultValueLiteral="0.0"/>
387 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_DS_monthly" lowerBound="1"
388 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="0.0"/>
389 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_FO_daily" unique="false"
390 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
391 defaultValueLiteral="0.0"/>
392 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_FO_monthly" unique="false"
393 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
394 defaultValueLiteral="0.0"/>
395 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_FO_yearly" unique="false"
396 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
397 defaultValueLiteral="0.0"/>
398 <eStructuralFeatures xsi:type="ecore:EAttribute" name="credit_CIS_daily" unique="false"
399 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
400 defaultValueLiteral="0.0"/>
401 <eStructuralFeatures xsi:type="ecore:EAttribute" name="credit_CIS_monthly" unique="false"
402 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
403 defaultValueLiteral="0.0"/>
404 <eStructuralFeatures xsi:type="ecore:EAttribute" name="credit_CIM_daily" unique="false"
405 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
406 defaultValueLiteral="0.0"/>
407 <eStructuralFeatures xsi:type="ecore:EAttribute" name="validity" lowerBound="1"
408 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
409 <eStructuralFeatures xsi:type="ecore:EReference" name="income_Tax_Credit" ordered="false"
410 upperBound="-1" eType="#//Income_Tax_Credit" eOpposite="#//Income_Tax_Credit/taxation_Frame"/>
411 <eStructuralFeatures xsi:type="ecore:EReference" name="previous" eType="#//Tax_Card"
412 eOpposite="#//Tax_Card/current_tax_card"/>
413 <eStructuralFeatures xsi:type="ecore:EReference" name="current_tax_card" eType="#//Tax_Card"
414 eOpposite="#//Tax_Card/previous"/>
415 <eStructuralFeatures xsi:type="ecore:EAttribute" name="credit_CIM_yearly" ordered="false"
416 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
417 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_DS_Alimony_yearly"
418 ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
419 <eStructuralFeatures xsi:type="ecore:EAttribute" name="deduction_DS_Debt_yearly"
420 ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
421 <eStructuralFeatures xsi:type="ecore:EReference" name="income" lowerBound="1"
422 eType="#//Income" eOpposite="#//Income/tax_card"/>
423 </eClassifiers>
424 <eClassifiers xsi:type="ecore:EClass" name="Income_Tax_Credit">
425 <eStructuralFeatures xsi:type="ecore:EAttribute" name="grantedBy" lowerBound="1"
426 eType="#//Grantor"/>
427 <eStructuralFeatures xsi:type="ecore:EReference" name="taxPayer" eType="#//Tax_Payer"/>
428 <eStructuralFeatures xsi:type="ecore:EAttribute" name="tax_year" lowerBound="1"
429 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
430 <eStructuralFeatures xsi:type="ecore:EAttribute" name="yearly" lowerBound="1"
431 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="300.0"/>
432 <eStructuralFeatures xsi:type="ecore:EAttribute" name="monthly" lowerBound="1"
433 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="25.0"/>
434 <eStructuralFeatures xsi:type="ecore:EAttribute" name="daily" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
435 defaultValueLiteral="1.0"/>
436 <eStructuralFeatures xsi:type="ecore:EAttribute" name="id7" ordered="false" lowerBound="1"
437 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
438 <eStructuralFeatures xsi:type="ecore:EReference" name="taxation_Frame" eType="#//Tax_Card"
439 eOpposite="#//Tax_Card/income_Tax_Credit"/>
440 </eClassifiers>
441 <eClassifiers xsi:type="ecore:EClass" name="Income_Detail">
442 <eStructuralFeatures xsi:type="ecore:EAttribute" name="amount" lowerBound="1"
443 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
444 <eStructuralFeatures xsi:type="ecore:EAttribute" name="is_worked" lowerBound="1"
445 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
446 <eStructuralFeatures xsi:type="ecore:EAttribute" name="distance" lowerBound="1"
447 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
448 <eStructuralFeatures xsi:type="ecore:EAttribute" name="worked_days" lowerBound="1"
449 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
450 <eStructuralFeatures xsi:type="ecore:EAttribute" name="is_contributing_CNS" ordered="false"
451 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
452 <eStructuralFeatures xsi:type="ecore:EAttribute" name="id5" ordered="false" lowerBound="1"
453 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
454 <eStructuralFeatures xsi:type="ecore:EReference" name="income" lowerBound="1"
455 eType="#//Income" eOpposite="#//Income/details"/>
456 </eClassifiers>
457 <eClassifiers xsi:type="ecore:EClass" name="FromLaw">
458 <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" ordered="false" lowerBound="1"
459 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
460 <eStructuralFeatures xsi:type="ecore:EReference" name="taxPayer" lowerBound="1"
461 eType="#//Tax_Payer" eOpposite="#//Tax_Payer/from_law"/>
462 </eClassifiers>
463 <eClassifiers xsi:type="ecore:EClass" name="Fiscal_Address" eSuperTypes="#//Address"/>
464 <eClassifiers xsi:type="ecore:EClass" name="Habitual_Address" eSuperTypes="#//Address"/>
465 <eClassifiers xsi:type="ecore:EClass" name="Marriage_Record" eSuperTypes="#//Legal_Union_Record"/>
466 <eClassifiers xsi:type="ecore:EClass" name="Non_Resident_Tax_Payer" eSuperTypes="#//Tax_Payer">
467 <eStructuralFeatures xsi:type="ecore:EAttribute" name="is_assimilated_to_resident"
468 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
469 defaultValueLiteral="false"/>
470 </eClassifiers>
471 <eClassifiers xsi:type="ecore:EClass" name="Partnership_Record" eSuperTypes="#//Legal_Union_Record"/>
472 <eClassifiers xsi:type="ecore:EClass" name="Resident_Tax_Payer" eSuperTypes="#//Tax_Payer"/>
473 <eClassifiers xsi:type="ecore:EClass" name="Trade_and_Business_Income" eSuperTypes="#//Income_Type"/>
474 <eClassifiers xsi:type="ecore:EClass" name="Agriculture_and_Forestry_Income" eSuperTypes="#//Income_Type"/>
475 <eClassifiers xsi:type="ecore:EClass" name="Pensions_and_Annuities_Income" eSuperTypes="#//Income_Type">
476 <eStructuralFeatures xsi:type="ecore:EAttribute" name="occasional_payement" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
477 defaultValueLiteral="false"/>
478 </eClassifiers>
479 <eClassifiers xsi:type="ecore:EClass" name="Capital_and_Investments_Income" eSuperTypes="#//Income_Type"/>
480 <eClassifiers xsi:type="ecore:EClass" name="Employment_Income" eSuperTypes="#//Income_Type"/>
481 <eClassifiers xsi:type="ecore:EClass" name="Rentals_and_Leases_Income" eSuperTypes="#//Income_Type">
482 <eStructuralFeatures xsi:type="ecore:EAttribute" name="is_periodic" lowerBound="1"
483 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true"/>
484 </eClassifiers>
485 <eClassifiers xsi:type="ecore:EClass" name="Foreign_Income" eSuperTypes="#//Income"/>
486 <eClassifiers xsi:type="ecore:EClass" name="Local_Income" eSuperTypes="#//Income"/>
487 <eClassifiers xsi:type="ecore:EClass" name="CIM" eSuperTypes="#//Income_Tax_Credit"/>
488 <eClassifiers xsi:type="ecore:EClass" name="CIP" eSuperTypes="#//Income_Tax_Credit"/>
489 <eClassifiers xsi:type="ecore:EClass" name="CIS" eSuperTypes="#//Income_Tax_Credit"/>
490 <eClassifiers xsi:type="ecore:EEnum" name="Category_of_Permanent_Expense">
491 <eLiterals name="MISCELLANEOUS_DEBT" literal="MISCELLANEOUS_DEBT"/>
492 <eLiterals name="ALIMONY" value="1" literal="ALIMONY"/>
493 </eClassifiers>
494 <eClassifiers xsi:type="ecore:EEnum" name="Category_of_Health_and_Pension_Insurances">
495 <eLiterals name="MANDATORY_HEALTH_AND_PENSION_INSURANCE" literal="MANDATORY_HEALTH_AND_PENSION_INSURANCE"/>
496 <eLiterals name="ADDITIONAL_EMPLOYERS_PENSION_INSURANCE" value="1" literal="ADDITIONAL_EMPLOYERS_PENSION_INSURANCE"/>
497 <eLiterals name="CONTINUED_HEALTH_AND_PENSION_INSURANCE" value="2" literal="CONTINUED_HEALTH_AND_PENSION_INSURANCE"/>
498 </eClassifiers>
499 <eClassifiers xsi:type="ecore:EEnum" name="Category_of_Private_Insurance_and_Plan">
500 <eLiterals name="PRIVATE_INSURANCE" literal="PRIVATE_INSURANCE"/>
501 <eLiterals name="PRIVATE_LIFE_INSURANCE" value="1" literal="PRIVATE_LIFE_INSURANCE"/>
502 <eLiterals name="COMPANY_MEMBERS_PRIVATE_INSURANCE" value="2" literal="COMPANY_MEMBERS_PRIVATE_INSURANCE"/>
503 <eLiterals name="HOUSING_SAVING_PLAN" value="3" literal="HOUSING_SAVING_PLAN"/>
504 <eLiterals name="OLD_AGE_PENSION_PLAN" value="4" literal="OLD_AGE_PENSION_PLAN"/>
505 </eClassifiers>
506 <eClassifiers xsi:type="ecore:EClass" name="Permanent_Expense" eSuperTypes="#//Special_Expense_DS">
507 <eStructuralFeatures xsi:type="ecore:EAttribute" name="category" lowerBound="1"
508 eType="#//Category_of_Permanent_Expense"/>
509 </eClassifiers>
510 <eClassifiers xsi:type="ecore:EClass" name="Special_Expense_DS" eSuperTypes="#//Expense"/>
511 <eClassifiers xsi:type="ecore:EClass" name="Interest_Expense" eSuperTypes="#//Special_Expense_DS"/>
512 <eClassifiers xsi:type="ecore:EClass" name="Private_Insurance_and_Plan" eSuperTypes="#//Special_Expense_DS">
513 <eStructuralFeatures xsi:type="ecore:EAttribute" name="category" lowerBound="1"
514 eType="#//Category_of_Private_Insurance_and_Plan"/>
515 <eStructuralFeatures xsi:type="ecore:EAttribute" name="duration_of_contract" lowerBound="1"
516 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
517 </eClassifiers>
518 <eClassifiers xsi:type="ecore:EClass" name="Health_and_Pension_Insurance" eSuperTypes="#//Special_Expense_DS">
519 <eStructuralFeatures xsi:type="ecore:EAttribute" name="category" lowerBound="1"
520 eType="#//Category_of_Health_and_Pension_Insurances"/>
521 <eStructuralFeatures xsi:type="ecore:EAttribute" name="is_related_to_additional_salary"
522 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
523 defaultValueLiteral="false"/>
524 </eClassifiers>
525 <eClassifiers xsi:type="ecore:EClass" name="Donation" eSuperTypes="#//Special_Expense_DS">
526 <eStructuralFeatures xsi:type="ecore:EAttribute" name="beneficiary1" lowerBound="1"
527 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
528 <eStructuralFeatures xsi:type="ecore:EAttribute" name="is_donation_reported" lowerBound="1"
529 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
530 </eClassifiers>
531 <eClassifiers xsi:type="ecore:EClass" name="Loss_Carryforward" eSuperTypes="#//Special_Expense_DS"/>
532 <eClassifiers xsi:type="ecore:EClass" name="Spousal_Expense_AC" eSuperTypes="#//Expense"/>
533 <eClassifiers xsi:type="ecore:EClass" name="Extraordinary_Expense_CE" eSuperTypes="#//Expense">
534 <eStructuralFeatures xsi:type="ecore:EAttribute" name="thresholded_deduction_percentage"
535 lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
536 <eStructuralFeatures xsi:type="ecore:EAttribute" name="ce_type" lowerBound="1"
537 eType="#//CE_Type"/>
538 </eClassifiers>
539 <eClassifiers xsi:type="ecore:EClass" name="Travel_Expense_FD" eSuperTypes="#//Professional_Expense"/>
540 <eClassifiers xsi:type="ecore:EClass" name="Professional_Expense" eSuperTypes="#//Expense"/>
541 <eClassifiers xsi:type="ecore:EClass" name="Miscellaneous_Expense_FO" eSuperTypes="#//Professional_Expense"/>
542 <eClassifiers xsi:type="ecore:EEnum" name="Legal_Union_Types">
543 <eLiterals name="MARIAGE"/>
544 <eLiterals name="PARTNERSHIP" value="1"/>
545 <eLiterals name="OTHER" value="2"/>
546 </eClassifiers>
547 <eClassifiers xsi:type="ecore:EClass" name="Resource">
548 <eStructuralFeatures xsi:type="ecore:EReference" name="contains" upperBound="-1"
549 eType="#//Household" containment="true"/>
550 </eClassifiers>
551</ecore:EPackage>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/model/TaxationWithRoot.genmodel b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/model/TaxationWithRoot.genmodel
new file mode 100644
index 00000000..c3466ca0
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/model/TaxationWithRoot.genmodel
@@ -0,0 +1,344 @@
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"
3 xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/models20.diversity-calculator/src" modelPluginID="models20.diversity-calculator"
4 modelName="TaxationWithRoot" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
5 importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" copyrightFields="false"
6 operationReflection="true" importOrganizing="true">
7 <foreignModel>TaxationWithRoot.ecore</foreignModel>
8 <genPackages prefix="TaxationWithRoot" disposableProviderFactory="true" ecorePackage="TaxationWithRoot.ecore#/">
9 <genEnums typeSafeEnumCompatible="false" ecoreEnum="TaxationWithRoot.ecore#//Grantor">
10 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Grantor/WWW"/>
11 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Grantor/Employer"/>
12 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Grantor/MMM"/>
13 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Grantor/UUU"/>
14 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Grantor/YYY"/>
15 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Grantor/OOO"/>
16 </genEnums>
17 <genEnums typeSafeEnumCompatible="false" ecoreEnum="TaxationWithRoot.ecore#//Disability_Types">
18 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Disability_Types/beug"/>
19 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Disability_Types/NONE"/>
20 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Disability_Types/A"/>
21 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Disability_Types/B"/>
22 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Disability_Types/C"/>
23 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Disability_Types/D"/>
24 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Disability_Types/E"/>
25 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Disability_Types/OTHER"/>
26 </genEnums>
27 <genEnums typeSafeEnumCompatible="false" ecoreEnum="TaxationWithRoot.ecore#//Country">
28 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Country/ZZ"/>
29 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Country/FF"/>
30 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Country/BB"/>
31 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Country/DD"/>
32 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Country/NN"/>
33 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Country/OTHER"/>
34 </genEnums>
35 <genEnums typeSafeEnumCompatible="false" ecoreEnum="TaxationWithRoot.ecore#//Tax_Office">
36 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Tax_Office/RTS_2"/>
37 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Tax_Office/RTS_3"/>
38 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Tax_Office/RTS_4"/>
39 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Tax_Office/RTS_5"/>
40 </genEnums>
41 <genEnums typeSafeEnumCompatible="false" ecoreEnum="TaxationWithRoot.ecore#//Tax_Class_Category">
42 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Tax_Class_Category/One"/>
43 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Tax_Class_Category/One_A"/>
44 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Tax_Class_Category/Two"/>
45 </genEnums>
46 <genEnums typeSafeEnumCompatible="false" ecoreEnum="TaxationWithRoot.ecore#//Job_Activity">
47 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Job_Activity/Salary"/>
48 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Job_Activity/Pension"/>
49 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Job_Activity/Annuity"/>
50 </genEnums>
51 <genEnums typeSafeEnumCompatible="false" ecoreEnum="TaxationWithRoot.ecore#//Town">
52 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Town/LL"/>
53 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Town/BB"/>
54 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Town/SS"/>
55 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Town/TT"/>
56 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Town/Other"/>
57 </genEnums>
58 <genEnums typeSafeEnumCompatible="false" ecoreEnum="TaxationWithRoot.ecore#//CE_Type">
59 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//CE_Type/INALIDITY_AND_INFIRMITY"/>
60 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//CE_Type/DEPENDENCE_AND_CARE_EXCLUDING_CHLIDREN_NOT_PART_OF_HOUSEHOLD"/>
61 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//CE_Type/CARE_FOR_CHILDREN_NOT_BEING_PART_OF_HOUSEHOLD"/>
62 </genEnums>
63 <genEnums typeSafeEnumCompatible="false" ecoreEnum="TaxationWithRoot.ecore#//Expense_Purpose">
64 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Expense_Purpose/HOUSE_CARE"/>
65 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Expense_Purpose/CHILD_CARE"/>
66 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Expense_Purpose/DEPENDENCE_CARE"/>
67 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Expense_Purpose/OTHER"/>
68 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Expense_Purpose/ALIMONY"/>
69 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Expense_Purpose/RECURRENT_DEPT"/>
70 </genEnums>
71 <genEnums typeSafeEnumCompatible="false" ecoreEnum="TaxationWithRoot.ecore#//Dependent_Type">
72 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Dependent_Type/CHILD"/>
73 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Dependent_Type/SPOUSE"/>
74 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Dependent_Type/RELATIVE"/>
75 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Dependent_Type/OTHER_FAMILY_MEMBER"/>
76 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Dependent_Type/NOT_OWN_CHILD"/>
77 </genEnums>
78 <genEnums typeSafeEnumCompatible="false" ecoreEnum="TaxationWithRoot.ecore#//Separation_Causes">
79 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Separation_Causes/NONE"/>
80 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Separation_Causes/DIVORCE"/>
81 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Separation_Causes/SEPARATION_DE_FAIT"/>
82 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Separation_Causes/SEPARATION_BY_COURT"/>
83 </genEnums>
84 <genEnums typeSafeEnumCompatible="false" ecoreEnum="TaxationWithRoot.ecore#//Category_of_Permanent_Expense">
85 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Category_of_Permanent_Expense/MISCELLANEOUS_DEBT"/>
86 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Category_of_Permanent_Expense/ALIMONY"/>
87 </genEnums>
88 <genEnums typeSafeEnumCompatible="false" ecoreEnum="TaxationWithRoot.ecore#//Category_of_Health_and_Pension_Insurances">
89 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Category_of_Health_and_Pension_Insurances/MANDATORY_HEALTH_AND_PENSION_INSURANCE"/>
90 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Category_of_Health_and_Pension_Insurances/ADDITIONAL_EMPLOYERS_PENSION_INSURANCE"/>
91 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Category_of_Health_and_Pension_Insurances/CONTINUED_HEALTH_AND_PENSION_INSURANCE"/>
92 </genEnums>
93 <genEnums typeSafeEnumCompatible="false" ecoreEnum="TaxationWithRoot.ecore#//Category_of_Private_Insurance_and_Plan">
94 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Category_of_Private_Insurance_and_Plan/PRIVATE_INSURANCE"/>
95 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Category_of_Private_Insurance_and_Plan/PRIVATE_LIFE_INSURANCE"/>
96 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Category_of_Private_Insurance_and_Plan/COMPANY_MEMBERS_PRIVATE_INSURANCE"/>
97 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Category_of_Private_Insurance_and_Plan/HOUSING_SAVING_PLAN"/>
98 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Category_of_Private_Insurance_and_Plan/OLD_AGE_PENSION_PLAN"/>
99 </genEnums>
100 <genEnums typeSafeEnumCompatible="false" ecoreEnum="TaxationWithRoot.ecore#//Legal_Union_Types">
101 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Legal_Union_Types/MARIAGE"/>
102 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Legal_Union_Types/PARTNERSHIP"/>
103 <genEnumLiterals ecoreEnumLiteral="TaxationWithRoot.ecore#//Legal_Union_Types/OTHER"/>
104 </genEnums>
105 <genClasses image="false" ecoreClass="TaxationWithRoot.ecore#//Constants">
106 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Constants/MAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD"/>
107 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Constants/MAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE"/>
108 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Constants/MINIMUM_SALARY"/>
109 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Constants/FLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION"/>
110 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Constants/MAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS"/>
111 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Constants/MINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS"/>
112 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Constants/MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC"/>
113 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Constants/MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE"/>
114 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Constants/MAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION"/>
115 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Constants/MAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION"/>
116 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Constants/MINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION"/>
117 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Constants/FLAT_RATE_CIM_DAILY"/>
118 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Constants/FLAT_RATE_CIM_MONTHLY"/>
119 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Constants/FLAT_RATE_CIM_YEARLY"/>
120 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Constants/FLAT_RATE_CIP_DAILY"/>
121 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Constants/FLAT_RATE_CIP_MONTHLY"/>
122 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Constants/FLAT_RATE_CIP_YEARLY"/>
123 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Constants/FLAT_RATE_CIS_DAILY"/>
124 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Constants/FLAT_RATE_CIS_MONTHLY"/>
125 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Constants/FLAT_RATE_CIS_YEARLY"/>
126 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Constants/FLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT"/>
127 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Constants/MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS"/>
128 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Constants/FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE"/>
129 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Constants/DISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE"/>
130 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Constants/MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE"/>
131 </genClasses>
132 <genClasses ecoreClass="TaxationWithRoot.ecore#//Income_Tax">
133 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Income_Tax/taxPayer"/>
134 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Income_Tax/tax_amount"/>
135 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Income_Tax/tax_year"/>
136 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Income_Tax/id6"/>
137 </genClasses>
138 <genClasses image="false" ecoreClass="TaxationWithRoot.ecore#//Tax_Payer">
139 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Tax_Payer/dependents"/>
140 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Tax_Payer/from_agent"/>
141 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Tax_Payer/incomes"/>
142 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Tax_Payer/from_law"/>
143 </genClasses>
144 <genClasses ecoreClass="TaxationWithRoot.ecore#//Physical_Person">
145 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Physical_Person/SSNo"/>
146 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Physical_Person/addresses"/>
147 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Physical_Person/birth_year"/>
148 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Physical_Person/disability_percentage"/>
149 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Physical_Person/disability_type"/>
150 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Physical_Person/birth_month"/>
151 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Physical_Person/birth_day"/>
152 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Physical_Person/expenses"/>
153 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Physical_Person/is_widower"/>
154 </genClasses>
155 <genClasses ecoreClass="TaxationWithRoot.ecore#//Address">
156 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Address/country"/>
157 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Address/street"/>
158 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Address/zipCode"/>
159 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Address/city"/>
160 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Address/id2"/>
161 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Address/taxPayer"/>
162 </genClasses>
163 <genClasses ecoreClass="TaxationWithRoot.ecore#//Expense">
164 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Expense/declared_amount"/>
165 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Expense/expense_purpose"/>
166 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Expense/dependent"/>
167 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Expense/from_agent"/>
168 <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Expense/income"/>
169 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Expense/id4"/>
170 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Expense/beneficiary"/>
171 </genClasses>
172 <genClasses ecoreClass="TaxationWithRoot.ecore#//Dependent">
173 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Dependent/dependent_type"/>
174 <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Dependent/responsible_person"/>
175 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Dependent/continued_studies"/>
176 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Dependent/allowances"/>
177 <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Dependent/household"/>
178 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Dependent/from_agent"/>
179 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Dependent/expense"/>
180 </genClasses>
181 <genClasses ecoreClass="TaxationWithRoot.ecore#//External_Allowance">
182 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//External_Allowance/grantor"/>
183 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//External_Allowance/starting_year"/>
184 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//External_Allowance/ending_year"/>
185 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//External_Allowance/reciver"/>
186 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//External_Allowance/id5"/>
187 <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//External_Allowance/person"/>
188 </genClasses>
189 <genClasses ecoreClass="TaxationWithRoot.ecore#//Household">
190 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Household/parents"/>
191 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Household/id1"/>
192 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Household/children"/>
193 </genClasses>
194 <genClasses image="false" ecoreClass="TaxationWithRoot.ecore#//Legal_Union_Record">
195 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Legal_Union_Record/start_year"/>
196 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Legal_Union_Record/end_year"/>
197 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Legal_Union_Record/separation_cause"/>
198 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Legal_Union_Record/individual_A"/>
199 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Legal_Union_Record/individual_B"/>
200 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Legal_Union_Record/properties"/>
201 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Legal_Union_Record/mutual_agreement"/>
202 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Legal_Union_Record/id9"/>
203 <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Legal_Union_Record/household"/>
204 </genClasses>
205 <genClasses ecoreClass="TaxationWithRoot.ecore#//Tax_Property">
206 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Property/starting_year"/>
207 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Property/id10"/>
208 <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Tax_Property/union_record"/>
209 </genClasses>
210 <genClasses image="false" ecoreClass="TaxationWithRoot.ecore#//Tax_Case"/>
211 <genClasses ecoreClass="TaxationWithRoot.ecore#//FromAgent">
212 <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//FromAgent/taxPayer"/>
213 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//FromAgent/is_dependent_eligible_for_CE_Not_In_Houshold_Children_Care"/>
214 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//FromAgent/expense"/>
215 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//FromAgent/is_eligible_debt"/>
216 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//FromAgent/dependent"/>
217 </genClasses>
218 <genClasses image="false" ecoreClass="TaxationWithRoot.ecore#//Income">
219 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Income/income_amount"/>
220 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Income/income_type"/>
221 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Income/tax_card"/>
222 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Income/tax_liability"/>
223 <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Income/taxPayer"/>
224 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Income/details"/>
225 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Income/num"/>
226 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Income/expenses"/>
227 </genClasses>
228 <genClasses image="false" ecoreClass="TaxationWithRoot.ecore#//Income_Type">
229 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Income_Type/id8"/>
230 <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Income_Type/income"/>
231 </genClasses>
232 <genClasses ecoreClass="TaxationWithRoot.ecore#//Tax_Card">
233 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Card/card_identifier"/>
234 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Card/tax_office"/>
235 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Card/percentage_of_witholding"/>
236 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Card/tax_payers_name_surname"/>
237 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Card/tax_payers_partner_name_surname"/>
238 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Tax_Card/tax_payers_address"/>
239 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Card/jobs_Employer_SSNo"/>
240 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Card/jobs_employers_name"/>
241 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Card/jobs_activity_type"/>
242 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Card/jobs_place_of_work"/>
243 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Card/deduction_FD_daily"/>
244 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Card/deduction_FD_monthly"/>
245 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Card/deduction_AC_daily"/>
246 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Card/deduction_AC_monthly"/>
247 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Card/deduction_AC_yearly"/>
248 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Card/deduction_CE_daily"/>
249 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Card/deduction_CE_monthly"/>
250 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Card/deduction_CE_yearly"/>
251 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Card/deduction_DS_daily"/>
252 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Card/deduction_DS_monthly"/>
253 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Card/deduction_FO_daily"/>
254 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Card/deduction_FO_monthly"/>
255 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Card/deduction_FO_yearly"/>
256 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Card/credit_CIS_daily"/>
257 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Card/credit_CIS_monthly"/>
258 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Card/credit_CIM_daily"/>
259 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Card/validity"/>
260 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Tax_Card/income_Tax_Credit"/>
261 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Tax_Card/previous"/>
262 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Tax_Card/current_tax_card"/>
263 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Card/credit_CIM_yearly"/>
264 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Card/deduction_DS_Alimony_yearly"/>
265 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Tax_Card/deduction_DS_Debt_yearly"/>
266 <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Tax_Card/income"/>
267 </genClasses>
268 <genClasses ecoreClass="TaxationWithRoot.ecore#//Income_Tax_Credit">
269 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Income_Tax_Credit/grantedBy"/>
270 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Income_Tax_Credit/taxPayer"/>
271 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Income_Tax_Credit/tax_year"/>
272 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Income_Tax_Credit/yearly"/>
273 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Income_Tax_Credit/monthly"/>
274 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Income_Tax_Credit/daily"/>
275 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Income_Tax_Credit/id7"/>
276 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Income_Tax_Credit/taxation_Frame"/>
277 </genClasses>
278 <genClasses ecoreClass="TaxationWithRoot.ecore#//Income_Detail">
279 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Income_Detail/amount"/>
280 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Income_Detail/is_worked"/>
281 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Income_Detail/distance"/>
282 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Income_Detail/worked_days"/>
283 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Income_Detail/is_contributing_CNS"/>
284 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Income_Detail/id5"/>
285 <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Income_Detail/income"/>
286 </genClasses>
287 <genClasses ecoreClass="TaxationWithRoot.ecore#//FromLaw">
288 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//FromLaw/id"/>
289 <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//FromLaw/taxPayer"/>
290 </genClasses>
291 <genClasses ecoreClass="TaxationWithRoot.ecore#//Fiscal_Address"/>
292 <genClasses ecoreClass="TaxationWithRoot.ecore#//Habitual_Address"/>
293 <genClasses ecoreClass="TaxationWithRoot.ecore#//Marriage_Record"/>
294 <genClasses ecoreClass="TaxationWithRoot.ecore#//Non_Resident_Tax_Payer">
295 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Non_Resident_Tax_Payer/is_assimilated_to_resident"/>
296 </genClasses>
297 <genClasses ecoreClass="TaxationWithRoot.ecore#//Partnership_Record"/>
298 <genClasses ecoreClass="TaxationWithRoot.ecore#//Resident_Tax_Payer"/>
299 <genClasses ecoreClass="TaxationWithRoot.ecore#//Trade_and_Business_Income"/>
300 <genClasses ecoreClass="TaxationWithRoot.ecore#//Agriculture_and_Forestry_Income"/>
301 <genClasses ecoreClass="TaxationWithRoot.ecore#//Pensions_and_Annuities_Income">
302 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Pensions_and_Annuities_Income/occasional_payement"/>
303 </genClasses>
304 <genClasses ecoreClass="TaxationWithRoot.ecore#//Capital_and_Investments_Income"/>
305 <genClasses ecoreClass="TaxationWithRoot.ecore#//Employment_Income"/>
306 <genClasses ecoreClass="TaxationWithRoot.ecore#//Rentals_and_Leases_Income">
307 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Rentals_and_Leases_Income/is_periodic"/>
308 </genClasses>
309 <genClasses ecoreClass="TaxationWithRoot.ecore#//Foreign_Income"/>
310 <genClasses ecoreClass="TaxationWithRoot.ecore#//Local_Income"/>
311 <genClasses ecoreClass="TaxationWithRoot.ecore#//CIM"/>
312 <genClasses ecoreClass="TaxationWithRoot.ecore#//CIP"/>
313 <genClasses ecoreClass="TaxationWithRoot.ecore#//CIS"/>
314 <genClasses ecoreClass="TaxationWithRoot.ecore#//Permanent_Expense">
315 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Permanent_Expense/category"/>
316 </genClasses>
317 <genClasses ecoreClass="TaxationWithRoot.ecore#//Special_Expense_DS"/>
318 <genClasses ecoreClass="TaxationWithRoot.ecore#//Interest_Expense"/>
319 <genClasses ecoreClass="TaxationWithRoot.ecore#//Private_Insurance_and_Plan">
320 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Private_Insurance_and_Plan/category"/>
321 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Private_Insurance_and_Plan/duration_of_contract"/>
322 </genClasses>
323 <genClasses ecoreClass="TaxationWithRoot.ecore#//Health_and_Pension_Insurance">
324 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Health_and_Pension_Insurance/category"/>
325 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Health_and_Pension_Insurance/is_related_to_additional_salary"/>
326 </genClasses>
327 <genClasses ecoreClass="TaxationWithRoot.ecore#//Donation">
328 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Donation/beneficiary1"/>
329 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Donation/is_donation_reported"/>
330 </genClasses>
331 <genClasses ecoreClass="TaxationWithRoot.ecore#//Loss_Carryforward"/>
332 <genClasses ecoreClass="TaxationWithRoot.ecore#//Spousal_Expense_AC"/>
333 <genClasses ecoreClass="TaxationWithRoot.ecore#//Extraordinary_Expense_CE">
334 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Extraordinary_Expense_CE/thresholded_deduction_percentage"/>
335 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute TaxationWithRoot.ecore#//Extraordinary_Expense_CE/ce_type"/>
336 </genClasses>
337 <genClasses ecoreClass="TaxationWithRoot.ecore#//Travel_Expense_FD"/>
338 <genClasses ecoreClass="TaxationWithRoot.ecore#//Professional_Expense"/>
339 <genClasses ecoreClass="TaxationWithRoot.ecore#//Miscellaneous_Expense_FO"/>
340 <genClasses ecoreClass="TaxationWithRoot.ecore#//Resource">
341 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference TaxationWithRoot.ecore#//Resource/contains"/>
342 </genClasses>
343 </genPackages>
344</genmodel:GenModel>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/model/familytree.ecore b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/model/familytree.ecore
new file mode 100644
index 00000000..128e5c63
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/model/familytree.ecore
@@ -0,0 +1,17 @@
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="familytree" nsURI="http://www.example.org/familytree" nsPrefix="familytree">
4 <eClassifiers xsi:type="ecore:EClass" name="FamilyTree">
5 <eStructuralFeatures xsi:type="ecore:EReference" name="members" upperBound="-1"
6 eType="#//Member" containment="true"/>
7 </eClassifiers>
8 <eClassifiers xsi:type="ecore:EClass" name="Member">
9 <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
10 <eStructuralFeatures xsi:type="ecore:EAttribute" name="age" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
11 defaultValueLiteral="0"/>
12 <eStructuralFeatures xsi:type="ecore:EReference" name="children" upperBound="-1"
13 eType="#//Member" eOpposite="#//Member/parents"/>
14 <eStructuralFeatures xsi:type="ecore:EReference" name="parents" upperBound="2"
15 eType="#//Member" eOpposite="#//Member/children"/>
16 </eClassifiers>
17</ecore:EPackage>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/model/familytree.genmodel b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/model/familytree.genmodel
new file mode 100644
index 00000000..e3c59b05
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/model/familytree.genmodel
@@ -0,0 +1,19 @@
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"
3 xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/models20.diversity-calculator/src" modelPluginID="models20.diversity-calculator"
4 modelName="Familytree" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
5 importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" copyrightFields="false"
6 operationReflection="true" importOrganizing="true">
7 <foreignModel>familytree.ecore</foreignModel>
8 <genPackages prefix="Familytree" disposableProviderFactory="true" ecorePackage="familytree.ecore#/">
9 <genClasses ecoreClass="familytree.ecore#//FamilyTree">
10 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference familytree.ecore#//FamilyTree/members"/>
11 </genClasses>
12 <genClasses ecoreClass="familytree.ecore#//Member">
13 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute familytree.ecore#//Member/name"/>
14 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute familytree.ecore#//Member/age"/>
15 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference familytree.ecore#//Member/children"/>
16 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference familytree.ecore#//Member/parents"/>
17 </genClasses>
18 </genPackages>
19</genmodel:GenModel>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/model/satellite.ecore b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/model/satellite.ecore
new file mode 100644
index 00000000..6595c0a8
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/model/satellite.ecore
@@ -0,0 +1,39 @@
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="satellite" nsURI="http://www.example.org/satellite" nsPrefix="satellite">
4 <eClassifiers xsi:type="ecore:EClass" name="ConstellationMission" abstract="true">
5 <eStructuralFeatures xsi:type="ecore:EReference" name="groundStationNetwork" lowerBound="1"
6 eType="#//GroundStationNetwork" containment="true"/>
7 <eStructuralFeatures xsi:type="ecore:EReference" name="spacecraft" lowerBound="2"
8 upperBound="-1" eType="#//Spacecraft" containment="true"/>
9 </eClassifiers>
10 <eClassifiers xsi:type="ecore:EClass" name="InterferometryMission" eSuperTypes="#//ConstellationMission">
11 <eStructuralFeatures xsi:type="ecore:EAttribute" name="observationTime" lowerBound="1"
12 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
13 </eClassifiers>
14 <eClassifiers xsi:type="ecore:EClass" name="CommunicatingElement" abstract="true">
15 <eStructuralFeatures xsi:type="ecore:EReference" name="commSubsystem" lowerBound="1"
16 upperBound="2" eType="#//CommSubsystem" containment="true"/>
17 </eClassifiers>
18 <eClassifiers xsi:type="ecore:EClass" name="GroundStationNetwork" eSuperTypes="#//CommunicatingElement"/>
19 <eClassifiers xsi:type="ecore:EClass" name="Spacecraft" abstract="true" eSuperTypes="#//CommunicatingElement">
20 <eStructuralFeatures xsi:type="ecore:EReference" name="payload" eType="#//Payload"
21 containment="true"/>
22 </eClassifiers>
23 <eClassifiers xsi:type="ecore:EClass" name="CommSubsystem" abstract="true">
24 <eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="#//CommSubsystem"/>
25 <eStructuralFeatures xsi:type="ecore:EAttribute" name="frequency" lowerBound="1"
26 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
27 <eStructuralFeatures xsi:type="ecore:EAttribute" name="pathLength" lowerBound="1"
28 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
29 </eClassifiers>
30 <eClassifiers xsi:type="ecore:EClass" name="Payload" abstract="true"/>
31 <eClassifiers xsi:type="ecore:EClass" name="InterferometryPayload" eSuperTypes="#//Payload"/>
32 <eClassifiers xsi:type="ecore:EClass" name="CubeSat3U" eSuperTypes="#//CubeSat"/>
33 <eClassifiers xsi:type="ecore:EClass" name="CubeSat6U" eSuperTypes="#//CubeSat"/>
34 <eClassifiers xsi:type="ecore:EClass" name="SmallSat" eSuperTypes="#//Spacecraft"/>
35 <eClassifiers xsi:type="ecore:EClass" name="CubeSat" abstract="true" eSuperTypes="#//Spacecraft"/>
36 <eClassifiers xsi:type="ecore:EClass" name="UHFCommSubsystem" eSuperTypes="#//CommSubsystem"/>
37 <eClassifiers xsi:type="ecore:EClass" name="XCommSubsystem" eSuperTypes="#//CommSubsystem"/>
38 <eClassifiers xsi:type="ecore:EClass" name="KaCommSubsystem" eSuperTypes="#//CommSubsystem"/>
39</ecore:EPackage>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/model/satellite.genmodel b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/model/satellite.genmodel
new file mode 100644
index 00000000..61fa45ac
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/model/satellite.genmodel
@@ -0,0 +1,38 @@
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"
3 xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/models20.diversity-calculator/src" modelPluginID="models20.diversity-calculator"
4 modelName="Satellite" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
5 importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" copyrightFields="false"
6 operationReflection="true" importOrganizing="true">
7 <foreignModel>satellite.ecore</foreignModel>
8 <genPackages prefix="Satellite" disposableProviderFactory="true" ecorePackage="satellite.ecore#/">
9 <genClasses image="false" ecoreClass="satellite.ecore#//ConstellationMission">
10 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//ConstellationMission/groundStationNetwork"/>
11 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//ConstellationMission/spacecraft"/>
12 </genClasses>
13 <genClasses ecoreClass="satellite.ecore#//InterferometryMission">
14 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute satellite.ecore#//InterferometryMission/observationTime"/>
15 </genClasses>
16 <genClasses image="false" ecoreClass="satellite.ecore#//CommunicatingElement">
17 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//CommunicatingElement/commSubsystem"/>
18 </genClasses>
19 <genClasses ecoreClass="satellite.ecore#//GroundStationNetwork"/>
20 <genClasses image="false" ecoreClass="satellite.ecore#//Spacecraft">
21 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//Spacecraft/payload"/>
22 </genClasses>
23 <genClasses image="false" ecoreClass="satellite.ecore#//CommSubsystem">
24 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference satellite.ecore#//CommSubsystem/target"/>
25 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute satellite.ecore#//CommSubsystem/frequency"/>
26 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute satellite.ecore#//CommSubsystem/pathLength"/>
27 </genClasses>
28 <genClasses image="false" ecoreClass="satellite.ecore#//Payload"/>
29 <genClasses ecoreClass="satellite.ecore#//InterferometryPayload"/>
30 <genClasses ecoreClass="satellite.ecore#//CubeSat3U"/>
31 <genClasses ecoreClass="satellite.ecore#//CubeSat6U"/>
32 <genClasses ecoreClass="satellite.ecore#//SmallSat"/>
33 <genClasses image="false" ecoreClass="satellite.ecore#//CubeSat"/>
34 <genClasses ecoreClass="satellite.ecore#//UHFCommSubsystem"/>
35 <genClasses ecoreClass="satellite.ecore#//XCommSubsystem"/>
36 <genClasses ecoreClass="satellite.ecore#//KaCommSubsystem"/>
37 </genPackages>
38</genmodel:GenModel>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/plugin.properties b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/plugin.properties
new file mode 100644
index 00000000..9bb141b1
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/plugin.properties
@@ -0,0 +1,4 @@
1#
2
3pluginName = Diversity-calculator
4providerName = www.example.org
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/plugin.xml b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/plugin.xml
new file mode 100644
index 00000000..fdf84365
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/plugin.xml
@@ -0,0 +1,33 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<?eclipse version="3.0"?>
3
4<!--
5-->
6
7<plugin>
8
9 <extension point="org.eclipse.emf.ecore.generated_package">
10 <!-- @generated familytree -->
11 <package
12 uri="http://www.example.org/familytree"
13 class="familytree.FamilytreePackage"
14 genModel="model/familytree.genmodel"/>
15 </extension>
16
17 <extension point="org.eclipse.emf.ecore.generated_package">
18 <!-- @generated satellite -->
19 <package
20 uri="http://www.example.org/satellite"
21 class="satellite.SatellitePackage"
22 genModel="model/satellite.genmodel"/>
23 </extension>
24
25 <extension point="org.eclipse.emf.ecore.generated_package">
26 <!-- @generated TaxationWithRoot -->
27 <package
28 uri="http:///TaxCardWithRoot.ecore"
29 class="TaxationWithRoot.TaxationWithRootPackage"
30 genModel="model/TaxationWithRoot.genmodel"/>
31 </extension>
32
33</plugin>
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Address.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Address.java
new file mode 100644
index 00000000..87d21f5d
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Address.java
@@ -0,0 +1,159 @@
1/**
2 */
3package TaxationWithRoot;
4
5import org.eclipse.emf.common.util.EList;
6
7import org.eclipse.emf.ecore.EObject;
8
9/**
10 * <!-- begin-user-doc -->
11 * A representation of the model object '<em><b>Address</b></em>'.
12 * <!-- end-user-doc -->
13 *
14 * <p>
15 * The following features are supported:
16 * </p>
17 * <ul>
18 * <li>{@link TaxationWithRoot.Address#getCountry <em>Country</em>}</li>
19 * <li>{@link TaxationWithRoot.Address#getStreet <em>Street</em>}</li>
20 * <li>{@link TaxationWithRoot.Address#getZipCode <em>Zip Code</em>}</li>
21 * <li>{@link TaxationWithRoot.Address#getCity <em>City</em>}</li>
22 * <li>{@link TaxationWithRoot.Address#getId2 <em>Id2</em>}</li>
23 * <li>{@link TaxationWithRoot.Address#getTaxPayer <em>Tax Payer</em>}</li>
24 * </ul>
25 *
26 * @see TaxationWithRoot.TaxationWithRootPackage#getAddress()
27 * @model
28 * @generated
29 */
30public interface Address extends EObject {
31 /**
32 * Returns the value of the '<em><b>Country</b></em>' attribute.
33 * The default value is <code>"ZZ"</code>.
34 * The literals are from the enumeration {@link TaxationWithRoot.Country}.
35 * <!-- begin-user-doc -->
36 * <!-- end-user-doc -->
37 * @return the value of the '<em>Country</em>' attribute.
38 * @see TaxationWithRoot.Country
39 * @see #setCountry(Country)
40 * @see TaxationWithRoot.TaxationWithRootPackage#getAddress_Country()
41 * @model default="ZZ" required="true"
42 * @generated
43 */
44 Country getCountry();
45
46 /**
47 * Sets the value of the '{@link TaxationWithRoot.Address#getCountry <em>Country</em>}' attribute.
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @param value the new value of the '<em>Country</em>' attribute.
51 * @see TaxationWithRoot.Country
52 * @see #getCountry()
53 * @generated
54 */
55 void setCountry(Country value);
56
57 /**
58 * Returns the value of the '<em><b>Street</b></em>' attribute.
59 * <!-- begin-user-doc -->
60 * <!-- end-user-doc -->
61 * @return the value of the '<em>Street</em>' attribute.
62 * @see #setStreet(String)
63 * @see TaxationWithRoot.TaxationWithRootPackage#getAddress_Street()
64 * @model required="true"
65 * @generated
66 */
67 String getStreet();
68
69 /**
70 * Sets the value of the '{@link TaxationWithRoot.Address#getStreet <em>Street</em>}' attribute.
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @param value the new value of the '<em>Street</em>' attribute.
74 * @see #getStreet()
75 * @generated
76 */
77 void setStreet(String value);
78
79 /**
80 * Returns the value of the '<em><b>Zip Code</b></em>' attribute.
81 * <!-- begin-user-doc -->
82 * <!-- end-user-doc -->
83 * @return the value of the '<em>Zip Code</em>' attribute.
84 * @see #setZipCode(String)
85 * @see TaxationWithRoot.TaxationWithRootPackage#getAddress_ZipCode()
86 * @model required="true"
87 * @generated
88 */
89 String getZipCode();
90
91 /**
92 * Sets the value of the '{@link TaxationWithRoot.Address#getZipCode <em>Zip Code</em>}' attribute.
93 * <!-- begin-user-doc -->
94 * <!-- end-user-doc -->
95 * @param value the new value of the '<em>Zip Code</em>' attribute.
96 * @see #getZipCode()
97 * @generated
98 */
99 void setZipCode(String value);
100
101 /**
102 * Returns the value of the '<em><b>City</b></em>' attribute.
103 * <!-- begin-user-doc -->
104 * <!-- end-user-doc -->
105 * @return the value of the '<em>City</em>' attribute.
106 * @see #setCity(String)
107 * @see TaxationWithRoot.TaxationWithRootPackage#getAddress_City()
108 * @model required="true"
109 * @generated
110 */
111 String getCity();
112
113 /**
114 * Sets the value of the '{@link TaxationWithRoot.Address#getCity <em>City</em>}' attribute.
115 * <!-- begin-user-doc -->
116 * <!-- end-user-doc -->
117 * @param value the new value of the '<em>City</em>' attribute.
118 * @see #getCity()
119 * @generated
120 */
121 void setCity(String value);
122
123 /**
124 * Returns the value of the '<em><b>Id2</b></em>' attribute.
125 * <!-- begin-user-doc -->
126 * <!-- end-user-doc -->
127 * @return the value of the '<em>Id2</em>' attribute.
128 * @see #setId2(String)
129 * @see TaxationWithRoot.TaxationWithRootPackage#getAddress_Id2()
130 * @model id="true" required="true" ordered="false"
131 * @generated
132 */
133 String getId2();
134
135 /**
136 * Sets the value of the '{@link TaxationWithRoot.Address#getId2 <em>Id2</em>}' attribute.
137 * <!-- begin-user-doc -->
138 * <!-- end-user-doc -->
139 * @param value the new value of the '<em>Id2</em>' attribute.
140 * @see #getId2()
141 * @generated
142 */
143 void setId2(String value);
144
145 /**
146 * Returns the value of the '<em><b>Tax Payer</b></em>' reference list.
147 * The list contents are of type {@link TaxationWithRoot.Physical_Person}.
148 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Physical_Person#getAddresses <em>Addresses</em>}'.
149 * <!-- begin-user-doc -->
150 * <!-- end-user-doc -->
151 * @return the value of the '<em>Tax Payer</em>' reference list.
152 * @see TaxationWithRoot.TaxationWithRootPackage#getAddress_TaxPayer()
153 * @see TaxationWithRoot.Physical_Person#getAddresses
154 * @model opposite="addresses" ordered="false"
155 * @generated
156 */
157 EList<Physical_Person> getTaxPayer();
158
159} // Address
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Agriculture_and_Forestry_Income.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Agriculture_and_Forestry_Income.java
new file mode 100644
index 00000000..6805baf4
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Agriculture_and_Forestry_Income.java
@@ -0,0 +1,17 @@
1/**
2 */
3package TaxationWithRoot;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Agriculture and Forestry Income</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see TaxationWithRoot.TaxationWithRootPackage#getAgriculture_and_Forestry_Income()
13 * @model
14 * @generated
15 */
16public interface Agriculture_and_Forestry_Income extends Income_Type {
17} // Agriculture_and_Forestry_Income
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/CE_Type.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/CE_Type.java
new file mode 100644
index 00000000..7d592da3
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/CE_Type.java
@@ -0,0 +1,232 @@
1/**
2 */
3package TaxationWithRoot;
4
5import java.util.Arrays;
6import java.util.Collections;
7import java.util.List;
8
9import org.eclipse.emf.common.util.Enumerator;
10
11/**
12 * <!-- begin-user-doc -->
13 * A representation of the literals of the enumeration '<em><b>CE Type</b></em>',
14 * and utility methods for working with them.
15 * <!-- end-user-doc -->
16 * @see TaxationWithRoot.TaxationWithRootPackage#getCE_Type()
17 * @model
18 * @generated
19 */
20public enum CE_Type implements Enumerator {
21 /**
22 * The '<em><b>INALIDITY AND INFIRMITY</b></em>' literal object.
23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc -->
25 * @see #INALIDITY_AND_INFIRMITY_VALUE
26 * @generated
27 * @ordered
28 */
29 INALIDITY_AND_INFIRMITY(0, "INALIDITY_AND_INFIRMITY", "INALIDITY_AND_INFIRMITY"),
30
31 /**
32 * The '<em><b>DEPENDENCE AND CARE EXCLUDING CHLIDREN NOT PART OF HOUSEHOLD</b></em>' literal object.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @see #DEPENDENCE_AND_CARE_EXCLUDING_CHLIDREN_NOT_PART_OF_HOUSEHOLD_VALUE
36 * @generated
37 * @ordered
38 */
39 DEPENDENCE_AND_CARE_EXCLUDING_CHLIDREN_NOT_PART_OF_HOUSEHOLD(1, "DEPENDENCE_AND_CARE_EXCLUDING_CHLIDREN_NOT_PART_OF_HOUSEHOLD", "DEPENDENCE_AND_CARE_EXCLUDING_CHLIDREN_NOT_PART_OF_HOUSEHOLD"),
40
41 /**
42 * The '<em><b>CARE FOR CHILDREN NOT BEING PART OF HOUSEHOLD</b></em>' literal object.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #CARE_FOR_CHILDREN_NOT_BEING_PART_OF_HOUSEHOLD_VALUE
46 * @generated
47 * @ordered
48 */
49 CARE_FOR_CHILDREN_NOT_BEING_PART_OF_HOUSEHOLD(2, "CARE_FOR_CHILDREN_NOT_BEING_PART_OF_HOUSEHOLD", "CARE_FOR_CHILDREN_NOT_BEING_PART_OF_HOUSEHOLD");
50
51 /**
52 * The '<em><b>INALIDITY AND INFIRMITY</b></em>' literal value.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #INALIDITY_AND_INFIRMITY
56 * @model
57 * @generated
58 * @ordered
59 */
60 public static final int INALIDITY_AND_INFIRMITY_VALUE = 0;
61
62 /**
63 * The '<em><b>DEPENDENCE AND CARE EXCLUDING CHLIDREN NOT PART OF HOUSEHOLD</b></em>' literal value.
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @see #DEPENDENCE_AND_CARE_EXCLUDING_CHLIDREN_NOT_PART_OF_HOUSEHOLD
67 * @model
68 * @generated
69 * @ordered
70 */
71 public static final int DEPENDENCE_AND_CARE_EXCLUDING_CHLIDREN_NOT_PART_OF_HOUSEHOLD_VALUE = 1;
72
73 /**
74 * The '<em><b>CARE FOR CHILDREN NOT BEING PART OF HOUSEHOLD</b></em>' literal value.
75 * <!-- begin-user-doc -->
76 * <!-- end-user-doc -->
77 * @see #CARE_FOR_CHILDREN_NOT_BEING_PART_OF_HOUSEHOLD
78 * @model
79 * @generated
80 * @ordered
81 */
82 public static final int CARE_FOR_CHILDREN_NOT_BEING_PART_OF_HOUSEHOLD_VALUE = 2;
83
84 /**
85 * An array of all the '<em><b>CE Type</b></em>' enumerators.
86 * <!-- begin-user-doc -->
87 * <!-- end-user-doc -->
88 * @generated
89 */
90 private static final CE_Type[] VALUES_ARRAY =
91 new CE_Type[] {
92 INALIDITY_AND_INFIRMITY,
93 DEPENDENCE_AND_CARE_EXCLUDING_CHLIDREN_NOT_PART_OF_HOUSEHOLD,
94 CARE_FOR_CHILDREN_NOT_BEING_PART_OF_HOUSEHOLD,
95 };
96
97 /**
98 * A public read-only list of all the '<em><b>CE Type</b></em>' enumerators.
99 * <!-- begin-user-doc -->
100 * <!-- end-user-doc -->
101 * @generated
102 */
103 public static final List<CE_Type> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
104
105 /**
106 * Returns the '<em><b>CE Type</b></em>' literal with the specified literal value.
107 * <!-- begin-user-doc -->
108 * <!-- end-user-doc -->
109 * @param literal the literal.
110 * @return the matching enumerator or <code>null</code>.
111 * @generated
112 */
113 public static CE_Type get(String literal) {
114 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
115 CE_Type result = VALUES_ARRAY[i];
116 if (result.toString().equals(literal)) {
117 return result;
118 }
119 }
120 return null;
121 }
122
123 /**
124 * Returns the '<em><b>CE Type</b></em>' literal with the specified name.
125 * <!-- begin-user-doc -->
126 * <!-- end-user-doc -->
127 * @param name the name.
128 * @return the matching enumerator or <code>null</code>.
129 * @generated
130 */
131 public static CE_Type getByName(String name) {
132 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
133 CE_Type result = VALUES_ARRAY[i];
134 if (result.getName().equals(name)) {
135 return result;
136 }
137 }
138 return null;
139 }
140
141 /**
142 * Returns the '<em><b>CE Type</b></em>' literal with the specified integer value.
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @param value the integer value.
146 * @return the matching enumerator or <code>null</code>.
147 * @generated
148 */
149 public static CE_Type get(int value) {
150 switch (value) {
151 case INALIDITY_AND_INFIRMITY_VALUE: return INALIDITY_AND_INFIRMITY;
152 case DEPENDENCE_AND_CARE_EXCLUDING_CHLIDREN_NOT_PART_OF_HOUSEHOLD_VALUE: return DEPENDENCE_AND_CARE_EXCLUDING_CHLIDREN_NOT_PART_OF_HOUSEHOLD;
153 case CARE_FOR_CHILDREN_NOT_BEING_PART_OF_HOUSEHOLD_VALUE: return CARE_FOR_CHILDREN_NOT_BEING_PART_OF_HOUSEHOLD;
154 }
155 return null;
156 }
157
158 /**
159 * <!-- begin-user-doc -->
160 * <!-- end-user-doc -->
161 * @generated
162 */
163 private final int value;
164
165 /**
166 * <!-- begin-user-doc -->
167 * <!-- end-user-doc -->
168 * @generated
169 */
170 private final String name;
171
172 /**
173 * <!-- begin-user-doc -->
174 * <!-- end-user-doc -->
175 * @generated
176 */
177 private final String literal;
178
179 /**
180 * Only this class can construct instances.
181 * <!-- begin-user-doc -->
182 * <!-- end-user-doc -->
183 * @generated
184 */
185 private CE_Type(int value, String name, String literal) {
186 this.value = value;
187 this.name = name;
188 this.literal = literal;
189 }
190
191 /**
192 * <!-- begin-user-doc -->
193 * <!-- end-user-doc -->
194 * @generated
195 */
196 @Override
197 public int getValue() {
198 return value;
199 }
200
201 /**
202 * <!-- begin-user-doc -->
203 * <!-- end-user-doc -->
204 * @generated
205 */
206 @Override
207 public String getName() {
208 return name;
209 }
210
211 /**
212 * <!-- begin-user-doc -->
213 * <!-- end-user-doc -->
214 * @generated
215 */
216 @Override
217 public String getLiteral() {
218 return literal;
219 }
220
221 /**
222 * Returns the literal value of the enumerator, which is its string representation.
223 * <!-- begin-user-doc -->
224 * <!-- end-user-doc -->
225 * @generated
226 */
227 @Override
228 public String toString() {
229 return literal;
230 }
231
232} //CE_Type
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/CIM.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/CIM.java
new file mode 100644
index 00000000..1e754ff5
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/CIM.java
@@ -0,0 +1,17 @@
1/**
2 */
3package TaxationWithRoot;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>CIM</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see TaxationWithRoot.TaxationWithRootPackage#getCIM()
13 * @model
14 * @generated
15 */
16public interface CIM extends Income_Tax_Credit {
17} // CIM
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/CIP.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/CIP.java
new file mode 100644
index 00000000..96ad2a1a
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/CIP.java
@@ -0,0 +1,17 @@
1/**
2 */
3package TaxationWithRoot;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>CIP</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see TaxationWithRoot.TaxationWithRootPackage#getCIP()
13 * @model
14 * @generated
15 */
16public interface CIP extends Income_Tax_Credit {
17} // CIP
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/CIS.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/CIS.java
new file mode 100644
index 00000000..1b0ec4f5
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/CIS.java
@@ -0,0 +1,17 @@
1/**
2 */
3package TaxationWithRoot;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>CIS</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see TaxationWithRoot.TaxationWithRootPackage#getCIS()
13 * @model
14 * @generated
15 */
16public interface CIS extends Income_Tax_Credit {
17} // CIS
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Capital_and_Investments_Income.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Capital_and_Investments_Income.java
new file mode 100644
index 00000000..b7c42dc3
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Capital_and_Investments_Income.java
@@ -0,0 +1,17 @@
1/**
2 */
3package TaxationWithRoot;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Capital and Investments Income</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see TaxationWithRoot.TaxationWithRootPackage#getCapital_and_Investments_Income()
13 * @model
14 * @generated
15 */
16public interface Capital_and_Investments_Income extends Income_Type {
17} // Capital_and_Investments_Income
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Category_of_Health_and_Pension_Insurances.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Category_of_Health_and_Pension_Insurances.java
new file mode 100644
index 00000000..d5ee7a37
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Category_of_Health_and_Pension_Insurances.java
@@ -0,0 +1,232 @@
1/**
2 */
3package TaxationWithRoot;
4
5import java.util.Arrays;
6import java.util.Collections;
7import java.util.List;
8
9import org.eclipse.emf.common.util.Enumerator;
10
11/**
12 * <!-- begin-user-doc -->
13 * A representation of the literals of the enumeration '<em><b>Category of Health and Pension Insurances</b></em>',
14 * and utility methods for working with them.
15 * <!-- end-user-doc -->
16 * @see TaxationWithRoot.TaxationWithRootPackage#getCategory_of_Health_and_Pension_Insurances()
17 * @model
18 * @generated
19 */
20public enum Category_of_Health_and_Pension_Insurances implements Enumerator {
21 /**
22 * The '<em><b>MANDATORY HEALTH AND PENSION INSURANCE</b></em>' literal object.
23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc -->
25 * @see #MANDATORY_HEALTH_AND_PENSION_INSURANCE_VALUE
26 * @generated
27 * @ordered
28 */
29 MANDATORY_HEALTH_AND_PENSION_INSURANCE(0, "MANDATORY_HEALTH_AND_PENSION_INSURANCE", "MANDATORY_HEALTH_AND_PENSION_INSURANCE"),
30
31 /**
32 * The '<em><b>ADDITIONAL EMPLOYERS PENSION INSURANCE</b></em>' literal object.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @see #ADDITIONAL_EMPLOYERS_PENSION_INSURANCE_VALUE
36 * @generated
37 * @ordered
38 */
39 ADDITIONAL_EMPLOYERS_PENSION_INSURANCE(1, "ADDITIONAL_EMPLOYERS_PENSION_INSURANCE", "ADDITIONAL_EMPLOYERS_PENSION_INSURANCE"),
40
41 /**
42 * The '<em><b>CONTINUED HEALTH AND PENSION INSURANCE</b></em>' literal object.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #CONTINUED_HEALTH_AND_PENSION_INSURANCE_VALUE
46 * @generated
47 * @ordered
48 */
49 CONTINUED_HEALTH_AND_PENSION_INSURANCE(2, "CONTINUED_HEALTH_AND_PENSION_INSURANCE", "CONTINUED_HEALTH_AND_PENSION_INSURANCE");
50
51 /**
52 * The '<em><b>MANDATORY HEALTH AND PENSION INSURANCE</b></em>' literal value.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #MANDATORY_HEALTH_AND_PENSION_INSURANCE
56 * @model
57 * @generated
58 * @ordered
59 */
60 public static final int MANDATORY_HEALTH_AND_PENSION_INSURANCE_VALUE = 0;
61
62 /**
63 * The '<em><b>ADDITIONAL EMPLOYERS PENSION INSURANCE</b></em>' literal value.
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @see #ADDITIONAL_EMPLOYERS_PENSION_INSURANCE
67 * @model
68 * @generated
69 * @ordered
70 */
71 public static final int ADDITIONAL_EMPLOYERS_PENSION_INSURANCE_VALUE = 1;
72
73 /**
74 * The '<em><b>CONTINUED HEALTH AND PENSION INSURANCE</b></em>' literal value.
75 * <!-- begin-user-doc -->
76 * <!-- end-user-doc -->
77 * @see #CONTINUED_HEALTH_AND_PENSION_INSURANCE
78 * @model
79 * @generated
80 * @ordered
81 */
82 public static final int CONTINUED_HEALTH_AND_PENSION_INSURANCE_VALUE = 2;
83
84 /**
85 * An array of all the '<em><b>Category of Health and Pension Insurances</b></em>' enumerators.
86 * <!-- begin-user-doc -->
87 * <!-- end-user-doc -->
88 * @generated
89 */
90 private static final Category_of_Health_and_Pension_Insurances[] VALUES_ARRAY =
91 new Category_of_Health_and_Pension_Insurances[] {
92 MANDATORY_HEALTH_AND_PENSION_INSURANCE,
93 ADDITIONAL_EMPLOYERS_PENSION_INSURANCE,
94 CONTINUED_HEALTH_AND_PENSION_INSURANCE,
95 };
96
97 /**
98 * A public read-only list of all the '<em><b>Category of Health and Pension Insurances</b></em>' enumerators.
99 * <!-- begin-user-doc -->
100 * <!-- end-user-doc -->
101 * @generated
102 */
103 public static final List<Category_of_Health_and_Pension_Insurances> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
104
105 /**
106 * Returns the '<em><b>Category of Health and Pension Insurances</b></em>' literal with the specified literal value.
107 * <!-- begin-user-doc -->
108 * <!-- end-user-doc -->
109 * @param literal the literal.
110 * @return the matching enumerator or <code>null</code>.
111 * @generated
112 */
113 public static Category_of_Health_and_Pension_Insurances get(String literal) {
114 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
115 Category_of_Health_and_Pension_Insurances result = VALUES_ARRAY[i];
116 if (result.toString().equals(literal)) {
117 return result;
118 }
119 }
120 return null;
121 }
122
123 /**
124 * Returns the '<em><b>Category of Health and Pension Insurances</b></em>' literal with the specified name.
125 * <!-- begin-user-doc -->
126 * <!-- end-user-doc -->
127 * @param name the name.
128 * @return the matching enumerator or <code>null</code>.
129 * @generated
130 */
131 public static Category_of_Health_and_Pension_Insurances getByName(String name) {
132 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
133 Category_of_Health_and_Pension_Insurances result = VALUES_ARRAY[i];
134 if (result.getName().equals(name)) {
135 return result;
136 }
137 }
138 return null;
139 }
140
141 /**
142 * Returns the '<em><b>Category of Health and Pension Insurances</b></em>' literal with the specified integer value.
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @param value the integer value.
146 * @return the matching enumerator or <code>null</code>.
147 * @generated
148 */
149 public static Category_of_Health_and_Pension_Insurances get(int value) {
150 switch (value) {
151 case MANDATORY_HEALTH_AND_PENSION_INSURANCE_VALUE: return MANDATORY_HEALTH_AND_PENSION_INSURANCE;
152 case ADDITIONAL_EMPLOYERS_PENSION_INSURANCE_VALUE: return ADDITIONAL_EMPLOYERS_PENSION_INSURANCE;
153 case CONTINUED_HEALTH_AND_PENSION_INSURANCE_VALUE: return CONTINUED_HEALTH_AND_PENSION_INSURANCE;
154 }
155 return null;
156 }
157
158 /**
159 * <!-- begin-user-doc -->
160 * <!-- end-user-doc -->
161 * @generated
162 */
163 private final int value;
164
165 /**
166 * <!-- begin-user-doc -->
167 * <!-- end-user-doc -->
168 * @generated
169 */
170 private final String name;
171
172 /**
173 * <!-- begin-user-doc -->
174 * <!-- end-user-doc -->
175 * @generated
176 */
177 private final String literal;
178
179 /**
180 * Only this class can construct instances.
181 * <!-- begin-user-doc -->
182 * <!-- end-user-doc -->
183 * @generated
184 */
185 private Category_of_Health_and_Pension_Insurances(int value, String name, String literal) {
186 this.value = value;
187 this.name = name;
188 this.literal = literal;
189 }
190
191 /**
192 * <!-- begin-user-doc -->
193 * <!-- end-user-doc -->
194 * @generated
195 */
196 @Override
197 public int getValue() {
198 return value;
199 }
200
201 /**
202 * <!-- begin-user-doc -->
203 * <!-- end-user-doc -->
204 * @generated
205 */
206 @Override
207 public String getName() {
208 return name;
209 }
210
211 /**
212 * <!-- begin-user-doc -->
213 * <!-- end-user-doc -->
214 * @generated
215 */
216 @Override
217 public String getLiteral() {
218 return literal;
219 }
220
221 /**
222 * Returns the literal value of the enumerator, which is its string representation.
223 * <!-- begin-user-doc -->
224 * <!-- end-user-doc -->
225 * @generated
226 */
227 @Override
228 public String toString() {
229 return literal;
230 }
231
232} //Category_of_Health_and_Pension_Insurances
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Category_of_Permanent_Expense.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Category_of_Permanent_Expense.java
new file mode 100644
index 00000000..8eabeaf7
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Category_of_Permanent_Expense.java
@@ -0,0 +1,209 @@
1/**
2 */
3package TaxationWithRoot;
4
5import java.util.Arrays;
6import java.util.Collections;
7import java.util.List;
8
9import org.eclipse.emf.common.util.Enumerator;
10
11/**
12 * <!-- begin-user-doc -->
13 * A representation of the literals of the enumeration '<em><b>Category of Permanent Expense</b></em>',
14 * and utility methods for working with them.
15 * <!-- end-user-doc -->
16 * @see TaxationWithRoot.TaxationWithRootPackage#getCategory_of_Permanent_Expense()
17 * @model
18 * @generated
19 */
20public enum Category_of_Permanent_Expense implements Enumerator {
21 /**
22 * The '<em><b>MISCELLANEOUS DEBT</b></em>' literal object.
23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc -->
25 * @see #MISCELLANEOUS_DEBT_VALUE
26 * @generated
27 * @ordered
28 */
29 MISCELLANEOUS_DEBT(0, "MISCELLANEOUS_DEBT", "MISCELLANEOUS_DEBT"),
30
31 /**
32 * The '<em><b>ALIMONY</b></em>' literal object.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @see #ALIMONY_VALUE
36 * @generated
37 * @ordered
38 */
39 ALIMONY(1, "ALIMONY", "ALIMONY");
40
41 /**
42 * The '<em><b>MISCELLANEOUS DEBT</b></em>' literal value.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #MISCELLANEOUS_DEBT
46 * @model
47 * @generated
48 * @ordered
49 */
50 public static final int MISCELLANEOUS_DEBT_VALUE = 0;
51
52 /**
53 * The '<em><b>ALIMONY</b></em>' literal value.
54 * <!-- begin-user-doc -->
55 * <!-- end-user-doc -->
56 * @see #ALIMONY
57 * @model
58 * @generated
59 * @ordered
60 */
61 public static final int ALIMONY_VALUE = 1;
62
63 /**
64 * An array of all the '<em><b>Category of Permanent Expense</b></em>' enumerators.
65 * <!-- begin-user-doc -->
66 * <!-- end-user-doc -->
67 * @generated
68 */
69 private static final Category_of_Permanent_Expense[] VALUES_ARRAY =
70 new Category_of_Permanent_Expense[] {
71 MISCELLANEOUS_DEBT,
72 ALIMONY,
73 };
74
75 /**
76 * A public read-only list of all the '<em><b>Category of Permanent Expense</b></em>' enumerators.
77 * <!-- begin-user-doc -->
78 * <!-- end-user-doc -->
79 * @generated
80 */
81 public static final List<Category_of_Permanent_Expense> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
82
83 /**
84 * Returns the '<em><b>Category of Permanent Expense</b></em>' literal with the specified literal value.
85 * <!-- begin-user-doc -->
86 * <!-- end-user-doc -->
87 * @param literal the literal.
88 * @return the matching enumerator or <code>null</code>.
89 * @generated
90 */
91 public static Category_of_Permanent_Expense get(String literal) {
92 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
93 Category_of_Permanent_Expense result = VALUES_ARRAY[i];
94 if (result.toString().equals(literal)) {
95 return result;
96 }
97 }
98 return null;
99 }
100
101 /**
102 * Returns the '<em><b>Category of Permanent Expense</b></em>' literal with the specified name.
103 * <!-- begin-user-doc -->
104 * <!-- end-user-doc -->
105 * @param name the name.
106 * @return the matching enumerator or <code>null</code>.
107 * @generated
108 */
109 public static Category_of_Permanent_Expense getByName(String name) {
110 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
111 Category_of_Permanent_Expense result = VALUES_ARRAY[i];
112 if (result.getName().equals(name)) {
113 return result;
114 }
115 }
116 return null;
117 }
118
119 /**
120 * Returns the '<em><b>Category of Permanent Expense</b></em>' literal with the specified integer value.
121 * <!-- begin-user-doc -->
122 * <!-- end-user-doc -->
123 * @param value the integer value.
124 * @return the matching enumerator or <code>null</code>.
125 * @generated
126 */
127 public static Category_of_Permanent_Expense get(int value) {
128 switch (value) {
129 case MISCELLANEOUS_DEBT_VALUE: return MISCELLANEOUS_DEBT;
130 case ALIMONY_VALUE: return ALIMONY;
131 }
132 return null;
133 }
134
135 /**
136 * <!-- begin-user-doc -->
137 * <!-- end-user-doc -->
138 * @generated
139 */
140 private final int value;
141
142 /**
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @generated
146 */
147 private final String name;
148
149 /**
150 * <!-- begin-user-doc -->
151 * <!-- end-user-doc -->
152 * @generated
153 */
154 private final String literal;
155
156 /**
157 * Only this class can construct instances.
158 * <!-- begin-user-doc -->
159 * <!-- end-user-doc -->
160 * @generated
161 */
162 private Category_of_Permanent_Expense(int value, String name, String literal) {
163 this.value = value;
164 this.name = name;
165 this.literal = literal;
166 }
167
168 /**
169 * <!-- begin-user-doc -->
170 * <!-- end-user-doc -->
171 * @generated
172 */
173 @Override
174 public int getValue() {
175 return value;
176 }
177
178 /**
179 * <!-- begin-user-doc -->
180 * <!-- end-user-doc -->
181 * @generated
182 */
183 @Override
184 public String getName() {
185 return name;
186 }
187
188 /**
189 * <!-- begin-user-doc -->
190 * <!-- end-user-doc -->
191 * @generated
192 */
193 @Override
194 public String getLiteral() {
195 return literal;
196 }
197
198 /**
199 * Returns the literal value of the enumerator, which is its string representation.
200 * <!-- begin-user-doc -->
201 * <!-- end-user-doc -->
202 * @generated
203 */
204 @Override
205 public String toString() {
206 return literal;
207 }
208
209} //Category_of_Permanent_Expense
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Category_of_Private_Insurance_and_Plan.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Category_of_Private_Insurance_and_Plan.java
new file mode 100644
index 00000000..fa3ddd8f
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Category_of_Private_Insurance_and_Plan.java
@@ -0,0 +1,278 @@
1/**
2 */
3package TaxationWithRoot;
4
5import java.util.Arrays;
6import java.util.Collections;
7import java.util.List;
8
9import org.eclipse.emf.common.util.Enumerator;
10
11/**
12 * <!-- begin-user-doc -->
13 * A representation of the literals of the enumeration '<em><b>Category of Private Insurance and Plan</b></em>',
14 * and utility methods for working with them.
15 * <!-- end-user-doc -->
16 * @see TaxationWithRoot.TaxationWithRootPackage#getCategory_of_Private_Insurance_and_Plan()
17 * @model
18 * @generated
19 */
20public enum Category_of_Private_Insurance_and_Plan implements Enumerator {
21 /**
22 * The '<em><b>PRIVATE INSURANCE</b></em>' literal object.
23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc -->
25 * @see #PRIVATE_INSURANCE_VALUE
26 * @generated
27 * @ordered
28 */
29 PRIVATE_INSURANCE(0, "PRIVATE_INSURANCE", "PRIVATE_INSURANCE"),
30
31 /**
32 * The '<em><b>PRIVATE LIFE INSURANCE</b></em>' literal object.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @see #PRIVATE_LIFE_INSURANCE_VALUE
36 * @generated
37 * @ordered
38 */
39 PRIVATE_LIFE_INSURANCE(1, "PRIVATE_LIFE_INSURANCE", "PRIVATE_LIFE_INSURANCE"),
40
41 /**
42 * The '<em><b>COMPANY MEMBERS PRIVATE INSURANCE</b></em>' literal object.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #COMPANY_MEMBERS_PRIVATE_INSURANCE_VALUE
46 * @generated
47 * @ordered
48 */
49 COMPANY_MEMBERS_PRIVATE_INSURANCE(2, "COMPANY_MEMBERS_PRIVATE_INSURANCE", "COMPANY_MEMBERS_PRIVATE_INSURANCE"),
50
51 /**
52 * The '<em><b>HOUSING SAVING PLAN</b></em>' literal object.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #HOUSING_SAVING_PLAN_VALUE
56 * @generated
57 * @ordered
58 */
59 HOUSING_SAVING_PLAN(3, "HOUSING_SAVING_PLAN", "HOUSING_SAVING_PLAN"),
60
61 /**
62 * The '<em><b>OLD AGE PENSION PLAN</b></em>' literal object.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @see #OLD_AGE_PENSION_PLAN_VALUE
66 * @generated
67 * @ordered
68 */
69 OLD_AGE_PENSION_PLAN(4, "OLD_AGE_PENSION_PLAN", "OLD_AGE_PENSION_PLAN");
70
71 /**
72 * The '<em><b>PRIVATE INSURANCE</b></em>' literal value.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @see #PRIVATE_INSURANCE
76 * @model
77 * @generated
78 * @ordered
79 */
80 public static final int PRIVATE_INSURANCE_VALUE = 0;
81
82 /**
83 * The '<em><b>PRIVATE LIFE INSURANCE</b></em>' literal value.
84 * <!-- begin-user-doc -->
85 * <!-- end-user-doc -->
86 * @see #PRIVATE_LIFE_INSURANCE
87 * @model
88 * @generated
89 * @ordered
90 */
91 public static final int PRIVATE_LIFE_INSURANCE_VALUE = 1;
92
93 /**
94 * The '<em><b>COMPANY MEMBERS PRIVATE INSURANCE</b></em>' literal value.
95 * <!-- begin-user-doc -->
96 * <!-- end-user-doc -->
97 * @see #COMPANY_MEMBERS_PRIVATE_INSURANCE
98 * @model
99 * @generated
100 * @ordered
101 */
102 public static final int COMPANY_MEMBERS_PRIVATE_INSURANCE_VALUE = 2;
103
104 /**
105 * The '<em><b>HOUSING SAVING PLAN</b></em>' literal value.
106 * <!-- begin-user-doc -->
107 * <!-- end-user-doc -->
108 * @see #HOUSING_SAVING_PLAN
109 * @model
110 * @generated
111 * @ordered
112 */
113 public static final int HOUSING_SAVING_PLAN_VALUE = 3;
114
115 /**
116 * The '<em><b>OLD AGE PENSION PLAN</b></em>' literal value.
117 * <!-- begin-user-doc -->
118 * <!-- end-user-doc -->
119 * @see #OLD_AGE_PENSION_PLAN
120 * @model
121 * @generated
122 * @ordered
123 */
124 public static final int OLD_AGE_PENSION_PLAN_VALUE = 4;
125
126 /**
127 * An array of all the '<em><b>Category of Private Insurance and Plan</b></em>' enumerators.
128 * <!-- begin-user-doc -->
129 * <!-- end-user-doc -->
130 * @generated
131 */
132 private static final Category_of_Private_Insurance_and_Plan[] VALUES_ARRAY =
133 new Category_of_Private_Insurance_and_Plan[] {
134 PRIVATE_INSURANCE,
135 PRIVATE_LIFE_INSURANCE,
136 COMPANY_MEMBERS_PRIVATE_INSURANCE,
137 HOUSING_SAVING_PLAN,
138 OLD_AGE_PENSION_PLAN,
139 };
140
141 /**
142 * A public read-only list of all the '<em><b>Category of Private Insurance and Plan</b></em>' enumerators.
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @generated
146 */
147 public static final List<Category_of_Private_Insurance_and_Plan> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
148
149 /**
150 * Returns the '<em><b>Category of Private Insurance and Plan</b></em>' literal with the specified literal value.
151 * <!-- begin-user-doc -->
152 * <!-- end-user-doc -->
153 * @param literal the literal.
154 * @return the matching enumerator or <code>null</code>.
155 * @generated
156 */
157 public static Category_of_Private_Insurance_and_Plan get(String literal) {
158 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
159 Category_of_Private_Insurance_and_Plan result = VALUES_ARRAY[i];
160 if (result.toString().equals(literal)) {
161 return result;
162 }
163 }
164 return null;
165 }
166
167 /**
168 * Returns the '<em><b>Category of Private Insurance and Plan</b></em>' literal with the specified name.
169 * <!-- begin-user-doc -->
170 * <!-- end-user-doc -->
171 * @param name the name.
172 * @return the matching enumerator or <code>null</code>.
173 * @generated
174 */
175 public static Category_of_Private_Insurance_and_Plan getByName(String name) {
176 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
177 Category_of_Private_Insurance_and_Plan result = VALUES_ARRAY[i];
178 if (result.getName().equals(name)) {
179 return result;
180 }
181 }
182 return null;
183 }
184
185 /**
186 * Returns the '<em><b>Category of Private Insurance and Plan</b></em>' literal with the specified integer value.
187 * <!-- begin-user-doc -->
188 * <!-- end-user-doc -->
189 * @param value the integer value.
190 * @return the matching enumerator or <code>null</code>.
191 * @generated
192 */
193 public static Category_of_Private_Insurance_and_Plan get(int value) {
194 switch (value) {
195 case PRIVATE_INSURANCE_VALUE: return PRIVATE_INSURANCE;
196 case PRIVATE_LIFE_INSURANCE_VALUE: return PRIVATE_LIFE_INSURANCE;
197 case COMPANY_MEMBERS_PRIVATE_INSURANCE_VALUE: return COMPANY_MEMBERS_PRIVATE_INSURANCE;
198 case HOUSING_SAVING_PLAN_VALUE: return HOUSING_SAVING_PLAN;
199 case OLD_AGE_PENSION_PLAN_VALUE: return OLD_AGE_PENSION_PLAN;
200 }
201 return null;
202 }
203
204 /**
205 * <!-- begin-user-doc -->
206 * <!-- end-user-doc -->
207 * @generated
208 */
209 private final int value;
210
211 /**
212 * <!-- begin-user-doc -->
213 * <!-- end-user-doc -->
214 * @generated
215 */
216 private final String name;
217
218 /**
219 * <!-- begin-user-doc -->
220 * <!-- end-user-doc -->
221 * @generated
222 */
223 private final String literal;
224
225 /**
226 * Only this class can construct instances.
227 * <!-- begin-user-doc -->
228 * <!-- end-user-doc -->
229 * @generated
230 */
231 private Category_of_Private_Insurance_and_Plan(int value, String name, String literal) {
232 this.value = value;
233 this.name = name;
234 this.literal = literal;
235 }
236
237 /**
238 * <!-- begin-user-doc -->
239 * <!-- end-user-doc -->
240 * @generated
241 */
242 @Override
243 public int getValue() {
244 return value;
245 }
246
247 /**
248 * <!-- begin-user-doc -->
249 * <!-- end-user-doc -->
250 * @generated
251 */
252 @Override
253 public String getName() {
254 return name;
255 }
256
257 /**
258 * <!-- begin-user-doc -->
259 * <!-- end-user-doc -->
260 * @generated
261 */
262 @Override
263 public String getLiteral() {
264 return literal;
265 }
266
267 /**
268 * Returns the literal value of the enumerator, which is its string representation.
269 * <!-- begin-user-doc -->
270 * <!-- end-user-doc -->
271 * @generated
272 */
273 @Override
274 public String toString() {
275 return literal;
276 }
277
278} //Category_of_Private_Insurance_and_Plan
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Constants.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Constants.java
new file mode 100644
index 00000000..03298992
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Constants.java
@@ -0,0 +1,619 @@
1/**
2 */
3package TaxationWithRoot;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Constants</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link TaxationWithRoot.Constants#getMAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD <em>MAXIMUM CE RATE FOR CHILD NOT BEING PART OF HOUSEHOLD</em>}</li>
17 * <li>{@link TaxationWithRoot.Constants#getMAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE <em>MAXIMUM CE RATE FOR HOUSE CARE AND CHILD PART OF THE HOUSEHOLD CARE</em>}</li>
18 * <li>{@link TaxationWithRoot.Constants#getMINIMUM_SALARY <em>MINIMUM SALARY</em>}</li>
19 * <li>{@link TaxationWithRoot.Constants#getFLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION <em>FLAT RATE FOR EXTRA PROFESSIONAL DEDUCTION</em>}</li>
20 * <li>{@link TaxationWithRoot.Constants#getMAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS <em>MAXIMUM DEDUCTIBLE PERCENTAGE FOR DONATIONS</em>}</li>
21 * <li>{@link TaxationWithRoot.Constants#getMINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS <em>MINIMUM DEDUCTIBLE AMOUNT FOR DONATIONS</em>}</li>
22 * <li>{@link TaxationWithRoot.Constants#getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC <em>MAXIMUM DEDUCTIBLE AMOUNT FOR ADDITIONAL PENSION AND INSURANC</em>}</li>
23 * <li>{@link TaxationWithRoot.Constants#getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE <em>MAXIMUM DEDUCTIBLE AMOUNT FOR ALIMONY EXPENSE</em>}</li>
24 * <li>{@link TaxationWithRoot.Constants#getMAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION <em>MAXIMAL DISTANCE FOR TRAVEL EXPENSE DEDUCTION</em>}</li>
25 * <li>{@link TaxationWithRoot.Constants#getMAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION <em>MAXIMAL FLAT DISTANCE FOR TRAVEL EXPENSE DEDUCTION</em>}</li>
26 * <li>{@link TaxationWithRoot.Constants#getMINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION <em>MINIMAL DISTANCE FOR TRAVEL EXPENSE DEDUCTION</em>}</li>
27 * <li>{@link TaxationWithRoot.Constants#getFLAT_RATE_CIM_DAILY <em>FLAT RATE CIM DAILY</em>}</li>
28 * <li>{@link TaxationWithRoot.Constants#getFLAT_RATE_CIM_MONTHLY <em>FLAT RATE CIM MONTHLY</em>}</li>
29 * <li>{@link TaxationWithRoot.Constants#getFLAT_RATE_CIM_YEARLY <em>FLAT RATE CIM YEARLY</em>}</li>
30 * <li>{@link TaxationWithRoot.Constants#getFLAT_RATE_CIP_DAILY <em>FLAT RATE CIP DAILY</em>}</li>
31 * <li>{@link TaxationWithRoot.Constants#getFLAT_RATE_CIP_MONTHLY <em>FLAT RATE CIP MONTHLY</em>}</li>
32 * <li>{@link TaxationWithRoot.Constants#getFLAT_RATE_CIP_YEARLY <em>FLAT RATE CIP YEARLY</em>}</li>
33 * <li>{@link TaxationWithRoot.Constants#getFLAT_RATE_CIS_DAILY <em>FLAT RATE CIS DAILY</em>}</li>
34 * <li>{@link TaxationWithRoot.Constants#getFLAT_RATE_CIS_MONTHLY <em>FLAT RATE CIS MONTHLY</em>}</li>
35 * <li>{@link TaxationWithRoot.Constants#getFLAT_RATE_CIS_YEARLY <em>FLAT RATE CIS YEARLY</em>}</li>
36 * <li>{@link TaxationWithRoot.Constants#getFLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT <em>FLAT RATE FOR TRAVEL EXPENSE PER UNIT</em>}</li>
37 * <li>{@link TaxationWithRoot.Constants#getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS <em>MAXIMUM DEDUCTIBLE AMOUNT FOR DS</em>}</li>
38 * <li>{@link TaxationWithRoot.Constants#getFLAT_RATE_FOR_MISCELLANEOUS_EXPENSE <em>FLAT RATE FOR MISCELLANEOUS EXPENSE</em>}</li>
39 * <li>{@link TaxationWithRoot.Constants#getDISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE <em>DISABILITY FLAT RATE FOR MISCELLANEOUS EXPENSE</em>}</li>
40 * <li>{@link TaxationWithRoot.Constants#getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE <em>MAXIMUM DEDUCTIBLE AMOUNT FOR ADDITIONAL PENSION AND INSURANCE</em>}</li>
41 * </ul>
42 *
43 * @see TaxationWithRoot.TaxationWithRootPackage#getConstants()
44 * @model abstract="true"
45 * @generated
46 */
47public interface Constants extends EObject {
48 /**
49 * Returns the value of the '<em><b>MAXIMUM CE RATE FOR CHILD NOT BEING PART OF HOUSEHOLD</b></em>' attribute.
50 * The default value is <code>"3480.0"</code>.
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @return the value of the '<em>MAXIMUM CE RATE FOR CHILD NOT BEING PART OF HOUSEHOLD</em>' attribute.
54 * @see #setMAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD(double)
55 * @see TaxationWithRoot.TaxationWithRootPackage#getConstants_MAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD()
56 * @model default="3480.0" required="true"
57 * @generated
58 */
59 double getMAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD();
60
61 /**
62 * Sets the value of the '{@link TaxationWithRoot.Constants#getMAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD <em>MAXIMUM CE RATE FOR CHILD NOT BEING PART OF HOUSEHOLD</em>}' attribute.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @param value the new value of the '<em>MAXIMUM CE RATE FOR CHILD NOT BEING PART OF HOUSEHOLD</em>' attribute.
66 * @see #getMAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD()
67 * @generated
68 */
69 void setMAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD(double value);
70
71 /**
72 * Returns the value of the '<em><b>MAXIMUM CE RATE FOR HOUSE CARE AND CHILD PART OF THE HOUSEHOLD CARE</b></em>' attribute.
73 * The default value is <code>"3600.0"</code>.
74 * <!-- begin-user-doc -->
75 * <!-- end-user-doc -->
76 * @return the value of the '<em>MAXIMUM CE RATE FOR HOUSE CARE AND CHILD PART OF THE HOUSEHOLD CARE</em>' attribute.
77 * @see #setMAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE(double)
78 * @see TaxationWithRoot.TaxationWithRootPackage#getConstants_MAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE()
79 * @model default="3600.0" required="true"
80 * @generated
81 */
82 double getMAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE();
83
84 /**
85 * Sets the value of the '{@link TaxationWithRoot.Constants#getMAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE <em>MAXIMUM CE RATE FOR HOUSE CARE AND CHILD PART OF THE HOUSEHOLD CARE</em>}' attribute.
86 * <!-- begin-user-doc -->
87 * <!-- end-user-doc -->
88 * @param value the new value of the '<em>MAXIMUM CE RATE FOR HOUSE CARE AND CHILD PART OF THE HOUSEHOLD CARE</em>' attribute.
89 * @see #getMAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE()
90 * @generated
91 */
92 void setMAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE(double value);
93
94 /**
95 * Returns the value of the '<em><b>MINIMUM SALARY</b></em>' attribute.
96 * The default value is <code>"1500.0"</code>.
97 * <!-- begin-user-doc -->
98 * <!-- end-user-doc -->
99 * @return the value of the '<em>MINIMUM SALARY</em>' attribute.
100 * @see #setMINIMUM_SALARY(double)
101 * @see TaxationWithRoot.TaxationWithRootPackage#getConstants_MINIMUM_SALARY()
102 * @model default="1500.0" required="true"
103 * @generated
104 */
105 double getMINIMUM_SALARY();
106
107 /**
108 * Sets the value of the '{@link TaxationWithRoot.Constants#getMINIMUM_SALARY <em>MINIMUM SALARY</em>}' attribute.
109 * <!-- begin-user-doc -->
110 * <!-- end-user-doc -->
111 * @param value the new value of the '<em>MINIMUM SALARY</em>' attribute.
112 * @see #getMINIMUM_SALARY()
113 * @generated
114 */
115 void setMINIMUM_SALARY(double value);
116
117 /**
118 * Returns the value of the '<em><b>FLAT RATE FOR EXTRA PROFESSIONAL DEDUCTION</b></em>' attribute.
119 * The default value is <code>"4500.0"</code>.
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @return the value of the '<em>FLAT RATE FOR EXTRA PROFESSIONAL DEDUCTION</em>' attribute.
123 * @see #setFLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION(double)
124 * @see TaxationWithRoot.TaxationWithRootPackage#getConstants_FLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION()
125 * @model default="4500.0" required="true"
126 * @generated
127 */
128 double getFLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION();
129
130 /**
131 * Sets the value of the '{@link TaxationWithRoot.Constants#getFLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION <em>FLAT RATE FOR EXTRA PROFESSIONAL DEDUCTION</em>}' attribute.
132 * <!-- begin-user-doc -->
133 * <!-- end-user-doc -->
134 * @param value the new value of the '<em>FLAT RATE FOR EXTRA PROFESSIONAL DEDUCTION</em>' attribute.
135 * @see #getFLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION()
136 * @generated
137 */
138 void setFLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION(double value);
139
140 /**
141 * Returns the value of the '<em><b>MAXIMUM DEDUCTIBLE PERCENTAGE FOR DONATIONS</b></em>' attribute.
142 * The default value is <code>"20.0"</code>.
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @return the value of the '<em>MAXIMUM DEDUCTIBLE PERCENTAGE FOR DONATIONS</em>' attribute.
146 * @see #setMAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS(double)
147 * @see TaxationWithRoot.TaxationWithRootPackage#getConstants_MAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS()
148 * @model default="20.0" required="true"
149 * @generated
150 */
151 double getMAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS();
152
153 /**
154 * Sets the value of the '{@link TaxationWithRoot.Constants#getMAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS <em>MAXIMUM DEDUCTIBLE PERCENTAGE FOR DONATIONS</em>}' attribute.
155 * <!-- begin-user-doc -->
156 * <!-- end-user-doc -->
157 * @param value the new value of the '<em>MAXIMUM DEDUCTIBLE PERCENTAGE FOR DONATIONS</em>' attribute.
158 * @see #getMAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS()
159 * @generated
160 */
161 void setMAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS(double value);
162
163 /**
164 * Returns the value of the '<em><b>MINIMUM DEDUCTIBLE AMOUNT FOR DONATIONS</b></em>' attribute.
165 * The default value is <code>"120.0"</code>.
166 * <!-- begin-user-doc -->
167 * <!-- end-user-doc -->
168 * @return the value of the '<em>MINIMUM DEDUCTIBLE AMOUNT FOR DONATIONS</em>' attribute.
169 * @see #setMINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS(double)
170 * @see TaxationWithRoot.TaxationWithRootPackage#getConstants_MINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS()
171 * @model default="120.0" required="true"
172 * @generated
173 */
174 double getMINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS();
175
176 /**
177 * Sets the value of the '{@link TaxationWithRoot.Constants#getMINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS <em>MINIMUM DEDUCTIBLE AMOUNT FOR DONATIONS</em>}' attribute.
178 * <!-- begin-user-doc -->
179 * <!-- end-user-doc -->
180 * @param value the new value of the '<em>MINIMUM DEDUCTIBLE AMOUNT FOR DONATIONS</em>' attribute.
181 * @see #getMINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS()
182 * @generated
183 */
184 void setMINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS(double value);
185
186 /**
187 * Returns the value of the '<em><b>MAXIMUM DEDUCTIBLE AMOUNT FOR ADDITIONAL PENSION AND INSURANC</b></em>' attribute.
188 * The default value is <code>"0.0"</code>.
189 * <!-- begin-user-doc -->
190 * <!-- end-user-doc -->
191 * @return the value of the '<em>MAXIMUM DEDUCTIBLE AMOUNT FOR ADDITIONAL PENSION AND INSURANC</em>' attribute.
192 * @see #setMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC(double)
193 * @see TaxationWithRoot.TaxationWithRootPackage#getConstants_MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC()
194 * @model default="0.0" required="true"
195 * @generated
196 */
197 double getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC();
198
199 /**
200 * Sets the value of the '{@link TaxationWithRoot.Constants#getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC <em>MAXIMUM DEDUCTIBLE AMOUNT FOR ADDITIONAL PENSION AND INSURANC</em>}' attribute.
201 * <!-- begin-user-doc -->
202 * <!-- end-user-doc -->
203 * @param value the new value of the '<em>MAXIMUM DEDUCTIBLE AMOUNT FOR ADDITIONAL PENSION AND INSURANC</em>' attribute.
204 * @see #getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC()
205 * @generated
206 */
207 void setMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC(double value);
208
209 /**
210 * Returns the value of the '<em><b>MAXIMUM DEDUCTIBLE AMOUNT FOR ALIMONY EXPENSE</b></em>' attribute.
211 * The default value is <code>"24000.0"</code>.
212 * <!-- begin-user-doc -->
213 * <!-- end-user-doc -->
214 * @return the value of the '<em>MAXIMUM DEDUCTIBLE AMOUNT FOR ALIMONY EXPENSE</em>' attribute.
215 * @see #setMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE(double)
216 * @see TaxationWithRoot.TaxationWithRootPackage#getConstants_MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE()
217 * @model default="24000.0" required="true"
218 * @generated
219 */
220 double getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE();
221
222 /**
223 * Sets the value of the '{@link TaxationWithRoot.Constants#getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE <em>MAXIMUM DEDUCTIBLE AMOUNT FOR ALIMONY EXPENSE</em>}' attribute.
224 * <!-- begin-user-doc -->
225 * <!-- end-user-doc -->
226 * @param value the new value of the '<em>MAXIMUM DEDUCTIBLE AMOUNT FOR ALIMONY EXPENSE</em>' attribute.
227 * @see #getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE()
228 * @generated
229 */
230 void setMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE(double value);
231
232 /**
233 * Returns the value of the '<em><b>MAXIMAL DISTANCE FOR TRAVEL EXPENSE DEDUCTION</b></em>' attribute.
234 * The default value is <code>"99.0"</code>.
235 * <!-- begin-user-doc -->
236 * <!-- end-user-doc -->
237 * @return the value of the '<em>MAXIMAL DISTANCE FOR TRAVEL EXPENSE DEDUCTION</em>' attribute.
238 * @see #setMAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION(double)
239 * @see TaxationWithRoot.TaxationWithRootPackage#getConstants_MAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION()
240 * @model default="99.0" required="true"
241 * @generated
242 */
243 double getMAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION();
244
245 /**
246 * Sets the value of the '{@link TaxationWithRoot.Constants#getMAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION <em>MAXIMAL DISTANCE FOR TRAVEL EXPENSE DEDUCTION</em>}' attribute.
247 * <!-- begin-user-doc -->
248 * <!-- end-user-doc -->
249 * @param value the new value of the '<em>MAXIMAL DISTANCE FOR TRAVEL EXPENSE DEDUCTION</em>' attribute.
250 * @see #getMAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION()
251 * @generated
252 */
253 void setMAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION(double value);
254
255 /**
256 * Returns the value of the '<em><b>MAXIMAL FLAT DISTANCE FOR TRAVEL EXPENSE DEDUCTION</b></em>' attribute.
257 * The default value is <code>"30.0"</code>.
258 * <!-- begin-user-doc -->
259 * <!-- end-user-doc -->
260 * @return the value of the '<em>MAXIMAL FLAT DISTANCE FOR TRAVEL EXPENSE DEDUCTION</em>' attribute.
261 * @see #setMAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION(double)
262 * @see TaxationWithRoot.TaxationWithRootPackage#getConstants_MAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION()
263 * @model default="30.0" required="true"
264 * @generated
265 */
266 double getMAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION();
267
268 /**
269 * Sets the value of the '{@link TaxationWithRoot.Constants#getMAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION <em>MAXIMAL FLAT DISTANCE FOR TRAVEL EXPENSE DEDUCTION</em>}' attribute.
270 * <!-- begin-user-doc -->
271 * <!-- end-user-doc -->
272 * @param value the new value of the '<em>MAXIMAL FLAT DISTANCE FOR TRAVEL EXPENSE DEDUCTION</em>' attribute.
273 * @see #getMAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION()
274 * @generated
275 */
276 void setMAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION(double value);
277
278 /**
279 * Returns the value of the '<em><b>MINIMAL DISTANCE FOR TRAVEL EXPENSE DEDUCTION</b></em>' attribute.
280 * The default value is <code>"4.0"</code>.
281 * <!-- begin-user-doc -->
282 * <!-- end-user-doc -->
283 * @return the value of the '<em>MINIMAL DISTANCE FOR TRAVEL EXPENSE DEDUCTION</em>' attribute.
284 * @see #setMINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION(double)
285 * @see TaxationWithRoot.TaxationWithRootPackage#getConstants_MINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION()
286 * @model default="4.0" required="true"
287 * @generated
288 */
289 double getMINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION();
290
291 /**
292 * Sets the value of the '{@link TaxationWithRoot.Constants#getMINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION <em>MINIMAL DISTANCE FOR TRAVEL EXPENSE DEDUCTION</em>}' attribute.
293 * <!-- begin-user-doc -->
294 * <!-- end-user-doc -->
295 * @param value the new value of the '<em>MINIMAL DISTANCE FOR TRAVEL EXPENSE DEDUCTION</em>' attribute.
296 * @see #getMINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION()
297 * @generated
298 */
299 void setMINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION(double value);
300
301 /**
302 * Returns the value of the '<em><b>FLAT RATE CIM DAILY</b></em>' attribute.
303 * The default value is <code>"2.0"</code>.
304 * <!-- begin-user-doc -->
305 * <!-- end-user-doc -->
306 * @return the value of the '<em>FLAT RATE CIM DAILY</em>' attribute.
307 * @see #setFLAT_RATE_CIM_DAILY(double)
308 * @see TaxationWithRoot.TaxationWithRootPackage#getConstants_FLAT_RATE_CIM_DAILY()
309 * @model default="2.0" required="true"
310 * @generated
311 */
312 double getFLAT_RATE_CIM_DAILY();
313
314 /**
315 * Sets the value of the '{@link TaxationWithRoot.Constants#getFLAT_RATE_CIM_DAILY <em>FLAT RATE CIM DAILY</em>}' attribute.
316 * <!-- begin-user-doc -->
317 * <!-- end-user-doc -->
318 * @param value the new value of the '<em>FLAT RATE CIM DAILY</em>' attribute.
319 * @see #getFLAT_RATE_CIM_DAILY()
320 * @generated
321 */
322 void setFLAT_RATE_CIM_DAILY(double value);
323
324 /**
325 * Returns the value of the '<em><b>FLAT RATE CIM MONTHLY</b></em>' attribute.
326 * The default value is <code>"62.0"</code>.
327 * <!-- begin-user-doc -->
328 * <!-- end-user-doc -->
329 * @return the value of the '<em>FLAT RATE CIM MONTHLY</em>' attribute.
330 * @see #setFLAT_RATE_CIM_MONTHLY(double)
331 * @see TaxationWithRoot.TaxationWithRootPackage#getConstants_FLAT_RATE_CIM_MONTHLY()
332 * @model default="62.0" required="true"
333 * @generated
334 */
335 double getFLAT_RATE_CIM_MONTHLY();
336
337 /**
338 * Sets the value of the '{@link TaxationWithRoot.Constants#getFLAT_RATE_CIM_MONTHLY <em>FLAT RATE CIM MONTHLY</em>}' attribute.
339 * <!-- begin-user-doc -->
340 * <!-- end-user-doc -->
341 * @param value the new value of the '<em>FLAT RATE CIM MONTHLY</em>' attribute.
342 * @see #getFLAT_RATE_CIM_MONTHLY()
343 * @generated
344 */
345 void setFLAT_RATE_CIM_MONTHLY(double value);
346
347 /**
348 * Returns the value of the '<em><b>FLAT RATE CIM YEARLY</b></em>' attribute.
349 * The default value is <code>"750.0"</code>.
350 * <!-- begin-user-doc -->
351 * <!-- end-user-doc -->
352 * @return the value of the '<em>FLAT RATE CIM YEARLY</em>' attribute.
353 * @see #setFLAT_RATE_CIM_YEARLY(double)
354 * @see TaxationWithRoot.TaxationWithRootPackage#getConstants_FLAT_RATE_CIM_YEARLY()
355 * @model default="750.0" required="true"
356 * @generated
357 */
358 double getFLAT_RATE_CIM_YEARLY();
359
360 /**
361 * Sets the value of the '{@link TaxationWithRoot.Constants#getFLAT_RATE_CIM_YEARLY <em>FLAT RATE CIM YEARLY</em>}' attribute.
362 * <!-- begin-user-doc -->
363 * <!-- end-user-doc -->
364 * @param value the new value of the '<em>FLAT RATE CIM YEARLY</em>' attribute.
365 * @see #getFLAT_RATE_CIM_YEARLY()
366 * @generated
367 */
368 void setFLAT_RATE_CIM_YEARLY(double value);
369
370 /**
371 * Returns the value of the '<em><b>FLAT RATE CIP DAILY</b></em>' attribute.
372 * The default value is <code>"1.0"</code>.
373 * <!-- begin-user-doc -->
374 * <!-- end-user-doc -->
375 * @return the value of the '<em>FLAT RATE CIP DAILY</em>' attribute.
376 * @see #setFLAT_RATE_CIP_DAILY(double)
377 * @see TaxationWithRoot.TaxationWithRootPackage#getConstants_FLAT_RATE_CIP_DAILY()
378 * @model default="1.0" required="true"
379 * @generated
380 */
381 double getFLAT_RATE_CIP_DAILY();
382
383 /**
384 * Sets the value of the '{@link TaxationWithRoot.Constants#getFLAT_RATE_CIP_DAILY <em>FLAT RATE CIP DAILY</em>}' attribute.
385 * <!-- begin-user-doc -->
386 * <!-- end-user-doc -->
387 * @param value the new value of the '<em>FLAT RATE CIP DAILY</em>' attribute.
388 * @see #getFLAT_RATE_CIP_DAILY()
389 * @generated
390 */
391 void setFLAT_RATE_CIP_DAILY(double value);
392
393 /**
394 * Returns the value of the '<em><b>FLAT RATE CIP MONTHLY</b></em>' attribute.
395 * The default value is <code>"25.0"</code>.
396 * <!-- begin-user-doc -->
397 * <!-- end-user-doc -->
398 * @return the value of the '<em>FLAT RATE CIP MONTHLY</em>' attribute.
399 * @see #setFLAT_RATE_CIP_MONTHLY(double)
400 * @see TaxationWithRoot.TaxationWithRootPackage#getConstants_FLAT_RATE_CIP_MONTHLY()
401 * @model default="25.0" required="true"
402 * @generated
403 */
404 double getFLAT_RATE_CIP_MONTHLY();
405
406 /**
407 * Sets the value of the '{@link TaxationWithRoot.Constants#getFLAT_RATE_CIP_MONTHLY <em>FLAT RATE CIP MONTHLY</em>}' attribute.
408 * <!-- begin-user-doc -->
409 * <!-- end-user-doc -->
410 * @param value the new value of the '<em>FLAT RATE CIP MONTHLY</em>' attribute.
411 * @see #getFLAT_RATE_CIP_MONTHLY()
412 * @generated
413 */
414 void setFLAT_RATE_CIP_MONTHLY(double value);
415
416 /**
417 * Returns the value of the '<em><b>FLAT RATE CIP YEARLY</b></em>' attribute.
418 * The default value is <code>"30.0"</code>.
419 * <!-- begin-user-doc -->
420 * <!-- end-user-doc -->
421 * @return the value of the '<em>FLAT RATE CIP YEARLY</em>' attribute.
422 * @see #setFLAT_RATE_CIP_YEARLY(double)
423 * @see TaxationWithRoot.TaxationWithRootPackage#getConstants_FLAT_RATE_CIP_YEARLY()
424 * @model default="30.0" required="true"
425 * @generated
426 */
427 double getFLAT_RATE_CIP_YEARLY();
428
429 /**
430 * Sets the value of the '{@link TaxationWithRoot.Constants#getFLAT_RATE_CIP_YEARLY <em>FLAT RATE CIP YEARLY</em>}' attribute.
431 * <!-- begin-user-doc -->
432 * <!-- end-user-doc -->
433 * @param value the new value of the '<em>FLAT RATE CIP YEARLY</em>' attribute.
434 * @see #getFLAT_RATE_CIP_YEARLY()
435 * @generated
436 */
437 void setFLAT_RATE_CIP_YEARLY(double value);
438
439 /**
440 * Returns the value of the '<em><b>FLAT RATE CIS DAILY</b></em>' attribute.
441 * The default value is <code>"1.0"</code>.
442 * <!-- begin-user-doc -->
443 * <!-- end-user-doc -->
444 * @return the value of the '<em>FLAT RATE CIS DAILY</em>' attribute.
445 * @see #setFLAT_RATE_CIS_DAILY(double)
446 * @see TaxationWithRoot.TaxationWithRootPackage#getConstants_FLAT_RATE_CIS_DAILY()
447 * @model default="1.0" required="true"
448 * @generated
449 */
450 double getFLAT_RATE_CIS_DAILY();
451
452 /**
453 * Sets the value of the '{@link TaxationWithRoot.Constants#getFLAT_RATE_CIS_DAILY <em>FLAT RATE CIS DAILY</em>}' attribute.
454 * <!-- begin-user-doc -->
455 * <!-- end-user-doc -->
456 * @param value the new value of the '<em>FLAT RATE CIS DAILY</em>' attribute.
457 * @see #getFLAT_RATE_CIS_DAILY()
458 * @generated
459 */
460 void setFLAT_RATE_CIS_DAILY(double value);
461
462 /**
463 * Returns the value of the '<em><b>FLAT RATE CIS MONTHLY</b></em>' attribute.
464 * The default value is <code>"25.0"</code>.
465 * <!-- begin-user-doc -->
466 * <!-- end-user-doc -->
467 * @return the value of the '<em>FLAT RATE CIS MONTHLY</em>' attribute.
468 * @see #setFLAT_RATE_CIS_MONTHLY(double)
469 * @see TaxationWithRoot.TaxationWithRootPackage#getConstants_FLAT_RATE_CIS_MONTHLY()
470 * @model default="25.0" required="true"
471 * @generated
472 */
473 double getFLAT_RATE_CIS_MONTHLY();
474
475 /**
476 * Sets the value of the '{@link TaxationWithRoot.Constants#getFLAT_RATE_CIS_MONTHLY <em>FLAT RATE CIS MONTHLY</em>}' attribute.
477 * <!-- begin-user-doc -->
478 * <!-- end-user-doc -->
479 * @param value the new value of the '<em>FLAT RATE CIS MONTHLY</em>' attribute.
480 * @see #getFLAT_RATE_CIS_MONTHLY()
481 * @generated
482 */
483 void setFLAT_RATE_CIS_MONTHLY(double value);
484
485 /**
486 * Returns the value of the '<em><b>FLAT RATE CIS YEARLY</b></em>' attribute.
487 * The default value is <code>"300.0"</code>.
488 * <!-- begin-user-doc -->
489 * <!-- end-user-doc -->
490 * @return the value of the '<em>FLAT RATE CIS YEARLY</em>' attribute.
491 * @see #setFLAT_RATE_CIS_YEARLY(double)
492 * @see TaxationWithRoot.TaxationWithRootPackage#getConstants_FLAT_RATE_CIS_YEARLY()
493 * @model default="300.0" required="true"
494 * @generated
495 */
496 double getFLAT_RATE_CIS_YEARLY();
497
498 /**
499 * Sets the value of the '{@link TaxationWithRoot.Constants#getFLAT_RATE_CIS_YEARLY <em>FLAT RATE CIS YEARLY</em>}' attribute.
500 * <!-- begin-user-doc -->
501 * <!-- end-user-doc -->
502 * @param value the new value of the '<em>FLAT RATE CIS YEARLY</em>' attribute.
503 * @see #getFLAT_RATE_CIS_YEARLY()
504 * @generated
505 */
506 void setFLAT_RATE_CIS_YEARLY(double value);
507
508 /**
509 * Returns the value of the '<em><b>FLAT RATE FOR TRAVEL EXPENSE PER UNIT</b></em>' attribute.
510 * The default value is <code>"99.0"</code>.
511 * <!-- begin-user-doc -->
512 * <!-- end-user-doc -->
513 * @return the value of the '<em>FLAT RATE FOR TRAVEL EXPENSE PER UNIT</em>' attribute.
514 * @see #setFLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT(double)
515 * @see TaxationWithRoot.TaxationWithRootPackage#getConstants_FLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT()
516 * @model default="99.0" required="true"
517 * @generated
518 */
519 double getFLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT();
520
521 /**
522 * Sets the value of the '{@link TaxationWithRoot.Constants#getFLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT <em>FLAT RATE FOR TRAVEL EXPENSE PER UNIT</em>}' attribute.
523 * <!-- begin-user-doc -->
524 * <!-- end-user-doc -->
525 * @param value the new value of the '<em>FLAT RATE FOR TRAVEL EXPENSE PER UNIT</em>' attribute.
526 * @see #getFLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT()
527 * @generated
528 */
529 void setFLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT(double value);
530
531 /**
532 * Returns the value of the '<em><b>MAXIMUM DEDUCTIBLE AMOUNT FOR DS</b></em>' attribute.
533 * <!-- begin-user-doc -->
534 * <!-- end-user-doc -->
535 * @return the value of the '<em>MAXIMUM DEDUCTIBLE AMOUNT FOR DS</em>' attribute.
536 * @see #setMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS(double)
537 * @see TaxationWithRoot.TaxationWithRootPackage#getConstants_MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS()
538 * @model required="true"
539 * @generated
540 */
541 double getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS();
542
543 /**
544 * Sets the value of the '{@link TaxationWithRoot.Constants#getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS <em>MAXIMUM DEDUCTIBLE AMOUNT FOR DS</em>}' attribute.
545 * <!-- begin-user-doc -->
546 * <!-- end-user-doc -->
547 * @param value the new value of the '<em>MAXIMUM DEDUCTIBLE AMOUNT FOR DS</em>' attribute.
548 * @see #getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS()
549 * @generated
550 */
551 void setMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS(double value);
552
553 /**
554 * Returns the value of the '<em><b>FLAT RATE FOR MISCELLANEOUS EXPENSE</b></em>' attribute.
555 * <!-- begin-user-doc -->
556 * <!-- end-user-doc -->
557 * @return the value of the '<em>FLAT RATE FOR MISCELLANEOUS EXPENSE</em>' attribute.
558 * @see #setFLAT_RATE_FOR_MISCELLANEOUS_EXPENSE(double)
559 * @see TaxationWithRoot.TaxationWithRootPackage#getConstants_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE()
560 * @model required="true"
561 * @generated
562 */
563 double getFLAT_RATE_FOR_MISCELLANEOUS_EXPENSE();
564
565 /**
566 * Sets the value of the '{@link TaxationWithRoot.Constants#getFLAT_RATE_FOR_MISCELLANEOUS_EXPENSE <em>FLAT RATE FOR MISCELLANEOUS EXPENSE</em>}' attribute.
567 * <!-- begin-user-doc -->
568 * <!-- end-user-doc -->
569 * @param value the new value of the '<em>FLAT RATE FOR MISCELLANEOUS EXPENSE</em>' attribute.
570 * @see #getFLAT_RATE_FOR_MISCELLANEOUS_EXPENSE()
571 * @generated
572 */
573 void setFLAT_RATE_FOR_MISCELLANEOUS_EXPENSE(double value);
574
575 /**
576 * Returns the value of the '<em><b>DISABILITY FLAT RATE FOR MISCELLANEOUS EXPENSE</b></em>' attribute.
577 * <!-- begin-user-doc -->
578 * <!-- end-user-doc -->
579 * @return the value of the '<em>DISABILITY FLAT RATE FOR MISCELLANEOUS EXPENSE</em>' attribute.
580 * @see #setDISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE(double)
581 * @see TaxationWithRoot.TaxationWithRootPackage#getConstants_DISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE()
582 * @model required="true"
583 * @generated
584 */
585 double getDISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE();
586
587 /**
588 * Sets the value of the '{@link TaxationWithRoot.Constants#getDISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE <em>DISABILITY FLAT RATE FOR MISCELLANEOUS EXPENSE</em>}' attribute.
589 * <!-- begin-user-doc -->
590 * <!-- end-user-doc -->
591 * @param value the new value of the '<em>DISABILITY FLAT RATE FOR MISCELLANEOUS EXPENSE</em>' attribute.
592 * @see #getDISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE()
593 * @generated
594 */
595 void setDISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE(double value);
596
597 /**
598 * Returns the value of the '<em><b>MAXIMUM DEDUCTIBLE AMOUNT FOR ADDITIONAL PENSION AND INSURANCE</b></em>' attribute.
599 * <!-- begin-user-doc -->
600 * <!-- end-user-doc -->
601 * @return the value of the '<em>MAXIMUM DEDUCTIBLE AMOUNT FOR ADDITIONAL PENSION AND INSURANCE</em>' attribute.
602 * @see #setMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE(double)
603 * @see TaxationWithRoot.TaxationWithRootPackage#getConstants_MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE()
604 * @model required="true"
605 * @generated
606 */
607 double getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE();
608
609 /**
610 * Sets the value of the '{@link TaxationWithRoot.Constants#getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE <em>MAXIMUM DEDUCTIBLE AMOUNT FOR ADDITIONAL PENSION AND INSURANCE</em>}' attribute.
611 * <!-- begin-user-doc -->
612 * <!-- end-user-doc -->
613 * @param value the new value of the '<em>MAXIMUM DEDUCTIBLE AMOUNT FOR ADDITIONAL PENSION AND INSURANCE</em>' attribute.
614 * @see #getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE()
615 * @generated
616 */
617 void setMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE(double value);
618
619} // Constants
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Country.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Country.java
new file mode 100644
index 00000000..d8c066c1
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Country.java
@@ -0,0 +1,301 @@
1/**
2 */
3package TaxationWithRoot;
4
5import java.util.Arrays;
6import java.util.Collections;
7import java.util.List;
8
9import org.eclipse.emf.common.util.Enumerator;
10
11/**
12 * <!-- begin-user-doc -->
13 * A representation of the literals of the enumeration '<em><b>Country</b></em>',
14 * and utility methods for working with them.
15 * <!-- end-user-doc -->
16 * @see TaxationWithRoot.TaxationWithRootPackage#getCountry()
17 * @model
18 * @generated
19 */
20public enum Country implements Enumerator {
21 /**
22 * The '<em><b>ZZ</b></em>' literal object.
23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc -->
25 * @see #ZZ_VALUE
26 * @generated
27 * @ordered
28 */
29 ZZ(0, "ZZ", "ZZ"),
30
31 /**
32 * The '<em><b>FF</b></em>' literal object.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @see #FF_VALUE
36 * @generated
37 * @ordered
38 */
39 FF(1, "FF", "FF"),
40
41 /**
42 * The '<em><b>BB</b></em>' literal object.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #BB_VALUE
46 * @generated
47 * @ordered
48 */
49 BB(2, "BB", "BB"),
50
51 /**
52 * The '<em><b>DD</b></em>' literal object.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #DD_VALUE
56 * @generated
57 * @ordered
58 */
59 DD(3, "DD", "DD"),
60
61 /**
62 * The '<em><b>NN</b></em>' literal object.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @see #NN_VALUE
66 * @generated
67 * @ordered
68 */
69 NN(4, "NN", "NN"),
70
71 /**
72 * The '<em><b>OTHER</b></em>' literal object.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @see #OTHER_VALUE
76 * @generated
77 * @ordered
78 */
79 OTHER(5, "OTHER", "OTHER");
80
81 /**
82 * The '<em><b>ZZ</b></em>' literal value.
83 * <!-- begin-user-doc -->
84 * <!-- end-user-doc -->
85 * @see #ZZ
86 * @model
87 * @generated
88 * @ordered
89 */
90 public static final int ZZ_VALUE = 0;
91
92 /**
93 * The '<em><b>FF</b></em>' literal value.
94 * <!-- begin-user-doc -->
95 * <!-- end-user-doc -->
96 * @see #FF
97 * @model
98 * @generated
99 * @ordered
100 */
101 public static final int FF_VALUE = 1;
102
103 /**
104 * The '<em><b>BB</b></em>' literal value.
105 * <!-- begin-user-doc -->
106 * <!-- end-user-doc -->
107 * @see #BB
108 * @model
109 * @generated
110 * @ordered
111 */
112 public static final int BB_VALUE = 2;
113
114 /**
115 * The '<em><b>DD</b></em>' literal value.
116 * <!-- begin-user-doc -->
117 * <!-- end-user-doc -->
118 * @see #DD
119 * @model
120 * @generated
121 * @ordered
122 */
123 public static final int DD_VALUE = 3;
124
125 /**
126 * The '<em><b>NN</b></em>' literal value.
127 * <!-- begin-user-doc -->
128 * <!-- end-user-doc -->
129 * @see #NN
130 * @model
131 * @generated
132 * @ordered
133 */
134 public static final int NN_VALUE = 4;
135
136 /**
137 * The '<em><b>OTHER</b></em>' literal value.
138 * <!-- begin-user-doc -->
139 * <!-- end-user-doc -->
140 * @see #OTHER
141 * @model
142 * @generated
143 * @ordered
144 */
145 public static final int OTHER_VALUE = 5;
146
147 /**
148 * An array of all the '<em><b>Country</b></em>' enumerators.
149 * <!-- begin-user-doc -->
150 * <!-- end-user-doc -->
151 * @generated
152 */
153 private static final Country[] VALUES_ARRAY =
154 new Country[] {
155 ZZ,
156 FF,
157 BB,
158 DD,
159 NN,
160 OTHER,
161 };
162
163 /**
164 * A public read-only list of all the '<em><b>Country</b></em>' enumerators.
165 * <!-- begin-user-doc -->
166 * <!-- end-user-doc -->
167 * @generated
168 */
169 public static final List<Country> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
170
171 /**
172 * Returns the '<em><b>Country</b></em>' literal with the specified literal value.
173 * <!-- begin-user-doc -->
174 * <!-- end-user-doc -->
175 * @param literal the literal.
176 * @return the matching enumerator or <code>null</code>.
177 * @generated
178 */
179 public static Country get(String literal) {
180 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
181 Country result = VALUES_ARRAY[i];
182 if (result.toString().equals(literal)) {
183 return result;
184 }
185 }
186 return null;
187 }
188
189 /**
190 * Returns the '<em><b>Country</b></em>' literal with the specified name.
191 * <!-- begin-user-doc -->
192 * <!-- end-user-doc -->
193 * @param name the name.
194 * @return the matching enumerator or <code>null</code>.
195 * @generated
196 */
197 public static Country getByName(String name) {
198 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
199 Country result = VALUES_ARRAY[i];
200 if (result.getName().equals(name)) {
201 return result;
202 }
203 }
204 return null;
205 }
206
207 /**
208 * Returns the '<em><b>Country</b></em>' literal with the specified integer value.
209 * <!-- begin-user-doc -->
210 * <!-- end-user-doc -->
211 * @param value the integer value.
212 * @return the matching enumerator or <code>null</code>.
213 * @generated
214 */
215 public static Country get(int value) {
216 switch (value) {
217 case ZZ_VALUE: return ZZ;
218 case FF_VALUE: return FF;
219 case BB_VALUE: return BB;
220 case DD_VALUE: return DD;
221 case NN_VALUE: return NN;
222 case OTHER_VALUE: return OTHER;
223 }
224 return null;
225 }
226
227 /**
228 * <!-- begin-user-doc -->
229 * <!-- end-user-doc -->
230 * @generated
231 */
232 private final int value;
233
234 /**
235 * <!-- begin-user-doc -->
236 * <!-- end-user-doc -->
237 * @generated
238 */
239 private final String name;
240
241 /**
242 * <!-- begin-user-doc -->
243 * <!-- end-user-doc -->
244 * @generated
245 */
246 private final String literal;
247
248 /**
249 * Only this class can construct instances.
250 * <!-- begin-user-doc -->
251 * <!-- end-user-doc -->
252 * @generated
253 */
254 private Country(int value, String name, String literal) {
255 this.value = value;
256 this.name = name;
257 this.literal = literal;
258 }
259
260 /**
261 * <!-- begin-user-doc -->
262 * <!-- end-user-doc -->
263 * @generated
264 */
265 @Override
266 public int getValue() {
267 return value;
268 }
269
270 /**
271 * <!-- begin-user-doc -->
272 * <!-- end-user-doc -->
273 * @generated
274 */
275 @Override
276 public String getName() {
277 return name;
278 }
279
280 /**
281 * <!-- begin-user-doc -->
282 * <!-- end-user-doc -->
283 * @generated
284 */
285 @Override
286 public String getLiteral() {
287 return literal;
288 }
289
290 /**
291 * Returns the literal value of the enumerator, which is its string representation.
292 * <!-- begin-user-doc -->
293 * <!-- end-user-doc -->
294 * @generated
295 */
296 @Override
297 public String toString() {
298 return literal;
299 }
300
301} //Country
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Dependent.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Dependent.java
new file mode 100644
index 00000000..3445d08f
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Dependent.java
@@ -0,0 +1,188 @@
1/**
2 */
3package TaxationWithRoot;
4
5import org.eclipse.emf.common.util.EList;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Dependent</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link TaxationWithRoot.Dependent#getDependent_type <em>Dependent type</em>}</li>
17 * <li>{@link TaxationWithRoot.Dependent#getResponsible_person <em>Responsible person</em>}</li>
18 * <li>{@link TaxationWithRoot.Dependent#isContinued_studies <em>Continued studies</em>}</li>
19 * <li>{@link TaxationWithRoot.Dependent#getAllowances <em>Allowances</em>}</li>
20 * <li>{@link TaxationWithRoot.Dependent#getHousehold <em>Household</em>}</li>
21 * <li>{@link TaxationWithRoot.Dependent#getFrom_agent <em>From agent</em>}</li>
22 * <li>{@link TaxationWithRoot.Dependent#getExpense <em>Expense</em>}</li>
23 * </ul>
24 *
25 * @see TaxationWithRoot.TaxationWithRootPackage#getDependent()
26 * @model
27 * @generated
28 */
29public interface Dependent extends Physical_Person {
30 /**
31 * Returns the value of the '<em><b>Dependent type</b></em>' attribute.
32 * The literals are from the enumeration {@link TaxationWithRoot.Dependent_Type}.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @return the value of the '<em>Dependent type</em>' attribute.
36 * @see TaxationWithRoot.Dependent_Type
37 * @see #setDependent_type(Dependent_Type)
38 * @see TaxationWithRoot.TaxationWithRootPackage#getDependent_Dependent_type()
39 * @model required="true"
40 * @generated
41 */
42 Dependent_Type getDependent_type();
43
44 /**
45 * Sets the value of the '{@link TaxationWithRoot.Dependent#getDependent_type <em>Dependent type</em>}' attribute.
46 * <!-- begin-user-doc -->
47 * <!-- end-user-doc -->
48 * @param value the new value of the '<em>Dependent type</em>' attribute.
49 * @see TaxationWithRoot.Dependent_Type
50 * @see #getDependent_type()
51 * @generated
52 */
53 void setDependent_type(Dependent_Type value);
54
55 /**
56 * Returns the value of the '<em><b>Responsible person</b></em>' container reference.
57 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Tax_Payer#getDependents <em>Dependents</em>}'.
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @return the value of the '<em>Responsible person</em>' container reference.
61 * @see #setResponsible_person(Tax_Payer)
62 * @see TaxationWithRoot.TaxationWithRootPackage#getDependent_Responsible_person()
63 * @see TaxationWithRoot.Tax_Payer#getDependents
64 * @model opposite="dependents" transient="false"
65 * @generated
66 */
67 Tax_Payer getResponsible_person();
68
69 /**
70 * Sets the value of the '{@link TaxationWithRoot.Dependent#getResponsible_person <em>Responsible person</em>}' container reference.
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @param value the new value of the '<em>Responsible person</em>' container reference.
74 * @see #getResponsible_person()
75 * @generated
76 */
77 void setResponsible_person(Tax_Payer value);
78
79 /**
80 * Returns the value of the '<em><b>Continued studies</b></em>' attribute.
81 * The default value is <code>"false"</code>.
82 * <!-- begin-user-doc -->
83 * <!-- end-user-doc -->
84 * @return the value of the '<em>Continued studies</em>' attribute.
85 * @see #setContinued_studies(boolean)
86 * @see TaxationWithRoot.TaxationWithRootPackage#getDependent_Continued_studies()
87 * @model default="false" required="true"
88 * @generated
89 */
90 boolean isContinued_studies();
91
92 /**
93 * Sets the value of the '{@link TaxationWithRoot.Dependent#isContinued_studies <em>Continued studies</em>}' attribute.
94 * <!-- begin-user-doc -->
95 * <!-- end-user-doc -->
96 * @param value the new value of the '<em>Continued studies</em>' attribute.
97 * @see #isContinued_studies()
98 * @generated
99 */
100 void setContinued_studies(boolean value);
101
102 /**
103 * Returns the value of the '<em><b>Allowances</b></em>' containment reference.
104 * It is bidirectional and its opposite is '{@link TaxationWithRoot.External_Allowance#getPerson <em>Person</em>}'.
105 * <!-- begin-user-doc -->
106 * <!-- end-user-doc -->
107 * @return the value of the '<em>Allowances</em>' containment reference.
108 * @see #setAllowances(External_Allowance)
109 * @see TaxationWithRoot.TaxationWithRootPackage#getDependent_Allowances()
110 * @see TaxationWithRoot.External_Allowance#getPerson
111 * @model opposite="person" containment="true" ordered="false"
112 * @generated
113 */
114 External_Allowance getAllowances();
115
116 /**
117 * Sets the value of the '{@link TaxationWithRoot.Dependent#getAllowances <em>Allowances</em>}' containment reference.
118 * <!-- begin-user-doc -->
119 * <!-- end-user-doc -->
120 * @param value the new value of the '<em>Allowances</em>' containment reference.
121 * @see #getAllowances()
122 * @generated
123 */
124 void setAllowances(External_Allowance value);
125
126 /**
127 * Returns the value of the '<em><b>Household</b></em>' container reference.
128 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Household#getChildren <em>Children</em>}'.
129 * <!-- begin-user-doc -->
130 * <!-- end-user-doc -->
131 * @return the value of the '<em>Household</em>' container reference.
132 * @see #setHousehold(Household)
133 * @see TaxationWithRoot.TaxationWithRootPackage#getDependent_Household()
134 * @see TaxationWithRoot.Household#getChildren
135 * @model opposite="children" transient="false" ordered="false"
136 * @generated
137 */
138 Household getHousehold();
139
140 /**
141 * Sets the value of the '{@link TaxationWithRoot.Dependent#getHousehold <em>Household</em>}' container reference.
142 * <!-- begin-user-doc -->
143 * <!-- end-user-doc -->
144 * @param value the new value of the '<em>Household</em>' container reference.
145 * @see #getHousehold()
146 * @generated
147 */
148 void setHousehold(Household value);
149
150 /**
151 * Returns the value of the '<em><b>From agent</b></em>' reference.
152 * It is bidirectional and its opposite is '{@link TaxationWithRoot.FromAgent#getDependent <em>Dependent</em>}'.
153 * <!-- begin-user-doc -->
154 * <!-- end-user-doc -->
155 * @return the value of the '<em>From agent</em>' reference.
156 * @see #setFrom_agent(FromAgent)
157 * @see TaxationWithRoot.TaxationWithRootPackage#getDependent_From_agent()
158 * @see TaxationWithRoot.FromAgent#getDependent
159 * @model opposite="dependent" ordered="false"
160 * @generated
161 */
162 FromAgent getFrom_agent();
163
164 /**
165 * Sets the value of the '{@link TaxationWithRoot.Dependent#getFrom_agent <em>From agent</em>}' reference.
166 * <!-- begin-user-doc -->
167 * <!-- end-user-doc -->
168 * @param value the new value of the '<em>From agent</em>' reference.
169 * @see #getFrom_agent()
170 * @generated
171 */
172 void setFrom_agent(FromAgent value);
173
174 /**
175 * Returns the value of the '<em><b>Expense</b></em>' reference list.
176 * The list contents are of type {@link TaxationWithRoot.Expense}.
177 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Expense#getDependent <em>Dependent</em>}'.
178 * <!-- begin-user-doc -->
179 * <!-- end-user-doc -->
180 * @return the value of the '<em>Expense</em>' reference list.
181 * @see TaxationWithRoot.TaxationWithRootPackage#getDependent_Expense()
182 * @see TaxationWithRoot.Expense#getDependent
183 * @model opposite="dependent" ordered="false"
184 * @generated
185 */
186 EList<Expense> getExpense();
187
188} // Dependent
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Dependent_Type.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Dependent_Type.java
new file mode 100644
index 00000000..84502484
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Dependent_Type.java
@@ -0,0 +1,278 @@
1/**
2 */
3package TaxationWithRoot;
4
5import java.util.Arrays;
6import java.util.Collections;
7import java.util.List;
8
9import org.eclipse.emf.common.util.Enumerator;
10
11/**
12 * <!-- begin-user-doc -->
13 * A representation of the literals of the enumeration '<em><b>Dependent Type</b></em>',
14 * and utility methods for working with them.
15 * <!-- end-user-doc -->
16 * @see TaxationWithRoot.TaxationWithRootPackage#getDependent_Type()
17 * @model
18 * @generated
19 */
20public enum Dependent_Type implements Enumerator {
21 /**
22 * The '<em><b>CHILD</b></em>' literal object.
23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc -->
25 * @see #CHILD_VALUE
26 * @generated
27 * @ordered
28 */
29 CHILD(0, "CHILD", "CHILD"),
30
31 /**
32 * The '<em><b>SPOUSE</b></em>' literal object.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @see #SPOUSE_VALUE
36 * @generated
37 * @ordered
38 */
39 SPOUSE(1, "SPOUSE", "SPOUSE"),
40
41 /**
42 * The '<em><b>RELATIVE</b></em>' literal object.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #RELATIVE_VALUE
46 * @generated
47 * @ordered
48 */
49 RELATIVE(2, "RELATIVE", "RELATIVE"),
50
51 /**
52 * The '<em><b>OTHER FAMILY MEMBER</b></em>' literal object.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #OTHER_FAMILY_MEMBER_VALUE
56 * @generated
57 * @ordered
58 */
59 OTHER_FAMILY_MEMBER(3, "OTHER_FAMILY_MEMBER", "OTHER_FAMILY_MEMBER"),
60
61 /**
62 * The '<em><b>NOT OWN CHILD</b></em>' literal object.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @see #NOT_OWN_CHILD_VALUE
66 * @generated
67 * @ordered
68 */
69 NOT_OWN_CHILD(4, "NOT_OWN_CHILD", "NOT_OWN_CHILD");
70
71 /**
72 * The '<em><b>CHILD</b></em>' literal value.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @see #CHILD
76 * @model
77 * @generated
78 * @ordered
79 */
80 public static final int CHILD_VALUE = 0;
81
82 /**
83 * The '<em><b>SPOUSE</b></em>' literal value.
84 * <!-- begin-user-doc -->
85 * <!-- end-user-doc -->
86 * @see #SPOUSE
87 * @model
88 * @generated
89 * @ordered
90 */
91 public static final int SPOUSE_VALUE = 1;
92
93 /**
94 * The '<em><b>RELATIVE</b></em>' literal value.
95 * <!-- begin-user-doc -->
96 * <!-- end-user-doc -->
97 * @see #RELATIVE
98 * @model
99 * @generated
100 * @ordered
101 */
102 public static final int RELATIVE_VALUE = 2;
103
104 /**
105 * The '<em><b>OTHER FAMILY MEMBER</b></em>' literal value.
106 * <!-- begin-user-doc -->
107 * <!-- end-user-doc -->
108 * @see #OTHER_FAMILY_MEMBER
109 * @model
110 * @generated
111 * @ordered
112 */
113 public static final int OTHER_FAMILY_MEMBER_VALUE = 3;
114
115 /**
116 * The '<em><b>NOT OWN CHILD</b></em>' literal value.
117 * <!-- begin-user-doc -->
118 * <!-- end-user-doc -->
119 * @see #NOT_OWN_CHILD
120 * @model
121 * @generated
122 * @ordered
123 */
124 public static final int NOT_OWN_CHILD_VALUE = 4;
125
126 /**
127 * An array of all the '<em><b>Dependent Type</b></em>' enumerators.
128 * <!-- begin-user-doc -->
129 * <!-- end-user-doc -->
130 * @generated
131 */
132 private static final Dependent_Type[] VALUES_ARRAY =
133 new Dependent_Type[] {
134 CHILD,
135 SPOUSE,
136 RELATIVE,
137 OTHER_FAMILY_MEMBER,
138 NOT_OWN_CHILD,
139 };
140
141 /**
142 * A public read-only list of all the '<em><b>Dependent Type</b></em>' enumerators.
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @generated
146 */
147 public static final List<Dependent_Type> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
148
149 /**
150 * Returns the '<em><b>Dependent Type</b></em>' literal with the specified literal value.
151 * <!-- begin-user-doc -->
152 * <!-- end-user-doc -->
153 * @param literal the literal.
154 * @return the matching enumerator or <code>null</code>.
155 * @generated
156 */
157 public static Dependent_Type get(String literal) {
158 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
159 Dependent_Type result = VALUES_ARRAY[i];
160 if (result.toString().equals(literal)) {
161 return result;
162 }
163 }
164 return null;
165 }
166
167 /**
168 * Returns the '<em><b>Dependent Type</b></em>' literal with the specified name.
169 * <!-- begin-user-doc -->
170 * <!-- end-user-doc -->
171 * @param name the name.
172 * @return the matching enumerator or <code>null</code>.
173 * @generated
174 */
175 public static Dependent_Type getByName(String name) {
176 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
177 Dependent_Type result = VALUES_ARRAY[i];
178 if (result.getName().equals(name)) {
179 return result;
180 }
181 }
182 return null;
183 }
184
185 /**
186 * Returns the '<em><b>Dependent Type</b></em>' literal with the specified integer value.
187 * <!-- begin-user-doc -->
188 * <!-- end-user-doc -->
189 * @param value the integer value.
190 * @return the matching enumerator or <code>null</code>.
191 * @generated
192 */
193 public static Dependent_Type get(int value) {
194 switch (value) {
195 case CHILD_VALUE: return CHILD;
196 case SPOUSE_VALUE: return SPOUSE;
197 case RELATIVE_VALUE: return RELATIVE;
198 case OTHER_FAMILY_MEMBER_VALUE: return OTHER_FAMILY_MEMBER;
199 case NOT_OWN_CHILD_VALUE: return NOT_OWN_CHILD;
200 }
201 return null;
202 }
203
204 /**
205 * <!-- begin-user-doc -->
206 * <!-- end-user-doc -->
207 * @generated
208 */
209 private final int value;
210
211 /**
212 * <!-- begin-user-doc -->
213 * <!-- end-user-doc -->
214 * @generated
215 */
216 private final String name;
217
218 /**
219 * <!-- begin-user-doc -->
220 * <!-- end-user-doc -->
221 * @generated
222 */
223 private final String literal;
224
225 /**
226 * Only this class can construct instances.
227 * <!-- begin-user-doc -->
228 * <!-- end-user-doc -->
229 * @generated
230 */
231 private Dependent_Type(int value, String name, String literal) {
232 this.value = value;
233 this.name = name;
234 this.literal = literal;
235 }
236
237 /**
238 * <!-- begin-user-doc -->
239 * <!-- end-user-doc -->
240 * @generated
241 */
242 @Override
243 public int getValue() {
244 return value;
245 }
246
247 /**
248 * <!-- begin-user-doc -->
249 * <!-- end-user-doc -->
250 * @generated
251 */
252 @Override
253 public String getName() {
254 return name;
255 }
256
257 /**
258 * <!-- begin-user-doc -->
259 * <!-- end-user-doc -->
260 * @generated
261 */
262 @Override
263 public String getLiteral() {
264 return literal;
265 }
266
267 /**
268 * Returns the literal value of the enumerator, which is its string representation.
269 * <!-- begin-user-doc -->
270 * <!-- end-user-doc -->
271 * @generated
272 */
273 @Override
274 public String toString() {
275 return literal;
276 }
277
278} //Dependent_Type
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Disability_Types.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Disability_Types.java
new file mode 100644
index 00000000..043d49fe
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Disability_Types.java
@@ -0,0 +1,347 @@
1/**
2 */
3package TaxationWithRoot;
4
5import java.util.Arrays;
6import java.util.Collections;
7import java.util.List;
8
9import org.eclipse.emf.common.util.Enumerator;
10
11/**
12 * <!-- begin-user-doc -->
13 * A representation of the literals of the enumeration '<em><b>Disability Types</b></em>',
14 * and utility methods for working with them.
15 * <!-- end-user-doc -->
16 * @see TaxationWithRoot.TaxationWithRootPackage#getDisability_Types()
17 * @model
18 * @generated
19 */
20public enum Disability_Types implements Enumerator {
21 /**
22 * The '<em><b>Beug</b></em>' literal object.
23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc -->
25 * @see #BEUG_VALUE
26 * @generated
27 * @ordered
28 */
29 BEUG(0, "beug", "beug"),
30
31 /**
32 * The '<em><b>NONE</b></em>' literal object.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @see #NONE_VALUE
36 * @generated
37 * @ordered
38 */
39 NONE(1, "NONE", "NONE"),
40
41 /**
42 * The '<em><b>A</b></em>' literal object.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #A_VALUE
46 * @generated
47 * @ordered
48 */
49 A(2, "A", "A"),
50
51 /**
52 * The '<em><b>B</b></em>' literal object.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #B_VALUE
56 * @generated
57 * @ordered
58 */
59 B(3, "B", "B"),
60
61 /**
62 * The '<em><b>C</b></em>' literal object.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @see #C_VALUE
66 * @generated
67 * @ordered
68 */
69 C(4, "C", "C"),
70
71 /**
72 * The '<em><b>D</b></em>' literal object.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @see #D_VALUE
76 * @generated
77 * @ordered
78 */
79 D(5, "D", "D"),
80
81 /**
82 * The '<em><b>E</b></em>' literal object.
83 * <!-- begin-user-doc -->
84 * <!-- end-user-doc -->
85 * @see #E_VALUE
86 * @generated
87 * @ordered
88 */
89 E(6, "E", "E"),
90
91 /**
92 * The '<em><b>OTHER</b></em>' literal object.
93 * <!-- begin-user-doc -->
94 * <!-- end-user-doc -->
95 * @see #OTHER_VALUE
96 * @generated
97 * @ordered
98 */
99 OTHER(7, "OTHER", "OTHER");
100
101 /**
102 * The '<em><b>Beug</b></em>' literal value.
103 * <!-- begin-user-doc -->
104 * <!-- end-user-doc -->
105 * @see #BEUG
106 * @model name="beug"
107 * @generated
108 * @ordered
109 */
110 public static final int BEUG_VALUE = 0;
111
112 /**
113 * The '<em><b>NONE</b></em>' literal value.
114 * <!-- begin-user-doc -->
115 * <!-- end-user-doc -->
116 * @see #NONE
117 * @model
118 * @generated
119 * @ordered
120 */
121 public static final int NONE_VALUE = 1;
122
123 /**
124 * The '<em><b>A</b></em>' literal value.
125 * <!-- begin-user-doc -->
126 * <!-- end-user-doc -->
127 * @see #A
128 * @model
129 * @generated
130 * @ordered
131 */
132 public static final int A_VALUE = 2;
133
134 /**
135 * The '<em><b>B</b></em>' literal value.
136 * <!-- begin-user-doc -->
137 * <!-- end-user-doc -->
138 * @see #B
139 * @model
140 * @generated
141 * @ordered
142 */
143 public static final int B_VALUE = 3;
144
145 /**
146 * The '<em><b>C</b></em>' literal value.
147 * <!-- begin-user-doc -->
148 * <!-- end-user-doc -->
149 * @see #C
150 * @model
151 * @generated
152 * @ordered
153 */
154 public static final int C_VALUE = 4;
155
156 /**
157 * The '<em><b>D</b></em>' literal value.
158 * <!-- begin-user-doc -->
159 * <!-- end-user-doc -->
160 * @see #D
161 * @model
162 * @generated
163 * @ordered
164 */
165 public static final int D_VALUE = 5;
166
167 /**
168 * The '<em><b>E</b></em>' literal value.
169 * <!-- begin-user-doc -->
170 * <!-- end-user-doc -->
171 * @see #E
172 * @model
173 * @generated
174 * @ordered
175 */
176 public static final int E_VALUE = 6;
177
178 /**
179 * The '<em><b>OTHER</b></em>' literal value.
180 * <!-- begin-user-doc -->
181 * <!-- end-user-doc -->
182 * @see #OTHER
183 * @model
184 * @generated
185 * @ordered
186 */
187 public static final int OTHER_VALUE = 7;
188
189 /**
190 * An array of all the '<em><b>Disability Types</b></em>' enumerators.
191 * <!-- begin-user-doc -->
192 * <!-- end-user-doc -->
193 * @generated
194 */
195 private static final Disability_Types[] VALUES_ARRAY =
196 new Disability_Types[] {
197 BEUG,
198 NONE,
199 A,
200 B,
201 C,
202 D,
203 E,
204 OTHER,
205 };
206
207 /**
208 * A public read-only list of all the '<em><b>Disability Types</b></em>' enumerators.
209 * <!-- begin-user-doc -->
210 * <!-- end-user-doc -->
211 * @generated
212 */
213 public static final List<Disability_Types> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
214
215 /**
216 * Returns the '<em><b>Disability Types</b></em>' literal with the specified literal value.
217 * <!-- begin-user-doc -->
218 * <!-- end-user-doc -->
219 * @param literal the literal.
220 * @return the matching enumerator or <code>null</code>.
221 * @generated
222 */
223 public static Disability_Types get(String literal) {
224 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
225 Disability_Types result = VALUES_ARRAY[i];
226 if (result.toString().equals(literal)) {
227 return result;
228 }
229 }
230 return null;
231 }
232
233 /**
234 * Returns the '<em><b>Disability Types</b></em>' literal with the specified name.
235 * <!-- begin-user-doc -->
236 * <!-- end-user-doc -->
237 * @param name the name.
238 * @return the matching enumerator or <code>null</code>.
239 * @generated
240 */
241 public static Disability_Types getByName(String name) {
242 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
243 Disability_Types result = VALUES_ARRAY[i];
244 if (result.getName().equals(name)) {
245 return result;
246 }
247 }
248 return null;
249 }
250
251 /**
252 * Returns the '<em><b>Disability Types</b></em>' literal with the specified integer value.
253 * <!-- begin-user-doc -->
254 * <!-- end-user-doc -->
255 * @param value the integer value.
256 * @return the matching enumerator or <code>null</code>.
257 * @generated
258 */
259 public static Disability_Types get(int value) {
260 switch (value) {
261 case BEUG_VALUE: return BEUG;
262 case NONE_VALUE: return NONE;
263 case A_VALUE: return A;
264 case B_VALUE: return B;
265 case C_VALUE: return C;
266 case D_VALUE: return D;
267 case E_VALUE: return E;
268 case OTHER_VALUE: return OTHER;
269 }
270 return null;
271 }
272
273 /**
274 * <!-- begin-user-doc -->
275 * <!-- end-user-doc -->
276 * @generated
277 */
278 private final int value;
279
280 /**
281 * <!-- begin-user-doc -->
282 * <!-- end-user-doc -->
283 * @generated
284 */
285 private final String name;
286
287 /**
288 * <!-- begin-user-doc -->
289 * <!-- end-user-doc -->
290 * @generated
291 */
292 private final String literal;
293
294 /**
295 * Only this class can construct instances.
296 * <!-- begin-user-doc -->
297 * <!-- end-user-doc -->
298 * @generated
299 */
300 private Disability_Types(int value, String name, String literal) {
301 this.value = value;
302 this.name = name;
303 this.literal = literal;
304 }
305
306 /**
307 * <!-- begin-user-doc -->
308 * <!-- end-user-doc -->
309 * @generated
310 */
311 @Override
312 public int getValue() {
313 return value;
314 }
315
316 /**
317 * <!-- begin-user-doc -->
318 * <!-- end-user-doc -->
319 * @generated
320 */
321 @Override
322 public String getName() {
323 return name;
324 }
325
326 /**
327 * <!-- begin-user-doc -->
328 * <!-- end-user-doc -->
329 * @generated
330 */
331 @Override
332 public String getLiteral() {
333 return literal;
334 }
335
336 /**
337 * Returns the literal value of the enumerator, which is its string representation.
338 * <!-- begin-user-doc -->
339 * <!-- end-user-doc -->
340 * @generated
341 */
342 @Override
343 public String toString() {
344 return literal;
345 }
346
347} //Disability_Types
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Donation.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Donation.java
new file mode 100644
index 00000000..64adc154
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Donation.java
@@ -0,0 +1,68 @@
1/**
2 */
3package TaxationWithRoot;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Donation</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 * <p>
12 * The following features are supported:
13 * </p>
14 * <ul>
15 * <li>{@link TaxationWithRoot.Donation#getBeneficiary1 <em>Beneficiary1</em>}</li>
16 * <li>{@link TaxationWithRoot.Donation#isIs_donation_reported <em>Is donation reported</em>}</li>
17 * </ul>
18 *
19 * @see TaxationWithRoot.TaxationWithRootPackage#getDonation()
20 * @model
21 * @generated
22 */
23public interface Donation extends Special_Expense_DS {
24 /**
25 * Returns the value of the '<em><b>Beneficiary1</b></em>' attribute.
26 * <!-- begin-user-doc -->
27 * <!-- end-user-doc -->
28 * @return the value of the '<em>Beneficiary1</em>' attribute.
29 * @see #setBeneficiary1(String)
30 * @see TaxationWithRoot.TaxationWithRootPackage#getDonation_Beneficiary1()
31 * @model required="true"
32 * @generated
33 */
34 String getBeneficiary1();
35
36 /**
37 * Sets the value of the '{@link TaxationWithRoot.Donation#getBeneficiary1 <em>Beneficiary1</em>}' attribute.
38 * <!-- begin-user-doc -->
39 * <!-- end-user-doc -->
40 * @param value the new value of the '<em>Beneficiary1</em>' attribute.
41 * @see #getBeneficiary1()
42 * @generated
43 */
44 void setBeneficiary1(String value);
45
46 /**
47 * Returns the value of the '<em><b>Is donation reported</b></em>' attribute.
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @return the value of the '<em>Is donation reported</em>' attribute.
51 * @see #setIs_donation_reported(boolean)
52 * @see TaxationWithRoot.TaxationWithRootPackage#getDonation_Is_donation_reported()
53 * @model required="true"
54 * @generated
55 */
56 boolean isIs_donation_reported();
57
58 /**
59 * Sets the value of the '{@link TaxationWithRoot.Donation#isIs_donation_reported <em>Is donation reported</em>}' attribute.
60 * <!-- begin-user-doc -->
61 * <!-- end-user-doc -->
62 * @param value the new value of the '<em>Is donation reported</em>' attribute.
63 * @see #isIs_donation_reported()
64 * @generated
65 */
66 void setIs_donation_reported(boolean value);
67
68} // Donation
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Employment_Income.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Employment_Income.java
new file mode 100644
index 00000000..09b87818
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Employment_Income.java
@@ -0,0 +1,17 @@
1/**
2 */
3package TaxationWithRoot;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Employment Income</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see TaxationWithRoot.TaxationWithRootPackage#getEmployment_Income()
13 * @model
14 * @generated
15 */
16public interface Employment_Income extends Income_Type {
17} // Employment_Income
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Expense.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Expense.java
new file mode 100644
index 00000000..00f5271e
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Expense.java
@@ -0,0 +1,196 @@
1/**
2 */
3package TaxationWithRoot;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Expense</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link TaxationWithRoot.Expense#getDeclared_amount <em>Declared amount</em>}</li>
17 * <li>{@link TaxationWithRoot.Expense#getExpense_purpose <em>Expense purpose</em>}</li>
18 * <li>{@link TaxationWithRoot.Expense#getDependent <em>Dependent</em>}</li>
19 * <li>{@link TaxationWithRoot.Expense#getFrom_agent <em>From agent</em>}</li>
20 * <li>{@link TaxationWithRoot.Expense#getIncome <em>Income</em>}</li>
21 * <li>{@link TaxationWithRoot.Expense#getId4 <em>Id4</em>}</li>
22 * <li>{@link TaxationWithRoot.Expense#getBeneficiary <em>Beneficiary</em>}</li>
23 * </ul>
24 *
25 * @see TaxationWithRoot.TaxationWithRootPackage#getExpense()
26 * @model
27 * @generated
28 */
29public interface Expense extends EObject {
30 /**
31 * Returns the value of the '<em><b>Declared amount</b></em>' attribute.
32 * <!-- begin-user-doc -->
33 * <!-- end-user-doc -->
34 * @return the value of the '<em>Declared amount</em>' attribute.
35 * @see #setDeclared_amount(double)
36 * @see TaxationWithRoot.TaxationWithRootPackage#getExpense_Declared_amount()
37 * @model required="true"
38 * @generated
39 */
40 double getDeclared_amount();
41
42 /**
43 * Sets the value of the '{@link TaxationWithRoot.Expense#getDeclared_amount <em>Declared amount</em>}' attribute.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @param value the new value of the '<em>Declared amount</em>' attribute.
47 * @see #getDeclared_amount()
48 * @generated
49 */
50 void setDeclared_amount(double value);
51
52 /**
53 * Returns the value of the '<em><b>Expense purpose</b></em>' attribute.
54 * The default value is <code>"OTHER"</code>.
55 * The literals are from the enumeration {@link TaxationWithRoot.Expense_Purpose}.
56 * <!-- begin-user-doc -->
57 * <!-- end-user-doc -->
58 * @return the value of the '<em>Expense purpose</em>' attribute.
59 * @see TaxationWithRoot.Expense_Purpose
60 * @see #setExpense_purpose(Expense_Purpose)
61 * @see TaxationWithRoot.TaxationWithRootPackage#getExpense_Expense_purpose()
62 * @model default="OTHER" required="true"
63 * @generated
64 */
65 Expense_Purpose getExpense_purpose();
66
67 /**
68 * Sets the value of the '{@link TaxationWithRoot.Expense#getExpense_purpose <em>Expense purpose</em>}' attribute.
69 * <!-- begin-user-doc -->
70 * <!-- end-user-doc -->
71 * @param value the new value of the '<em>Expense purpose</em>' attribute.
72 * @see TaxationWithRoot.Expense_Purpose
73 * @see #getExpense_purpose()
74 * @generated
75 */
76 void setExpense_purpose(Expense_Purpose value);
77
78 /**
79 * Returns the value of the '<em><b>Dependent</b></em>' reference.
80 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Dependent#getExpense <em>Expense</em>}'.
81 * <!-- begin-user-doc -->
82 * <!-- end-user-doc -->
83 * @return the value of the '<em>Dependent</em>' reference.
84 * @see #setDependent(Dependent)
85 * @see TaxationWithRoot.TaxationWithRootPackage#getExpense_Dependent()
86 * @see TaxationWithRoot.Dependent#getExpense
87 * @model opposite="expense"
88 * @generated
89 */
90 Dependent getDependent();
91
92 /**
93 * Sets the value of the '{@link TaxationWithRoot.Expense#getDependent <em>Dependent</em>}' reference.
94 * <!-- begin-user-doc -->
95 * <!-- end-user-doc -->
96 * @param value the new value of the '<em>Dependent</em>' reference.
97 * @see #getDependent()
98 * @generated
99 */
100 void setDependent(Dependent value);
101
102 /**
103 * Returns the value of the '<em><b>From agent</b></em>' reference.
104 * It is bidirectional and its opposite is '{@link TaxationWithRoot.FromAgent#getExpense <em>Expense</em>}'.
105 * <!-- begin-user-doc -->
106 * <!-- end-user-doc -->
107 * @return the value of the '<em>From agent</em>' reference.
108 * @see #setFrom_agent(FromAgent)
109 * @see TaxationWithRoot.TaxationWithRootPackage#getExpense_From_agent()
110 * @see TaxationWithRoot.FromAgent#getExpense
111 * @model opposite="expense" ordered="false"
112 * @generated
113 */
114 FromAgent getFrom_agent();
115
116 /**
117 * Sets the value of the '{@link TaxationWithRoot.Expense#getFrom_agent <em>From agent</em>}' reference.
118 * <!-- begin-user-doc -->
119 * <!-- end-user-doc -->
120 * @param value the new value of the '<em>From agent</em>' reference.
121 * @see #getFrom_agent()
122 * @generated
123 */
124 void setFrom_agent(FromAgent value);
125
126 /**
127 * Returns the value of the '<em><b>Income</b></em>' container reference.
128 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Income#getExpenses <em>Expenses</em>}'.
129 * <!-- begin-user-doc -->
130 * <!-- end-user-doc -->
131 * @return the value of the '<em>Income</em>' container reference.
132 * @see #setIncome(Income)
133 * @see TaxationWithRoot.TaxationWithRootPackage#getExpense_Income()
134 * @see TaxationWithRoot.Income#getExpenses
135 * @model opposite="expenses" required="true" transient="false"
136 * @generated
137 */
138 Income getIncome();
139
140 /**
141 * Sets the value of the '{@link TaxationWithRoot.Expense#getIncome <em>Income</em>}' container reference.
142 * <!-- begin-user-doc -->
143 * <!-- end-user-doc -->
144 * @param value the new value of the '<em>Income</em>' container reference.
145 * @see #getIncome()
146 * @generated
147 */
148 void setIncome(Income value);
149
150 /**
151 * Returns the value of the '<em><b>Id4</b></em>' attribute.
152 * <!-- begin-user-doc -->
153 * <!-- end-user-doc -->
154 * @return the value of the '<em>Id4</em>' attribute.
155 * @see #setId4(String)
156 * @see TaxationWithRoot.TaxationWithRootPackage#getExpense_Id4()
157 * @model id="true" required="true" ordered="false"
158 * @generated
159 */
160 String getId4();
161
162 /**
163 * Sets the value of the '{@link TaxationWithRoot.Expense#getId4 <em>Id4</em>}' attribute.
164 * <!-- begin-user-doc -->
165 * <!-- end-user-doc -->
166 * @param value the new value of the '<em>Id4</em>' attribute.
167 * @see #getId4()
168 * @generated
169 */
170 void setId4(String value);
171
172 /**
173 * Returns the value of the '<em><b>Beneficiary</b></em>' reference.
174 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Physical_Person#getExpenses <em>Expenses</em>}'.
175 * <!-- begin-user-doc -->
176 * <!-- end-user-doc -->
177 * @return the value of the '<em>Beneficiary</em>' reference.
178 * @see #setBeneficiary(Physical_Person)
179 * @see TaxationWithRoot.TaxationWithRootPackage#getExpense_Beneficiary()
180 * @see TaxationWithRoot.Physical_Person#getExpenses
181 * @model opposite="expenses" ordered="false"
182 * @generated
183 */
184 Physical_Person getBeneficiary();
185
186 /**
187 * Sets the value of the '{@link TaxationWithRoot.Expense#getBeneficiary <em>Beneficiary</em>}' reference.
188 * <!-- begin-user-doc -->
189 * <!-- end-user-doc -->
190 * @param value the new value of the '<em>Beneficiary</em>' reference.
191 * @see #getBeneficiary()
192 * @generated
193 */
194 void setBeneficiary(Physical_Person value);
195
196} // Expense
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Expense_Purpose.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Expense_Purpose.java
new file mode 100644
index 00000000..e392c8da
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Expense_Purpose.java
@@ -0,0 +1,301 @@
1/**
2 */
3package TaxationWithRoot;
4
5import java.util.Arrays;
6import java.util.Collections;
7import java.util.List;
8
9import org.eclipse.emf.common.util.Enumerator;
10
11/**
12 * <!-- begin-user-doc -->
13 * A representation of the literals of the enumeration '<em><b>Expense Purpose</b></em>',
14 * and utility methods for working with them.
15 * <!-- end-user-doc -->
16 * @see TaxationWithRoot.TaxationWithRootPackage#getExpense_Purpose()
17 * @model
18 * @generated
19 */
20public enum Expense_Purpose implements Enumerator {
21 /**
22 * The '<em><b>HOUSE CARE</b></em>' literal object.
23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc -->
25 * @see #HOUSE_CARE_VALUE
26 * @generated
27 * @ordered
28 */
29 HOUSE_CARE(0, "HOUSE_CARE", "HOUSE_CARE"),
30
31 /**
32 * The '<em><b>CHILD CARE</b></em>' literal object.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @see #CHILD_CARE_VALUE
36 * @generated
37 * @ordered
38 */
39 CHILD_CARE(1, "CHILD_CARE", "CHILD_CARE"),
40
41 /**
42 * The '<em><b>DEPENDENCE CARE</b></em>' literal object.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #DEPENDENCE_CARE_VALUE
46 * @generated
47 * @ordered
48 */
49 DEPENDENCE_CARE(2, "DEPENDENCE_CARE", "DEPENDENCE_CARE"),
50
51 /**
52 * The '<em><b>OTHER</b></em>' literal object.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #OTHER_VALUE
56 * @generated
57 * @ordered
58 */
59 OTHER(3, "OTHER", "OTHER"),
60
61 /**
62 * The '<em><b>ALIMONY</b></em>' literal object.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @see #ALIMONY_VALUE
66 * @generated
67 * @ordered
68 */
69 ALIMONY(4, "ALIMONY", "ALIMONY"),
70
71 /**
72 * The '<em><b>RECURRENT DEPT</b></em>' literal object.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @see #RECURRENT_DEPT_VALUE
76 * @generated
77 * @ordered
78 */
79 RECURRENT_DEPT(5, "RECURRENT_DEPT", "RECURRENT_DEPT");
80
81 /**
82 * The '<em><b>HOUSE CARE</b></em>' literal value.
83 * <!-- begin-user-doc -->
84 * <!-- end-user-doc -->
85 * @see #HOUSE_CARE
86 * @model
87 * @generated
88 * @ordered
89 */
90 public static final int HOUSE_CARE_VALUE = 0;
91
92 /**
93 * The '<em><b>CHILD CARE</b></em>' literal value.
94 * <!-- begin-user-doc -->
95 * <!-- end-user-doc -->
96 * @see #CHILD_CARE
97 * @model
98 * @generated
99 * @ordered
100 */
101 public static final int CHILD_CARE_VALUE = 1;
102
103 /**
104 * The '<em><b>DEPENDENCE CARE</b></em>' literal value.
105 * <!-- begin-user-doc -->
106 * <!-- end-user-doc -->
107 * @see #DEPENDENCE_CARE
108 * @model
109 * @generated
110 * @ordered
111 */
112 public static final int DEPENDENCE_CARE_VALUE = 2;
113
114 /**
115 * The '<em><b>OTHER</b></em>' literal value.
116 * <!-- begin-user-doc -->
117 * <!-- end-user-doc -->
118 * @see #OTHER
119 * @model
120 * @generated
121 * @ordered
122 */
123 public static final int OTHER_VALUE = 3;
124
125 /**
126 * The '<em><b>ALIMONY</b></em>' literal value.
127 * <!-- begin-user-doc -->
128 * <!-- end-user-doc -->
129 * @see #ALIMONY
130 * @model
131 * @generated
132 * @ordered
133 */
134 public static final int ALIMONY_VALUE = 4;
135
136 /**
137 * The '<em><b>RECURRENT DEPT</b></em>' literal value.
138 * <!-- begin-user-doc -->
139 * <!-- end-user-doc -->
140 * @see #RECURRENT_DEPT
141 * @model
142 * @generated
143 * @ordered
144 */
145 public static final int RECURRENT_DEPT_VALUE = 5;
146
147 /**
148 * An array of all the '<em><b>Expense Purpose</b></em>' enumerators.
149 * <!-- begin-user-doc -->
150 * <!-- end-user-doc -->
151 * @generated
152 */
153 private static final Expense_Purpose[] VALUES_ARRAY =
154 new Expense_Purpose[] {
155 HOUSE_CARE,
156 CHILD_CARE,
157 DEPENDENCE_CARE,
158 OTHER,
159 ALIMONY,
160 RECURRENT_DEPT,
161 };
162
163 /**
164 * A public read-only list of all the '<em><b>Expense Purpose</b></em>' enumerators.
165 * <!-- begin-user-doc -->
166 * <!-- end-user-doc -->
167 * @generated
168 */
169 public static final List<Expense_Purpose> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
170
171 /**
172 * Returns the '<em><b>Expense Purpose</b></em>' literal with the specified literal value.
173 * <!-- begin-user-doc -->
174 * <!-- end-user-doc -->
175 * @param literal the literal.
176 * @return the matching enumerator or <code>null</code>.
177 * @generated
178 */
179 public static Expense_Purpose get(String literal) {
180 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
181 Expense_Purpose result = VALUES_ARRAY[i];
182 if (result.toString().equals(literal)) {
183 return result;
184 }
185 }
186 return null;
187 }
188
189 /**
190 * Returns the '<em><b>Expense Purpose</b></em>' literal with the specified name.
191 * <!-- begin-user-doc -->
192 * <!-- end-user-doc -->
193 * @param name the name.
194 * @return the matching enumerator or <code>null</code>.
195 * @generated
196 */
197 public static Expense_Purpose getByName(String name) {
198 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
199 Expense_Purpose result = VALUES_ARRAY[i];
200 if (result.getName().equals(name)) {
201 return result;
202 }
203 }
204 return null;
205 }
206
207 /**
208 * Returns the '<em><b>Expense Purpose</b></em>' literal with the specified integer value.
209 * <!-- begin-user-doc -->
210 * <!-- end-user-doc -->
211 * @param value the integer value.
212 * @return the matching enumerator or <code>null</code>.
213 * @generated
214 */
215 public static Expense_Purpose get(int value) {
216 switch (value) {
217 case HOUSE_CARE_VALUE: return HOUSE_CARE;
218 case CHILD_CARE_VALUE: return CHILD_CARE;
219 case DEPENDENCE_CARE_VALUE: return DEPENDENCE_CARE;
220 case OTHER_VALUE: return OTHER;
221 case ALIMONY_VALUE: return ALIMONY;
222 case RECURRENT_DEPT_VALUE: return RECURRENT_DEPT;
223 }
224 return null;
225 }
226
227 /**
228 * <!-- begin-user-doc -->
229 * <!-- end-user-doc -->
230 * @generated
231 */
232 private final int value;
233
234 /**
235 * <!-- begin-user-doc -->
236 * <!-- end-user-doc -->
237 * @generated
238 */
239 private final String name;
240
241 /**
242 * <!-- begin-user-doc -->
243 * <!-- end-user-doc -->
244 * @generated
245 */
246 private final String literal;
247
248 /**
249 * Only this class can construct instances.
250 * <!-- begin-user-doc -->
251 * <!-- end-user-doc -->
252 * @generated
253 */
254 private Expense_Purpose(int value, String name, String literal) {
255 this.value = value;
256 this.name = name;
257 this.literal = literal;
258 }
259
260 /**
261 * <!-- begin-user-doc -->
262 * <!-- end-user-doc -->
263 * @generated
264 */
265 @Override
266 public int getValue() {
267 return value;
268 }
269
270 /**
271 * <!-- begin-user-doc -->
272 * <!-- end-user-doc -->
273 * @generated
274 */
275 @Override
276 public String getName() {
277 return name;
278 }
279
280 /**
281 * <!-- begin-user-doc -->
282 * <!-- end-user-doc -->
283 * @generated
284 */
285 @Override
286 public String getLiteral() {
287 return literal;
288 }
289
290 /**
291 * Returns the literal value of the enumerator, which is its string representation.
292 * <!-- begin-user-doc -->
293 * <!-- end-user-doc -->
294 * @generated
295 */
296 @Override
297 public String toString() {
298 return literal;
299 }
300
301} //Expense_Purpose
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/External_Allowance.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/External_Allowance.java
new file mode 100644
index 00000000..1527b0f0
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/External_Allowance.java
@@ -0,0 +1,166 @@
1/**
2 */
3package TaxationWithRoot;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>External Allowance</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link TaxationWithRoot.External_Allowance#getGrantor <em>Grantor</em>}</li>
17 * <li>{@link TaxationWithRoot.External_Allowance#getStarting_year <em>Starting year</em>}</li>
18 * <li>{@link TaxationWithRoot.External_Allowance#getEnding_year <em>Ending year</em>}</li>
19 * <li>{@link TaxationWithRoot.External_Allowance#getReciver <em>Reciver</em>}</li>
20 * <li>{@link TaxationWithRoot.External_Allowance#getId5 <em>Id5</em>}</li>
21 * <li>{@link TaxationWithRoot.External_Allowance#getPerson <em>Person</em>}</li>
22 * </ul>
23 *
24 * @see TaxationWithRoot.TaxationWithRootPackage#getExternal_Allowance()
25 * @model
26 * @generated
27 */
28public interface External_Allowance extends EObject {
29 /**
30 * Returns the value of the '<em><b>Grantor</b></em>' attribute.
31 * The literals are from the enumeration {@link TaxationWithRoot.Grantor}.
32 * <!-- begin-user-doc -->
33 * <!-- end-user-doc -->
34 * @return the value of the '<em>Grantor</em>' attribute.
35 * @see TaxationWithRoot.Grantor
36 * @see #setGrantor(Grantor)
37 * @see TaxationWithRoot.TaxationWithRootPackage#getExternal_Allowance_Grantor()
38 * @model required="true"
39 * @generated
40 */
41 Grantor getGrantor();
42
43 /**
44 * Sets the value of the '{@link TaxationWithRoot.External_Allowance#getGrantor <em>Grantor</em>}' attribute.
45 * <!-- begin-user-doc -->
46 * <!-- end-user-doc -->
47 * @param value the new value of the '<em>Grantor</em>' attribute.
48 * @see TaxationWithRoot.Grantor
49 * @see #getGrantor()
50 * @generated
51 */
52 void setGrantor(Grantor value);
53
54 /**
55 * Returns the value of the '<em><b>Starting year</b></em>' attribute.
56 * <!-- begin-user-doc -->
57 * <!-- end-user-doc -->
58 * @return the value of the '<em>Starting year</em>' attribute.
59 * @see #setStarting_year(int)
60 * @see TaxationWithRoot.TaxationWithRootPackage#getExternal_Allowance_Starting_year()
61 * @model required="true" ordered="false"
62 * @generated
63 */
64 int getStarting_year();
65
66 /**
67 * Sets the value of the '{@link TaxationWithRoot.External_Allowance#getStarting_year <em>Starting year</em>}' attribute.
68 * <!-- begin-user-doc -->
69 * <!-- end-user-doc -->
70 * @param value the new value of the '<em>Starting year</em>' attribute.
71 * @see #getStarting_year()
72 * @generated
73 */
74 void setStarting_year(int value);
75
76 /**
77 * Returns the value of the '<em><b>Ending year</b></em>' attribute.
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @return the value of the '<em>Ending year</em>' attribute.
81 * @see #setEnding_year(int)
82 * @see TaxationWithRoot.TaxationWithRootPackage#getExternal_Allowance_Ending_year()
83 * @model required="true" ordered="false"
84 * @generated
85 */
86 int getEnding_year();
87
88 /**
89 * Sets the value of the '{@link TaxationWithRoot.External_Allowance#getEnding_year <em>Ending year</em>}' attribute.
90 * <!-- begin-user-doc -->
91 * <!-- end-user-doc -->
92 * @param value the new value of the '<em>Ending year</em>' attribute.
93 * @see #getEnding_year()
94 * @generated
95 */
96 void setEnding_year(int value);
97
98 /**
99 * Returns the value of the '<em><b>Reciver</b></em>' reference.
100 * <!-- begin-user-doc -->
101 * <!-- end-user-doc -->
102 * @return the value of the '<em>Reciver</em>' reference.
103 * @see #setReciver(Physical_Person)
104 * @see TaxationWithRoot.TaxationWithRootPackage#getExternal_Allowance_Reciver()
105 * @model required="true" ordered="false"
106 * @generated
107 */
108 Physical_Person getReciver();
109
110 /**
111 * Sets the value of the '{@link TaxationWithRoot.External_Allowance#getReciver <em>Reciver</em>}' reference.
112 * <!-- begin-user-doc -->
113 * <!-- end-user-doc -->
114 * @param value the new value of the '<em>Reciver</em>' reference.
115 * @see #getReciver()
116 * @generated
117 */
118 void setReciver(Physical_Person value);
119
120 /**
121 * Returns the value of the '<em><b>Id5</b></em>' attribute.
122 * <!-- begin-user-doc -->
123 * <!-- end-user-doc -->
124 * @return the value of the '<em>Id5</em>' attribute.
125 * @see #setId5(String)
126 * @see TaxationWithRoot.TaxationWithRootPackage#getExternal_Allowance_Id5()
127 * @model id="true" required="true" ordered="false"
128 * @generated
129 */
130 String getId5();
131
132 /**
133 * Sets the value of the '{@link TaxationWithRoot.External_Allowance#getId5 <em>Id5</em>}' attribute.
134 * <!-- begin-user-doc -->
135 * <!-- end-user-doc -->
136 * @param value the new value of the '<em>Id5</em>' attribute.
137 * @see #getId5()
138 * @generated
139 */
140 void setId5(String value);
141
142 /**
143 * Returns the value of the '<em><b>Person</b></em>' container reference.
144 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Dependent#getAllowances <em>Allowances</em>}'.
145 * <!-- begin-user-doc -->
146 * <!-- end-user-doc -->
147 * @return the value of the '<em>Person</em>' container reference.
148 * @see #setPerson(Dependent)
149 * @see TaxationWithRoot.TaxationWithRootPackage#getExternal_Allowance_Person()
150 * @see TaxationWithRoot.Dependent#getAllowances
151 * @model opposite="allowances" required="true" transient="false" ordered="false"
152 * @generated
153 */
154 Dependent getPerson();
155
156 /**
157 * Sets the value of the '{@link TaxationWithRoot.External_Allowance#getPerson <em>Person</em>}' container reference.
158 * <!-- begin-user-doc -->
159 * <!-- end-user-doc -->
160 * @param value the new value of the '<em>Person</em>' container reference.
161 * @see #getPerson()
162 * @generated
163 */
164 void setPerson(Dependent value);
165
166} // External_Allowance
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Extraordinary_Expense_CE.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Extraordinary_Expense_CE.java
new file mode 100644
index 00000000..288041bd
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Extraordinary_Expense_CE.java
@@ -0,0 +1,71 @@
1/**
2 */
3package TaxationWithRoot;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Extraordinary Expense CE</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 * <p>
12 * The following features are supported:
13 * </p>
14 * <ul>
15 * <li>{@link TaxationWithRoot.Extraordinary_Expense_CE#getThresholded_deduction_percentage <em>Thresholded deduction percentage</em>}</li>
16 * <li>{@link TaxationWithRoot.Extraordinary_Expense_CE#getCe_type <em>Ce type</em>}</li>
17 * </ul>
18 *
19 * @see TaxationWithRoot.TaxationWithRootPackage#getExtraordinary_Expense_CE()
20 * @model
21 * @generated
22 */
23public interface Extraordinary_Expense_CE extends Expense {
24 /**
25 * Returns the value of the '<em><b>Thresholded deduction percentage</b></em>' attribute.
26 * <!-- begin-user-doc -->
27 * <!-- end-user-doc -->
28 * @return the value of the '<em>Thresholded deduction percentage</em>' attribute.
29 * @see #setThresholded_deduction_percentage(double)
30 * @see TaxationWithRoot.TaxationWithRootPackage#getExtraordinary_Expense_CE_Thresholded_deduction_percentage()
31 * @model required="true"
32 * @generated
33 */
34 double getThresholded_deduction_percentage();
35
36 /**
37 * Sets the value of the '{@link TaxationWithRoot.Extraordinary_Expense_CE#getThresholded_deduction_percentage <em>Thresholded deduction percentage</em>}' attribute.
38 * <!-- begin-user-doc -->
39 * <!-- end-user-doc -->
40 * @param value the new value of the '<em>Thresholded deduction percentage</em>' attribute.
41 * @see #getThresholded_deduction_percentage()
42 * @generated
43 */
44 void setThresholded_deduction_percentage(double value);
45
46 /**
47 * Returns the value of the '<em><b>Ce type</b></em>' attribute.
48 * The literals are from the enumeration {@link TaxationWithRoot.CE_Type}.
49 * <!-- begin-user-doc -->
50 * <!-- end-user-doc -->
51 * @return the value of the '<em>Ce type</em>' attribute.
52 * @see TaxationWithRoot.CE_Type
53 * @see #setCe_type(CE_Type)
54 * @see TaxationWithRoot.TaxationWithRootPackage#getExtraordinary_Expense_CE_Ce_type()
55 * @model required="true"
56 * @generated
57 */
58 CE_Type getCe_type();
59
60 /**
61 * Sets the value of the '{@link TaxationWithRoot.Extraordinary_Expense_CE#getCe_type <em>Ce type</em>}' attribute.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @param value the new value of the '<em>Ce type</em>' attribute.
65 * @see TaxationWithRoot.CE_Type
66 * @see #getCe_type()
67 * @generated
68 */
69 void setCe_type(CE_Type value);
70
71} // Extraordinary_Expense_CE
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Fiscal_Address.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Fiscal_Address.java
new file mode 100644
index 00000000..a2ab90b1
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Fiscal_Address.java
@@ -0,0 +1,17 @@
1/**
2 */
3package TaxationWithRoot;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Fiscal Address</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see TaxationWithRoot.TaxationWithRootPackage#getFiscal_Address()
13 * @model
14 * @generated
15 */
16public interface Fiscal_Address extends Address {
17} // Fiscal_Address
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Foreign_Income.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Foreign_Income.java
new file mode 100644
index 00000000..1cd90a59
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Foreign_Income.java
@@ -0,0 +1,17 @@
1/**
2 */
3package TaxationWithRoot;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Foreign Income</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see TaxationWithRoot.TaxationWithRootPackage#getForeign_Income()
13 * @model
14 * @generated
15 */
16public interface Foreign_Income extends Income {
17} // Foreign_Income
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/FromAgent.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/FromAgent.java
new file mode 100644
index 00000000..e6706938
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/FromAgent.java
@@ -0,0 +1,144 @@
1/**
2 */
3package TaxationWithRoot;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>From Agent</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link TaxationWithRoot.FromAgent#getTaxPayer <em>Tax Payer</em>}</li>
17 * <li>{@link TaxationWithRoot.FromAgent#isIs_dependent_eligible_for_CE_Not_In_Houshold_Children_Care <em>Is dependent eligible for CE Not In Houshold Children Care</em>}</li>
18 * <li>{@link TaxationWithRoot.FromAgent#getExpense <em>Expense</em>}</li>
19 * <li>{@link TaxationWithRoot.FromAgent#isIs_eligible_debt <em>Is eligible debt</em>}</li>
20 * <li>{@link TaxationWithRoot.FromAgent#getDependent <em>Dependent</em>}</li>
21 * </ul>
22 *
23 * @see TaxationWithRoot.TaxationWithRootPackage#getFromAgent()
24 * @model
25 * @generated
26 */
27public interface FromAgent extends EObject {
28 /**
29 * Returns the value of the '<em><b>Tax Payer</b></em>' container reference.
30 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Tax_Payer#getFrom_agent <em>From agent</em>}'.
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @return the value of the '<em>Tax Payer</em>' container reference.
34 * @see #setTaxPayer(Tax_Payer)
35 * @see TaxationWithRoot.TaxationWithRootPackage#getFromAgent_TaxPayer()
36 * @see TaxationWithRoot.Tax_Payer#getFrom_agent
37 * @model opposite="from_agent" required="true" transient="false"
38 * @generated
39 */
40 Tax_Payer getTaxPayer();
41
42 /**
43 * Sets the value of the '{@link TaxationWithRoot.FromAgent#getTaxPayer <em>Tax Payer</em>}' container reference.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @param value the new value of the '<em>Tax Payer</em>' container reference.
47 * @see #getTaxPayer()
48 * @generated
49 */
50 void setTaxPayer(Tax_Payer value);
51
52 /**
53 * Returns the value of the '<em><b>Is dependent eligible for CE Not In Houshold Children Care</b></em>' attribute.
54 * <!-- begin-user-doc -->
55 * <!-- end-user-doc -->
56 * @return the value of the '<em>Is dependent eligible for CE Not In Houshold Children Care</em>' attribute.
57 * @see #setIs_dependent_eligible_for_CE_Not_In_Houshold_Children_Care(boolean)
58 * @see TaxationWithRoot.TaxationWithRootPackage#getFromAgent_Is_dependent_eligible_for_CE_Not_In_Houshold_Children_Care()
59 * @model required="true" ordered="false"
60 * @generated
61 */
62 boolean isIs_dependent_eligible_for_CE_Not_In_Houshold_Children_Care();
63
64 /**
65 * Sets the value of the '{@link TaxationWithRoot.FromAgent#isIs_dependent_eligible_for_CE_Not_In_Houshold_Children_Care <em>Is dependent eligible for CE Not In Houshold Children Care</em>}' attribute.
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @param value the new value of the '<em>Is dependent eligible for CE Not In Houshold Children Care</em>' attribute.
69 * @see #isIs_dependent_eligible_for_CE_Not_In_Houshold_Children_Care()
70 * @generated
71 */
72 void setIs_dependent_eligible_for_CE_Not_In_Houshold_Children_Care(boolean value);
73
74 /**
75 * Returns the value of the '<em><b>Expense</b></em>' reference.
76 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Expense#getFrom_agent <em>From agent</em>}'.
77 * <!-- begin-user-doc -->
78 * <!-- end-user-doc -->
79 * @return the value of the '<em>Expense</em>' reference.
80 * @see #setExpense(Expense)
81 * @see TaxationWithRoot.TaxationWithRootPackage#getFromAgent_Expense()
82 * @see TaxationWithRoot.Expense#getFrom_agent
83 * @model opposite="from_agent" ordered="false"
84 * @generated
85 */
86 Expense getExpense();
87
88 /**
89 * Sets the value of the '{@link TaxationWithRoot.FromAgent#getExpense <em>Expense</em>}' reference.
90 * <!-- begin-user-doc -->
91 * <!-- end-user-doc -->
92 * @param value the new value of the '<em>Expense</em>' reference.
93 * @see #getExpense()
94 * @generated
95 */
96 void setExpense(Expense value);
97
98 /**
99 * Returns the value of the '<em><b>Is eligible debt</b></em>' attribute.
100 * <!-- begin-user-doc -->
101 * <!-- end-user-doc -->
102 * @return the value of the '<em>Is eligible debt</em>' attribute.
103 * @see #setIs_eligible_debt(boolean)
104 * @see TaxationWithRoot.TaxationWithRootPackage#getFromAgent_Is_eligible_debt()
105 * @model required="true" ordered="false"
106 * @generated
107 */
108 boolean isIs_eligible_debt();
109
110 /**
111 * Sets the value of the '{@link TaxationWithRoot.FromAgent#isIs_eligible_debt <em>Is eligible debt</em>}' attribute.
112 * <!-- begin-user-doc -->
113 * <!-- end-user-doc -->
114 * @param value the new value of the '<em>Is eligible debt</em>' attribute.
115 * @see #isIs_eligible_debt()
116 * @generated
117 */
118 void setIs_eligible_debt(boolean value);
119
120 /**
121 * Returns the value of the '<em><b>Dependent</b></em>' reference.
122 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Dependent#getFrom_agent <em>From agent</em>}'.
123 * <!-- begin-user-doc -->
124 * <!-- end-user-doc -->
125 * @return the value of the '<em>Dependent</em>' reference.
126 * @see #setDependent(Dependent)
127 * @see TaxationWithRoot.TaxationWithRootPackage#getFromAgent_Dependent()
128 * @see TaxationWithRoot.Dependent#getFrom_agent
129 * @model opposite="from_agent" ordered="false"
130 * @generated
131 */
132 Dependent getDependent();
133
134 /**
135 * Sets the value of the '{@link TaxationWithRoot.FromAgent#getDependent <em>Dependent</em>}' reference.
136 * <!-- begin-user-doc -->
137 * <!-- end-user-doc -->
138 * @param value the new value of the '<em>Dependent</em>' reference.
139 * @see #getDependent()
140 * @generated
141 */
142 void setDependent(Dependent value);
143
144} // FromAgent
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/FromLaw.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/FromLaw.java
new file mode 100644
index 00000000..34c08e55
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/FromLaw.java
@@ -0,0 +1,71 @@
1/**
2 */
3package TaxationWithRoot;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>From Law</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link TaxationWithRoot.FromLaw#getId <em>Id</em>}</li>
17 * <li>{@link TaxationWithRoot.FromLaw#getTaxPayer <em>Tax Payer</em>}</li>
18 * </ul>
19 *
20 * @see TaxationWithRoot.TaxationWithRootPackage#getFromLaw()
21 * @model
22 * @generated
23 */
24public interface FromLaw extends EObject {
25 /**
26 * Returns the value of the '<em><b>Id</b></em>' attribute.
27 * <!-- begin-user-doc -->
28 * <!-- end-user-doc -->
29 * @return the value of the '<em>Id</em>' attribute.
30 * @see #setId(String)
31 * @see TaxationWithRoot.TaxationWithRootPackage#getFromLaw_Id()
32 * @model id="true" required="true" ordered="false"
33 * @generated
34 */
35 String getId();
36
37 /**
38 * Sets the value of the '{@link TaxationWithRoot.FromLaw#getId <em>Id</em>}' attribute.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @param value the new value of the '<em>Id</em>' attribute.
42 * @see #getId()
43 * @generated
44 */
45 void setId(String value);
46
47 /**
48 * Returns the value of the '<em><b>Tax Payer</b></em>' container reference.
49 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Tax_Payer#getFrom_law <em>From law</em>}'.
50 * <!-- begin-user-doc -->
51 * <!-- end-user-doc -->
52 * @return the value of the '<em>Tax Payer</em>' container reference.
53 * @see #setTaxPayer(Tax_Payer)
54 * @see TaxationWithRoot.TaxationWithRootPackage#getFromLaw_TaxPayer()
55 * @see TaxationWithRoot.Tax_Payer#getFrom_law
56 * @model opposite="from_law" required="true" transient="false"
57 * @generated
58 */
59 Tax_Payer getTaxPayer();
60
61 /**
62 * Sets the value of the '{@link TaxationWithRoot.FromLaw#getTaxPayer <em>Tax Payer</em>}' container reference.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @param value the new value of the '<em>Tax Payer</em>' container reference.
66 * @see #getTaxPayer()
67 * @generated
68 */
69 void setTaxPayer(Tax_Payer value);
70
71} // FromLaw
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Grantor.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Grantor.java
new file mode 100644
index 00000000..e5da891f
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Grantor.java
@@ -0,0 +1,301 @@
1/**
2 */
3package TaxationWithRoot;
4
5import java.util.Arrays;
6import java.util.Collections;
7import java.util.List;
8
9import org.eclipse.emf.common.util.Enumerator;
10
11/**
12 * <!-- begin-user-doc -->
13 * A representation of the literals of the enumeration '<em><b>Grantor</b></em>',
14 * and utility methods for working with them.
15 * <!-- end-user-doc -->
16 * @see TaxationWithRoot.TaxationWithRootPackage#getGrantor()
17 * @model
18 * @generated
19 */
20public enum Grantor implements Enumerator {
21 /**
22 * The '<em><b>WWW</b></em>' literal object.
23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc -->
25 * @see #WWW_VALUE
26 * @generated
27 * @ordered
28 */
29 WWW(0, "WWW", "WWW"),
30
31 /**
32 * The '<em><b>Employer</b></em>' literal object.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @see #EMPLOYER_VALUE
36 * @generated
37 * @ordered
38 */
39 EMPLOYER(1, "Employer", "Employer"),
40
41 /**
42 * The '<em><b>MMM</b></em>' literal object.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #MMM_VALUE
46 * @generated
47 * @ordered
48 */
49 MMM(2, "MMM", "MMM"),
50
51 /**
52 * The '<em><b>UUU</b></em>' literal object.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #UUU_VALUE
56 * @generated
57 * @ordered
58 */
59 UUU(3, "UUU", "UUU"),
60
61 /**
62 * The '<em><b>YYY</b></em>' literal object.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @see #YYY_VALUE
66 * @generated
67 * @ordered
68 */
69 YYY(4, "YYY", "YYY"),
70
71 /**
72 * The '<em><b>OOO</b></em>' literal object.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @see #OOO_VALUE
76 * @generated
77 * @ordered
78 */
79 OOO(5, "OOO", "OOO");
80
81 /**
82 * The '<em><b>WWW</b></em>' literal value.
83 * <!-- begin-user-doc -->
84 * <!-- end-user-doc -->
85 * @see #WWW
86 * @model
87 * @generated
88 * @ordered
89 */
90 public static final int WWW_VALUE = 0;
91
92 /**
93 * The '<em><b>Employer</b></em>' literal value.
94 * <!-- begin-user-doc -->
95 * <!-- end-user-doc -->
96 * @see #EMPLOYER
97 * @model name="Employer"
98 * @generated
99 * @ordered
100 */
101 public static final int EMPLOYER_VALUE = 1;
102
103 /**
104 * The '<em><b>MMM</b></em>' literal value.
105 * <!-- begin-user-doc -->
106 * <!-- end-user-doc -->
107 * @see #MMM
108 * @model
109 * @generated
110 * @ordered
111 */
112 public static final int MMM_VALUE = 2;
113
114 /**
115 * The '<em><b>UUU</b></em>' literal value.
116 * <!-- begin-user-doc -->
117 * <!-- end-user-doc -->
118 * @see #UUU
119 * @model
120 * @generated
121 * @ordered
122 */
123 public static final int UUU_VALUE = 3;
124
125 /**
126 * The '<em><b>YYY</b></em>' literal value.
127 * <!-- begin-user-doc -->
128 * <!-- end-user-doc -->
129 * @see #YYY
130 * @model
131 * @generated
132 * @ordered
133 */
134 public static final int YYY_VALUE = 4;
135
136 /**
137 * The '<em><b>OOO</b></em>' literal value.
138 * <!-- begin-user-doc -->
139 * <!-- end-user-doc -->
140 * @see #OOO
141 * @model
142 * @generated
143 * @ordered
144 */
145 public static final int OOO_VALUE = 5;
146
147 /**
148 * An array of all the '<em><b>Grantor</b></em>' enumerators.
149 * <!-- begin-user-doc -->
150 * <!-- end-user-doc -->
151 * @generated
152 */
153 private static final Grantor[] VALUES_ARRAY =
154 new Grantor[] {
155 WWW,
156 EMPLOYER,
157 MMM,
158 UUU,
159 YYY,
160 OOO,
161 };
162
163 /**
164 * A public read-only list of all the '<em><b>Grantor</b></em>' enumerators.
165 * <!-- begin-user-doc -->
166 * <!-- end-user-doc -->
167 * @generated
168 */
169 public static final List<Grantor> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
170
171 /**
172 * Returns the '<em><b>Grantor</b></em>' literal with the specified literal value.
173 * <!-- begin-user-doc -->
174 * <!-- end-user-doc -->
175 * @param literal the literal.
176 * @return the matching enumerator or <code>null</code>.
177 * @generated
178 */
179 public static Grantor get(String literal) {
180 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
181 Grantor result = VALUES_ARRAY[i];
182 if (result.toString().equals(literal)) {
183 return result;
184 }
185 }
186 return null;
187 }
188
189 /**
190 * Returns the '<em><b>Grantor</b></em>' literal with the specified name.
191 * <!-- begin-user-doc -->
192 * <!-- end-user-doc -->
193 * @param name the name.
194 * @return the matching enumerator or <code>null</code>.
195 * @generated
196 */
197 public static Grantor getByName(String name) {
198 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
199 Grantor result = VALUES_ARRAY[i];
200 if (result.getName().equals(name)) {
201 return result;
202 }
203 }
204 return null;
205 }
206
207 /**
208 * Returns the '<em><b>Grantor</b></em>' literal with the specified integer value.
209 * <!-- begin-user-doc -->
210 * <!-- end-user-doc -->
211 * @param value the integer value.
212 * @return the matching enumerator or <code>null</code>.
213 * @generated
214 */
215 public static Grantor get(int value) {
216 switch (value) {
217 case WWW_VALUE: return WWW;
218 case EMPLOYER_VALUE: return EMPLOYER;
219 case MMM_VALUE: return MMM;
220 case UUU_VALUE: return UUU;
221 case YYY_VALUE: return YYY;
222 case OOO_VALUE: return OOO;
223 }
224 return null;
225 }
226
227 /**
228 * <!-- begin-user-doc -->
229 * <!-- end-user-doc -->
230 * @generated
231 */
232 private final int value;
233
234 /**
235 * <!-- begin-user-doc -->
236 * <!-- end-user-doc -->
237 * @generated
238 */
239 private final String name;
240
241 /**
242 * <!-- begin-user-doc -->
243 * <!-- end-user-doc -->
244 * @generated
245 */
246 private final String literal;
247
248 /**
249 * Only this class can construct instances.
250 * <!-- begin-user-doc -->
251 * <!-- end-user-doc -->
252 * @generated
253 */
254 private Grantor(int value, String name, String literal) {
255 this.value = value;
256 this.name = name;
257 this.literal = literal;
258 }
259
260 /**
261 * <!-- begin-user-doc -->
262 * <!-- end-user-doc -->
263 * @generated
264 */
265 @Override
266 public int getValue() {
267 return value;
268 }
269
270 /**
271 * <!-- begin-user-doc -->
272 * <!-- end-user-doc -->
273 * @generated
274 */
275 @Override
276 public String getName() {
277 return name;
278 }
279
280 /**
281 * <!-- begin-user-doc -->
282 * <!-- end-user-doc -->
283 * @generated
284 */
285 @Override
286 public String getLiteral() {
287 return literal;
288 }
289
290 /**
291 * Returns the literal value of the enumerator, which is its string representation.
292 * <!-- begin-user-doc -->
293 * <!-- end-user-doc -->
294 * @generated
295 */
296 @Override
297 public String toString() {
298 return literal;
299 }
300
301} //Grantor
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Habitual_Address.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Habitual_Address.java
new file mode 100644
index 00000000..5cd30ec1
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Habitual_Address.java
@@ -0,0 +1,17 @@
1/**
2 */
3package TaxationWithRoot;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Habitual Address</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see TaxationWithRoot.TaxationWithRootPackage#getHabitual_Address()
13 * @model
14 * @generated
15 */
16public interface Habitual_Address extends Address {
17} // Habitual_Address
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Health_and_Pension_Insurance.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Health_and_Pension_Insurance.java
new file mode 100644
index 00000000..03e4b1ce
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Health_and_Pension_Insurance.java
@@ -0,0 +1,72 @@
1/**
2 */
3package TaxationWithRoot;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Health and Pension Insurance</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 * <p>
12 * The following features are supported:
13 * </p>
14 * <ul>
15 * <li>{@link TaxationWithRoot.Health_and_Pension_Insurance#getCategory <em>Category</em>}</li>
16 * <li>{@link TaxationWithRoot.Health_and_Pension_Insurance#isIs_related_to_additional_salary <em>Is related to additional salary</em>}</li>
17 * </ul>
18 *
19 * @see TaxationWithRoot.TaxationWithRootPackage#getHealth_and_Pension_Insurance()
20 * @model
21 * @generated
22 */
23public interface Health_and_Pension_Insurance extends Special_Expense_DS {
24 /**
25 * Returns the value of the '<em><b>Category</b></em>' attribute.
26 * The literals are from the enumeration {@link TaxationWithRoot.Category_of_Health_and_Pension_Insurances}.
27 * <!-- begin-user-doc -->
28 * <!-- end-user-doc -->
29 * @return the value of the '<em>Category</em>' attribute.
30 * @see TaxationWithRoot.Category_of_Health_and_Pension_Insurances
31 * @see #setCategory(Category_of_Health_and_Pension_Insurances)
32 * @see TaxationWithRoot.TaxationWithRootPackage#getHealth_and_Pension_Insurance_Category()
33 * @model required="true"
34 * @generated
35 */
36 Category_of_Health_and_Pension_Insurances getCategory();
37
38 /**
39 * Sets the value of the '{@link TaxationWithRoot.Health_and_Pension_Insurance#getCategory <em>Category</em>}' attribute.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @param value the new value of the '<em>Category</em>' attribute.
43 * @see TaxationWithRoot.Category_of_Health_and_Pension_Insurances
44 * @see #getCategory()
45 * @generated
46 */
47 void setCategory(Category_of_Health_and_Pension_Insurances value);
48
49 /**
50 * Returns the value of the '<em><b>Is related to additional salary</b></em>' attribute.
51 * The default value is <code>"false"</code>.
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @return the value of the '<em>Is related to additional salary</em>' attribute.
55 * @see #setIs_related_to_additional_salary(boolean)
56 * @see TaxationWithRoot.TaxationWithRootPackage#getHealth_and_Pension_Insurance_Is_related_to_additional_salary()
57 * @model default="false" required="true"
58 * @generated
59 */
60 boolean isIs_related_to_additional_salary();
61
62 /**
63 * Sets the value of the '{@link TaxationWithRoot.Health_and_Pension_Insurance#isIs_related_to_additional_salary <em>Is related to additional salary</em>}' attribute.
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @param value the new value of the '<em>Is related to additional salary</em>' attribute.
67 * @see #isIs_related_to_additional_salary()
68 * @generated
69 */
70 void setIs_related_to_additional_salary(boolean value);
71
72} // Health_and_Pension_Insurance
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Household.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Household.java
new file mode 100644
index 00000000..49eedc03
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Household.java
@@ -0,0 +1,86 @@
1/**
2 */
3package TaxationWithRoot;
4
5import org.eclipse.emf.common.util.EList;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Household</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link TaxationWithRoot.Household#getParents <em>Parents</em>}</li>
17 * <li>{@link TaxationWithRoot.Household#getId1 <em>Id1</em>}</li>
18 * <li>{@link TaxationWithRoot.Household#getChildren <em>Children</em>}</li>
19 * </ul>
20 *
21 * @see TaxationWithRoot.TaxationWithRootPackage#getHousehold()
22 * @model
23 * @generated
24 */
25public interface Household extends Tax_Case {
26 /**
27 * Returns the value of the '<em><b>Parents</b></em>' containment reference.
28 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Legal_Union_Record#getHousehold <em>Household</em>}'.
29 * <!-- begin-user-doc -->
30 * <!-- end-user-doc -->
31 * @return the value of the '<em>Parents</em>' containment reference.
32 * @see #setParents(Legal_Union_Record)
33 * @see TaxationWithRoot.TaxationWithRootPackage#getHousehold_Parents()
34 * @see TaxationWithRoot.Legal_Union_Record#getHousehold
35 * @model opposite="household" containment="true" required="true" ordered="false"
36 * @generated
37 */
38 Legal_Union_Record getParents();
39
40 /**
41 * Sets the value of the '{@link TaxationWithRoot.Household#getParents <em>Parents</em>}' containment reference.
42 * <!-- begin-user-doc -->
43 * <!-- end-user-doc -->
44 * @param value the new value of the '<em>Parents</em>' containment reference.
45 * @see #getParents()
46 * @generated
47 */
48 void setParents(Legal_Union_Record value);
49
50 /**
51 * Returns the value of the '<em><b>Id1</b></em>' attribute.
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @return the value of the '<em>Id1</em>' attribute.
55 * @see #setId1(String)
56 * @see TaxationWithRoot.TaxationWithRootPackage#getHousehold_Id1()
57 * @model id="true" required="true" ordered="false"
58 * @generated
59 */
60 String getId1();
61
62 /**
63 * Sets the value of the '{@link TaxationWithRoot.Household#getId1 <em>Id1</em>}' attribute.
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @param value the new value of the '<em>Id1</em>' attribute.
67 * @see #getId1()
68 * @generated
69 */
70 void setId1(String value);
71
72 /**
73 * Returns the value of the '<em><b>Children</b></em>' containment reference list.
74 * The list contents are of type {@link TaxationWithRoot.Dependent}.
75 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Dependent#getHousehold <em>Household</em>}'.
76 * <!-- begin-user-doc -->
77 * <!-- end-user-doc -->
78 * @return the value of the '<em>Children</em>' containment reference list.
79 * @see TaxationWithRoot.TaxationWithRootPackage#getHousehold_Children()
80 * @see TaxationWithRoot.Dependent#getHousehold
81 * @model opposite="household" containment="true" ordered="false"
82 * @generated
83 */
84 EList<Dependent> getChildren();
85
86} // Household
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Income.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Income.java
new file mode 100644
index 00000000..b3720e37
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Income.java
@@ -0,0 +1,200 @@
1/**
2 */
3package TaxationWithRoot;
4
5import org.eclipse.emf.common.util.EList;
6
7import org.eclipse.emf.ecore.EObject;
8
9/**
10 * <!-- begin-user-doc -->
11 * A representation of the model object '<em><b>Income</b></em>'.
12 * <!-- end-user-doc -->
13 *
14 * <p>
15 * The following features are supported:
16 * </p>
17 * <ul>
18 * <li>{@link TaxationWithRoot.Income#getIncome_amount <em>Income amount</em>}</li>
19 * <li>{@link TaxationWithRoot.Income#getIncome_type <em>Income type</em>}</li>
20 * <li>{@link TaxationWithRoot.Income#getTax_card <em>Tax card</em>}</li>
21 * <li>{@link TaxationWithRoot.Income#getTax_liability <em>Tax liability</em>}</li>
22 * <li>{@link TaxationWithRoot.Income#getTaxPayer <em>Tax Payer</em>}</li>
23 * <li>{@link TaxationWithRoot.Income#getDetails <em>Details</em>}</li>
24 * <li>{@link TaxationWithRoot.Income#getNum <em>Num</em>}</li>
25 * <li>{@link TaxationWithRoot.Income#getExpenses <em>Expenses</em>}</li>
26 * </ul>
27 *
28 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome()
29 * @model abstract="true"
30 * @generated
31 */
32public interface Income extends EObject {
33 /**
34 * Returns the value of the '<em><b>Income amount</b></em>' attribute.
35 * <!-- begin-user-doc -->
36 * <!-- end-user-doc -->
37 * @return the value of the '<em>Income amount</em>' attribute.
38 * @see #setIncome_amount(double)
39 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Income_amount()
40 * @model unique="false" required="true" ordered="false"
41 * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot derivation='let non_null_amounts:OrderedSet(Income_Detail)=self.details-&gt;select(det:Income_Detail|det.amount&gt;0)-&gt;asOrderedSet() in\nnon_null_amounts-&gt;collect(amount)-&gt;min()'"
42 * @generated
43 */
44 double getIncome_amount();
45
46 /**
47 * Sets the value of the '{@link TaxationWithRoot.Income#getIncome_amount <em>Income amount</em>}' attribute.
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @param value the new value of the '<em>Income amount</em>' attribute.
51 * @see #getIncome_amount()
52 * @generated
53 */
54 void setIncome_amount(double value);
55
56 /**
57 * Returns the value of the '<em><b>Income type</b></em>' containment reference.
58 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Income_Type#getIncome <em>Income</em>}'.
59 * <!-- begin-user-doc -->
60 * <!-- end-user-doc -->
61 * @return the value of the '<em>Income type</em>' containment reference.
62 * @see #setIncome_type(Income_Type)
63 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Income_type()
64 * @see TaxationWithRoot.Income_Type#getIncome
65 * @model opposite="income" containment="true" required="true"
66 * @generated
67 */
68 Income_Type getIncome_type();
69
70 /**
71 * Sets the value of the '{@link TaxationWithRoot.Income#getIncome_type <em>Income type</em>}' containment reference.
72 * <!-- begin-user-doc -->
73 * <!-- end-user-doc -->
74 * @param value the new value of the '<em>Income type</em>' containment reference.
75 * @see #getIncome_type()
76 * @generated
77 */
78 void setIncome_type(Income_Type value);
79
80 /**
81 * Returns the value of the '<em><b>Tax card</b></em>' containment reference.
82 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Tax_Card#getIncome <em>Income</em>}'.
83 * <!-- begin-user-doc -->
84 * <!-- end-user-doc -->
85 * @return the value of the '<em>Tax card</em>' containment reference.
86 * @see #setTax_card(Tax_Card)
87 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Tax_card()
88 * @see TaxationWithRoot.Tax_Card#getIncome
89 * @model opposite="income" containment="true"
90 * @generated
91 */
92 Tax_Card getTax_card();
93
94 /**
95 * Sets the value of the '{@link TaxationWithRoot.Income#getTax_card <em>Tax card</em>}' containment reference.
96 * <!-- begin-user-doc -->
97 * <!-- end-user-doc -->
98 * @param value the new value of the '<em>Tax card</em>' containment reference.
99 * @see #getTax_card()
100 * @generated
101 */
102 void setTax_card(Tax_Card value);
103
104 /**
105 * Returns the value of the '<em><b>Tax liability</b></em>' attribute.
106 * <!-- begin-user-doc -->
107 * <!-- end-user-doc -->
108 * @return the value of the '<em>Tax liability</em>' attribute.
109 * @see #setTax_liability(double)
110 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Tax_liability()
111 * @model required="true"
112 * @generated
113 */
114 double getTax_liability();
115
116 /**
117 * Sets the value of the '{@link TaxationWithRoot.Income#getTax_liability <em>Tax liability</em>}' attribute.
118 * <!-- begin-user-doc -->
119 * <!-- end-user-doc -->
120 * @param value the new value of the '<em>Tax liability</em>' attribute.
121 * @see #getTax_liability()
122 * @generated
123 */
124 void setTax_liability(double value);
125
126 /**
127 * Returns the value of the '<em><b>Tax Payer</b></em>' container reference.
128 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Tax_Payer#getIncomes <em>Incomes</em>}'.
129 * <!-- begin-user-doc -->
130 * <!-- end-user-doc -->
131 * @return the value of the '<em>Tax Payer</em>' container reference.
132 * @see #setTaxPayer(Tax_Payer)
133 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_TaxPayer()
134 * @see TaxationWithRoot.Tax_Payer#getIncomes
135 * @model opposite="incomes" required="true" transient="false" ordered="false"
136 * @generated
137 */
138 Tax_Payer getTaxPayer();
139
140 /**
141 * Sets the value of the '{@link TaxationWithRoot.Income#getTaxPayer <em>Tax Payer</em>}' container reference.
142 * <!-- begin-user-doc -->
143 * <!-- end-user-doc -->
144 * @param value the new value of the '<em>Tax Payer</em>' container reference.
145 * @see #getTaxPayer()
146 * @generated
147 */
148 void setTaxPayer(Tax_Payer value);
149
150 /**
151 * Returns the value of the '<em><b>Details</b></em>' containment reference list.
152 * The list contents are of type {@link TaxationWithRoot.Income_Detail}.
153 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Income_Detail#getIncome <em>Income</em>}'.
154 * <!-- begin-user-doc -->
155 * <!-- end-user-doc -->
156 * @return the value of the '<em>Details</em>' containment reference list.
157 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Details()
158 * @see TaxationWithRoot.Income_Detail#getIncome
159 * @model opposite="income" containment="true" lower="12" upper="12"
160 * @generated
161 */
162 EList<Income_Detail> getDetails();
163
164 /**
165 * Returns the value of the '<em><b>Num</b></em>' attribute.
166 * <!-- begin-user-doc -->
167 * <!-- end-user-doc -->
168 * @return the value of the '<em>Num</em>' attribute.
169 * @see #setNum(int)
170 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Num()
171 * @model id="true" required="true" ordered="false"
172 * @generated
173 */
174 int getNum();
175
176 /**
177 * Sets the value of the '{@link TaxationWithRoot.Income#getNum <em>Num</em>}' attribute.
178 * <!-- begin-user-doc -->
179 * <!-- end-user-doc -->
180 * @param value the new value of the '<em>Num</em>' attribute.
181 * @see #getNum()
182 * @generated
183 */
184 void setNum(int value);
185
186 /**
187 * Returns the value of the '<em><b>Expenses</b></em>' containment reference list.
188 * The list contents are of type {@link TaxationWithRoot.Expense}.
189 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Expense#getIncome <em>Income</em>}'.
190 * <!-- begin-user-doc -->
191 * <!-- end-user-doc -->
192 * @return the value of the '<em>Expenses</em>' containment reference list.
193 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Expenses()
194 * @see TaxationWithRoot.Expense#getIncome
195 * @model opposite="income" containment="true" ordered="false"
196 * @generated
197 */
198 EList<Expense> getExpenses();
199
200} // Income
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Income_Detail.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Income_Detail.java
new file mode 100644
index 00000000..d1fd9091
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Income_Detail.java
@@ -0,0 +1,186 @@
1/**
2 */
3package TaxationWithRoot;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Income Detail</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link TaxationWithRoot.Income_Detail#getAmount <em>Amount</em>}</li>
17 * <li>{@link TaxationWithRoot.Income_Detail#isIs_worked <em>Is worked</em>}</li>
18 * <li>{@link TaxationWithRoot.Income_Detail#getDistance <em>Distance</em>}</li>
19 * <li>{@link TaxationWithRoot.Income_Detail#getWorked_days <em>Worked days</em>}</li>
20 * <li>{@link TaxationWithRoot.Income_Detail#isIs_contributing_CNS <em>Is contributing CNS</em>}</li>
21 * <li>{@link TaxationWithRoot.Income_Detail#getId5 <em>Id5</em>}</li>
22 * <li>{@link TaxationWithRoot.Income_Detail#getIncome <em>Income</em>}</li>
23 * </ul>
24 *
25 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Detail()
26 * @model
27 * @generated
28 */
29public interface Income_Detail extends EObject {
30 /**
31 * Returns the value of the '<em><b>Amount</b></em>' attribute.
32 * <!-- begin-user-doc -->
33 * <!-- end-user-doc -->
34 * @return the value of the '<em>Amount</em>' attribute.
35 * @see #setAmount(double)
36 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Detail_Amount()
37 * @model required="true"
38 * @generated
39 */
40 double getAmount();
41
42 /**
43 * Sets the value of the '{@link TaxationWithRoot.Income_Detail#getAmount <em>Amount</em>}' attribute.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @param value the new value of the '<em>Amount</em>' attribute.
47 * @see #getAmount()
48 * @generated
49 */
50 void setAmount(double value);
51
52 /**
53 * Returns the value of the '<em><b>Is worked</b></em>' attribute.
54 * <!-- begin-user-doc -->
55 * <!-- end-user-doc -->
56 * @return the value of the '<em>Is worked</em>' attribute.
57 * @see #setIs_worked(boolean)
58 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Detail_Is_worked()
59 * @model required="true"
60 * @generated
61 */
62 boolean isIs_worked();
63
64 /**
65 * Sets the value of the '{@link TaxationWithRoot.Income_Detail#isIs_worked <em>Is worked</em>}' attribute.
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @param value the new value of the '<em>Is worked</em>' attribute.
69 * @see #isIs_worked()
70 * @generated
71 */
72 void setIs_worked(boolean value);
73
74 /**
75 * Returns the value of the '<em><b>Distance</b></em>' attribute.
76 * <!-- begin-user-doc -->
77 * <!-- end-user-doc -->
78 * @return the value of the '<em>Distance</em>' attribute.
79 * @see #setDistance(double)
80 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Detail_Distance()
81 * @model required="true"
82 * @generated
83 */
84 double getDistance();
85
86 /**
87 * Sets the value of the '{@link TaxationWithRoot.Income_Detail#getDistance <em>Distance</em>}' attribute.
88 * <!-- begin-user-doc -->
89 * <!-- end-user-doc -->
90 * @param value the new value of the '<em>Distance</em>' attribute.
91 * @see #getDistance()
92 * @generated
93 */
94 void setDistance(double value);
95
96 /**
97 * Returns the value of the '<em><b>Worked days</b></em>' attribute.
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @return the value of the '<em>Worked days</em>' attribute.
101 * @see #setWorked_days(int)
102 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Detail_Worked_days()
103 * @model required="true"
104 * @generated
105 */
106 int getWorked_days();
107
108 /**
109 * Sets the value of the '{@link TaxationWithRoot.Income_Detail#getWorked_days <em>Worked days</em>}' attribute.
110 * <!-- begin-user-doc -->
111 * <!-- end-user-doc -->
112 * @param value the new value of the '<em>Worked days</em>' attribute.
113 * @see #getWorked_days()
114 * @generated
115 */
116 void setWorked_days(int value);
117
118 /**
119 * Returns the value of the '<em><b>Is contributing CNS</b></em>' attribute.
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @return the value of the '<em>Is contributing CNS</em>' attribute.
123 * @see #setIs_contributing_CNS(boolean)
124 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Detail_Is_contributing_CNS()
125 * @model required="true" ordered="false"
126 * @generated
127 */
128 boolean isIs_contributing_CNS();
129
130 /**
131 * Sets the value of the '{@link TaxationWithRoot.Income_Detail#isIs_contributing_CNS <em>Is contributing CNS</em>}' attribute.
132 * <!-- begin-user-doc -->
133 * <!-- end-user-doc -->
134 * @param value the new value of the '<em>Is contributing CNS</em>' attribute.
135 * @see #isIs_contributing_CNS()
136 * @generated
137 */
138 void setIs_contributing_CNS(boolean value);
139
140 /**
141 * Returns the value of the '<em><b>Id5</b></em>' attribute.
142 * <!-- begin-user-doc -->
143 * <!-- end-user-doc -->
144 * @return the value of the '<em>Id5</em>' attribute.
145 * @see #setId5(String)
146 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Detail_Id5()
147 * @model id="true" required="true" ordered="false"
148 * @generated
149 */
150 String getId5();
151
152 /**
153 * Sets the value of the '{@link TaxationWithRoot.Income_Detail#getId5 <em>Id5</em>}' attribute.
154 * <!-- begin-user-doc -->
155 * <!-- end-user-doc -->
156 * @param value the new value of the '<em>Id5</em>' attribute.
157 * @see #getId5()
158 * @generated
159 */
160 void setId5(String value);
161
162 /**
163 * Returns the value of the '<em><b>Income</b></em>' container reference.
164 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Income#getDetails <em>Details</em>}'.
165 * <!-- begin-user-doc -->
166 * <!-- end-user-doc -->
167 * @return the value of the '<em>Income</em>' container reference.
168 * @see #setIncome(Income)
169 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Detail_Income()
170 * @see TaxationWithRoot.Income#getDetails
171 * @model opposite="details" required="true" transient="false"
172 * @generated
173 */
174 Income getIncome();
175
176 /**
177 * Sets the value of the '{@link TaxationWithRoot.Income_Detail#getIncome <em>Income</em>}' container reference.
178 * <!-- begin-user-doc -->
179 * <!-- end-user-doc -->
180 * @param value the new value of the '<em>Income</em>' container reference.
181 * @see #getIncome()
182 * @generated
183 */
184 void setIncome(Income value);
185
186} // Income_Detail
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Income_Tax.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Income_Tax.java
new file mode 100644
index 00000000..fd142d1f
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Income_Tax.java
@@ -0,0 +1,115 @@
1/**
2 */
3package TaxationWithRoot;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Income Tax</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link TaxationWithRoot.Income_Tax#getTaxPayer <em>Tax Payer</em>}</li>
17 * <li>{@link TaxationWithRoot.Income_Tax#getTax_amount <em>Tax amount</em>}</li>
18 * <li>{@link TaxationWithRoot.Income_Tax#getTax_year <em>Tax year</em>}</li>
19 * <li>{@link TaxationWithRoot.Income_Tax#getId6 <em>Id6</em>}</li>
20 * </ul>
21 *
22 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Tax()
23 * @model
24 * @generated
25 */
26public interface Income_Tax extends EObject {
27 /**
28 * Returns the value of the '<em><b>Tax Payer</b></em>' reference.
29 * <!-- begin-user-doc -->
30 * <!-- end-user-doc -->
31 * @return the value of the '<em>Tax Payer</em>' reference.
32 * @see #setTaxPayer(Tax_Payer)
33 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Tax_TaxPayer()
34 * @model required="true"
35 * @generated
36 */
37 Tax_Payer getTaxPayer();
38
39 /**
40 * Sets the value of the '{@link TaxationWithRoot.Income_Tax#getTaxPayer <em>Tax Payer</em>}' reference.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @param value the new value of the '<em>Tax Payer</em>' reference.
44 * @see #getTaxPayer()
45 * @generated
46 */
47 void setTaxPayer(Tax_Payer value);
48
49 /**
50 * Returns the value of the '<em><b>Tax amount</b></em>' attribute.
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @return the value of the '<em>Tax amount</em>' attribute.
54 * @see #setTax_amount(double)
55 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Tax_Tax_amount()
56 * @model required="true"
57 * @generated
58 */
59 double getTax_amount();
60
61 /**
62 * Sets the value of the '{@link TaxationWithRoot.Income_Tax#getTax_amount <em>Tax amount</em>}' attribute.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @param value the new value of the '<em>Tax amount</em>' attribute.
66 * @see #getTax_amount()
67 * @generated
68 */
69 void setTax_amount(double value);
70
71 /**
72 * Returns the value of the '<em><b>Tax year</b></em>' attribute.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @return the value of the '<em>Tax year</em>' attribute.
76 * @see #setTax_year(int)
77 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Tax_Tax_year()
78 * @model required="true"
79 * @generated
80 */
81 int getTax_year();
82
83 /**
84 * Sets the value of the '{@link TaxationWithRoot.Income_Tax#getTax_year <em>Tax year</em>}' attribute.
85 * <!-- begin-user-doc -->
86 * <!-- end-user-doc -->
87 * @param value the new value of the '<em>Tax year</em>' attribute.
88 * @see #getTax_year()
89 * @generated
90 */
91 void setTax_year(int value);
92
93 /**
94 * Returns the value of the '<em><b>Id6</b></em>' attribute.
95 * <!-- begin-user-doc -->
96 * <!-- end-user-doc -->
97 * @return the value of the '<em>Id6</em>' attribute.
98 * @see #setId6(String)
99 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Tax_Id6()
100 * @model id="true" required="true" ordered="false"
101 * @generated
102 */
103 String getId6();
104
105 /**
106 * Sets the value of the '{@link TaxationWithRoot.Income_Tax#getId6 <em>Id6</em>}' attribute.
107 * <!-- begin-user-doc -->
108 * <!-- end-user-doc -->
109 * @param value the new value of the '<em>Id6</em>' attribute.
110 * @see #getId6()
111 * @generated
112 */
113 void setId6(String value);
114
115} // Income_Tax
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Income_Tax_Credit.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Income_Tax_Credit.java
new file mode 100644
index 00000000..265b713a
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Income_Tax_Credit.java
@@ -0,0 +1,215 @@
1/**
2 */
3package TaxationWithRoot;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Income Tax Credit</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link TaxationWithRoot.Income_Tax_Credit#getGrantedBy <em>Granted By</em>}</li>
17 * <li>{@link TaxationWithRoot.Income_Tax_Credit#getTaxPayer <em>Tax Payer</em>}</li>
18 * <li>{@link TaxationWithRoot.Income_Tax_Credit#getTax_year <em>Tax year</em>}</li>
19 * <li>{@link TaxationWithRoot.Income_Tax_Credit#getYearly <em>Yearly</em>}</li>
20 * <li>{@link TaxationWithRoot.Income_Tax_Credit#getMonthly <em>Monthly</em>}</li>
21 * <li>{@link TaxationWithRoot.Income_Tax_Credit#getDaily <em>Daily</em>}</li>
22 * <li>{@link TaxationWithRoot.Income_Tax_Credit#getId7 <em>Id7</em>}</li>
23 * <li>{@link TaxationWithRoot.Income_Tax_Credit#getTaxation_Frame <em>Taxation Frame</em>}</li>
24 * </ul>
25 *
26 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Tax_Credit()
27 * @model
28 * @generated
29 */
30public interface Income_Tax_Credit extends EObject {
31 /**
32 * Returns the value of the '<em><b>Granted By</b></em>' attribute.
33 * The literals are from the enumeration {@link TaxationWithRoot.Grantor}.
34 * <!-- begin-user-doc -->
35 * <!-- end-user-doc -->
36 * @return the value of the '<em>Granted By</em>' attribute.
37 * @see TaxationWithRoot.Grantor
38 * @see #setGrantedBy(Grantor)
39 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Tax_Credit_GrantedBy()
40 * @model required="true"
41 * @generated
42 */
43 Grantor getGrantedBy();
44
45 /**
46 * Sets the value of the '{@link TaxationWithRoot.Income_Tax_Credit#getGrantedBy <em>Granted By</em>}' attribute.
47 * <!-- begin-user-doc -->
48 * <!-- end-user-doc -->
49 * @param value the new value of the '<em>Granted By</em>' attribute.
50 * @see TaxationWithRoot.Grantor
51 * @see #getGrantedBy()
52 * @generated
53 */
54 void setGrantedBy(Grantor value);
55
56 /**
57 * Returns the value of the '<em><b>Tax Payer</b></em>' reference.
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @return the value of the '<em>Tax Payer</em>' reference.
61 * @see #setTaxPayer(Tax_Payer)
62 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Tax_Credit_TaxPayer()
63 * @model
64 * @generated
65 */
66 Tax_Payer getTaxPayer();
67
68 /**
69 * Sets the value of the '{@link TaxationWithRoot.Income_Tax_Credit#getTaxPayer <em>Tax Payer</em>}' reference.
70 * <!-- begin-user-doc -->
71 * <!-- end-user-doc -->
72 * @param value the new value of the '<em>Tax Payer</em>' reference.
73 * @see #getTaxPayer()
74 * @generated
75 */
76 void setTaxPayer(Tax_Payer value);
77
78 /**
79 * Returns the value of the '<em><b>Tax year</b></em>' attribute.
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @return the value of the '<em>Tax year</em>' attribute.
83 * @see #setTax_year(int)
84 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Tax_Credit_Tax_year()
85 * @model required="true"
86 * @generated
87 */
88 int getTax_year();
89
90 /**
91 * Sets the value of the '{@link TaxationWithRoot.Income_Tax_Credit#getTax_year <em>Tax year</em>}' attribute.
92 * <!-- begin-user-doc -->
93 * <!-- end-user-doc -->
94 * @param value the new value of the '<em>Tax year</em>' attribute.
95 * @see #getTax_year()
96 * @generated
97 */
98 void setTax_year(int value);
99
100 /**
101 * Returns the value of the '<em><b>Yearly</b></em>' attribute.
102 * The default value is <code>"300.0"</code>.
103 * <!-- begin-user-doc -->
104 * <!-- end-user-doc -->
105 * @return the value of the '<em>Yearly</em>' attribute.
106 * @see #setYearly(double)
107 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Tax_Credit_Yearly()
108 * @model default="300.0" required="true"
109 * @generated
110 */
111 double getYearly();
112
113 /**
114 * Sets the value of the '{@link TaxationWithRoot.Income_Tax_Credit#getYearly <em>Yearly</em>}' attribute.
115 * <!-- begin-user-doc -->
116 * <!-- end-user-doc -->
117 * @param value the new value of the '<em>Yearly</em>' attribute.
118 * @see #getYearly()
119 * @generated
120 */
121 void setYearly(double value);
122
123 /**
124 * Returns the value of the '<em><b>Monthly</b></em>' attribute.
125 * The default value is <code>"25.0"</code>.
126 * <!-- begin-user-doc -->
127 * <!-- end-user-doc -->
128 * @return the value of the '<em>Monthly</em>' attribute.
129 * @see #setMonthly(double)
130 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Tax_Credit_Monthly()
131 * @model default="25.0" required="true"
132 * @generated
133 */
134 double getMonthly();
135
136 /**
137 * Sets the value of the '{@link TaxationWithRoot.Income_Tax_Credit#getMonthly <em>Monthly</em>}' attribute.
138 * <!-- begin-user-doc -->
139 * <!-- end-user-doc -->
140 * @param value the new value of the '<em>Monthly</em>' attribute.
141 * @see #getMonthly()
142 * @generated
143 */
144 void setMonthly(double value);
145
146 /**
147 * Returns the value of the '<em><b>Daily</b></em>' attribute.
148 * The default value is <code>"1.0"</code>.
149 * <!-- begin-user-doc -->
150 * <!-- end-user-doc -->
151 * @return the value of the '<em>Daily</em>' attribute.
152 * @see #setDaily(double)
153 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Tax_Credit_Daily()
154 * @model default="1.0" required="true"
155 * @generated
156 */
157 double getDaily();
158
159 /**
160 * Sets the value of the '{@link TaxationWithRoot.Income_Tax_Credit#getDaily <em>Daily</em>}' attribute.
161 * <!-- begin-user-doc -->
162 * <!-- end-user-doc -->
163 * @param value the new value of the '<em>Daily</em>' attribute.
164 * @see #getDaily()
165 * @generated
166 */
167 void setDaily(double value);
168
169 /**
170 * Returns the value of the '<em><b>Id7</b></em>' attribute.
171 * <!-- begin-user-doc -->
172 * <!-- end-user-doc -->
173 * @return the value of the '<em>Id7</em>' attribute.
174 * @see #setId7(String)
175 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Tax_Credit_Id7()
176 * @model id="true" required="true" ordered="false"
177 * @generated
178 */
179 String getId7();
180
181 /**
182 * Sets the value of the '{@link TaxationWithRoot.Income_Tax_Credit#getId7 <em>Id7</em>}' attribute.
183 * <!-- begin-user-doc -->
184 * <!-- end-user-doc -->
185 * @param value the new value of the '<em>Id7</em>' attribute.
186 * @see #getId7()
187 * @generated
188 */
189 void setId7(String value);
190
191 /**
192 * Returns the value of the '<em><b>Taxation Frame</b></em>' reference.
193 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Tax_Card#getIncome_Tax_Credit <em>Income Tax Credit</em>}'.
194 * <!-- begin-user-doc -->
195 * <!-- end-user-doc -->
196 * @return the value of the '<em>Taxation Frame</em>' reference.
197 * @see #setTaxation_Frame(Tax_Card)
198 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Tax_Credit_Taxation_Frame()
199 * @see TaxationWithRoot.Tax_Card#getIncome_Tax_Credit
200 * @model opposite="income_Tax_Credit"
201 * @generated
202 */
203 Tax_Card getTaxation_Frame();
204
205 /**
206 * Sets the value of the '{@link TaxationWithRoot.Income_Tax_Credit#getTaxation_Frame <em>Taxation Frame</em>}' reference.
207 * <!-- begin-user-doc -->
208 * <!-- end-user-doc -->
209 * @param value the new value of the '<em>Taxation Frame</em>' reference.
210 * @see #getTaxation_Frame()
211 * @generated
212 */
213 void setTaxation_Frame(Tax_Card value);
214
215} // Income_Tax_Credit
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Income_Type.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Income_Type.java
new file mode 100644
index 00000000..56b8c117
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Income_Type.java
@@ -0,0 +1,71 @@
1/**
2 */
3package TaxationWithRoot;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Income Type</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link TaxationWithRoot.Income_Type#getId8 <em>Id8</em>}</li>
17 * <li>{@link TaxationWithRoot.Income_Type#getIncome <em>Income</em>}</li>
18 * </ul>
19 *
20 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Type()
21 * @model abstract="true"
22 * @generated
23 */
24public interface Income_Type extends EObject {
25 /**
26 * Returns the value of the '<em><b>Id8</b></em>' attribute.
27 * <!-- begin-user-doc -->
28 * <!-- end-user-doc -->
29 * @return the value of the '<em>Id8</em>' attribute.
30 * @see #setId8(String)
31 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Type_Id8()
32 * @model id="true" required="true" ordered="false"
33 * @generated
34 */
35 String getId8();
36
37 /**
38 * Sets the value of the '{@link TaxationWithRoot.Income_Type#getId8 <em>Id8</em>}' attribute.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @param value the new value of the '<em>Id8</em>' attribute.
42 * @see #getId8()
43 * @generated
44 */
45 void setId8(String value);
46
47 /**
48 * Returns the value of the '<em><b>Income</b></em>' container reference.
49 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Income#getIncome_type <em>Income type</em>}'.
50 * <!-- begin-user-doc -->
51 * <!-- end-user-doc -->
52 * @return the value of the '<em>Income</em>' container reference.
53 * @see #setIncome(Income)
54 * @see TaxationWithRoot.TaxationWithRootPackage#getIncome_Type_Income()
55 * @see TaxationWithRoot.Income#getIncome_type
56 * @model opposite="income_type" required="true" transient="false"
57 * @generated
58 */
59 Income getIncome();
60
61 /**
62 * Sets the value of the '{@link TaxationWithRoot.Income_Type#getIncome <em>Income</em>}' container reference.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @param value the new value of the '<em>Income</em>' container reference.
66 * @see #getIncome()
67 * @generated
68 */
69 void setIncome(Income value);
70
71} // Income_Type
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Interest_Expense.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Interest_Expense.java
new file mode 100644
index 00000000..2544bc01
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Interest_Expense.java
@@ -0,0 +1,17 @@
1/**
2 */
3package TaxationWithRoot;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Interest Expense</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see TaxationWithRoot.TaxationWithRootPackage#getInterest_Expense()
13 * @model
14 * @generated
15 */
16public interface Interest_Expense extends Special_Expense_DS {
17} // Interest_Expense
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Job_Activity.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Job_Activity.java
new file mode 100644
index 00000000..609fa03a
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Job_Activity.java
@@ -0,0 +1,232 @@
1/**
2 */
3package TaxationWithRoot;
4
5import java.util.Arrays;
6import java.util.Collections;
7import java.util.List;
8
9import org.eclipse.emf.common.util.Enumerator;
10
11/**
12 * <!-- begin-user-doc -->
13 * A representation of the literals of the enumeration '<em><b>Job Activity</b></em>',
14 * and utility methods for working with them.
15 * <!-- end-user-doc -->
16 * @see TaxationWithRoot.TaxationWithRootPackage#getJob_Activity()
17 * @model
18 * @generated
19 */
20public enum Job_Activity implements Enumerator {
21 /**
22 * The '<em><b>Salary</b></em>' literal object.
23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc -->
25 * @see #SALARY_VALUE
26 * @generated
27 * @ordered
28 */
29 SALARY(0, "Salary", "Salary"),
30
31 /**
32 * The '<em><b>Pension</b></em>' literal object.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @see #PENSION_VALUE
36 * @generated
37 * @ordered
38 */
39 PENSION(1, "Pension", "Pension"),
40
41 /**
42 * The '<em><b>Annuity</b></em>' literal object.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #ANNUITY_VALUE
46 * @generated
47 * @ordered
48 */
49 ANNUITY(2, "Annuity", "Annuity");
50
51 /**
52 * The '<em><b>Salary</b></em>' literal value.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #SALARY
56 * @model name="Salary"
57 * @generated
58 * @ordered
59 */
60 public static final int SALARY_VALUE = 0;
61
62 /**
63 * The '<em><b>Pension</b></em>' literal value.
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @see #PENSION
67 * @model name="Pension"
68 * @generated
69 * @ordered
70 */
71 public static final int PENSION_VALUE = 1;
72
73 /**
74 * The '<em><b>Annuity</b></em>' literal value.
75 * <!-- begin-user-doc -->
76 * <!-- end-user-doc -->
77 * @see #ANNUITY
78 * @model name="Annuity"
79 * @generated
80 * @ordered
81 */
82 public static final int ANNUITY_VALUE = 2;
83
84 /**
85 * An array of all the '<em><b>Job Activity</b></em>' enumerators.
86 * <!-- begin-user-doc -->
87 * <!-- end-user-doc -->
88 * @generated
89 */
90 private static final Job_Activity[] VALUES_ARRAY =
91 new Job_Activity[] {
92 SALARY,
93 PENSION,
94 ANNUITY,
95 };
96
97 /**
98 * A public read-only list of all the '<em><b>Job Activity</b></em>' enumerators.
99 * <!-- begin-user-doc -->
100 * <!-- end-user-doc -->
101 * @generated
102 */
103 public static final List<Job_Activity> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
104
105 /**
106 * Returns the '<em><b>Job Activity</b></em>' literal with the specified literal value.
107 * <!-- begin-user-doc -->
108 * <!-- end-user-doc -->
109 * @param literal the literal.
110 * @return the matching enumerator or <code>null</code>.
111 * @generated
112 */
113 public static Job_Activity get(String literal) {
114 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
115 Job_Activity result = VALUES_ARRAY[i];
116 if (result.toString().equals(literal)) {
117 return result;
118 }
119 }
120 return null;
121 }
122
123 /**
124 * Returns the '<em><b>Job Activity</b></em>' literal with the specified name.
125 * <!-- begin-user-doc -->
126 * <!-- end-user-doc -->
127 * @param name the name.
128 * @return the matching enumerator or <code>null</code>.
129 * @generated
130 */
131 public static Job_Activity getByName(String name) {
132 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
133 Job_Activity result = VALUES_ARRAY[i];
134 if (result.getName().equals(name)) {
135 return result;
136 }
137 }
138 return null;
139 }
140
141 /**
142 * Returns the '<em><b>Job Activity</b></em>' literal with the specified integer value.
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @param value the integer value.
146 * @return the matching enumerator or <code>null</code>.
147 * @generated
148 */
149 public static Job_Activity get(int value) {
150 switch (value) {
151 case SALARY_VALUE: return SALARY;
152 case PENSION_VALUE: return PENSION;
153 case ANNUITY_VALUE: return ANNUITY;
154 }
155 return null;
156 }
157
158 /**
159 * <!-- begin-user-doc -->
160 * <!-- end-user-doc -->
161 * @generated
162 */
163 private final int value;
164
165 /**
166 * <!-- begin-user-doc -->
167 * <!-- end-user-doc -->
168 * @generated
169 */
170 private final String name;
171
172 /**
173 * <!-- begin-user-doc -->
174 * <!-- end-user-doc -->
175 * @generated
176 */
177 private final String literal;
178
179 /**
180 * Only this class can construct instances.
181 * <!-- begin-user-doc -->
182 * <!-- end-user-doc -->
183 * @generated
184 */
185 private Job_Activity(int value, String name, String literal) {
186 this.value = value;
187 this.name = name;
188 this.literal = literal;
189 }
190
191 /**
192 * <!-- begin-user-doc -->
193 * <!-- end-user-doc -->
194 * @generated
195 */
196 @Override
197 public int getValue() {
198 return value;
199 }
200
201 /**
202 * <!-- begin-user-doc -->
203 * <!-- end-user-doc -->
204 * @generated
205 */
206 @Override
207 public String getName() {
208 return name;
209 }
210
211 /**
212 * <!-- begin-user-doc -->
213 * <!-- end-user-doc -->
214 * @generated
215 */
216 @Override
217 public String getLiteral() {
218 return literal;
219 }
220
221 /**
222 * Returns the literal value of the enumerator, which is its string representation.
223 * <!-- begin-user-doc -->
224 * <!-- end-user-doc -->
225 * @generated
226 */
227 @Override
228 public String toString() {
229 return literal;
230 }
231
232} //Job_Activity
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Legal_Union_Record.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Legal_Union_Record.java
new file mode 100644
index 00000000..0f6da732
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Legal_Union_Record.java
@@ -0,0 +1,221 @@
1/**
2 */
3package TaxationWithRoot;
4
5import org.eclipse.emf.common.util.EList;
6
7import org.eclipse.emf.ecore.EObject;
8
9/**
10 * <!-- begin-user-doc -->
11 * A representation of the model object '<em><b>Legal Union Record</b></em>'.
12 * <!-- end-user-doc -->
13 *
14 * <p>
15 * The following features are supported:
16 * </p>
17 * <ul>
18 * <li>{@link TaxationWithRoot.Legal_Union_Record#getStart_year <em>Start year</em>}</li>
19 * <li>{@link TaxationWithRoot.Legal_Union_Record#getEnd_year <em>End year</em>}</li>
20 * <li>{@link TaxationWithRoot.Legal_Union_Record#getSeparation_cause <em>Separation cause</em>}</li>
21 * <li>{@link TaxationWithRoot.Legal_Union_Record#getIndividual_A <em>Individual A</em>}</li>
22 * <li>{@link TaxationWithRoot.Legal_Union_Record#getIndividual_B <em>Individual B</em>}</li>
23 * <li>{@link TaxationWithRoot.Legal_Union_Record#getProperties <em>Properties</em>}</li>
24 * <li>{@link TaxationWithRoot.Legal_Union_Record#isMutual_agreement <em>Mutual agreement</em>}</li>
25 * <li>{@link TaxationWithRoot.Legal_Union_Record#getId9 <em>Id9</em>}</li>
26 * <li>{@link TaxationWithRoot.Legal_Union_Record#getHousehold <em>Household</em>}</li>
27 * </ul>
28 *
29 * @see TaxationWithRoot.TaxationWithRootPackage#getLegal_Union_Record()
30 * @model abstract="true"
31 * @generated
32 */
33public interface Legal_Union_Record extends EObject {
34 /**
35 * Returns the value of the '<em><b>Start year</b></em>' attribute.
36 * <!-- begin-user-doc -->
37 * <!-- end-user-doc -->
38 * @return the value of the '<em>Start year</em>' attribute.
39 * @see #setStart_year(int)
40 * @see TaxationWithRoot.TaxationWithRootPackage#getLegal_Union_Record_Start_year()
41 * @model required="true"
42 * @generated
43 */
44 int getStart_year();
45
46 /**
47 * Sets the value of the '{@link TaxationWithRoot.Legal_Union_Record#getStart_year <em>Start year</em>}' attribute.
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @param value the new value of the '<em>Start year</em>' attribute.
51 * @see #getStart_year()
52 * @generated
53 */
54 void setStart_year(int value);
55
56 /**
57 * Returns the value of the '<em><b>End year</b></em>' attribute.
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @return the value of the '<em>End year</em>' attribute.
61 * @see #setEnd_year(int)
62 * @see TaxationWithRoot.TaxationWithRootPackage#getLegal_Union_Record_End_year()
63 * @model required="true"
64 * @generated
65 */
66 int getEnd_year();
67
68 /**
69 * Sets the value of the '{@link TaxationWithRoot.Legal_Union_Record#getEnd_year <em>End year</em>}' attribute.
70 * <!-- begin-user-doc -->
71 * <!-- end-user-doc -->
72 * @param value the new value of the '<em>End year</em>' attribute.
73 * @see #getEnd_year()
74 * @generated
75 */
76 void setEnd_year(int value);
77
78 /**
79 * Returns the value of the '<em><b>Separation cause</b></em>' attribute.
80 * The literals are from the enumeration {@link TaxationWithRoot.Separation_Causes}.
81 * <!-- begin-user-doc -->
82 * <!-- end-user-doc -->
83 * @return the value of the '<em>Separation cause</em>' attribute.
84 * @see TaxationWithRoot.Separation_Causes
85 * @see #setSeparation_cause(Separation_Causes)
86 * @see TaxationWithRoot.TaxationWithRootPackage#getLegal_Union_Record_Separation_cause()
87 * @model required="true" ordered="false"
88 * @generated
89 */
90 Separation_Causes getSeparation_cause();
91
92 /**
93 * Sets the value of the '{@link TaxationWithRoot.Legal_Union_Record#getSeparation_cause <em>Separation cause</em>}' attribute.
94 * <!-- begin-user-doc -->
95 * <!-- end-user-doc -->
96 * @param value the new value of the '<em>Separation cause</em>' attribute.
97 * @see TaxationWithRoot.Separation_Causes
98 * @see #getSeparation_cause()
99 * @generated
100 */
101 void setSeparation_cause(Separation_Causes value);
102
103 /**
104 * Returns the value of the '<em><b>Individual A</b></em>' containment reference.
105 * <!-- begin-user-doc -->
106 * <!-- end-user-doc -->
107 * @return the value of the '<em>Individual A</em>' containment reference.
108 * @see #setIndividual_A(Physical_Person)
109 * @see TaxationWithRoot.TaxationWithRootPackage#getLegal_Union_Record_Individual_A()
110 * @model containment="true" required="true" ordered="false"
111 * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='legal_union_A'"
112 * @generated
113 */
114 Physical_Person getIndividual_A();
115
116 /**
117 * Sets the value of the '{@link TaxationWithRoot.Legal_Union_Record#getIndividual_A <em>Individual A</em>}' containment reference.
118 * <!-- begin-user-doc -->
119 * <!-- end-user-doc -->
120 * @param value the new value of the '<em>Individual A</em>' containment reference.
121 * @see #getIndividual_A()
122 * @generated
123 */
124 void setIndividual_A(Physical_Person value);
125
126 /**
127 * Returns the value of the '<em><b>Individual B</b></em>' containment reference list.
128 * The list contents are of type {@link TaxationWithRoot.Physical_Person}.
129 * <!-- begin-user-doc -->
130 * <!-- end-user-doc -->
131 * @return the value of the '<em>Individual B</em>' containment reference list.
132 * @see TaxationWithRoot.TaxationWithRootPackage#getLegal_Union_Record_Individual_B()
133 * @model containment="true" required="true" ordered="false"
134 * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='legal_union_B'"
135 * @generated
136 */
137 EList<Physical_Person> getIndividual_B();
138
139 /**
140 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
141 * The list contents are of type {@link TaxationWithRoot.Tax_Property}.
142 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Tax_Property#getUnion_record <em>Union record</em>}'.
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @return the value of the '<em>Properties</em>' containment reference list.
146 * @see TaxationWithRoot.TaxationWithRootPackage#getLegal_Union_Record_Properties()
147 * @see TaxationWithRoot.Tax_Property#getUnion_record
148 * @model opposite="union_record" containment="true" required="true" ordered="false"
149 * @generated
150 */
151 EList<Tax_Property> getProperties();
152
153 /**
154 * Returns the value of the '<em><b>Mutual agreement</b></em>' attribute.
155 * <!-- begin-user-doc -->
156 * <!-- end-user-doc -->
157 * @return the value of the '<em>Mutual agreement</em>' attribute.
158 * @see #setMutual_agreement(boolean)
159 * @see TaxationWithRoot.TaxationWithRootPackage#getLegal_Union_Record_Mutual_agreement()
160 * @model required="true" ordered="false"
161 * @generated
162 */
163 boolean isMutual_agreement();
164
165 /**
166 * Sets the value of the '{@link TaxationWithRoot.Legal_Union_Record#isMutual_agreement <em>Mutual agreement</em>}' attribute.
167 * <!-- begin-user-doc -->
168 * <!-- end-user-doc -->
169 * @param value the new value of the '<em>Mutual agreement</em>' attribute.
170 * @see #isMutual_agreement()
171 * @generated
172 */
173 void setMutual_agreement(boolean value);
174
175 /**
176 * Returns the value of the '<em><b>Id9</b></em>' attribute.
177 * <!-- begin-user-doc -->
178 * <!-- end-user-doc -->
179 * @return the value of the '<em>Id9</em>' attribute.
180 * @see #setId9(String)
181 * @see TaxationWithRoot.TaxationWithRootPackage#getLegal_Union_Record_Id9()
182 * @model id="true" required="true" ordered="false"
183 * @generated
184 */
185 String getId9();
186
187 /**
188 * Sets the value of the '{@link TaxationWithRoot.Legal_Union_Record#getId9 <em>Id9</em>}' attribute.
189 * <!-- begin-user-doc -->
190 * <!-- end-user-doc -->
191 * @param value the new value of the '<em>Id9</em>' attribute.
192 * @see #getId9()
193 * @generated
194 */
195 void setId9(String value);
196
197 /**
198 * Returns the value of the '<em><b>Household</b></em>' container reference.
199 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Household#getParents <em>Parents</em>}'.
200 * <!-- begin-user-doc -->
201 * <!-- end-user-doc -->
202 * @return the value of the '<em>Household</em>' container reference.
203 * @see #setHousehold(Household)
204 * @see TaxationWithRoot.TaxationWithRootPackage#getLegal_Union_Record_Household()
205 * @see TaxationWithRoot.Household#getParents
206 * @model opposite="parents" required="true" transient="false" ordered="false"
207 * @generated
208 */
209 Household getHousehold();
210
211 /**
212 * Sets the value of the '{@link TaxationWithRoot.Legal_Union_Record#getHousehold <em>Household</em>}' container reference.
213 * <!-- begin-user-doc -->
214 * <!-- end-user-doc -->
215 * @param value the new value of the '<em>Household</em>' container reference.
216 * @see #getHousehold()
217 * @generated
218 */
219 void setHousehold(Household value);
220
221} // Legal_Union_Record
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Legal_Union_Types.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Legal_Union_Types.java
new file mode 100644
index 00000000..cfd7d06c
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Legal_Union_Types.java
@@ -0,0 +1,232 @@
1/**
2 */
3package TaxationWithRoot;
4
5import java.util.Arrays;
6import java.util.Collections;
7import java.util.List;
8
9import org.eclipse.emf.common.util.Enumerator;
10
11/**
12 * <!-- begin-user-doc -->
13 * A representation of the literals of the enumeration '<em><b>Legal Union Types</b></em>',
14 * and utility methods for working with them.
15 * <!-- end-user-doc -->
16 * @see TaxationWithRoot.TaxationWithRootPackage#getLegal_Union_Types()
17 * @model
18 * @generated
19 */
20public enum Legal_Union_Types implements Enumerator {
21 /**
22 * The '<em><b>MARIAGE</b></em>' literal object.
23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc -->
25 * @see #MARIAGE_VALUE
26 * @generated
27 * @ordered
28 */
29 MARIAGE(0, "MARIAGE", "MARIAGE"),
30
31 /**
32 * The '<em><b>PARTNERSHIP</b></em>' literal object.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @see #PARTNERSHIP_VALUE
36 * @generated
37 * @ordered
38 */
39 PARTNERSHIP(1, "PARTNERSHIP", "PARTNERSHIP"),
40
41 /**
42 * The '<em><b>OTHER</b></em>' literal object.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #OTHER_VALUE
46 * @generated
47 * @ordered
48 */
49 OTHER(2, "OTHER", "OTHER");
50
51 /**
52 * The '<em><b>MARIAGE</b></em>' literal value.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #MARIAGE
56 * @model
57 * @generated
58 * @ordered
59 */
60 public static final int MARIAGE_VALUE = 0;
61
62 /**
63 * The '<em><b>PARTNERSHIP</b></em>' literal value.
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @see #PARTNERSHIP
67 * @model
68 * @generated
69 * @ordered
70 */
71 public static final int PARTNERSHIP_VALUE = 1;
72
73 /**
74 * The '<em><b>OTHER</b></em>' literal value.
75 * <!-- begin-user-doc -->
76 * <!-- end-user-doc -->
77 * @see #OTHER
78 * @model
79 * @generated
80 * @ordered
81 */
82 public static final int OTHER_VALUE = 2;
83
84 /**
85 * An array of all the '<em><b>Legal Union Types</b></em>' enumerators.
86 * <!-- begin-user-doc -->
87 * <!-- end-user-doc -->
88 * @generated
89 */
90 private static final Legal_Union_Types[] VALUES_ARRAY =
91 new Legal_Union_Types[] {
92 MARIAGE,
93 PARTNERSHIP,
94 OTHER,
95 };
96
97 /**
98 * A public read-only list of all the '<em><b>Legal Union Types</b></em>' enumerators.
99 * <!-- begin-user-doc -->
100 * <!-- end-user-doc -->
101 * @generated
102 */
103 public static final List<Legal_Union_Types> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
104
105 /**
106 * Returns the '<em><b>Legal Union Types</b></em>' literal with the specified literal value.
107 * <!-- begin-user-doc -->
108 * <!-- end-user-doc -->
109 * @param literal the literal.
110 * @return the matching enumerator or <code>null</code>.
111 * @generated
112 */
113 public static Legal_Union_Types get(String literal) {
114 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
115 Legal_Union_Types result = VALUES_ARRAY[i];
116 if (result.toString().equals(literal)) {
117 return result;
118 }
119 }
120 return null;
121 }
122
123 /**
124 * Returns the '<em><b>Legal Union Types</b></em>' literal with the specified name.
125 * <!-- begin-user-doc -->
126 * <!-- end-user-doc -->
127 * @param name the name.
128 * @return the matching enumerator or <code>null</code>.
129 * @generated
130 */
131 public static Legal_Union_Types getByName(String name) {
132 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
133 Legal_Union_Types result = VALUES_ARRAY[i];
134 if (result.getName().equals(name)) {
135 return result;
136 }
137 }
138 return null;
139 }
140
141 /**
142 * Returns the '<em><b>Legal Union Types</b></em>' literal with the specified integer value.
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @param value the integer value.
146 * @return the matching enumerator or <code>null</code>.
147 * @generated
148 */
149 public static Legal_Union_Types get(int value) {
150 switch (value) {
151 case MARIAGE_VALUE: return MARIAGE;
152 case PARTNERSHIP_VALUE: return PARTNERSHIP;
153 case OTHER_VALUE: return OTHER;
154 }
155 return null;
156 }
157
158 /**
159 * <!-- begin-user-doc -->
160 * <!-- end-user-doc -->
161 * @generated
162 */
163 private final int value;
164
165 /**
166 * <!-- begin-user-doc -->
167 * <!-- end-user-doc -->
168 * @generated
169 */
170 private final String name;
171
172 /**
173 * <!-- begin-user-doc -->
174 * <!-- end-user-doc -->
175 * @generated
176 */
177 private final String literal;
178
179 /**
180 * Only this class can construct instances.
181 * <!-- begin-user-doc -->
182 * <!-- end-user-doc -->
183 * @generated
184 */
185 private Legal_Union_Types(int value, String name, String literal) {
186 this.value = value;
187 this.name = name;
188 this.literal = literal;
189 }
190
191 /**
192 * <!-- begin-user-doc -->
193 * <!-- end-user-doc -->
194 * @generated
195 */
196 @Override
197 public int getValue() {
198 return value;
199 }
200
201 /**
202 * <!-- begin-user-doc -->
203 * <!-- end-user-doc -->
204 * @generated
205 */
206 @Override
207 public String getName() {
208 return name;
209 }
210
211 /**
212 * <!-- begin-user-doc -->
213 * <!-- end-user-doc -->
214 * @generated
215 */
216 @Override
217 public String getLiteral() {
218 return literal;
219 }
220
221 /**
222 * Returns the literal value of the enumerator, which is its string representation.
223 * <!-- begin-user-doc -->
224 * <!-- end-user-doc -->
225 * @generated
226 */
227 @Override
228 public String toString() {
229 return literal;
230 }
231
232} //Legal_Union_Types
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Local_Income.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Local_Income.java
new file mode 100644
index 00000000..0e0e7a1b
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Local_Income.java
@@ -0,0 +1,17 @@
1/**
2 */
3package TaxationWithRoot;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Local Income</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see TaxationWithRoot.TaxationWithRootPackage#getLocal_Income()
13 * @model
14 * @generated
15 */
16public interface Local_Income extends Income {
17} // Local_Income
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Loss_Carryforward.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Loss_Carryforward.java
new file mode 100644
index 00000000..2da6ca94
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Loss_Carryforward.java
@@ -0,0 +1,17 @@
1/**
2 */
3package TaxationWithRoot;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Loss Carryforward</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see TaxationWithRoot.TaxationWithRootPackage#getLoss_Carryforward()
13 * @model
14 * @generated
15 */
16public interface Loss_Carryforward extends Special_Expense_DS {
17} // Loss_Carryforward
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Marriage_Record.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Marriage_Record.java
new file mode 100644
index 00000000..168390ed
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Marriage_Record.java
@@ -0,0 +1,17 @@
1/**
2 */
3package TaxationWithRoot;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Marriage Record</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see TaxationWithRoot.TaxationWithRootPackage#getMarriage_Record()
13 * @model
14 * @generated
15 */
16public interface Marriage_Record extends Legal_Union_Record {
17} // Marriage_Record
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Miscellaneous_Expense_FO.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Miscellaneous_Expense_FO.java
new file mode 100644
index 00000000..19c6aa70
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Miscellaneous_Expense_FO.java
@@ -0,0 +1,17 @@
1/**
2 */
3package TaxationWithRoot;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Miscellaneous Expense FO</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see TaxationWithRoot.TaxationWithRootPackage#getMiscellaneous_Expense_FO()
13 * @model
14 * @generated
15 */
16public interface Miscellaneous_Expense_FO extends Professional_Expense {
17} // Miscellaneous_Expense_FO
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Non_Resident_Tax_Payer.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Non_Resident_Tax_Payer.java
new file mode 100644
index 00000000..42f60ddc
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Non_Resident_Tax_Payer.java
@@ -0,0 +1,46 @@
1/**
2 */
3package TaxationWithRoot;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Non Resident Tax Payer</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 * <p>
12 * The following features are supported:
13 * </p>
14 * <ul>
15 * <li>{@link TaxationWithRoot.Non_Resident_Tax_Payer#isIs_assimilated_to_resident <em>Is assimilated to resident</em>}</li>
16 * </ul>
17 *
18 * @see TaxationWithRoot.TaxationWithRootPackage#getNon_Resident_Tax_Payer()
19 * @model
20 * @generated
21 */
22public interface Non_Resident_Tax_Payer extends Tax_Payer {
23 /**
24 * Returns the value of the '<em><b>Is assimilated to resident</b></em>' attribute.
25 * The default value is <code>"false"</code>.
26 * <!-- begin-user-doc -->
27 * <!-- end-user-doc -->
28 * @return the value of the '<em>Is assimilated to resident</em>' attribute.
29 * @see #setIs_assimilated_to_resident(boolean)
30 * @see TaxationWithRoot.TaxationWithRootPackage#getNon_Resident_Tax_Payer_Is_assimilated_to_resident()
31 * @model default="false" required="true"
32 * @generated
33 */
34 boolean isIs_assimilated_to_resident();
35
36 /**
37 * Sets the value of the '{@link TaxationWithRoot.Non_Resident_Tax_Payer#isIs_assimilated_to_resident <em>Is assimilated to resident</em>}' attribute.
38 * <!-- begin-user-doc -->
39 * <!-- end-user-doc -->
40 * @param value the new value of the '<em>Is assimilated to resident</em>' attribute.
41 * @see #isIs_assimilated_to_resident()
42 * @generated
43 */
44 void setIs_assimilated_to_resident(boolean value);
45
46} // Non_Resident_Tax_Payer
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Partnership_Record.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Partnership_Record.java
new file mode 100644
index 00000000..4f290dbd
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Partnership_Record.java
@@ -0,0 +1,17 @@
1/**
2 */
3package TaxationWithRoot;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Partnership Record</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see TaxationWithRoot.TaxationWithRootPackage#getPartnership_Record()
13 * @model
14 * @generated
15 */
16public interface Partnership_Record extends Legal_Union_Record {
17} // Partnership_Record
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Pensions_and_Annuities_Income.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Pensions_and_Annuities_Income.java
new file mode 100644
index 00000000..c3a252ff
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Pensions_and_Annuities_Income.java
@@ -0,0 +1,46 @@
1/**
2 */
3package TaxationWithRoot;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Pensions and Annuities Income</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 * <p>
12 * The following features are supported:
13 * </p>
14 * <ul>
15 * <li>{@link TaxationWithRoot.Pensions_and_Annuities_Income#isOccasional_payement <em>Occasional payement</em>}</li>
16 * </ul>
17 *
18 * @see TaxationWithRoot.TaxationWithRootPackage#getPensions_and_Annuities_Income()
19 * @model
20 * @generated
21 */
22public interface Pensions_and_Annuities_Income extends Income_Type {
23 /**
24 * Returns the value of the '<em><b>Occasional payement</b></em>' attribute.
25 * The default value is <code>"false"</code>.
26 * <!-- begin-user-doc -->
27 * <!-- end-user-doc -->
28 * @return the value of the '<em>Occasional payement</em>' attribute.
29 * @see #setOccasional_payement(boolean)
30 * @see TaxationWithRoot.TaxationWithRootPackage#getPensions_and_Annuities_Income_Occasional_payement()
31 * @model default="false"
32 * @generated
33 */
34 boolean isOccasional_payement();
35
36 /**
37 * Sets the value of the '{@link TaxationWithRoot.Pensions_and_Annuities_Income#isOccasional_payement <em>Occasional payement</em>}' attribute.
38 * <!-- begin-user-doc -->
39 * <!-- end-user-doc -->
40 * @param value the new value of the '<em>Occasional payement</em>' attribute.
41 * @see #isOccasional_payement()
42 * @generated
43 */
44 void setOccasional_payement(boolean value);
45
46} // Pensions_and_Annuities_Income
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Permanent_Expense.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Permanent_Expense.java
new file mode 100644
index 00000000..e116cd2c
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Permanent_Expense.java
@@ -0,0 +1,48 @@
1/**
2 */
3package TaxationWithRoot;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Permanent Expense</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 * <p>
12 * The following features are supported:
13 * </p>
14 * <ul>
15 * <li>{@link TaxationWithRoot.Permanent_Expense#getCategory <em>Category</em>}</li>
16 * </ul>
17 *
18 * @see TaxationWithRoot.TaxationWithRootPackage#getPermanent_Expense()
19 * @model
20 * @generated
21 */
22public interface Permanent_Expense extends Special_Expense_DS {
23 /**
24 * Returns the value of the '<em><b>Category</b></em>' attribute.
25 * The literals are from the enumeration {@link TaxationWithRoot.Category_of_Permanent_Expense}.
26 * <!-- begin-user-doc -->
27 * <!-- end-user-doc -->
28 * @return the value of the '<em>Category</em>' attribute.
29 * @see TaxationWithRoot.Category_of_Permanent_Expense
30 * @see #setCategory(Category_of_Permanent_Expense)
31 * @see TaxationWithRoot.TaxationWithRootPackage#getPermanent_Expense_Category()
32 * @model required="true"
33 * @generated
34 */
35 Category_of_Permanent_Expense getCategory();
36
37 /**
38 * Sets the value of the '{@link TaxationWithRoot.Permanent_Expense#getCategory <em>Category</em>}' attribute.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @param value the new value of the '<em>Category</em>' attribute.
42 * @see TaxationWithRoot.Category_of_Permanent_Expense
43 * @see #getCategory()
44 * @generated
45 */
46 void setCategory(Category_of_Permanent_Expense value);
47
48} // Permanent_Expense
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Physical_Person.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Physical_Person.java
new file mode 100644
index 00000000..94ba6a49
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Physical_Person.java
@@ -0,0 +1,219 @@
1/**
2 */
3package TaxationWithRoot;
4
5import org.eclipse.emf.common.util.EList;
6
7import org.eclipse.emf.ecore.EObject;
8
9/**
10 * <!-- begin-user-doc -->
11 * A representation of the model object '<em><b>Physical Person</b></em>'.
12 * <!-- end-user-doc -->
13 *
14 * <p>
15 * The following features are supported:
16 * </p>
17 * <ul>
18 * <li>{@link TaxationWithRoot.Physical_Person#getSSNo <em>SS No</em>}</li>
19 * <li>{@link TaxationWithRoot.Physical_Person#getAddresses <em>Addresses</em>}</li>
20 * <li>{@link TaxationWithRoot.Physical_Person#getBirth_year <em>Birth year</em>}</li>
21 * <li>{@link TaxationWithRoot.Physical_Person#getDisability_percentage <em>Disability percentage</em>}</li>
22 * <li>{@link TaxationWithRoot.Physical_Person#getDisability_type <em>Disability type</em>}</li>
23 * <li>{@link TaxationWithRoot.Physical_Person#getBirth_month <em>Birth month</em>}</li>
24 * <li>{@link TaxationWithRoot.Physical_Person#getBirth_day <em>Birth day</em>}</li>
25 * <li>{@link TaxationWithRoot.Physical_Person#getExpenses <em>Expenses</em>}</li>
26 * <li>{@link TaxationWithRoot.Physical_Person#isIs_widower <em>Is widower</em>}</li>
27 * </ul>
28 *
29 * @see TaxationWithRoot.TaxationWithRootPackage#getPhysical_Person()
30 * @model
31 * @generated
32 */
33public interface Physical_Person extends EObject {
34 /**
35 * Returns the value of the '<em><b>SS No</b></em>' attribute.
36 * <!-- begin-user-doc -->
37 * <!-- end-user-doc -->
38 * @return the value of the '<em>SS No</em>' attribute.
39 * @see #setSSNo(String)
40 * @see TaxationWithRoot.TaxationWithRootPackage#getPhysical_Person_SSNo()
41 * @model id="true" required="true"
42 * @generated
43 */
44 String getSSNo();
45
46 /**
47 * Sets the value of the '{@link TaxationWithRoot.Physical_Person#getSSNo <em>SS No</em>}' attribute.
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @param value the new value of the '<em>SS No</em>' attribute.
51 * @see #getSSNo()
52 * @generated
53 */
54 void setSSNo(String value);
55
56 /**
57 * Returns the value of the '<em><b>Addresses</b></em>' reference list.
58 * The list contents are of type {@link TaxationWithRoot.Address}.
59 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Address#getTaxPayer <em>Tax Payer</em>}'.
60 * <!-- begin-user-doc -->
61 * <!-- end-user-doc -->
62 * @return the value of the '<em>Addresses</em>' reference list.
63 * @see TaxationWithRoot.TaxationWithRootPackage#getPhysical_Person_Addresses()
64 * @see TaxationWithRoot.Address#getTaxPayer
65 * @model opposite="taxPayer" ordered="false"
66 * @generated
67 */
68 EList<Address> getAddresses();
69
70 /**
71 * Returns the value of the '<em><b>Birth year</b></em>' attribute.
72 * <!-- begin-user-doc -->
73 * <!-- end-user-doc -->
74 * @return the value of the '<em>Birth year</em>' attribute.
75 * @see #setBirth_year(int)
76 * @see TaxationWithRoot.TaxationWithRootPackage#getPhysical_Person_Birth_year()
77 * @model unique="false" required="true" ordered="false"
78 * @generated
79 */
80 int getBirth_year();
81
82 /**
83 * Sets the value of the '{@link TaxationWithRoot.Physical_Person#getBirth_year <em>Birth year</em>}' attribute.
84 * <!-- begin-user-doc -->
85 * <!-- end-user-doc -->
86 * @param value the new value of the '<em>Birth year</em>' attribute.
87 * @see #getBirth_year()
88 * @generated
89 */
90 void setBirth_year(int value);
91
92 /**
93 * Returns the value of the '<em><b>Disability percentage</b></em>' attribute.
94 * <!-- begin-user-doc -->
95 * <!-- end-user-doc -->
96 * @return the value of the '<em>Disability percentage</em>' attribute.
97 * @see #setDisability_percentage(double)
98 * @see TaxationWithRoot.TaxationWithRootPackage#getPhysical_Person_Disability_percentage()
99 * @model unique="false" required="true" ordered="false"
100 * @generated
101 */
102 double getDisability_percentage();
103
104 /**
105 * Sets the value of the '{@link TaxationWithRoot.Physical_Person#getDisability_percentage <em>Disability percentage</em>}' attribute.
106 * <!-- begin-user-doc -->
107 * <!-- end-user-doc -->
108 * @param value the new value of the '<em>Disability percentage</em>' attribute.
109 * @see #getDisability_percentage()
110 * @generated
111 */
112 void setDisability_percentage(double value);
113
114 /**
115 * Returns the value of the '<em><b>Disability type</b></em>' attribute.
116 * The literals are from the enumeration {@link TaxationWithRoot.Disability_Types}.
117 * <!-- begin-user-doc -->
118 * <!-- end-user-doc -->
119 * @return the value of the '<em>Disability type</em>' attribute.
120 * @see TaxationWithRoot.Disability_Types
121 * @see #setDisability_type(Disability_Types)
122 * @see TaxationWithRoot.TaxationWithRootPackage#getPhysical_Person_Disability_type()
123 * @model unique="false" required="true" ordered="false"
124 * @generated
125 */
126 Disability_Types getDisability_type();
127
128 /**
129 * Sets the value of the '{@link TaxationWithRoot.Physical_Person#getDisability_type <em>Disability type</em>}' attribute.
130 * <!-- begin-user-doc -->
131 * <!-- end-user-doc -->
132 * @param value the new value of the '<em>Disability type</em>' attribute.
133 * @see TaxationWithRoot.Disability_Types
134 * @see #getDisability_type()
135 * @generated
136 */
137 void setDisability_type(Disability_Types value);
138
139 /**
140 * Returns the value of the '<em><b>Birth month</b></em>' attribute.
141 * <!-- begin-user-doc -->
142 * <!-- end-user-doc -->
143 * @return the value of the '<em>Birth month</em>' attribute.
144 * @see #setBirth_month(int)
145 * @see TaxationWithRoot.TaxationWithRootPackage#getPhysical_Person_Birth_month()
146 * @model unique="false" required="true" ordered="false"
147 * @generated
148 */
149 int getBirth_month();
150
151 /**
152 * Sets the value of the '{@link TaxationWithRoot.Physical_Person#getBirth_month <em>Birth month</em>}' attribute.
153 * <!-- begin-user-doc -->
154 * <!-- end-user-doc -->
155 * @param value the new value of the '<em>Birth month</em>' attribute.
156 * @see #getBirth_month()
157 * @generated
158 */
159 void setBirth_month(int value);
160
161 /**
162 * Returns the value of the '<em><b>Birth day</b></em>' attribute.
163 * <!-- begin-user-doc -->
164 * <!-- end-user-doc -->
165 * @return the value of the '<em>Birth day</em>' attribute.
166 * @see #setBirth_day(int)
167 * @see TaxationWithRoot.TaxationWithRootPackage#getPhysical_Person_Birth_day()
168 * @model unique="false" required="true" ordered="false"
169 * @generated
170 */
171 int getBirth_day();
172
173 /**
174 * Sets the value of the '{@link TaxationWithRoot.Physical_Person#getBirth_day <em>Birth day</em>}' attribute.
175 * <!-- begin-user-doc -->
176 * <!-- end-user-doc -->
177 * @param value the new value of the '<em>Birth day</em>' attribute.
178 * @see #getBirth_day()
179 * @generated
180 */
181 void setBirth_day(int value);
182
183 /**
184 * Returns the value of the '<em><b>Expenses</b></em>' reference list.
185 * The list contents are of type {@link TaxationWithRoot.Expense}.
186 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Expense#getBeneficiary <em>Beneficiary</em>}'.
187 * <!-- begin-user-doc -->
188 * <!-- end-user-doc -->
189 * @return the value of the '<em>Expenses</em>' reference list.
190 * @see TaxationWithRoot.TaxationWithRootPackage#getPhysical_Person_Expenses()
191 * @see TaxationWithRoot.Expense#getBeneficiary
192 * @model opposite="beneficiary" ordered="false"
193 * @generated
194 */
195 EList<Expense> getExpenses();
196
197 /**
198 * Returns the value of the '<em><b>Is widower</b></em>' attribute.
199 * <!-- begin-user-doc -->
200 * <!-- end-user-doc -->
201 * @return the value of the '<em>Is widower</em>' attribute.
202 * @see #setIs_widower(boolean)
203 * @see TaxationWithRoot.TaxationWithRootPackage#getPhysical_Person_Is_widower()
204 * @model required="true" ordered="false"
205 * @generated
206 */
207 boolean isIs_widower();
208
209 /**
210 * Sets the value of the '{@link TaxationWithRoot.Physical_Person#isIs_widower <em>Is widower</em>}' attribute.
211 * <!-- begin-user-doc -->
212 * <!-- end-user-doc -->
213 * @param value the new value of the '<em>Is widower</em>' attribute.
214 * @see #isIs_widower()
215 * @generated
216 */
217 void setIs_widower(boolean value);
218
219} // Physical_Person
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Private_Insurance_and_Plan.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Private_Insurance_and_Plan.java
new file mode 100644
index 00000000..38f8b82c
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Private_Insurance_and_Plan.java
@@ -0,0 +1,71 @@
1/**
2 */
3package TaxationWithRoot;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Private Insurance and Plan</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 * <p>
12 * The following features are supported:
13 * </p>
14 * <ul>
15 * <li>{@link TaxationWithRoot.Private_Insurance_and_Plan#getCategory <em>Category</em>}</li>
16 * <li>{@link TaxationWithRoot.Private_Insurance_and_Plan#getDuration_of_contract <em>Duration of contract</em>}</li>
17 * </ul>
18 *
19 * @see TaxationWithRoot.TaxationWithRootPackage#getPrivate_Insurance_and_Plan()
20 * @model
21 * @generated
22 */
23public interface Private_Insurance_and_Plan extends Special_Expense_DS {
24 /**
25 * Returns the value of the '<em><b>Category</b></em>' attribute.
26 * The literals are from the enumeration {@link TaxationWithRoot.Category_of_Private_Insurance_and_Plan}.
27 * <!-- begin-user-doc -->
28 * <!-- end-user-doc -->
29 * @return the value of the '<em>Category</em>' attribute.
30 * @see TaxationWithRoot.Category_of_Private_Insurance_and_Plan
31 * @see #setCategory(Category_of_Private_Insurance_and_Plan)
32 * @see TaxationWithRoot.TaxationWithRootPackage#getPrivate_Insurance_and_Plan_Category()
33 * @model required="true"
34 * @generated
35 */
36 Category_of_Private_Insurance_and_Plan getCategory();
37
38 /**
39 * Sets the value of the '{@link TaxationWithRoot.Private_Insurance_and_Plan#getCategory <em>Category</em>}' attribute.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @param value the new value of the '<em>Category</em>' attribute.
43 * @see TaxationWithRoot.Category_of_Private_Insurance_and_Plan
44 * @see #getCategory()
45 * @generated
46 */
47 void setCategory(Category_of_Private_Insurance_and_Plan value);
48
49 /**
50 * Returns the value of the '<em><b>Duration of contract</b></em>' attribute.
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @return the value of the '<em>Duration of contract</em>' attribute.
54 * @see #setDuration_of_contract(int)
55 * @see TaxationWithRoot.TaxationWithRootPackage#getPrivate_Insurance_and_Plan_Duration_of_contract()
56 * @model required="true"
57 * @generated
58 */
59 int getDuration_of_contract();
60
61 /**
62 * Sets the value of the '{@link TaxationWithRoot.Private_Insurance_and_Plan#getDuration_of_contract <em>Duration of contract</em>}' attribute.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @param value the new value of the '<em>Duration of contract</em>' attribute.
66 * @see #getDuration_of_contract()
67 * @generated
68 */
69 void setDuration_of_contract(int value);
70
71} // Private_Insurance_and_Plan
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Professional_Expense.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Professional_Expense.java
new file mode 100644
index 00000000..a926679d
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Professional_Expense.java
@@ -0,0 +1,17 @@
1/**
2 */
3package TaxationWithRoot;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Professional Expense</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see TaxationWithRoot.TaxationWithRootPackage#getProfessional_Expense()
13 * @model
14 * @generated
15 */
16public interface Professional_Expense extends Expense {
17} // Professional_Expense
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Rentals_and_Leases_Income.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Rentals_and_Leases_Income.java
new file mode 100644
index 00000000..da50a973
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Rentals_and_Leases_Income.java
@@ -0,0 +1,46 @@
1/**
2 */
3package TaxationWithRoot;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Rentals and Leases Income</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 * <p>
12 * The following features are supported:
13 * </p>
14 * <ul>
15 * <li>{@link TaxationWithRoot.Rentals_and_Leases_Income#isIs_periodic <em>Is periodic</em>}</li>
16 * </ul>
17 *
18 * @see TaxationWithRoot.TaxationWithRootPackage#getRentals_and_Leases_Income()
19 * @model
20 * @generated
21 */
22public interface Rentals_and_Leases_Income extends Income_Type {
23 /**
24 * Returns the value of the '<em><b>Is periodic</b></em>' attribute.
25 * The default value is <code>"true"</code>.
26 * <!-- begin-user-doc -->
27 * <!-- end-user-doc -->
28 * @return the value of the '<em>Is periodic</em>' attribute.
29 * @see #setIs_periodic(boolean)
30 * @see TaxationWithRoot.TaxationWithRootPackage#getRentals_and_Leases_Income_Is_periodic()
31 * @model default="true" required="true"
32 * @generated
33 */
34 boolean isIs_periodic();
35
36 /**
37 * Sets the value of the '{@link TaxationWithRoot.Rentals_and_Leases_Income#isIs_periodic <em>Is periodic</em>}' attribute.
38 * <!-- begin-user-doc -->
39 * <!-- end-user-doc -->
40 * @param value the new value of the '<em>Is periodic</em>' attribute.
41 * @see #isIs_periodic()
42 * @generated
43 */
44 void setIs_periodic(boolean value);
45
46} // Rentals_and_Leases_Income
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Resident_Tax_Payer.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Resident_Tax_Payer.java
new file mode 100644
index 00000000..a0220f0c
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Resident_Tax_Payer.java
@@ -0,0 +1,17 @@
1/**
2 */
3package TaxationWithRoot;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Resident Tax Payer</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see TaxationWithRoot.TaxationWithRootPackage#getResident_Tax_Payer()
13 * @model
14 * @generated
15 */
16public interface Resident_Tax_Payer extends Tax_Payer {
17} // Resident_Tax_Payer
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Resource.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Resource.java
new file mode 100644
index 00000000..44afe03f
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Resource.java
@@ -0,0 +1,38 @@
1/**
2 */
3package TaxationWithRoot;
4
5import org.eclipse.emf.common.util.EList;
6
7import org.eclipse.emf.ecore.EObject;
8
9/**
10 * <!-- begin-user-doc -->
11 * A representation of the model object '<em><b>Resource</b></em>'.
12 * <!-- end-user-doc -->
13 *
14 * <p>
15 * The following features are supported:
16 * </p>
17 * <ul>
18 * <li>{@link TaxationWithRoot.Resource#getContains <em>Contains</em>}</li>
19 * </ul>
20 *
21 * @see TaxationWithRoot.TaxationWithRootPackage#getResource()
22 * @model
23 * @generated
24 */
25public interface Resource extends EObject {
26 /**
27 * Returns the value of the '<em><b>Contains</b></em>' containment reference list.
28 * The list contents are of type {@link TaxationWithRoot.Household}.
29 * <!-- begin-user-doc -->
30 * <!-- end-user-doc -->
31 * @return the value of the '<em>Contains</em>' containment reference list.
32 * @see TaxationWithRoot.TaxationWithRootPackage#getResource_Contains()
33 * @model containment="true"
34 * @generated
35 */
36 EList<Household> getContains();
37
38} // Resource
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Separation_Causes.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Separation_Causes.java
new file mode 100644
index 00000000..f30fd8e3
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Separation_Causes.java
@@ -0,0 +1,255 @@
1/**
2 */
3package TaxationWithRoot;
4
5import java.util.Arrays;
6import java.util.Collections;
7import java.util.List;
8
9import org.eclipse.emf.common.util.Enumerator;
10
11/**
12 * <!-- begin-user-doc -->
13 * A representation of the literals of the enumeration '<em><b>Separation Causes</b></em>',
14 * and utility methods for working with them.
15 * <!-- end-user-doc -->
16 * @see TaxationWithRoot.TaxationWithRootPackage#getSeparation_Causes()
17 * @model
18 * @generated
19 */
20public enum Separation_Causes implements Enumerator {
21 /**
22 * The '<em><b>NONE</b></em>' literal object.
23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc -->
25 * @see #NONE_VALUE
26 * @generated
27 * @ordered
28 */
29 NONE(0, "NONE", "NONE"),
30
31 /**
32 * The '<em><b>DIVORCE</b></em>' literal object.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @see #DIVORCE_VALUE
36 * @generated
37 * @ordered
38 */
39 DIVORCE(1, "DIVORCE", "DIVORCE"),
40
41 /**
42 * The '<em><b>SEPARATION DE FAIT</b></em>' literal object.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #SEPARATION_DE_FAIT_VALUE
46 * @generated
47 * @ordered
48 */
49 SEPARATION_DE_FAIT(2, "SEPARATION_DE_FAIT", "SEPARATION_DE_FAIT"),
50
51 /**
52 * The '<em><b>SEPARATION BY COURT</b></em>' literal object.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #SEPARATION_BY_COURT_VALUE
56 * @generated
57 * @ordered
58 */
59 SEPARATION_BY_COURT(3, "SEPARATION_BY_COURT", "SEPARATION_BY_COURT");
60
61 /**
62 * The '<em><b>NONE</b></em>' literal value.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @see #NONE
66 * @model
67 * @generated
68 * @ordered
69 */
70 public static final int NONE_VALUE = 0;
71
72 /**
73 * The '<em><b>DIVORCE</b></em>' literal value.
74 * <!-- begin-user-doc -->
75 * <!-- end-user-doc -->
76 * @see #DIVORCE
77 * @model
78 * @generated
79 * @ordered
80 */
81 public static final int DIVORCE_VALUE = 1;
82
83 /**
84 * The '<em><b>SEPARATION DE FAIT</b></em>' literal value.
85 * <!-- begin-user-doc -->
86 * <!-- end-user-doc -->
87 * @see #SEPARATION_DE_FAIT
88 * @model
89 * @generated
90 * @ordered
91 */
92 public static final int SEPARATION_DE_FAIT_VALUE = 2;
93
94 /**
95 * The '<em><b>SEPARATION BY COURT</b></em>' literal value.
96 * <!-- begin-user-doc -->
97 * <!-- end-user-doc -->
98 * @see #SEPARATION_BY_COURT
99 * @model
100 * @generated
101 * @ordered
102 */
103 public static final int SEPARATION_BY_COURT_VALUE = 3;
104
105 /**
106 * An array of all the '<em><b>Separation Causes</b></em>' enumerators.
107 * <!-- begin-user-doc -->
108 * <!-- end-user-doc -->
109 * @generated
110 */
111 private static final Separation_Causes[] VALUES_ARRAY =
112 new Separation_Causes[] {
113 NONE,
114 DIVORCE,
115 SEPARATION_DE_FAIT,
116 SEPARATION_BY_COURT,
117 };
118
119 /**
120 * A public read-only list of all the '<em><b>Separation Causes</b></em>' enumerators.
121 * <!-- begin-user-doc -->
122 * <!-- end-user-doc -->
123 * @generated
124 */
125 public static final List<Separation_Causes> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
126
127 /**
128 * Returns the '<em><b>Separation Causes</b></em>' literal with the specified literal value.
129 * <!-- begin-user-doc -->
130 * <!-- end-user-doc -->
131 * @param literal the literal.
132 * @return the matching enumerator or <code>null</code>.
133 * @generated
134 */
135 public static Separation_Causes get(String literal) {
136 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
137 Separation_Causes result = VALUES_ARRAY[i];
138 if (result.toString().equals(literal)) {
139 return result;
140 }
141 }
142 return null;
143 }
144
145 /**
146 * Returns the '<em><b>Separation Causes</b></em>' literal with the specified name.
147 * <!-- begin-user-doc -->
148 * <!-- end-user-doc -->
149 * @param name the name.
150 * @return the matching enumerator or <code>null</code>.
151 * @generated
152 */
153 public static Separation_Causes getByName(String name) {
154 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
155 Separation_Causes result = VALUES_ARRAY[i];
156 if (result.getName().equals(name)) {
157 return result;
158 }
159 }
160 return null;
161 }
162
163 /**
164 * Returns the '<em><b>Separation Causes</b></em>' literal with the specified integer value.
165 * <!-- begin-user-doc -->
166 * <!-- end-user-doc -->
167 * @param value the integer value.
168 * @return the matching enumerator or <code>null</code>.
169 * @generated
170 */
171 public static Separation_Causes get(int value) {
172 switch (value) {
173 case NONE_VALUE: return NONE;
174 case DIVORCE_VALUE: return DIVORCE;
175 case SEPARATION_DE_FAIT_VALUE: return SEPARATION_DE_FAIT;
176 case SEPARATION_BY_COURT_VALUE: return SEPARATION_BY_COURT;
177 }
178 return null;
179 }
180
181 /**
182 * <!-- begin-user-doc -->
183 * <!-- end-user-doc -->
184 * @generated
185 */
186 private final int value;
187
188 /**
189 * <!-- begin-user-doc -->
190 * <!-- end-user-doc -->
191 * @generated
192 */
193 private final String name;
194
195 /**
196 * <!-- begin-user-doc -->
197 * <!-- end-user-doc -->
198 * @generated
199 */
200 private final String literal;
201
202 /**
203 * Only this class can construct instances.
204 * <!-- begin-user-doc -->
205 * <!-- end-user-doc -->
206 * @generated
207 */
208 private Separation_Causes(int value, String name, String literal) {
209 this.value = value;
210 this.name = name;
211 this.literal = literal;
212 }
213
214 /**
215 * <!-- begin-user-doc -->
216 * <!-- end-user-doc -->
217 * @generated
218 */
219 @Override
220 public int getValue() {
221 return value;
222 }
223
224 /**
225 * <!-- begin-user-doc -->
226 * <!-- end-user-doc -->
227 * @generated
228 */
229 @Override
230 public String getName() {
231 return name;
232 }
233
234 /**
235 * <!-- begin-user-doc -->
236 * <!-- end-user-doc -->
237 * @generated
238 */
239 @Override
240 public String getLiteral() {
241 return literal;
242 }
243
244 /**
245 * Returns the literal value of the enumerator, which is its string representation.
246 * <!-- begin-user-doc -->
247 * <!-- end-user-doc -->
248 * @generated
249 */
250 @Override
251 public String toString() {
252 return literal;
253 }
254
255} //Separation_Causes
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Special_Expense_DS.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Special_Expense_DS.java
new file mode 100644
index 00000000..e4d340b8
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Special_Expense_DS.java
@@ -0,0 +1,17 @@
1/**
2 */
3package TaxationWithRoot;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Special Expense DS</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see TaxationWithRoot.TaxationWithRootPackage#getSpecial_Expense_DS()
13 * @model
14 * @generated
15 */
16public interface Special_Expense_DS extends Expense {
17} // Special_Expense_DS
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Spousal_Expense_AC.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Spousal_Expense_AC.java
new file mode 100644
index 00000000..7a24a619
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Spousal_Expense_AC.java
@@ -0,0 +1,17 @@
1/**
2 */
3package TaxationWithRoot;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Spousal Expense AC</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see TaxationWithRoot.TaxationWithRootPackage#getSpousal_Expense_AC()
13 * @model
14 * @generated
15 */
16public interface Spousal_Expense_AC extends Expense {
17} // Spousal_Expense_AC
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Tax_Card.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Tax_Card.java
new file mode 100644
index 00000000..fd668208
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Tax_Card.java
@@ -0,0 +1,810 @@
1/**
2 */
3package TaxationWithRoot;
4
5import org.eclipse.emf.common.util.EList;
6
7import org.eclipse.emf.ecore.EObject;
8
9/**
10 * <!-- begin-user-doc -->
11 * A representation of the model object '<em><b>Tax Card</b></em>'.
12 * <!-- end-user-doc -->
13 *
14 * <p>
15 * The following features are supported:
16 * </p>
17 * <ul>
18 * <li>{@link TaxationWithRoot.Tax_Card#getCard_identifier <em>Card identifier</em>}</li>
19 * <li>{@link TaxationWithRoot.Tax_Card#getTax_office <em>Tax office</em>}</li>
20 * <li>{@link TaxationWithRoot.Tax_Card#getPercentage_of_witholding <em>Percentage of witholding</em>}</li>
21 * <li>{@link TaxationWithRoot.Tax_Card#getTax_payers_name_surname <em>Tax payers name surname</em>}</li>
22 * <li>{@link TaxationWithRoot.Tax_Card#getTax_payers_partner_name_surname <em>Tax payers partner name surname</em>}</li>
23 * <li>{@link TaxationWithRoot.Tax_Card#getTax_payers_address <em>Tax payers address</em>}</li>
24 * <li>{@link TaxationWithRoot.Tax_Card#getJobs_Employer_SSNo <em>Jobs Employer SS No</em>}</li>
25 * <li>{@link TaxationWithRoot.Tax_Card#getJobs_employers_name <em>Jobs employers name</em>}</li>
26 * <li>{@link TaxationWithRoot.Tax_Card#getJobs_activity_type <em>Jobs activity type</em>}</li>
27 * <li>{@link TaxationWithRoot.Tax_Card#getJobs_place_of_work <em>Jobs place of work</em>}</li>
28 * <li>{@link TaxationWithRoot.Tax_Card#getDeduction_FD_daily <em>Deduction FD daily</em>}</li>
29 * <li>{@link TaxationWithRoot.Tax_Card#getDeduction_FD_monthly <em>Deduction FD monthly</em>}</li>
30 * <li>{@link TaxationWithRoot.Tax_Card#getDeduction_AC_daily <em>Deduction AC daily</em>}</li>
31 * <li>{@link TaxationWithRoot.Tax_Card#getDeduction_AC_monthly <em>Deduction AC monthly</em>}</li>
32 * <li>{@link TaxationWithRoot.Tax_Card#getDeduction_AC_yearly <em>Deduction AC yearly</em>}</li>
33 * <li>{@link TaxationWithRoot.Tax_Card#getDeduction_CE_daily <em>Deduction CE daily</em>}</li>
34 * <li>{@link TaxationWithRoot.Tax_Card#getDeduction_CE_monthly <em>Deduction CE monthly</em>}</li>
35 * <li>{@link TaxationWithRoot.Tax_Card#getDeduction_CE_yearly <em>Deduction CE yearly</em>}</li>
36 * <li>{@link TaxationWithRoot.Tax_Card#getDeduction_DS_daily <em>Deduction DS daily</em>}</li>
37 * <li>{@link TaxationWithRoot.Tax_Card#getDeduction_DS_monthly <em>Deduction DS monthly</em>}</li>
38 * <li>{@link TaxationWithRoot.Tax_Card#getDeduction_FO_daily <em>Deduction FO daily</em>}</li>
39 * <li>{@link TaxationWithRoot.Tax_Card#getDeduction_FO_monthly <em>Deduction FO monthly</em>}</li>
40 * <li>{@link TaxationWithRoot.Tax_Card#getDeduction_FO_yearly <em>Deduction FO yearly</em>}</li>
41 * <li>{@link TaxationWithRoot.Tax_Card#getCredit_CIS_daily <em>Credit CIS daily</em>}</li>
42 * <li>{@link TaxationWithRoot.Tax_Card#getCredit_CIS_monthly <em>Credit CIS monthly</em>}</li>
43 * <li>{@link TaxationWithRoot.Tax_Card#getCredit_CIM_daily <em>Credit CIM daily</em>}</li>
44 * <li>{@link TaxationWithRoot.Tax_Card#isValidity <em>Validity</em>}</li>
45 * <li>{@link TaxationWithRoot.Tax_Card#getIncome_Tax_Credit <em>Income Tax Credit</em>}</li>
46 * <li>{@link TaxationWithRoot.Tax_Card#getPrevious <em>Previous</em>}</li>
47 * <li>{@link TaxationWithRoot.Tax_Card#getCurrent_tax_card <em>Current tax card</em>}</li>
48 * <li>{@link TaxationWithRoot.Tax_Card#getCredit_CIM_yearly <em>Credit CIM yearly</em>}</li>
49 * <li>{@link TaxationWithRoot.Tax_Card#getDeduction_DS_Alimony_yearly <em>Deduction DS Alimony yearly</em>}</li>
50 * <li>{@link TaxationWithRoot.Tax_Card#getDeduction_DS_Debt_yearly <em>Deduction DS Debt yearly</em>}</li>
51 * <li>{@link TaxationWithRoot.Tax_Card#getIncome <em>Income</em>}</li>
52 * </ul>
53 *
54 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card()
55 * @model
56 * @generated
57 */
58public interface Tax_Card extends EObject {
59 /**
60 * Returns the value of the '<em><b>Card identifier</b></em>' attribute.
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @return the value of the '<em>Card identifier</em>' attribute.
64 * @see #setCard_identifier(String)
65 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Card_identifier()
66 * @model id="true"
67 * @generated
68 */
69 String getCard_identifier();
70
71 /**
72 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getCard_identifier <em>Card identifier</em>}' attribute.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @param value the new value of the '<em>Card identifier</em>' attribute.
76 * @see #getCard_identifier()
77 * @generated
78 */
79 void setCard_identifier(String value);
80
81 /**
82 * Returns the value of the '<em><b>Tax office</b></em>' attribute.
83 * The literals are from the enumeration {@link TaxationWithRoot.Tax_Office}.
84 * <!-- begin-user-doc -->
85 * <!-- end-user-doc -->
86 * @return the value of the '<em>Tax office</em>' attribute.
87 * @see TaxationWithRoot.Tax_Office
88 * @see #setTax_office(Tax_Office)
89 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Tax_office()
90 * @model required="true"
91 * @generated
92 */
93 Tax_Office getTax_office();
94
95 /**
96 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getTax_office <em>Tax office</em>}' attribute.
97 * <!-- begin-user-doc -->
98 * <!-- end-user-doc -->
99 * @param value the new value of the '<em>Tax office</em>' attribute.
100 * @see TaxationWithRoot.Tax_Office
101 * @see #getTax_office()
102 * @generated
103 */
104 void setTax_office(Tax_Office value);
105
106 /**
107 * Returns the value of the '<em><b>Percentage of witholding</b></em>' attribute.
108 * <!-- begin-user-doc -->
109 * <!-- end-user-doc -->
110 * @return the value of the '<em>Percentage of witholding</em>' attribute.
111 * @see #setPercentage_of_witholding(double)
112 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Percentage_of_witholding()
113 * @model required="true"
114 * @generated
115 */
116 double getPercentage_of_witholding();
117
118 /**
119 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getPercentage_of_witholding <em>Percentage of witholding</em>}' attribute.
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @param value the new value of the '<em>Percentage of witholding</em>' attribute.
123 * @see #getPercentage_of_witholding()
124 * @generated
125 */
126 void setPercentage_of_witholding(double value);
127
128 /**
129 * Returns the value of the '<em><b>Tax payers name surname</b></em>' attribute list.
130 * The list contents are of type {@link java.lang.String}.
131 * <!-- begin-user-doc -->
132 * <!-- end-user-doc -->
133 * @return the value of the '<em>Tax payers name surname</em>' attribute list.
134 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Tax_payers_name_surname()
135 * @model ordered="false"
136 * @generated
137 */
138 EList<String> getTax_payers_name_surname();
139
140 /**
141 * Returns the value of the '<em><b>Tax payers partner name surname</b></em>' attribute list.
142 * The list contents are of type {@link java.lang.String}.
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @return the value of the '<em>Tax payers partner name surname</em>' attribute list.
146 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Tax_payers_partner_name_surname()
147 * @model ordered="false"
148 * @generated
149 */
150 EList<String> getTax_payers_partner_name_surname();
151
152 /**
153 * Returns the value of the '<em><b>Tax payers address</b></em>' reference.
154 * <!-- begin-user-doc -->
155 * <!-- end-user-doc -->
156 * @return the value of the '<em>Tax payers address</em>' reference.
157 * @see #setTax_payers_address(Address)
158 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Tax_payers_address()
159 * @model
160 * @generated
161 */
162 Address getTax_payers_address();
163
164 /**
165 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getTax_payers_address <em>Tax payers address</em>}' reference.
166 * <!-- begin-user-doc -->
167 * <!-- end-user-doc -->
168 * @param value the new value of the '<em>Tax payers address</em>' reference.
169 * @see #getTax_payers_address()
170 * @generated
171 */
172 void setTax_payers_address(Address value);
173
174 /**
175 * Returns the value of the '<em><b>Jobs Employer SS No</b></em>' attribute.
176 * <!-- begin-user-doc -->
177 * <!-- end-user-doc -->
178 * @return the value of the '<em>Jobs Employer SS No</em>' attribute.
179 * @see #setJobs_Employer_SSNo(String)
180 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Jobs_Employer_SSNo()
181 * @model unique="false" ordered="false"
182 * @generated
183 */
184 String getJobs_Employer_SSNo();
185
186 /**
187 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getJobs_Employer_SSNo <em>Jobs Employer SS No</em>}' attribute.
188 * <!-- begin-user-doc -->
189 * <!-- end-user-doc -->
190 * @param value the new value of the '<em>Jobs Employer SS No</em>' attribute.
191 * @see #getJobs_Employer_SSNo()
192 * @generated
193 */
194 void setJobs_Employer_SSNo(String value);
195
196 /**
197 * Returns the value of the '<em><b>Jobs employers name</b></em>' attribute.
198 * <!-- begin-user-doc -->
199 * <!-- end-user-doc -->
200 * @return the value of the '<em>Jobs employers name</em>' attribute.
201 * @see #setJobs_employers_name(String)
202 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Jobs_employers_name()
203 * @model unique="false" ordered="false"
204 * @generated
205 */
206 String getJobs_employers_name();
207
208 /**
209 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getJobs_employers_name <em>Jobs employers name</em>}' attribute.
210 * <!-- begin-user-doc -->
211 * <!-- end-user-doc -->
212 * @param value the new value of the '<em>Jobs employers name</em>' attribute.
213 * @see #getJobs_employers_name()
214 * @generated
215 */
216 void setJobs_employers_name(String value);
217
218 /**
219 * Returns the value of the '<em><b>Jobs activity type</b></em>' attribute.
220 * The literals are from the enumeration {@link TaxationWithRoot.Job_Activity}.
221 * <!-- begin-user-doc -->
222 * <!-- end-user-doc -->
223 * @return the value of the '<em>Jobs activity type</em>' attribute.
224 * @see TaxationWithRoot.Job_Activity
225 * @see #setJobs_activity_type(Job_Activity)
226 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Jobs_activity_type()
227 * @model required="true"
228 * @generated
229 */
230 Job_Activity getJobs_activity_type();
231
232 /**
233 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getJobs_activity_type <em>Jobs activity type</em>}' attribute.
234 * <!-- begin-user-doc -->
235 * <!-- end-user-doc -->
236 * @param value the new value of the '<em>Jobs activity type</em>' attribute.
237 * @see TaxationWithRoot.Job_Activity
238 * @see #getJobs_activity_type()
239 * @generated
240 */
241 void setJobs_activity_type(Job_Activity value);
242
243 /**
244 * Returns the value of the '<em><b>Jobs place of work</b></em>' attribute.
245 * The literals are from the enumeration {@link TaxationWithRoot.Town}.
246 * <!-- begin-user-doc -->
247 * <!-- end-user-doc -->
248 * @return the value of the '<em>Jobs place of work</em>' attribute.
249 * @see TaxationWithRoot.Town
250 * @see #setJobs_place_of_work(Town)
251 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Jobs_place_of_work()
252 * @model required="true"
253 * @generated
254 */
255 Town getJobs_place_of_work();
256
257 /**
258 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getJobs_place_of_work <em>Jobs place of work</em>}' attribute.
259 * <!-- begin-user-doc -->
260 * <!-- end-user-doc -->
261 * @param value the new value of the '<em>Jobs place of work</em>' attribute.
262 * @see TaxationWithRoot.Town
263 * @see #getJobs_place_of_work()
264 * @generated
265 */
266 void setJobs_place_of_work(Town value);
267
268 /**
269 * Returns the value of the '<em><b>Deduction FD daily</b></em>' attribute.
270 * The default value is <code>"0.0"</code>.
271 * <!-- begin-user-doc -->
272 * <!-- end-user-doc -->
273 * @return the value of the '<em>Deduction FD daily</em>' attribute.
274 * @see #setDeduction_FD_daily(double)
275 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Deduction_FD_daily()
276 * @model default="0.0" unique="false" required="true" ordered="false"
277 * @generated
278 */
279 double getDeduction_FD_daily();
280
281 /**
282 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getDeduction_FD_daily <em>Deduction FD daily</em>}' attribute.
283 * <!-- begin-user-doc -->
284 * <!-- end-user-doc -->
285 * @param value the new value of the '<em>Deduction FD daily</em>' attribute.
286 * @see #getDeduction_FD_daily()
287 * @generated
288 */
289 void setDeduction_FD_daily(double value);
290
291 /**
292 * Returns the value of the '<em><b>Deduction FD monthly</b></em>' attribute.
293 * The default value is <code>"0.0"</code>.
294 * <!-- begin-user-doc -->
295 * <!-- end-user-doc -->
296 * @return the value of the '<em>Deduction FD monthly</em>' attribute.
297 * @see #setDeduction_FD_monthly(double)
298 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Deduction_FD_monthly()
299 * @model default="0.0" unique="false" required="true" ordered="false"
300 * @generated
301 */
302 double getDeduction_FD_monthly();
303
304 /**
305 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getDeduction_FD_monthly <em>Deduction FD monthly</em>}' attribute.
306 * <!-- begin-user-doc -->
307 * <!-- end-user-doc -->
308 * @param value the new value of the '<em>Deduction FD monthly</em>' attribute.
309 * @see #getDeduction_FD_monthly()
310 * @generated
311 */
312 void setDeduction_FD_monthly(double value);
313
314 /**
315 * Returns the value of the '<em><b>Deduction AC daily</b></em>' attribute.
316 * The default value is <code>"0.0"</code>.
317 * <!-- begin-user-doc -->
318 * <!-- end-user-doc -->
319 * @return the value of the '<em>Deduction AC daily</em>' attribute.
320 * @see #setDeduction_AC_daily(double)
321 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Deduction_AC_daily()
322 * @model default="0.0" unique="false" required="true"
323 * @generated
324 */
325 double getDeduction_AC_daily();
326
327 /**
328 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getDeduction_AC_daily <em>Deduction AC daily</em>}' attribute.
329 * <!-- begin-user-doc -->
330 * <!-- end-user-doc -->
331 * @param value the new value of the '<em>Deduction AC daily</em>' attribute.
332 * @see #getDeduction_AC_daily()
333 * @generated
334 */
335 void setDeduction_AC_daily(double value);
336
337 /**
338 * Returns the value of the '<em><b>Deduction AC monthly</b></em>' attribute.
339 * The default value is <code>"0.0"</code>.
340 * <!-- begin-user-doc -->
341 * <!-- end-user-doc -->
342 * @return the value of the '<em>Deduction AC monthly</em>' attribute.
343 * @see #setDeduction_AC_monthly(double)
344 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Deduction_AC_monthly()
345 * @model default="0.0" unique="false" required="true"
346 * @generated
347 */
348 double getDeduction_AC_monthly();
349
350 /**
351 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getDeduction_AC_monthly <em>Deduction AC monthly</em>}' attribute.
352 * <!-- begin-user-doc -->
353 * <!-- end-user-doc -->
354 * @param value the new value of the '<em>Deduction AC monthly</em>' attribute.
355 * @see #getDeduction_AC_monthly()
356 * @generated
357 */
358 void setDeduction_AC_monthly(double value);
359
360 /**
361 * Returns the value of the '<em><b>Deduction AC yearly</b></em>' attribute.
362 * The default value is <code>"0.0"</code>.
363 * <!-- begin-user-doc -->
364 * <!-- end-user-doc -->
365 * @return the value of the '<em>Deduction AC yearly</em>' attribute.
366 * @see #setDeduction_AC_yearly(double)
367 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Deduction_AC_yearly()
368 * @model default="0.0" unique="false" required="true"
369 * @generated
370 */
371 double getDeduction_AC_yearly();
372
373 /**
374 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getDeduction_AC_yearly <em>Deduction AC yearly</em>}' attribute.
375 * <!-- begin-user-doc -->
376 * <!-- end-user-doc -->
377 * @param value the new value of the '<em>Deduction AC yearly</em>' attribute.
378 * @see #getDeduction_AC_yearly()
379 * @generated
380 */
381 void setDeduction_AC_yearly(double value);
382
383 /**
384 * Returns the value of the '<em><b>Deduction CE daily</b></em>' attribute.
385 * The default value is <code>"0.0"</code>.
386 * <!-- begin-user-doc -->
387 * <!-- end-user-doc -->
388 * @return the value of the '<em>Deduction CE daily</em>' attribute.
389 * @see #setDeduction_CE_daily(double)
390 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Deduction_CE_daily()
391 * @model default="0.0" unique="false" required="true"
392 * @generated
393 */
394 double getDeduction_CE_daily();
395
396 /**
397 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getDeduction_CE_daily <em>Deduction CE daily</em>}' attribute.
398 * <!-- begin-user-doc -->
399 * <!-- end-user-doc -->
400 * @param value the new value of the '<em>Deduction CE daily</em>' attribute.
401 * @see #getDeduction_CE_daily()
402 * @generated
403 */
404 void setDeduction_CE_daily(double value);
405
406 /**
407 * Returns the value of the '<em><b>Deduction CE monthly</b></em>' attribute.
408 * The default value is <code>"0.0"</code>.
409 * <!-- begin-user-doc -->
410 * <!-- end-user-doc -->
411 * @return the value of the '<em>Deduction CE monthly</em>' attribute.
412 * @see #setDeduction_CE_monthly(double)
413 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Deduction_CE_monthly()
414 * @model default="0.0" unique="false" required="true"
415 * @generated
416 */
417 double getDeduction_CE_monthly();
418
419 /**
420 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getDeduction_CE_monthly <em>Deduction CE monthly</em>}' attribute.
421 * <!-- begin-user-doc -->
422 * <!-- end-user-doc -->
423 * @param value the new value of the '<em>Deduction CE monthly</em>' attribute.
424 * @see #getDeduction_CE_monthly()
425 * @generated
426 */
427 void setDeduction_CE_monthly(double value);
428
429 /**
430 * Returns the value of the '<em><b>Deduction CE yearly</b></em>' attribute.
431 * The default value is <code>"0.0"</code>.
432 * <!-- begin-user-doc -->
433 * <!-- end-user-doc -->
434 * @return the value of the '<em>Deduction CE yearly</em>' attribute.
435 * @see #setDeduction_CE_yearly(double)
436 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Deduction_CE_yearly()
437 * @model default="0.0" unique="false" required="true"
438 * @generated
439 */
440 double getDeduction_CE_yearly();
441
442 /**
443 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getDeduction_CE_yearly <em>Deduction CE yearly</em>}' attribute.
444 * <!-- begin-user-doc -->
445 * <!-- end-user-doc -->
446 * @param value the new value of the '<em>Deduction CE yearly</em>' attribute.
447 * @see #getDeduction_CE_yearly()
448 * @generated
449 */
450 void setDeduction_CE_yearly(double value);
451
452 /**
453 * Returns the value of the '<em><b>Deduction DS daily</b></em>' attribute.
454 * The default value is <code>"0.0"</code>.
455 * <!-- begin-user-doc -->
456 * <!-- end-user-doc -->
457 * @return the value of the '<em>Deduction DS daily</em>' attribute.
458 * @see #setDeduction_DS_daily(double)
459 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Deduction_DS_daily()
460 * @model default="0.0" unique="false" required="true"
461 * @generated
462 */
463 double getDeduction_DS_daily();
464
465 /**
466 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getDeduction_DS_daily <em>Deduction DS daily</em>}' attribute.
467 * <!-- begin-user-doc -->
468 * <!-- end-user-doc -->
469 * @param value the new value of the '<em>Deduction DS daily</em>' attribute.
470 * @see #getDeduction_DS_daily()
471 * @generated
472 */
473 void setDeduction_DS_daily(double value);
474
475 /**
476 * Returns the value of the '<em><b>Deduction DS monthly</b></em>' attribute.
477 * The default value is <code>"0.0"</code>.
478 * <!-- begin-user-doc -->
479 * <!-- end-user-doc -->
480 * @return the value of the '<em>Deduction DS monthly</em>' attribute.
481 * @see #setDeduction_DS_monthly(double)
482 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Deduction_DS_monthly()
483 * @model default="0.0" required="true"
484 * @generated
485 */
486 double getDeduction_DS_monthly();
487
488 /**
489 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getDeduction_DS_monthly <em>Deduction DS monthly</em>}' attribute.
490 * <!-- begin-user-doc -->
491 * <!-- end-user-doc -->
492 * @param value the new value of the '<em>Deduction DS monthly</em>' attribute.
493 * @see #getDeduction_DS_monthly()
494 * @generated
495 */
496 void setDeduction_DS_monthly(double value);
497
498 /**
499 * Returns the value of the '<em><b>Deduction FO daily</b></em>' attribute.
500 * The default value is <code>"0.0"</code>.
501 * <!-- begin-user-doc -->
502 * <!-- end-user-doc -->
503 * @return the value of the '<em>Deduction FO daily</em>' attribute.
504 * @see #setDeduction_FO_daily(double)
505 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Deduction_FO_daily()
506 * @model default="0.0" unique="false" required="true"
507 * @generated
508 */
509 double getDeduction_FO_daily();
510
511 /**
512 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getDeduction_FO_daily <em>Deduction FO daily</em>}' attribute.
513 * <!-- begin-user-doc -->
514 * <!-- end-user-doc -->
515 * @param value the new value of the '<em>Deduction FO daily</em>' attribute.
516 * @see #getDeduction_FO_daily()
517 * @generated
518 */
519 void setDeduction_FO_daily(double value);
520
521 /**
522 * Returns the value of the '<em><b>Deduction FO monthly</b></em>' attribute.
523 * The default value is <code>"0.0"</code>.
524 * <!-- begin-user-doc -->
525 * <!-- end-user-doc -->
526 * @return the value of the '<em>Deduction FO monthly</em>' attribute.
527 * @see #setDeduction_FO_monthly(double)
528 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Deduction_FO_monthly()
529 * @model default="0.0" unique="false" required="true"
530 * @generated
531 */
532 double getDeduction_FO_monthly();
533
534 /**
535 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getDeduction_FO_monthly <em>Deduction FO monthly</em>}' attribute.
536 * <!-- begin-user-doc -->
537 * <!-- end-user-doc -->
538 * @param value the new value of the '<em>Deduction FO monthly</em>' attribute.
539 * @see #getDeduction_FO_monthly()
540 * @generated
541 */
542 void setDeduction_FO_monthly(double value);
543
544 /**
545 * Returns the value of the '<em><b>Deduction FO yearly</b></em>' attribute.
546 * The default value is <code>"0.0"</code>.
547 * <!-- begin-user-doc -->
548 * <!-- end-user-doc -->
549 * @return the value of the '<em>Deduction FO yearly</em>' attribute.
550 * @see #setDeduction_FO_yearly(double)
551 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Deduction_FO_yearly()
552 * @model default="0.0" unique="false" required="true"
553 * @generated
554 */
555 double getDeduction_FO_yearly();
556
557 /**
558 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getDeduction_FO_yearly <em>Deduction FO yearly</em>}' attribute.
559 * <!-- begin-user-doc -->
560 * <!-- end-user-doc -->
561 * @param value the new value of the '<em>Deduction FO yearly</em>' attribute.
562 * @see #getDeduction_FO_yearly()
563 * @generated
564 */
565 void setDeduction_FO_yearly(double value);
566
567 /**
568 * Returns the value of the '<em><b>Credit CIS daily</b></em>' attribute.
569 * The default value is <code>"0.0"</code>.
570 * <!-- begin-user-doc -->
571 * <!-- end-user-doc -->
572 * @return the value of the '<em>Credit CIS daily</em>' attribute.
573 * @see #setCredit_CIS_daily(double)
574 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Credit_CIS_daily()
575 * @model default="0.0" unique="false" required="true"
576 * @generated
577 */
578 double getCredit_CIS_daily();
579
580 /**
581 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getCredit_CIS_daily <em>Credit CIS daily</em>}' attribute.
582 * <!-- begin-user-doc -->
583 * <!-- end-user-doc -->
584 * @param value the new value of the '<em>Credit CIS daily</em>' attribute.
585 * @see #getCredit_CIS_daily()
586 * @generated
587 */
588 void setCredit_CIS_daily(double value);
589
590 /**
591 * Returns the value of the '<em><b>Credit CIS monthly</b></em>' attribute.
592 * The default value is <code>"0.0"</code>.
593 * <!-- begin-user-doc -->
594 * <!-- end-user-doc -->
595 * @return the value of the '<em>Credit CIS monthly</em>' attribute.
596 * @see #setCredit_CIS_monthly(double)
597 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Credit_CIS_monthly()
598 * @model default="0.0" unique="false" required="true"
599 * @generated
600 */
601 double getCredit_CIS_monthly();
602
603 /**
604 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getCredit_CIS_monthly <em>Credit CIS monthly</em>}' attribute.
605 * <!-- begin-user-doc -->
606 * <!-- end-user-doc -->
607 * @param value the new value of the '<em>Credit CIS monthly</em>' attribute.
608 * @see #getCredit_CIS_monthly()
609 * @generated
610 */
611 void setCredit_CIS_monthly(double value);
612
613 /**
614 * Returns the value of the '<em><b>Credit CIM daily</b></em>' attribute.
615 * The default value is <code>"0.0"</code>.
616 * <!-- begin-user-doc -->
617 * <!-- end-user-doc -->
618 * @return the value of the '<em>Credit CIM daily</em>' attribute.
619 * @see #setCredit_CIM_daily(double)
620 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Credit_CIM_daily()
621 * @model default="0.0" unique="false" required="true"
622 * @generated
623 */
624 double getCredit_CIM_daily();
625
626 /**
627 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getCredit_CIM_daily <em>Credit CIM daily</em>}' attribute.
628 * <!-- begin-user-doc -->
629 * <!-- end-user-doc -->
630 * @param value the new value of the '<em>Credit CIM daily</em>' attribute.
631 * @see #getCredit_CIM_daily()
632 * @generated
633 */
634 void setCredit_CIM_daily(double value);
635
636 /**
637 * Returns the value of the '<em><b>Validity</b></em>' attribute.
638 * <!-- begin-user-doc -->
639 * <!-- end-user-doc -->
640 * @return the value of the '<em>Validity</em>' attribute.
641 * @see #setValidity(boolean)
642 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Validity()
643 * @model required="true"
644 * @generated
645 */
646 boolean isValidity();
647
648 /**
649 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#isValidity <em>Validity</em>}' attribute.
650 * <!-- begin-user-doc -->
651 * <!-- end-user-doc -->
652 * @param value the new value of the '<em>Validity</em>' attribute.
653 * @see #isValidity()
654 * @generated
655 */
656 void setValidity(boolean value);
657
658 /**
659 * Returns the value of the '<em><b>Income Tax Credit</b></em>' reference list.
660 * The list contents are of type {@link TaxationWithRoot.Income_Tax_Credit}.
661 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Income_Tax_Credit#getTaxation_Frame <em>Taxation Frame</em>}'.
662 * <!-- begin-user-doc -->
663 * <!-- end-user-doc -->
664 * @return the value of the '<em>Income Tax Credit</em>' reference list.
665 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Income_Tax_Credit()
666 * @see TaxationWithRoot.Income_Tax_Credit#getTaxation_Frame
667 * @model opposite="taxation_Frame" ordered="false"
668 * @generated
669 */
670 EList<Income_Tax_Credit> getIncome_Tax_Credit();
671
672 /**
673 * Returns the value of the '<em><b>Previous</b></em>' reference.
674 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Tax_Card#getCurrent_tax_card <em>Current tax card</em>}'.
675 * <!-- begin-user-doc -->
676 * <!-- end-user-doc -->
677 * @return the value of the '<em>Previous</em>' reference.
678 * @see #setPrevious(Tax_Card)
679 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Previous()
680 * @see TaxationWithRoot.Tax_Card#getCurrent_tax_card
681 * @model opposite="current_tax_card"
682 * @generated
683 */
684 Tax_Card getPrevious();
685
686 /**
687 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getPrevious <em>Previous</em>}' reference.
688 * <!-- begin-user-doc -->
689 * <!-- end-user-doc -->
690 * @param value the new value of the '<em>Previous</em>' reference.
691 * @see #getPrevious()
692 * @generated
693 */
694 void setPrevious(Tax_Card value);
695
696 /**
697 * Returns the value of the '<em><b>Current tax card</b></em>' reference.
698 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Tax_Card#getPrevious <em>Previous</em>}'.
699 * <!-- begin-user-doc -->
700 * <!-- end-user-doc -->
701 * @return the value of the '<em>Current tax card</em>' reference.
702 * @see #setCurrent_tax_card(Tax_Card)
703 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Current_tax_card()
704 * @see TaxationWithRoot.Tax_Card#getPrevious
705 * @model opposite="previous"
706 * @generated
707 */
708 Tax_Card getCurrent_tax_card();
709
710 /**
711 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getCurrent_tax_card <em>Current tax card</em>}' reference.
712 * <!-- begin-user-doc -->
713 * <!-- end-user-doc -->
714 * @param value the new value of the '<em>Current tax card</em>' reference.
715 * @see #getCurrent_tax_card()
716 * @generated
717 */
718 void setCurrent_tax_card(Tax_Card value);
719
720 /**
721 * Returns the value of the '<em><b>Credit CIM yearly</b></em>' attribute.
722 * <!-- begin-user-doc -->
723 * <!-- end-user-doc -->
724 * @return the value of the '<em>Credit CIM yearly</em>' attribute.
725 * @see #setCredit_CIM_yearly(double)
726 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Credit_CIM_yearly()
727 * @model required="true" ordered="false"
728 * @generated
729 */
730 double getCredit_CIM_yearly();
731
732 /**
733 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getCredit_CIM_yearly <em>Credit CIM yearly</em>}' attribute.
734 * <!-- begin-user-doc -->
735 * <!-- end-user-doc -->
736 * @param value the new value of the '<em>Credit CIM yearly</em>' attribute.
737 * @see #getCredit_CIM_yearly()
738 * @generated
739 */
740 void setCredit_CIM_yearly(double value);
741
742 /**
743 * Returns the value of the '<em><b>Deduction DS Alimony yearly</b></em>' attribute.
744 * <!-- begin-user-doc -->
745 * <!-- end-user-doc -->
746 * @return the value of the '<em>Deduction DS Alimony yearly</em>' attribute.
747 * @see #setDeduction_DS_Alimony_yearly(double)
748 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Deduction_DS_Alimony_yearly()
749 * @model required="true" ordered="false"
750 * @generated
751 */
752 double getDeduction_DS_Alimony_yearly();
753
754 /**
755 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getDeduction_DS_Alimony_yearly <em>Deduction DS Alimony yearly</em>}' attribute.
756 * <!-- begin-user-doc -->
757 * <!-- end-user-doc -->
758 * @param value the new value of the '<em>Deduction DS Alimony yearly</em>' attribute.
759 * @see #getDeduction_DS_Alimony_yearly()
760 * @generated
761 */
762 void setDeduction_DS_Alimony_yearly(double value);
763
764 /**
765 * Returns the value of the '<em><b>Deduction DS Debt yearly</b></em>' attribute.
766 * <!-- begin-user-doc -->
767 * <!-- end-user-doc -->
768 * @return the value of the '<em>Deduction DS Debt yearly</em>' attribute.
769 * @see #setDeduction_DS_Debt_yearly(double)
770 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Deduction_DS_Debt_yearly()
771 * @model required="true" ordered="false"
772 * @generated
773 */
774 double getDeduction_DS_Debt_yearly();
775
776 /**
777 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getDeduction_DS_Debt_yearly <em>Deduction DS Debt yearly</em>}' attribute.
778 * <!-- begin-user-doc -->
779 * <!-- end-user-doc -->
780 * @param value the new value of the '<em>Deduction DS Debt yearly</em>' attribute.
781 * @see #getDeduction_DS_Debt_yearly()
782 * @generated
783 */
784 void setDeduction_DS_Debt_yearly(double value);
785
786 /**
787 * Returns the value of the '<em><b>Income</b></em>' container reference.
788 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Income#getTax_card <em>Tax card</em>}'.
789 * <!-- begin-user-doc -->
790 * <!-- end-user-doc -->
791 * @return the value of the '<em>Income</em>' container reference.
792 * @see #setIncome(Income)
793 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Card_Income()
794 * @see TaxationWithRoot.Income#getTax_card
795 * @model opposite="tax_card" required="true" transient="false"
796 * @generated
797 */
798 Income getIncome();
799
800 /**
801 * Sets the value of the '{@link TaxationWithRoot.Tax_Card#getIncome <em>Income</em>}' container reference.
802 * <!-- begin-user-doc -->
803 * <!-- end-user-doc -->
804 * @param value the new value of the '<em>Income</em>' container reference.
805 * @see #getIncome()
806 * @generated
807 */
808 void setIncome(Income value);
809
810} // Tax_Card
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Tax_Case.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Tax_Case.java
new file mode 100644
index 00000000..251a193f
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Tax_Case.java
@@ -0,0 +1,18 @@
1/**
2 */
3package TaxationWithRoot;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Tax Case</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Case()
14 * @model interface="true" abstract="true"
15 * @generated
16 */
17public interface Tax_Case extends EObject {
18} // Tax_Case
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Tax_Class_Category.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Tax_Class_Category.java
new file mode 100644
index 00000000..9cd31c90
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Tax_Class_Category.java
@@ -0,0 +1,232 @@
1/**
2 */
3package TaxationWithRoot;
4
5import java.util.Arrays;
6import java.util.Collections;
7import java.util.List;
8
9import org.eclipse.emf.common.util.Enumerator;
10
11/**
12 * <!-- begin-user-doc -->
13 * A representation of the literals of the enumeration '<em><b>Tax Class Category</b></em>',
14 * and utility methods for working with them.
15 * <!-- end-user-doc -->
16 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Class_Category()
17 * @model
18 * @generated
19 */
20public enum Tax_Class_Category implements Enumerator {
21 /**
22 * The '<em><b>One</b></em>' literal object.
23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc -->
25 * @see #ONE_VALUE
26 * @generated
27 * @ordered
28 */
29 ONE(0, "One", "One"),
30
31 /**
32 * The '<em><b>One A</b></em>' literal object.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @see #ONE_A_VALUE
36 * @generated
37 * @ordered
38 */
39 ONE_A(1, "One_A", "One_A"),
40
41 /**
42 * The '<em><b>Two</b></em>' literal object.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #TWO_VALUE
46 * @generated
47 * @ordered
48 */
49 TWO(2, "Two", "Two");
50
51 /**
52 * The '<em><b>One</b></em>' literal value.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #ONE
56 * @model name="One"
57 * @generated
58 * @ordered
59 */
60 public static final int ONE_VALUE = 0;
61
62 /**
63 * The '<em><b>One A</b></em>' literal value.
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @see #ONE_A
67 * @model name="One_A"
68 * @generated
69 * @ordered
70 */
71 public static final int ONE_A_VALUE = 1;
72
73 /**
74 * The '<em><b>Two</b></em>' literal value.
75 * <!-- begin-user-doc -->
76 * <!-- end-user-doc -->
77 * @see #TWO
78 * @model name="Two"
79 * @generated
80 * @ordered
81 */
82 public static final int TWO_VALUE = 2;
83
84 /**
85 * An array of all the '<em><b>Tax Class Category</b></em>' enumerators.
86 * <!-- begin-user-doc -->
87 * <!-- end-user-doc -->
88 * @generated
89 */
90 private static final Tax_Class_Category[] VALUES_ARRAY =
91 new Tax_Class_Category[] {
92 ONE,
93 ONE_A,
94 TWO,
95 };
96
97 /**
98 * A public read-only list of all the '<em><b>Tax Class Category</b></em>' enumerators.
99 * <!-- begin-user-doc -->
100 * <!-- end-user-doc -->
101 * @generated
102 */
103 public static final List<Tax_Class_Category> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
104
105 /**
106 * Returns the '<em><b>Tax Class Category</b></em>' literal with the specified literal value.
107 * <!-- begin-user-doc -->
108 * <!-- end-user-doc -->
109 * @param literal the literal.
110 * @return the matching enumerator or <code>null</code>.
111 * @generated
112 */
113 public static Tax_Class_Category get(String literal) {
114 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
115 Tax_Class_Category result = VALUES_ARRAY[i];
116 if (result.toString().equals(literal)) {
117 return result;
118 }
119 }
120 return null;
121 }
122
123 /**
124 * Returns the '<em><b>Tax Class Category</b></em>' literal with the specified name.
125 * <!-- begin-user-doc -->
126 * <!-- end-user-doc -->
127 * @param name the name.
128 * @return the matching enumerator or <code>null</code>.
129 * @generated
130 */
131 public static Tax_Class_Category getByName(String name) {
132 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
133 Tax_Class_Category result = VALUES_ARRAY[i];
134 if (result.getName().equals(name)) {
135 return result;
136 }
137 }
138 return null;
139 }
140
141 /**
142 * Returns the '<em><b>Tax Class Category</b></em>' literal with the specified integer value.
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @param value the integer value.
146 * @return the matching enumerator or <code>null</code>.
147 * @generated
148 */
149 public static Tax_Class_Category get(int value) {
150 switch (value) {
151 case ONE_VALUE: return ONE;
152 case ONE_A_VALUE: return ONE_A;
153 case TWO_VALUE: return TWO;
154 }
155 return null;
156 }
157
158 /**
159 * <!-- begin-user-doc -->
160 * <!-- end-user-doc -->
161 * @generated
162 */
163 private final int value;
164
165 /**
166 * <!-- begin-user-doc -->
167 * <!-- end-user-doc -->
168 * @generated
169 */
170 private final String name;
171
172 /**
173 * <!-- begin-user-doc -->
174 * <!-- end-user-doc -->
175 * @generated
176 */
177 private final String literal;
178
179 /**
180 * Only this class can construct instances.
181 * <!-- begin-user-doc -->
182 * <!-- end-user-doc -->
183 * @generated
184 */
185 private Tax_Class_Category(int value, String name, String literal) {
186 this.value = value;
187 this.name = name;
188 this.literal = literal;
189 }
190
191 /**
192 * <!-- begin-user-doc -->
193 * <!-- end-user-doc -->
194 * @generated
195 */
196 @Override
197 public int getValue() {
198 return value;
199 }
200
201 /**
202 * <!-- begin-user-doc -->
203 * <!-- end-user-doc -->
204 * @generated
205 */
206 @Override
207 public String getName() {
208 return name;
209 }
210
211 /**
212 * <!-- begin-user-doc -->
213 * <!-- end-user-doc -->
214 * @generated
215 */
216 @Override
217 public String getLiteral() {
218 return literal;
219 }
220
221 /**
222 * Returns the literal value of the enumerator, which is its string representation.
223 * <!-- begin-user-doc -->
224 * <!-- end-user-doc -->
225 * @generated
226 */
227 @Override
228 public String toString() {
229 return literal;
230 }
231
232} //Tax_Class_Category
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Tax_Office.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Tax_Office.java
new file mode 100644
index 00000000..50a31c3a
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Tax_Office.java
@@ -0,0 +1,255 @@
1/**
2 */
3package TaxationWithRoot;
4
5import java.util.Arrays;
6import java.util.Collections;
7import java.util.List;
8
9import org.eclipse.emf.common.util.Enumerator;
10
11/**
12 * <!-- begin-user-doc -->
13 * A representation of the literals of the enumeration '<em><b>Tax Office</b></em>',
14 * and utility methods for working with them.
15 * <!-- end-user-doc -->
16 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Office()
17 * @model
18 * @generated
19 */
20public enum Tax_Office implements Enumerator {
21 /**
22 * The '<em><b>RTS 2</b></em>' literal object.
23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc -->
25 * @see #RTS_2_VALUE
26 * @generated
27 * @ordered
28 */
29 RTS_2(0, "RTS_2", "RTS_2"),
30
31 /**
32 * The '<em><b>RTS 3</b></em>' literal object.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @see #RTS_3_VALUE
36 * @generated
37 * @ordered
38 */
39 RTS_3(1, "RTS_3", "RTS_3"),
40
41 /**
42 * The '<em><b>RTS 4</b></em>' literal object.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #RTS_4_VALUE
46 * @generated
47 * @ordered
48 */
49 RTS_4(2, "RTS_4", "RTS_4"),
50
51 /**
52 * The '<em><b>RTS 5</b></em>' literal object.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #RTS_5_VALUE
56 * @generated
57 * @ordered
58 */
59 RTS_5(3, "RTS_5", "RTS_5");
60
61 /**
62 * The '<em><b>RTS 2</b></em>' literal value.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @see #RTS_2
66 * @model
67 * @generated
68 * @ordered
69 */
70 public static final int RTS_2_VALUE = 0;
71
72 /**
73 * The '<em><b>RTS 3</b></em>' literal value.
74 * <!-- begin-user-doc -->
75 * <!-- end-user-doc -->
76 * @see #RTS_3
77 * @model
78 * @generated
79 * @ordered
80 */
81 public static final int RTS_3_VALUE = 1;
82
83 /**
84 * The '<em><b>RTS 4</b></em>' literal value.
85 * <!-- begin-user-doc -->
86 * <!-- end-user-doc -->
87 * @see #RTS_4
88 * @model
89 * @generated
90 * @ordered
91 */
92 public static final int RTS_4_VALUE = 2;
93
94 /**
95 * The '<em><b>RTS 5</b></em>' literal value.
96 * <!-- begin-user-doc -->
97 * <!-- end-user-doc -->
98 * @see #RTS_5
99 * @model
100 * @generated
101 * @ordered
102 */
103 public static final int RTS_5_VALUE = 3;
104
105 /**
106 * An array of all the '<em><b>Tax Office</b></em>' enumerators.
107 * <!-- begin-user-doc -->
108 * <!-- end-user-doc -->
109 * @generated
110 */
111 private static final Tax_Office[] VALUES_ARRAY =
112 new Tax_Office[] {
113 RTS_2,
114 RTS_3,
115 RTS_4,
116 RTS_5,
117 };
118
119 /**
120 * A public read-only list of all the '<em><b>Tax Office</b></em>' enumerators.
121 * <!-- begin-user-doc -->
122 * <!-- end-user-doc -->
123 * @generated
124 */
125 public static final List<Tax_Office> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
126
127 /**
128 * Returns the '<em><b>Tax Office</b></em>' literal with the specified literal value.
129 * <!-- begin-user-doc -->
130 * <!-- end-user-doc -->
131 * @param literal the literal.
132 * @return the matching enumerator or <code>null</code>.
133 * @generated
134 */
135 public static Tax_Office get(String literal) {
136 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
137 Tax_Office result = VALUES_ARRAY[i];
138 if (result.toString().equals(literal)) {
139 return result;
140 }
141 }
142 return null;
143 }
144
145 /**
146 * Returns the '<em><b>Tax Office</b></em>' literal with the specified name.
147 * <!-- begin-user-doc -->
148 * <!-- end-user-doc -->
149 * @param name the name.
150 * @return the matching enumerator or <code>null</code>.
151 * @generated
152 */
153 public static Tax_Office getByName(String name) {
154 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
155 Tax_Office result = VALUES_ARRAY[i];
156 if (result.getName().equals(name)) {
157 return result;
158 }
159 }
160 return null;
161 }
162
163 /**
164 * Returns the '<em><b>Tax Office</b></em>' literal with the specified integer value.
165 * <!-- begin-user-doc -->
166 * <!-- end-user-doc -->
167 * @param value the integer value.
168 * @return the matching enumerator or <code>null</code>.
169 * @generated
170 */
171 public static Tax_Office get(int value) {
172 switch (value) {
173 case RTS_2_VALUE: return RTS_2;
174 case RTS_3_VALUE: return RTS_3;
175 case RTS_4_VALUE: return RTS_4;
176 case RTS_5_VALUE: return RTS_5;
177 }
178 return null;
179 }
180
181 /**
182 * <!-- begin-user-doc -->
183 * <!-- end-user-doc -->
184 * @generated
185 */
186 private final int value;
187
188 /**
189 * <!-- begin-user-doc -->
190 * <!-- end-user-doc -->
191 * @generated
192 */
193 private final String name;
194
195 /**
196 * <!-- begin-user-doc -->
197 * <!-- end-user-doc -->
198 * @generated
199 */
200 private final String literal;
201
202 /**
203 * Only this class can construct instances.
204 * <!-- begin-user-doc -->
205 * <!-- end-user-doc -->
206 * @generated
207 */
208 private Tax_Office(int value, String name, String literal) {
209 this.value = value;
210 this.name = name;
211 this.literal = literal;
212 }
213
214 /**
215 * <!-- begin-user-doc -->
216 * <!-- end-user-doc -->
217 * @generated
218 */
219 @Override
220 public int getValue() {
221 return value;
222 }
223
224 /**
225 * <!-- begin-user-doc -->
226 * <!-- end-user-doc -->
227 * @generated
228 */
229 @Override
230 public String getName() {
231 return name;
232 }
233
234 /**
235 * <!-- begin-user-doc -->
236 * <!-- end-user-doc -->
237 * @generated
238 */
239 @Override
240 public String getLiteral() {
241 return literal;
242 }
243
244 /**
245 * Returns the literal value of the enumerator, which is its string representation.
246 * <!-- begin-user-doc -->
247 * <!-- end-user-doc -->
248 * @generated
249 */
250 @Override
251 public String toString() {
252 return literal;
253 }
254
255} //Tax_Office
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Tax_Payer.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Tax_Payer.java
new file mode 100644
index 00000000..e2146172
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Tax_Payer.java
@@ -0,0 +1,104 @@
1/**
2 */
3package TaxationWithRoot;
4
5import org.eclipse.emf.common.util.EList;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Tax Payer</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link TaxationWithRoot.Tax_Payer#getDependents <em>Dependents</em>}</li>
17 * <li>{@link TaxationWithRoot.Tax_Payer#getFrom_agent <em>From agent</em>}</li>
18 * <li>{@link TaxationWithRoot.Tax_Payer#getIncomes <em>Incomes</em>}</li>
19 * <li>{@link TaxationWithRoot.Tax_Payer#getFrom_law <em>From law</em>}</li>
20 * </ul>
21 *
22 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Payer()
23 * @model abstract="true"
24 * annotation="duplicates"
25 * @generated
26 */
27public interface Tax_Payer extends Physical_Person, Tax_Case {
28 /**
29 * Returns the value of the '<em><b>Dependents</b></em>' containment reference list.
30 * The list contents are of type {@link TaxationWithRoot.Dependent}.
31 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Dependent#getResponsible_person <em>Responsible person</em>}'.
32 * <!-- begin-user-doc -->
33 * <!-- end-user-doc -->
34 * @return the value of the '<em>Dependents</em>' containment reference list.
35 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Payer_Dependents()
36 * @see TaxationWithRoot.Dependent#getResponsible_person
37 * @model opposite="responsible_person" containment="true" upper="6" ordered="false"
38 * @generated
39 */
40 EList<Dependent> getDependents();
41
42 /**
43 * Returns the value of the '<em><b>From agent</b></em>' containment reference.
44 * It is bidirectional and its opposite is '{@link TaxationWithRoot.FromAgent#getTaxPayer <em>Tax Payer</em>}'.
45 * <!-- begin-user-doc -->
46 * <!-- end-user-doc -->
47 * @return the value of the '<em>From agent</em>' containment reference.
48 * @see #setFrom_agent(FromAgent)
49 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Payer_From_agent()
50 * @see TaxationWithRoot.FromAgent#getTaxPayer
51 * @model opposite="taxPayer" containment="true" required="true"
52 * @generated
53 */
54 FromAgent getFrom_agent();
55
56 /**
57 * Sets the value of the '{@link TaxationWithRoot.Tax_Payer#getFrom_agent <em>From agent</em>}' containment reference.
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @param value the new value of the '<em>From agent</em>' containment reference.
61 * @see #getFrom_agent()
62 * @generated
63 */
64 void setFrom_agent(FromAgent value);
65
66 /**
67 * Returns the value of the '<em><b>Incomes</b></em>' containment reference list.
68 * The list contents are of type {@link TaxationWithRoot.Income}.
69 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Income#getTaxPayer <em>Tax Payer</em>}'.
70 * <!-- begin-user-doc -->
71 * <!-- end-user-doc -->
72 * @return the value of the '<em>Incomes</em>' containment reference list.
73 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Payer_Incomes()
74 * @see TaxationWithRoot.Income#getTaxPayer
75 * @model opposite="taxPayer" containment="true" required="true" ordered="false"
76 * @generated
77 */
78 EList<Income> getIncomes();
79
80 /**
81 * Returns the value of the '<em><b>From law</b></em>' containment reference.
82 * It is bidirectional and its opposite is '{@link TaxationWithRoot.FromLaw#getTaxPayer <em>Tax Payer</em>}'.
83 * <!-- begin-user-doc -->
84 * <!-- end-user-doc -->
85 * @return the value of the '<em>From law</em>' containment reference.
86 * @see #setFrom_law(FromLaw)
87 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Payer_From_law()
88 * @see TaxationWithRoot.FromLaw#getTaxPayer
89 * @model opposite="taxPayer" containment="true" required="true"
90 * @generated
91 */
92 FromLaw getFrom_law();
93
94 /**
95 * Sets the value of the '{@link TaxationWithRoot.Tax_Payer#getFrom_law <em>From law</em>}' containment reference.
96 * <!-- begin-user-doc -->
97 * <!-- end-user-doc -->
98 * @param value the new value of the '<em>From law</em>' containment reference.
99 * @see #getFrom_law()
100 * @generated
101 */
102 void setFrom_law(FromLaw value);
103
104} // Tax_Payer
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Tax_Property.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Tax_Property.java
new file mode 100644
index 00000000..807dde5b
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Tax_Property.java
@@ -0,0 +1,94 @@
1/**
2 */
3package TaxationWithRoot;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Tax Property</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link TaxationWithRoot.Tax_Property#getStarting_year <em>Starting year</em>}</li>
17 * <li>{@link TaxationWithRoot.Tax_Property#getId10 <em>Id10</em>}</li>
18 * <li>{@link TaxationWithRoot.Tax_Property#getUnion_record <em>Union record</em>}</li>
19 * </ul>
20 *
21 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Property()
22 * @model
23 * @generated
24 */
25public interface Tax_Property extends EObject {
26 /**
27 * Returns the value of the '<em><b>Starting year</b></em>' attribute.
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @return the value of the '<em>Starting year</em>' attribute.
31 * @see #setStarting_year(int)
32 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Property_Starting_year()
33 * @model required="true" ordered="false"
34 * @generated
35 */
36 int getStarting_year();
37
38 /**
39 * Sets the value of the '{@link TaxationWithRoot.Tax_Property#getStarting_year <em>Starting year</em>}' attribute.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @param value the new value of the '<em>Starting year</em>' attribute.
43 * @see #getStarting_year()
44 * @generated
45 */
46 void setStarting_year(int value);
47
48 /**
49 * Returns the value of the '<em><b>Id10</b></em>' attribute.
50 * <!-- begin-user-doc -->
51 * <!-- end-user-doc -->
52 * @return the value of the '<em>Id10</em>' attribute.
53 * @see #setId10(String)
54 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Property_Id10()
55 * @model id="true" required="true" ordered="false"
56 * @generated
57 */
58 String getId10();
59
60 /**
61 * Sets the value of the '{@link TaxationWithRoot.Tax_Property#getId10 <em>Id10</em>}' attribute.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @param value the new value of the '<em>Id10</em>' attribute.
65 * @see #getId10()
66 * @generated
67 */
68 void setId10(String value);
69
70 /**
71 * Returns the value of the '<em><b>Union record</b></em>' container reference.
72 * It is bidirectional and its opposite is '{@link TaxationWithRoot.Legal_Union_Record#getProperties <em>Properties</em>}'.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @return the value of the '<em>Union record</em>' container reference.
76 * @see #setUnion_record(Legal_Union_Record)
77 * @see TaxationWithRoot.TaxationWithRootPackage#getTax_Property_Union_record()
78 * @see TaxationWithRoot.Legal_Union_Record#getProperties
79 * @model opposite="properties" required="true" transient="false" ordered="false"
80 * @generated
81 */
82 Legal_Union_Record getUnion_record();
83
84 /**
85 * Sets the value of the '{@link TaxationWithRoot.Tax_Property#getUnion_record <em>Union record</em>}' container reference.
86 * <!-- begin-user-doc -->
87 * <!-- end-user-doc -->
88 * @param value the new value of the '<em>Union record</em>' container reference.
89 * @see #getUnion_record()
90 * @generated
91 */
92 void setUnion_record(Legal_Union_Record value);
93
94} // Tax_Property
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/TaxationWithRootFactory.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/TaxationWithRootFactory.java
new file mode 100644
index 00000000..0a7a3211
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/TaxationWithRootFactory.java
@@ -0,0 +1,420 @@
1/**
2 */
3package TaxationWithRoot;
4
5import org.eclipse.emf.ecore.EFactory;
6
7/**
8 * <!-- begin-user-doc -->
9 * The <b>Factory</b> for the model.
10 * It provides a create method for each non-abstract class of the model.
11 * <!-- end-user-doc -->
12 * @see TaxationWithRoot.TaxationWithRootPackage
13 * @generated
14 */
15public interface TaxationWithRootFactory extends EFactory {
16 /**
17 * The singleton instance of the factory.
18 * <!-- begin-user-doc -->
19 * <!-- end-user-doc -->
20 * @generated
21 */
22 TaxationWithRootFactory eINSTANCE = TaxationWithRoot.impl.TaxationWithRootFactoryImpl.init();
23
24 /**
25 * Returns a new object of class '<em>Income Tax</em>'.
26 * <!-- begin-user-doc -->
27 * <!-- end-user-doc -->
28 * @return a new object of class '<em>Income Tax</em>'.
29 * @generated
30 */
31 Income_Tax createIncome_Tax();
32
33 /**
34 * Returns a new object of class '<em>Physical Person</em>'.
35 * <!-- begin-user-doc -->
36 * <!-- end-user-doc -->
37 * @return a new object of class '<em>Physical Person</em>'.
38 * @generated
39 */
40 Physical_Person createPhysical_Person();
41
42 /**
43 * Returns a new object of class '<em>Address</em>'.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @return a new object of class '<em>Address</em>'.
47 * @generated
48 */
49 Address createAddress();
50
51 /**
52 * Returns a new object of class '<em>Expense</em>'.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @return a new object of class '<em>Expense</em>'.
56 * @generated
57 */
58 Expense createExpense();
59
60 /**
61 * Returns a new object of class '<em>Dependent</em>'.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @return a new object of class '<em>Dependent</em>'.
65 * @generated
66 */
67 Dependent createDependent();
68
69 /**
70 * Returns a new object of class '<em>External Allowance</em>'.
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @return a new object of class '<em>External Allowance</em>'.
74 * @generated
75 */
76 External_Allowance createExternal_Allowance();
77
78 /**
79 * Returns a new object of class '<em>Household</em>'.
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @return a new object of class '<em>Household</em>'.
83 * @generated
84 */
85 Household createHousehold();
86
87 /**
88 * Returns a new object of class '<em>Tax Property</em>'.
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @return a new object of class '<em>Tax Property</em>'.
92 * @generated
93 */
94 Tax_Property createTax_Property();
95
96 /**
97 * Returns a new object of class '<em>From Agent</em>'.
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @return a new object of class '<em>From Agent</em>'.
101 * @generated
102 */
103 FromAgent createFromAgent();
104
105 /**
106 * Returns a new object of class '<em>Tax Card</em>'.
107 * <!-- begin-user-doc -->
108 * <!-- end-user-doc -->
109 * @return a new object of class '<em>Tax Card</em>'.
110 * @generated
111 */
112 Tax_Card createTax_Card();
113
114 /**
115 * Returns a new object of class '<em>Income Tax Credit</em>'.
116 * <!-- begin-user-doc -->
117 * <!-- end-user-doc -->
118 * @return a new object of class '<em>Income Tax Credit</em>'.
119 * @generated
120 */
121 Income_Tax_Credit createIncome_Tax_Credit();
122
123 /**
124 * Returns a new object of class '<em>Income Detail</em>'.
125 * <!-- begin-user-doc -->
126 * <!-- end-user-doc -->
127 * @return a new object of class '<em>Income Detail</em>'.
128 * @generated
129 */
130 Income_Detail createIncome_Detail();
131
132 /**
133 * Returns a new object of class '<em>From Law</em>'.
134 * <!-- begin-user-doc -->
135 * <!-- end-user-doc -->
136 * @return a new object of class '<em>From Law</em>'.
137 * @generated
138 */
139 FromLaw createFromLaw();
140
141 /**
142 * Returns a new object of class '<em>Fiscal Address</em>'.
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @return a new object of class '<em>Fiscal Address</em>'.
146 * @generated
147 */
148 Fiscal_Address createFiscal_Address();
149
150 /**
151 * Returns a new object of class '<em>Habitual Address</em>'.
152 * <!-- begin-user-doc -->
153 * <!-- end-user-doc -->
154 * @return a new object of class '<em>Habitual Address</em>'.
155 * @generated
156 */
157 Habitual_Address createHabitual_Address();
158
159 /**
160 * Returns a new object of class '<em>Marriage Record</em>'.
161 * <!-- begin-user-doc -->
162 * <!-- end-user-doc -->
163 * @return a new object of class '<em>Marriage Record</em>'.
164 * @generated
165 */
166 Marriage_Record createMarriage_Record();
167
168 /**
169 * Returns a new object of class '<em>Non Resident Tax Payer</em>'.
170 * <!-- begin-user-doc -->
171 * <!-- end-user-doc -->
172 * @return a new object of class '<em>Non Resident Tax Payer</em>'.
173 * @generated
174 */
175 Non_Resident_Tax_Payer createNon_Resident_Tax_Payer();
176
177 /**
178 * Returns a new object of class '<em>Partnership Record</em>'.
179 * <!-- begin-user-doc -->
180 * <!-- end-user-doc -->
181 * @return a new object of class '<em>Partnership Record</em>'.
182 * @generated
183 */
184 Partnership_Record createPartnership_Record();
185
186 /**
187 * Returns a new object of class '<em>Resident Tax Payer</em>'.
188 * <!-- begin-user-doc -->
189 * <!-- end-user-doc -->
190 * @return a new object of class '<em>Resident Tax Payer</em>'.
191 * @generated
192 */
193 Resident_Tax_Payer createResident_Tax_Payer();
194
195 /**
196 * Returns a new object of class '<em>Trade and Business Income</em>'.
197 * <!-- begin-user-doc -->
198 * <!-- end-user-doc -->
199 * @return a new object of class '<em>Trade and Business Income</em>'.
200 * @generated
201 */
202 Trade_and_Business_Income createTrade_and_Business_Income();
203
204 /**
205 * Returns a new object of class '<em>Agriculture and Forestry Income</em>'.
206 * <!-- begin-user-doc -->
207 * <!-- end-user-doc -->
208 * @return a new object of class '<em>Agriculture and Forestry Income</em>'.
209 * @generated
210 */
211 Agriculture_and_Forestry_Income createAgriculture_and_Forestry_Income();
212
213 /**
214 * Returns a new object of class '<em>Pensions and Annuities Income</em>'.
215 * <!-- begin-user-doc -->
216 * <!-- end-user-doc -->
217 * @return a new object of class '<em>Pensions and Annuities Income</em>'.
218 * @generated
219 */
220 Pensions_and_Annuities_Income createPensions_and_Annuities_Income();
221
222 /**
223 * Returns a new object of class '<em>Capital and Investments Income</em>'.
224 * <!-- begin-user-doc -->
225 * <!-- end-user-doc -->
226 * @return a new object of class '<em>Capital and Investments Income</em>'.
227 * @generated
228 */
229 Capital_and_Investments_Income createCapital_and_Investments_Income();
230
231 /**
232 * Returns a new object of class '<em>Employment Income</em>'.
233 * <!-- begin-user-doc -->
234 * <!-- end-user-doc -->
235 * @return a new object of class '<em>Employment Income</em>'.
236 * @generated
237 */
238 Employment_Income createEmployment_Income();
239
240 /**
241 * Returns a new object of class '<em>Rentals and Leases Income</em>'.
242 * <!-- begin-user-doc -->
243 * <!-- end-user-doc -->
244 * @return a new object of class '<em>Rentals and Leases Income</em>'.
245 * @generated
246 */
247 Rentals_and_Leases_Income createRentals_and_Leases_Income();
248
249 /**
250 * Returns a new object of class '<em>Foreign Income</em>'.
251 * <!-- begin-user-doc -->
252 * <!-- end-user-doc -->
253 * @return a new object of class '<em>Foreign Income</em>'.
254 * @generated
255 */
256 Foreign_Income createForeign_Income();
257
258 /**
259 * Returns a new object of class '<em>Local Income</em>'.
260 * <!-- begin-user-doc -->
261 * <!-- end-user-doc -->
262 * @return a new object of class '<em>Local Income</em>'.
263 * @generated
264 */
265 Local_Income createLocal_Income();
266
267 /**
268 * Returns a new object of class '<em>CIM</em>'.
269 * <!-- begin-user-doc -->
270 * <!-- end-user-doc -->
271 * @return a new object of class '<em>CIM</em>'.
272 * @generated
273 */
274 CIM createCIM();
275
276 /**
277 * Returns a new object of class '<em>CIP</em>'.
278 * <!-- begin-user-doc -->
279 * <!-- end-user-doc -->
280 * @return a new object of class '<em>CIP</em>'.
281 * @generated
282 */
283 CIP createCIP();
284
285 /**
286 * Returns a new object of class '<em>CIS</em>'.
287 * <!-- begin-user-doc -->
288 * <!-- end-user-doc -->
289 * @return a new object of class '<em>CIS</em>'.
290 * @generated
291 */
292 CIS createCIS();
293
294 /**
295 * Returns a new object of class '<em>Permanent Expense</em>'.
296 * <!-- begin-user-doc -->
297 * <!-- end-user-doc -->
298 * @return a new object of class '<em>Permanent Expense</em>'.
299 * @generated
300 */
301 Permanent_Expense createPermanent_Expense();
302
303 /**
304 * Returns a new object of class '<em>Special Expense DS</em>'.
305 * <!-- begin-user-doc -->
306 * <!-- end-user-doc -->
307 * @return a new object of class '<em>Special Expense DS</em>'.
308 * @generated
309 */
310 Special_Expense_DS createSpecial_Expense_DS();
311
312 /**
313 * Returns a new object of class '<em>Interest Expense</em>'.
314 * <!-- begin-user-doc -->
315 * <!-- end-user-doc -->
316 * @return a new object of class '<em>Interest Expense</em>'.
317 * @generated
318 */
319 Interest_Expense createInterest_Expense();
320
321 /**
322 * Returns a new object of class '<em>Private Insurance and Plan</em>'.
323 * <!-- begin-user-doc -->
324 * <!-- end-user-doc -->
325 * @return a new object of class '<em>Private Insurance and Plan</em>'.
326 * @generated
327 */
328 Private_Insurance_and_Plan createPrivate_Insurance_and_Plan();
329
330 /**
331 * Returns a new object of class '<em>Health and Pension Insurance</em>'.
332 * <!-- begin-user-doc -->
333 * <!-- end-user-doc -->
334 * @return a new object of class '<em>Health and Pension Insurance</em>'.
335 * @generated
336 */
337 Health_and_Pension_Insurance createHealth_and_Pension_Insurance();
338
339 /**
340 * Returns a new object of class '<em>Donation</em>'.
341 * <!-- begin-user-doc -->
342 * <!-- end-user-doc -->
343 * @return a new object of class '<em>Donation</em>'.
344 * @generated
345 */
346 Donation createDonation();
347
348 /**
349 * Returns a new object of class '<em>Loss Carryforward</em>'.
350 * <!-- begin-user-doc -->
351 * <!-- end-user-doc -->
352 * @return a new object of class '<em>Loss Carryforward</em>'.
353 * @generated
354 */
355 Loss_Carryforward createLoss_Carryforward();
356
357 /**
358 * Returns a new object of class '<em>Spousal Expense AC</em>'.
359 * <!-- begin-user-doc -->
360 * <!-- end-user-doc -->
361 * @return a new object of class '<em>Spousal Expense AC</em>'.
362 * @generated
363 */
364 Spousal_Expense_AC createSpousal_Expense_AC();
365
366 /**
367 * Returns a new object of class '<em>Extraordinary Expense CE</em>'.
368 * <!-- begin-user-doc -->
369 * <!-- end-user-doc -->
370 * @return a new object of class '<em>Extraordinary Expense CE</em>'.
371 * @generated
372 */
373 Extraordinary_Expense_CE createExtraordinary_Expense_CE();
374
375 /**
376 * Returns a new object of class '<em>Travel Expense FD</em>'.
377 * <!-- begin-user-doc -->
378 * <!-- end-user-doc -->
379 * @return a new object of class '<em>Travel Expense FD</em>'.
380 * @generated
381 */
382 Travel_Expense_FD createTravel_Expense_FD();
383
384 /**
385 * Returns a new object of class '<em>Professional Expense</em>'.
386 * <!-- begin-user-doc -->
387 * <!-- end-user-doc -->
388 * @return a new object of class '<em>Professional Expense</em>'.
389 * @generated
390 */
391 Professional_Expense createProfessional_Expense();
392
393 /**
394 * Returns a new object of class '<em>Miscellaneous Expense FO</em>'.
395 * <!-- begin-user-doc -->
396 * <!-- end-user-doc -->
397 * @return a new object of class '<em>Miscellaneous Expense FO</em>'.
398 * @generated
399 */
400 Miscellaneous_Expense_FO createMiscellaneous_Expense_FO();
401
402 /**
403 * Returns a new object of class '<em>Resource</em>'.
404 * <!-- begin-user-doc -->
405 * <!-- end-user-doc -->
406 * @return a new object of class '<em>Resource</em>'.
407 * @generated
408 */
409 Resource createResource();
410
411 /**
412 * Returns the package supported by this factory.
413 * <!-- begin-user-doc -->
414 * <!-- end-user-doc -->
415 * @return the package supported by this factory.
416 * @generated
417 */
418 TaxationWithRootPackage getTaxationWithRootPackage();
419
420} //TaxationWithRootFactory
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/TaxationWithRootPackage.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/TaxationWithRootPackage.java
new file mode 100644
index 00000000..d0e2f041
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/TaxationWithRootPackage.java
@@ -0,0 +1,9315 @@
1/**
2 */
3package TaxationWithRoot;
4
5import org.eclipse.emf.ecore.EAttribute;
6import org.eclipse.emf.ecore.EClass;
7import org.eclipse.emf.ecore.EEnum;
8import org.eclipse.emf.ecore.EPackage;
9import org.eclipse.emf.ecore.EReference;
10
11/**
12 * <!-- begin-user-doc -->
13 * The <b>Package</b> for the model.
14 * It contains accessors for the meta objects to represent
15 * <ul>
16 * <li>each class,</li>
17 * <li>each feature of each class,</li>
18 * <li>each operation of each class,</li>
19 * <li>each enum,</li>
20 * <li>and each data type</li>
21 * </ul>
22 * <!-- end-user-doc -->
23 * @see TaxationWithRoot.TaxationWithRootFactory
24 * @model kind="package"
25 * annotation="http://www.eclipse.org/OCL/Import ecore='http://www.eclipse.org/emf/2002/Ecore'"
26 * @generated
27 */
28public interface TaxationWithRootPackage extends EPackage {
29 /**
30 * The package name.
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @generated
34 */
35 String eNAME = "TaxationWithRoot";
36
37 /**
38 * The package namespace URI.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @generated
42 */
43 String eNS_URI = "http:///TaxCardWithRoot.ecore";
44
45 /**
46 * The package namespace name.
47 * <!-- begin-user-doc -->
48 * <!-- end-user-doc -->
49 * @generated
50 */
51 String eNS_PREFIX = "TaxCardWithRoot";
52
53 /**
54 * The singleton instance of the package.
55 * <!-- begin-user-doc -->
56 * <!-- end-user-doc -->
57 * @generated
58 */
59 TaxationWithRootPackage eINSTANCE = TaxationWithRoot.impl.TaxationWithRootPackageImpl.init();
60
61 /**
62 * The meta object id for the '{@link TaxationWithRoot.impl.ConstantsImpl <em>Constants</em>}' class.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @see TaxationWithRoot.impl.ConstantsImpl
66 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getConstants()
67 * @generated
68 */
69 int CONSTANTS = 0;
70
71 /**
72 * The feature id for the '<em><b>MAXIMUM CE RATE FOR CHILD NOT BEING PART OF HOUSEHOLD</b></em>' attribute.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @generated
76 * @ordered
77 */
78 int CONSTANTS__MAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD = 0;
79
80 /**
81 * The feature id for the '<em><b>MAXIMUM CE RATE FOR HOUSE CARE AND CHILD PART OF THE HOUSEHOLD CARE</b></em>' attribute.
82 * <!-- begin-user-doc -->
83 * <!-- end-user-doc -->
84 * @generated
85 * @ordered
86 */
87 int CONSTANTS__MAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE = 1;
88
89 /**
90 * The feature id for the '<em><b>MINIMUM SALARY</b></em>' attribute.
91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc -->
93 * @generated
94 * @ordered
95 */
96 int CONSTANTS__MINIMUM_SALARY = 2;
97
98 /**
99 * The feature id for the '<em><b>FLAT RATE FOR EXTRA PROFESSIONAL DEDUCTION</b></em>' attribute.
100 * <!-- begin-user-doc -->
101 * <!-- end-user-doc -->
102 * @generated
103 * @ordered
104 */
105 int CONSTANTS__FLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION = 3;
106
107 /**
108 * The feature id for the '<em><b>MAXIMUM DEDUCTIBLE PERCENTAGE FOR DONATIONS</b></em>' attribute.
109 * <!-- begin-user-doc -->
110 * <!-- end-user-doc -->
111 * @generated
112 * @ordered
113 */
114 int CONSTANTS__MAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS = 4;
115
116 /**
117 * The feature id for the '<em><b>MINIMUM DEDUCTIBLE AMOUNT FOR DONATIONS</b></em>' attribute.
118 * <!-- begin-user-doc -->
119 * <!-- end-user-doc -->
120 * @generated
121 * @ordered
122 */
123 int CONSTANTS__MINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS = 5;
124
125 /**
126 * The feature id for the '<em><b>MAXIMUM DEDUCTIBLE AMOUNT FOR ADDITIONAL PENSION AND INSURANC</b></em>' attribute.
127 * <!-- begin-user-doc -->
128 * <!-- end-user-doc -->
129 * @generated
130 * @ordered
131 */
132 int CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC = 6;
133
134 /**
135 * The feature id for the '<em><b>MAXIMUM DEDUCTIBLE AMOUNT FOR ALIMONY EXPENSE</b></em>' attribute.
136 * <!-- begin-user-doc -->
137 * <!-- end-user-doc -->
138 * @generated
139 * @ordered
140 */
141 int CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE = 7;
142
143 /**
144 * The feature id for the '<em><b>MAXIMAL DISTANCE FOR TRAVEL EXPENSE DEDUCTION</b></em>' attribute.
145 * <!-- begin-user-doc -->
146 * <!-- end-user-doc -->
147 * @generated
148 * @ordered
149 */
150 int CONSTANTS__MAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION = 8;
151
152 /**
153 * The feature id for the '<em><b>MAXIMAL FLAT DISTANCE FOR TRAVEL EXPENSE DEDUCTION</b></em>' attribute.
154 * <!-- begin-user-doc -->
155 * <!-- end-user-doc -->
156 * @generated
157 * @ordered
158 */
159 int CONSTANTS__MAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION = 9;
160
161 /**
162 * The feature id for the '<em><b>MINIMAL DISTANCE FOR TRAVEL EXPENSE DEDUCTION</b></em>' attribute.
163 * <!-- begin-user-doc -->
164 * <!-- end-user-doc -->
165 * @generated
166 * @ordered
167 */
168 int CONSTANTS__MINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION = 10;
169
170 /**
171 * The feature id for the '<em><b>FLAT RATE CIM DAILY</b></em>' attribute.
172 * <!-- begin-user-doc -->
173 * <!-- end-user-doc -->
174 * @generated
175 * @ordered
176 */
177 int CONSTANTS__FLAT_RATE_CIM_DAILY = 11;
178
179 /**
180 * The feature id for the '<em><b>FLAT RATE CIM MONTHLY</b></em>' attribute.
181 * <!-- begin-user-doc -->
182 * <!-- end-user-doc -->
183 * @generated
184 * @ordered
185 */
186 int CONSTANTS__FLAT_RATE_CIM_MONTHLY = 12;
187
188 /**
189 * The feature id for the '<em><b>FLAT RATE CIM YEARLY</b></em>' attribute.
190 * <!-- begin-user-doc -->
191 * <!-- end-user-doc -->
192 * @generated
193 * @ordered
194 */
195 int CONSTANTS__FLAT_RATE_CIM_YEARLY = 13;
196
197 /**
198 * The feature id for the '<em><b>FLAT RATE CIP DAILY</b></em>' attribute.
199 * <!-- begin-user-doc -->
200 * <!-- end-user-doc -->
201 * @generated
202 * @ordered
203 */
204 int CONSTANTS__FLAT_RATE_CIP_DAILY = 14;
205
206 /**
207 * The feature id for the '<em><b>FLAT RATE CIP MONTHLY</b></em>' attribute.
208 * <!-- begin-user-doc -->
209 * <!-- end-user-doc -->
210 * @generated
211 * @ordered
212 */
213 int CONSTANTS__FLAT_RATE_CIP_MONTHLY = 15;
214
215 /**
216 * The feature id for the '<em><b>FLAT RATE CIP YEARLY</b></em>' attribute.
217 * <!-- begin-user-doc -->
218 * <!-- end-user-doc -->
219 * @generated
220 * @ordered
221 */
222 int CONSTANTS__FLAT_RATE_CIP_YEARLY = 16;
223
224 /**
225 * The feature id for the '<em><b>FLAT RATE CIS DAILY</b></em>' attribute.
226 * <!-- begin-user-doc -->
227 * <!-- end-user-doc -->
228 * @generated
229 * @ordered
230 */
231 int CONSTANTS__FLAT_RATE_CIS_DAILY = 17;
232
233 /**
234 * The feature id for the '<em><b>FLAT RATE CIS MONTHLY</b></em>' attribute.
235 * <!-- begin-user-doc -->
236 * <!-- end-user-doc -->
237 * @generated
238 * @ordered
239 */
240 int CONSTANTS__FLAT_RATE_CIS_MONTHLY = 18;
241
242 /**
243 * The feature id for the '<em><b>FLAT RATE CIS YEARLY</b></em>' attribute.
244 * <!-- begin-user-doc -->
245 * <!-- end-user-doc -->
246 * @generated
247 * @ordered
248 */
249 int CONSTANTS__FLAT_RATE_CIS_YEARLY = 19;
250
251 /**
252 * The feature id for the '<em><b>FLAT RATE FOR TRAVEL EXPENSE PER UNIT</b></em>' attribute.
253 * <!-- begin-user-doc -->
254 * <!-- end-user-doc -->
255 * @generated
256 * @ordered
257 */
258 int CONSTANTS__FLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT = 20;
259
260 /**
261 * The feature id for the '<em><b>MAXIMUM DEDUCTIBLE AMOUNT FOR DS</b></em>' attribute.
262 * <!-- begin-user-doc -->
263 * <!-- end-user-doc -->
264 * @generated
265 * @ordered
266 */
267 int CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS = 21;
268
269 /**
270 * The feature id for the '<em><b>FLAT RATE FOR MISCELLANEOUS EXPENSE</b></em>' attribute.
271 * <!-- begin-user-doc -->
272 * <!-- end-user-doc -->
273 * @generated
274 * @ordered
275 */
276 int CONSTANTS__FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE = 22;
277
278 /**
279 * The feature id for the '<em><b>DISABILITY FLAT RATE FOR MISCELLANEOUS EXPENSE</b></em>' attribute.
280 * <!-- begin-user-doc -->
281 * <!-- end-user-doc -->
282 * @generated
283 * @ordered
284 */
285 int CONSTANTS__DISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE = 23;
286
287 /**
288 * The feature id for the '<em><b>MAXIMUM DEDUCTIBLE AMOUNT FOR ADDITIONAL PENSION AND INSURANCE</b></em>' attribute.
289 * <!-- begin-user-doc -->
290 * <!-- end-user-doc -->
291 * @generated
292 * @ordered
293 */
294 int CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE = 24;
295
296 /**
297 * The number of structural features of the '<em>Constants</em>' class.
298 * <!-- begin-user-doc -->
299 * <!-- end-user-doc -->
300 * @generated
301 * @ordered
302 */
303 int CONSTANTS_FEATURE_COUNT = 25;
304
305 /**
306 * The number of operations of the '<em>Constants</em>' class.
307 * <!-- begin-user-doc -->
308 * <!-- end-user-doc -->
309 * @generated
310 * @ordered
311 */
312 int CONSTANTS_OPERATION_COUNT = 0;
313
314 /**
315 * The meta object id for the '{@link TaxationWithRoot.impl.Income_TaxImpl <em>Income Tax</em>}' class.
316 * <!-- begin-user-doc -->
317 * <!-- end-user-doc -->
318 * @see TaxationWithRoot.impl.Income_TaxImpl
319 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getIncome_Tax()
320 * @generated
321 */
322 int INCOME_TAX = 1;
323
324 /**
325 * The feature id for the '<em><b>Tax Payer</b></em>' reference.
326 * <!-- begin-user-doc -->
327 * <!-- end-user-doc -->
328 * @generated
329 * @ordered
330 */
331 int INCOME_TAX__TAX_PAYER = 0;
332
333 /**
334 * The feature id for the '<em><b>Tax amount</b></em>' attribute.
335 * <!-- begin-user-doc -->
336 * <!-- end-user-doc -->
337 * @generated
338 * @ordered
339 */
340 int INCOME_TAX__TAX_AMOUNT = 1;
341
342 /**
343 * The feature id for the '<em><b>Tax year</b></em>' attribute.
344 * <!-- begin-user-doc -->
345 * <!-- end-user-doc -->
346 * @generated
347 * @ordered
348 */
349 int INCOME_TAX__TAX_YEAR = 2;
350
351 /**
352 * The feature id for the '<em><b>Id6</b></em>' attribute.
353 * <!-- begin-user-doc -->
354 * <!-- end-user-doc -->
355 * @generated
356 * @ordered
357 */
358 int INCOME_TAX__ID6 = 3;
359
360 /**
361 * The number of structural features of the '<em>Income Tax</em>' class.
362 * <!-- begin-user-doc -->
363 * <!-- end-user-doc -->
364 * @generated
365 * @ordered
366 */
367 int INCOME_TAX_FEATURE_COUNT = 4;
368
369 /**
370 * The number of operations of the '<em>Income Tax</em>' class.
371 * <!-- begin-user-doc -->
372 * <!-- end-user-doc -->
373 * @generated
374 * @ordered
375 */
376 int INCOME_TAX_OPERATION_COUNT = 0;
377
378 /**
379 * The meta object id for the '{@link TaxationWithRoot.impl.Physical_PersonImpl <em>Physical Person</em>}' class.
380 * <!-- begin-user-doc -->
381 * <!-- end-user-doc -->
382 * @see TaxationWithRoot.impl.Physical_PersonImpl
383 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getPhysical_Person()
384 * @generated
385 */
386 int PHYSICAL_PERSON = 3;
387
388 /**
389 * The feature id for the '<em><b>SS No</b></em>' attribute.
390 * <!-- begin-user-doc -->
391 * <!-- end-user-doc -->
392 * @generated
393 * @ordered
394 */
395 int PHYSICAL_PERSON__SS_NO = 0;
396
397 /**
398 * The feature id for the '<em><b>Addresses</b></em>' reference list.
399 * <!-- begin-user-doc -->
400 * <!-- end-user-doc -->
401 * @generated
402 * @ordered
403 */
404 int PHYSICAL_PERSON__ADDRESSES = 1;
405
406 /**
407 * The feature id for the '<em><b>Birth year</b></em>' attribute.
408 * <!-- begin-user-doc -->
409 * <!-- end-user-doc -->
410 * @generated
411 * @ordered
412 */
413 int PHYSICAL_PERSON__BIRTH_YEAR = 2;
414
415 /**
416 * The feature id for the '<em><b>Disability percentage</b></em>' attribute.
417 * <!-- begin-user-doc -->
418 * <!-- end-user-doc -->
419 * @generated
420 * @ordered
421 */
422 int PHYSICAL_PERSON__DISABILITY_PERCENTAGE = 3;
423
424 /**
425 * The feature id for the '<em><b>Disability type</b></em>' attribute.
426 * <!-- begin-user-doc -->
427 * <!-- end-user-doc -->
428 * @generated
429 * @ordered
430 */
431 int PHYSICAL_PERSON__DISABILITY_TYPE = 4;
432
433 /**
434 * The feature id for the '<em><b>Birth month</b></em>' attribute.
435 * <!-- begin-user-doc -->
436 * <!-- end-user-doc -->
437 * @generated
438 * @ordered
439 */
440 int PHYSICAL_PERSON__BIRTH_MONTH = 5;
441
442 /**
443 * The feature id for the '<em><b>Birth day</b></em>' attribute.
444 * <!-- begin-user-doc -->
445 * <!-- end-user-doc -->
446 * @generated
447 * @ordered
448 */
449 int PHYSICAL_PERSON__BIRTH_DAY = 6;
450
451 /**
452 * The feature id for the '<em><b>Expenses</b></em>' reference list.
453 * <!-- begin-user-doc -->
454 * <!-- end-user-doc -->
455 * @generated
456 * @ordered
457 */
458 int PHYSICAL_PERSON__EXPENSES = 7;
459
460 /**
461 * The feature id for the '<em><b>Is widower</b></em>' attribute.
462 * <!-- begin-user-doc -->
463 * <!-- end-user-doc -->
464 * @generated
465 * @ordered
466 */
467 int PHYSICAL_PERSON__IS_WIDOWER = 8;
468
469 /**
470 * The number of structural features of the '<em>Physical Person</em>' class.
471 * <!-- begin-user-doc -->
472 * <!-- end-user-doc -->
473 * @generated
474 * @ordered
475 */
476 int PHYSICAL_PERSON_FEATURE_COUNT = 9;
477
478 /**
479 * The number of operations of the '<em>Physical Person</em>' class.
480 * <!-- begin-user-doc -->
481 * <!-- end-user-doc -->
482 * @generated
483 * @ordered
484 */
485 int PHYSICAL_PERSON_OPERATION_COUNT = 0;
486
487 /**
488 * The meta object id for the '{@link TaxationWithRoot.impl.Tax_PayerImpl <em>Tax Payer</em>}' class.
489 * <!-- begin-user-doc -->
490 * <!-- end-user-doc -->
491 * @see TaxationWithRoot.impl.Tax_PayerImpl
492 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getTax_Payer()
493 * @generated
494 */
495 int TAX_PAYER = 2;
496
497 /**
498 * The feature id for the '<em><b>SS No</b></em>' attribute.
499 * <!-- begin-user-doc -->
500 * <!-- end-user-doc -->
501 * @generated
502 * @ordered
503 */
504 int TAX_PAYER__SS_NO = PHYSICAL_PERSON__SS_NO;
505
506 /**
507 * The feature id for the '<em><b>Addresses</b></em>' reference list.
508 * <!-- begin-user-doc -->
509 * <!-- end-user-doc -->
510 * @generated
511 * @ordered
512 */
513 int TAX_PAYER__ADDRESSES = PHYSICAL_PERSON__ADDRESSES;
514
515 /**
516 * The feature id for the '<em><b>Birth year</b></em>' attribute.
517 * <!-- begin-user-doc -->
518 * <!-- end-user-doc -->
519 * @generated
520 * @ordered
521 */
522 int TAX_PAYER__BIRTH_YEAR = PHYSICAL_PERSON__BIRTH_YEAR;
523
524 /**
525 * The feature id for the '<em><b>Disability percentage</b></em>' attribute.
526 * <!-- begin-user-doc -->
527 * <!-- end-user-doc -->
528 * @generated
529 * @ordered
530 */
531 int TAX_PAYER__DISABILITY_PERCENTAGE = PHYSICAL_PERSON__DISABILITY_PERCENTAGE;
532
533 /**
534 * The feature id for the '<em><b>Disability type</b></em>' attribute.
535 * <!-- begin-user-doc -->
536 * <!-- end-user-doc -->
537 * @generated
538 * @ordered
539 */
540 int TAX_PAYER__DISABILITY_TYPE = PHYSICAL_PERSON__DISABILITY_TYPE;
541
542 /**
543 * The feature id for the '<em><b>Birth month</b></em>' attribute.
544 * <!-- begin-user-doc -->
545 * <!-- end-user-doc -->
546 * @generated
547 * @ordered
548 */
549 int TAX_PAYER__BIRTH_MONTH = PHYSICAL_PERSON__BIRTH_MONTH;
550
551 /**
552 * The feature id for the '<em><b>Birth day</b></em>' attribute.
553 * <!-- begin-user-doc -->
554 * <!-- end-user-doc -->
555 * @generated
556 * @ordered
557 */
558 int TAX_PAYER__BIRTH_DAY = PHYSICAL_PERSON__BIRTH_DAY;
559
560 /**
561 * The feature id for the '<em><b>Expenses</b></em>' reference list.
562 * <!-- begin-user-doc -->
563 * <!-- end-user-doc -->
564 * @generated
565 * @ordered
566 */
567 int TAX_PAYER__EXPENSES = PHYSICAL_PERSON__EXPENSES;
568
569 /**
570 * The feature id for the '<em><b>Is widower</b></em>' attribute.
571 * <!-- begin-user-doc -->
572 * <!-- end-user-doc -->
573 * @generated
574 * @ordered
575 */
576 int TAX_PAYER__IS_WIDOWER = PHYSICAL_PERSON__IS_WIDOWER;
577
578 /**
579 * The feature id for the '<em><b>Dependents</b></em>' containment reference list.
580 * <!-- begin-user-doc -->
581 * <!-- end-user-doc -->
582 * @generated
583 * @ordered
584 */
585 int TAX_PAYER__DEPENDENTS = PHYSICAL_PERSON_FEATURE_COUNT + 0;
586
587 /**
588 * The feature id for the '<em><b>From agent</b></em>' containment reference.
589 * <!-- begin-user-doc -->
590 * <!-- end-user-doc -->
591 * @generated
592 * @ordered
593 */
594 int TAX_PAYER__FROM_AGENT = PHYSICAL_PERSON_FEATURE_COUNT + 1;
595
596 /**
597 * The feature id for the '<em><b>Incomes</b></em>' containment reference list.
598 * <!-- begin-user-doc -->
599 * <!-- end-user-doc -->
600 * @generated
601 * @ordered
602 */
603 int TAX_PAYER__INCOMES = PHYSICAL_PERSON_FEATURE_COUNT + 2;
604
605 /**
606 * The feature id for the '<em><b>From law</b></em>' containment reference.
607 * <!-- begin-user-doc -->
608 * <!-- end-user-doc -->
609 * @generated
610 * @ordered
611 */
612 int TAX_PAYER__FROM_LAW = PHYSICAL_PERSON_FEATURE_COUNT + 3;
613
614 /**
615 * The number of structural features of the '<em>Tax Payer</em>' class.
616 * <!-- begin-user-doc -->
617 * <!-- end-user-doc -->
618 * @generated
619 * @ordered
620 */
621 int TAX_PAYER_FEATURE_COUNT = PHYSICAL_PERSON_FEATURE_COUNT + 4;
622
623 /**
624 * The number of operations of the '<em>Tax Payer</em>' class.
625 * <!-- begin-user-doc -->
626 * <!-- end-user-doc -->
627 * @generated
628 * @ordered
629 */
630 int TAX_PAYER_OPERATION_COUNT = PHYSICAL_PERSON_OPERATION_COUNT + 0;
631
632 /**
633 * The meta object id for the '{@link TaxationWithRoot.impl.AddressImpl <em>Address</em>}' class.
634 * <!-- begin-user-doc -->
635 * <!-- end-user-doc -->
636 * @see TaxationWithRoot.impl.AddressImpl
637 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getAddress()
638 * @generated
639 */
640 int ADDRESS = 4;
641
642 /**
643 * The feature id for the '<em><b>Country</b></em>' attribute.
644 * <!-- begin-user-doc -->
645 * <!-- end-user-doc -->
646 * @generated
647 * @ordered
648 */
649 int ADDRESS__COUNTRY = 0;
650
651 /**
652 * The feature id for the '<em><b>Street</b></em>' attribute.
653 * <!-- begin-user-doc -->
654 * <!-- end-user-doc -->
655 * @generated
656 * @ordered
657 */
658 int ADDRESS__STREET = 1;
659
660 /**
661 * The feature id for the '<em><b>Zip Code</b></em>' attribute.
662 * <!-- begin-user-doc -->
663 * <!-- end-user-doc -->
664 * @generated
665 * @ordered
666 */
667 int ADDRESS__ZIP_CODE = 2;
668
669 /**
670 * The feature id for the '<em><b>City</b></em>' attribute.
671 * <!-- begin-user-doc -->
672 * <!-- end-user-doc -->
673 * @generated
674 * @ordered
675 */
676 int ADDRESS__CITY = 3;
677
678 /**
679 * The feature id for the '<em><b>Id2</b></em>' attribute.
680 * <!-- begin-user-doc -->
681 * <!-- end-user-doc -->
682 * @generated
683 * @ordered
684 */
685 int ADDRESS__ID2 = 4;
686
687 /**
688 * The feature id for the '<em><b>Tax Payer</b></em>' reference list.
689 * <!-- begin-user-doc -->
690 * <!-- end-user-doc -->
691 * @generated
692 * @ordered
693 */
694 int ADDRESS__TAX_PAYER = 5;
695
696 /**
697 * The number of structural features of the '<em>Address</em>' class.
698 * <!-- begin-user-doc -->
699 * <!-- end-user-doc -->
700 * @generated
701 * @ordered
702 */
703 int ADDRESS_FEATURE_COUNT = 6;
704
705 /**
706 * The number of operations of the '<em>Address</em>' class.
707 * <!-- begin-user-doc -->
708 * <!-- end-user-doc -->
709 * @generated
710 * @ordered
711 */
712 int ADDRESS_OPERATION_COUNT = 0;
713
714 /**
715 * The meta object id for the '{@link TaxationWithRoot.impl.ExpenseImpl <em>Expense</em>}' class.
716 * <!-- begin-user-doc -->
717 * <!-- end-user-doc -->
718 * @see TaxationWithRoot.impl.ExpenseImpl
719 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getExpense()
720 * @generated
721 */
722 int EXPENSE = 5;
723
724 /**
725 * The feature id for the '<em><b>Declared amount</b></em>' attribute.
726 * <!-- begin-user-doc -->
727 * <!-- end-user-doc -->
728 * @generated
729 * @ordered
730 */
731 int EXPENSE__DECLARED_AMOUNT = 0;
732
733 /**
734 * The feature id for the '<em><b>Expense purpose</b></em>' attribute.
735 * <!-- begin-user-doc -->
736 * <!-- end-user-doc -->
737 * @generated
738 * @ordered
739 */
740 int EXPENSE__EXPENSE_PURPOSE = 1;
741
742 /**
743 * The feature id for the '<em><b>Dependent</b></em>' reference.
744 * <!-- begin-user-doc -->
745 * <!-- end-user-doc -->
746 * @generated
747 * @ordered
748 */
749 int EXPENSE__DEPENDENT = 2;
750
751 /**
752 * The feature id for the '<em><b>From agent</b></em>' reference.
753 * <!-- begin-user-doc -->
754 * <!-- end-user-doc -->
755 * @generated
756 * @ordered
757 */
758 int EXPENSE__FROM_AGENT = 3;
759
760 /**
761 * The feature id for the '<em><b>Income</b></em>' container reference.
762 * <!-- begin-user-doc -->
763 * <!-- end-user-doc -->
764 * @generated
765 * @ordered
766 */
767 int EXPENSE__INCOME = 4;
768
769 /**
770 * The feature id for the '<em><b>Id4</b></em>' attribute.
771 * <!-- begin-user-doc -->
772 * <!-- end-user-doc -->
773 * @generated
774 * @ordered
775 */
776 int EXPENSE__ID4 = 5;
777
778 /**
779 * The feature id for the '<em><b>Beneficiary</b></em>' reference.
780 * <!-- begin-user-doc -->
781 * <!-- end-user-doc -->
782 * @generated
783 * @ordered
784 */
785 int EXPENSE__BENEFICIARY = 6;
786
787 /**
788 * The number of structural features of the '<em>Expense</em>' class.
789 * <!-- begin-user-doc -->
790 * <!-- end-user-doc -->
791 * @generated
792 * @ordered
793 */
794 int EXPENSE_FEATURE_COUNT = 7;
795
796 /**
797 * The number of operations of the '<em>Expense</em>' class.
798 * <!-- begin-user-doc -->
799 * <!-- end-user-doc -->
800 * @generated
801 * @ordered
802 */
803 int EXPENSE_OPERATION_COUNT = 0;
804
805 /**
806 * The meta object id for the '{@link TaxationWithRoot.impl.DependentImpl <em>Dependent</em>}' class.
807 * <!-- begin-user-doc -->
808 * <!-- end-user-doc -->
809 * @see TaxationWithRoot.impl.DependentImpl
810 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getDependent()
811 * @generated
812 */
813 int DEPENDENT = 6;
814
815 /**
816 * The feature id for the '<em><b>SS No</b></em>' attribute.
817 * <!-- begin-user-doc -->
818 * <!-- end-user-doc -->
819 * @generated
820 * @ordered
821 */
822 int DEPENDENT__SS_NO = PHYSICAL_PERSON__SS_NO;
823
824 /**
825 * The feature id for the '<em><b>Addresses</b></em>' reference list.
826 * <!-- begin-user-doc -->
827 * <!-- end-user-doc -->
828 * @generated
829 * @ordered
830 */
831 int DEPENDENT__ADDRESSES = PHYSICAL_PERSON__ADDRESSES;
832
833 /**
834 * The feature id for the '<em><b>Birth year</b></em>' attribute.
835 * <!-- begin-user-doc -->
836 * <!-- end-user-doc -->
837 * @generated
838 * @ordered
839 */
840 int DEPENDENT__BIRTH_YEAR = PHYSICAL_PERSON__BIRTH_YEAR;
841
842 /**
843 * The feature id for the '<em><b>Disability percentage</b></em>' attribute.
844 * <!-- begin-user-doc -->
845 * <!-- end-user-doc -->
846 * @generated
847 * @ordered
848 */
849 int DEPENDENT__DISABILITY_PERCENTAGE = PHYSICAL_PERSON__DISABILITY_PERCENTAGE;
850
851 /**
852 * The feature id for the '<em><b>Disability type</b></em>' attribute.
853 * <!-- begin-user-doc -->
854 * <!-- end-user-doc -->
855 * @generated
856 * @ordered
857 */
858 int DEPENDENT__DISABILITY_TYPE = PHYSICAL_PERSON__DISABILITY_TYPE;
859
860 /**
861 * The feature id for the '<em><b>Birth month</b></em>' attribute.
862 * <!-- begin-user-doc -->
863 * <!-- end-user-doc -->
864 * @generated
865 * @ordered
866 */
867 int DEPENDENT__BIRTH_MONTH = PHYSICAL_PERSON__BIRTH_MONTH;
868
869 /**
870 * The feature id for the '<em><b>Birth day</b></em>' attribute.
871 * <!-- begin-user-doc -->
872 * <!-- end-user-doc -->
873 * @generated
874 * @ordered
875 */
876 int DEPENDENT__BIRTH_DAY = PHYSICAL_PERSON__BIRTH_DAY;
877
878 /**
879 * The feature id for the '<em><b>Expenses</b></em>' reference list.
880 * <!-- begin-user-doc -->
881 * <!-- end-user-doc -->
882 * @generated
883 * @ordered
884 */
885 int DEPENDENT__EXPENSES = PHYSICAL_PERSON__EXPENSES;
886
887 /**
888 * The feature id for the '<em><b>Is widower</b></em>' attribute.
889 * <!-- begin-user-doc -->
890 * <!-- end-user-doc -->
891 * @generated
892 * @ordered
893 */
894 int DEPENDENT__IS_WIDOWER = PHYSICAL_PERSON__IS_WIDOWER;
895
896 /**
897 * The feature id for the '<em><b>Dependent type</b></em>' attribute.
898 * <!-- begin-user-doc -->
899 * <!-- end-user-doc -->
900 * @generated
901 * @ordered
902 */
903 int DEPENDENT__DEPENDENT_TYPE = PHYSICAL_PERSON_FEATURE_COUNT + 0;
904
905 /**
906 * The feature id for the '<em><b>Responsible person</b></em>' container reference.
907 * <!-- begin-user-doc -->
908 * <!-- end-user-doc -->
909 * @generated
910 * @ordered
911 */
912 int DEPENDENT__RESPONSIBLE_PERSON = PHYSICAL_PERSON_FEATURE_COUNT + 1;
913
914 /**
915 * The feature id for the '<em><b>Continued studies</b></em>' attribute.
916 * <!-- begin-user-doc -->
917 * <!-- end-user-doc -->
918 * @generated
919 * @ordered
920 */
921 int DEPENDENT__CONTINUED_STUDIES = PHYSICAL_PERSON_FEATURE_COUNT + 2;
922
923 /**
924 * The feature id for the '<em><b>Allowances</b></em>' containment reference.
925 * <!-- begin-user-doc -->
926 * <!-- end-user-doc -->
927 * @generated
928 * @ordered
929 */
930 int DEPENDENT__ALLOWANCES = PHYSICAL_PERSON_FEATURE_COUNT + 3;
931
932 /**
933 * The feature id for the '<em><b>Household</b></em>' container reference.
934 * <!-- begin-user-doc -->
935 * <!-- end-user-doc -->
936 * @generated
937 * @ordered
938 */
939 int DEPENDENT__HOUSEHOLD = PHYSICAL_PERSON_FEATURE_COUNT + 4;
940
941 /**
942 * The feature id for the '<em><b>From agent</b></em>' reference.
943 * <!-- begin-user-doc -->
944 * <!-- end-user-doc -->
945 * @generated
946 * @ordered
947 */
948 int DEPENDENT__FROM_AGENT = PHYSICAL_PERSON_FEATURE_COUNT + 5;
949
950 /**
951 * The feature id for the '<em><b>Expense</b></em>' reference list.
952 * <!-- begin-user-doc -->
953 * <!-- end-user-doc -->
954 * @generated
955 * @ordered
956 */
957 int DEPENDENT__EXPENSE = PHYSICAL_PERSON_FEATURE_COUNT + 6;
958
959 /**
960 * The number of structural features of the '<em>Dependent</em>' class.
961 * <!-- begin-user-doc -->
962 * <!-- end-user-doc -->
963 * @generated
964 * @ordered
965 */
966 int DEPENDENT_FEATURE_COUNT = PHYSICAL_PERSON_FEATURE_COUNT + 7;
967
968 /**
969 * The number of operations of the '<em>Dependent</em>' class.
970 * <!-- begin-user-doc -->
971 * <!-- end-user-doc -->
972 * @generated
973 * @ordered
974 */
975 int DEPENDENT_OPERATION_COUNT = PHYSICAL_PERSON_OPERATION_COUNT + 0;
976
977 /**
978 * The meta object id for the '{@link TaxationWithRoot.impl.External_AllowanceImpl <em>External Allowance</em>}' class.
979 * <!-- begin-user-doc -->
980 * <!-- end-user-doc -->
981 * @see TaxationWithRoot.impl.External_AllowanceImpl
982 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getExternal_Allowance()
983 * @generated
984 */
985 int EXTERNAL_ALLOWANCE = 7;
986
987 /**
988 * The feature id for the '<em><b>Grantor</b></em>' attribute.
989 * <!-- begin-user-doc -->
990 * <!-- end-user-doc -->
991 * @generated
992 * @ordered
993 */
994 int EXTERNAL_ALLOWANCE__GRANTOR = 0;
995
996 /**
997 * The feature id for the '<em><b>Starting year</b></em>' attribute.
998 * <!-- begin-user-doc -->
999 * <!-- end-user-doc -->
1000 * @generated
1001 * @ordered
1002 */
1003 int EXTERNAL_ALLOWANCE__STARTING_YEAR = 1;
1004
1005 /**
1006 * The feature id for the '<em><b>Ending year</b></em>' attribute.
1007 * <!-- begin-user-doc -->
1008 * <!-- end-user-doc -->
1009 * @generated
1010 * @ordered
1011 */
1012 int EXTERNAL_ALLOWANCE__ENDING_YEAR = 2;
1013
1014 /**
1015 * The feature id for the '<em><b>Reciver</b></em>' reference.
1016 * <!-- begin-user-doc -->
1017 * <!-- end-user-doc -->
1018 * @generated
1019 * @ordered
1020 */
1021 int EXTERNAL_ALLOWANCE__RECIVER = 3;
1022
1023 /**
1024 * The feature id for the '<em><b>Id5</b></em>' attribute.
1025 * <!-- begin-user-doc -->
1026 * <!-- end-user-doc -->
1027 * @generated
1028 * @ordered
1029 */
1030 int EXTERNAL_ALLOWANCE__ID5 = 4;
1031
1032 /**
1033 * The feature id for the '<em><b>Person</b></em>' container reference.
1034 * <!-- begin-user-doc -->
1035 * <!-- end-user-doc -->
1036 * @generated
1037 * @ordered
1038 */
1039 int EXTERNAL_ALLOWANCE__PERSON = 5;
1040
1041 /**
1042 * The number of structural features of the '<em>External Allowance</em>' class.
1043 * <!-- begin-user-doc -->
1044 * <!-- end-user-doc -->
1045 * @generated
1046 * @ordered
1047 */
1048 int EXTERNAL_ALLOWANCE_FEATURE_COUNT = 6;
1049
1050 /**
1051 * The number of operations of the '<em>External Allowance</em>' class.
1052 * <!-- begin-user-doc -->
1053 * <!-- end-user-doc -->
1054 * @generated
1055 * @ordered
1056 */
1057 int EXTERNAL_ALLOWANCE_OPERATION_COUNT = 0;
1058
1059 /**
1060 * The meta object id for the '{@link TaxationWithRoot.Tax_Case <em>Tax Case</em>}' class.
1061 * <!-- begin-user-doc -->
1062 * <!-- end-user-doc -->
1063 * @see TaxationWithRoot.Tax_Case
1064 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getTax_Case()
1065 * @generated
1066 */
1067 int TAX_CASE = 11;
1068
1069 /**
1070 * The number of structural features of the '<em>Tax Case</em>' class.
1071 * <!-- begin-user-doc -->
1072 * <!-- end-user-doc -->
1073 * @generated
1074 * @ordered
1075 */
1076 int TAX_CASE_FEATURE_COUNT = 0;
1077
1078 /**
1079 * The number of operations of the '<em>Tax Case</em>' class.
1080 * <!-- begin-user-doc -->
1081 * <!-- end-user-doc -->
1082 * @generated
1083 * @ordered
1084 */
1085 int TAX_CASE_OPERATION_COUNT = 0;
1086
1087 /**
1088 * The meta object id for the '{@link TaxationWithRoot.impl.HouseholdImpl <em>Household</em>}' class.
1089 * <!-- begin-user-doc -->
1090 * <!-- end-user-doc -->
1091 * @see TaxationWithRoot.impl.HouseholdImpl
1092 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getHousehold()
1093 * @generated
1094 */
1095 int HOUSEHOLD = 8;
1096
1097 /**
1098 * The feature id for the '<em><b>Parents</b></em>' containment reference.
1099 * <!-- begin-user-doc -->
1100 * <!-- end-user-doc -->
1101 * @generated
1102 * @ordered
1103 */
1104 int HOUSEHOLD__PARENTS = TAX_CASE_FEATURE_COUNT + 0;
1105
1106 /**
1107 * The feature id for the '<em><b>Id1</b></em>' attribute.
1108 * <!-- begin-user-doc -->
1109 * <!-- end-user-doc -->
1110 * @generated
1111 * @ordered
1112 */
1113 int HOUSEHOLD__ID1 = TAX_CASE_FEATURE_COUNT + 1;
1114
1115 /**
1116 * The feature id for the '<em><b>Children</b></em>' containment reference list.
1117 * <!-- begin-user-doc -->
1118 * <!-- end-user-doc -->
1119 * @generated
1120 * @ordered
1121 */
1122 int HOUSEHOLD__CHILDREN = TAX_CASE_FEATURE_COUNT + 2;
1123
1124 /**
1125 * The number of structural features of the '<em>Household</em>' class.
1126 * <!-- begin-user-doc -->
1127 * <!-- end-user-doc -->
1128 * @generated
1129 * @ordered
1130 */
1131 int HOUSEHOLD_FEATURE_COUNT = TAX_CASE_FEATURE_COUNT + 3;
1132
1133 /**
1134 * The number of operations of the '<em>Household</em>' class.
1135 * <!-- begin-user-doc -->
1136 * <!-- end-user-doc -->
1137 * @generated
1138 * @ordered
1139 */
1140 int HOUSEHOLD_OPERATION_COUNT = TAX_CASE_OPERATION_COUNT + 0;
1141
1142 /**
1143 * The meta object id for the '{@link TaxationWithRoot.impl.Legal_Union_RecordImpl <em>Legal Union Record</em>}' class.
1144 * <!-- begin-user-doc -->
1145 * <!-- end-user-doc -->
1146 * @see TaxationWithRoot.impl.Legal_Union_RecordImpl
1147 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getLegal_Union_Record()
1148 * @generated
1149 */
1150 int LEGAL_UNION_RECORD = 9;
1151
1152 /**
1153 * The feature id for the '<em><b>Start year</b></em>' attribute.
1154 * <!-- begin-user-doc -->
1155 * <!-- end-user-doc -->
1156 * @generated
1157 * @ordered
1158 */
1159 int LEGAL_UNION_RECORD__START_YEAR = 0;
1160
1161 /**
1162 * The feature id for the '<em><b>End year</b></em>' attribute.
1163 * <!-- begin-user-doc -->
1164 * <!-- end-user-doc -->
1165 * @generated
1166 * @ordered
1167 */
1168 int LEGAL_UNION_RECORD__END_YEAR = 1;
1169
1170 /**
1171 * The feature id for the '<em><b>Separation cause</b></em>' attribute.
1172 * <!-- begin-user-doc -->
1173 * <!-- end-user-doc -->
1174 * @generated
1175 * @ordered
1176 */
1177 int LEGAL_UNION_RECORD__SEPARATION_CAUSE = 2;
1178
1179 /**
1180 * The feature id for the '<em><b>Individual A</b></em>' containment reference.
1181 * <!-- begin-user-doc -->
1182 * <!-- end-user-doc -->
1183 * @generated
1184 * @ordered
1185 */
1186 int LEGAL_UNION_RECORD__INDIVIDUAL_A = 3;
1187
1188 /**
1189 * The feature id for the '<em><b>Individual B</b></em>' containment reference list.
1190 * <!-- begin-user-doc -->
1191 * <!-- end-user-doc -->
1192 * @generated
1193 * @ordered
1194 */
1195 int LEGAL_UNION_RECORD__INDIVIDUAL_B = 4;
1196
1197 /**
1198 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
1199 * <!-- begin-user-doc -->
1200 * <!-- end-user-doc -->
1201 * @generated
1202 * @ordered
1203 */
1204 int LEGAL_UNION_RECORD__PROPERTIES = 5;
1205
1206 /**
1207 * The feature id for the '<em><b>Mutual agreement</b></em>' attribute.
1208 * <!-- begin-user-doc -->
1209 * <!-- end-user-doc -->
1210 * @generated
1211 * @ordered
1212 */
1213 int LEGAL_UNION_RECORD__MUTUAL_AGREEMENT = 6;
1214
1215 /**
1216 * The feature id for the '<em><b>Id9</b></em>' attribute.
1217 * <!-- begin-user-doc -->
1218 * <!-- end-user-doc -->
1219 * @generated
1220 * @ordered
1221 */
1222 int LEGAL_UNION_RECORD__ID9 = 7;
1223
1224 /**
1225 * The feature id for the '<em><b>Household</b></em>' container reference.
1226 * <!-- begin-user-doc -->
1227 * <!-- end-user-doc -->
1228 * @generated
1229 * @ordered
1230 */
1231 int LEGAL_UNION_RECORD__HOUSEHOLD = 8;
1232
1233 /**
1234 * The number of structural features of the '<em>Legal Union Record</em>' class.
1235 * <!-- begin-user-doc -->
1236 * <!-- end-user-doc -->
1237 * @generated
1238 * @ordered
1239 */
1240 int LEGAL_UNION_RECORD_FEATURE_COUNT = 9;
1241
1242 /**
1243 * The number of operations of the '<em>Legal Union Record</em>' class.
1244 * <!-- begin-user-doc -->
1245 * <!-- end-user-doc -->
1246 * @generated
1247 * @ordered
1248 */
1249 int LEGAL_UNION_RECORD_OPERATION_COUNT = 0;
1250
1251 /**
1252 * The meta object id for the '{@link TaxationWithRoot.impl.Tax_PropertyImpl <em>Tax Property</em>}' class.
1253 * <!-- begin-user-doc -->
1254 * <!-- end-user-doc -->
1255 * @see TaxationWithRoot.impl.Tax_PropertyImpl
1256 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getTax_Property()
1257 * @generated
1258 */
1259 int TAX_PROPERTY = 10;
1260
1261 /**
1262 * The feature id for the '<em><b>Starting year</b></em>' attribute.
1263 * <!-- begin-user-doc -->
1264 * <!-- end-user-doc -->
1265 * @generated
1266 * @ordered
1267 */
1268 int TAX_PROPERTY__STARTING_YEAR = 0;
1269
1270 /**
1271 * The feature id for the '<em><b>Id10</b></em>' attribute.
1272 * <!-- begin-user-doc -->
1273 * <!-- end-user-doc -->
1274 * @generated
1275 * @ordered
1276 */
1277 int TAX_PROPERTY__ID10 = 1;
1278
1279 /**
1280 * The feature id for the '<em><b>Union record</b></em>' container reference.
1281 * <!-- begin-user-doc -->
1282 * <!-- end-user-doc -->
1283 * @generated
1284 * @ordered
1285 */
1286 int TAX_PROPERTY__UNION_RECORD = 2;
1287
1288 /**
1289 * The number of structural features of the '<em>Tax Property</em>' class.
1290 * <!-- begin-user-doc -->
1291 * <!-- end-user-doc -->
1292 * @generated
1293 * @ordered
1294 */
1295 int TAX_PROPERTY_FEATURE_COUNT = 3;
1296
1297 /**
1298 * The number of operations of the '<em>Tax Property</em>' class.
1299 * <!-- begin-user-doc -->
1300 * <!-- end-user-doc -->
1301 * @generated
1302 * @ordered
1303 */
1304 int TAX_PROPERTY_OPERATION_COUNT = 0;
1305
1306 /**
1307 * The meta object id for the '{@link TaxationWithRoot.impl.FromAgentImpl <em>From Agent</em>}' class.
1308 * <!-- begin-user-doc -->
1309 * <!-- end-user-doc -->
1310 * @see TaxationWithRoot.impl.FromAgentImpl
1311 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getFromAgent()
1312 * @generated
1313 */
1314 int FROM_AGENT = 12;
1315
1316 /**
1317 * The feature id for the '<em><b>Tax Payer</b></em>' container reference.
1318 * <!-- begin-user-doc -->
1319 * <!-- end-user-doc -->
1320 * @generated
1321 * @ordered
1322 */
1323 int FROM_AGENT__TAX_PAYER = 0;
1324
1325 /**
1326 * The feature id for the '<em><b>Is dependent eligible for CE Not In Houshold Children Care</b></em>' attribute.
1327 * <!-- begin-user-doc -->
1328 * <!-- end-user-doc -->
1329 * @generated
1330 * @ordered
1331 */
1332 int FROM_AGENT__IS_DEPENDENT_ELIGIBLE_FOR_CE_NOT_IN_HOUSHOLD_CHILDREN_CARE = 1;
1333
1334 /**
1335 * The feature id for the '<em><b>Expense</b></em>' reference.
1336 * <!-- begin-user-doc -->
1337 * <!-- end-user-doc -->
1338 * @generated
1339 * @ordered
1340 */
1341 int FROM_AGENT__EXPENSE = 2;
1342
1343 /**
1344 * The feature id for the '<em><b>Is eligible debt</b></em>' attribute.
1345 * <!-- begin-user-doc -->
1346 * <!-- end-user-doc -->
1347 * @generated
1348 * @ordered
1349 */
1350 int FROM_AGENT__IS_ELIGIBLE_DEBT = 3;
1351
1352 /**
1353 * The feature id for the '<em><b>Dependent</b></em>' reference.
1354 * <!-- begin-user-doc -->
1355 * <!-- end-user-doc -->
1356 * @generated
1357 * @ordered
1358 */
1359 int FROM_AGENT__DEPENDENT = 4;
1360
1361 /**
1362 * The number of structural features of the '<em>From Agent</em>' class.
1363 * <!-- begin-user-doc -->
1364 * <!-- end-user-doc -->
1365 * @generated
1366 * @ordered
1367 */
1368 int FROM_AGENT_FEATURE_COUNT = 5;
1369
1370 /**
1371 * The number of operations of the '<em>From Agent</em>' class.
1372 * <!-- begin-user-doc -->
1373 * <!-- end-user-doc -->
1374 * @generated
1375 * @ordered
1376 */
1377 int FROM_AGENT_OPERATION_COUNT = 0;
1378
1379 /**
1380 * The meta object id for the '{@link TaxationWithRoot.impl.IncomeImpl <em>Income</em>}' class.
1381 * <!-- begin-user-doc -->
1382 * <!-- end-user-doc -->
1383 * @see TaxationWithRoot.impl.IncomeImpl
1384 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getIncome()
1385 * @generated
1386 */
1387 int INCOME = 13;
1388
1389 /**
1390 * The feature id for the '<em><b>Income amount</b></em>' attribute.
1391 * <!-- begin-user-doc -->
1392 * <!-- end-user-doc -->
1393 * @generated
1394 * @ordered
1395 */
1396 int INCOME__INCOME_AMOUNT = 0;
1397
1398 /**
1399 * The feature id for the '<em><b>Income type</b></em>' containment reference.
1400 * <!-- begin-user-doc -->
1401 * <!-- end-user-doc -->
1402 * @generated
1403 * @ordered
1404 */
1405 int INCOME__INCOME_TYPE = 1;
1406
1407 /**
1408 * The feature id for the '<em><b>Tax card</b></em>' containment reference.
1409 * <!-- begin-user-doc -->
1410 * <!-- end-user-doc -->
1411 * @generated
1412 * @ordered
1413 */
1414 int INCOME__TAX_CARD = 2;
1415
1416 /**
1417 * The feature id for the '<em><b>Tax liability</b></em>' attribute.
1418 * <!-- begin-user-doc -->
1419 * <!-- end-user-doc -->
1420 * @generated
1421 * @ordered
1422 */
1423 int INCOME__TAX_LIABILITY = 3;
1424
1425 /**
1426 * The feature id for the '<em><b>Tax Payer</b></em>' container reference.
1427 * <!-- begin-user-doc -->
1428 * <!-- end-user-doc -->
1429 * @generated
1430 * @ordered
1431 */
1432 int INCOME__TAX_PAYER = 4;
1433
1434 /**
1435 * The feature id for the '<em><b>Details</b></em>' containment reference list.
1436 * <!-- begin-user-doc -->
1437 * <!-- end-user-doc -->
1438 * @generated
1439 * @ordered
1440 */
1441 int INCOME__DETAILS = 5;
1442
1443 /**
1444 * The feature id for the '<em><b>Num</b></em>' attribute.
1445 * <!-- begin-user-doc -->
1446 * <!-- end-user-doc -->
1447 * @generated
1448 * @ordered
1449 */
1450 int INCOME__NUM = 6;
1451
1452 /**
1453 * The feature id for the '<em><b>Expenses</b></em>' containment reference list.
1454 * <!-- begin-user-doc -->
1455 * <!-- end-user-doc -->
1456 * @generated
1457 * @ordered
1458 */
1459 int INCOME__EXPENSES = 7;
1460
1461 /**
1462 * The number of structural features of the '<em>Income</em>' class.
1463 * <!-- begin-user-doc -->
1464 * <!-- end-user-doc -->
1465 * @generated
1466 * @ordered
1467 */
1468 int INCOME_FEATURE_COUNT = 8;
1469
1470 /**
1471 * The number of operations of the '<em>Income</em>' class.
1472 * <!-- begin-user-doc -->
1473 * <!-- end-user-doc -->
1474 * @generated
1475 * @ordered
1476 */
1477 int INCOME_OPERATION_COUNT = 0;
1478
1479 /**
1480 * The meta object id for the '{@link TaxationWithRoot.impl.Income_TypeImpl <em>Income Type</em>}' class.
1481 * <!-- begin-user-doc -->
1482 * <!-- end-user-doc -->
1483 * @see TaxationWithRoot.impl.Income_TypeImpl
1484 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getIncome_Type()
1485 * @generated
1486 */
1487 int INCOME_TYPE = 14;
1488
1489 /**
1490 * The feature id for the '<em><b>Id8</b></em>' attribute.
1491 * <!-- begin-user-doc -->
1492 * <!-- end-user-doc -->
1493 * @generated
1494 * @ordered
1495 */
1496 int INCOME_TYPE__ID8 = 0;
1497
1498 /**
1499 * The feature id for the '<em><b>Income</b></em>' container reference.
1500 * <!-- begin-user-doc -->
1501 * <!-- end-user-doc -->
1502 * @generated
1503 * @ordered
1504 */
1505 int INCOME_TYPE__INCOME = 1;
1506
1507 /**
1508 * The number of structural features of the '<em>Income Type</em>' class.
1509 * <!-- begin-user-doc -->
1510 * <!-- end-user-doc -->
1511 * @generated
1512 * @ordered
1513 */
1514 int INCOME_TYPE_FEATURE_COUNT = 2;
1515
1516 /**
1517 * The number of operations of the '<em>Income Type</em>' class.
1518 * <!-- begin-user-doc -->
1519 * <!-- end-user-doc -->
1520 * @generated
1521 * @ordered
1522 */
1523 int INCOME_TYPE_OPERATION_COUNT = 0;
1524
1525 /**
1526 * The meta object id for the '{@link TaxationWithRoot.impl.Tax_CardImpl <em>Tax Card</em>}' class.
1527 * <!-- begin-user-doc -->
1528 * <!-- end-user-doc -->
1529 * @see TaxationWithRoot.impl.Tax_CardImpl
1530 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getTax_Card()
1531 * @generated
1532 */
1533 int TAX_CARD = 15;
1534
1535 /**
1536 * The feature id for the '<em><b>Card identifier</b></em>' attribute.
1537 * <!-- begin-user-doc -->
1538 * <!-- end-user-doc -->
1539 * @generated
1540 * @ordered
1541 */
1542 int TAX_CARD__CARD_IDENTIFIER = 0;
1543
1544 /**
1545 * The feature id for the '<em><b>Tax office</b></em>' attribute.
1546 * <!-- begin-user-doc -->
1547 * <!-- end-user-doc -->
1548 * @generated
1549 * @ordered
1550 */
1551 int TAX_CARD__TAX_OFFICE = 1;
1552
1553 /**
1554 * The feature id for the '<em><b>Percentage of witholding</b></em>' attribute.
1555 * <!-- begin-user-doc -->
1556 * <!-- end-user-doc -->
1557 * @generated
1558 * @ordered
1559 */
1560 int TAX_CARD__PERCENTAGE_OF_WITHOLDING = 2;
1561
1562 /**
1563 * The feature id for the '<em><b>Tax payers name surname</b></em>' attribute list.
1564 * <!-- begin-user-doc -->
1565 * <!-- end-user-doc -->
1566 * @generated
1567 * @ordered
1568 */
1569 int TAX_CARD__TAX_PAYERS_NAME_SURNAME = 3;
1570
1571 /**
1572 * The feature id for the '<em><b>Tax payers partner name surname</b></em>' attribute list.
1573 * <!-- begin-user-doc -->
1574 * <!-- end-user-doc -->
1575 * @generated
1576 * @ordered
1577 */
1578 int TAX_CARD__TAX_PAYERS_PARTNER_NAME_SURNAME = 4;
1579
1580 /**
1581 * The feature id for the '<em><b>Tax payers address</b></em>' reference.
1582 * <!-- begin-user-doc -->
1583 * <!-- end-user-doc -->
1584 * @generated
1585 * @ordered
1586 */
1587 int TAX_CARD__TAX_PAYERS_ADDRESS = 5;
1588
1589 /**
1590 * The feature id for the '<em><b>Jobs Employer SS No</b></em>' attribute.
1591 * <!-- begin-user-doc -->
1592 * <!-- end-user-doc -->
1593 * @generated
1594 * @ordered
1595 */
1596 int TAX_CARD__JOBS_EMPLOYER_SS_NO = 6;
1597
1598 /**
1599 * The feature id for the '<em><b>Jobs employers name</b></em>' attribute.
1600 * <!-- begin-user-doc -->
1601 * <!-- end-user-doc -->
1602 * @generated
1603 * @ordered
1604 */
1605 int TAX_CARD__JOBS_EMPLOYERS_NAME = 7;
1606
1607 /**
1608 * The feature id for the '<em><b>Jobs activity type</b></em>' attribute.
1609 * <!-- begin-user-doc -->
1610 * <!-- end-user-doc -->
1611 * @generated
1612 * @ordered
1613 */
1614 int TAX_CARD__JOBS_ACTIVITY_TYPE = 8;
1615
1616 /**
1617 * The feature id for the '<em><b>Jobs place of work</b></em>' attribute.
1618 * <!-- begin-user-doc -->
1619 * <!-- end-user-doc -->
1620 * @generated
1621 * @ordered
1622 */
1623 int TAX_CARD__JOBS_PLACE_OF_WORK = 9;
1624
1625 /**
1626 * The feature id for the '<em><b>Deduction FD daily</b></em>' attribute.
1627 * <!-- begin-user-doc -->
1628 * <!-- end-user-doc -->
1629 * @generated
1630 * @ordered
1631 */
1632 int TAX_CARD__DEDUCTION_FD_DAILY = 10;
1633
1634 /**
1635 * The feature id for the '<em><b>Deduction FD monthly</b></em>' attribute.
1636 * <!-- begin-user-doc -->
1637 * <!-- end-user-doc -->
1638 * @generated
1639 * @ordered
1640 */
1641 int TAX_CARD__DEDUCTION_FD_MONTHLY = 11;
1642
1643 /**
1644 * The feature id for the '<em><b>Deduction AC daily</b></em>' attribute.
1645 * <!-- begin-user-doc -->
1646 * <!-- end-user-doc -->
1647 * @generated
1648 * @ordered
1649 */
1650 int TAX_CARD__DEDUCTION_AC_DAILY = 12;
1651
1652 /**
1653 * The feature id for the '<em><b>Deduction AC monthly</b></em>' attribute.
1654 * <!-- begin-user-doc -->
1655 * <!-- end-user-doc -->
1656 * @generated
1657 * @ordered
1658 */
1659 int TAX_CARD__DEDUCTION_AC_MONTHLY = 13;
1660
1661 /**
1662 * The feature id for the '<em><b>Deduction AC yearly</b></em>' attribute.
1663 * <!-- begin-user-doc -->
1664 * <!-- end-user-doc -->
1665 * @generated
1666 * @ordered
1667 */
1668 int TAX_CARD__DEDUCTION_AC_YEARLY = 14;
1669
1670 /**
1671 * The feature id for the '<em><b>Deduction CE daily</b></em>' attribute.
1672 * <!-- begin-user-doc -->
1673 * <!-- end-user-doc -->
1674 * @generated
1675 * @ordered
1676 */
1677 int TAX_CARD__DEDUCTION_CE_DAILY = 15;
1678
1679 /**
1680 * The feature id for the '<em><b>Deduction CE monthly</b></em>' attribute.
1681 * <!-- begin-user-doc -->
1682 * <!-- end-user-doc -->
1683 * @generated
1684 * @ordered
1685 */
1686 int TAX_CARD__DEDUCTION_CE_MONTHLY = 16;
1687
1688 /**
1689 * The feature id for the '<em><b>Deduction CE yearly</b></em>' attribute.
1690 * <!-- begin-user-doc -->
1691 * <!-- end-user-doc -->
1692 * @generated
1693 * @ordered
1694 */
1695 int TAX_CARD__DEDUCTION_CE_YEARLY = 17;
1696
1697 /**
1698 * The feature id for the '<em><b>Deduction DS daily</b></em>' attribute.
1699 * <!-- begin-user-doc -->
1700 * <!-- end-user-doc -->
1701 * @generated
1702 * @ordered
1703 */
1704 int TAX_CARD__DEDUCTION_DS_DAILY = 18;
1705
1706 /**
1707 * The feature id for the '<em><b>Deduction DS monthly</b></em>' attribute.
1708 * <!-- begin-user-doc -->
1709 * <!-- end-user-doc -->
1710 * @generated
1711 * @ordered
1712 */
1713 int TAX_CARD__DEDUCTION_DS_MONTHLY = 19;
1714
1715 /**
1716 * The feature id for the '<em><b>Deduction FO daily</b></em>' attribute.
1717 * <!-- begin-user-doc -->
1718 * <!-- end-user-doc -->
1719 * @generated
1720 * @ordered
1721 */
1722 int TAX_CARD__DEDUCTION_FO_DAILY = 20;
1723
1724 /**
1725 * The feature id for the '<em><b>Deduction FO monthly</b></em>' attribute.
1726 * <!-- begin-user-doc -->
1727 * <!-- end-user-doc -->
1728 * @generated
1729 * @ordered
1730 */
1731 int TAX_CARD__DEDUCTION_FO_MONTHLY = 21;
1732
1733 /**
1734 * The feature id for the '<em><b>Deduction FO yearly</b></em>' attribute.
1735 * <!-- begin-user-doc -->
1736 * <!-- end-user-doc -->
1737 * @generated
1738 * @ordered
1739 */
1740 int TAX_CARD__DEDUCTION_FO_YEARLY = 22;
1741
1742 /**
1743 * The feature id for the '<em><b>Credit CIS daily</b></em>' attribute.
1744 * <!-- begin-user-doc -->
1745 * <!-- end-user-doc -->
1746 * @generated
1747 * @ordered
1748 */
1749 int TAX_CARD__CREDIT_CIS_DAILY = 23;
1750
1751 /**
1752 * The feature id for the '<em><b>Credit CIS monthly</b></em>' attribute.
1753 * <!-- begin-user-doc -->
1754 * <!-- end-user-doc -->
1755 * @generated
1756 * @ordered
1757 */
1758 int TAX_CARD__CREDIT_CIS_MONTHLY = 24;
1759
1760 /**
1761 * The feature id for the '<em><b>Credit CIM daily</b></em>' attribute.
1762 * <!-- begin-user-doc -->
1763 * <!-- end-user-doc -->
1764 * @generated
1765 * @ordered
1766 */
1767 int TAX_CARD__CREDIT_CIM_DAILY = 25;
1768
1769 /**
1770 * The feature id for the '<em><b>Validity</b></em>' attribute.
1771 * <!-- begin-user-doc -->
1772 * <!-- end-user-doc -->
1773 * @generated
1774 * @ordered
1775 */
1776 int TAX_CARD__VALIDITY = 26;
1777
1778 /**
1779 * The feature id for the '<em><b>Income Tax Credit</b></em>' reference list.
1780 * <!-- begin-user-doc -->
1781 * <!-- end-user-doc -->
1782 * @generated
1783 * @ordered
1784 */
1785 int TAX_CARD__INCOME_TAX_CREDIT = 27;
1786
1787 /**
1788 * The feature id for the '<em><b>Previous</b></em>' reference.
1789 * <!-- begin-user-doc -->
1790 * <!-- end-user-doc -->
1791 * @generated
1792 * @ordered
1793 */
1794 int TAX_CARD__PREVIOUS = 28;
1795
1796 /**
1797 * The feature id for the '<em><b>Current tax card</b></em>' reference.
1798 * <!-- begin-user-doc -->
1799 * <!-- end-user-doc -->
1800 * @generated
1801 * @ordered
1802 */
1803 int TAX_CARD__CURRENT_TAX_CARD = 29;
1804
1805 /**
1806 * The feature id for the '<em><b>Credit CIM yearly</b></em>' attribute.
1807 * <!-- begin-user-doc -->
1808 * <!-- end-user-doc -->
1809 * @generated
1810 * @ordered
1811 */
1812 int TAX_CARD__CREDIT_CIM_YEARLY = 30;
1813
1814 /**
1815 * The feature id for the '<em><b>Deduction DS Alimony yearly</b></em>' attribute.
1816 * <!-- begin-user-doc -->
1817 * <!-- end-user-doc -->
1818 * @generated
1819 * @ordered
1820 */
1821 int TAX_CARD__DEDUCTION_DS_ALIMONY_YEARLY = 31;
1822
1823 /**
1824 * The feature id for the '<em><b>Deduction DS Debt yearly</b></em>' attribute.
1825 * <!-- begin-user-doc -->
1826 * <!-- end-user-doc -->
1827 * @generated
1828 * @ordered
1829 */
1830 int TAX_CARD__DEDUCTION_DS_DEBT_YEARLY = 32;
1831
1832 /**
1833 * The feature id for the '<em><b>Income</b></em>' container reference.
1834 * <!-- begin-user-doc -->
1835 * <!-- end-user-doc -->
1836 * @generated
1837 * @ordered
1838 */
1839 int TAX_CARD__INCOME = 33;
1840
1841 /**
1842 * The number of structural features of the '<em>Tax Card</em>' class.
1843 * <!-- begin-user-doc -->
1844 * <!-- end-user-doc -->
1845 * @generated
1846 * @ordered
1847 */
1848 int TAX_CARD_FEATURE_COUNT = 34;
1849
1850 /**
1851 * The number of operations of the '<em>Tax Card</em>' class.
1852 * <!-- begin-user-doc -->
1853 * <!-- end-user-doc -->
1854 * @generated
1855 * @ordered
1856 */
1857 int TAX_CARD_OPERATION_COUNT = 0;
1858
1859 /**
1860 * The meta object id for the '{@link TaxationWithRoot.impl.Income_Tax_CreditImpl <em>Income Tax Credit</em>}' class.
1861 * <!-- begin-user-doc -->
1862 * <!-- end-user-doc -->
1863 * @see TaxationWithRoot.impl.Income_Tax_CreditImpl
1864 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getIncome_Tax_Credit()
1865 * @generated
1866 */
1867 int INCOME_TAX_CREDIT = 16;
1868
1869 /**
1870 * The feature id for the '<em><b>Granted By</b></em>' attribute.
1871 * <!-- begin-user-doc -->
1872 * <!-- end-user-doc -->
1873 * @generated
1874 * @ordered
1875 */
1876 int INCOME_TAX_CREDIT__GRANTED_BY = 0;
1877
1878 /**
1879 * The feature id for the '<em><b>Tax Payer</b></em>' reference.
1880 * <!-- begin-user-doc -->
1881 * <!-- end-user-doc -->
1882 * @generated
1883 * @ordered
1884 */
1885 int INCOME_TAX_CREDIT__TAX_PAYER = 1;
1886
1887 /**
1888 * The feature id for the '<em><b>Tax year</b></em>' attribute.
1889 * <!-- begin-user-doc -->
1890 * <!-- end-user-doc -->
1891 * @generated
1892 * @ordered
1893 */
1894 int INCOME_TAX_CREDIT__TAX_YEAR = 2;
1895
1896 /**
1897 * The feature id for the '<em><b>Yearly</b></em>' attribute.
1898 * <!-- begin-user-doc -->
1899 * <!-- end-user-doc -->
1900 * @generated
1901 * @ordered
1902 */
1903 int INCOME_TAX_CREDIT__YEARLY = 3;
1904
1905 /**
1906 * The feature id for the '<em><b>Monthly</b></em>' attribute.
1907 * <!-- begin-user-doc -->
1908 * <!-- end-user-doc -->
1909 * @generated
1910 * @ordered
1911 */
1912 int INCOME_TAX_CREDIT__MONTHLY = 4;
1913
1914 /**
1915 * The feature id for the '<em><b>Daily</b></em>' attribute.
1916 * <!-- begin-user-doc -->
1917 * <!-- end-user-doc -->
1918 * @generated
1919 * @ordered
1920 */
1921 int INCOME_TAX_CREDIT__DAILY = 5;
1922
1923 /**
1924 * The feature id for the '<em><b>Id7</b></em>' attribute.
1925 * <!-- begin-user-doc -->
1926 * <!-- end-user-doc -->
1927 * @generated
1928 * @ordered
1929 */
1930 int INCOME_TAX_CREDIT__ID7 = 6;
1931
1932 /**
1933 * The feature id for the '<em><b>Taxation Frame</b></em>' reference.
1934 * <!-- begin-user-doc -->
1935 * <!-- end-user-doc -->
1936 * @generated
1937 * @ordered
1938 */
1939 int INCOME_TAX_CREDIT__TAXATION_FRAME = 7;
1940
1941 /**
1942 * The number of structural features of the '<em>Income Tax Credit</em>' class.
1943 * <!-- begin-user-doc -->
1944 * <!-- end-user-doc -->
1945 * @generated
1946 * @ordered
1947 */
1948 int INCOME_TAX_CREDIT_FEATURE_COUNT = 8;
1949
1950 /**
1951 * The number of operations of the '<em>Income Tax Credit</em>' class.
1952 * <!-- begin-user-doc -->
1953 * <!-- end-user-doc -->
1954 * @generated
1955 * @ordered
1956 */
1957 int INCOME_TAX_CREDIT_OPERATION_COUNT = 0;
1958
1959 /**
1960 * The meta object id for the '{@link TaxationWithRoot.impl.Income_DetailImpl <em>Income Detail</em>}' class.
1961 * <!-- begin-user-doc -->
1962 * <!-- end-user-doc -->
1963 * @see TaxationWithRoot.impl.Income_DetailImpl
1964 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getIncome_Detail()
1965 * @generated
1966 */
1967 int INCOME_DETAIL = 17;
1968
1969 /**
1970 * The feature id for the '<em><b>Amount</b></em>' attribute.
1971 * <!-- begin-user-doc -->
1972 * <!-- end-user-doc -->
1973 * @generated
1974 * @ordered
1975 */
1976 int INCOME_DETAIL__AMOUNT = 0;
1977
1978 /**
1979 * The feature id for the '<em><b>Is worked</b></em>' attribute.
1980 * <!-- begin-user-doc -->
1981 * <!-- end-user-doc -->
1982 * @generated
1983 * @ordered
1984 */
1985 int INCOME_DETAIL__IS_WORKED = 1;
1986
1987 /**
1988 * The feature id for the '<em><b>Distance</b></em>' attribute.
1989 * <!-- begin-user-doc -->
1990 * <!-- end-user-doc -->
1991 * @generated
1992 * @ordered
1993 */
1994 int INCOME_DETAIL__DISTANCE = 2;
1995
1996 /**
1997 * The feature id for the '<em><b>Worked days</b></em>' attribute.
1998 * <!-- begin-user-doc -->
1999 * <!-- end-user-doc -->
2000 * @generated
2001 * @ordered
2002 */
2003 int INCOME_DETAIL__WORKED_DAYS = 3;
2004
2005 /**
2006 * The feature id for the '<em><b>Is contributing CNS</b></em>' attribute.
2007 * <!-- begin-user-doc -->
2008 * <!-- end-user-doc -->
2009 * @generated
2010 * @ordered
2011 */
2012 int INCOME_DETAIL__IS_CONTRIBUTING_CNS = 4;
2013
2014 /**
2015 * The feature id for the '<em><b>Id5</b></em>' attribute.
2016 * <!-- begin-user-doc -->
2017 * <!-- end-user-doc -->
2018 * @generated
2019 * @ordered
2020 */
2021 int INCOME_DETAIL__ID5 = 5;
2022
2023 /**
2024 * The feature id for the '<em><b>Income</b></em>' container reference.
2025 * <!-- begin-user-doc -->
2026 * <!-- end-user-doc -->
2027 * @generated
2028 * @ordered
2029 */
2030 int INCOME_DETAIL__INCOME = 6;
2031
2032 /**
2033 * The number of structural features of the '<em>Income Detail</em>' class.
2034 * <!-- begin-user-doc -->
2035 * <!-- end-user-doc -->
2036 * @generated
2037 * @ordered
2038 */
2039 int INCOME_DETAIL_FEATURE_COUNT = 7;
2040
2041 /**
2042 * The number of operations of the '<em>Income Detail</em>' class.
2043 * <!-- begin-user-doc -->
2044 * <!-- end-user-doc -->
2045 * @generated
2046 * @ordered
2047 */
2048 int INCOME_DETAIL_OPERATION_COUNT = 0;
2049
2050 /**
2051 * The meta object id for the '{@link TaxationWithRoot.impl.FromLawImpl <em>From Law</em>}' class.
2052 * <!-- begin-user-doc -->
2053 * <!-- end-user-doc -->
2054 * @see TaxationWithRoot.impl.FromLawImpl
2055 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getFromLaw()
2056 * @generated
2057 */
2058 int FROM_LAW = 18;
2059
2060 /**
2061 * The feature id for the '<em><b>Id</b></em>' attribute.
2062 * <!-- begin-user-doc -->
2063 * <!-- end-user-doc -->
2064 * @generated
2065 * @ordered
2066 */
2067 int FROM_LAW__ID = 0;
2068
2069 /**
2070 * The feature id for the '<em><b>Tax Payer</b></em>' container reference.
2071 * <!-- begin-user-doc -->
2072 * <!-- end-user-doc -->
2073 * @generated
2074 * @ordered
2075 */
2076 int FROM_LAW__TAX_PAYER = 1;
2077
2078 /**
2079 * The number of structural features of the '<em>From Law</em>' class.
2080 * <!-- begin-user-doc -->
2081 * <!-- end-user-doc -->
2082 * @generated
2083 * @ordered
2084 */
2085 int FROM_LAW_FEATURE_COUNT = 2;
2086
2087 /**
2088 * The number of operations of the '<em>From Law</em>' class.
2089 * <!-- begin-user-doc -->
2090 * <!-- end-user-doc -->
2091 * @generated
2092 * @ordered
2093 */
2094 int FROM_LAW_OPERATION_COUNT = 0;
2095
2096 /**
2097 * The meta object id for the '{@link TaxationWithRoot.impl.Fiscal_AddressImpl <em>Fiscal Address</em>}' class.
2098 * <!-- begin-user-doc -->
2099 * <!-- end-user-doc -->
2100 * @see TaxationWithRoot.impl.Fiscal_AddressImpl
2101 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getFiscal_Address()
2102 * @generated
2103 */
2104 int FISCAL_ADDRESS = 19;
2105
2106 /**
2107 * The feature id for the '<em><b>Country</b></em>' attribute.
2108 * <!-- begin-user-doc -->
2109 * <!-- end-user-doc -->
2110 * @generated
2111 * @ordered
2112 */
2113 int FISCAL_ADDRESS__COUNTRY = ADDRESS__COUNTRY;
2114
2115 /**
2116 * The feature id for the '<em><b>Street</b></em>' attribute.
2117 * <!-- begin-user-doc -->
2118 * <!-- end-user-doc -->
2119 * @generated
2120 * @ordered
2121 */
2122 int FISCAL_ADDRESS__STREET = ADDRESS__STREET;
2123
2124 /**
2125 * The feature id for the '<em><b>Zip Code</b></em>' attribute.
2126 * <!-- begin-user-doc -->
2127 * <!-- end-user-doc -->
2128 * @generated
2129 * @ordered
2130 */
2131 int FISCAL_ADDRESS__ZIP_CODE = ADDRESS__ZIP_CODE;
2132
2133 /**
2134 * The feature id for the '<em><b>City</b></em>' attribute.
2135 * <!-- begin-user-doc -->
2136 * <!-- end-user-doc -->
2137 * @generated
2138 * @ordered
2139 */
2140 int FISCAL_ADDRESS__CITY = ADDRESS__CITY;
2141
2142 /**
2143 * The feature id for the '<em><b>Id2</b></em>' attribute.
2144 * <!-- begin-user-doc -->
2145 * <!-- end-user-doc -->
2146 * @generated
2147 * @ordered
2148 */
2149 int FISCAL_ADDRESS__ID2 = ADDRESS__ID2;
2150
2151 /**
2152 * The feature id for the '<em><b>Tax Payer</b></em>' reference list.
2153 * <!-- begin-user-doc -->
2154 * <!-- end-user-doc -->
2155 * @generated
2156 * @ordered
2157 */
2158 int FISCAL_ADDRESS__TAX_PAYER = ADDRESS__TAX_PAYER;
2159
2160 /**
2161 * The number of structural features of the '<em>Fiscal Address</em>' class.
2162 * <!-- begin-user-doc -->
2163 * <!-- end-user-doc -->
2164 * @generated
2165 * @ordered
2166 */
2167 int FISCAL_ADDRESS_FEATURE_COUNT = ADDRESS_FEATURE_COUNT + 0;
2168
2169 /**
2170 * The number of operations of the '<em>Fiscal Address</em>' class.
2171 * <!-- begin-user-doc -->
2172 * <!-- end-user-doc -->
2173 * @generated
2174 * @ordered
2175 */
2176 int FISCAL_ADDRESS_OPERATION_COUNT = ADDRESS_OPERATION_COUNT + 0;
2177
2178 /**
2179 * The meta object id for the '{@link TaxationWithRoot.impl.Habitual_AddressImpl <em>Habitual Address</em>}' class.
2180 * <!-- begin-user-doc -->
2181 * <!-- end-user-doc -->
2182 * @see TaxationWithRoot.impl.Habitual_AddressImpl
2183 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getHabitual_Address()
2184 * @generated
2185 */
2186 int HABITUAL_ADDRESS = 20;
2187
2188 /**
2189 * The feature id for the '<em><b>Country</b></em>' attribute.
2190 * <!-- begin-user-doc -->
2191 * <!-- end-user-doc -->
2192 * @generated
2193 * @ordered
2194 */
2195 int HABITUAL_ADDRESS__COUNTRY = ADDRESS__COUNTRY;
2196
2197 /**
2198 * The feature id for the '<em><b>Street</b></em>' attribute.
2199 * <!-- begin-user-doc -->
2200 * <!-- end-user-doc -->
2201 * @generated
2202 * @ordered
2203 */
2204 int HABITUAL_ADDRESS__STREET = ADDRESS__STREET;
2205
2206 /**
2207 * The feature id for the '<em><b>Zip Code</b></em>' attribute.
2208 * <!-- begin-user-doc -->
2209 * <!-- end-user-doc -->
2210 * @generated
2211 * @ordered
2212 */
2213 int HABITUAL_ADDRESS__ZIP_CODE = ADDRESS__ZIP_CODE;
2214
2215 /**
2216 * The feature id for the '<em><b>City</b></em>' attribute.
2217 * <!-- begin-user-doc -->
2218 * <!-- end-user-doc -->
2219 * @generated
2220 * @ordered
2221 */
2222 int HABITUAL_ADDRESS__CITY = ADDRESS__CITY;
2223
2224 /**
2225 * The feature id for the '<em><b>Id2</b></em>' attribute.
2226 * <!-- begin-user-doc -->
2227 * <!-- end-user-doc -->
2228 * @generated
2229 * @ordered
2230 */
2231 int HABITUAL_ADDRESS__ID2 = ADDRESS__ID2;
2232
2233 /**
2234 * The feature id for the '<em><b>Tax Payer</b></em>' reference list.
2235 * <!-- begin-user-doc -->
2236 * <!-- end-user-doc -->
2237 * @generated
2238 * @ordered
2239 */
2240 int HABITUAL_ADDRESS__TAX_PAYER = ADDRESS__TAX_PAYER;
2241
2242 /**
2243 * The number of structural features of the '<em>Habitual Address</em>' class.
2244 * <!-- begin-user-doc -->
2245 * <!-- end-user-doc -->
2246 * @generated
2247 * @ordered
2248 */
2249 int HABITUAL_ADDRESS_FEATURE_COUNT = ADDRESS_FEATURE_COUNT + 0;
2250
2251 /**
2252 * The number of operations of the '<em>Habitual Address</em>' class.
2253 * <!-- begin-user-doc -->
2254 * <!-- end-user-doc -->
2255 * @generated
2256 * @ordered
2257 */
2258 int HABITUAL_ADDRESS_OPERATION_COUNT = ADDRESS_OPERATION_COUNT + 0;
2259
2260 /**
2261 * The meta object id for the '{@link TaxationWithRoot.impl.Marriage_RecordImpl <em>Marriage Record</em>}' class.
2262 * <!-- begin-user-doc -->
2263 * <!-- end-user-doc -->
2264 * @see TaxationWithRoot.impl.Marriage_RecordImpl
2265 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getMarriage_Record()
2266 * @generated
2267 */
2268 int MARRIAGE_RECORD = 21;
2269
2270 /**
2271 * The feature id for the '<em><b>Start year</b></em>' attribute.
2272 * <!-- begin-user-doc -->
2273 * <!-- end-user-doc -->
2274 * @generated
2275 * @ordered
2276 */
2277 int MARRIAGE_RECORD__START_YEAR = LEGAL_UNION_RECORD__START_YEAR;
2278
2279 /**
2280 * The feature id for the '<em><b>End year</b></em>' attribute.
2281 * <!-- begin-user-doc -->
2282 * <!-- end-user-doc -->
2283 * @generated
2284 * @ordered
2285 */
2286 int MARRIAGE_RECORD__END_YEAR = LEGAL_UNION_RECORD__END_YEAR;
2287
2288 /**
2289 * The feature id for the '<em><b>Separation cause</b></em>' attribute.
2290 * <!-- begin-user-doc -->
2291 * <!-- end-user-doc -->
2292 * @generated
2293 * @ordered
2294 */
2295 int MARRIAGE_RECORD__SEPARATION_CAUSE = LEGAL_UNION_RECORD__SEPARATION_CAUSE;
2296
2297 /**
2298 * The feature id for the '<em><b>Individual A</b></em>' containment reference.
2299 * <!-- begin-user-doc -->
2300 * <!-- end-user-doc -->
2301 * @generated
2302 * @ordered
2303 */
2304 int MARRIAGE_RECORD__INDIVIDUAL_A = LEGAL_UNION_RECORD__INDIVIDUAL_A;
2305
2306 /**
2307 * The feature id for the '<em><b>Individual B</b></em>' containment reference list.
2308 * <!-- begin-user-doc -->
2309 * <!-- end-user-doc -->
2310 * @generated
2311 * @ordered
2312 */
2313 int MARRIAGE_RECORD__INDIVIDUAL_B = LEGAL_UNION_RECORD__INDIVIDUAL_B;
2314
2315 /**
2316 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
2317 * <!-- begin-user-doc -->
2318 * <!-- end-user-doc -->
2319 * @generated
2320 * @ordered
2321 */
2322 int MARRIAGE_RECORD__PROPERTIES = LEGAL_UNION_RECORD__PROPERTIES;
2323
2324 /**
2325 * The feature id for the '<em><b>Mutual agreement</b></em>' attribute.
2326 * <!-- begin-user-doc -->
2327 * <!-- end-user-doc -->
2328 * @generated
2329 * @ordered
2330 */
2331 int MARRIAGE_RECORD__MUTUAL_AGREEMENT = LEGAL_UNION_RECORD__MUTUAL_AGREEMENT;
2332
2333 /**
2334 * The feature id for the '<em><b>Id9</b></em>' attribute.
2335 * <!-- begin-user-doc -->
2336 * <!-- end-user-doc -->
2337 * @generated
2338 * @ordered
2339 */
2340 int MARRIAGE_RECORD__ID9 = LEGAL_UNION_RECORD__ID9;
2341
2342 /**
2343 * The feature id for the '<em><b>Household</b></em>' container reference.
2344 * <!-- begin-user-doc -->
2345 * <!-- end-user-doc -->
2346 * @generated
2347 * @ordered
2348 */
2349 int MARRIAGE_RECORD__HOUSEHOLD = LEGAL_UNION_RECORD__HOUSEHOLD;
2350
2351 /**
2352 * The number of structural features of the '<em>Marriage Record</em>' class.
2353 * <!-- begin-user-doc -->
2354 * <!-- end-user-doc -->
2355 * @generated
2356 * @ordered
2357 */
2358 int MARRIAGE_RECORD_FEATURE_COUNT = LEGAL_UNION_RECORD_FEATURE_COUNT + 0;
2359
2360 /**
2361 * The number of operations of the '<em>Marriage Record</em>' class.
2362 * <!-- begin-user-doc -->
2363 * <!-- end-user-doc -->
2364 * @generated
2365 * @ordered
2366 */
2367 int MARRIAGE_RECORD_OPERATION_COUNT = LEGAL_UNION_RECORD_OPERATION_COUNT + 0;
2368
2369 /**
2370 * The meta object id for the '{@link TaxationWithRoot.impl.Non_Resident_Tax_PayerImpl <em>Non Resident Tax Payer</em>}' class.
2371 * <!-- begin-user-doc -->
2372 * <!-- end-user-doc -->
2373 * @see TaxationWithRoot.impl.Non_Resident_Tax_PayerImpl
2374 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getNon_Resident_Tax_Payer()
2375 * @generated
2376 */
2377 int NON_RESIDENT_TAX_PAYER = 22;
2378
2379 /**
2380 * The feature id for the '<em><b>SS No</b></em>' attribute.
2381 * <!-- begin-user-doc -->
2382 * <!-- end-user-doc -->
2383 * @generated
2384 * @ordered
2385 */
2386 int NON_RESIDENT_TAX_PAYER__SS_NO = TAX_PAYER__SS_NO;
2387
2388 /**
2389 * The feature id for the '<em><b>Addresses</b></em>' reference list.
2390 * <!-- begin-user-doc -->
2391 * <!-- end-user-doc -->
2392 * @generated
2393 * @ordered
2394 */
2395 int NON_RESIDENT_TAX_PAYER__ADDRESSES = TAX_PAYER__ADDRESSES;
2396
2397 /**
2398 * The feature id for the '<em><b>Birth year</b></em>' attribute.
2399 * <!-- begin-user-doc -->
2400 * <!-- end-user-doc -->
2401 * @generated
2402 * @ordered
2403 */
2404 int NON_RESIDENT_TAX_PAYER__BIRTH_YEAR = TAX_PAYER__BIRTH_YEAR;
2405
2406 /**
2407 * The feature id for the '<em><b>Disability percentage</b></em>' attribute.
2408 * <!-- begin-user-doc -->
2409 * <!-- end-user-doc -->
2410 * @generated
2411 * @ordered
2412 */
2413 int NON_RESIDENT_TAX_PAYER__DISABILITY_PERCENTAGE = TAX_PAYER__DISABILITY_PERCENTAGE;
2414
2415 /**
2416 * The feature id for the '<em><b>Disability type</b></em>' attribute.
2417 * <!-- begin-user-doc -->
2418 * <!-- end-user-doc -->
2419 * @generated
2420 * @ordered
2421 */
2422 int NON_RESIDENT_TAX_PAYER__DISABILITY_TYPE = TAX_PAYER__DISABILITY_TYPE;
2423
2424 /**
2425 * The feature id for the '<em><b>Birth month</b></em>' attribute.
2426 * <!-- begin-user-doc -->
2427 * <!-- end-user-doc -->
2428 * @generated
2429 * @ordered
2430 */
2431 int NON_RESIDENT_TAX_PAYER__BIRTH_MONTH = TAX_PAYER__BIRTH_MONTH;
2432
2433 /**
2434 * The feature id for the '<em><b>Birth day</b></em>' attribute.
2435 * <!-- begin-user-doc -->
2436 * <!-- end-user-doc -->
2437 * @generated
2438 * @ordered
2439 */
2440 int NON_RESIDENT_TAX_PAYER__BIRTH_DAY = TAX_PAYER__BIRTH_DAY;
2441
2442 /**
2443 * The feature id for the '<em><b>Expenses</b></em>' reference list.
2444 * <!-- begin-user-doc -->
2445 * <!-- end-user-doc -->
2446 * @generated
2447 * @ordered
2448 */
2449 int NON_RESIDENT_TAX_PAYER__EXPENSES = TAX_PAYER__EXPENSES;
2450
2451 /**
2452 * The feature id for the '<em><b>Is widower</b></em>' attribute.
2453 * <!-- begin-user-doc -->
2454 * <!-- end-user-doc -->
2455 * @generated
2456 * @ordered
2457 */
2458 int NON_RESIDENT_TAX_PAYER__IS_WIDOWER = TAX_PAYER__IS_WIDOWER;
2459
2460 /**
2461 * The feature id for the '<em><b>Dependents</b></em>' containment reference list.
2462 * <!-- begin-user-doc -->
2463 * <!-- end-user-doc -->
2464 * @generated
2465 * @ordered
2466 */
2467 int NON_RESIDENT_TAX_PAYER__DEPENDENTS = TAX_PAYER__DEPENDENTS;
2468
2469 /**
2470 * The feature id for the '<em><b>From agent</b></em>' containment reference.
2471 * <!-- begin-user-doc -->
2472 * <!-- end-user-doc -->
2473 * @generated
2474 * @ordered
2475 */
2476 int NON_RESIDENT_TAX_PAYER__FROM_AGENT = TAX_PAYER__FROM_AGENT;
2477
2478 /**
2479 * The feature id for the '<em><b>Incomes</b></em>' containment reference list.
2480 * <!-- begin-user-doc -->
2481 * <!-- end-user-doc -->
2482 * @generated
2483 * @ordered
2484 */
2485 int NON_RESIDENT_TAX_PAYER__INCOMES = TAX_PAYER__INCOMES;
2486
2487 /**
2488 * The feature id for the '<em><b>From law</b></em>' containment reference.
2489 * <!-- begin-user-doc -->
2490 * <!-- end-user-doc -->
2491 * @generated
2492 * @ordered
2493 */
2494 int NON_RESIDENT_TAX_PAYER__FROM_LAW = TAX_PAYER__FROM_LAW;
2495
2496 /**
2497 * The feature id for the '<em><b>Is assimilated to resident</b></em>' attribute.
2498 * <!-- begin-user-doc -->
2499 * <!-- end-user-doc -->
2500 * @generated
2501 * @ordered
2502 */
2503 int NON_RESIDENT_TAX_PAYER__IS_ASSIMILATED_TO_RESIDENT = TAX_PAYER_FEATURE_COUNT + 0;
2504
2505 /**
2506 * The number of structural features of the '<em>Non Resident Tax Payer</em>' class.
2507 * <!-- begin-user-doc -->
2508 * <!-- end-user-doc -->
2509 * @generated
2510 * @ordered
2511 */
2512 int NON_RESIDENT_TAX_PAYER_FEATURE_COUNT = TAX_PAYER_FEATURE_COUNT + 1;
2513
2514 /**
2515 * The number of operations of the '<em>Non Resident Tax Payer</em>' class.
2516 * <!-- begin-user-doc -->
2517 * <!-- end-user-doc -->
2518 * @generated
2519 * @ordered
2520 */
2521 int NON_RESIDENT_TAX_PAYER_OPERATION_COUNT = TAX_PAYER_OPERATION_COUNT + 0;
2522
2523 /**
2524 * The meta object id for the '{@link TaxationWithRoot.impl.Partnership_RecordImpl <em>Partnership Record</em>}' class.
2525 * <!-- begin-user-doc -->
2526 * <!-- end-user-doc -->
2527 * @see TaxationWithRoot.impl.Partnership_RecordImpl
2528 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getPartnership_Record()
2529 * @generated
2530 */
2531 int PARTNERSHIP_RECORD = 23;
2532
2533 /**
2534 * The feature id for the '<em><b>Start year</b></em>' attribute.
2535 * <!-- begin-user-doc -->
2536 * <!-- end-user-doc -->
2537 * @generated
2538 * @ordered
2539 */
2540 int PARTNERSHIP_RECORD__START_YEAR = LEGAL_UNION_RECORD__START_YEAR;
2541
2542 /**
2543 * The feature id for the '<em><b>End year</b></em>' attribute.
2544 * <!-- begin-user-doc -->
2545 * <!-- end-user-doc -->
2546 * @generated
2547 * @ordered
2548 */
2549 int PARTNERSHIP_RECORD__END_YEAR = LEGAL_UNION_RECORD__END_YEAR;
2550
2551 /**
2552 * The feature id for the '<em><b>Separation cause</b></em>' attribute.
2553 * <!-- begin-user-doc -->
2554 * <!-- end-user-doc -->
2555 * @generated
2556 * @ordered
2557 */
2558 int PARTNERSHIP_RECORD__SEPARATION_CAUSE = LEGAL_UNION_RECORD__SEPARATION_CAUSE;
2559
2560 /**
2561 * The feature id for the '<em><b>Individual A</b></em>' containment reference.
2562 * <!-- begin-user-doc -->
2563 * <!-- end-user-doc -->
2564 * @generated
2565 * @ordered
2566 */
2567 int PARTNERSHIP_RECORD__INDIVIDUAL_A = LEGAL_UNION_RECORD__INDIVIDUAL_A;
2568
2569 /**
2570 * The feature id for the '<em><b>Individual B</b></em>' containment reference list.
2571 * <!-- begin-user-doc -->
2572 * <!-- end-user-doc -->
2573 * @generated
2574 * @ordered
2575 */
2576 int PARTNERSHIP_RECORD__INDIVIDUAL_B = LEGAL_UNION_RECORD__INDIVIDUAL_B;
2577
2578 /**
2579 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
2580 * <!-- begin-user-doc -->
2581 * <!-- end-user-doc -->
2582 * @generated
2583 * @ordered
2584 */
2585 int PARTNERSHIP_RECORD__PROPERTIES = LEGAL_UNION_RECORD__PROPERTIES;
2586
2587 /**
2588 * The feature id for the '<em><b>Mutual agreement</b></em>' attribute.
2589 * <!-- begin-user-doc -->
2590 * <!-- end-user-doc -->
2591 * @generated
2592 * @ordered
2593 */
2594 int PARTNERSHIP_RECORD__MUTUAL_AGREEMENT = LEGAL_UNION_RECORD__MUTUAL_AGREEMENT;
2595
2596 /**
2597 * The feature id for the '<em><b>Id9</b></em>' attribute.
2598 * <!-- begin-user-doc -->
2599 * <!-- end-user-doc -->
2600 * @generated
2601 * @ordered
2602 */
2603 int PARTNERSHIP_RECORD__ID9 = LEGAL_UNION_RECORD__ID9;
2604
2605 /**
2606 * The feature id for the '<em><b>Household</b></em>' container reference.
2607 * <!-- begin-user-doc -->
2608 * <!-- end-user-doc -->
2609 * @generated
2610 * @ordered
2611 */
2612 int PARTNERSHIP_RECORD__HOUSEHOLD = LEGAL_UNION_RECORD__HOUSEHOLD;
2613
2614 /**
2615 * The number of structural features of the '<em>Partnership Record</em>' class.
2616 * <!-- begin-user-doc -->
2617 * <!-- end-user-doc -->
2618 * @generated
2619 * @ordered
2620 */
2621 int PARTNERSHIP_RECORD_FEATURE_COUNT = LEGAL_UNION_RECORD_FEATURE_COUNT + 0;
2622
2623 /**
2624 * The number of operations of the '<em>Partnership Record</em>' class.
2625 * <!-- begin-user-doc -->
2626 * <!-- end-user-doc -->
2627 * @generated
2628 * @ordered
2629 */
2630 int PARTNERSHIP_RECORD_OPERATION_COUNT = LEGAL_UNION_RECORD_OPERATION_COUNT + 0;
2631
2632 /**
2633 * The meta object id for the '{@link TaxationWithRoot.impl.Resident_Tax_PayerImpl <em>Resident Tax Payer</em>}' class.
2634 * <!-- begin-user-doc -->
2635 * <!-- end-user-doc -->
2636 * @see TaxationWithRoot.impl.Resident_Tax_PayerImpl
2637 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getResident_Tax_Payer()
2638 * @generated
2639 */
2640 int RESIDENT_TAX_PAYER = 24;
2641
2642 /**
2643 * The feature id for the '<em><b>SS No</b></em>' attribute.
2644 * <!-- begin-user-doc -->
2645 * <!-- end-user-doc -->
2646 * @generated
2647 * @ordered
2648 */
2649 int RESIDENT_TAX_PAYER__SS_NO = TAX_PAYER__SS_NO;
2650
2651 /**
2652 * The feature id for the '<em><b>Addresses</b></em>' reference list.
2653 * <!-- begin-user-doc -->
2654 * <!-- end-user-doc -->
2655 * @generated
2656 * @ordered
2657 */
2658 int RESIDENT_TAX_PAYER__ADDRESSES = TAX_PAYER__ADDRESSES;
2659
2660 /**
2661 * The feature id for the '<em><b>Birth year</b></em>' attribute.
2662 * <!-- begin-user-doc -->
2663 * <!-- end-user-doc -->
2664 * @generated
2665 * @ordered
2666 */
2667 int RESIDENT_TAX_PAYER__BIRTH_YEAR = TAX_PAYER__BIRTH_YEAR;
2668
2669 /**
2670 * The feature id for the '<em><b>Disability percentage</b></em>' attribute.
2671 * <!-- begin-user-doc -->
2672 * <!-- end-user-doc -->
2673 * @generated
2674 * @ordered
2675 */
2676 int RESIDENT_TAX_PAYER__DISABILITY_PERCENTAGE = TAX_PAYER__DISABILITY_PERCENTAGE;
2677
2678 /**
2679 * The feature id for the '<em><b>Disability type</b></em>' attribute.
2680 * <!-- begin-user-doc -->
2681 * <!-- end-user-doc -->
2682 * @generated
2683 * @ordered
2684 */
2685 int RESIDENT_TAX_PAYER__DISABILITY_TYPE = TAX_PAYER__DISABILITY_TYPE;
2686
2687 /**
2688 * The feature id for the '<em><b>Birth month</b></em>' attribute.
2689 * <!-- begin-user-doc -->
2690 * <!-- end-user-doc -->
2691 * @generated
2692 * @ordered
2693 */
2694 int RESIDENT_TAX_PAYER__BIRTH_MONTH = TAX_PAYER__BIRTH_MONTH;
2695
2696 /**
2697 * The feature id for the '<em><b>Birth day</b></em>' attribute.
2698 * <!-- begin-user-doc -->
2699 * <!-- end-user-doc -->
2700 * @generated
2701 * @ordered
2702 */
2703 int RESIDENT_TAX_PAYER__BIRTH_DAY = TAX_PAYER__BIRTH_DAY;
2704
2705 /**
2706 * The feature id for the '<em><b>Expenses</b></em>' reference list.
2707 * <!-- begin-user-doc -->
2708 * <!-- end-user-doc -->
2709 * @generated
2710 * @ordered
2711 */
2712 int RESIDENT_TAX_PAYER__EXPENSES = TAX_PAYER__EXPENSES;
2713
2714 /**
2715 * The feature id for the '<em><b>Is widower</b></em>' attribute.
2716 * <!-- begin-user-doc -->
2717 * <!-- end-user-doc -->
2718 * @generated
2719 * @ordered
2720 */
2721 int RESIDENT_TAX_PAYER__IS_WIDOWER = TAX_PAYER__IS_WIDOWER;
2722
2723 /**
2724 * The feature id for the '<em><b>Dependents</b></em>' containment reference list.
2725 * <!-- begin-user-doc -->
2726 * <!-- end-user-doc -->
2727 * @generated
2728 * @ordered
2729 */
2730 int RESIDENT_TAX_PAYER__DEPENDENTS = TAX_PAYER__DEPENDENTS;
2731
2732 /**
2733 * The feature id for the '<em><b>From agent</b></em>' containment reference.
2734 * <!-- begin-user-doc -->
2735 * <!-- end-user-doc -->
2736 * @generated
2737 * @ordered
2738 */
2739 int RESIDENT_TAX_PAYER__FROM_AGENT = TAX_PAYER__FROM_AGENT;
2740
2741 /**
2742 * The feature id for the '<em><b>Incomes</b></em>' containment reference list.
2743 * <!-- begin-user-doc -->
2744 * <!-- end-user-doc -->
2745 * @generated
2746 * @ordered
2747 */
2748 int RESIDENT_TAX_PAYER__INCOMES = TAX_PAYER__INCOMES;
2749
2750 /**
2751 * The feature id for the '<em><b>From law</b></em>' containment reference.
2752 * <!-- begin-user-doc -->
2753 * <!-- end-user-doc -->
2754 * @generated
2755 * @ordered
2756 */
2757 int RESIDENT_TAX_PAYER__FROM_LAW = TAX_PAYER__FROM_LAW;
2758
2759 /**
2760 * The number of structural features of the '<em>Resident Tax Payer</em>' class.
2761 * <!-- begin-user-doc -->
2762 * <!-- end-user-doc -->
2763 * @generated
2764 * @ordered
2765 */
2766 int RESIDENT_TAX_PAYER_FEATURE_COUNT = TAX_PAYER_FEATURE_COUNT + 0;
2767
2768 /**
2769 * The number of operations of the '<em>Resident Tax Payer</em>' class.
2770 * <!-- begin-user-doc -->
2771 * <!-- end-user-doc -->
2772 * @generated
2773 * @ordered
2774 */
2775 int RESIDENT_TAX_PAYER_OPERATION_COUNT = TAX_PAYER_OPERATION_COUNT + 0;
2776
2777 /**
2778 * The meta object id for the '{@link TaxationWithRoot.impl.Trade_and_Business_IncomeImpl <em>Trade and Business Income</em>}' class.
2779 * <!-- begin-user-doc -->
2780 * <!-- end-user-doc -->
2781 * @see TaxationWithRoot.impl.Trade_and_Business_IncomeImpl
2782 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getTrade_and_Business_Income()
2783 * @generated
2784 */
2785 int TRADE_AND_BUSINESS_INCOME = 25;
2786
2787 /**
2788 * The feature id for the '<em><b>Id8</b></em>' attribute.
2789 * <!-- begin-user-doc -->
2790 * <!-- end-user-doc -->
2791 * @generated
2792 * @ordered
2793 */
2794 int TRADE_AND_BUSINESS_INCOME__ID8 = INCOME_TYPE__ID8;
2795
2796 /**
2797 * The feature id for the '<em><b>Income</b></em>' container reference.
2798 * <!-- begin-user-doc -->
2799 * <!-- end-user-doc -->
2800 * @generated
2801 * @ordered
2802 */
2803 int TRADE_AND_BUSINESS_INCOME__INCOME = INCOME_TYPE__INCOME;
2804
2805 /**
2806 * The number of structural features of the '<em>Trade and Business Income</em>' class.
2807 * <!-- begin-user-doc -->
2808 * <!-- end-user-doc -->
2809 * @generated
2810 * @ordered
2811 */
2812 int TRADE_AND_BUSINESS_INCOME_FEATURE_COUNT = INCOME_TYPE_FEATURE_COUNT + 0;
2813
2814 /**
2815 * The number of operations of the '<em>Trade and Business Income</em>' class.
2816 * <!-- begin-user-doc -->
2817 * <!-- end-user-doc -->
2818 * @generated
2819 * @ordered
2820 */
2821 int TRADE_AND_BUSINESS_INCOME_OPERATION_COUNT = INCOME_TYPE_OPERATION_COUNT + 0;
2822
2823 /**
2824 * The meta object id for the '{@link TaxationWithRoot.impl.Agriculture_and_Forestry_IncomeImpl <em>Agriculture and Forestry Income</em>}' class.
2825 * <!-- begin-user-doc -->
2826 * <!-- end-user-doc -->
2827 * @see TaxationWithRoot.impl.Agriculture_and_Forestry_IncomeImpl
2828 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getAgriculture_and_Forestry_Income()
2829 * @generated
2830 */
2831 int AGRICULTURE_AND_FORESTRY_INCOME = 26;
2832
2833 /**
2834 * The feature id for the '<em><b>Id8</b></em>' attribute.
2835 * <!-- begin-user-doc -->
2836 * <!-- end-user-doc -->
2837 * @generated
2838 * @ordered
2839 */
2840 int AGRICULTURE_AND_FORESTRY_INCOME__ID8 = INCOME_TYPE__ID8;
2841
2842 /**
2843 * The feature id for the '<em><b>Income</b></em>' container reference.
2844 * <!-- begin-user-doc -->
2845 * <!-- end-user-doc -->
2846 * @generated
2847 * @ordered
2848 */
2849 int AGRICULTURE_AND_FORESTRY_INCOME__INCOME = INCOME_TYPE__INCOME;
2850
2851 /**
2852 * The number of structural features of the '<em>Agriculture and Forestry Income</em>' class.
2853 * <!-- begin-user-doc -->
2854 * <!-- end-user-doc -->
2855 * @generated
2856 * @ordered
2857 */
2858 int AGRICULTURE_AND_FORESTRY_INCOME_FEATURE_COUNT = INCOME_TYPE_FEATURE_COUNT + 0;
2859
2860 /**
2861 * The number of operations of the '<em>Agriculture and Forestry Income</em>' class.
2862 * <!-- begin-user-doc -->
2863 * <!-- end-user-doc -->
2864 * @generated
2865 * @ordered
2866 */
2867 int AGRICULTURE_AND_FORESTRY_INCOME_OPERATION_COUNT = INCOME_TYPE_OPERATION_COUNT + 0;
2868
2869 /**
2870 * The meta object id for the '{@link TaxationWithRoot.impl.Pensions_and_Annuities_IncomeImpl <em>Pensions and Annuities Income</em>}' class.
2871 * <!-- begin-user-doc -->
2872 * <!-- end-user-doc -->
2873 * @see TaxationWithRoot.impl.Pensions_and_Annuities_IncomeImpl
2874 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getPensions_and_Annuities_Income()
2875 * @generated
2876 */
2877 int PENSIONS_AND_ANNUITIES_INCOME = 27;
2878
2879 /**
2880 * The feature id for the '<em><b>Id8</b></em>' attribute.
2881 * <!-- begin-user-doc -->
2882 * <!-- end-user-doc -->
2883 * @generated
2884 * @ordered
2885 */
2886 int PENSIONS_AND_ANNUITIES_INCOME__ID8 = INCOME_TYPE__ID8;
2887
2888 /**
2889 * The feature id for the '<em><b>Income</b></em>' container reference.
2890 * <!-- begin-user-doc -->
2891 * <!-- end-user-doc -->
2892 * @generated
2893 * @ordered
2894 */
2895 int PENSIONS_AND_ANNUITIES_INCOME__INCOME = INCOME_TYPE__INCOME;
2896
2897 /**
2898 * The feature id for the '<em><b>Occasional payement</b></em>' attribute.
2899 * <!-- begin-user-doc -->
2900 * <!-- end-user-doc -->
2901 * @generated
2902 * @ordered
2903 */
2904 int PENSIONS_AND_ANNUITIES_INCOME__OCCASIONAL_PAYEMENT = INCOME_TYPE_FEATURE_COUNT + 0;
2905
2906 /**
2907 * The number of structural features of the '<em>Pensions and Annuities Income</em>' class.
2908 * <!-- begin-user-doc -->
2909 * <!-- end-user-doc -->
2910 * @generated
2911 * @ordered
2912 */
2913 int PENSIONS_AND_ANNUITIES_INCOME_FEATURE_COUNT = INCOME_TYPE_FEATURE_COUNT + 1;
2914
2915 /**
2916 * The number of operations of the '<em>Pensions and Annuities Income</em>' class.
2917 * <!-- begin-user-doc -->
2918 * <!-- end-user-doc -->
2919 * @generated
2920 * @ordered
2921 */
2922 int PENSIONS_AND_ANNUITIES_INCOME_OPERATION_COUNT = INCOME_TYPE_OPERATION_COUNT + 0;
2923
2924 /**
2925 * The meta object id for the '{@link TaxationWithRoot.impl.Capital_and_Investments_IncomeImpl <em>Capital and Investments Income</em>}' class.
2926 * <!-- begin-user-doc -->
2927 * <!-- end-user-doc -->
2928 * @see TaxationWithRoot.impl.Capital_and_Investments_IncomeImpl
2929 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getCapital_and_Investments_Income()
2930 * @generated
2931 */
2932 int CAPITAL_AND_INVESTMENTS_INCOME = 28;
2933
2934 /**
2935 * The feature id for the '<em><b>Id8</b></em>' attribute.
2936 * <!-- begin-user-doc -->
2937 * <!-- end-user-doc -->
2938 * @generated
2939 * @ordered
2940 */
2941 int CAPITAL_AND_INVESTMENTS_INCOME__ID8 = INCOME_TYPE__ID8;
2942
2943 /**
2944 * The feature id for the '<em><b>Income</b></em>' container reference.
2945 * <!-- begin-user-doc -->
2946 * <!-- end-user-doc -->
2947 * @generated
2948 * @ordered
2949 */
2950 int CAPITAL_AND_INVESTMENTS_INCOME__INCOME = INCOME_TYPE__INCOME;
2951
2952 /**
2953 * The number of structural features of the '<em>Capital and Investments Income</em>' class.
2954 * <!-- begin-user-doc -->
2955 * <!-- end-user-doc -->
2956 * @generated
2957 * @ordered
2958 */
2959 int CAPITAL_AND_INVESTMENTS_INCOME_FEATURE_COUNT = INCOME_TYPE_FEATURE_COUNT + 0;
2960
2961 /**
2962 * The number of operations of the '<em>Capital and Investments Income</em>' class.
2963 * <!-- begin-user-doc -->
2964 * <!-- end-user-doc -->
2965 * @generated
2966 * @ordered
2967 */
2968 int CAPITAL_AND_INVESTMENTS_INCOME_OPERATION_COUNT = INCOME_TYPE_OPERATION_COUNT + 0;
2969
2970 /**
2971 * The meta object id for the '{@link TaxationWithRoot.impl.Employment_IncomeImpl <em>Employment Income</em>}' class.
2972 * <!-- begin-user-doc -->
2973 * <!-- end-user-doc -->
2974 * @see TaxationWithRoot.impl.Employment_IncomeImpl
2975 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getEmployment_Income()
2976 * @generated
2977 */
2978 int EMPLOYMENT_INCOME = 29;
2979
2980 /**
2981 * The feature id for the '<em><b>Id8</b></em>' attribute.
2982 * <!-- begin-user-doc -->
2983 * <!-- end-user-doc -->
2984 * @generated
2985 * @ordered
2986 */
2987 int EMPLOYMENT_INCOME__ID8 = INCOME_TYPE__ID8;
2988
2989 /**
2990 * The feature id for the '<em><b>Income</b></em>' container reference.
2991 * <!-- begin-user-doc -->
2992 * <!-- end-user-doc -->
2993 * @generated
2994 * @ordered
2995 */
2996 int EMPLOYMENT_INCOME__INCOME = INCOME_TYPE__INCOME;
2997
2998 /**
2999 * The number of structural features of the '<em>Employment Income</em>' class.
3000 * <!-- begin-user-doc -->
3001 * <!-- end-user-doc -->
3002 * @generated
3003 * @ordered
3004 */
3005 int EMPLOYMENT_INCOME_FEATURE_COUNT = INCOME_TYPE_FEATURE_COUNT + 0;
3006
3007 /**
3008 * The number of operations of the '<em>Employment Income</em>' class.
3009 * <!-- begin-user-doc -->
3010 * <!-- end-user-doc -->
3011 * @generated
3012 * @ordered
3013 */
3014 int EMPLOYMENT_INCOME_OPERATION_COUNT = INCOME_TYPE_OPERATION_COUNT + 0;
3015
3016 /**
3017 * The meta object id for the '{@link TaxationWithRoot.impl.Rentals_and_Leases_IncomeImpl <em>Rentals and Leases Income</em>}' class.
3018 * <!-- begin-user-doc -->
3019 * <!-- end-user-doc -->
3020 * @see TaxationWithRoot.impl.Rentals_and_Leases_IncomeImpl
3021 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getRentals_and_Leases_Income()
3022 * @generated
3023 */
3024 int RENTALS_AND_LEASES_INCOME = 30;
3025
3026 /**
3027 * The feature id for the '<em><b>Id8</b></em>' attribute.
3028 * <!-- begin-user-doc -->
3029 * <!-- end-user-doc -->
3030 * @generated
3031 * @ordered
3032 */
3033 int RENTALS_AND_LEASES_INCOME__ID8 = INCOME_TYPE__ID8;
3034
3035 /**
3036 * The feature id for the '<em><b>Income</b></em>' container reference.
3037 * <!-- begin-user-doc -->
3038 * <!-- end-user-doc -->
3039 * @generated
3040 * @ordered
3041 */
3042 int RENTALS_AND_LEASES_INCOME__INCOME = INCOME_TYPE__INCOME;
3043
3044 /**
3045 * The feature id for the '<em><b>Is periodic</b></em>' attribute.
3046 * <!-- begin-user-doc -->
3047 * <!-- end-user-doc -->
3048 * @generated
3049 * @ordered
3050 */
3051 int RENTALS_AND_LEASES_INCOME__IS_PERIODIC = INCOME_TYPE_FEATURE_COUNT + 0;
3052
3053 /**
3054 * The number of structural features of the '<em>Rentals and Leases Income</em>' class.
3055 * <!-- begin-user-doc -->
3056 * <!-- end-user-doc -->
3057 * @generated
3058 * @ordered
3059 */
3060 int RENTALS_AND_LEASES_INCOME_FEATURE_COUNT = INCOME_TYPE_FEATURE_COUNT + 1;
3061
3062 /**
3063 * The number of operations of the '<em>Rentals and Leases Income</em>' class.
3064 * <!-- begin-user-doc -->
3065 * <!-- end-user-doc -->
3066 * @generated
3067 * @ordered
3068 */
3069 int RENTALS_AND_LEASES_INCOME_OPERATION_COUNT = INCOME_TYPE_OPERATION_COUNT + 0;
3070
3071 /**
3072 * The meta object id for the '{@link TaxationWithRoot.impl.Foreign_IncomeImpl <em>Foreign Income</em>}' class.
3073 * <!-- begin-user-doc -->
3074 * <!-- end-user-doc -->
3075 * @see TaxationWithRoot.impl.Foreign_IncomeImpl
3076 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getForeign_Income()
3077 * @generated
3078 */
3079 int FOREIGN_INCOME = 31;
3080
3081 /**
3082 * The feature id for the '<em><b>Income amount</b></em>' attribute.
3083 * <!-- begin-user-doc -->
3084 * <!-- end-user-doc -->
3085 * @generated
3086 * @ordered
3087 */
3088 int FOREIGN_INCOME__INCOME_AMOUNT = INCOME__INCOME_AMOUNT;
3089
3090 /**
3091 * The feature id for the '<em><b>Income type</b></em>' containment reference.
3092 * <!-- begin-user-doc -->
3093 * <!-- end-user-doc -->
3094 * @generated
3095 * @ordered
3096 */
3097 int FOREIGN_INCOME__INCOME_TYPE = INCOME__INCOME_TYPE;
3098
3099 /**
3100 * The feature id for the '<em><b>Tax card</b></em>' containment reference.
3101 * <!-- begin-user-doc -->
3102 * <!-- end-user-doc -->
3103 * @generated
3104 * @ordered
3105 */
3106 int FOREIGN_INCOME__TAX_CARD = INCOME__TAX_CARD;
3107
3108 /**
3109 * The feature id for the '<em><b>Tax liability</b></em>' attribute.
3110 * <!-- begin-user-doc -->
3111 * <!-- end-user-doc -->
3112 * @generated
3113 * @ordered
3114 */
3115 int FOREIGN_INCOME__TAX_LIABILITY = INCOME__TAX_LIABILITY;
3116
3117 /**
3118 * The feature id for the '<em><b>Tax Payer</b></em>' container reference.
3119 * <!-- begin-user-doc -->
3120 * <!-- end-user-doc -->
3121 * @generated
3122 * @ordered
3123 */
3124 int FOREIGN_INCOME__TAX_PAYER = INCOME__TAX_PAYER;
3125
3126 /**
3127 * The feature id for the '<em><b>Details</b></em>' containment reference list.
3128 * <!-- begin-user-doc -->
3129 * <!-- end-user-doc -->
3130 * @generated
3131 * @ordered
3132 */
3133 int FOREIGN_INCOME__DETAILS = INCOME__DETAILS;
3134
3135 /**
3136 * The feature id for the '<em><b>Num</b></em>' attribute.
3137 * <!-- begin-user-doc -->
3138 * <!-- end-user-doc -->
3139 * @generated
3140 * @ordered
3141 */
3142 int FOREIGN_INCOME__NUM = INCOME__NUM;
3143
3144 /**
3145 * The feature id for the '<em><b>Expenses</b></em>' containment reference list.
3146 * <!-- begin-user-doc -->
3147 * <!-- end-user-doc -->
3148 * @generated
3149 * @ordered
3150 */
3151 int FOREIGN_INCOME__EXPENSES = INCOME__EXPENSES;
3152
3153 /**
3154 * The number of structural features of the '<em>Foreign Income</em>' class.
3155 * <!-- begin-user-doc -->
3156 * <!-- end-user-doc -->
3157 * @generated
3158 * @ordered
3159 */
3160 int FOREIGN_INCOME_FEATURE_COUNT = INCOME_FEATURE_COUNT + 0;
3161
3162 /**
3163 * The number of operations of the '<em>Foreign Income</em>' class.
3164 * <!-- begin-user-doc -->
3165 * <!-- end-user-doc -->
3166 * @generated
3167 * @ordered
3168 */
3169 int FOREIGN_INCOME_OPERATION_COUNT = INCOME_OPERATION_COUNT + 0;
3170
3171 /**
3172 * The meta object id for the '{@link TaxationWithRoot.impl.Local_IncomeImpl <em>Local Income</em>}' class.
3173 * <!-- begin-user-doc -->
3174 * <!-- end-user-doc -->
3175 * @see TaxationWithRoot.impl.Local_IncomeImpl
3176 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getLocal_Income()
3177 * @generated
3178 */
3179 int LOCAL_INCOME = 32;
3180
3181 /**
3182 * The feature id for the '<em><b>Income amount</b></em>' attribute.
3183 * <!-- begin-user-doc -->
3184 * <!-- end-user-doc -->
3185 * @generated
3186 * @ordered
3187 */
3188 int LOCAL_INCOME__INCOME_AMOUNT = INCOME__INCOME_AMOUNT;
3189
3190 /**
3191 * The feature id for the '<em><b>Income type</b></em>' containment reference.
3192 * <!-- begin-user-doc -->
3193 * <!-- end-user-doc -->
3194 * @generated
3195 * @ordered
3196 */
3197 int LOCAL_INCOME__INCOME_TYPE = INCOME__INCOME_TYPE;
3198
3199 /**
3200 * The feature id for the '<em><b>Tax card</b></em>' containment reference.
3201 * <!-- begin-user-doc -->
3202 * <!-- end-user-doc -->
3203 * @generated
3204 * @ordered
3205 */
3206 int LOCAL_INCOME__TAX_CARD = INCOME__TAX_CARD;
3207
3208 /**
3209 * The feature id for the '<em><b>Tax liability</b></em>' attribute.
3210 * <!-- begin-user-doc -->
3211 * <!-- end-user-doc -->
3212 * @generated
3213 * @ordered
3214 */
3215 int LOCAL_INCOME__TAX_LIABILITY = INCOME__TAX_LIABILITY;
3216
3217 /**
3218 * The feature id for the '<em><b>Tax Payer</b></em>' container reference.
3219 * <!-- begin-user-doc -->
3220 * <!-- end-user-doc -->
3221 * @generated
3222 * @ordered
3223 */
3224 int LOCAL_INCOME__TAX_PAYER = INCOME__TAX_PAYER;
3225
3226 /**
3227 * The feature id for the '<em><b>Details</b></em>' containment reference list.
3228 * <!-- begin-user-doc -->
3229 * <!-- end-user-doc -->
3230 * @generated
3231 * @ordered
3232 */
3233 int LOCAL_INCOME__DETAILS = INCOME__DETAILS;
3234
3235 /**
3236 * The feature id for the '<em><b>Num</b></em>' attribute.
3237 * <!-- begin-user-doc -->
3238 * <!-- end-user-doc -->
3239 * @generated
3240 * @ordered
3241 */
3242 int LOCAL_INCOME__NUM = INCOME__NUM;
3243
3244 /**
3245 * The feature id for the '<em><b>Expenses</b></em>' containment reference list.
3246 * <!-- begin-user-doc -->
3247 * <!-- end-user-doc -->
3248 * @generated
3249 * @ordered
3250 */
3251 int LOCAL_INCOME__EXPENSES = INCOME__EXPENSES;
3252
3253 /**
3254 * The number of structural features of the '<em>Local Income</em>' class.
3255 * <!-- begin-user-doc -->
3256 * <!-- end-user-doc -->
3257 * @generated
3258 * @ordered
3259 */
3260 int LOCAL_INCOME_FEATURE_COUNT = INCOME_FEATURE_COUNT + 0;
3261
3262 /**
3263 * The number of operations of the '<em>Local Income</em>' class.
3264 * <!-- begin-user-doc -->
3265 * <!-- end-user-doc -->
3266 * @generated
3267 * @ordered
3268 */
3269 int LOCAL_INCOME_OPERATION_COUNT = INCOME_OPERATION_COUNT + 0;
3270
3271 /**
3272 * The meta object id for the '{@link TaxationWithRoot.impl.CIMImpl <em>CIM</em>}' class.
3273 * <!-- begin-user-doc -->
3274 * <!-- end-user-doc -->
3275 * @see TaxationWithRoot.impl.CIMImpl
3276 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getCIM()
3277 * @generated
3278 */
3279 int CIM = 33;
3280
3281 /**
3282 * The feature id for the '<em><b>Granted By</b></em>' attribute.
3283 * <!-- begin-user-doc -->
3284 * <!-- end-user-doc -->
3285 * @generated
3286 * @ordered
3287 */
3288 int CIM__GRANTED_BY = INCOME_TAX_CREDIT__GRANTED_BY;
3289
3290 /**
3291 * The feature id for the '<em><b>Tax Payer</b></em>' reference.
3292 * <!-- begin-user-doc -->
3293 * <!-- end-user-doc -->
3294 * @generated
3295 * @ordered
3296 */
3297 int CIM__TAX_PAYER = INCOME_TAX_CREDIT__TAX_PAYER;
3298
3299 /**
3300 * The feature id for the '<em><b>Tax year</b></em>' attribute.
3301 * <!-- begin-user-doc -->
3302 * <!-- end-user-doc -->
3303 * @generated
3304 * @ordered
3305 */
3306 int CIM__TAX_YEAR = INCOME_TAX_CREDIT__TAX_YEAR;
3307
3308 /**
3309 * The feature id for the '<em><b>Yearly</b></em>' attribute.
3310 * <!-- begin-user-doc -->
3311 * <!-- end-user-doc -->
3312 * @generated
3313 * @ordered
3314 */
3315 int CIM__YEARLY = INCOME_TAX_CREDIT__YEARLY;
3316
3317 /**
3318 * The feature id for the '<em><b>Monthly</b></em>' attribute.
3319 * <!-- begin-user-doc -->
3320 * <!-- end-user-doc -->
3321 * @generated
3322 * @ordered
3323 */
3324 int CIM__MONTHLY = INCOME_TAX_CREDIT__MONTHLY;
3325
3326 /**
3327 * The feature id for the '<em><b>Daily</b></em>' attribute.
3328 * <!-- begin-user-doc -->
3329 * <!-- end-user-doc -->
3330 * @generated
3331 * @ordered
3332 */
3333 int CIM__DAILY = INCOME_TAX_CREDIT__DAILY;
3334
3335 /**
3336 * The feature id for the '<em><b>Id7</b></em>' attribute.
3337 * <!-- begin-user-doc -->
3338 * <!-- end-user-doc -->
3339 * @generated
3340 * @ordered
3341 */
3342 int CIM__ID7 = INCOME_TAX_CREDIT__ID7;
3343
3344 /**
3345 * The feature id for the '<em><b>Taxation Frame</b></em>' reference.
3346 * <!-- begin-user-doc -->
3347 * <!-- end-user-doc -->
3348 * @generated
3349 * @ordered
3350 */
3351 int CIM__TAXATION_FRAME = INCOME_TAX_CREDIT__TAXATION_FRAME;
3352
3353 /**
3354 * The number of structural features of the '<em>CIM</em>' class.
3355 * <!-- begin-user-doc -->
3356 * <!-- end-user-doc -->
3357 * @generated
3358 * @ordered
3359 */
3360 int CIM_FEATURE_COUNT = INCOME_TAX_CREDIT_FEATURE_COUNT + 0;
3361
3362 /**
3363 * The number of operations of the '<em>CIM</em>' class.
3364 * <!-- begin-user-doc -->
3365 * <!-- end-user-doc -->
3366 * @generated
3367 * @ordered
3368 */
3369 int CIM_OPERATION_COUNT = INCOME_TAX_CREDIT_OPERATION_COUNT + 0;
3370
3371 /**
3372 * The meta object id for the '{@link TaxationWithRoot.impl.CIPImpl <em>CIP</em>}' class.
3373 * <!-- begin-user-doc -->
3374 * <!-- end-user-doc -->
3375 * @see TaxationWithRoot.impl.CIPImpl
3376 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getCIP()
3377 * @generated
3378 */
3379 int CIP = 34;
3380
3381 /**
3382 * The feature id for the '<em><b>Granted By</b></em>' attribute.
3383 * <!-- begin-user-doc -->
3384 * <!-- end-user-doc -->
3385 * @generated
3386 * @ordered
3387 */
3388 int CIP__GRANTED_BY = INCOME_TAX_CREDIT__GRANTED_BY;
3389
3390 /**
3391 * The feature id for the '<em><b>Tax Payer</b></em>' reference.
3392 * <!-- begin-user-doc -->
3393 * <!-- end-user-doc -->
3394 * @generated
3395 * @ordered
3396 */
3397 int CIP__TAX_PAYER = INCOME_TAX_CREDIT__TAX_PAYER;
3398
3399 /**
3400 * The feature id for the '<em><b>Tax year</b></em>' attribute.
3401 * <!-- begin-user-doc -->
3402 * <!-- end-user-doc -->
3403 * @generated
3404 * @ordered
3405 */
3406 int CIP__TAX_YEAR = INCOME_TAX_CREDIT__TAX_YEAR;
3407
3408 /**
3409 * The feature id for the '<em><b>Yearly</b></em>' attribute.
3410 * <!-- begin-user-doc -->
3411 * <!-- end-user-doc -->
3412 * @generated
3413 * @ordered
3414 */
3415 int CIP__YEARLY = INCOME_TAX_CREDIT__YEARLY;
3416
3417 /**
3418 * The feature id for the '<em><b>Monthly</b></em>' attribute.
3419 * <!-- begin-user-doc -->
3420 * <!-- end-user-doc -->
3421 * @generated
3422 * @ordered
3423 */
3424 int CIP__MONTHLY = INCOME_TAX_CREDIT__MONTHLY;
3425
3426 /**
3427 * The feature id for the '<em><b>Daily</b></em>' attribute.
3428 * <!-- begin-user-doc -->
3429 * <!-- end-user-doc -->
3430 * @generated
3431 * @ordered
3432 */
3433 int CIP__DAILY = INCOME_TAX_CREDIT__DAILY;
3434
3435 /**
3436 * The feature id for the '<em><b>Id7</b></em>' attribute.
3437 * <!-- begin-user-doc -->
3438 * <!-- end-user-doc -->
3439 * @generated
3440 * @ordered
3441 */
3442 int CIP__ID7 = INCOME_TAX_CREDIT__ID7;
3443
3444 /**
3445 * The feature id for the '<em><b>Taxation Frame</b></em>' reference.
3446 * <!-- begin-user-doc -->
3447 * <!-- end-user-doc -->
3448 * @generated
3449 * @ordered
3450 */
3451 int CIP__TAXATION_FRAME = INCOME_TAX_CREDIT__TAXATION_FRAME;
3452
3453 /**
3454 * The number of structural features of the '<em>CIP</em>' class.
3455 * <!-- begin-user-doc -->
3456 * <!-- end-user-doc -->
3457 * @generated
3458 * @ordered
3459 */
3460 int CIP_FEATURE_COUNT = INCOME_TAX_CREDIT_FEATURE_COUNT + 0;
3461
3462 /**
3463 * The number of operations of the '<em>CIP</em>' class.
3464 * <!-- begin-user-doc -->
3465 * <!-- end-user-doc -->
3466 * @generated
3467 * @ordered
3468 */
3469 int CIP_OPERATION_COUNT = INCOME_TAX_CREDIT_OPERATION_COUNT + 0;
3470
3471 /**
3472 * The meta object id for the '{@link TaxationWithRoot.impl.CISImpl <em>CIS</em>}' class.
3473 * <!-- begin-user-doc -->
3474 * <!-- end-user-doc -->
3475 * @see TaxationWithRoot.impl.CISImpl
3476 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getCIS()
3477 * @generated
3478 */
3479 int CIS = 35;
3480
3481 /**
3482 * The feature id for the '<em><b>Granted By</b></em>' attribute.
3483 * <!-- begin-user-doc -->
3484 * <!-- end-user-doc -->
3485 * @generated
3486 * @ordered
3487 */
3488 int CIS__GRANTED_BY = INCOME_TAX_CREDIT__GRANTED_BY;
3489
3490 /**
3491 * The feature id for the '<em><b>Tax Payer</b></em>' reference.
3492 * <!-- begin-user-doc -->
3493 * <!-- end-user-doc -->
3494 * @generated
3495 * @ordered
3496 */
3497 int CIS__TAX_PAYER = INCOME_TAX_CREDIT__TAX_PAYER;
3498
3499 /**
3500 * The feature id for the '<em><b>Tax year</b></em>' attribute.
3501 * <!-- begin-user-doc -->
3502 * <!-- end-user-doc -->
3503 * @generated
3504 * @ordered
3505 */
3506 int CIS__TAX_YEAR = INCOME_TAX_CREDIT__TAX_YEAR;
3507
3508 /**
3509 * The feature id for the '<em><b>Yearly</b></em>' attribute.
3510 * <!-- begin-user-doc -->
3511 * <!-- end-user-doc -->
3512 * @generated
3513 * @ordered
3514 */
3515 int CIS__YEARLY = INCOME_TAX_CREDIT__YEARLY;
3516
3517 /**
3518 * The feature id for the '<em><b>Monthly</b></em>' attribute.
3519 * <!-- begin-user-doc -->
3520 * <!-- end-user-doc -->
3521 * @generated
3522 * @ordered
3523 */
3524 int CIS__MONTHLY = INCOME_TAX_CREDIT__MONTHLY;
3525
3526 /**
3527 * The feature id for the '<em><b>Daily</b></em>' attribute.
3528 * <!-- begin-user-doc -->
3529 * <!-- end-user-doc -->
3530 * @generated
3531 * @ordered
3532 */
3533 int CIS__DAILY = INCOME_TAX_CREDIT__DAILY;
3534
3535 /**
3536 * The feature id for the '<em><b>Id7</b></em>' attribute.
3537 * <!-- begin-user-doc -->
3538 * <!-- end-user-doc -->
3539 * @generated
3540 * @ordered
3541 */
3542 int CIS__ID7 = INCOME_TAX_CREDIT__ID7;
3543
3544 /**
3545 * The feature id for the '<em><b>Taxation Frame</b></em>' reference.
3546 * <!-- begin-user-doc -->
3547 * <!-- end-user-doc -->
3548 * @generated
3549 * @ordered
3550 */
3551 int CIS__TAXATION_FRAME = INCOME_TAX_CREDIT__TAXATION_FRAME;
3552
3553 /**
3554 * The number of structural features of the '<em>CIS</em>' class.
3555 * <!-- begin-user-doc -->
3556 * <!-- end-user-doc -->
3557 * @generated
3558 * @ordered
3559 */
3560 int CIS_FEATURE_COUNT = INCOME_TAX_CREDIT_FEATURE_COUNT + 0;
3561
3562 /**
3563 * The number of operations of the '<em>CIS</em>' class.
3564 * <!-- begin-user-doc -->
3565 * <!-- end-user-doc -->
3566 * @generated
3567 * @ordered
3568 */
3569 int CIS_OPERATION_COUNT = INCOME_TAX_CREDIT_OPERATION_COUNT + 0;
3570
3571 /**
3572 * The meta object id for the '{@link TaxationWithRoot.impl.Special_Expense_DSImpl <em>Special Expense DS</em>}' class.
3573 * <!-- begin-user-doc -->
3574 * <!-- end-user-doc -->
3575 * @see TaxationWithRoot.impl.Special_Expense_DSImpl
3576 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getSpecial_Expense_DS()
3577 * @generated
3578 */
3579 int SPECIAL_EXPENSE_DS = 37;
3580
3581 /**
3582 * The feature id for the '<em><b>Declared amount</b></em>' attribute.
3583 * <!-- begin-user-doc -->
3584 * <!-- end-user-doc -->
3585 * @generated
3586 * @ordered
3587 */
3588 int SPECIAL_EXPENSE_DS__DECLARED_AMOUNT = EXPENSE__DECLARED_AMOUNT;
3589
3590 /**
3591 * The feature id for the '<em><b>Expense purpose</b></em>' attribute.
3592 * <!-- begin-user-doc -->
3593 * <!-- end-user-doc -->
3594 * @generated
3595 * @ordered
3596 */
3597 int SPECIAL_EXPENSE_DS__EXPENSE_PURPOSE = EXPENSE__EXPENSE_PURPOSE;
3598
3599 /**
3600 * The feature id for the '<em><b>Dependent</b></em>' reference.
3601 * <!-- begin-user-doc -->
3602 * <!-- end-user-doc -->
3603 * @generated
3604 * @ordered
3605 */
3606 int SPECIAL_EXPENSE_DS__DEPENDENT = EXPENSE__DEPENDENT;
3607
3608 /**
3609 * The feature id for the '<em><b>From agent</b></em>' reference.
3610 * <!-- begin-user-doc -->
3611 * <!-- end-user-doc -->
3612 * @generated
3613 * @ordered
3614 */
3615 int SPECIAL_EXPENSE_DS__FROM_AGENT = EXPENSE__FROM_AGENT;
3616
3617 /**
3618 * The feature id for the '<em><b>Income</b></em>' container reference.
3619 * <!-- begin-user-doc -->
3620 * <!-- end-user-doc -->
3621 * @generated
3622 * @ordered
3623 */
3624 int SPECIAL_EXPENSE_DS__INCOME = EXPENSE__INCOME;
3625
3626 /**
3627 * The feature id for the '<em><b>Id4</b></em>' attribute.
3628 * <!-- begin-user-doc -->
3629 * <!-- end-user-doc -->
3630 * @generated
3631 * @ordered
3632 */
3633 int SPECIAL_EXPENSE_DS__ID4 = EXPENSE__ID4;
3634
3635 /**
3636 * The feature id for the '<em><b>Beneficiary</b></em>' reference.
3637 * <!-- begin-user-doc -->
3638 * <!-- end-user-doc -->
3639 * @generated
3640 * @ordered
3641 */
3642 int SPECIAL_EXPENSE_DS__BENEFICIARY = EXPENSE__BENEFICIARY;
3643
3644 /**
3645 * The number of structural features of the '<em>Special Expense DS</em>' class.
3646 * <!-- begin-user-doc -->
3647 * <!-- end-user-doc -->
3648 * @generated
3649 * @ordered
3650 */
3651 int SPECIAL_EXPENSE_DS_FEATURE_COUNT = EXPENSE_FEATURE_COUNT + 0;
3652
3653 /**
3654 * The number of operations of the '<em>Special Expense DS</em>' class.
3655 * <!-- begin-user-doc -->
3656 * <!-- end-user-doc -->
3657 * @generated
3658 * @ordered
3659 */
3660 int SPECIAL_EXPENSE_DS_OPERATION_COUNT = EXPENSE_OPERATION_COUNT + 0;
3661
3662 /**
3663 * The meta object id for the '{@link TaxationWithRoot.impl.Permanent_ExpenseImpl <em>Permanent Expense</em>}' class.
3664 * <!-- begin-user-doc -->
3665 * <!-- end-user-doc -->
3666 * @see TaxationWithRoot.impl.Permanent_ExpenseImpl
3667 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getPermanent_Expense()
3668 * @generated
3669 */
3670 int PERMANENT_EXPENSE = 36;
3671
3672 /**
3673 * The feature id for the '<em><b>Declared amount</b></em>' attribute.
3674 * <!-- begin-user-doc -->
3675 * <!-- end-user-doc -->
3676 * @generated
3677 * @ordered
3678 */
3679 int PERMANENT_EXPENSE__DECLARED_AMOUNT = SPECIAL_EXPENSE_DS__DECLARED_AMOUNT;
3680
3681 /**
3682 * The feature id for the '<em><b>Expense purpose</b></em>' attribute.
3683 * <!-- begin-user-doc -->
3684 * <!-- end-user-doc -->
3685 * @generated
3686 * @ordered
3687 */
3688 int PERMANENT_EXPENSE__EXPENSE_PURPOSE = SPECIAL_EXPENSE_DS__EXPENSE_PURPOSE;
3689
3690 /**
3691 * The feature id for the '<em><b>Dependent</b></em>' reference.
3692 * <!-- begin-user-doc -->
3693 * <!-- end-user-doc -->
3694 * @generated
3695 * @ordered
3696 */
3697 int PERMANENT_EXPENSE__DEPENDENT = SPECIAL_EXPENSE_DS__DEPENDENT;
3698
3699 /**
3700 * The feature id for the '<em><b>From agent</b></em>' reference.
3701 * <!-- begin-user-doc -->
3702 * <!-- end-user-doc -->
3703 * @generated
3704 * @ordered
3705 */
3706 int PERMANENT_EXPENSE__FROM_AGENT = SPECIAL_EXPENSE_DS__FROM_AGENT;
3707
3708 /**
3709 * The feature id for the '<em><b>Income</b></em>' container reference.
3710 * <!-- begin-user-doc -->
3711 * <!-- end-user-doc -->
3712 * @generated
3713 * @ordered
3714 */
3715 int PERMANENT_EXPENSE__INCOME = SPECIAL_EXPENSE_DS__INCOME;
3716
3717 /**
3718 * The feature id for the '<em><b>Id4</b></em>' attribute.
3719 * <!-- begin-user-doc -->
3720 * <!-- end-user-doc -->
3721 * @generated
3722 * @ordered
3723 */
3724 int PERMANENT_EXPENSE__ID4 = SPECIAL_EXPENSE_DS__ID4;
3725
3726 /**
3727 * The feature id for the '<em><b>Beneficiary</b></em>' reference.
3728 * <!-- begin-user-doc -->
3729 * <!-- end-user-doc -->
3730 * @generated
3731 * @ordered
3732 */
3733 int PERMANENT_EXPENSE__BENEFICIARY = SPECIAL_EXPENSE_DS__BENEFICIARY;
3734
3735 /**
3736 * The feature id for the '<em><b>Category</b></em>' attribute.
3737 * <!-- begin-user-doc -->
3738 * <!-- end-user-doc -->
3739 * @generated
3740 * @ordered
3741 */
3742 int PERMANENT_EXPENSE__CATEGORY = SPECIAL_EXPENSE_DS_FEATURE_COUNT + 0;
3743
3744 /**
3745 * The number of structural features of the '<em>Permanent Expense</em>' class.
3746 * <!-- begin-user-doc -->
3747 * <!-- end-user-doc -->
3748 * @generated
3749 * @ordered
3750 */
3751 int PERMANENT_EXPENSE_FEATURE_COUNT = SPECIAL_EXPENSE_DS_FEATURE_COUNT + 1;
3752
3753 /**
3754 * The number of operations of the '<em>Permanent Expense</em>' class.
3755 * <!-- begin-user-doc -->
3756 * <!-- end-user-doc -->
3757 * @generated
3758 * @ordered
3759 */
3760 int PERMANENT_EXPENSE_OPERATION_COUNT = SPECIAL_EXPENSE_DS_OPERATION_COUNT + 0;
3761
3762 /**
3763 * The meta object id for the '{@link TaxationWithRoot.impl.Interest_ExpenseImpl <em>Interest Expense</em>}' class.
3764 * <!-- begin-user-doc -->
3765 * <!-- end-user-doc -->
3766 * @see TaxationWithRoot.impl.Interest_ExpenseImpl
3767 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getInterest_Expense()
3768 * @generated
3769 */
3770 int INTEREST_EXPENSE = 38;
3771
3772 /**
3773 * The feature id for the '<em><b>Declared amount</b></em>' attribute.
3774 * <!-- begin-user-doc -->
3775 * <!-- end-user-doc -->
3776 * @generated
3777 * @ordered
3778 */
3779 int INTEREST_EXPENSE__DECLARED_AMOUNT = SPECIAL_EXPENSE_DS__DECLARED_AMOUNT;
3780
3781 /**
3782 * The feature id for the '<em><b>Expense purpose</b></em>' attribute.
3783 * <!-- begin-user-doc -->
3784 * <!-- end-user-doc -->
3785 * @generated
3786 * @ordered
3787 */
3788 int INTEREST_EXPENSE__EXPENSE_PURPOSE = SPECIAL_EXPENSE_DS__EXPENSE_PURPOSE;
3789
3790 /**
3791 * The feature id for the '<em><b>Dependent</b></em>' reference.
3792 * <!-- begin-user-doc -->
3793 * <!-- end-user-doc -->
3794 * @generated
3795 * @ordered
3796 */
3797 int INTEREST_EXPENSE__DEPENDENT = SPECIAL_EXPENSE_DS__DEPENDENT;
3798
3799 /**
3800 * The feature id for the '<em><b>From agent</b></em>' reference.
3801 * <!-- begin-user-doc -->
3802 * <!-- end-user-doc -->
3803 * @generated
3804 * @ordered
3805 */
3806 int INTEREST_EXPENSE__FROM_AGENT = SPECIAL_EXPENSE_DS__FROM_AGENT;
3807
3808 /**
3809 * The feature id for the '<em><b>Income</b></em>' container reference.
3810 * <!-- begin-user-doc -->
3811 * <!-- end-user-doc -->
3812 * @generated
3813 * @ordered
3814 */
3815 int INTEREST_EXPENSE__INCOME = SPECIAL_EXPENSE_DS__INCOME;
3816
3817 /**
3818 * The feature id for the '<em><b>Id4</b></em>' attribute.
3819 * <!-- begin-user-doc -->
3820 * <!-- end-user-doc -->
3821 * @generated
3822 * @ordered
3823 */
3824 int INTEREST_EXPENSE__ID4 = SPECIAL_EXPENSE_DS__ID4;
3825
3826 /**
3827 * The feature id for the '<em><b>Beneficiary</b></em>' reference.
3828 * <!-- begin-user-doc -->
3829 * <!-- end-user-doc -->
3830 * @generated
3831 * @ordered
3832 */
3833 int INTEREST_EXPENSE__BENEFICIARY = SPECIAL_EXPENSE_DS__BENEFICIARY;
3834
3835 /**
3836 * The number of structural features of the '<em>Interest Expense</em>' class.
3837 * <!-- begin-user-doc -->
3838 * <!-- end-user-doc -->
3839 * @generated
3840 * @ordered
3841 */
3842 int INTEREST_EXPENSE_FEATURE_COUNT = SPECIAL_EXPENSE_DS_FEATURE_COUNT + 0;
3843
3844 /**
3845 * The number of operations of the '<em>Interest Expense</em>' class.
3846 * <!-- begin-user-doc -->
3847 * <!-- end-user-doc -->
3848 * @generated
3849 * @ordered
3850 */
3851 int INTEREST_EXPENSE_OPERATION_COUNT = SPECIAL_EXPENSE_DS_OPERATION_COUNT + 0;
3852
3853 /**
3854 * The meta object id for the '{@link TaxationWithRoot.impl.Private_Insurance_and_PlanImpl <em>Private Insurance and Plan</em>}' class.
3855 * <!-- begin-user-doc -->
3856 * <!-- end-user-doc -->
3857 * @see TaxationWithRoot.impl.Private_Insurance_and_PlanImpl
3858 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getPrivate_Insurance_and_Plan()
3859 * @generated
3860 */
3861 int PRIVATE_INSURANCE_AND_PLAN = 39;
3862
3863 /**
3864 * The feature id for the '<em><b>Declared amount</b></em>' attribute.
3865 * <!-- begin-user-doc -->
3866 * <!-- end-user-doc -->
3867 * @generated
3868 * @ordered
3869 */
3870 int PRIVATE_INSURANCE_AND_PLAN__DECLARED_AMOUNT = SPECIAL_EXPENSE_DS__DECLARED_AMOUNT;
3871
3872 /**
3873 * The feature id for the '<em><b>Expense purpose</b></em>' attribute.
3874 * <!-- begin-user-doc -->
3875 * <!-- end-user-doc -->
3876 * @generated
3877 * @ordered
3878 */
3879 int PRIVATE_INSURANCE_AND_PLAN__EXPENSE_PURPOSE = SPECIAL_EXPENSE_DS__EXPENSE_PURPOSE;
3880
3881 /**
3882 * The feature id for the '<em><b>Dependent</b></em>' reference.
3883 * <!-- begin-user-doc -->
3884 * <!-- end-user-doc -->
3885 * @generated
3886 * @ordered
3887 */
3888 int PRIVATE_INSURANCE_AND_PLAN__DEPENDENT = SPECIAL_EXPENSE_DS__DEPENDENT;
3889
3890 /**
3891 * The feature id for the '<em><b>From agent</b></em>' reference.
3892 * <!-- begin-user-doc -->
3893 * <!-- end-user-doc -->
3894 * @generated
3895 * @ordered
3896 */
3897 int PRIVATE_INSURANCE_AND_PLAN__FROM_AGENT = SPECIAL_EXPENSE_DS__FROM_AGENT;
3898
3899 /**
3900 * The feature id for the '<em><b>Income</b></em>' container reference.
3901 * <!-- begin-user-doc -->
3902 * <!-- end-user-doc -->
3903 * @generated
3904 * @ordered
3905 */
3906 int PRIVATE_INSURANCE_AND_PLAN__INCOME = SPECIAL_EXPENSE_DS__INCOME;
3907
3908 /**
3909 * The feature id for the '<em><b>Id4</b></em>' attribute.
3910 * <!-- begin-user-doc -->
3911 * <!-- end-user-doc -->
3912 * @generated
3913 * @ordered
3914 */
3915 int PRIVATE_INSURANCE_AND_PLAN__ID4 = SPECIAL_EXPENSE_DS__ID4;
3916
3917 /**
3918 * The feature id for the '<em><b>Beneficiary</b></em>' reference.
3919 * <!-- begin-user-doc -->
3920 * <!-- end-user-doc -->
3921 * @generated
3922 * @ordered
3923 */
3924 int PRIVATE_INSURANCE_AND_PLAN__BENEFICIARY = SPECIAL_EXPENSE_DS__BENEFICIARY;
3925
3926 /**
3927 * The feature id for the '<em><b>Category</b></em>' attribute.
3928 * <!-- begin-user-doc -->
3929 * <!-- end-user-doc -->
3930 * @generated
3931 * @ordered
3932 */
3933 int PRIVATE_INSURANCE_AND_PLAN__CATEGORY = SPECIAL_EXPENSE_DS_FEATURE_COUNT + 0;
3934
3935 /**
3936 * The feature id for the '<em><b>Duration of contract</b></em>' attribute.
3937 * <!-- begin-user-doc -->
3938 * <!-- end-user-doc -->
3939 * @generated
3940 * @ordered
3941 */
3942 int PRIVATE_INSURANCE_AND_PLAN__DURATION_OF_CONTRACT = SPECIAL_EXPENSE_DS_FEATURE_COUNT + 1;
3943
3944 /**
3945 * The number of structural features of the '<em>Private Insurance and Plan</em>' class.
3946 * <!-- begin-user-doc -->
3947 * <!-- end-user-doc -->
3948 * @generated
3949 * @ordered
3950 */
3951 int PRIVATE_INSURANCE_AND_PLAN_FEATURE_COUNT = SPECIAL_EXPENSE_DS_FEATURE_COUNT + 2;
3952
3953 /**
3954 * The number of operations of the '<em>Private Insurance and Plan</em>' class.
3955 * <!-- begin-user-doc -->
3956 * <!-- end-user-doc -->
3957 * @generated
3958 * @ordered
3959 */
3960 int PRIVATE_INSURANCE_AND_PLAN_OPERATION_COUNT = SPECIAL_EXPENSE_DS_OPERATION_COUNT + 0;
3961
3962 /**
3963 * The meta object id for the '{@link TaxationWithRoot.impl.Health_and_Pension_InsuranceImpl <em>Health and Pension Insurance</em>}' class.
3964 * <!-- begin-user-doc -->
3965 * <!-- end-user-doc -->
3966 * @see TaxationWithRoot.impl.Health_and_Pension_InsuranceImpl
3967 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getHealth_and_Pension_Insurance()
3968 * @generated
3969 */
3970 int HEALTH_AND_PENSION_INSURANCE = 40;
3971
3972 /**
3973 * The feature id for the '<em><b>Declared amount</b></em>' attribute.
3974 * <!-- begin-user-doc -->
3975 * <!-- end-user-doc -->
3976 * @generated
3977 * @ordered
3978 */
3979 int HEALTH_AND_PENSION_INSURANCE__DECLARED_AMOUNT = SPECIAL_EXPENSE_DS__DECLARED_AMOUNT;
3980
3981 /**
3982 * The feature id for the '<em><b>Expense purpose</b></em>' attribute.
3983 * <!-- begin-user-doc -->
3984 * <!-- end-user-doc -->
3985 * @generated
3986 * @ordered
3987 */
3988 int HEALTH_AND_PENSION_INSURANCE__EXPENSE_PURPOSE = SPECIAL_EXPENSE_DS__EXPENSE_PURPOSE;
3989
3990 /**
3991 * The feature id for the '<em><b>Dependent</b></em>' reference.
3992 * <!-- begin-user-doc -->
3993 * <!-- end-user-doc -->
3994 * @generated
3995 * @ordered
3996 */
3997 int HEALTH_AND_PENSION_INSURANCE__DEPENDENT = SPECIAL_EXPENSE_DS__DEPENDENT;
3998
3999 /**
4000 * The feature id for the '<em><b>From agent</b></em>' reference.
4001 * <!-- begin-user-doc -->
4002 * <!-- end-user-doc -->
4003 * @generated
4004 * @ordered
4005 */
4006 int HEALTH_AND_PENSION_INSURANCE__FROM_AGENT = SPECIAL_EXPENSE_DS__FROM_AGENT;
4007
4008 /**
4009 * The feature id for the '<em><b>Income</b></em>' container reference.
4010 * <!-- begin-user-doc -->
4011 * <!-- end-user-doc -->
4012 * @generated
4013 * @ordered
4014 */
4015 int HEALTH_AND_PENSION_INSURANCE__INCOME = SPECIAL_EXPENSE_DS__INCOME;
4016
4017 /**
4018 * The feature id for the '<em><b>Id4</b></em>' attribute.
4019 * <!-- begin-user-doc -->
4020 * <!-- end-user-doc -->
4021 * @generated
4022 * @ordered
4023 */
4024 int HEALTH_AND_PENSION_INSURANCE__ID4 = SPECIAL_EXPENSE_DS__ID4;
4025
4026 /**
4027 * The feature id for the '<em><b>Beneficiary</b></em>' reference.
4028 * <!-- begin-user-doc -->
4029 * <!-- end-user-doc -->
4030 * @generated
4031 * @ordered
4032 */
4033 int HEALTH_AND_PENSION_INSURANCE__BENEFICIARY = SPECIAL_EXPENSE_DS__BENEFICIARY;
4034
4035 /**
4036 * The feature id for the '<em><b>Category</b></em>' attribute.
4037 * <!-- begin-user-doc -->
4038 * <!-- end-user-doc -->
4039 * @generated
4040 * @ordered
4041 */
4042 int HEALTH_AND_PENSION_INSURANCE__CATEGORY = SPECIAL_EXPENSE_DS_FEATURE_COUNT + 0;
4043
4044 /**
4045 * The feature id for the '<em><b>Is related to additional salary</b></em>' attribute.
4046 * <!-- begin-user-doc -->
4047 * <!-- end-user-doc -->
4048 * @generated
4049 * @ordered
4050 */
4051 int HEALTH_AND_PENSION_INSURANCE__IS_RELATED_TO_ADDITIONAL_SALARY = SPECIAL_EXPENSE_DS_FEATURE_COUNT + 1;
4052
4053 /**
4054 * The number of structural features of the '<em>Health and Pension Insurance</em>' class.
4055 * <!-- begin-user-doc -->
4056 * <!-- end-user-doc -->
4057 * @generated
4058 * @ordered
4059 */
4060 int HEALTH_AND_PENSION_INSURANCE_FEATURE_COUNT = SPECIAL_EXPENSE_DS_FEATURE_COUNT + 2;
4061
4062 /**
4063 * The number of operations of the '<em>Health and Pension Insurance</em>' class.
4064 * <!-- begin-user-doc -->
4065 * <!-- end-user-doc -->
4066 * @generated
4067 * @ordered
4068 */
4069 int HEALTH_AND_PENSION_INSURANCE_OPERATION_COUNT = SPECIAL_EXPENSE_DS_OPERATION_COUNT + 0;
4070
4071 /**
4072 * The meta object id for the '{@link TaxationWithRoot.impl.DonationImpl <em>Donation</em>}' class.
4073 * <!-- begin-user-doc -->
4074 * <!-- end-user-doc -->
4075 * @see TaxationWithRoot.impl.DonationImpl
4076 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getDonation()
4077 * @generated
4078 */
4079 int DONATION = 41;
4080
4081 /**
4082 * The feature id for the '<em><b>Declared amount</b></em>' attribute.
4083 * <!-- begin-user-doc -->
4084 * <!-- end-user-doc -->
4085 * @generated
4086 * @ordered
4087 */
4088 int DONATION__DECLARED_AMOUNT = SPECIAL_EXPENSE_DS__DECLARED_AMOUNT;
4089
4090 /**
4091 * The feature id for the '<em><b>Expense purpose</b></em>' attribute.
4092 * <!-- begin-user-doc -->
4093 * <!-- end-user-doc -->
4094 * @generated
4095 * @ordered
4096 */
4097 int DONATION__EXPENSE_PURPOSE = SPECIAL_EXPENSE_DS__EXPENSE_PURPOSE;
4098
4099 /**
4100 * The feature id for the '<em><b>Dependent</b></em>' reference.
4101 * <!-- begin-user-doc -->
4102 * <!-- end-user-doc -->
4103 * @generated
4104 * @ordered
4105 */
4106 int DONATION__DEPENDENT = SPECIAL_EXPENSE_DS__DEPENDENT;
4107
4108 /**
4109 * The feature id for the '<em><b>From agent</b></em>' reference.
4110 * <!-- begin-user-doc -->
4111 * <!-- end-user-doc -->
4112 * @generated
4113 * @ordered
4114 */
4115 int DONATION__FROM_AGENT = SPECIAL_EXPENSE_DS__FROM_AGENT;
4116
4117 /**
4118 * The feature id for the '<em><b>Income</b></em>' container reference.
4119 * <!-- begin-user-doc -->
4120 * <!-- end-user-doc -->
4121 * @generated
4122 * @ordered
4123 */
4124 int DONATION__INCOME = SPECIAL_EXPENSE_DS__INCOME;
4125
4126 /**
4127 * The feature id for the '<em><b>Id4</b></em>' attribute.
4128 * <!-- begin-user-doc -->
4129 * <!-- end-user-doc -->
4130 * @generated
4131 * @ordered
4132 */
4133 int DONATION__ID4 = SPECIAL_EXPENSE_DS__ID4;
4134
4135 /**
4136 * The feature id for the '<em><b>Beneficiary</b></em>' reference.
4137 * <!-- begin-user-doc -->
4138 * <!-- end-user-doc -->
4139 * @generated
4140 * @ordered
4141 */
4142 int DONATION__BENEFICIARY = SPECIAL_EXPENSE_DS__BENEFICIARY;
4143
4144 /**
4145 * The feature id for the '<em><b>Beneficiary1</b></em>' attribute.
4146 * <!-- begin-user-doc -->
4147 * <!-- end-user-doc -->
4148 * @generated
4149 * @ordered
4150 */
4151 int DONATION__BENEFICIARY1 = SPECIAL_EXPENSE_DS_FEATURE_COUNT + 0;
4152
4153 /**
4154 * The feature id for the '<em><b>Is donation reported</b></em>' attribute.
4155 * <!-- begin-user-doc -->
4156 * <!-- end-user-doc -->
4157 * @generated
4158 * @ordered
4159 */
4160 int DONATION__IS_DONATION_REPORTED = SPECIAL_EXPENSE_DS_FEATURE_COUNT + 1;
4161
4162 /**
4163 * The number of structural features of the '<em>Donation</em>' class.
4164 * <!-- begin-user-doc -->
4165 * <!-- end-user-doc -->
4166 * @generated
4167 * @ordered
4168 */
4169 int DONATION_FEATURE_COUNT = SPECIAL_EXPENSE_DS_FEATURE_COUNT + 2;
4170
4171 /**
4172 * The number of operations of the '<em>Donation</em>' class.
4173 * <!-- begin-user-doc -->
4174 * <!-- end-user-doc -->
4175 * @generated
4176 * @ordered
4177 */
4178 int DONATION_OPERATION_COUNT = SPECIAL_EXPENSE_DS_OPERATION_COUNT + 0;
4179
4180 /**
4181 * The meta object id for the '{@link TaxationWithRoot.impl.Loss_CarryforwardImpl <em>Loss Carryforward</em>}' class.
4182 * <!-- begin-user-doc -->
4183 * <!-- end-user-doc -->
4184 * @see TaxationWithRoot.impl.Loss_CarryforwardImpl
4185 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getLoss_Carryforward()
4186 * @generated
4187 */
4188 int LOSS_CARRYFORWARD = 42;
4189
4190 /**
4191 * The feature id for the '<em><b>Declared amount</b></em>' attribute.
4192 * <!-- begin-user-doc -->
4193 * <!-- end-user-doc -->
4194 * @generated
4195 * @ordered
4196 */
4197 int LOSS_CARRYFORWARD__DECLARED_AMOUNT = SPECIAL_EXPENSE_DS__DECLARED_AMOUNT;
4198
4199 /**
4200 * The feature id for the '<em><b>Expense purpose</b></em>' attribute.
4201 * <!-- begin-user-doc -->
4202 * <!-- end-user-doc -->
4203 * @generated
4204 * @ordered
4205 */
4206 int LOSS_CARRYFORWARD__EXPENSE_PURPOSE = SPECIAL_EXPENSE_DS__EXPENSE_PURPOSE;
4207
4208 /**
4209 * The feature id for the '<em><b>Dependent</b></em>' reference.
4210 * <!-- begin-user-doc -->
4211 * <!-- end-user-doc -->
4212 * @generated
4213 * @ordered
4214 */
4215 int LOSS_CARRYFORWARD__DEPENDENT = SPECIAL_EXPENSE_DS__DEPENDENT;
4216
4217 /**
4218 * The feature id for the '<em><b>From agent</b></em>' reference.
4219 * <!-- begin-user-doc -->
4220 * <!-- end-user-doc -->
4221 * @generated
4222 * @ordered
4223 */
4224 int LOSS_CARRYFORWARD__FROM_AGENT = SPECIAL_EXPENSE_DS__FROM_AGENT;
4225
4226 /**
4227 * The feature id for the '<em><b>Income</b></em>' container reference.
4228 * <!-- begin-user-doc -->
4229 * <!-- end-user-doc -->
4230 * @generated
4231 * @ordered
4232 */
4233 int LOSS_CARRYFORWARD__INCOME = SPECIAL_EXPENSE_DS__INCOME;
4234
4235 /**
4236 * The feature id for the '<em><b>Id4</b></em>' attribute.
4237 * <!-- begin-user-doc -->
4238 * <!-- end-user-doc -->
4239 * @generated
4240 * @ordered
4241 */
4242 int LOSS_CARRYFORWARD__ID4 = SPECIAL_EXPENSE_DS__ID4;
4243
4244 /**
4245 * The feature id for the '<em><b>Beneficiary</b></em>' reference.
4246 * <!-- begin-user-doc -->
4247 * <!-- end-user-doc -->
4248 * @generated
4249 * @ordered
4250 */
4251 int LOSS_CARRYFORWARD__BENEFICIARY = SPECIAL_EXPENSE_DS__BENEFICIARY;
4252
4253 /**
4254 * The number of structural features of the '<em>Loss Carryforward</em>' class.
4255 * <!-- begin-user-doc -->
4256 * <!-- end-user-doc -->
4257 * @generated
4258 * @ordered
4259 */
4260 int LOSS_CARRYFORWARD_FEATURE_COUNT = SPECIAL_EXPENSE_DS_FEATURE_COUNT + 0;
4261
4262 /**
4263 * The number of operations of the '<em>Loss Carryforward</em>' class.
4264 * <!-- begin-user-doc -->
4265 * <!-- end-user-doc -->
4266 * @generated
4267 * @ordered
4268 */
4269 int LOSS_CARRYFORWARD_OPERATION_COUNT = SPECIAL_EXPENSE_DS_OPERATION_COUNT + 0;
4270
4271 /**
4272 * The meta object id for the '{@link TaxationWithRoot.impl.Spousal_Expense_ACImpl <em>Spousal Expense AC</em>}' class.
4273 * <!-- begin-user-doc -->
4274 * <!-- end-user-doc -->
4275 * @see TaxationWithRoot.impl.Spousal_Expense_ACImpl
4276 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getSpousal_Expense_AC()
4277 * @generated
4278 */
4279 int SPOUSAL_EXPENSE_AC = 43;
4280
4281 /**
4282 * The feature id for the '<em><b>Declared amount</b></em>' attribute.
4283 * <!-- begin-user-doc -->
4284 * <!-- end-user-doc -->
4285 * @generated
4286 * @ordered
4287 */
4288 int SPOUSAL_EXPENSE_AC__DECLARED_AMOUNT = EXPENSE__DECLARED_AMOUNT;
4289
4290 /**
4291 * The feature id for the '<em><b>Expense purpose</b></em>' attribute.
4292 * <!-- begin-user-doc -->
4293 * <!-- end-user-doc -->
4294 * @generated
4295 * @ordered
4296 */
4297 int SPOUSAL_EXPENSE_AC__EXPENSE_PURPOSE = EXPENSE__EXPENSE_PURPOSE;
4298
4299 /**
4300 * The feature id for the '<em><b>Dependent</b></em>' reference.
4301 * <!-- begin-user-doc -->
4302 * <!-- end-user-doc -->
4303 * @generated
4304 * @ordered
4305 */
4306 int SPOUSAL_EXPENSE_AC__DEPENDENT = EXPENSE__DEPENDENT;
4307
4308 /**
4309 * The feature id for the '<em><b>From agent</b></em>' reference.
4310 * <!-- begin-user-doc -->
4311 * <!-- end-user-doc -->
4312 * @generated
4313 * @ordered
4314 */
4315 int SPOUSAL_EXPENSE_AC__FROM_AGENT = EXPENSE__FROM_AGENT;
4316
4317 /**
4318 * The feature id for the '<em><b>Income</b></em>' container reference.
4319 * <!-- begin-user-doc -->
4320 * <!-- end-user-doc -->
4321 * @generated
4322 * @ordered
4323 */
4324 int SPOUSAL_EXPENSE_AC__INCOME = EXPENSE__INCOME;
4325
4326 /**
4327 * The feature id for the '<em><b>Id4</b></em>' attribute.
4328 * <!-- begin-user-doc -->
4329 * <!-- end-user-doc -->
4330 * @generated
4331 * @ordered
4332 */
4333 int SPOUSAL_EXPENSE_AC__ID4 = EXPENSE__ID4;
4334
4335 /**
4336 * The feature id for the '<em><b>Beneficiary</b></em>' reference.
4337 * <!-- begin-user-doc -->
4338 * <!-- end-user-doc -->
4339 * @generated
4340 * @ordered
4341 */
4342 int SPOUSAL_EXPENSE_AC__BENEFICIARY = EXPENSE__BENEFICIARY;
4343
4344 /**
4345 * The number of structural features of the '<em>Spousal Expense AC</em>' class.
4346 * <!-- begin-user-doc -->
4347 * <!-- end-user-doc -->
4348 * @generated
4349 * @ordered
4350 */
4351 int SPOUSAL_EXPENSE_AC_FEATURE_COUNT = EXPENSE_FEATURE_COUNT + 0;
4352
4353 /**
4354 * The number of operations of the '<em>Spousal Expense AC</em>' class.
4355 * <!-- begin-user-doc -->
4356 * <!-- end-user-doc -->
4357 * @generated
4358 * @ordered
4359 */
4360 int SPOUSAL_EXPENSE_AC_OPERATION_COUNT = EXPENSE_OPERATION_COUNT + 0;
4361
4362 /**
4363 * The meta object id for the '{@link TaxationWithRoot.impl.Extraordinary_Expense_CEImpl <em>Extraordinary Expense CE</em>}' class.
4364 * <!-- begin-user-doc -->
4365 * <!-- end-user-doc -->
4366 * @see TaxationWithRoot.impl.Extraordinary_Expense_CEImpl
4367 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getExtraordinary_Expense_CE()
4368 * @generated
4369 */
4370 int EXTRAORDINARY_EXPENSE_CE = 44;
4371
4372 /**
4373 * The feature id for the '<em><b>Declared amount</b></em>' attribute.
4374 * <!-- begin-user-doc -->
4375 * <!-- end-user-doc -->
4376 * @generated
4377 * @ordered
4378 */
4379 int EXTRAORDINARY_EXPENSE_CE__DECLARED_AMOUNT = EXPENSE__DECLARED_AMOUNT;
4380
4381 /**
4382 * The feature id for the '<em><b>Expense purpose</b></em>' attribute.
4383 * <!-- begin-user-doc -->
4384 * <!-- end-user-doc -->
4385 * @generated
4386 * @ordered
4387 */
4388 int EXTRAORDINARY_EXPENSE_CE__EXPENSE_PURPOSE = EXPENSE__EXPENSE_PURPOSE;
4389
4390 /**
4391 * The feature id for the '<em><b>Dependent</b></em>' reference.
4392 * <!-- begin-user-doc -->
4393 * <!-- end-user-doc -->
4394 * @generated
4395 * @ordered
4396 */
4397 int EXTRAORDINARY_EXPENSE_CE__DEPENDENT = EXPENSE__DEPENDENT;
4398
4399 /**
4400 * The feature id for the '<em><b>From agent</b></em>' reference.
4401 * <!-- begin-user-doc -->
4402 * <!-- end-user-doc -->
4403 * @generated
4404 * @ordered
4405 */
4406 int EXTRAORDINARY_EXPENSE_CE__FROM_AGENT = EXPENSE__FROM_AGENT;
4407
4408 /**
4409 * The feature id for the '<em><b>Income</b></em>' container reference.
4410 * <!-- begin-user-doc -->
4411 * <!-- end-user-doc -->
4412 * @generated
4413 * @ordered
4414 */
4415 int EXTRAORDINARY_EXPENSE_CE__INCOME = EXPENSE__INCOME;
4416
4417 /**
4418 * The feature id for the '<em><b>Id4</b></em>' attribute.
4419 * <!-- begin-user-doc -->
4420 * <!-- end-user-doc -->
4421 * @generated
4422 * @ordered
4423 */
4424 int EXTRAORDINARY_EXPENSE_CE__ID4 = EXPENSE__ID4;
4425
4426 /**
4427 * The feature id for the '<em><b>Beneficiary</b></em>' reference.
4428 * <!-- begin-user-doc -->
4429 * <!-- end-user-doc -->
4430 * @generated
4431 * @ordered
4432 */
4433 int EXTRAORDINARY_EXPENSE_CE__BENEFICIARY = EXPENSE__BENEFICIARY;
4434
4435 /**
4436 * The feature id for the '<em><b>Thresholded deduction percentage</b></em>' attribute.
4437 * <!-- begin-user-doc -->
4438 * <!-- end-user-doc -->
4439 * @generated
4440 * @ordered
4441 */
4442 int EXTRAORDINARY_EXPENSE_CE__THRESHOLDED_DEDUCTION_PERCENTAGE = EXPENSE_FEATURE_COUNT + 0;
4443
4444 /**
4445 * The feature id for the '<em><b>Ce type</b></em>' attribute.
4446 * <!-- begin-user-doc -->
4447 * <!-- end-user-doc -->
4448 * @generated
4449 * @ordered
4450 */
4451 int EXTRAORDINARY_EXPENSE_CE__CE_TYPE = EXPENSE_FEATURE_COUNT + 1;
4452
4453 /**
4454 * The number of structural features of the '<em>Extraordinary Expense CE</em>' class.
4455 * <!-- begin-user-doc -->
4456 * <!-- end-user-doc -->
4457 * @generated
4458 * @ordered
4459 */
4460 int EXTRAORDINARY_EXPENSE_CE_FEATURE_COUNT = EXPENSE_FEATURE_COUNT + 2;
4461
4462 /**
4463 * The number of operations of the '<em>Extraordinary Expense CE</em>' class.
4464 * <!-- begin-user-doc -->
4465 * <!-- end-user-doc -->
4466 * @generated
4467 * @ordered
4468 */
4469 int EXTRAORDINARY_EXPENSE_CE_OPERATION_COUNT = EXPENSE_OPERATION_COUNT + 0;
4470
4471 /**
4472 * The meta object id for the '{@link TaxationWithRoot.impl.Professional_ExpenseImpl <em>Professional Expense</em>}' class.
4473 * <!-- begin-user-doc -->
4474 * <!-- end-user-doc -->
4475 * @see TaxationWithRoot.impl.Professional_ExpenseImpl
4476 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getProfessional_Expense()
4477 * @generated
4478 */
4479 int PROFESSIONAL_EXPENSE = 46;
4480
4481 /**
4482 * The feature id for the '<em><b>Declared amount</b></em>' attribute.
4483 * <!-- begin-user-doc -->
4484 * <!-- end-user-doc -->
4485 * @generated
4486 * @ordered
4487 */
4488 int PROFESSIONAL_EXPENSE__DECLARED_AMOUNT = EXPENSE__DECLARED_AMOUNT;
4489
4490 /**
4491 * The feature id for the '<em><b>Expense purpose</b></em>' attribute.
4492 * <!-- begin-user-doc -->
4493 * <!-- end-user-doc -->
4494 * @generated
4495 * @ordered
4496 */
4497 int PROFESSIONAL_EXPENSE__EXPENSE_PURPOSE = EXPENSE__EXPENSE_PURPOSE;
4498
4499 /**
4500 * The feature id for the '<em><b>Dependent</b></em>' reference.
4501 * <!-- begin-user-doc -->
4502 * <!-- end-user-doc -->
4503 * @generated
4504 * @ordered
4505 */
4506 int PROFESSIONAL_EXPENSE__DEPENDENT = EXPENSE__DEPENDENT;
4507
4508 /**
4509 * The feature id for the '<em><b>From agent</b></em>' reference.
4510 * <!-- begin-user-doc -->
4511 * <!-- end-user-doc -->
4512 * @generated
4513 * @ordered
4514 */
4515 int PROFESSIONAL_EXPENSE__FROM_AGENT = EXPENSE__FROM_AGENT;
4516
4517 /**
4518 * The feature id for the '<em><b>Income</b></em>' container reference.
4519 * <!-- begin-user-doc -->
4520 * <!-- end-user-doc -->
4521 * @generated
4522 * @ordered
4523 */
4524 int PROFESSIONAL_EXPENSE__INCOME = EXPENSE__INCOME;
4525
4526 /**
4527 * The feature id for the '<em><b>Id4</b></em>' attribute.
4528 * <!-- begin-user-doc -->
4529 * <!-- end-user-doc -->
4530 * @generated
4531 * @ordered
4532 */
4533 int PROFESSIONAL_EXPENSE__ID4 = EXPENSE__ID4;
4534
4535 /**
4536 * The feature id for the '<em><b>Beneficiary</b></em>' reference.
4537 * <!-- begin-user-doc -->
4538 * <!-- end-user-doc -->
4539 * @generated
4540 * @ordered
4541 */
4542 int PROFESSIONAL_EXPENSE__BENEFICIARY = EXPENSE__BENEFICIARY;
4543
4544 /**
4545 * The number of structural features of the '<em>Professional Expense</em>' class.
4546 * <!-- begin-user-doc -->
4547 * <!-- end-user-doc -->
4548 * @generated
4549 * @ordered
4550 */
4551 int PROFESSIONAL_EXPENSE_FEATURE_COUNT = EXPENSE_FEATURE_COUNT + 0;
4552
4553 /**
4554 * The number of operations of the '<em>Professional Expense</em>' class.
4555 * <!-- begin-user-doc -->
4556 * <!-- end-user-doc -->
4557 * @generated
4558 * @ordered
4559 */
4560 int PROFESSIONAL_EXPENSE_OPERATION_COUNT = EXPENSE_OPERATION_COUNT + 0;
4561
4562 /**
4563 * The meta object id for the '{@link TaxationWithRoot.impl.Travel_Expense_FDImpl <em>Travel Expense FD</em>}' class.
4564 * <!-- begin-user-doc -->
4565 * <!-- end-user-doc -->
4566 * @see TaxationWithRoot.impl.Travel_Expense_FDImpl
4567 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getTravel_Expense_FD()
4568 * @generated
4569 */
4570 int TRAVEL_EXPENSE_FD = 45;
4571
4572 /**
4573 * The feature id for the '<em><b>Declared amount</b></em>' attribute.
4574 * <!-- begin-user-doc -->
4575 * <!-- end-user-doc -->
4576 * @generated
4577 * @ordered
4578 */
4579 int TRAVEL_EXPENSE_FD__DECLARED_AMOUNT = PROFESSIONAL_EXPENSE__DECLARED_AMOUNT;
4580
4581 /**
4582 * The feature id for the '<em><b>Expense purpose</b></em>' attribute.
4583 * <!-- begin-user-doc -->
4584 * <!-- end-user-doc -->
4585 * @generated
4586 * @ordered
4587 */
4588 int TRAVEL_EXPENSE_FD__EXPENSE_PURPOSE = PROFESSIONAL_EXPENSE__EXPENSE_PURPOSE;
4589
4590 /**
4591 * The feature id for the '<em><b>Dependent</b></em>' reference.
4592 * <!-- begin-user-doc -->
4593 * <!-- end-user-doc -->
4594 * @generated
4595 * @ordered
4596 */
4597 int TRAVEL_EXPENSE_FD__DEPENDENT = PROFESSIONAL_EXPENSE__DEPENDENT;
4598
4599 /**
4600 * The feature id for the '<em><b>From agent</b></em>' reference.
4601 * <!-- begin-user-doc -->
4602 * <!-- end-user-doc -->
4603 * @generated
4604 * @ordered
4605 */
4606 int TRAVEL_EXPENSE_FD__FROM_AGENT = PROFESSIONAL_EXPENSE__FROM_AGENT;
4607
4608 /**
4609 * The feature id for the '<em><b>Income</b></em>' container reference.
4610 * <!-- begin-user-doc -->
4611 * <!-- end-user-doc -->
4612 * @generated
4613 * @ordered
4614 */
4615 int TRAVEL_EXPENSE_FD__INCOME = PROFESSIONAL_EXPENSE__INCOME;
4616
4617 /**
4618 * The feature id for the '<em><b>Id4</b></em>' attribute.
4619 * <!-- begin-user-doc -->
4620 * <!-- end-user-doc -->
4621 * @generated
4622 * @ordered
4623 */
4624 int TRAVEL_EXPENSE_FD__ID4 = PROFESSIONAL_EXPENSE__ID4;
4625
4626 /**
4627 * The feature id for the '<em><b>Beneficiary</b></em>' reference.
4628 * <!-- begin-user-doc -->
4629 * <!-- end-user-doc -->
4630 * @generated
4631 * @ordered
4632 */
4633 int TRAVEL_EXPENSE_FD__BENEFICIARY = PROFESSIONAL_EXPENSE__BENEFICIARY;
4634
4635 /**
4636 * The number of structural features of the '<em>Travel Expense FD</em>' class.
4637 * <!-- begin-user-doc -->
4638 * <!-- end-user-doc -->
4639 * @generated
4640 * @ordered
4641 */
4642 int TRAVEL_EXPENSE_FD_FEATURE_COUNT = PROFESSIONAL_EXPENSE_FEATURE_COUNT + 0;
4643
4644 /**
4645 * The number of operations of the '<em>Travel Expense FD</em>' class.
4646 * <!-- begin-user-doc -->
4647 * <!-- end-user-doc -->
4648 * @generated
4649 * @ordered
4650 */
4651 int TRAVEL_EXPENSE_FD_OPERATION_COUNT = PROFESSIONAL_EXPENSE_OPERATION_COUNT + 0;
4652
4653 /**
4654 * The meta object id for the '{@link TaxationWithRoot.impl.Miscellaneous_Expense_FOImpl <em>Miscellaneous Expense FO</em>}' class.
4655 * <!-- begin-user-doc -->
4656 * <!-- end-user-doc -->
4657 * @see TaxationWithRoot.impl.Miscellaneous_Expense_FOImpl
4658 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getMiscellaneous_Expense_FO()
4659 * @generated
4660 */
4661 int MISCELLANEOUS_EXPENSE_FO = 47;
4662
4663 /**
4664 * The feature id for the '<em><b>Declared amount</b></em>' attribute.
4665 * <!-- begin-user-doc -->
4666 * <!-- end-user-doc -->
4667 * @generated
4668 * @ordered
4669 */
4670 int MISCELLANEOUS_EXPENSE_FO__DECLARED_AMOUNT = PROFESSIONAL_EXPENSE__DECLARED_AMOUNT;
4671
4672 /**
4673 * The feature id for the '<em><b>Expense purpose</b></em>' attribute.
4674 * <!-- begin-user-doc -->
4675 * <!-- end-user-doc -->
4676 * @generated
4677 * @ordered
4678 */
4679 int MISCELLANEOUS_EXPENSE_FO__EXPENSE_PURPOSE = PROFESSIONAL_EXPENSE__EXPENSE_PURPOSE;
4680
4681 /**
4682 * The feature id for the '<em><b>Dependent</b></em>' reference.
4683 * <!-- begin-user-doc -->
4684 * <!-- end-user-doc -->
4685 * @generated
4686 * @ordered
4687 */
4688 int MISCELLANEOUS_EXPENSE_FO__DEPENDENT = PROFESSIONAL_EXPENSE__DEPENDENT;
4689
4690 /**
4691 * The feature id for the '<em><b>From agent</b></em>' reference.
4692 * <!-- begin-user-doc -->
4693 * <!-- end-user-doc -->
4694 * @generated
4695 * @ordered
4696 */
4697 int MISCELLANEOUS_EXPENSE_FO__FROM_AGENT = PROFESSIONAL_EXPENSE__FROM_AGENT;
4698
4699 /**
4700 * The feature id for the '<em><b>Income</b></em>' container reference.
4701 * <!-- begin-user-doc -->
4702 * <!-- end-user-doc -->
4703 * @generated
4704 * @ordered
4705 */
4706 int MISCELLANEOUS_EXPENSE_FO__INCOME = PROFESSIONAL_EXPENSE__INCOME;
4707
4708 /**
4709 * The feature id for the '<em><b>Id4</b></em>' attribute.
4710 * <!-- begin-user-doc -->
4711 * <!-- end-user-doc -->
4712 * @generated
4713 * @ordered
4714 */
4715 int MISCELLANEOUS_EXPENSE_FO__ID4 = PROFESSIONAL_EXPENSE__ID4;
4716
4717 /**
4718 * The feature id for the '<em><b>Beneficiary</b></em>' reference.
4719 * <!-- begin-user-doc -->
4720 * <!-- end-user-doc -->
4721 * @generated
4722 * @ordered
4723 */
4724 int MISCELLANEOUS_EXPENSE_FO__BENEFICIARY = PROFESSIONAL_EXPENSE__BENEFICIARY;
4725
4726 /**
4727 * The number of structural features of the '<em>Miscellaneous Expense FO</em>' class.
4728 * <!-- begin-user-doc -->
4729 * <!-- end-user-doc -->
4730 * @generated
4731 * @ordered
4732 */
4733 int MISCELLANEOUS_EXPENSE_FO_FEATURE_COUNT = PROFESSIONAL_EXPENSE_FEATURE_COUNT + 0;
4734
4735 /**
4736 * The number of operations of the '<em>Miscellaneous Expense FO</em>' class.
4737 * <!-- begin-user-doc -->
4738 * <!-- end-user-doc -->
4739 * @generated
4740 * @ordered
4741 */
4742 int MISCELLANEOUS_EXPENSE_FO_OPERATION_COUNT = PROFESSIONAL_EXPENSE_OPERATION_COUNT + 0;
4743
4744 /**
4745 * The meta object id for the '{@link TaxationWithRoot.impl.ResourceImpl <em>Resource</em>}' class.
4746 * <!-- begin-user-doc -->
4747 * <!-- end-user-doc -->
4748 * @see TaxationWithRoot.impl.ResourceImpl
4749 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getResource()
4750 * @generated
4751 */
4752 int RESOURCE = 48;
4753
4754 /**
4755 * The feature id for the '<em><b>Contains</b></em>' containment reference list.
4756 * <!-- begin-user-doc -->
4757 * <!-- end-user-doc -->
4758 * @generated
4759 * @ordered
4760 */
4761 int RESOURCE__CONTAINS = 0;
4762
4763 /**
4764 * The number of structural features of the '<em>Resource</em>' class.
4765 * <!-- begin-user-doc -->
4766 * <!-- end-user-doc -->
4767 * @generated
4768 * @ordered
4769 */
4770 int RESOURCE_FEATURE_COUNT = 1;
4771
4772 /**
4773 * The number of operations of the '<em>Resource</em>' class.
4774 * <!-- begin-user-doc -->
4775 * <!-- end-user-doc -->
4776 * @generated
4777 * @ordered
4778 */
4779 int RESOURCE_OPERATION_COUNT = 0;
4780
4781 /**
4782 * The meta object id for the '{@link TaxationWithRoot.Grantor <em>Grantor</em>}' enum.
4783 * <!-- begin-user-doc -->
4784 * <!-- end-user-doc -->
4785 * @see TaxationWithRoot.Grantor
4786 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getGrantor()
4787 * @generated
4788 */
4789 int GRANTOR = 49;
4790
4791 /**
4792 * The meta object id for the '{@link TaxationWithRoot.Disability_Types <em>Disability Types</em>}' enum.
4793 * <!-- begin-user-doc -->
4794 * <!-- end-user-doc -->
4795 * @see TaxationWithRoot.Disability_Types
4796 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getDisability_Types()
4797 * @generated
4798 */
4799 int DISABILITY_TYPES = 50;
4800
4801 /**
4802 * The meta object id for the '{@link TaxationWithRoot.Country <em>Country</em>}' enum.
4803 * <!-- begin-user-doc -->
4804 * <!-- end-user-doc -->
4805 * @see TaxationWithRoot.Country
4806 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getCountry()
4807 * @generated
4808 */
4809 int COUNTRY = 51;
4810
4811 /**
4812 * The meta object id for the '{@link TaxationWithRoot.Tax_Office <em>Tax Office</em>}' enum.
4813 * <!-- begin-user-doc -->
4814 * <!-- end-user-doc -->
4815 * @see TaxationWithRoot.Tax_Office
4816 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getTax_Office()
4817 * @generated
4818 */
4819 int TAX_OFFICE = 52;
4820
4821 /**
4822 * The meta object id for the '{@link TaxationWithRoot.Tax_Class_Category <em>Tax Class Category</em>}' enum.
4823 * <!-- begin-user-doc -->
4824 * <!-- end-user-doc -->
4825 * @see TaxationWithRoot.Tax_Class_Category
4826 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getTax_Class_Category()
4827 * @generated
4828 */
4829 int TAX_CLASS_CATEGORY = 53;
4830
4831 /**
4832 * The meta object id for the '{@link TaxationWithRoot.Job_Activity <em>Job Activity</em>}' enum.
4833 * <!-- begin-user-doc -->
4834 * <!-- end-user-doc -->
4835 * @see TaxationWithRoot.Job_Activity
4836 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getJob_Activity()
4837 * @generated
4838 */
4839 int JOB_ACTIVITY = 54;
4840
4841 /**
4842 * The meta object id for the '{@link TaxationWithRoot.Town <em>Town</em>}' enum.
4843 * <!-- begin-user-doc -->
4844 * <!-- end-user-doc -->
4845 * @see TaxationWithRoot.Town
4846 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getTown()
4847 * @generated
4848 */
4849 int TOWN = 55;
4850
4851 /**
4852 * The meta object id for the '{@link TaxationWithRoot.CE_Type <em>CE Type</em>}' enum.
4853 * <!-- begin-user-doc -->
4854 * <!-- end-user-doc -->
4855 * @see TaxationWithRoot.CE_Type
4856 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getCE_Type()
4857 * @generated
4858 */
4859 int CE_TYPE = 56;
4860
4861 /**
4862 * The meta object id for the '{@link TaxationWithRoot.Expense_Purpose <em>Expense Purpose</em>}' enum.
4863 * <!-- begin-user-doc -->
4864 * <!-- end-user-doc -->
4865 * @see TaxationWithRoot.Expense_Purpose
4866 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getExpense_Purpose()
4867 * @generated
4868 */
4869 int EXPENSE_PURPOSE = 57;
4870
4871 /**
4872 * The meta object id for the '{@link TaxationWithRoot.Dependent_Type <em>Dependent Type</em>}' enum.
4873 * <!-- begin-user-doc -->
4874 * <!-- end-user-doc -->
4875 * @see TaxationWithRoot.Dependent_Type
4876 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getDependent_Type()
4877 * @generated
4878 */
4879 int DEPENDENT_TYPE = 58;
4880
4881 /**
4882 * The meta object id for the '{@link TaxationWithRoot.Separation_Causes <em>Separation Causes</em>}' enum.
4883 * <!-- begin-user-doc -->
4884 * <!-- end-user-doc -->
4885 * @see TaxationWithRoot.Separation_Causes
4886 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getSeparation_Causes()
4887 * @generated
4888 */
4889 int SEPARATION_CAUSES = 59;
4890
4891 /**
4892 * The meta object id for the '{@link TaxationWithRoot.Category_of_Permanent_Expense <em>Category of Permanent Expense</em>}' enum.
4893 * <!-- begin-user-doc -->
4894 * <!-- end-user-doc -->
4895 * @see TaxationWithRoot.Category_of_Permanent_Expense
4896 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getCategory_of_Permanent_Expense()
4897 * @generated
4898 */
4899 int CATEGORY_OF_PERMANENT_EXPENSE = 60;
4900
4901 /**
4902 * The meta object id for the '{@link TaxationWithRoot.Category_of_Health_and_Pension_Insurances <em>Category of Health and Pension Insurances</em>}' enum.
4903 * <!-- begin-user-doc -->
4904 * <!-- end-user-doc -->
4905 * @see TaxationWithRoot.Category_of_Health_and_Pension_Insurances
4906 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getCategory_of_Health_and_Pension_Insurances()
4907 * @generated
4908 */
4909 int CATEGORY_OF_HEALTH_AND_PENSION_INSURANCES = 61;
4910
4911 /**
4912 * The meta object id for the '{@link TaxationWithRoot.Category_of_Private_Insurance_and_Plan <em>Category of Private Insurance and Plan</em>}' enum.
4913 * <!-- begin-user-doc -->
4914 * <!-- end-user-doc -->
4915 * @see TaxationWithRoot.Category_of_Private_Insurance_and_Plan
4916 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getCategory_of_Private_Insurance_and_Plan()
4917 * @generated
4918 */
4919 int CATEGORY_OF_PRIVATE_INSURANCE_AND_PLAN = 62;
4920
4921 /**
4922 * The meta object id for the '{@link TaxationWithRoot.Legal_Union_Types <em>Legal Union Types</em>}' enum.
4923 * <!-- begin-user-doc -->
4924 * <!-- end-user-doc -->
4925 * @see TaxationWithRoot.Legal_Union_Types
4926 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getLegal_Union_Types()
4927 * @generated
4928 */
4929 int LEGAL_UNION_TYPES = 63;
4930
4931
4932 /**
4933 * Returns the meta object for class '{@link TaxationWithRoot.Constants <em>Constants</em>}'.
4934 * <!-- begin-user-doc -->
4935 * <!-- end-user-doc -->
4936 * @return the meta object for class '<em>Constants</em>'.
4937 * @see TaxationWithRoot.Constants
4938 * @generated
4939 */
4940 EClass getConstants();
4941
4942 /**
4943 * Returns the meta object for the attribute '{@link TaxationWithRoot.Constants#getMAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD <em>MAXIMUM CE RATE FOR CHILD NOT BEING PART OF HOUSEHOLD</em>}'.
4944 * <!-- begin-user-doc -->
4945 * <!-- end-user-doc -->
4946 * @return the meta object for the attribute '<em>MAXIMUM CE RATE FOR CHILD NOT BEING PART OF HOUSEHOLD</em>'.
4947 * @see TaxationWithRoot.Constants#getMAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD()
4948 * @see #getConstants()
4949 * @generated
4950 */
4951 EAttribute getConstants_MAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD();
4952
4953 /**
4954 * Returns the meta object for the attribute '{@link TaxationWithRoot.Constants#getMAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE <em>MAXIMUM CE RATE FOR HOUSE CARE AND CHILD PART OF THE HOUSEHOLD CARE</em>}'.
4955 * <!-- begin-user-doc -->
4956 * <!-- end-user-doc -->
4957 * @return the meta object for the attribute '<em>MAXIMUM CE RATE FOR HOUSE CARE AND CHILD PART OF THE HOUSEHOLD CARE</em>'.
4958 * @see TaxationWithRoot.Constants#getMAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE()
4959 * @see #getConstants()
4960 * @generated
4961 */
4962 EAttribute getConstants_MAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE();
4963
4964 /**
4965 * Returns the meta object for the attribute '{@link TaxationWithRoot.Constants#getMINIMUM_SALARY <em>MINIMUM SALARY</em>}'.
4966 * <!-- begin-user-doc -->
4967 * <!-- end-user-doc -->
4968 * @return the meta object for the attribute '<em>MINIMUM SALARY</em>'.
4969 * @see TaxationWithRoot.Constants#getMINIMUM_SALARY()
4970 * @see #getConstants()
4971 * @generated
4972 */
4973 EAttribute getConstants_MINIMUM_SALARY();
4974
4975 /**
4976 * Returns the meta object for the attribute '{@link TaxationWithRoot.Constants#getFLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION <em>FLAT RATE FOR EXTRA PROFESSIONAL DEDUCTION</em>}'.
4977 * <!-- begin-user-doc -->
4978 * <!-- end-user-doc -->
4979 * @return the meta object for the attribute '<em>FLAT RATE FOR EXTRA PROFESSIONAL DEDUCTION</em>'.
4980 * @see TaxationWithRoot.Constants#getFLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION()
4981 * @see #getConstants()
4982 * @generated
4983 */
4984 EAttribute getConstants_FLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION();
4985
4986 /**
4987 * Returns the meta object for the attribute '{@link TaxationWithRoot.Constants#getMAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS <em>MAXIMUM DEDUCTIBLE PERCENTAGE FOR DONATIONS</em>}'.
4988 * <!-- begin-user-doc -->
4989 * <!-- end-user-doc -->
4990 * @return the meta object for the attribute '<em>MAXIMUM DEDUCTIBLE PERCENTAGE FOR DONATIONS</em>'.
4991 * @see TaxationWithRoot.Constants#getMAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS()
4992 * @see #getConstants()
4993 * @generated
4994 */
4995 EAttribute getConstants_MAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS();
4996
4997 /**
4998 * Returns the meta object for the attribute '{@link TaxationWithRoot.Constants#getMINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS <em>MINIMUM DEDUCTIBLE AMOUNT FOR DONATIONS</em>}'.
4999 * <!-- begin-user-doc -->
5000 * <!-- end-user-doc -->
5001 * @return the meta object for the attribute '<em>MINIMUM DEDUCTIBLE AMOUNT FOR DONATIONS</em>'.
5002 * @see TaxationWithRoot.Constants#getMINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS()
5003 * @see #getConstants()
5004 * @generated
5005 */
5006 EAttribute getConstants_MINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS();
5007
5008 /**
5009 * Returns the meta object for the attribute '{@link TaxationWithRoot.Constants#getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC <em>MAXIMUM DEDUCTIBLE AMOUNT FOR ADDITIONAL PENSION AND INSURANC</em>}'.
5010 * <!-- begin-user-doc -->
5011 * <!-- end-user-doc -->
5012 * @return the meta object for the attribute '<em>MAXIMUM DEDUCTIBLE AMOUNT FOR ADDITIONAL PENSION AND INSURANC</em>'.
5013 * @see TaxationWithRoot.Constants#getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC()
5014 * @see #getConstants()
5015 * @generated
5016 */
5017 EAttribute getConstants_MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC();
5018
5019 /**
5020 * Returns the meta object for the attribute '{@link TaxationWithRoot.Constants#getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE <em>MAXIMUM DEDUCTIBLE AMOUNT FOR ALIMONY EXPENSE</em>}'.
5021 * <!-- begin-user-doc -->
5022 * <!-- end-user-doc -->
5023 * @return the meta object for the attribute '<em>MAXIMUM DEDUCTIBLE AMOUNT FOR ALIMONY EXPENSE</em>'.
5024 * @see TaxationWithRoot.Constants#getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE()
5025 * @see #getConstants()
5026 * @generated
5027 */
5028 EAttribute getConstants_MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE();
5029
5030 /**
5031 * Returns the meta object for the attribute '{@link TaxationWithRoot.Constants#getMAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION <em>MAXIMAL DISTANCE FOR TRAVEL EXPENSE DEDUCTION</em>}'.
5032 * <!-- begin-user-doc -->
5033 * <!-- end-user-doc -->
5034 * @return the meta object for the attribute '<em>MAXIMAL DISTANCE FOR TRAVEL EXPENSE DEDUCTION</em>'.
5035 * @see TaxationWithRoot.Constants#getMAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION()
5036 * @see #getConstants()
5037 * @generated
5038 */
5039 EAttribute getConstants_MAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION();
5040
5041 /**
5042 * Returns the meta object for the attribute '{@link TaxationWithRoot.Constants#getMAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION <em>MAXIMAL FLAT DISTANCE FOR TRAVEL EXPENSE DEDUCTION</em>}'.
5043 * <!-- begin-user-doc -->
5044 * <!-- end-user-doc -->
5045 * @return the meta object for the attribute '<em>MAXIMAL FLAT DISTANCE FOR TRAVEL EXPENSE DEDUCTION</em>'.
5046 * @see TaxationWithRoot.Constants#getMAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION()
5047 * @see #getConstants()
5048 * @generated
5049 */
5050 EAttribute getConstants_MAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION();
5051
5052 /**
5053 * Returns the meta object for the attribute '{@link TaxationWithRoot.Constants#getMINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION <em>MINIMAL DISTANCE FOR TRAVEL EXPENSE DEDUCTION</em>}'.
5054 * <!-- begin-user-doc -->
5055 * <!-- end-user-doc -->
5056 * @return the meta object for the attribute '<em>MINIMAL DISTANCE FOR TRAVEL EXPENSE DEDUCTION</em>'.
5057 * @see TaxationWithRoot.Constants#getMINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION()
5058 * @see #getConstants()
5059 * @generated
5060 */
5061 EAttribute getConstants_MINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION();
5062
5063 /**
5064 * Returns the meta object for the attribute '{@link TaxationWithRoot.Constants#getFLAT_RATE_CIM_DAILY <em>FLAT RATE CIM DAILY</em>}'.
5065 * <!-- begin-user-doc -->
5066 * <!-- end-user-doc -->
5067 * @return the meta object for the attribute '<em>FLAT RATE CIM DAILY</em>'.
5068 * @see TaxationWithRoot.Constants#getFLAT_RATE_CIM_DAILY()
5069 * @see #getConstants()
5070 * @generated
5071 */
5072 EAttribute getConstants_FLAT_RATE_CIM_DAILY();
5073
5074 /**
5075 * Returns the meta object for the attribute '{@link TaxationWithRoot.Constants#getFLAT_RATE_CIM_MONTHLY <em>FLAT RATE CIM MONTHLY</em>}'.
5076 * <!-- begin-user-doc -->
5077 * <!-- end-user-doc -->
5078 * @return the meta object for the attribute '<em>FLAT RATE CIM MONTHLY</em>'.
5079 * @see TaxationWithRoot.Constants#getFLAT_RATE_CIM_MONTHLY()
5080 * @see #getConstants()
5081 * @generated
5082 */
5083 EAttribute getConstants_FLAT_RATE_CIM_MONTHLY();
5084
5085 /**
5086 * Returns the meta object for the attribute '{@link TaxationWithRoot.Constants#getFLAT_RATE_CIM_YEARLY <em>FLAT RATE CIM YEARLY</em>}'.
5087 * <!-- begin-user-doc -->
5088 * <!-- end-user-doc -->
5089 * @return the meta object for the attribute '<em>FLAT RATE CIM YEARLY</em>'.
5090 * @see TaxationWithRoot.Constants#getFLAT_RATE_CIM_YEARLY()
5091 * @see #getConstants()
5092 * @generated
5093 */
5094 EAttribute getConstants_FLAT_RATE_CIM_YEARLY();
5095
5096 /**
5097 * Returns the meta object for the attribute '{@link TaxationWithRoot.Constants#getFLAT_RATE_CIP_DAILY <em>FLAT RATE CIP DAILY</em>}'.
5098 * <!-- begin-user-doc -->
5099 * <!-- end-user-doc -->
5100 * @return the meta object for the attribute '<em>FLAT RATE CIP DAILY</em>'.
5101 * @see TaxationWithRoot.Constants#getFLAT_RATE_CIP_DAILY()
5102 * @see #getConstants()
5103 * @generated
5104 */
5105 EAttribute getConstants_FLAT_RATE_CIP_DAILY();
5106
5107 /**
5108 * Returns the meta object for the attribute '{@link TaxationWithRoot.Constants#getFLAT_RATE_CIP_MONTHLY <em>FLAT RATE CIP MONTHLY</em>}'.
5109 * <!-- begin-user-doc -->
5110 * <!-- end-user-doc -->
5111 * @return the meta object for the attribute '<em>FLAT RATE CIP MONTHLY</em>'.
5112 * @see TaxationWithRoot.Constants#getFLAT_RATE_CIP_MONTHLY()
5113 * @see #getConstants()
5114 * @generated
5115 */
5116 EAttribute getConstants_FLAT_RATE_CIP_MONTHLY();
5117
5118 /**
5119 * Returns the meta object for the attribute '{@link TaxationWithRoot.Constants#getFLAT_RATE_CIP_YEARLY <em>FLAT RATE CIP YEARLY</em>}'.
5120 * <!-- begin-user-doc -->
5121 * <!-- end-user-doc -->
5122 * @return the meta object for the attribute '<em>FLAT RATE CIP YEARLY</em>'.
5123 * @see TaxationWithRoot.Constants#getFLAT_RATE_CIP_YEARLY()
5124 * @see #getConstants()
5125 * @generated
5126 */
5127 EAttribute getConstants_FLAT_RATE_CIP_YEARLY();
5128
5129 /**
5130 * Returns the meta object for the attribute '{@link TaxationWithRoot.Constants#getFLAT_RATE_CIS_DAILY <em>FLAT RATE CIS DAILY</em>}'.
5131 * <!-- begin-user-doc -->
5132 * <!-- end-user-doc -->
5133 * @return the meta object for the attribute '<em>FLAT RATE CIS DAILY</em>'.
5134 * @see TaxationWithRoot.Constants#getFLAT_RATE_CIS_DAILY()
5135 * @see #getConstants()
5136 * @generated
5137 */
5138 EAttribute getConstants_FLAT_RATE_CIS_DAILY();
5139
5140 /**
5141 * Returns the meta object for the attribute '{@link TaxationWithRoot.Constants#getFLAT_RATE_CIS_MONTHLY <em>FLAT RATE CIS MONTHLY</em>}'.
5142 * <!-- begin-user-doc -->
5143 * <!-- end-user-doc -->
5144 * @return the meta object for the attribute '<em>FLAT RATE CIS MONTHLY</em>'.
5145 * @see TaxationWithRoot.Constants#getFLAT_RATE_CIS_MONTHLY()
5146 * @see #getConstants()
5147 * @generated
5148 */
5149 EAttribute getConstants_FLAT_RATE_CIS_MONTHLY();
5150
5151 /**
5152 * Returns the meta object for the attribute '{@link TaxationWithRoot.Constants#getFLAT_RATE_CIS_YEARLY <em>FLAT RATE CIS YEARLY</em>}'.
5153 * <!-- begin-user-doc -->
5154 * <!-- end-user-doc -->
5155 * @return the meta object for the attribute '<em>FLAT RATE CIS YEARLY</em>'.
5156 * @see TaxationWithRoot.Constants#getFLAT_RATE_CIS_YEARLY()
5157 * @see #getConstants()
5158 * @generated
5159 */
5160 EAttribute getConstants_FLAT_RATE_CIS_YEARLY();
5161
5162 /**
5163 * Returns the meta object for the attribute '{@link TaxationWithRoot.Constants#getFLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT <em>FLAT RATE FOR TRAVEL EXPENSE PER UNIT</em>}'.
5164 * <!-- begin-user-doc -->
5165 * <!-- end-user-doc -->
5166 * @return the meta object for the attribute '<em>FLAT RATE FOR TRAVEL EXPENSE PER UNIT</em>'.
5167 * @see TaxationWithRoot.Constants#getFLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT()
5168 * @see #getConstants()
5169 * @generated
5170 */
5171 EAttribute getConstants_FLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT();
5172
5173 /**
5174 * Returns the meta object for the attribute '{@link TaxationWithRoot.Constants#getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS <em>MAXIMUM DEDUCTIBLE AMOUNT FOR DS</em>}'.
5175 * <!-- begin-user-doc -->
5176 * <!-- end-user-doc -->
5177 * @return the meta object for the attribute '<em>MAXIMUM DEDUCTIBLE AMOUNT FOR DS</em>'.
5178 * @see TaxationWithRoot.Constants#getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS()
5179 * @see #getConstants()
5180 * @generated
5181 */
5182 EAttribute getConstants_MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS();
5183
5184 /**
5185 * Returns the meta object for the attribute '{@link TaxationWithRoot.Constants#getFLAT_RATE_FOR_MISCELLANEOUS_EXPENSE <em>FLAT RATE FOR MISCELLANEOUS EXPENSE</em>}'.
5186 * <!-- begin-user-doc -->
5187 * <!-- end-user-doc -->
5188 * @return the meta object for the attribute '<em>FLAT RATE FOR MISCELLANEOUS EXPENSE</em>'.
5189 * @see TaxationWithRoot.Constants#getFLAT_RATE_FOR_MISCELLANEOUS_EXPENSE()
5190 * @see #getConstants()
5191 * @generated
5192 */
5193 EAttribute getConstants_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE();
5194
5195 /**
5196 * Returns the meta object for the attribute '{@link TaxationWithRoot.Constants#getDISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE <em>DISABILITY FLAT RATE FOR MISCELLANEOUS EXPENSE</em>}'.
5197 * <!-- begin-user-doc -->
5198 * <!-- end-user-doc -->
5199 * @return the meta object for the attribute '<em>DISABILITY FLAT RATE FOR MISCELLANEOUS EXPENSE</em>'.
5200 * @see TaxationWithRoot.Constants#getDISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE()
5201 * @see #getConstants()
5202 * @generated
5203 */
5204 EAttribute getConstants_DISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE();
5205
5206 /**
5207 * Returns the meta object for the attribute '{@link TaxationWithRoot.Constants#getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE <em>MAXIMUM DEDUCTIBLE AMOUNT FOR ADDITIONAL PENSION AND INSURANCE</em>}'.
5208 * <!-- begin-user-doc -->
5209 * <!-- end-user-doc -->
5210 * @return the meta object for the attribute '<em>MAXIMUM DEDUCTIBLE AMOUNT FOR ADDITIONAL PENSION AND INSURANCE</em>'.
5211 * @see TaxationWithRoot.Constants#getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE()
5212 * @see #getConstants()
5213 * @generated
5214 */
5215 EAttribute getConstants_MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE();
5216
5217 /**
5218 * Returns the meta object for class '{@link TaxationWithRoot.Income_Tax <em>Income Tax</em>}'.
5219 * <!-- begin-user-doc -->
5220 * <!-- end-user-doc -->
5221 * @return the meta object for class '<em>Income Tax</em>'.
5222 * @see TaxationWithRoot.Income_Tax
5223 * @generated
5224 */
5225 EClass getIncome_Tax();
5226
5227 /**
5228 * Returns the meta object for the reference '{@link TaxationWithRoot.Income_Tax#getTaxPayer <em>Tax Payer</em>}'.
5229 * <!-- begin-user-doc -->
5230 * <!-- end-user-doc -->
5231 * @return the meta object for the reference '<em>Tax Payer</em>'.
5232 * @see TaxationWithRoot.Income_Tax#getTaxPayer()
5233 * @see #getIncome_Tax()
5234 * @generated
5235 */
5236 EReference getIncome_Tax_TaxPayer();
5237
5238 /**
5239 * Returns the meta object for the attribute '{@link TaxationWithRoot.Income_Tax#getTax_amount <em>Tax amount</em>}'.
5240 * <!-- begin-user-doc -->
5241 * <!-- end-user-doc -->
5242 * @return the meta object for the attribute '<em>Tax amount</em>'.
5243 * @see TaxationWithRoot.Income_Tax#getTax_amount()
5244 * @see #getIncome_Tax()
5245 * @generated
5246 */
5247 EAttribute getIncome_Tax_Tax_amount();
5248
5249 /**
5250 * Returns the meta object for the attribute '{@link TaxationWithRoot.Income_Tax#getTax_year <em>Tax year</em>}'.
5251 * <!-- begin-user-doc -->
5252 * <!-- end-user-doc -->
5253 * @return the meta object for the attribute '<em>Tax year</em>'.
5254 * @see TaxationWithRoot.Income_Tax#getTax_year()
5255 * @see #getIncome_Tax()
5256 * @generated
5257 */
5258 EAttribute getIncome_Tax_Tax_year();
5259
5260 /**
5261 * Returns the meta object for the attribute '{@link TaxationWithRoot.Income_Tax#getId6 <em>Id6</em>}'.
5262 * <!-- begin-user-doc -->
5263 * <!-- end-user-doc -->
5264 * @return the meta object for the attribute '<em>Id6</em>'.
5265 * @see TaxationWithRoot.Income_Tax#getId6()
5266 * @see #getIncome_Tax()
5267 * @generated
5268 */
5269 EAttribute getIncome_Tax_Id6();
5270
5271 /**
5272 * Returns the meta object for class '{@link TaxationWithRoot.Tax_Payer <em>Tax Payer</em>}'.
5273 * <!-- begin-user-doc -->
5274 * <!-- end-user-doc -->
5275 * @return the meta object for class '<em>Tax Payer</em>'.
5276 * @see TaxationWithRoot.Tax_Payer
5277 * @generated
5278 */
5279 EClass getTax_Payer();
5280
5281 /**
5282 * Returns the meta object for the containment reference list '{@link TaxationWithRoot.Tax_Payer#getDependents <em>Dependents</em>}'.
5283 * <!-- begin-user-doc -->
5284 * <!-- end-user-doc -->
5285 * @return the meta object for the containment reference list '<em>Dependents</em>'.
5286 * @see TaxationWithRoot.Tax_Payer#getDependents()
5287 * @see #getTax_Payer()
5288 * @generated
5289 */
5290 EReference getTax_Payer_Dependents();
5291
5292 /**
5293 * Returns the meta object for the containment reference '{@link TaxationWithRoot.Tax_Payer#getFrom_agent <em>From agent</em>}'.
5294 * <!-- begin-user-doc -->
5295 * <!-- end-user-doc -->
5296 * @return the meta object for the containment reference '<em>From agent</em>'.
5297 * @see TaxationWithRoot.Tax_Payer#getFrom_agent()
5298 * @see #getTax_Payer()
5299 * @generated
5300 */
5301 EReference getTax_Payer_From_agent();
5302
5303 /**
5304 * Returns the meta object for the containment reference list '{@link TaxationWithRoot.Tax_Payer#getIncomes <em>Incomes</em>}'.
5305 * <!-- begin-user-doc -->
5306 * <!-- end-user-doc -->
5307 * @return the meta object for the containment reference list '<em>Incomes</em>'.
5308 * @see TaxationWithRoot.Tax_Payer#getIncomes()
5309 * @see #getTax_Payer()
5310 * @generated
5311 */
5312 EReference getTax_Payer_Incomes();
5313
5314 /**
5315 * Returns the meta object for the containment reference '{@link TaxationWithRoot.Tax_Payer#getFrom_law <em>From law</em>}'.
5316 * <!-- begin-user-doc -->
5317 * <!-- end-user-doc -->
5318 * @return the meta object for the containment reference '<em>From law</em>'.
5319 * @see TaxationWithRoot.Tax_Payer#getFrom_law()
5320 * @see #getTax_Payer()
5321 * @generated
5322 */
5323 EReference getTax_Payer_From_law();
5324
5325 /**
5326 * Returns the meta object for class '{@link TaxationWithRoot.Physical_Person <em>Physical Person</em>}'.
5327 * <!-- begin-user-doc -->
5328 * <!-- end-user-doc -->
5329 * @return the meta object for class '<em>Physical Person</em>'.
5330 * @see TaxationWithRoot.Physical_Person
5331 * @generated
5332 */
5333 EClass getPhysical_Person();
5334
5335 /**
5336 * Returns the meta object for the attribute '{@link TaxationWithRoot.Physical_Person#getSSNo <em>SS No</em>}'.
5337 * <!-- begin-user-doc -->
5338 * <!-- end-user-doc -->
5339 * @return the meta object for the attribute '<em>SS No</em>'.
5340 * @see TaxationWithRoot.Physical_Person#getSSNo()
5341 * @see #getPhysical_Person()
5342 * @generated
5343 */
5344 EAttribute getPhysical_Person_SSNo();
5345
5346 /**
5347 * Returns the meta object for the reference list '{@link TaxationWithRoot.Physical_Person#getAddresses <em>Addresses</em>}'.
5348 * <!-- begin-user-doc -->
5349 * <!-- end-user-doc -->
5350 * @return the meta object for the reference list '<em>Addresses</em>'.
5351 * @see TaxationWithRoot.Physical_Person#getAddresses()
5352 * @see #getPhysical_Person()
5353 * @generated
5354 */
5355 EReference getPhysical_Person_Addresses();
5356
5357 /**
5358 * Returns the meta object for the attribute '{@link TaxationWithRoot.Physical_Person#getBirth_year <em>Birth year</em>}'.
5359 * <!-- begin-user-doc -->
5360 * <!-- end-user-doc -->
5361 * @return the meta object for the attribute '<em>Birth year</em>'.
5362 * @see TaxationWithRoot.Physical_Person#getBirth_year()
5363 * @see #getPhysical_Person()
5364 * @generated
5365 */
5366 EAttribute getPhysical_Person_Birth_year();
5367
5368 /**
5369 * Returns the meta object for the attribute '{@link TaxationWithRoot.Physical_Person#getDisability_percentage <em>Disability percentage</em>}'.
5370 * <!-- begin-user-doc -->
5371 * <!-- end-user-doc -->
5372 * @return the meta object for the attribute '<em>Disability percentage</em>'.
5373 * @see TaxationWithRoot.Physical_Person#getDisability_percentage()
5374 * @see #getPhysical_Person()
5375 * @generated
5376 */
5377 EAttribute getPhysical_Person_Disability_percentage();
5378
5379 /**
5380 * Returns the meta object for the attribute '{@link TaxationWithRoot.Physical_Person#getDisability_type <em>Disability type</em>}'.
5381 * <!-- begin-user-doc -->
5382 * <!-- end-user-doc -->
5383 * @return the meta object for the attribute '<em>Disability type</em>'.
5384 * @see TaxationWithRoot.Physical_Person#getDisability_type()
5385 * @see #getPhysical_Person()
5386 * @generated
5387 */
5388 EAttribute getPhysical_Person_Disability_type();
5389
5390 /**
5391 * Returns the meta object for the attribute '{@link TaxationWithRoot.Physical_Person#getBirth_month <em>Birth month</em>}'.
5392 * <!-- begin-user-doc -->
5393 * <!-- end-user-doc -->
5394 * @return the meta object for the attribute '<em>Birth month</em>'.
5395 * @see TaxationWithRoot.Physical_Person#getBirth_month()
5396 * @see #getPhysical_Person()
5397 * @generated
5398 */
5399 EAttribute getPhysical_Person_Birth_month();
5400
5401 /**
5402 * Returns the meta object for the attribute '{@link TaxationWithRoot.Physical_Person#getBirth_day <em>Birth day</em>}'.
5403 * <!-- begin-user-doc -->
5404 * <!-- end-user-doc -->
5405 * @return the meta object for the attribute '<em>Birth day</em>'.
5406 * @see TaxationWithRoot.Physical_Person#getBirth_day()
5407 * @see #getPhysical_Person()
5408 * @generated
5409 */
5410 EAttribute getPhysical_Person_Birth_day();
5411
5412 /**
5413 * Returns the meta object for the reference list '{@link TaxationWithRoot.Physical_Person#getExpenses <em>Expenses</em>}'.
5414 * <!-- begin-user-doc -->
5415 * <!-- end-user-doc -->
5416 * @return the meta object for the reference list '<em>Expenses</em>'.
5417 * @see TaxationWithRoot.Physical_Person#getExpenses()
5418 * @see #getPhysical_Person()
5419 * @generated
5420 */
5421 EReference getPhysical_Person_Expenses();
5422
5423 /**
5424 * Returns the meta object for the attribute '{@link TaxationWithRoot.Physical_Person#isIs_widower <em>Is widower</em>}'.
5425 * <!-- begin-user-doc -->
5426 * <!-- end-user-doc -->
5427 * @return the meta object for the attribute '<em>Is widower</em>'.
5428 * @see TaxationWithRoot.Physical_Person#isIs_widower()
5429 * @see #getPhysical_Person()
5430 * @generated
5431 */
5432 EAttribute getPhysical_Person_Is_widower();
5433
5434 /**
5435 * Returns the meta object for class '{@link TaxationWithRoot.Address <em>Address</em>}'.
5436 * <!-- begin-user-doc -->
5437 * <!-- end-user-doc -->
5438 * @return the meta object for class '<em>Address</em>'.
5439 * @see TaxationWithRoot.Address
5440 * @generated
5441 */
5442 EClass getAddress();
5443
5444 /**
5445 * Returns the meta object for the attribute '{@link TaxationWithRoot.Address#getCountry <em>Country</em>}'.
5446 * <!-- begin-user-doc -->
5447 * <!-- end-user-doc -->
5448 * @return the meta object for the attribute '<em>Country</em>'.
5449 * @see TaxationWithRoot.Address#getCountry()
5450 * @see #getAddress()
5451 * @generated
5452 */
5453 EAttribute getAddress_Country();
5454
5455 /**
5456 * Returns the meta object for the attribute '{@link TaxationWithRoot.Address#getStreet <em>Street</em>}'.
5457 * <!-- begin-user-doc -->
5458 * <!-- end-user-doc -->
5459 * @return the meta object for the attribute '<em>Street</em>'.
5460 * @see TaxationWithRoot.Address#getStreet()
5461 * @see #getAddress()
5462 * @generated
5463 */
5464 EAttribute getAddress_Street();
5465
5466 /**
5467 * Returns the meta object for the attribute '{@link TaxationWithRoot.Address#getZipCode <em>Zip Code</em>}'.
5468 * <!-- begin-user-doc -->
5469 * <!-- end-user-doc -->
5470 * @return the meta object for the attribute '<em>Zip Code</em>'.
5471 * @see TaxationWithRoot.Address#getZipCode()
5472 * @see #getAddress()
5473 * @generated
5474 */
5475 EAttribute getAddress_ZipCode();
5476
5477 /**
5478 * Returns the meta object for the attribute '{@link TaxationWithRoot.Address#getCity <em>City</em>}'.
5479 * <!-- begin-user-doc -->
5480 * <!-- end-user-doc -->
5481 * @return the meta object for the attribute '<em>City</em>'.
5482 * @see TaxationWithRoot.Address#getCity()
5483 * @see #getAddress()
5484 * @generated
5485 */
5486 EAttribute getAddress_City();
5487
5488 /**
5489 * Returns the meta object for the attribute '{@link TaxationWithRoot.Address#getId2 <em>Id2</em>}'.
5490 * <!-- begin-user-doc -->
5491 * <!-- end-user-doc -->
5492 * @return the meta object for the attribute '<em>Id2</em>'.
5493 * @see TaxationWithRoot.Address#getId2()
5494 * @see #getAddress()
5495 * @generated
5496 */
5497 EAttribute getAddress_Id2();
5498
5499 /**
5500 * Returns the meta object for the reference list '{@link TaxationWithRoot.Address#getTaxPayer <em>Tax Payer</em>}'.
5501 * <!-- begin-user-doc -->
5502 * <!-- end-user-doc -->
5503 * @return the meta object for the reference list '<em>Tax Payer</em>'.
5504 * @see TaxationWithRoot.Address#getTaxPayer()
5505 * @see #getAddress()
5506 * @generated
5507 */
5508 EReference getAddress_TaxPayer();
5509
5510 /**
5511 * Returns the meta object for class '{@link TaxationWithRoot.Expense <em>Expense</em>}'.
5512 * <!-- begin-user-doc -->
5513 * <!-- end-user-doc -->
5514 * @return the meta object for class '<em>Expense</em>'.
5515 * @see TaxationWithRoot.Expense
5516 * @generated
5517 */
5518 EClass getExpense();
5519
5520 /**
5521 * Returns the meta object for the attribute '{@link TaxationWithRoot.Expense#getDeclared_amount <em>Declared amount</em>}'.
5522 * <!-- begin-user-doc -->
5523 * <!-- end-user-doc -->
5524 * @return the meta object for the attribute '<em>Declared amount</em>'.
5525 * @see TaxationWithRoot.Expense#getDeclared_amount()
5526 * @see #getExpense()
5527 * @generated
5528 */
5529 EAttribute getExpense_Declared_amount();
5530
5531 /**
5532 * Returns the meta object for the attribute '{@link TaxationWithRoot.Expense#getExpense_purpose <em>Expense purpose</em>}'.
5533 * <!-- begin-user-doc -->
5534 * <!-- end-user-doc -->
5535 * @return the meta object for the attribute '<em>Expense purpose</em>'.
5536 * @see TaxationWithRoot.Expense#getExpense_purpose()
5537 * @see #getExpense()
5538 * @generated
5539 */
5540 EAttribute getExpense_Expense_purpose();
5541
5542 /**
5543 * Returns the meta object for the reference '{@link TaxationWithRoot.Expense#getDependent <em>Dependent</em>}'.
5544 * <!-- begin-user-doc -->
5545 * <!-- end-user-doc -->
5546 * @return the meta object for the reference '<em>Dependent</em>'.
5547 * @see TaxationWithRoot.Expense#getDependent()
5548 * @see #getExpense()
5549 * @generated
5550 */
5551 EReference getExpense_Dependent();
5552
5553 /**
5554 * Returns the meta object for the reference '{@link TaxationWithRoot.Expense#getFrom_agent <em>From agent</em>}'.
5555 * <!-- begin-user-doc -->
5556 * <!-- end-user-doc -->
5557 * @return the meta object for the reference '<em>From agent</em>'.
5558 * @see TaxationWithRoot.Expense#getFrom_agent()
5559 * @see #getExpense()
5560 * @generated
5561 */
5562 EReference getExpense_From_agent();
5563
5564 /**
5565 * Returns the meta object for the container reference '{@link TaxationWithRoot.Expense#getIncome <em>Income</em>}'.
5566 * <!-- begin-user-doc -->
5567 * <!-- end-user-doc -->
5568 * @return the meta object for the container reference '<em>Income</em>'.
5569 * @see TaxationWithRoot.Expense#getIncome()
5570 * @see #getExpense()
5571 * @generated
5572 */
5573 EReference getExpense_Income();
5574
5575 /**
5576 * Returns the meta object for the attribute '{@link TaxationWithRoot.Expense#getId4 <em>Id4</em>}'.
5577 * <!-- begin-user-doc -->
5578 * <!-- end-user-doc -->
5579 * @return the meta object for the attribute '<em>Id4</em>'.
5580 * @see TaxationWithRoot.Expense#getId4()
5581 * @see #getExpense()
5582 * @generated
5583 */
5584 EAttribute getExpense_Id4();
5585
5586 /**
5587 * Returns the meta object for the reference '{@link TaxationWithRoot.Expense#getBeneficiary <em>Beneficiary</em>}'.
5588 * <!-- begin-user-doc -->
5589 * <!-- end-user-doc -->
5590 * @return the meta object for the reference '<em>Beneficiary</em>'.
5591 * @see TaxationWithRoot.Expense#getBeneficiary()
5592 * @see #getExpense()
5593 * @generated
5594 */
5595 EReference getExpense_Beneficiary();
5596
5597 /**
5598 * Returns the meta object for class '{@link TaxationWithRoot.Dependent <em>Dependent</em>}'.
5599 * <!-- begin-user-doc -->
5600 * <!-- end-user-doc -->
5601 * @return the meta object for class '<em>Dependent</em>'.
5602 * @see TaxationWithRoot.Dependent
5603 * @generated
5604 */
5605 EClass getDependent();
5606
5607 /**
5608 * Returns the meta object for the attribute '{@link TaxationWithRoot.Dependent#getDependent_type <em>Dependent type</em>}'.
5609 * <!-- begin-user-doc -->
5610 * <!-- end-user-doc -->
5611 * @return the meta object for the attribute '<em>Dependent type</em>'.
5612 * @see TaxationWithRoot.Dependent#getDependent_type()
5613 * @see #getDependent()
5614 * @generated
5615 */
5616 EAttribute getDependent_Dependent_type();
5617
5618 /**
5619 * Returns the meta object for the container reference '{@link TaxationWithRoot.Dependent#getResponsible_person <em>Responsible person</em>}'.
5620 * <!-- begin-user-doc -->
5621 * <!-- end-user-doc -->
5622 * @return the meta object for the container reference '<em>Responsible person</em>'.
5623 * @see TaxationWithRoot.Dependent#getResponsible_person()
5624 * @see #getDependent()
5625 * @generated
5626 */
5627 EReference getDependent_Responsible_person();
5628
5629 /**
5630 * Returns the meta object for the attribute '{@link TaxationWithRoot.Dependent#isContinued_studies <em>Continued studies</em>}'.
5631 * <!-- begin-user-doc -->
5632 * <!-- end-user-doc -->
5633 * @return the meta object for the attribute '<em>Continued studies</em>'.
5634 * @see TaxationWithRoot.Dependent#isContinued_studies()
5635 * @see #getDependent()
5636 * @generated
5637 */
5638 EAttribute getDependent_Continued_studies();
5639
5640 /**
5641 * Returns the meta object for the containment reference '{@link TaxationWithRoot.Dependent#getAllowances <em>Allowances</em>}'.
5642 * <!-- begin-user-doc -->
5643 * <!-- end-user-doc -->
5644 * @return the meta object for the containment reference '<em>Allowances</em>'.
5645 * @see TaxationWithRoot.Dependent#getAllowances()
5646 * @see #getDependent()
5647 * @generated
5648 */
5649 EReference getDependent_Allowances();
5650
5651 /**
5652 * Returns the meta object for the container reference '{@link TaxationWithRoot.Dependent#getHousehold <em>Household</em>}'.
5653 * <!-- begin-user-doc -->
5654 * <!-- end-user-doc -->
5655 * @return the meta object for the container reference '<em>Household</em>'.
5656 * @see TaxationWithRoot.Dependent#getHousehold()
5657 * @see #getDependent()
5658 * @generated
5659 */
5660 EReference getDependent_Household();
5661
5662 /**
5663 * Returns the meta object for the reference '{@link TaxationWithRoot.Dependent#getFrom_agent <em>From agent</em>}'.
5664 * <!-- begin-user-doc -->
5665 * <!-- end-user-doc -->
5666 * @return the meta object for the reference '<em>From agent</em>'.
5667 * @see TaxationWithRoot.Dependent#getFrom_agent()
5668 * @see #getDependent()
5669 * @generated
5670 */
5671 EReference getDependent_From_agent();
5672
5673 /**
5674 * Returns the meta object for the reference list '{@link TaxationWithRoot.Dependent#getExpense <em>Expense</em>}'.
5675 * <!-- begin-user-doc -->
5676 * <!-- end-user-doc -->
5677 * @return the meta object for the reference list '<em>Expense</em>'.
5678 * @see TaxationWithRoot.Dependent#getExpense()
5679 * @see #getDependent()
5680 * @generated
5681 */
5682 EReference getDependent_Expense();
5683
5684 /**
5685 * Returns the meta object for class '{@link TaxationWithRoot.External_Allowance <em>External Allowance</em>}'.
5686 * <!-- begin-user-doc -->
5687 * <!-- end-user-doc -->
5688 * @return the meta object for class '<em>External Allowance</em>'.
5689 * @see TaxationWithRoot.External_Allowance
5690 * @generated
5691 */
5692 EClass getExternal_Allowance();
5693
5694 /**
5695 * Returns the meta object for the attribute '{@link TaxationWithRoot.External_Allowance#getGrantor <em>Grantor</em>}'.
5696 * <!-- begin-user-doc -->
5697 * <!-- end-user-doc -->
5698 * @return the meta object for the attribute '<em>Grantor</em>'.
5699 * @see TaxationWithRoot.External_Allowance#getGrantor()
5700 * @see #getExternal_Allowance()
5701 * @generated
5702 */
5703 EAttribute getExternal_Allowance_Grantor();
5704
5705 /**
5706 * Returns the meta object for the attribute '{@link TaxationWithRoot.External_Allowance#getStarting_year <em>Starting year</em>}'.
5707 * <!-- begin-user-doc -->
5708 * <!-- end-user-doc -->
5709 * @return the meta object for the attribute '<em>Starting year</em>'.
5710 * @see TaxationWithRoot.External_Allowance#getStarting_year()
5711 * @see #getExternal_Allowance()
5712 * @generated
5713 */
5714 EAttribute getExternal_Allowance_Starting_year();
5715
5716 /**
5717 * Returns the meta object for the attribute '{@link TaxationWithRoot.External_Allowance#getEnding_year <em>Ending year</em>}'.
5718 * <!-- begin-user-doc -->
5719 * <!-- end-user-doc -->
5720 * @return the meta object for the attribute '<em>Ending year</em>'.
5721 * @see TaxationWithRoot.External_Allowance#getEnding_year()
5722 * @see #getExternal_Allowance()
5723 * @generated
5724 */
5725 EAttribute getExternal_Allowance_Ending_year();
5726
5727 /**
5728 * Returns the meta object for the reference '{@link TaxationWithRoot.External_Allowance#getReciver <em>Reciver</em>}'.
5729 * <!-- begin-user-doc -->
5730 * <!-- end-user-doc -->
5731 * @return the meta object for the reference '<em>Reciver</em>'.
5732 * @see TaxationWithRoot.External_Allowance#getReciver()
5733 * @see #getExternal_Allowance()
5734 * @generated
5735 */
5736 EReference getExternal_Allowance_Reciver();
5737
5738 /**
5739 * Returns the meta object for the attribute '{@link TaxationWithRoot.External_Allowance#getId5 <em>Id5</em>}'.
5740 * <!-- begin-user-doc -->
5741 * <!-- end-user-doc -->
5742 * @return the meta object for the attribute '<em>Id5</em>'.
5743 * @see TaxationWithRoot.External_Allowance#getId5()
5744 * @see #getExternal_Allowance()
5745 * @generated
5746 */
5747 EAttribute getExternal_Allowance_Id5();
5748
5749 /**
5750 * Returns the meta object for the container reference '{@link TaxationWithRoot.External_Allowance#getPerson <em>Person</em>}'.
5751 * <!-- begin-user-doc -->
5752 * <!-- end-user-doc -->
5753 * @return the meta object for the container reference '<em>Person</em>'.
5754 * @see TaxationWithRoot.External_Allowance#getPerson()
5755 * @see #getExternal_Allowance()
5756 * @generated
5757 */
5758 EReference getExternal_Allowance_Person();
5759
5760 /**
5761 * Returns the meta object for class '{@link TaxationWithRoot.Household <em>Household</em>}'.
5762 * <!-- begin-user-doc -->
5763 * <!-- end-user-doc -->
5764 * @return the meta object for class '<em>Household</em>'.
5765 * @see TaxationWithRoot.Household
5766 * @generated
5767 */
5768 EClass getHousehold();
5769
5770 /**
5771 * Returns the meta object for the containment reference '{@link TaxationWithRoot.Household#getParents <em>Parents</em>}'.
5772 * <!-- begin-user-doc -->
5773 * <!-- end-user-doc -->
5774 * @return the meta object for the containment reference '<em>Parents</em>'.
5775 * @see TaxationWithRoot.Household#getParents()
5776 * @see #getHousehold()
5777 * @generated
5778 */
5779 EReference getHousehold_Parents();
5780
5781 /**
5782 * Returns the meta object for the attribute '{@link TaxationWithRoot.Household#getId1 <em>Id1</em>}'.
5783 * <!-- begin-user-doc -->
5784 * <!-- end-user-doc -->
5785 * @return the meta object for the attribute '<em>Id1</em>'.
5786 * @see TaxationWithRoot.Household#getId1()
5787 * @see #getHousehold()
5788 * @generated
5789 */
5790 EAttribute getHousehold_Id1();
5791
5792 /**
5793 * Returns the meta object for the containment reference list '{@link TaxationWithRoot.Household#getChildren <em>Children</em>}'.
5794 * <!-- begin-user-doc -->
5795 * <!-- end-user-doc -->
5796 * @return the meta object for the containment reference list '<em>Children</em>'.
5797 * @see TaxationWithRoot.Household#getChildren()
5798 * @see #getHousehold()
5799 * @generated
5800 */
5801 EReference getHousehold_Children();
5802
5803 /**
5804 * Returns the meta object for class '{@link TaxationWithRoot.Legal_Union_Record <em>Legal Union Record</em>}'.
5805 * <!-- begin-user-doc -->
5806 * <!-- end-user-doc -->
5807 * @return the meta object for class '<em>Legal Union Record</em>'.
5808 * @see TaxationWithRoot.Legal_Union_Record
5809 * @generated
5810 */
5811 EClass getLegal_Union_Record();
5812
5813 /**
5814 * Returns the meta object for the attribute '{@link TaxationWithRoot.Legal_Union_Record#getStart_year <em>Start year</em>}'.
5815 * <!-- begin-user-doc -->
5816 * <!-- end-user-doc -->
5817 * @return the meta object for the attribute '<em>Start year</em>'.
5818 * @see TaxationWithRoot.Legal_Union_Record#getStart_year()
5819 * @see #getLegal_Union_Record()
5820 * @generated
5821 */
5822 EAttribute getLegal_Union_Record_Start_year();
5823
5824 /**
5825 * Returns the meta object for the attribute '{@link TaxationWithRoot.Legal_Union_Record#getEnd_year <em>End year</em>}'.
5826 * <!-- begin-user-doc -->
5827 * <!-- end-user-doc -->
5828 * @return the meta object for the attribute '<em>End year</em>'.
5829 * @see TaxationWithRoot.Legal_Union_Record#getEnd_year()
5830 * @see #getLegal_Union_Record()
5831 * @generated
5832 */
5833 EAttribute getLegal_Union_Record_End_year();
5834
5835 /**
5836 * Returns the meta object for the attribute '{@link TaxationWithRoot.Legal_Union_Record#getSeparation_cause <em>Separation cause</em>}'.
5837 * <!-- begin-user-doc -->
5838 * <!-- end-user-doc -->
5839 * @return the meta object for the attribute '<em>Separation cause</em>'.
5840 * @see TaxationWithRoot.Legal_Union_Record#getSeparation_cause()
5841 * @see #getLegal_Union_Record()
5842 * @generated
5843 */
5844 EAttribute getLegal_Union_Record_Separation_cause();
5845
5846 /**
5847 * Returns the meta object for the containment reference '{@link TaxationWithRoot.Legal_Union_Record#getIndividual_A <em>Individual A</em>}'.
5848 * <!-- begin-user-doc -->
5849 * <!-- end-user-doc -->
5850 * @return the meta object for the containment reference '<em>Individual A</em>'.
5851 * @see TaxationWithRoot.Legal_Union_Record#getIndividual_A()
5852 * @see #getLegal_Union_Record()
5853 * @generated
5854 */
5855 EReference getLegal_Union_Record_Individual_A();
5856
5857 /**
5858 * Returns the meta object for the containment reference list '{@link TaxationWithRoot.Legal_Union_Record#getIndividual_B <em>Individual B</em>}'.
5859 * <!-- begin-user-doc -->
5860 * <!-- end-user-doc -->
5861 * @return the meta object for the containment reference list '<em>Individual B</em>'.
5862 * @see TaxationWithRoot.Legal_Union_Record#getIndividual_B()
5863 * @see #getLegal_Union_Record()
5864 * @generated
5865 */
5866 EReference getLegal_Union_Record_Individual_B();
5867
5868 /**
5869 * Returns the meta object for the containment reference list '{@link TaxationWithRoot.Legal_Union_Record#getProperties <em>Properties</em>}'.
5870 * <!-- begin-user-doc -->
5871 * <!-- end-user-doc -->
5872 * @return the meta object for the containment reference list '<em>Properties</em>'.
5873 * @see TaxationWithRoot.Legal_Union_Record#getProperties()
5874 * @see #getLegal_Union_Record()
5875 * @generated
5876 */
5877 EReference getLegal_Union_Record_Properties();
5878
5879 /**
5880 * Returns the meta object for the attribute '{@link TaxationWithRoot.Legal_Union_Record#isMutual_agreement <em>Mutual agreement</em>}'.
5881 * <!-- begin-user-doc -->
5882 * <!-- end-user-doc -->
5883 * @return the meta object for the attribute '<em>Mutual agreement</em>'.
5884 * @see TaxationWithRoot.Legal_Union_Record#isMutual_agreement()
5885 * @see #getLegal_Union_Record()
5886 * @generated
5887 */
5888 EAttribute getLegal_Union_Record_Mutual_agreement();
5889
5890 /**
5891 * Returns the meta object for the attribute '{@link TaxationWithRoot.Legal_Union_Record#getId9 <em>Id9</em>}'.
5892 * <!-- begin-user-doc -->
5893 * <!-- end-user-doc -->
5894 * @return the meta object for the attribute '<em>Id9</em>'.
5895 * @see TaxationWithRoot.Legal_Union_Record#getId9()
5896 * @see #getLegal_Union_Record()
5897 * @generated
5898 */
5899 EAttribute getLegal_Union_Record_Id9();
5900
5901 /**
5902 * Returns the meta object for the container reference '{@link TaxationWithRoot.Legal_Union_Record#getHousehold <em>Household</em>}'.
5903 * <!-- begin-user-doc -->
5904 * <!-- end-user-doc -->
5905 * @return the meta object for the container reference '<em>Household</em>'.
5906 * @see TaxationWithRoot.Legal_Union_Record#getHousehold()
5907 * @see #getLegal_Union_Record()
5908 * @generated
5909 */
5910 EReference getLegal_Union_Record_Household();
5911
5912 /**
5913 * Returns the meta object for class '{@link TaxationWithRoot.Tax_Property <em>Tax Property</em>}'.
5914 * <!-- begin-user-doc -->
5915 * <!-- end-user-doc -->
5916 * @return the meta object for class '<em>Tax Property</em>'.
5917 * @see TaxationWithRoot.Tax_Property
5918 * @generated
5919 */
5920 EClass getTax_Property();
5921
5922 /**
5923 * Returns the meta object for the attribute '{@link TaxationWithRoot.Tax_Property#getStarting_year <em>Starting year</em>}'.
5924 * <!-- begin-user-doc -->
5925 * <!-- end-user-doc -->
5926 * @return the meta object for the attribute '<em>Starting year</em>'.
5927 * @see TaxationWithRoot.Tax_Property#getStarting_year()
5928 * @see #getTax_Property()
5929 * @generated
5930 */
5931 EAttribute getTax_Property_Starting_year();
5932
5933 /**
5934 * Returns the meta object for the attribute '{@link TaxationWithRoot.Tax_Property#getId10 <em>Id10</em>}'.
5935 * <!-- begin-user-doc -->
5936 * <!-- end-user-doc -->
5937 * @return the meta object for the attribute '<em>Id10</em>'.
5938 * @see TaxationWithRoot.Tax_Property#getId10()
5939 * @see #getTax_Property()
5940 * @generated
5941 */
5942 EAttribute getTax_Property_Id10();
5943
5944 /**
5945 * Returns the meta object for the container reference '{@link TaxationWithRoot.Tax_Property#getUnion_record <em>Union record</em>}'.
5946 * <!-- begin-user-doc -->
5947 * <!-- end-user-doc -->
5948 * @return the meta object for the container reference '<em>Union record</em>'.
5949 * @see TaxationWithRoot.Tax_Property#getUnion_record()
5950 * @see #getTax_Property()
5951 * @generated
5952 */
5953 EReference getTax_Property_Union_record();
5954
5955 /**
5956 * Returns the meta object for class '{@link TaxationWithRoot.Tax_Case <em>Tax Case</em>}'.
5957 * <!-- begin-user-doc -->
5958 * <!-- end-user-doc -->
5959 * @return the meta object for class '<em>Tax Case</em>'.
5960 * @see TaxationWithRoot.Tax_Case
5961 * @generated
5962 */
5963 EClass getTax_Case();
5964
5965 /**
5966 * Returns the meta object for class '{@link TaxationWithRoot.FromAgent <em>From Agent</em>}'.
5967 * <!-- begin-user-doc -->
5968 * <!-- end-user-doc -->
5969 * @return the meta object for class '<em>From Agent</em>'.
5970 * @see TaxationWithRoot.FromAgent
5971 * @generated
5972 */
5973 EClass getFromAgent();
5974
5975 /**
5976 * Returns the meta object for the container reference '{@link TaxationWithRoot.FromAgent#getTaxPayer <em>Tax Payer</em>}'.
5977 * <!-- begin-user-doc -->
5978 * <!-- end-user-doc -->
5979 * @return the meta object for the container reference '<em>Tax Payer</em>'.
5980 * @see TaxationWithRoot.FromAgent#getTaxPayer()
5981 * @see #getFromAgent()
5982 * @generated
5983 */
5984 EReference getFromAgent_TaxPayer();
5985
5986 /**
5987 * Returns the meta object for the attribute '{@link TaxationWithRoot.FromAgent#isIs_dependent_eligible_for_CE_Not_In_Houshold_Children_Care <em>Is dependent eligible for CE Not In Houshold Children Care</em>}'.
5988 * <!-- begin-user-doc -->
5989 * <!-- end-user-doc -->
5990 * @return the meta object for the attribute '<em>Is dependent eligible for CE Not In Houshold Children Care</em>'.
5991 * @see TaxationWithRoot.FromAgent#isIs_dependent_eligible_for_CE_Not_In_Houshold_Children_Care()
5992 * @see #getFromAgent()
5993 * @generated
5994 */
5995 EAttribute getFromAgent_Is_dependent_eligible_for_CE_Not_In_Houshold_Children_Care();
5996
5997 /**
5998 * Returns the meta object for the reference '{@link TaxationWithRoot.FromAgent#getExpense <em>Expense</em>}'.
5999 * <!-- begin-user-doc -->
6000 * <!-- end-user-doc -->
6001 * @return the meta object for the reference '<em>Expense</em>'.
6002 * @see TaxationWithRoot.FromAgent#getExpense()
6003 * @see #getFromAgent()
6004 * @generated
6005 */
6006 EReference getFromAgent_Expense();
6007
6008 /**
6009 * Returns the meta object for the attribute '{@link TaxationWithRoot.FromAgent#isIs_eligible_debt <em>Is eligible debt</em>}'.
6010 * <!-- begin-user-doc -->
6011 * <!-- end-user-doc -->
6012 * @return the meta object for the attribute '<em>Is eligible debt</em>'.
6013 * @see TaxationWithRoot.FromAgent#isIs_eligible_debt()
6014 * @see #getFromAgent()
6015 * @generated
6016 */
6017 EAttribute getFromAgent_Is_eligible_debt();
6018
6019 /**
6020 * Returns the meta object for the reference '{@link TaxationWithRoot.FromAgent#getDependent <em>Dependent</em>}'.
6021 * <!-- begin-user-doc -->
6022 * <!-- end-user-doc -->
6023 * @return the meta object for the reference '<em>Dependent</em>'.
6024 * @see TaxationWithRoot.FromAgent#getDependent()
6025 * @see #getFromAgent()
6026 * @generated
6027 */
6028 EReference getFromAgent_Dependent();
6029
6030 /**
6031 * Returns the meta object for class '{@link TaxationWithRoot.Income <em>Income</em>}'.
6032 * <!-- begin-user-doc -->
6033 * <!-- end-user-doc -->
6034 * @return the meta object for class '<em>Income</em>'.
6035 * @see TaxationWithRoot.Income
6036 * @generated
6037 */
6038 EClass getIncome();
6039
6040 /**
6041 * Returns the meta object for the attribute '{@link TaxationWithRoot.Income#getIncome_amount <em>Income amount</em>}'.
6042 * <!-- begin-user-doc -->
6043 * <!-- end-user-doc -->
6044 * @return the meta object for the attribute '<em>Income amount</em>'.
6045 * @see TaxationWithRoot.Income#getIncome_amount()
6046 * @see #getIncome()
6047 * @generated
6048 */
6049 EAttribute getIncome_Income_amount();
6050
6051 /**
6052 * Returns the meta object for the containment reference '{@link TaxationWithRoot.Income#getIncome_type <em>Income type</em>}'.
6053 * <!-- begin-user-doc -->
6054 * <!-- end-user-doc -->
6055 * @return the meta object for the containment reference '<em>Income type</em>'.
6056 * @see TaxationWithRoot.Income#getIncome_type()
6057 * @see #getIncome()
6058 * @generated
6059 */
6060 EReference getIncome_Income_type();
6061
6062 /**
6063 * Returns the meta object for the containment reference '{@link TaxationWithRoot.Income#getTax_card <em>Tax card</em>}'.
6064 * <!-- begin-user-doc -->
6065 * <!-- end-user-doc -->
6066 * @return the meta object for the containment reference '<em>Tax card</em>'.
6067 * @see TaxationWithRoot.Income#getTax_card()
6068 * @see #getIncome()
6069 * @generated
6070 */
6071 EReference getIncome_Tax_card();
6072
6073 /**
6074 * Returns the meta object for the attribute '{@link TaxationWithRoot.Income#getTax_liability <em>Tax liability</em>}'.
6075 * <!-- begin-user-doc -->
6076 * <!-- end-user-doc -->
6077 * @return the meta object for the attribute '<em>Tax liability</em>'.
6078 * @see TaxationWithRoot.Income#getTax_liability()
6079 * @see #getIncome()
6080 * @generated
6081 */
6082 EAttribute getIncome_Tax_liability();
6083
6084 /**
6085 * Returns the meta object for the container reference '{@link TaxationWithRoot.Income#getTaxPayer <em>Tax Payer</em>}'.
6086 * <!-- begin-user-doc -->
6087 * <!-- end-user-doc -->
6088 * @return the meta object for the container reference '<em>Tax Payer</em>'.
6089 * @see TaxationWithRoot.Income#getTaxPayer()
6090 * @see #getIncome()
6091 * @generated
6092 */
6093 EReference getIncome_TaxPayer();
6094
6095 /**
6096 * Returns the meta object for the containment reference list '{@link TaxationWithRoot.Income#getDetails <em>Details</em>}'.
6097 * <!-- begin-user-doc -->
6098 * <!-- end-user-doc -->
6099 * @return the meta object for the containment reference list '<em>Details</em>'.
6100 * @see TaxationWithRoot.Income#getDetails()
6101 * @see #getIncome()
6102 * @generated
6103 */
6104 EReference getIncome_Details();
6105
6106 /**
6107 * Returns the meta object for the attribute '{@link TaxationWithRoot.Income#getNum <em>Num</em>}'.
6108 * <!-- begin-user-doc -->
6109 * <!-- end-user-doc -->
6110 * @return the meta object for the attribute '<em>Num</em>'.
6111 * @see TaxationWithRoot.Income#getNum()
6112 * @see #getIncome()
6113 * @generated
6114 */
6115 EAttribute getIncome_Num();
6116
6117 /**
6118 * Returns the meta object for the containment reference list '{@link TaxationWithRoot.Income#getExpenses <em>Expenses</em>}'.
6119 * <!-- begin-user-doc -->
6120 * <!-- end-user-doc -->
6121 * @return the meta object for the containment reference list '<em>Expenses</em>'.
6122 * @see TaxationWithRoot.Income#getExpenses()
6123 * @see #getIncome()
6124 * @generated
6125 */
6126 EReference getIncome_Expenses();
6127
6128 /**
6129 * Returns the meta object for class '{@link TaxationWithRoot.Income_Type <em>Income Type</em>}'.
6130 * <!-- begin-user-doc -->
6131 * <!-- end-user-doc -->
6132 * @return the meta object for class '<em>Income Type</em>'.
6133 * @see TaxationWithRoot.Income_Type
6134 * @generated
6135 */
6136 EClass getIncome_Type();
6137
6138 /**
6139 * Returns the meta object for the attribute '{@link TaxationWithRoot.Income_Type#getId8 <em>Id8</em>}'.
6140 * <!-- begin-user-doc -->
6141 * <!-- end-user-doc -->
6142 * @return the meta object for the attribute '<em>Id8</em>'.
6143 * @see TaxationWithRoot.Income_Type#getId8()
6144 * @see #getIncome_Type()
6145 * @generated
6146 */
6147 EAttribute getIncome_Type_Id8();
6148
6149 /**
6150 * Returns the meta object for the container reference '{@link TaxationWithRoot.Income_Type#getIncome <em>Income</em>}'.
6151 * <!-- begin-user-doc -->
6152 * <!-- end-user-doc -->
6153 * @return the meta object for the container reference '<em>Income</em>'.
6154 * @see TaxationWithRoot.Income_Type#getIncome()
6155 * @see #getIncome_Type()
6156 * @generated
6157 */
6158 EReference getIncome_Type_Income();
6159
6160 /**
6161 * Returns the meta object for class '{@link TaxationWithRoot.Tax_Card <em>Tax Card</em>}'.
6162 * <!-- begin-user-doc -->
6163 * <!-- end-user-doc -->
6164 * @return the meta object for class '<em>Tax Card</em>'.
6165 * @see TaxationWithRoot.Tax_Card
6166 * @generated
6167 */
6168 EClass getTax_Card();
6169
6170 /**
6171 * Returns the meta object for the attribute '{@link TaxationWithRoot.Tax_Card#getCard_identifier <em>Card identifier</em>}'.
6172 * <!-- begin-user-doc -->
6173 * <!-- end-user-doc -->
6174 * @return the meta object for the attribute '<em>Card identifier</em>'.
6175 * @see TaxationWithRoot.Tax_Card#getCard_identifier()
6176 * @see #getTax_Card()
6177 * @generated
6178 */
6179 EAttribute getTax_Card_Card_identifier();
6180
6181 /**
6182 * Returns the meta object for the attribute '{@link TaxationWithRoot.Tax_Card#getTax_office <em>Tax office</em>}'.
6183 * <!-- begin-user-doc -->
6184 * <!-- end-user-doc -->
6185 * @return the meta object for the attribute '<em>Tax office</em>'.
6186 * @see TaxationWithRoot.Tax_Card#getTax_office()
6187 * @see #getTax_Card()
6188 * @generated
6189 */
6190 EAttribute getTax_Card_Tax_office();
6191
6192 /**
6193 * Returns the meta object for the attribute '{@link TaxationWithRoot.Tax_Card#getPercentage_of_witholding <em>Percentage of witholding</em>}'.
6194 * <!-- begin-user-doc -->
6195 * <!-- end-user-doc -->
6196 * @return the meta object for the attribute '<em>Percentage of witholding</em>'.
6197 * @see TaxationWithRoot.Tax_Card#getPercentage_of_witholding()
6198 * @see #getTax_Card()
6199 * @generated
6200 */
6201 EAttribute getTax_Card_Percentage_of_witholding();
6202
6203 /**
6204 * Returns the meta object for the attribute list '{@link TaxationWithRoot.Tax_Card#getTax_payers_name_surname <em>Tax payers name surname</em>}'.
6205 * <!-- begin-user-doc -->
6206 * <!-- end-user-doc -->
6207 * @return the meta object for the attribute list '<em>Tax payers name surname</em>'.
6208 * @see TaxationWithRoot.Tax_Card#getTax_payers_name_surname()
6209 * @see #getTax_Card()
6210 * @generated
6211 */
6212 EAttribute getTax_Card_Tax_payers_name_surname();
6213
6214 /**
6215 * Returns the meta object for the attribute list '{@link TaxationWithRoot.Tax_Card#getTax_payers_partner_name_surname <em>Tax payers partner name surname</em>}'.
6216 * <!-- begin-user-doc -->
6217 * <!-- end-user-doc -->
6218 * @return the meta object for the attribute list '<em>Tax payers partner name surname</em>'.
6219 * @see TaxationWithRoot.Tax_Card#getTax_payers_partner_name_surname()
6220 * @see #getTax_Card()
6221 * @generated
6222 */
6223 EAttribute getTax_Card_Tax_payers_partner_name_surname();
6224
6225 /**
6226 * Returns the meta object for the reference '{@link TaxationWithRoot.Tax_Card#getTax_payers_address <em>Tax payers address</em>}'.
6227 * <!-- begin-user-doc -->
6228 * <!-- end-user-doc -->
6229 * @return the meta object for the reference '<em>Tax payers address</em>'.
6230 * @see TaxationWithRoot.Tax_Card#getTax_payers_address()
6231 * @see #getTax_Card()
6232 * @generated
6233 */
6234 EReference getTax_Card_Tax_payers_address();
6235
6236 /**
6237 * Returns the meta object for the attribute '{@link TaxationWithRoot.Tax_Card#getJobs_Employer_SSNo <em>Jobs Employer SS No</em>}'.
6238 * <!-- begin-user-doc -->
6239 * <!-- end-user-doc -->
6240 * @return the meta object for the attribute '<em>Jobs Employer SS No</em>'.
6241 * @see TaxationWithRoot.Tax_Card#getJobs_Employer_SSNo()
6242 * @see #getTax_Card()
6243 * @generated
6244 */
6245 EAttribute getTax_Card_Jobs_Employer_SSNo();
6246
6247 /**
6248 * Returns the meta object for the attribute '{@link TaxationWithRoot.Tax_Card#getJobs_employers_name <em>Jobs employers name</em>}'.
6249 * <!-- begin-user-doc -->
6250 * <!-- end-user-doc -->
6251 * @return the meta object for the attribute '<em>Jobs employers name</em>'.
6252 * @see TaxationWithRoot.Tax_Card#getJobs_employers_name()
6253 * @see #getTax_Card()
6254 * @generated
6255 */
6256 EAttribute getTax_Card_Jobs_employers_name();
6257
6258 /**
6259 * Returns the meta object for the attribute '{@link TaxationWithRoot.Tax_Card#getJobs_activity_type <em>Jobs activity type</em>}'.
6260 * <!-- begin-user-doc -->
6261 * <!-- end-user-doc -->
6262 * @return the meta object for the attribute '<em>Jobs activity type</em>'.
6263 * @see TaxationWithRoot.Tax_Card#getJobs_activity_type()
6264 * @see #getTax_Card()
6265 * @generated
6266 */
6267 EAttribute getTax_Card_Jobs_activity_type();
6268
6269 /**
6270 * Returns the meta object for the attribute '{@link TaxationWithRoot.Tax_Card#getJobs_place_of_work <em>Jobs place of work</em>}'.
6271 * <!-- begin-user-doc -->
6272 * <!-- end-user-doc -->
6273 * @return the meta object for the attribute '<em>Jobs place of work</em>'.
6274 * @see TaxationWithRoot.Tax_Card#getJobs_place_of_work()
6275 * @see #getTax_Card()
6276 * @generated
6277 */
6278 EAttribute getTax_Card_Jobs_place_of_work();
6279
6280 /**
6281 * Returns the meta object for the attribute '{@link TaxationWithRoot.Tax_Card#getDeduction_FD_daily <em>Deduction FD daily</em>}'.
6282 * <!-- begin-user-doc -->
6283 * <!-- end-user-doc -->
6284 * @return the meta object for the attribute '<em>Deduction FD daily</em>'.
6285 * @see TaxationWithRoot.Tax_Card#getDeduction_FD_daily()
6286 * @see #getTax_Card()
6287 * @generated
6288 */
6289 EAttribute getTax_Card_Deduction_FD_daily();
6290
6291 /**
6292 * Returns the meta object for the attribute '{@link TaxationWithRoot.Tax_Card#getDeduction_FD_monthly <em>Deduction FD monthly</em>}'.
6293 * <!-- begin-user-doc -->
6294 * <!-- end-user-doc -->
6295 * @return the meta object for the attribute '<em>Deduction FD monthly</em>'.
6296 * @see TaxationWithRoot.Tax_Card#getDeduction_FD_monthly()
6297 * @see #getTax_Card()
6298 * @generated
6299 */
6300 EAttribute getTax_Card_Deduction_FD_monthly();
6301
6302 /**
6303 * Returns the meta object for the attribute '{@link TaxationWithRoot.Tax_Card#getDeduction_AC_daily <em>Deduction AC daily</em>}'.
6304 * <!-- begin-user-doc -->
6305 * <!-- end-user-doc -->
6306 * @return the meta object for the attribute '<em>Deduction AC daily</em>'.
6307 * @see TaxationWithRoot.Tax_Card#getDeduction_AC_daily()
6308 * @see #getTax_Card()
6309 * @generated
6310 */
6311 EAttribute getTax_Card_Deduction_AC_daily();
6312
6313 /**
6314 * Returns the meta object for the attribute '{@link TaxationWithRoot.Tax_Card#getDeduction_AC_monthly <em>Deduction AC monthly</em>}'.
6315 * <!-- begin-user-doc -->
6316 * <!-- end-user-doc -->
6317 * @return the meta object for the attribute '<em>Deduction AC monthly</em>'.
6318 * @see TaxationWithRoot.Tax_Card#getDeduction_AC_monthly()
6319 * @see #getTax_Card()
6320 * @generated
6321 */
6322 EAttribute getTax_Card_Deduction_AC_monthly();
6323
6324 /**
6325 * Returns the meta object for the attribute '{@link TaxationWithRoot.Tax_Card#getDeduction_AC_yearly <em>Deduction AC yearly</em>}'.
6326 * <!-- begin-user-doc -->
6327 * <!-- end-user-doc -->
6328 * @return the meta object for the attribute '<em>Deduction AC yearly</em>'.
6329 * @see TaxationWithRoot.Tax_Card#getDeduction_AC_yearly()
6330 * @see #getTax_Card()
6331 * @generated
6332 */
6333 EAttribute getTax_Card_Deduction_AC_yearly();
6334
6335 /**
6336 * Returns the meta object for the attribute '{@link TaxationWithRoot.Tax_Card#getDeduction_CE_daily <em>Deduction CE daily</em>}'.
6337 * <!-- begin-user-doc -->
6338 * <!-- end-user-doc -->
6339 * @return the meta object for the attribute '<em>Deduction CE daily</em>'.
6340 * @see TaxationWithRoot.Tax_Card#getDeduction_CE_daily()
6341 * @see #getTax_Card()
6342 * @generated
6343 */
6344 EAttribute getTax_Card_Deduction_CE_daily();
6345
6346 /**
6347 * Returns the meta object for the attribute '{@link TaxationWithRoot.Tax_Card#getDeduction_CE_monthly <em>Deduction CE monthly</em>}'.
6348 * <!-- begin-user-doc -->
6349 * <!-- end-user-doc -->
6350 * @return the meta object for the attribute '<em>Deduction CE monthly</em>'.
6351 * @see TaxationWithRoot.Tax_Card#getDeduction_CE_monthly()
6352 * @see #getTax_Card()
6353 * @generated
6354 */
6355 EAttribute getTax_Card_Deduction_CE_monthly();
6356
6357 /**
6358 * Returns the meta object for the attribute '{@link TaxationWithRoot.Tax_Card#getDeduction_CE_yearly <em>Deduction CE yearly</em>}'.
6359 * <!-- begin-user-doc -->
6360 * <!-- end-user-doc -->
6361 * @return the meta object for the attribute '<em>Deduction CE yearly</em>'.
6362 * @see TaxationWithRoot.Tax_Card#getDeduction_CE_yearly()
6363 * @see #getTax_Card()
6364 * @generated
6365 */
6366 EAttribute getTax_Card_Deduction_CE_yearly();
6367
6368 /**
6369 * Returns the meta object for the attribute '{@link TaxationWithRoot.Tax_Card#getDeduction_DS_daily <em>Deduction DS daily</em>}'.
6370 * <!-- begin-user-doc -->
6371 * <!-- end-user-doc -->
6372 * @return the meta object for the attribute '<em>Deduction DS daily</em>'.
6373 * @see TaxationWithRoot.Tax_Card#getDeduction_DS_daily()
6374 * @see #getTax_Card()
6375 * @generated
6376 */
6377 EAttribute getTax_Card_Deduction_DS_daily();
6378
6379 /**
6380 * Returns the meta object for the attribute '{@link TaxationWithRoot.Tax_Card#getDeduction_DS_monthly <em>Deduction DS monthly</em>}'.
6381 * <!-- begin-user-doc -->
6382 * <!-- end-user-doc -->
6383 * @return the meta object for the attribute '<em>Deduction DS monthly</em>'.
6384 * @see TaxationWithRoot.Tax_Card#getDeduction_DS_monthly()
6385 * @see #getTax_Card()
6386 * @generated
6387 */
6388 EAttribute getTax_Card_Deduction_DS_monthly();
6389
6390 /**
6391 * Returns the meta object for the attribute '{@link TaxationWithRoot.Tax_Card#getDeduction_FO_daily <em>Deduction FO daily</em>}'.
6392 * <!-- begin-user-doc -->
6393 * <!-- end-user-doc -->
6394 * @return the meta object for the attribute '<em>Deduction FO daily</em>'.
6395 * @see TaxationWithRoot.Tax_Card#getDeduction_FO_daily()
6396 * @see #getTax_Card()
6397 * @generated
6398 */
6399 EAttribute getTax_Card_Deduction_FO_daily();
6400
6401 /**
6402 * Returns the meta object for the attribute '{@link TaxationWithRoot.Tax_Card#getDeduction_FO_monthly <em>Deduction FO monthly</em>}'.
6403 * <!-- begin-user-doc -->
6404 * <!-- end-user-doc -->
6405 * @return the meta object for the attribute '<em>Deduction FO monthly</em>'.
6406 * @see TaxationWithRoot.Tax_Card#getDeduction_FO_monthly()
6407 * @see #getTax_Card()
6408 * @generated
6409 */
6410 EAttribute getTax_Card_Deduction_FO_monthly();
6411
6412 /**
6413 * Returns the meta object for the attribute '{@link TaxationWithRoot.Tax_Card#getDeduction_FO_yearly <em>Deduction FO yearly</em>}'.
6414 * <!-- begin-user-doc -->
6415 * <!-- end-user-doc -->
6416 * @return the meta object for the attribute '<em>Deduction FO yearly</em>'.
6417 * @see TaxationWithRoot.Tax_Card#getDeduction_FO_yearly()
6418 * @see #getTax_Card()
6419 * @generated
6420 */
6421 EAttribute getTax_Card_Deduction_FO_yearly();
6422
6423 /**
6424 * Returns the meta object for the attribute '{@link TaxationWithRoot.Tax_Card#getCredit_CIS_daily <em>Credit CIS daily</em>}'.
6425 * <!-- begin-user-doc -->
6426 * <!-- end-user-doc -->
6427 * @return the meta object for the attribute '<em>Credit CIS daily</em>'.
6428 * @see TaxationWithRoot.Tax_Card#getCredit_CIS_daily()
6429 * @see #getTax_Card()
6430 * @generated
6431 */
6432 EAttribute getTax_Card_Credit_CIS_daily();
6433
6434 /**
6435 * Returns the meta object for the attribute '{@link TaxationWithRoot.Tax_Card#getCredit_CIS_monthly <em>Credit CIS monthly</em>}'.
6436 * <!-- begin-user-doc -->
6437 * <!-- end-user-doc -->
6438 * @return the meta object for the attribute '<em>Credit CIS monthly</em>'.
6439 * @see TaxationWithRoot.Tax_Card#getCredit_CIS_monthly()
6440 * @see #getTax_Card()
6441 * @generated
6442 */
6443 EAttribute getTax_Card_Credit_CIS_monthly();
6444
6445 /**
6446 * Returns the meta object for the attribute '{@link TaxationWithRoot.Tax_Card#getCredit_CIM_daily <em>Credit CIM daily</em>}'.
6447 * <!-- begin-user-doc -->
6448 * <!-- end-user-doc -->
6449 * @return the meta object for the attribute '<em>Credit CIM daily</em>'.
6450 * @see TaxationWithRoot.Tax_Card#getCredit_CIM_daily()
6451 * @see #getTax_Card()
6452 * @generated
6453 */
6454 EAttribute getTax_Card_Credit_CIM_daily();
6455
6456 /**
6457 * Returns the meta object for the attribute '{@link TaxationWithRoot.Tax_Card#isValidity <em>Validity</em>}'.
6458 * <!-- begin-user-doc -->
6459 * <!-- end-user-doc -->
6460 * @return the meta object for the attribute '<em>Validity</em>'.
6461 * @see TaxationWithRoot.Tax_Card#isValidity()
6462 * @see #getTax_Card()
6463 * @generated
6464 */
6465 EAttribute getTax_Card_Validity();
6466
6467 /**
6468 * Returns the meta object for the reference list '{@link TaxationWithRoot.Tax_Card#getIncome_Tax_Credit <em>Income Tax Credit</em>}'.
6469 * <!-- begin-user-doc -->
6470 * <!-- end-user-doc -->
6471 * @return the meta object for the reference list '<em>Income Tax Credit</em>'.
6472 * @see TaxationWithRoot.Tax_Card#getIncome_Tax_Credit()
6473 * @see #getTax_Card()
6474 * @generated
6475 */
6476 EReference getTax_Card_Income_Tax_Credit();
6477
6478 /**
6479 * Returns the meta object for the reference '{@link TaxationWithRoot.Tax_Card#getPrevious <em>Previous</em>}'.
6480 * <!-- begin-user-doc -->
6481 * <!-- end-user-doc -->
6482 * @return the meta object for the reference '<em>Previous</em>'.
6483 * @see TaxationWithRoot.Tax_Card#getPrevious()
6484 * @see #getTax_Card()
6485 * @generated
6486 */
6487 EReference getTax_Card_Previous();
6488
6489 /**
6490 * Returns the meta object for the reference '{@link TaxationWithRoot.Tax_Card#getCurrent_tax_card <em>Current tax card</em>}'.
6491 * <!-- begin-user-doc -->
6492 * <!-- end-user-doc -->
6493 * @return the meta object for the reference '<em>Current tax card</em>'.
6494 * @see TaxationWithRoot.Tax_Card#getCurrent_tax_card()
6495 * @see #getTax_Card()
6496 * @generated
6497 */
6498 EReference getTax_Card_Current_tax_card();
6499
6500 /**
6501 * Returns the meta object for the attribute '{@link TaxationWithRoot.Tax_Card#getCredit_CIM_yearly <em>Credit CIM yearly</em>}'.
6502 * <!-- begin-user-doc -->
6503 * <!-- end-user-doc -->
6504 * @return the meta object for the attribute '<em>Credit CIM yearly</em>'.
6505 * @see TaxationWithRoot.Tax_Card#getCredit_CIM_yearly()
6506 * @see #getTax_Card()
6507 * @generated
6508 */
6509 EAttribute getTax_Card_Credit_CIM_yearly();
6510
6511 /**
6512 * Returns the meta object for the attribute '{@link TaxationWithRoot.Tax_Card#getDeduction_DS_Alimony_yearly <em>Deduction DS Alimony yearly</em>}'.
6513 * <!-- begin-user-doc -->
6514 * <!-- end-user-doc -->
6515 * @return the meta object for the attribute '<em>Deduction DS Alimony yearly</em>'.
6516 * @see TaxationWithRoot.Tax_Card#getDeduction_DS_Alimony_yearly()
6517 * @see #getTax_Card()
6518 * @generated
6519 */
6520 EAttribute getTax_Card_Deduction_DS_Alimony_yearly();
6521
6522 /**
6523 * Returns the meta object for the attribute '{@link TaxationWithRoot.Tax_Card#getDeduction_DS_Debt_yearly <em>Deduction DS Debt yearly</em>}'.
6524 * <!-- begin-user-doc -->
6525 * <!-- end-user-doc -->
6526 * @return the meta object for the attribute '<em>Deduction DS Debt yearly</em>'.
6527 * @see TaxationWithRoot.Tax_Card#getDeduction_DS_Debt_yearly()
6528 * @see #getTax_Card()
6529 * @generated
6530 */
6531 EAttribute getTax_Card_Deduction_DS_Debt_yearly();
6532
6533 /**
6534 * Returns the meta object for the container reference '{@link TaxationWithRoot.Tax_Card#getIncome <em>Income</em>}'.
6535 * <!-- begin-user-doc -->
6536 * <!-- end-user-doc -->
6537 * @return the meta object for the container reference '<em>Income</em>'.
6538 * @see TaxationWithRoot.Tax_Card#getIncome()
6539 * @see #getTax_Card()
6540 * @generated
6541 */
6542 EReference getTax_Card_Income();
6543
6544 /**
6545 * Returns the meta object for class '{@link TaxationWithRoot.Income_Tax_Credit <em>Income Tax Credit</em>}'.
6546 * <!-- begin-user-doc -->
6547 * <!-- end-user-doc -->
6548 * @return the meta object for class '<em>Income Tax Credit</em>'.
6549 * @see TaxationWithRoot.Income_Tax_Credit
6550 * @generated
6551 */
6552 EClass getIncome_Tax_Credit();
6553
6554 /**
6555 * Returns the meta object for the attribute '{@link TaxationWithRoot.Income_Tax_Credit#getGrantedBy <em>Granted By</em>}'.
6556 * <!-- begin-user-doc -->
6557 * <!-- end-user-doc -->
6558 * @return the meta object for the attribute '<em>Granted By</em>'.
6559 * @see TaxationWithRoot.Income_Tax_Credit#getGrantedBy()
6560 * @see #getIncome_Tax_Credit()
6561 * @generated
6562 */
6563 EAttribute getIncome_Tax_Credit_GrantedBy();
6564
6565 /**
6566 * Returns the meta object for the reference '{@link TaxationWithRoot.Income_Tax_Credit#getTaxPayer <em>Tax Payer</em>}'.
6567 * <!-- begin-user-doc -->
6568 * <!-- end-user-doc -->
6569 * @return the meta object for the reference '<em>Tax Payer</em>'.
6570 * @see TaxationWithRoot.Income_Tax_Credit#getTaxPayer()
6571 * @see #getIncome_Tax_Credit()
6572 * @generated
6573 */
6574 EReference getIncome_Tax_Credit_TaxPayer();
6575
6576 /**
6577 * Returns the meta object for the attribute '{@link TaxationWithRoot.Income_Tax_Credit#getTax_year <em>Tax year</em>}'.
6578 * <!-- begin-user-doc -->
6579 * <!-- end-user-doc -->
6580 * @return the meta object for the attribute '<em>Tax year</em>'.
6581 * @see TaxationWithRoot.Income_Tax_Credit#getTax_year()
6582 * @see #getIncome_Tax_Credit()
6583 * @generated
6584 */
6585 EAttribute getIncome_Tax_Credit_Tax_year();
6586
6587 /**
6588 * Returns the meta object for the attribute '{@link TaxationWithRoot.Income_Tax_Credit#getYearly <em>Yearly</em>}'.
6589 * <!-- begin-user-doc -->
6590 * <!-- end-user-doc -->
6591 * @return the meta object for the attribute '<em>Yearly</em>'.
6592 * @see TaxationWithRoot.Income_Tax_Credit#getYearly()
6593 * @see #getIncome_Tax_Credit()
6594 * @generated
6595 */
6596 EAttribute getIncome_Tax_Credit_Yearly();
6597
6598 /**
6599 * Returns the meta object for the attribute '{@link TaxationWithRoot.Income_Tax_Credit#getMonthly <em>Monthly</em>}'.
6600 * <!-- begin-user-doc -->
6601 * <!-- end-user-doc -->
6602 * @return the meta object for the attribute '<em>Monthly</em>'.
6603 * @see TaxationWithRoot.Income_Tax_Credit#getMonthly()
6604 * @see #getIncome_Tax_Credit()
6605 * @generated
6606 */
6607 EAttribute getIncome_Tax_Credit_Monthly();
6608
6609 /**
6610 * Returns the meta object for the attribute '{@link TaxationWithRoot.Income_Tax_Credit#getDaily <em>Daily</em>}'.
6611 * <!-- begin-user-doc -->
6612 * <!-- end-user-doc -->
6613 * @return the meta object for the attribute '<em>Daily</em>'.
6614 * @see TaxationWithRoot.Income_Tax_Credit#getDaily()
6615 * @see #getIncome_Tax_Credit()
6616 * @generated
6617 */
6618 EAttribute getIncome_Tax_Credit_Daily();
6619
6620 /**
6621 * Returns the meta object for the attribute '{@link TaxationWithRoot.Income_Tax_Credit#getId7 <em>Id7</em>}'.
6622 * <!-- begin-user-doc -->
6623 * <!-- end-user-doc -->
6624 * @return the meta object for the attribute '<em>Id7</em>'.
6625 * @see TaxationWithRoot.Income_Tax_Credit#getId7()
6626 * @see #getIncome_Tax_Credit()
6627 * @generated
6628 */
6629 EAttribute getIncome_Tax_Credit_Id7();
6630
6631 /**
6632 * Returns the meta object for the reference '{@link TaxationWithRoot.Income_Tax_Credit#getTaxation_Frame <em>Taxation Frame</em>}'.
6633 * <!-- begin-user-doc -->
6634 * <!-- end-user-doc -->
6635 * @return the meta object for the reference '<em>Taxation Frame</em>'.
6636 * @see TaxationWithRoot.Income_Tax_Credit#getTaxation_Frame()
6637 * @see #getIncome_Tax_Credit()
6638 * @generated
6639 */
6640 EReference getIncome_Tax_Credit_Taxation_Frame();
6641
6642 /**
6643 * Returns the meta object for class '{@link TaxationWithRoot.Income_Detail <em>Income Detail</em>}'.
6644 * <!-- begin-user-doc -->
6645 * <!-- end-user-doc -->
6646 * @return the meta object for class '<em>Income Detail</em>'.
6647 * @see TaxationWithRoot.Income_Detail
6648 * @generated
6649 */
6650 EClass getIncome_Detail();
6651
6652 /**
6653 * Returns the meta object for the attribute '{@link TaxationWithRoot.Income_Detail#getAmount <em>Amount</em>}'.
6654 * <!-- begin-user-doc -->
6655 * <!-- end-user-doc -->
6656 * @return the meta object for the attribute '<em>Amount</em>'.
6657 * @see TaxationWithRoot.Income_Detail#getAmount()
6658 * @see #getIncome_Detail()
6659 * @generated
6660 */
6661 EAttribute getIncome_Detail_Amount();
6662
6663 /**
6664 * Returns the meta object for the attribute '{@link TaxationWithRoot.Income_Detail#isIs_worked <em>Is worked</em>}'.
6665 * <!-- begin-user-doc -->
6666 * <!-- end-user-doc -->
6667 * @return the meta object for the attribute '<em>Is worked</em>'.
6668 * @see TaxationWithRoot.Income_Detail#isIs_worked()
6669 * @see #getIncome_Detail()
6670 * @generated
6671 */
6672 EAttribute getIncome_Detail_Is_worked();
6673
6674 /**
6675 * Returns the meta object for the attribute '{@link TaxationWithRoot.Income_Detail#getDistance <em>Distance</em>}'.
6676 * <!-- begin-user-doc -->
6677 * <!-- end-user-doc -->
6678 * @return the meta object for the attribute '<em>Distance</em>'.
6679 * @see TaxationWithRoot.Income_Detail#getDistance()
6680 * @see #getIncome_Detail()
6681 * @generated
6682 */
6683 EAttribute getIncome_Detail_Distance();
6684
6685 /**
6686 * Returns the meta object for the attribute '{@link TaxationWithRoot.Income_Detail#getWorked_days <em>Worked days</em>}'.
6687 * <!-- begin-user-doc -->
6688 * <!-- end-user-doc -->
6689 * @return the meta object for the attribute '<em>Worked days</em>'.
6690 * @see TaxationWithRoot.Income_Detail#getWorked_days()
6691 * @see #getIncome_Detail()
6692 * @generated
6693 */
6694 EAttribute getIncome_Detail_Worked_days();
6695
6696 /**
6697 * Returns the meta object for the attribute '{@link TaxationWithRoot.Income_Detail#isIs_contributing_CNS <em>Is contributing CNS</em>}'.
6698 * <!-- begin-user-doc -->
6699 * <!-- end-user-doc -->
6700 * @return the meta object for the attribute '<em>Is contributing CNS</em>'.
6701 * @see TaxationWithRoot.Income_Detail#isIs_contributing_CNS()
6702 * @see #getIncome_Detail()
6703 * @generated
6704 */
6705 EAttribute getIncome_Detail_Is_contributing_CNS();
6706
6707 /**
6708 * Returns the meta object for the attribute '{@link TaxationWithRoot.Income_Detail#getId5 <em>Id5</em>}'.
6709 * <!-- begin-user-doc -->
6710 * <!-- end-user-doc -->
6711 * @return the meta object for the attribute '<em>Id5</em>'.
6712 * @see TaxationWithRoot.Income_Detail#getId5()
6713 * @see #getIncome_Detail()
6714 * @generated
6715 */
6716 EAttribute getIncome_Detail_Id5();
6717
6718 /**
6719 * Returns the meta object for the container reference '{@link TaxationWithRoot.Income_Detail#getIncome <em>Income</em>}'.
6720 * <!-- begin-user-doc -->
6721 * <!-- end-user-doc -->
6722 * @return the meta object for the container reference '<em>Income</em>'.
6723 * @see TaxationWithRoot.Income_Detail#getIncome()
6724 * @see #getIncome_Detail()
6725 * @generated
6726 */
6727 EReference getIncome_Detail_Income();
6728
6729 /**
6730 * Returns the meta object for class '{@link TaxationWithRoot.FromLaw <em>From Law</em>}'.
6731 * <!-- begin-user-doc -->
6732 * <!-- end-user-doc -->
6733 * @return the meta object for class '<em>From Law</em>'.
6734 * @see TaxationWithRoot.FromLaw
6735 * @generated
6736 */
6737 EClass getFromLaw();
6738
6739 /**
6740 * Returns the meta object for the attribute '{@link TaxationWithRoot.FromLaw#getId <em>Id</em>}'.
6741 * <!-- begin-user-doc -->
6742 * <!-- end-user-doc -->
6743 * @return the meta object for the attribute '<em>Id</em>'.
6744 * @see TaxationWithRoot.FromLaw#getId()
6745 * @see #getFromLaw()
6746 * @generated
6747 */
6748 EAttribute getFromLaw_Id();
6749
6750 /**
6751 * Returns the meta object for the container reference '{@link TaxationWithRoot.FromLaw#getTaxPayer <em>Tax Payer</em>}'.
6752 * <!-- begin-user-doc -->
6753 * <!-- end-user-doc -->
6754 * @return the meta object for the container reference '<em>Tax Payer</em>'.
6755 * @see TaxationWithRoot.FromLaw#getTaxPayer()
6756 * @see #getFromLaw()
6757 * @generated
6758 */
6759 EReference getFromLaw_TaxPayer();
6760
6761 /**
6762 * Returns the meta object for class '{@link TaxationWithRoot.Fiscal_Address <em>Fiscal Address</em>}'.
6763 * <!-- begin-user-doc -->
6764 * <!-- end-user-doc -->
6765 * @return the meta object for class '<em>Fiscal Address</em>'.
6766 * @see TaxationWithRoot.Fiscal_Address
6767 * @generated
6768 */
6769 EClass getFiscal_Address();
6770
6771 /**
6772 * Returns the meta object for class '{@link TaxationWithRoot.Habitual_Address <em>Habitual Address</em>}'.
6773 * <!-- begin-user-doc -->
6774 * <!-- end-user-doc -->
6775 * @return the meta object for class '<em>Habitual Address</em>'.
6776 * @see TaxationWithRoot.Habitual_Address
6777 * @generated
6778 */
6779 EClass getHabitual_Address();
6780
6781 /**
6782 * Returns the meta object for class '{@link TaxationWithRoot.Marriage_Record <em>Marriage Record</em>}'.
6783 * <!-- begin-user-doc -->
6784 * <!-- end-user-doc -->
6785 * @return the meta object for class '<em>Marriage Record</em>'.
6786 * @see TaxationWithRoot.Marriage_Record
6787 * @generated
6788 */
6789 EClass getMarriage_Record();
6790
6791 /**
6792 * Returns the meta object for class '{@link TaxationWithRoot.Non_Resident_Tax_Payer <em>Non Resident Tax Payer</em>}'.
6793 * <!-- begin-user-doc -->
6794 * <!-- end-user-doc -->
6795 * @return the meta object for class '<em>Non Resident Tax Payer</em>'.
6796 * @see TaxationWithRoot.Non_Resident_Tax_Payer
6797 * @generated
6798 */
6799 EClass getNon_Resident_Tax_Payer();
6800
6801 /**
6802 * Returns the meta object for the attribute '{@link TaxationWithRoot.Non_Resident_Tax_Payer#isIs_assimilated_to_resident <em>Is assimilated to resident</em>}'.
6803 * <!-- begin-user-doc -->
6804 * <!-- end-user-doc -->
6805 * @return the meta object for the attribute '<em>Is assimilated to resident</em>'.
6806 * @see TaxationWithRoot.Non_Resident_Tax_Payer#isIs_assimilated_to_resident()
6807 * @see #getNon_Resident_Tax_Payer()
6808 * @generated
6809 */
6810 EAttribute getNon_Resident_Tax_Payer_Is_assimilated_to_resident();
6811
6812 /**
6813 * Returns the meta object for class '{@link TaxationWithRoot.Partnership_Record <em>Partnership Record</em>}'.
6814 * <!-- begin-user-doc -->
6815 * <!-- end-user-doc -->
6816 * @return the meta object for class '<em>Partnership Record</em>'.
6817 * @see TaxationWithRoot.Partnership_Record
6818 * @generated
6819 */
6820 EClass getPartnership_Record();
6821
6822 /**
6823 * Returns the meta object for class '{@link TaxationWithRoot.Resident_Tax_Payer <em>Resident Tax Payer</em>}'.
6824 * <!-- begin-user-doc -->
6825 * <!-- end-user-doc -->
6826 * @return the meta object for class '<em>Resident Tax Payer</em>'.
6827 * @see TaxationWithRoot.Resident_Tax_Payer
6828 * @generated
6829 */
6830 EClass getResident_Tax_Payer();
6831
6832 /**
6833 * Returns the meta object for class '{@link TaxationWithRoot.Trade_and_Business_Income <em>Trade and Business Income</em>}'.
6834 * <!-- begin-user-doc -->
6835 * <!-- end-user-doc -->
6836 * @return the meta object for class '<em>Trade and Business Income</em>'.
6837 * @see TaxationWithRoot.Trade_and_Business_Income
6838 * @generated
6839 */
6840 EClass getTrade_and_Business_Income();
6841
6842 /**
6843 * Returns the meta object for class '{@link TaxationWithRoot.Agriculture_and_Forestry_Income <em>Agriculture and Forestry Income</em>}'.
6844 * <!-- begin-user-doc -->
6845 * <!-- end-user-doc -->
6846 * @return the meta object for class '<em>Agriculture and Forestry Income</em>'.
6847 * @see TaxationWithRoot.Agriculture_and_Forestry_Income
6848 * @generated
6849 */
6850 EClass getAgriculture_and_Forestry_Income();
6851
6852 /**
6853 * Returns the meta object for class '{@link TaxationWithRoot.Pensions_and_Annuities_Income <em>Pensions and Annuities Income</em>}'.
6854 * <!-- begin-user-doc -->
6855 * <!-- end-user-doc -->
6856 * @return the meta object for class '<em>Pensions and Annuities Income</em>'.
6857 * @see TaxationWithRoot.Pensions_and_Annuities_Income
6858 * @generated
6859 */
6860 EClass getPensions_and_Annuities_Income();
6861
6862 /**
6863 * Returns the meta object for the attribute '{@link TaxationWithRoot.Pensions_and_Annuities_Income#isOccasional_payement <em>Occasional payement</em>}'.
6864 * <!-- begin-user-doc -->
6865 * <!-- end-user-doc -->
6866 * @return the meta object for the attribute '<em>Occasional payement</em>'.
6867 * @see TaxationWithRoot.Pensions_and_Annuities_Income#isOccasional_payement()
6868 * @see #getPensions_and_Annuities_Income()
6869 * @generated
6870 */
6871 EAttribute getPensions_and_Annuities_Income_Occasional_payement();
6872
6873 /**
6874 * Returns the meta object for class '{@link TaxationWithRoot.Capital_and_Investments_Income <em>Capital and Investments Income</em>}'.
6875 * <!-- begin-user-doc -->
6876 * <!-- end-user-doc -->
6877 * @return the meta object for class '<em>Capital and Investments Income</em>'.
6878 * @see TaxationWithRoot.Capital_and_Investments_Income
6879 * @generated
6880 */
6881 EClass getCapital_and_Investments_Income();
6882
6883 /**
6884 * Returns the meta object for class '{@link TaxationWithRoot.Employment_Income <em>Employment Income</em>}'.
6885 * <!-- begin-user-doc -->
6886 * <!-- end-user-doc -->
6887 * @return the meta object for class '<em>Employment Income</em>'.
6888 * @see TaxationWithRoot.Employment_Income
6889 * @generated
6890 */
6891 EClass getEmployment_Income();
6892
6893 /**
6894 * Returns the meta object for class '{@link TaxationWithRoot.Rentals_and_Leases_Income <em>Rentals and Leases Income</em>}'.
6895 * <!-- begin-user-doc -->
6896 * <!-- end-user-doc -->
6897 * @return the meta object for class '<em>Rentals and Leases Income</em>'.
6898 * @see TaxationWithRoot.Rentals_and_Leases_Income
6899 * @generated
6900 */
6901 EClass getRentals_and_Leases_Income();
6902
6903 /**
6904 * Returns the meta object for the attribute '{@link TaxationWithRoot.Rentals_and_Leases_Income#isIs_periodic <em>Is periodic</em>}'.
6905 * <!-- begin-user-doc -->
6906 * <!-- end-user-doc -->
6907 * @return the meta object for the attribute '<em>Is periodic</em>'.
6908 * @see TaxationWithRoot.Rentals_and_Leases_Income#isIs_periodic()
6909 * @see #getRentals_and_Leases_Income()
6910 * @generated
6911 */
6912 EAttribute getRentals_and_Leases_Income_Is_periodic();
6913
6914 /**
6915 * Returns the meta object for class '{@link TaxationWithRoot.Foreign_Income <em>Foreign Income</em>}'.
6916 * <!-- begin-user-doc -->
6917 * <!-- end-user-doc -->
6918 * @return the meta object for class '<em>Foreign Income</em>'.
6919 * @see TaxationWithRoot.Foreign_Income
6920 * @generated
6921 */
6922 EClass getForeign_Income();
6923
6924 /**
6925 * Returns the meta object for class '{@link TaxationWithRoot.Local_Income <em>Local Income</em>}'.
6926 * <!-- begin-user-doc -->
6927 * <!-- end-user-doc -->
6928 * @return the meta object for class '<em>Local Income</em>'.
6929 * @see TaxationWithRoot.Local_Income
6930 * @generated
6931 */
6932 EClass getLocal_Income();
6933
6934 /**
6935 * Returns the meta object for class '{@link TaxationWithRoot.CIM <em>CIM</em>}'.
6936 * <!-- begin-user-doc -->
6937 * <!-- end-user-doc -->
6938 * @return the meta object for class '<em>CIM</em>'.
6939 * @see TaxationWithRoot.CIM
6940 * @generated
6941 */
6942 EClass getCIM();
6943
6944 /**
6945 * Returns the meta object for class '{@link TaxationWithRoot.CIP <em>CIP</em>}'.
6946 * <!-- begin-user-doc -->
6947 * <!-- end-user-doc -->
6948 * @return the meta object for class '<em>CIP</em>'.
6949 * @see TaxationWithRoot.CIP
6950 * @generated
6951 */
6952 EClass getCIP();
6953
6954 /**
6955 * Returns the meta object for class '{@link TaxationWithRoot.CIS <em>CIS</em>}'.
6956 * <!-- begin-user-doc -->
6957 * <!-- end-user-doc -->
6958 * @return the meta object for class '<em>CIS</em>'.
6959 * @see TaxationWithRoot.CIS
6960 * @generated
6961 */
6962 EClass getCIS();
6963
6964 /**
6965 * Returns the meta object for class '{@link TaxationWithRoot.Permanent_Expense <em>Permanent Expense</em>}'.
6966 * <!-- begin-user-doc -->
6967 * <!-- end-user-doc -->
6968 * @return the meta object for class '<em>Permanent Expense</em>'.
6969 * @see TaxationWithRoot.Permanent_Expense
6970 * @generated
6971 */
6972 EClass getPermanent_Expense();
6973
6974 /**
6975 * Returns the meta object for the attribute '{@link TaxationWithRoot.Permanent_Expense#getCategory <em>Category</em>}'.
6976 * <!-- begin-user-doc -->
6977 * <!-- end-user-doc -->
6978 * @return the meta object for the attribute '<em>Category</em>'.
6979 * @see TaxationWithRoot.Permanent_Expense#getCategory()
6980 * @see #getPermanent_Expense()
6981 * @generated
6982 */
6983 EAttribute getPermanent_Expense_Category();
6984
6985 /**
6986 * Returns the meta object for class '{@link TaxationWithRoot.Special_Expense_DS <em>Special Expense DS</em>}'.
6987 * <!-- begin-user-doc -->
6988 * <!-- end-user-doc -->
6989 * @return the meta object for class '<em>Special Expense DS</em>'.
6990 * @see TaxationWithRoot.Special_Expense_DS
6991 * @generated
6992 */
6993 EClass getSpecial_Expense_DS();
6994
6995 /**
6996 * Returns the meta object for class '{@link TaxationWithRoot.Interest_Expense <em>Interest Expense</em>}'.
6997 * <!-- begin-user-doc -->
6998 * <!-- end-user-doc -->
6999 * @return the meta object for class '<em>Interest Expense</em>'.
7000 * @see TaxationWithRoot.Interest_Expense
7001 * @generated
7002 */
7003 EClass getInterest_Expense();
7004
7005 /**
7006 * Returns the meta object for class '{@link TaxationWithRoot.Private_Insurance_and_Plan <em>Private Insurance and Plan</em>}'.
7007 * <!-- begin-user-doc -->
7008 * <!-- end-user-doc -->
7009 * @return the meta object for class '<em>Private Insurance and Plan</em>'.
7010 * @see TaxationWithRoot.Private_Insurance_and_Plan
7011 * @generated
7012 */
7013 EClass getPrivate_Insurance_and_Plan();
7014
7015 /**
7016 * Returns the meta object for the attribute '{@link TaxationWithRoot.Private_Insurance_and_Plan#getCategory <em>Category</em>}'.
7017 * <!-- begin-user-doc -->
7018 * <!-- end-user-doc -->
7019 * @return the meta object for the attribute '<em>Category</em>'.
7020 * @see TaxationWithRoot.Private_Insurance_and_Plan#getCategory()
7021 * @see #getPrivate_Insurance_and_Plan()
7022 * @generated
7023 */
7024 EAttribute getPrivate_Insurance_and_Plan_Category();
7025
7026 /**
7027 * Returns the meta object for the attribute '{@link TaxationWithRoot.Private_Insurance_and_Plan#getDuration_of_contract <em>Duration of contract</em>}'.
7028 * <!-- begin-user-doc -->
7029 * <!-- end-user-doc -->
7030 * @return the meta object for the attribute '<em>Duration of contract</em>'.
7031 * @see TaxationWithRoot.Private_Insurance_and_Plan#getDuration_of_contract()
7032 * @see #getPrivate_Insurance_and_Plan()
7033 * @generated
7034 */
7035 EAttribute getPrivate_Insurance_and_Plan_Duration_of_contract();
7036
7037 /**
7038 * Returns the meta object for class '{@link TaxationWithRoot.Health_and_Pension_Insurance <em>Health and Pension Insurance</em>}'.
7039 * <!-- begin-user-doc -->
7040 * <!-- end-user-doc -->
7041 * @return the meta object for class '<em>Health and Pension Insurance</em>'.
7042 * @see TaxationWithRoot.Health_and_Pension_Insurance
7043 * @generated
7044 */
7045 EClass getHealth_and_Pension_Insurance();
7046
7047 /**
7048 * Returns the meta object for the attribute '{@link TaxationWithRoot.Health_and_Pension_Insurance#getCategory <em>Category</em>}'.
7049 * <!-- begin-user-doc -->
7050 * <!-- end-user-doc -->
7051 * @return the meta object for the attribute '<em>Category</em>'.
7052 * @see TaxationWithRoot.Health_and_Pension_Insurance#getCategory()
7053 * @see #getHealth_and_Pension_Insurance()
7054 * @generated
7055 */
7056 EAttribute getHealth_and_Pension_Insurance_Category();
7057
7058 /**
7059 * Returns the meta object for the attribute '{@link TaxationWithRoot.Health_and_Pension_Insurance#isIs_related_to_additional_salary <em>Is related to additional salary</em>}'.
7060 * <!-- begin-user-doc -->
7061 * <!-- end-user-doc -->
7062 * @return the meta object for the attribute '<em>Is related to additional salary</em>'.
7063 * @see TaxationWithRoot.Health_and_Pension_Insurance#isIs_related_to_additional_salary()
7064 * @see #getHealth_and_Pension_Insurance()
7065 * @generated
7066 */
7067 EAttribute getHealth_and_Pension_Insurance_Is_related_to_additional_salary();
7068
7069 /**
7070 * Returns the meta object for class '{@link TaxationWithRoot.Donation <em>Donation</em>}'.
7071 * <!-- begin-user-doc -->
7072 * <!-- end-user-doc -->
7073 * @return the meta object for class '<em>Donation</em>'.
7074 * @see TaxationWithRoot.Donation
7075 * @generated
7076 */
7077 EClass getDonation();
7078
7079 /**
7080 * Returns the meta object for the attribute '{@link TaxationWithRoot.Donation#getBeneficiary1 <em>Beneficiary1</em>}'.
7081 * <!-- begin-user-doc -->
7082 * <!-- end-user-doc -->
7083 * @return the meta object for the attribute '<em>Beneficiary1</em>'.
7084 * @see TaxationWithRoot.Donation#getBeneficiary1()
7085 * @see #getDonation()
7086 * @generated
7087 */
7088 EAttribute getDonation_Beneficiary1();
7089
7090 /**
7091 * Returns the meta object for the attribute '{@link TaxationWithRoot.Donation#isIs_donation_reported <em>Is donation reported</em>}'.
7092 * <!-- begin-user-doc -->
7093 * <!-- end-user-doc -->
7094 * @return the meta object for the attribute '<em>Is donation reported</em>'.
7095 * @see TaxationWithRoot.Donation#isIs_donation_reported()
7096 * @see #getDonation()
7097 * @generated
7098 */
7099 EAttribute getDonation_Is_donation_reported();
7100
7101 /**
7102 * Returns the meta object for class '{@link TaxationWithRoot.Loss_Carryforward <em>Loss Carryforward</em>}'.
7103 * <!-- begin-user-doc -->
7104 * <!-- end-user-doc -->
7105 * @return the meta object for class '<em>Loss Carryforward</em>'.
7106 * @see TaxationWithRoot.Loss_Carryforward
7107 * @generated
7108 */
7109 EClass getLoss_Carryforward();
7110
7111 /**
7112 * Returns the meta object for class '{@link TaxationWithRoot.Spousal_Expense_AC <em>Spousal Expense AC</em>}'.
7113 * <!-- begin-user-doc -->
7114 * <!-- end-user-doc -->
7115 * @return the meta object for class '<em>Spousal Expense AC</em>'.
7116 * @see TaxationWithRoot.Spousal_Expense_AC
7117 * @generated
7118 */
7119 EClass getSpousal_Expense_AC();
7120
7121 /**
7122 * Returns the meta object for class '{@link TaxationWithRoot.Extraordinary_Expense_CE <em>Extraordinary Expense CE</em>}'.
7123 * <!-- begin-user-doc -->
7124 * <!-- end-user-doc -->
7125 * @return the meta object for class '<em>Extraordinary Expense CE</em>'.
7126 * @see TaxationWithRoot.Extraordinary_Expense_CE
7127 * @generated
7128 */
7129 EClass getExtraordinary_Expense_CE();
7130
7131 /**
7132 * Returns the meta object for the attribute '{@link TaxationWithRoot.Extraordinary_Expense_CE#getThresholded_deduction_percentage <em>Thresholded deduction percentage</em>}'.
7133 * <!-- begin-user-doc -->
7134 * <!-- end-user-doc -->
7135 * @return the meta object for the attribute '<em>Thresholded deduction percentage</em>'.
7136 * @see TaxationWithRoot.Extraordinary_Expense_CE#getThresholded_deduction_percentage()
7137 * @see #getExtraordinary_Expense_CE()
7138 * @generated
7139 */
7140 EAttribute getExtraordinary_Expense_CE_Thresholded_deduction_percentage();
7141
7142 /**
7143 * Returns the meta object for the attribute '{@link TaxationWithRoot.Extraordinary_Expense_CE#getCe_type <em>Ce type</em>}'.
7144 * <!-- begin-user-doc -->
7145 * <!-- end-user-doc -->
7146 * @return the meta object for the attribute '<em>Ce type</em>'.
7147 * @see TaxationWithRoot.Extraordinary_Expense_CE#getCe_type()
7148 * @see #getExtraordinary_Expense_CE()
7149 * @generated
7150 */
7151 EAttribute getExtraordinary_Expense_CE_Ce_type();
7152
7153 /**
7154 * Returns the meta object for class '{@link TaxationWithRoot.Travel_Expense_FD <em>Travel Expense FD</em>}'.
7155 * <!-- begin-user-doc -->
7156 * <!-- end-user-doc -->
7157 * @return the meta object for class '<em>Travel Expense FD</em>'.
7158 * @see TaxationWithRoot.Travel_Expense_FD
7159 * @generated
7160 */
7161 EClass getTravel_Expense_FD();
7162
7163 /**
7164 * Returns the meta object for class '{@link TaxationWithRoot.Professional_Expense <em>Professional Expense</em>}'.
7165 * <!-- begin-user-doc -->
7166 * <!-- end-user-doc -->
7167 * @return the meta object for class '<em>Professional Expense</em>'.
7168 * @see TaxationWithRoot.Professional_Expense
7169 * @generated
7170 */
7171 EClass getProfessional_Expense();
7172
7173 /**
7174 * Returns the meta object for class '{@link TaxationWithRoot.Miscellaneous_Expense_FO <em>Miscellaneous Expense FO</em>}'.
7175 * <!-- begin-user-doc -->
7176 * <!-- end-user-doc -->
7177 * @return the meta object for class '<em>Miscellaneous Expense FO</em>'.
7178 * @see TaxationWithRoot.Miscellaneous_Expense_FO
7179 * @generated
7180 */
7181 EClass getMiscellaneous_Expense_FO();
7182
7183 /**
7184 * Returns the meta object for class '{@link TaxationWithRoot.Resource <em>Resource</em>}'.
7185 * <!-- begin-user-doc -->
7186 * <!-- end-user-doc -->
7187 * @return the meta object for class '<em>Resource</em>'.
7188 * @see TaxationWithRoot.Resource
7189 * @generated
7190 */
7191 EClass getResource();
7192
7193 /**
7194 * Returns the meta object for the containment reference list '{@link TaxationWithRoot.Resource#getContains <em>Contains</em>}'.
7195 * <!-- begin-user-doc -->
7196 * <!-- end-user-doc -->
7197 * @return the meta object for the containment reference list '<em>Contains</em>'.
7198 * @see TaxationWithRoot.Resource#getContains()
7199 * @see #getResource()
7200 * @generated
7201 */
7202 EReference getResource_Contains();
7203
7204 /**
7205 * Returns the meta object for enum '{@link TaxationWithRoot.Grantor <em>Grantor</em>}'.
7206 * <!-- begin-user-doc -->
7207 * <!-- end-user-doc -->
7208 * @return the meta object for enum '<em>Grantor</em>'.
7209 * @see TaxationWithRoot.Grantor
7210 * @generated
7211 */
7212 EEnum getGrantor();
7213
7214 /**
7215 * Returns the meta object for enum '{@link TaxationWithRoot.Disability_Types <em>Disability Types</em>}'.
7216 * <!-- begin-user-doc -->
7217 * <!-- end-user-doc -->
7218 * @return the meta object for enum '<em>Disability Types</em>'.
7219 * @see TaxationWithRoot.Disability_Types
7220 * @generated
7221 */
7222 EEnum getDisability_Types();
7223
7224 /**
7225 * Returns the meta object for enum '{@link TaxationWithRoot.Country <em>Country</em>}'.
7226 * <!-- begin-user-doc -->
7227 * <!-- end-user-doc -->
7228 * @return the meta object for enum '<em>Country</em>'.
7229 * @see TaxationWithRoot.Country
7230 * @generated
7231 */
7232 EEnum getCountry();
7233
7234 /**
7235 * Returns the meta object for enum '{@link TaxationWithRoot.Tax_Office <em>Tax Office</em>}'.
7236 * <!-- begin-user-doc -->
7237 * <!-- end-user-doc -->
7238 * @return the meta object for enum '<em>Tax Office</em>'.
7239 * @see TaxationWithRoot.Tax_Office
7240 * @generated
7241 */
7242 EEnum getTax_Office();
7243
7244 /**
7245 * Returns the meta object for enum '{@link TaxationWithRoot.Tax_Class_Category <em>Tax Class Category</em>}'.
7246 * <!-- begin-user-doc -->
7247 * <!-- end-user-doc -->
7248 * @return the meta object for enum '<em>Tax Class Category</em>'.
7249 * @see TaxationWithRoot.Tax_Class_Category
7250 * @generated
7251 */
7252 EEnum getTax_Class_Category();
7253
7254 /**
7255 * Returns the meta object for enum '{@link TaxationWithRoot.Job_Activity <em>Job Activity</em>}'.
7256 * <!-- begin-user-doc -->
7257 * <!-- end-user-doc -->
7258 * @return the meta object for enum '<em>Job Activity</em>'.
7259 * @see TaxationWithRoot.Job_Activity
7260 * @generated
7261 */
7262 EEnum getJob_Activity();
7263
7264 /**
7265 * Returns the meta object for enum '{@link TaxationWithRoot.Town <em>Town</em>}'.
7266 * <!-- begin-user-doc -->
7267 * <!-- end-user-doc -->
7268 * @return the meta object for enum '<em>Town</em>'.
7269 * @see TaxationWithRoot.Town
7270 * @generated
7271 */
7272 EEnum getTown();
7273
7274 /**
7275 * Returns the meta object for enum '{@link TaxationWithRoot.CE_Type <em>CE Type</em>}'.
7276 * <!-- begin-user-doc -->
7277 * <!-- end-user-doc -->
7278 * @return the meta object for enum '<em>CE Type</em>'.
7279 * @see TaxationWithRoot.CE_Type
7280 * @generated
7281 */
7282 EEnum getCE_Type();
7283
7284 /**
7285 * Returns the meta object for enum '{@link TaxationWithRoot.Expense_Purpose <em>Expense Purpose</em>}'.
7286 * <!-- begin-user-doc -->
7287 * <!-- end-user-doc -->
7288 * @return the meta object for enum '<em>Expense Purpose</em>'.
7289 * @see TaxationWithRoot.Expense_Purpose
7290 * @generated
7291 */
7292 EEnum getExpense_Purpose();
7293
7294 /**
7295 * Returns the meta object for enum '{@link TaxationWithRoot.Dependent_Type <em>Dependent Type</em>}'.
7296 * <!-- begin-user-doc -->
7297 * <!-- end-user-doc -->
7298 * @return the meta object for enum '<em>Dependent Type</em>'.
7299 * @see TaxationWithRoot.Dependent_Type
7300 * @generated
7301 */
7302 EEnum getDependent_Type();
7303
7304 /**
7305 * Returns the meta object for enum '{@link TaxationWithRoot.Separation_Causes <em>Separation Causes</em>}'.
7306 * <!-- begin-user-doc -->
7307 * <!-- end-user-doc -->
7308 * @return the meta object for enum '<em>Separation Causes</em>'.
7309 * @see TaxationWithRoot.Separation_Causes
7310 * @generated
7311 */
7312 EEnum getSeparation_Causes();
7313
7314 /**
7315 * Returns the meta object for enum '{@link TaxationWithRoot.Category_of_Permanent_Expense <em>Category of Permanent Expense</em>}'.
7316 * <!-- begin-user-doc -->
7317 * <!-- end-user-doc -->
7318 * @return the meta object for enum '<em>Category of Permanent Expense</em>'.
7319 * @see TaxationWithRoot.Category_of_Permanent_Expense
7320 * @generated
7321 */
7322 EEnum getCategory_of_Permanent_Expense();
7323
7324 /**
7325 * Returns the meta object for enum '{@link TaxationWithRoot.Category_of_Health_and_Pension_Insurances <em>Category of Health and Pension Insurances</em>}'.
7326 * <!-- begin-user-doc -->
7327 * <!-- end-user-doc -->
7328 * @return the meta object for enum '<em>Category of Health and Pension Insurances</em>'.
7329 * @see TaxationWithRoot.Category_of_Health_and_Pension_Insurances
7330 * @generated
7331 */
7332 EEnum getCategory_of_Health_and_Pension_Insurances();
7333
7334 /**
7335 * Returns the meta object for enum '{@link TaxationWithRoot.Category_of_Private_Insurance_and_Plan <em>Category of Private Insurance and Plan</em>}'.
7336 * <!-- begin-user-doc -->
7337 * <!-- end-user-doc -->
7338 * @return the meta object for enum '<em>Category of Private Insurance and Plan</em>'.
7339 * @see TaxationWithRoot.Category_of_Private_Insurance_and_Plan
7340 * @generated
7341 */
7342 EEnum getCategory_of_Private_Insurance_and_Plan();
7343
7344 /**
7345 * Returns the meta object for enum '{@link TaxationWithRoot.Legal_Union_Types <em>Legal Union Types</em>}'.
7346 * <!-- begin-user-doc -->
7347 * <!-- end-user-doc -->
7348 * @return the meta object for enum '<em>Legal Union Types</em>'.
7349 * @see TaxationWithRoot.Legal_Union_Types
7350 * @generated
7351 */
7352 EEnum getLegal_Union_Types();
7353
7354 /**
7355 * Returns the factory that creates the instances of the model.
7356 * <!-- begin-user-doc -->
7357 * <!-- end-user-doc -->
7358 * @return the factory that creates the instances of the model.
7359 * @generated
7360 */
7361 TaxationWithRootFactory getTaxationWithRootFactory();
7362
7363 /**
7364 * <!-- begin-user-doc -->
7365 * Defines literals for the meta objects that represent
7366 * <ul>
7367 * <li>each class,</li>
7368 * <li>each feature of each class,</li>
7369 * <li>each operation of each class,</li>
7370 * <li>each enum,</li>
7371 * <li>and each data type</li>
7372 * </ul>
7373 * <!-- end-user-doc -->
7374 * @generated
7375 */
7376 interface Literals {
7377 /**
7378 * The meta object literal for the '{@link TaxationWithRoot.impl.ConstantsImpl <em>Constants</em>}' class.
7379 * <!-- begin-user-doc -->
7380 * <!-- end-user-doc -->
7381 * @see TaxationWithRoot.impl.ConstantsImpl
7382 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getConstants()
7383 * @generated
7384 */
7385 EClass CONSTANTS = eINSTANCE.getConstants();
7386
7387 /**
7388 * The meta object literal for the '<em><b>MAXIMUM CE RATE FOR CHILD NOT BEING PART OF HOUSEHOLD</b></em>' attribute feature.
7389 * <!-- begin-user-doc -->
7390 * <!-- end-user-doc -->
7391 * @generated
7392 */
7393 EAttribute CONSTANTS__MAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD = eINSTANCE.getConstants_MAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD();
7394
7395 /**
7396 * The meta object literal for the '<em><b>MAXIMUM CE RATE FOR HOUSE CARE AND CHILD PART OF THE HOUSEHOLD CARE</b></em>' attribute feature.
7397 * <!-- begin-user-doc -->
7398 * <!-- end-user-doc -->
7399 * @generated
7400 */
7401 EAttribute CONSTANTS__MAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE = eINSTANCE.getConstants_MAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE();
7402
7403 /**
7404 * The meta object literal for the '<em><b>MINIMUM SALARY</b></em>' attribute feature.
7405 * <!-- begin-user-doc -->
7406 * <!-- end-user-doc -->
7407 * @generated
7408 */
7409 EAttribute CONSTANTS__MINIMUM_SALARY = eINSTANCE.getConstants_MINIMUM_SALARY();
7410
7411 /**
7412 * The meta object literal for the '<em><b>FLAT RATE FOR EXTRA PROFESSIONAL DEDUCTION</b></em>' attribute feature.
7413 * <!-- begin-user-doc -->
7414 * <!-- end-user-doc -->
7415 * @generated
7416 */
7417 EAttribute CONSTANTS__FLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION = eINSTANCE.getConstants_FLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION();
7418
7419 /**
7420 * The meta object literal for the '<em><b>MAXIMUM DEDUCTIBLE PERCENTAGE FOR DONATIONS</b></em>' attribute feature.
7421 * <!-- begin-user-doc -->
7422 * <!-- end-user-doc -->
7423 * @generated
7424 */
7425 EAttribute CONSTANTS__MAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS = eINSTANCE.getConstants_MAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS();
7426
7427 /**
7428 * The meta object literal for the '<em><b>MINIMUM DEDUCTIBLE AMOUNT FOR DONATIONS</b></em>' attribute feature.
7429 * <!-- begin-user-doc -->
7430 * <!-- end-user-doc -->
7431 * @generated
7432 */
7433 EAttribute CONSTANTS__MINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS = eINSTANCE.getConstants_MINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS();
7434
7435 /**
7436 * The meta object literal for the '<em><b>MAXIMUM DEDUCTIBLE AMOUNT FOR ADDITIONAL PENSION AND INSURANC</b></em>' attribute feature.
7437 * <!-- begin-user-doc -->
7438 * <!-- end-user-doc -->
7439 * @generated
7440 */
7441 EAttribute CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC = eINSTANCE.getConstants_MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC();
7442
7443 /**
7444 * The meta object literal for the '<em><b>MAXIMUM DEDUCTIBLE AMOUNT FOR ALIMONY EXPENSE</b></em>' attribute feature.
7445 * <!-- begin-user-doc -->
7446 * <!-- end-user-doc -->
7447 * @generated
7448 */
7449 EAttribute CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE = eINSTANCE.getConstants_MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE();
7450
7451 /**
7452 * The meta object literal for the '<em><b>MAXIMAL DISTANCE FOR TRAVEL EXPENSE DEDUCTION</b></em>' attribute feature.
7453 * <!-- begin-user-doc -->
7454 * <!-- end-user-doc -->
7455 * @generated
7456 */
7457 EAttribute CONSTANTS__MAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION = eINSTANCE.getConstants_MAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION();
7458
7459 /**
7460 * The meta object literal for the '<em><b>MAXIMAL FLAT DISTANCE FOR TRAVEL EXPENSE DEDUCTION</b></em>' attribute feature.
7461 * <!-- begin-user-doc -->
7462 * <!-- end-user-doc -->
7463 * @generated
7464 */
7465 EAttribute CONSTANTS__MAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION = eINSTANCE.getConstants_MAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION();
7466
7467 /**
7468 * The meta object literal for the '<em><b>MINIMAL DISTANCE FOR TRAVEL EXPENSE DEDUCTION</b></em>' attribute feature.
7469 * <!-- begin-user-doc -->
7470 * <!-- end-user-doc -->
7471 * @generated
7472 */
7473 EAttribute CONSTANTS__MINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION = eINSTANCE.getConstants_MINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION();
7474
7475 /**
7476 * The meta object literal for the '<em><b>FLAT RATE CIM DAILY</b></em>' attribute feature.
7477 * <!-- begin-user-doc -->
7478 * <!-- end-user-doc -->
7479 * @generated
7480 */
7481 EAttribute CONSTANTS__FLAT_RATE_CIM_DAILY = eINSTANCE.getConstants_FLAT_RATE_CIM_DAILY();
7482
7483 /**
7484 * The meta object literal for the '<em><b>FLAT RATE CIM MONTHLY</b></em>' attribute feature.
7485 * <!-- begin-user-doc -->
7486 * <!-- end-user-doc -->
7487 * @generated
7488 */
7489 EAttribute CONSTANTS__FLAT_RATE_CIM_MONTHLY = eINSTANCE.getConstants_FLAT_RATE_CIM_MONTHLY();
7490
7491 /**
7492 * The meta object literal for the '<em><b>FLAT RATE CIM YEARLY</b></em>' attribute feature.
7493 * <!-- begin-user-doc -->
7494 * <!-- end-user-doc -->
7495 * @generated
7496 */
7497 EAttribute CONSTANTS__FLAT_RATE_CIM_YEARLY = eINSTANCE.getConstants_FLAT_RATE_CIM_YEARLY();
7498
7499 /**
7500 * The meta object literal for the '<em><b>FLAT RATE CIP DAILY</b></em>' attribute feature.
7501 * <!-- begin-user-doc -->
7502 * <!-- end-user-doc -->
7503 * @generated
7504 */
7505 EAttribute CONSTANTS__FLAT_RATE_CIP_DAILY = eINSTANCE.getConstants_FLAT_RATE_CIP_DAILY();
7506
7507 /**
7508 * The meta object literal for the '<em><b>FLAT RATE CIP MONTHLY</b></em>' attribute feature.
7509 * <!-- begin-user-doc -->
7510 * <!-- end-user-doc -->
7511 * @generated
7512 */
7513 EAttribute CONSTANTS__FLAT_RATE_CIP_MONTHLY = eINSTANCE.getConstants_FLAT_RATE_CIP_MONTHLY();
7514
7515 /**
7516 * The meta object literal for the '<em><b>FLAT RATE CIP YEARLY</b></em>' attribute feature.
7517 * <!-- begin-user-doc -->
7518 * <!-- end-user-doc -->
7519 * @generated
7520 */
7521 EAttribute CONSTANTS__FLAT_RATE_CIP_YEARLY = eINSTANCE.getConstants_FLAT_RATE_CIP_YEARLY();
7522
7523 /**
7524 * The meta object literal for the '<em><b>FLAT RATE CIS DAILY</b></em>' attribute feature.
7525 * <!-- begin-user-doc -->
7526 * <!-- end-user-doc -->
7527 * @generated
7528 */
7529 EAttribute CONSTANTS__FLAT_RATE_CIS_DAILY = eINSTANCE.getConstants_FLAT_RATE_CIS_DAILY();
7530
7531 /**
7532 * The meta object literal for the '<em><b>FLAT RATE CIS MONTHLY</b></em>' attribute feature.
7533 * <!-- begin-user-doc -->
7534 * <!-- end-user-doc -->
7535 * @generated
7536 */
7537 EAttribute CONSTANTS__FLAT_RATE_CIS_MONTHLY = eINSTANCE.getConstants_FLAT_RATE_CIS_MONTHLY();
7538
7539 /**
7540 * The meta object literal for the '<em><b>FLAT RATE CIS YEARLY</b></em>' attribute feature.
7541 * <!-- begin-user-doc -->
7542 * <!-- end-user-doc -->
7543 * @generated
7544 */
7545 EAttribute CONSTANTS__FLAT_RATE_CIS_YEARLY = eINSTANCE.getConstants_FLAT_RATE_CIS_YEARLY();
7546
7547 /**
7548 * The meta object literal for the '<em><b>FLAT RATE FOR TRAVEL EXPENSE PER UNIT</b></em>' attribute feature.
7549 * <!-- begin-user-doc -->
7550 * <!-- end-user-doc -->
7551 * @generated
7552 */
7553 EAttribute CONSTANTS__FLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT = eINSTANCE.getConstants_FLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT();
7554
7555 /**
7556 * The meta object literal for the '<em><b>MAXIMUM DEDUCTIBLE AMOUNT FOR DS</b></em>' attribute feature.
7557 * <!-- begin-user-doc -->
7558 * <!-- end-user-doc -->
7559 * @generated
7560 */
7561 EAttribute CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS = eINSTANCE.getConstants_MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS();
7562
7563 /**
7564 * The meta object literal for the '<em><b>FLAT RATE FOR MISCELLANEOUS EXPENSE</b></em>' attribute feature.
7565 * <!-- begin-user-doc -->
7566 * <!-- end-user-doc -->
7567 * @generated
7568 */
7569 EAttribute CONSTANTS__FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE = eINSTANCE.getConstants_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE();
7570
7571 /**
7572 * The meta object literal for the '<em><b>DISABILITY FLAT RATE FOR MISCELLANEOUS EXPENSE</b></em>' attribute feature.
7573 * <!-- begin-user-doc -->
7574 * <!-- end-user-doc -->
7575 * @generated
7576 */
7577 EAttribute CONSTANTS__DISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE = eINSTANCE.getConstants_DISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE();
7578
7579 /**
7580 * The meta object literal for the '<em><b>MAXIMUM DEDUCTIBLE AMOUNT FOR ADDITIONAL PENSION AND INSURANCE</b></em>' attribute feature.
7581 * <!-- begin-user-doc -->
7582 * <!-- end-user-doc -->
7583 * @generated
7584 */
7585 EAttribute CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE = eINSTANCE.getConstants_MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE();
7586
7587 /**
7588 * The meta object literal for the '{@link TaxationWithRoot.impl.Income_TaxImpl <em>Income Tax</em>}' class.
7589 * <!-- begin-user-doc -->
7590 * <!-- end-user-doc -->
7591 * @see TaxationWithRoot.impl.Income_TaxImpl
7592 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getIncome_Tax()
7593 * @generated
7594 */
7595 EClass INCOME_TAX = eINSTANCE.getIncome_Tax();
7596
7597 /**
7598 * The meta object literal for the '<em><b>Tax Payer</b></em>' reference feature.
7599 * <!-- begin-user-doc -->
7600 * <!-- end-user-doc -->
7601 * @generated
7602 */
7603 EReference INCOME_TAX__TAX_PAYER = eINSTANCE.getIncome_Tax_TaxPayer();
7604
7605 /**
7606 * The meta object literal for the '<em><b>Tax amount</b></em>' attribute feature.
7607 * <!-- begin-user-doc -->
7608 * <!-- end-user-doc -->
7609 * @generated
7610 */
7611 EAttribute INCOME_TAX__TAX_AMOUNT = eINSTANCE.getIncome_Tax_Tax_amount();
7612
7613 /**
7614 * The meta object literal for the '<em><b>Tax year</b></em>' attribute feature.
7615 * <!-- begin-user-doc -->
7616 * <!-- end-user-doc -->
7617 * @generated
7618 */
7619 EAttribute INCOME_TAX__TAX_YEAR = eINSTANCE.getIncome_Tax_Tax_year();
7620
7621 /**
7622 * The meta object literal for the '<em><b>Id6</b></em>' attribute feature.
7623 * <!-- begin-user-doc -->
7624 * <!-- end-user-doc -->
7625 * @generated
7626 */
7627 EAttribute INCOME_TAX__ID6 = eINSTANCE.getIncome_Tax_Id6();
7628
7629 /**
7630 * The meta object literal for the '{@link TaxationWithRoot.impl.Tax_PayerImpl <em>Tax Payer</em>}' class.
7631 * <!-- begin-user-doc -->
7632 * <!-- end-user-doc -->
7633 * @see TaxationWithRoot.impl.Tax_PayerImpl
7634 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getTax_Payer()
7635 * @generated
7636 */
7637 EClass TAX_PAYER = eINSTANCE.getTax_Payer();
7638
7639 /**
7640 * The meta object literal for the '<em><b>Dependents</b></em>' containment reference list feature.
7641 * <!-- begin-user-doc -->
7642 * <!-- end-user-doc -->
7643 * @generated
7644 */
7645 EReference TAX_PAYER__DEPENDENTS = eINSTANCE.getTax_Payer_Dependents();
7646
7647 /**
7648 * The meta object literal for the '<em><b>From agent</b></em>' containment reference feature.
7649 * <!-- begin-user-doc -->
7650 * <!-- end-user-doc -->
7651 * @generated
7652 */
7653 EReference TAX_PAYER__FROM_AGENT = eINSTANCE.getTax_Payer_From_agent();
7654
7655 /**
7656 * The meta object literal for the '<em><b>Incomes</b></em>' containment reference list feature.
7657 * <!-- begin-user-doc -->
7658 * <!-- end-user-doc -->
7659 * @generated
7660 */
7661 EReference TAX_PAYER__INCOMES = eINSTANCE.getTax_Payer_Incomes();
7662
7663 /**
7664 * The meta object literal for the '<em><b>From law</b></em>' containment reference feature.
7665 * <!-- begin-user-doc -->
7666 * <!-- end-user-doc -->
7667 * @generated
7668 */
7669 EReference TAX_PAYER__FROM_LAW = eINSTANCE.getTax_Payer_From_law();
7670
7671 /**
7672 * The meta object literal for the '{@link TaxationWithRoot.impl.Physical_PersonImpl <em>Physical Person</em>}' class.
7673 * <!-- begin-user-doc -->
7674 * <!-- end-user-doc -->
7675 * @see TaxationWithRoot.impl.Physical_PersonImpl
7676 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getPhysical_Person()
7677 * @generated
7678 */
7679 EClass PHYSICAL_PERSON = eINSTANCE.getPhysical_Person();
7680
7681 /**
7682 * The meta object literal for the '<em><b>SS No</b></em>' attribute feature.
7683 * <!-- begin-user-doc -->
7684 * <!-- end-user-doc -->
7685 * @generated
7686 */
7687 EAttribute PHYSICAL_PERSON__SS_NO = eINSTANCE.getPhysical_Person_SSNo();
7688
7689 /**
7690 * The meta object literal for the '<em><b>Addresses</b></em>' reference list feature.
7691 * <!-- begin-user-doc -->
7692 * <!-- end-user-doc -->
7693 * @generated
7694 */
7695 EReference PHYSICAL_PERSON__ADDRESSES = eINSTANCE.getPhysical_Person_Addresses();
7696
7697 /**
7698 * The meta object literal for the '<em><b>Birth year</b></em>' attribute feature.
7699 * <!-- begin-user-doc -->
7700 * <!-- end-user-doc -->
7701 * @generated
7702 */
7703 EAttribute PHYSICAL_PERSON__BIRTH_YEAR = eINSTANCE.getPhysical_Person_Birth_year();
7704
7705 /**
7706 * The meta object literal for the '<em><b>Disability percentage</b></em>' attribute feature.
7707 * <!-- begin-user-doc -->
7708 * <!-- end-user-doc -->
7709 * @generated
7710 */
7711 EAttribute PHYSICAL_PERSON__DISABILITY_PERCENTAGE = eINSTANCE.getPhysical_Person_Disability_percentage();
7712
7713 /**
7714 * The meta object literal for the '<em><b>Disability type</b></em>' attribute feature.
7715 * <!-- begin-user-doc -->
7716 * <!-- end-user-doc -->
7717 * @generated
7718 */
7719 EAttribute PHYSICAL_PERSON__DISABILITY_TYPE = eINSTANCE.getPhysical_Person_Disability_type();
7720
7721 /**
7722 * The meta object literal for the '<em><b>Birth month</b></em>' attribute feature.
7723 * <!-- begin-user-doc -->
7724 * <!-- end-user-doc -->
7725 * @generated
7726 */
7727 EAttribute PHYSICAL_PERSON__BIRTH_MONTH = eINSTANCE.getPhysical_Person_Birth_month();
7728
7729 /**
7730 * The meta object literal for the '<em><b>Birth day</b></em>' attribute feature.
7731 * <!-- begin-user-doc -->
7732 * <!-- end-user-doc -->
7733 * @generated
7734 */
7735 EAttribute PHYSICAL_PERSON__BIRTH_DAY = eINSTANCE.getPhysical_Person_Birth_day();
7736
7737 /**
7738 * The meta object literal for the '<em><b>Expenses</b></em>' reference list feature.
7739 * <!-- begin-user-doc -->
7740 * <!-- end-user-doc -->
7741 * @generated
7742 */
7743 EReference PHYSICAL_PERSON__EXPENSES = eINSTANCE.getPhysical_Person_Expenses();
7744
7745 /**
7746 * The meta object literal for the '<em><b>Is widower</b></em>' attribute feature.
7747 * <!-- begin-user-doc -->
7748 * <!-- end-user-doc -->
7749 * @generated
7750 */
7751 EAttribute PHYSICAL_PERSON__IS_WIDOWER = eINSTANCE.getPhysical_Person_Is_widower();
7752
7753 /**
7754 * The meta object literal for the '{@link TaxationWithRoot.impl.AddressImpl <em>Address</em>}' class.
7755 * <!-- begin-user-doc -->
7756 * <!-- end-user-doc -->
7757 * @see TaxationWithRoot.impl.AddressImpl
7758 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getAddress()
7759 * @generated
7760 */
7761 EClass ADDRESS = eINSTANCE.getAddress();
7762
7763 /**
7764 * The meta object literal for the '<em><b>Country</b></em>' attribute feature.
7765 * <!-- begin-user-doc -->
7766 * <!-- end-user-doc -->
7767 * @generated
7768 */
7769 EAttribute ADDRESS__COUNTRY = eINSTANCE.getAddress_Country();
7770
7771 /**
7772 * The meta object literal for the '<em><b>Street</b></em>' attribute feature.
7773 * <!-- begin-user-doc -->
7774 * <!-- end-user-doc -->
7775 * @generated
7776 */
7777 EAttribute ADDRESS__STREET = eINSTANCE.getAddress_Street();
7778
7779 /**
7780 * The meta object literal for the '<em><b>Zip Code</b></em>' attribute feature.
7781 * <!-- begin-user-doc -->
7782 * <!-- end-user-doc -->
7783 * @generated
7784 */
7785 EAttribute ADDRESS__ZIP_CODE = eINSTANCE.getAddress_ZipCode();
7786
7787 /**
7788 * The meta object literal for the '<em><b>City</b></em>' attribute feature.
7789 * <!-- begin-user-doc -->
7790 * <!-- end-user-doc -->
7791 * @generated
7792 */
7793 EAttribute ADDRESS__CITY = eINSTANCE.getAddress_City();
7794
7795 /**
7796 * The meta object literal for the '<em><b>Id2</b></em>' attribute feature.
7797 * <!-- begin-user-doc -->
7798 * <!-- end-user-doc -->
7799 * @generated
7800 */
7801 EAttribute ADDRESS__ID2 = eINSTANCE.getAddress_Id2();
7802
7803 /**
7804 * The meta object literal for the '<em><b>Tax Payer</b></em>' reference list feature.
7805 * <!-- begin-user-doc -->
7806 * <!-- end-user-doc -->
7807 * @generated
7808 */
7809 EReference ADDRESS__TAX_PAYER = eINSTANCE.getAddress_TaxPayer();
7810
7811 /**
7812 * The meta object literal for the '{@link TaxationWithRoot.impl.ExpenseImpl <em>Expense</em>}' class.
7813 * <!-- begin-user-doc -->
7814 * <!-- end-user-doc -->
7815 * @see TaxationWithRoot.impl.ExpenseImpl
7816 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getExpense()
7817 * @generated
7818 */
7819 EClass EXPENSE = eINSTANCE.getExpense();
7820
7821 /**
7822 * The meta object literal for the '<em><b>Declared amount</b></em>' attribute feature.
7823 * <!-- begin-user-doc -->
7824 * <!-- end-user-doc -->
7825 * @generated
7826 */
7827 EAttribute EXPENSE__DECLARED_AMOUNT = eINSTANCE.getExpense_Declared_amount();
7828
7829 /**
7830 * The meta object literal for the '<em><b>Expense purpose</b></em>' attribute feature.
7831 * <!-- begin-user-doc -->
7832 * <!-- end-user-doc -->
7833 * @generated
7834 */
7835 EAttribute EXPENSE__EXPENSE_PURPOSE = eINSTANCE.getExpense_Expense_purpose();
7836
7837 /**
7838 * The meta object literal for the '<em><b>Dependent</b></em>' reference feature.
7839 * <!-- begin-user-doc -->
7840 * <!-- end-user-doc -->
7841 * @generated
7842 */
7843 EReference EXPENSE__DEPENDENT = eINSTANCE.getExpense_Dependent();
7844
7845 /**
7846 * The meta object literal for the '<em><b>From agent</b></em>' reference feature.
7847 * <!-- begin-user-doc -->
7848 * <!-- end-user-doc -->
7849 * @generated
7850 */
7851 EReference EXPENSE__FROM_AGENT = eINSTANCE.getExpense_From_agent();
7852
7853 /**
7854 * The meta object literal for the '<em><b>Income</b></em>' container reference feature.
7855 * <!-- begin-user-doc -->
7856 * <!-- end-user-doc -->
7857 * @generated
7858 */
7859 EReference EXPENSE__INCOME = eINSTANCE.getExpense_Income();
7860
7861 /**
7862 * The meta object literal for the '<em><b>Id4</b></em>' attribute feature.
7863 * <!-- begin-user-doc -->
7864 * <!-- end-user-doc -->
7865 * @generated
7866 */
7867 EAttribute EXPENSE__ID4 = eINSTANCE.getExpense_Id4();
7868
7869 /**
7870 * The meta object literal for the '<em><b>Beneficiary</b></em>' reference feature.
7871 * <!-- begin-user-doc -->
7872 * <!-- end-user-doc -->
7873 * @generated
7874 */
7875 EReference EXPENSE__BENEFICIARY = eINSTANCE.getExpense_Beneficiary();
7876
7877 /**
7878 * The meta object literal for the '{@link TaxationWithRoot.impl.DependentImpl <em>Dependent</em>}' class.
7879 * <!-- begin-user-doc -->
7880 * <!-- end-user-doc -->
7881 * @see TaxationWithRoot.impl.DependentImpl
7882 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getDependent()
7883 * @generated
7884 */
7885 EClass DEPENDENT = eINSTANCE.getDependent();
7886
7887 /**
7888 * The meta object literal for the '<em><b>Dependent type</b></em>' attribute feature.
7889 * <!-- begin-user-doc -->
7890 * <!-- end-user-doc -->
7891 * @generated
7892 */
7893 EAttribute DEPENDENT__DEPENDENT_TYPE = eINSTANCE.getDependent_Dependent_type();
7894
7895 /**
7896 * The meta object literal for the '<em><b>Responsible person</b></em>' container reference feature.
7897 * <!-- begin-user-doc -->
7898 * <!-- end-user-doc -->
7899 * @generated
7900 */
7901 EReference DEPENDENT__RESPONSIBLE_PERSON = eINSTANCE.getDependent_Responsible_person();
7902
7903 /**
7904 * The meta object literal for the '<em><b>Continued studies</b></em>' attribute feature.
7905 * <!-- begin-user-doc -->
7906 * <!-- end-user-doc -->
7907 * @generated
7908 */
7909 EAttribute DEPENDENT__CONTINUED_STUDIES = eINSTANCE.getDependent_Continued_studies();
7910
7911 /**
7912 * The meta object literal for the '<em><b>Allowances</b></em>' containment reference feature.
7913 * <!-- begin-user-doc -->
7914 * <!-- end-user-doc -->
7915 * @generated
7916 */
7917 EReference DEPENDENT__ALLOWANCES = eINSTANCE.getDependent_Allowances();
7918
7919 /**
7920 * The meta object literal for the '<em><b>Household</b></em>' container reference feature.
7921 * <!-- begin-user-doc -->
7922 * <!-- end-user-doc -->
7923 * @generated
7924 */
7925 EReference DEPENDENT__HOUSEHOLD = eINSTANCE.getDependent_Household();
7926
7927 /**
7928 * The meta object literal for the '<em><b>From agent</b></em>' reference feature.
7929 * <!-- begin-user-doc -->
7930 * <!-- end-user-doc -->
7931 * @generated
7932 */
7933 EReference DEPENDENT__FROM_AGENT = eINSTANCE.getDependent_From_agent();
7934
7935 /**
7936 * The meta object literal for the '<em><b>Expense</b></em>' reference list feature.
7937 * <!-- begin-user-doc -->
7938 * <!-- end-user-doc -->
7939 * @generated
7940 */
7941 EReference DEPENDENT__EXPENSE = eINSTANCE.getDependent_Expense();
7942
7943 /**
7944 * The meta object literal for the '{@link TaxationWithRoot.impl.External_AllowanceImpl <em>External Allowance</em>}' class.
7945 * <!-- begin-user-doc -->
7946 * <!-- end-user-doc -->
7947 * @see TaxationWithRoot.impl.External_AllowanceImpl
7948 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getExternal_Allowance()
7949 * @generated
7950 */
7951 EClass EXTERNAL_ALLOWANCE = eINSTANCE.getExternal_Allowance();
7952
7953 /**
7954 * The meta object literal for the '<em><b>Grantor</b></em>' attribute feature.
7955 * <!-- begin-user-doc -->
7956 * <!-- end-user-doc -->
7957 * @generated
7958 */
7959 EAttribute EXTERNAL_ALLOWANCE__GRANTOR = eINSTANCE.getExternal_Allowance_Grantor();
7960
7961 /**
7962 * The meta object literal for the '<em><b>Starting year</b></em>' attribute feature.
7963 * <!-- begin-user-doc -->
7964 * <!-- end-user-doc -->
7965 * @generated
7966 */
7967 EAttribute EXTERNAL_ALLOWANCE__STARTING_YEAR = eINSTANCE.getExternal_Allowance_Starting_year();
7968
7969 /**
7970 * The meta object literal for the '<em><b>Ending year</b></em>' attribute feature.
7971 * <!-- begin-user-doc -->
7972 * <!-- end-user-doc -->
7973 * @generated
7974 */
7975 EAttribute EXTERNAL_ALLOWANCE__ENDING_YEAR = eINSTANCE.getExternal_Allowance_Ending_year();
7976
7977 /**
7978 * The meta object literal for the '<em><b>Reciver</b></em>' reference feature.
7979 * <!-- begin-user-doc -->
7980 * <!-- end-user-doc -->
7981 * @generated
7982 */
7983 EReference EXTERNAL_ALLOWANCE__RECIVER = eINSTANCE.getExternal_Allowance_Reciver();
7984
7985 /**
7986 * The meta object literal for the '<em><b>Id5</b></em>' attribute feature.
7987 * <!-- begin-user-doc -->
7988 * <!-- end-user-doc -->
7989 * @generated
7990 */
7991 EAttribute EXTERNAL_ALLOWANCE__ID5 = eINSTANCE.getExternal_Allowance_Id5();
7992
7993 /**
7994 * The meta object literal for the '<em><b>Person</b></em>' container reference feature.
7995 * <!-- begin-user-doc -->
7996 * <!-- end-user-doc -->
7997 * @generated
7998 */
7999 EReference EXTERNAL_ALLOWANCE__PERSON = eINSTANCE.getExternal_Allowance_Person();
8000
8001 /**
8002 * The meta object literal for the '{@link TaxationWithRoot.impl.HouseholdImpl <em>Household</em>}' class.
8003 * <!-- begin-user-doc -->
8004 * <!-- end-user-doc -->
8005 * @see TaxationWithRoot.impl.HouseholdImpl
8006 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getHousehold()
8007 * @generated
8008 */
8009 EClass HOUSEHOLD = eINSTANCE.getHousehold();
8010
8011 /**
8012 * The meta object literal for the '<em><b>Parents</b></em>' containment reference feature.
8013 * <!-- begin-user-doc -->
8014 * <!-- end-user-doc -->
8015 * @generated
8016 */
8017 EReference HOUSEHOLD__PARENTS = eINSTANCE.getHousehold_Parents();
8018
8019 /**
8020 * The meta object literal for the '<em><b>Id1</b></em>' attribute feature.
8021 * <!-- begin-user-doc -->
8022 * <!-- end-user-doc -->
8023 * @generated
8024 */
8025 EAttribute HOUSEHOLD__ID1 = eINSTANCE.getHousehold_Id1();
8026
8027 /**
8028 * The meta object literal for the '<em><b>Children</b></em>' containment reference list feature.
8029 * <!-- begin-user-doc -->
8030 * <!-- end-user-doc -->
8031 * @generated
8032 */
8033 EReference HOUSEHOLD__CHILDREN = eINSTANCE.getHousehold_Children();
8034
8035 /**
8036 * The meta object literal for the '{@link TaxationWithRoot.impl.Legal_Union_RecordImpl <em>Legal Union Record</em>}' class.
8037 * <!-- begin-user-doc -->
8038 * <!-- end-user-doc -->
8039 * @see TaxationWithRoot.impl.Legal_Union_RecordImpl
8040 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getLegal_Union_Record()
8041 * @generated
8042 */
8043 EClass LEGAL_UNION_RECORD = eINSTANCE.getLegal_Union_Record();
8044
8045 /**
8046 * The meta object literal for the '<em><b>Start year</b></em>' attribute feature.
8047 * <!-- begin-user-doc -->
8048 * <!-- end-user-doc -->
8049 * @generated
8050 */
8051 EAttribute LEGAL_UNION_RECORD__START_YEAR = eINSTANCE.getLegal_Union_Record_Start_year();
8052
8053 /**
8054 * The meta object literal for the '<em><b>End year</b></em>' attribute feature.
8055 * <!-- begin-user-doc -->
8056 * <!-- end-user-doc -->
8057 * @generated
8058 */
8059 EAttribute LEGAL_UNION_RECORD__END_YEAR = eINSTANCE.getLegal_Union_Record_End_year();
8060
8061 /**
8062 * The meta object literal for the '<em><b>Separation cause</b></em>' attribute feature.
8063 * <!-- begin-user-doc -->
8064 * <!-- end-user-doc -->
8065 * @generated
8066 */
8067 EAttribute LEGAL_UNION_RECORD__SEPARATION_CAUSE = eINSTANCE.getLegal_Union_Record_Separation_cause();
8068
8069 /**
8070 * The meta object literal for the '<em><b>Individual A</b></em>' containment reference feature.
8071 * <!-- begin-user-doc -->
8072 * <!-- end-user-doc -->
8073 * @generated
8074 */
8075 EReference LEGAL_UNION_RECORD__INDIVIDUAL_A = eINSTANCE.getLegal_Union_Record_Individual_A();
8076
8077 /**
8078 * The meta object literal for the '<em><b>Individual B</b></em>' containment reference list feature.
8079 * <!-- begin-user-doc -->
8080 * <!-- end-user-doc -->
8081 * @generated
8082 */
8083 EReference LEGAL_UNION_RECORD__INDIVIDUAL_B = eINSTANCE.getLegal_Union_Record_Individual_B();
8084
8085 /**
8086 * The meta object literal for the '<em><b>Properties</b></em>' containment reference list feature.
8087 * <!-- begin-user-doc -->
8088 * <!-- end-user-doc -->
8089 * @generated
8090 */
8091 EReference LEGAL_UNION_RECORD__PROPERTIES = eINSTANCE.getLegal_Union_Record_Properties();
8092
8093 /**
8094 * The meta object literal for the '<em><b>Mutual agreement</b></em>' attribute feature.
8095 * <!-- begin-user-doc -->
8096 * <!-- end-user-doc -->
8097 * @generated
8098 */
8099 EAttribute LEGAL_UNION_RECORD__MUTUAL_AGREEMENT = eINSTANCE.getLegal_Union_Record_Mutual_agreement();
8100
8101 /**
8102 * The meta object literal for the '<em><b>Id9</b></em>' attribute feature.
8103 * <!-- begin-user-doc -->
8104 * <!-- end-user-doc -->
8105 * @generated
8106 */
8107 EAttribute LEGAL_UNION_RECORD__ID9 = eINSTANCE.getLegal_Union_Record_Id9();
8108
8109 /**
8110 * The meta object literal for the '<em><b>Household</b></em>' container reference feature.
8111 * <!-- begin-user-doc -->
8112 * <!-- end-user-doc -->
8113 * @generated
8114 */
8115 EReference LEGAL_UNION_RECORD__HOUSEHOLD = eINSTANCE.getLegal_Union_Record_Household();
8116
8117 /**
8118 * The meta object literal for the '{@link TaxationWithRoot.impl.Tax_PropertyImpl <em>Tax Property</em>}' class.
8119 * <!-- begin-user-doc -->
8120 * <!-- end-user-doc -->
8121 * @see TaxationWithRoot.impl.Tax_PropertyImpl
8122 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getTax_Property()
8123 * @generated
8124 */
8125 EClass TAX_PROPERTY = eINSTANCE.getTax_Property();
8126
8127 /**
8128 * The meta object literal for the '<em><b>Starting year</b></em>' attribute feature.
8129 * <!-- begin-user-doc -->
8130 * <!-- end-user-doc -->
8131 * @generated
8132 */
8133 EAttribute TAX_PROPERTY__STARTING_YEAR = eINSTANCE.getTax_Property_Starting_year();
8134
8135 /**
8136 * The meta object literal for the '<em><b>Id10</b></em>' attribute feature.
8137 * <!-- begin-user-doc -->
8138 * <!-- end-user-doc -->
8139 * @generated
8140 */
8141 EAttribute TAX_PROPERTY__ID10 = eINSTANCE.getTax_Property_Id10();
8142
8143 /**
8144 * The meta object literal for the '<em><b>Union record</b></em>' container reference feature.
8145 * <!-- begin-user-doc -->
8146 * <!-- end-user-doc -->
8147 * @generated
8148 */
8149 EReference TAX_PROPERTY__UNION_RECORD = eINSTANCE.getTax_Property_Union_record();
8150
8151 /**
8152 * The meta object literal for the '{@link TaxationWithRoot.Tax_Case <em>Tax Case</em>}' class.
8153 * <!-- begin-user-doc -->
8154 * <!-- end-user-doc -->
8155 * @see TaxationWithRoot.Tax_Case
8156 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getTax_Case()
8157 * @generated
8158 */
8159 EClass TAX_CASE = eINSTANCE.getTax_Case();
8160
8161 /**
8162 * The meta object literal for the '{@link TaxationWithRoot.impl.FromAgentImpl <em>From Agent</em>}' class.
8163 * <!-- begin-user-doc -->
8164 * <!-- end-user-doc -->
8165 * @see TaxationWithRoot.impl.FromAgentImpl
8166 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getFromAgent()
8167 * @generated
8168 */
8169 EClass FROM_AGENT = eINSTANCE.getFromAgent();
8170
8171 /**
8172 * The meta object literal for the '<em><b>Tax Payer</b></em>' container reference feature.
8173 * <!-- begin-user-doc -->
8174 * <!-- end-user-doc -->
8175 * @generated
8176 */
8177 EReference FROM_AGENT__TAX_PAYER = eINSTANCE.getFromAgent_TaxPayer();
8178
8179 /**
8180 * The meta object literal for the '<em><b>Is dependent eligible for CE Not In Houshold Children Care</b></em>' attribute feature.
8181 * <!-- begin-user-doc -->
8182 * <!-- end-user-doc -->
8183 * @generated
8184 */
8185 EAttribute FROM_AGENT__IS_DEPENDENT_ELIGIBLE_FOR_CE_NOT_IN_HOUSHOLD_CHILDREN_CARE = eINSTANCE.getFromAgent_Is_dependent_eligible_for_CE_Not_In_Houshold_Children_Care();
8186
8187 /**
8188 * The meta object literal for the '<em><b>Expense</b></em>' reference feature.
8189 * <!-- begin-user-doc -->
8190 * <!-- end-user-doc -->
8191 * @generated
8192 */
8193 EReference FROM_AGENT__EXPENSE = eINSTANCE.getFromAgent_Expense();
8194
8195 /**
8196 * The meta object literal for the '<em><b>Is eligible debt</b></em>' attribute feature.
8197 * <!-- begin-user-doc -->
8198 * <!-- end-user-doc -->
8199 * @generated
8200 */
8201 EAttribute FROM_AGENT__IS_ELIGIBLE_DEBT = eINSTANCE.getFromAgent_Is_eligible_debt();
8202
8203 /**
8204 * The meta object literal for the '<em><b>Dependent</b></em>' reference feature.
8205 * <!-- begin-user-doc -->
8206 * <!-- end-user-doc -->
8207 * @generated
8208 */
8209 EReference FROM_AGENT__DEPENDENT = eINSTANCE.getFromAgent_Dependent();
8210
8211 /**
8212 * The meta object literal for the '{@link TaxationWithRoot.impl.IncomeImpl <em>Income</em>}' class.
8213 * <!-- begin-user-doc -->
8214 * <!-- end-user-doc -->
8215 * @see TaxationWithRoot.impl.IncomeImpl
8216 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getIncome()
8217 * @generated
8218 */
8219 EClass INCOME = eINSTANCE.getIncome();
8220
8221 /**
8222 * The meta object literal for the '<em><b>Income amount</b></em>' attribute feature.
8223 * <!-- begin-user-doc -->
8224 * <!-- end-user-doc -->
8225 * @generated
8226 */
8227 EAttribute INCOME__INCOME_AMOUNT = eINSTANCE.getIncome_Income_amount();
8228
8229 /**
8230 * The meta object literal for the '<em><b>Income type</b></em>' containment reference feature.
8231 * <!-- begin-user-doc -->
8232 * <!-- end-user-doc -->
8233 * @generated
8234 */
8235 EReference INCOME__INCOME_TYPE = eINSTANCE.getIncome_Income_type();
8236
8237 /**
8238 * The meta object literal for the '<em><b>Tax card</b></em>' containment reference feature.
8239 * <!-- begin-user-doc -->
8240 * <!-- end-user-doc -->
8241 * @generated
8242 */
8243 EReference INCOME__TAX_CARD = eINSTANCE.getIncome_Tax_card();
8244
8245 /**
8246 * The meta object literal for the '<em><b>Tax liability</b></em>' attribute feature.
8247 * <!-- begin-user-doc -->
8248 * <!-- end-user-doc -->
8249 * @generated
8250 */
8251 EAttribute INCOME__TAX_LIABILITY = eINSTANCE.getIncome_Tax_liability();
8252
8253 /**
8254 * The meta object literal for the '<em><b>Tax Payer</b></em>' container reference feature.
8255 * <!-- begin-user-doc -->
8256 * <!-- end-user-doc -->
8257 * @generated
8258 */
8259 EReference INCOME__TAX_PAYER = eINSTANCE.getIncome_TaxPayer();
8260
8261 /**
8262 * The meta object literal for the '<em><b>Details</b></em>' containment reference list feature.
8263 * <!-- begin-user-doc -->
8264 * <!-- end-user-doc -->
8265 * @generated
8266 */
8267 EReference INCOME__DETAILS = eINSTANCE.getIncome_Details();
8268
8269 /**
8270 * The meta object literal for the '<em><b>Num</b></em>' attribute feature.
8271 * <!-- begin-user-doc -->
8272 * <!-- end-user-doc -->
8273 * @generated
8274 */
8275 EAttribute INCOME__NUM = eINSTANCE.getIncome_Num();
8276
8277 /**
8278 * The meta object literal for the '<em><b>Expenses</b></em>' containment reference list feature.
8279 * <!-- begin-user-doc -->
8280 * <!-- end-user-doc -->
8281 * @generated
8282 */
8283 EReference INCOME__EXPENSES = eINSTANCE.getIncome_Expenses();
8284
8285 /**
8286 * The meta object literal for the '{@link TaxationWithRoot.impl.Income_TypeImpl <em>Income Type</em>}' class.
8287 * <!-- begin-user-doc -->
8288 * <!-- end-user-doc -->
8289 * @see TaxationWithRoot.impl.Income_TypeImpl
8290 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getIncome_Type()
8291 * @generated
8292 */
8293 EClass INCOME_TYPE = eINSTANCE.getIncome_Type();
8294
8295 /**
8296 * The meta object literal for the '<em><b>Id8</b></em>' attribute feature.
8297 * <!-- begin-user-doc -->
8298 * <!-- end-user-doc -->
8299 * @generated
8300 */
8301 EAttribute INCOME_TYPE__ID8 = eINSTANCE.getIncome_Type_Id8();
8302
8303 /**
8304 * The meta object literal for the '<em><b>Income</b></em>' container reference feature.
8305 * <!-- begin-user-doc -->
8306 * <!-- end-user-doc -->
8307 * @generated
8308 */
8309 EReference INCOME_TYPE__INCOME = eINSTANCE.getIncome_Type_Income();
8310
8311 /**
8312 * The meta object literal for the '{@link TaxationWithRoot.impl.Tax_CardImpl <em>Tax Card</em>}' class.
8313 * <!-- begin-user-doc -->
8314 * <!-- end-user-doc -->
8315 * @see TaxationWithRoot.impl.Tax_CardImpl
8316 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getTax_Card()
8317 * @generated
8318 */
8319 EClass TAX_CARD = eINSTANCE.getTax_Card();
8320
8321 /**
8322 * The meta object literal for the '<em><b>Card identifier</b></em>' attribute feature.
8323 * <!-- begin-user-doc -->
8324 * <!-- end-user-doc -->
8325 * @generated
8326 */
8327 EAttribute TAX_CARD__CARD_IDENTIFIER = eINSTANCE.getTax_Card_Card_identifier();
8328
8329 /**
8330 * The meta object literal for the '<em><b>Tax office</b></em>' attribute feature.
8331 * <!-- begin-user-doc -->
8332 * <!-- end-user-doc -->
8333 * @generated
8334 */
8335 EAttribute TAX_CARD__TAX_OFFICE = eINSTANCE.getTax_Card_Tax_office();
8336
8337 /**
8338 * The meta object literal for the '<em><b>Percentage of witholding</b></em>' attribute feature.
8339 * <!-- begin-user-doc -->
8340 * <!-- end-user-doc -->
8341 * @generated
8342 */
8343 EAttribute TAX_CARD__PERCENTAGE_OF_WITHOLDING = eINSTANCE.getTax_Card_Percentage_of_witholding();
8344
8345 /**
8346 * The meta object literal for the '<em><b>Tax payers name surname</b></em>' attribute list feature.
8347 * <!-- begin-user-doc -->
8348 * <!-- end-user-doc -->
8349 * @generated
8350 */
8351 EAttribute TAX_CARD__TAX_PAYERS_NAME_SURNAME = eINSTANCE.getTax_Card_Tax_payers_name_surname();
8352
8353 /**
8354 * The meta object literal for the '<em><b>Tax payers partner name surname</b></em>' attribute list feature.
8355 * <!-- begin-user-doc -->
8356 * <!-- end-user-doc -->
8357 * @generated
8358 */
8359 EAttribute TAX_CARD__TAX_PAYERS_PARTNER_NAME_SURNAME = eINSTANCE.getTax_Card_Tax_payers_partner_name_surname();
8360
8361 /**
8362 * The meta object literal for the '<em><b>Tax payers address</b></em>' reference feature.
8363 * <!-- begin-user-doc -->
8364 * <!-- end-user-doc -->
8365 * @generated
8366 */
8367 EReference TAX_CARD__TAX_PAYERS_ADDRESS = eINSTANCE.getTax_Card_Tax_payers_address();
8368
8369 /**
8370 * The meta object literal for the '<em><b>Jobs Employer SS No</b></em>' attribute feature.
8371 * <!-- begin-user-doc -->
8372 * <!-- end-user-doc -->
8373 * @generated
8374 */
8375 EAttribute TAX_CARD__JOBS_EMPLOYER_SS_NO = eINSTANCE.getTax_Card_Jobs_Employer_SSNo();
8376
8377 /**
8378 * The meta object literal for the '<em><b>Jobs employers name</b></em>' attribute feature.
8379 * <!-- begin-user-doc -->
8380 * <!-- end-user-doc -->
8381 * @generated
8382 */
8383 EAttribute TAX_CARD__JOBS_EMPLOYERS_NAME = eINSTANCE.getTax_Card_Jobs_employers_name();
8384
8385 /**
8386 * The meta object literal for the '<em><b>Jobs activity type</b></em>' attribute feature.
8387 * <!-- begin-user-doc -->
8388 * <!-- end-user-doc -->
8389 * @generated
8390 */
8391 EAttribute TAX_CARD__JOBS_ACTIVITY_TYPE = eINSTANCE.getTax_Card_Jobs_activity_type();
8392
8393 /**
8394 * The meta object literal for the '<em><b>Jobs place of work</b></em>' attribute feature.
8395 * <!-- begin-user-doc -->
8396 * <!-- end-user-doc -->
8397 * @generated
8398 */
8399 EAttribute TAX_CARD__JOBS_PLACE_OF_WORK = eINSTANCE.getTax_Card_Jobs_place_of_work();
8400
8401 /**
8402 * The meta object literal for the '<em><b>Deduction FD daily</b></em>' attribute feature.
8403 * <!-- begin-user-doc -->
8404 * <!-- end-user-doc -->
8405 * @generated
8406 */
8407 EAttribute TAX_CARD__DEDUCTION_FD_DAILY = eINSTANCE.getTax_Card_Deduction_FD_daily();
8408
8409 /**
8410 * The meta object literal for the '<em><b>Deduction FD monthly</b></em>' attribute feature.
8411 * <!-- begin-user-doc -->
8412 * <!-- end-user-doc -->
8413 * @generated
8414 */
8415 EAttribute TAX_CARD__DEDUCTION_FD_MONTHLY = eINSTANCE.getTax_Card_Deduction_FD_monthly();
8416
8417 /**
8418 * The meta object literal for the '<em><b>Deduction AC daily</b></em>' attribute feature.
8419 * <!-- begin-user-doc -->
8420 * <!-- end-user-doc -->
8421 * @generated
8422 */
8423 EAttribute TAX_CARD__DEDUCTION_AC_DAILY = eINSTANCE.getTax_Card_Deduction_AC_daily();
8424
8425 /**
8426 * The meta object literal for the '<em><b>Deduction AC monthly</b></em>' attribute feature.
8427 * <!-- begin-user-doc -->
8428 * <!-- end-user-doc -->
8429 * @generated
8430 */
8431 EAttribute TAX_CARD__DEDUCTION_AC_MONTHLY = eINSTANCE.getTax_Card_Deduction_AC_monthly();
8432
8433 /**
8434 * The meta object literal for the '<em><b>Deduction AC yearly</b></em>' attribute feature.
8435 * <!-- begin-user-doc -->
8436 * <!-- end-user-doc -->
8437 * @generated
8438 */
8439 EAttribute TAX_CARD__DEDUCTION_AC_YEARLY = eINSTANCE.getTax_Card_Deduction_AC_yearly();
8440
8441 /**
8442 * The meta object literal for the '<em><b>Deduction CE daily</b></em>' attribute feature.
8443 * <!-- begin-user-doc -->
8444 * <!-- end-user-doc -->
8445 * @generated
8446 */
8447 EAttribute TAX_CARD__DEDUCTION_CE_DAILY = eINSTANCE.getTax_Card_Deduction_CE_daily();
8448
8449 /**
8450 * The meta object literal for the '<em><b>Deduction CE monthly</b></em>' attribute feature.
8451 * <!-- begin-user-doc -->
8452 * <!-- end-user-doc -->
8453 * @generated
8454 */
8455 EAttribute TAX_CARD__DEDUCTION_CE_MONTHLY = eINSTANCE.getTax_Card_Deduction_CE_monthly();
8456
8457 /**
8458 * The meta object literal for the '<em><b>Deduction CE yearly</b></em>' attribute feature.
8459 * <!-- begin-user-doc -->
8460 * <!-- end-user-doc -->
8461 * @generated
8462 */
8463 EAttribute TAX_CARD__DEDUCTION_CE_YEARLY = eINSTANCE.getTax_Card_Deduction_CE_yearly();
8464
8465 /**
8466 * The meta object literal for the '<em><b>Deduction DS daily</b></em>' attribute feature.
8467 * <!-- begin-user-doc -->
8468 * <!-- end-user-doc -->
8469 * @generated
8470 */
8471 EAttribute TAX_CARD__DEDUCTION_DS_DAILY = eINSTANCE.getTax_Card_Deduction_DS_daily();
8472
8473 /**
8474 * The meta object literal for the '<em><b>Deduction DS monthly</b></em>' attribute feature.
8475 * <!-- begin-user-doc -->
8476 * <!-- end-user-doc -->
8477 * @generated
8478 */
8479 EAttribute TAX_CARD__DEDUCTION_DS_MONTHLY = eINSTANCE.getTax_Card_Deduction_DS_monthly();
8480
8481 /**
8482 * The meta object literal for the '<em><b>Deduction FO daily</b></em>' attribute feature.
8483 * <!-- begin-user-doc -->
8484 * <!-- end-user-doc -->
8485 * @generated
8486 */
8487 EAttribute TAX_CARD__DEDUCTION_FO_DAILY = eINSTANCE.getTax_Card_Deduction_FO_daily();
8488
8489 /**
8490 * The meta object literal for the '<em><b>Deduction FO monthly</b></em>' attribute feature.
8491 * <!-- begin-user-doc -->
8492 * <!-- end-user-doc -->
8493 * @generated
8494 */
8495 EAttribute TAX_CARD__DEDUCTION_FO_MONTHLY = eINSTANCE.getTax_Card_Deduction_FO_monthly();
8496
8497 /**
8498 * The meta object literal for the '<em><b>Deduction FO yearly</b></em>' attribute feature.
8499 * <!-- begin-user-doc -->
8500 * <!-- end-user-doc -->
8501 * @generated
8502 */
8503 EAttribute TAX_CARD__DEDUCTION_FO_YEARLY = eINSTANCE.getTax_Card_Deduction_FO_yearly();
8504
8505 /**
8506 * The meta object literal for the '<em><b>Credit CIS daily</b></em>' attribute feature.
8507 * <!-- begin-user-doc -->
8508 * <!-- end-user-doc -->
8509 * @generated
8510 */
8511 EAttribute TAX_CARD__CREDIT_CIS_DAILY = eINSTANCE.getTax_Card_Credit_CIS_daily();
8512
8513 /**
8514 * The meta object literal for the '<em><b>Credit CIS monthly</b></em>' attribute feature.
8515 * <!-- begin-user-doc -->
8516 * <!-- end-user-doc -->
8517 * @generated
8518 */
8519 EAttribute TAX_CARD__CREDIT_CIS_MONTHLY = eINSTANCE.getTax_Card_Credit_CIS_monthly();
8520
8521 /**
8522 * The meta object literal for the '<em><b>Credit CIM daily</b></em>' attribute feature.
8523 * <!-- begin-user-doc -->
8524 * <!-- end-user-doc -->
8525 * @generated
8526 */
8527 EAttribute TAX_CARD__CREDIT_CIM_DAILY = eINSTANCE.getTax_Card_Credit_CIM_daily();
8528
8529 /**
8530 * The meta object literal for the '<em><b>Validity</b></em>' attribute feature.
8531 * <!-- begin-user-doc -->
8532 * <!-- end-user-doc -->
8533 * @generated
8534 */
8535 EAttribute TAX_CARD__VALIDITY = eINSTANCE.getTax_Card_Validity();
8536
8537 /**
8538 * The meta object literal for the '<em><b>Income Tax Credit</b></em>' reference list feature.
8539 * <!-- begin-user-doc -->
8540 * <!-- end-user-doc -->
8541 * @generated
8542 */
8543 EReference TAX_CARD__INCOME_TAX_CREDIT = eINSTANCE.getTax_Card_Income_Tax_Credit();
8544
8545 /**
8546 * The meta object literal for the '<em><b>Previous</b></em>' reference feature.
8547 * <!-- begin-user-doc -->
8548 * <!-- end-user-doc -->
8549 * @generated
8550 */
8551 EReference TAX_CARD__PREVIOUS = eINSTANCE.getTax_Card_Previous();
8552
8553 /**
8554 * The meta object literal for the '<em><b>Current tax card</b></em>' reference feature.
8555 * <!-- begin-user-doc -->
8556 * <!-- end-user-doc -->
8557 * @generated
8558 */
8559 EReference TAX_CARD__CURRENT_TAX_CARD = eINSTANCE.getTax_Card_Current_tax_card();
8560
8561 /**
8562 * The meta object literal for the '<em><b>Credit CIM yearly</b></em>' attribute feature.
8563 * <!-- begin-user-doc -->
8564 * <!-- end-user-doc -->
8565 * @generated
8566 */
8567 EAttribute TAX_CARD__CREDIT_CIM_YEARLY = eINSTANCE.getTax_Card_Credit_CIM_yearly();
8568
8569 /**
8570 * The meta object literal for the '<em><b>Deduction DS Alimony yearly</b></em>' attribute feature.
8571 * <!-- begin-user-doc -->
8572 * <!-- end-user-doc -->
8573 * @generated
8574 */
8575 EAttribute TAX_CARD__DEDUCTION_DS_ALIMONY_YEARLY = eINSTANCE.getTax_Card_Deduction_DS_Alimony_yearly();
8576
8577 /**
8578 * The meta object literal for the '<em><b>Deduction DS Debt yearly</b></em>' attribute feature.
8579 * <!-- begin-user-doc -->
8580 * <!-- end-user-doc -->
8581 * @generated
8582 */
8583 EAttribute TAX_CARD__DEDUCTION_DS_DEBT_YEARLY = eINSTANCE.getTax_Card_Deduction_DS_Debt_yearly();
8584
8585 /**
8586 * The meta object literal for the '<em><b>Income</b></em>' container reference feature.
8587 * <!-- begin-user-doc -->
8588 * <!-- end-user-doc -->
8589 * @generated
8590 */
8591 EReference TAX_CARD__INCOME = eINSTANCE.getTax_Card_Income();
8592
8593 /**
8594 * The meta object literal for the '{@link TaxationWithRoot.impl.Income_Tax_CreditImpl <em>Income Tax Credit</em>}' class.
8595 * <!-- begin-user-doc -->
8596 * <!-- end-user-doc -->
8597 * @see TaxationWithRoot.impl.Income_Tax_CreditImpl
8598 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getIncome_Tax_Credit()
8599 * @generated
8600 */
8601 EClass INCOME_TAX_CREDIT = eINSTANCE.getIncome_Tax_Credit();
8602
8603 /**
8604 * The meta object literal for the '<em><b>Granted By</b></em>' attribute feature.
8605 * <!-- begin-user-doc -->
8606 * <!-- end-user-doc -->
8607 * @generated
8608 */
8609 EAttribute INCOME_TAX_CREDIT__GRANTED_BY = eINSTANCE.getIncome_Tax_Credit_GrantedBy();
8610
8611 /**
8612 * The meta object literal for the '<em><b>Tax Payer</b></em>' reference feature.
8613 * <!-- begin-user-doc -->
8614 * <!-- end-user-doc -->
8615 * @generated
8616 */
8617 EReference INCOME_TAX_CREDIT__TAX_PAYER = eINSTANCE.getIncome_Tax_Credit_TaxPayer();
8618
8619 /**
8620 * The meta object literal for the '<em><b>Tax year</b></em>' attribute feature.
8621 * <!-- begin-user-doc -->
8622 * <!-- end-user-doc -->
8623 * @generated
8624 */
8625 EAttribute INCOME_TAX_CREDIT__TAX_YEAR = eINSTANCE.getIncome_Tax_Credit_Tax_year();
8626
8627 /**
8628 * The meta object literal for the '<em><b>Yearly</b></em>' attribute feature.
8629 * <!-- begin-user-doc -->
8630 * <!-- end-user-doc -->
8631 * @generated
8632 */
8633 EAttribute INCOME_TAX_CREDIT__YEARLY = eINSTANCE.getIncome_Tax_Credit_Yearly();
8634
8635 /**
8636 * The meta object literal for the '<em><b>Monthly</b></em>' attribute feature.
8637 * <!-- begin-user-doc -->
8638 * <!-- end-user-doc -->
8639 * @generated
8640 */
8641 EAttribute INCOME_TAX_CREDIT__MONTHLY = eINSTANCE.getIncome_Tax_Credit_Monthly();
8642
8643 /**
8644 * The meta object literal for the '<em><b>Daily</b></em>' attribute feature.
8645 * <!-- begin-user-doc -->
8646 * <!-- end-user-doc -->
8647 * @generated
8648 */
8649 EAttribute INCOME_TAX_CREDIT__DAILY = eINSTANCE.getIncome_Tax_Credit_Daily();
8650
8651 /**
8652 * The meta object literal for the '<em><b>Id7</b></em>' attribute feature.
8653 * <!-- begin-user-doc -->
8654 * <!-- end-user-doc -->
8655 * @generated
8656 */
8657 EAttribute INCOME_TAX_CREDIT__ID7 = eINSTANCE.getIncome_Tax_Credit_Id7();
8658
8659 /**
8660 * The meta object literal for the '<em><b>Taxation Frame</b></em>' reference feature.
8661 * <!-- begin-user-doc -->
8662 * <!-- end-user-doc -->
8663 * @generated
8664 */
8665 EReference INCOME_TAX_CREDIT__TAXATION_FRAME = eINSTANCE.getIncome_Tax_Credit_Taxation_Frame();
8666
8667 /**
8668 * The meta object literal for the '{@link TaxationWithRoot.impl.Income_DetailImpl <em>Income Detail</em>}' class.
8669 * <!-- begin-user-doc -->
8670 * <!-- end-user-doc -->
8671 * @see TaxationWithRoot.impl.Income_DetailImpl
8672 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getIncome_Detail()
8673 * @generated
8674 */
8675 EClass INCOME_DETAIL = eINSTANCE.getIncome_Detail();
8676
8677 /**
8678 * The meta object literal for the '<em><b>Amount</b></em>' attribute feature.
8679 * <!-- begin-user-doc -->
8680 * <!-- end-user-doc -->
8681 * @generated
8682 */
8683 EAttribute INCOME_DETAIL__AMOUNT = eINSTANCE.getIncome_Detail_Amount();
8684
8685 /**
8686 * The meta object literal for the '<em><b>Is worked</b></em>' attribute feature.
8687 * <!-- begin-user-doc -->
8688 * <!-- end-user-doc -->
8689 * @generated
8690 */
8691 EAttribute INCOME_DETAIL__IS_WORKED = eINSTANCE.getIncome_Detail_Is_worked();
8692
8693 /**
8694 * The meta object literal for the '<em><b>Distance</b></em>' attribute feature.
8695 * <!-- begin-user-doc -->
8696 * <!-- end-user-doc -->
8697 * @generated
8698 */
8699 EAttribute INCOME_DETAIL__DISTANCE = eINSTANCE.getIncome_Detail_Distance();
8700
8701 /**
8702 * The meta object literal for the '<em><b>Worked days</b></em>' attribute feature.
8703 * <!-- begin-user-doc -->
8704 * <!-- end-user-doc -->
8705 * @generated
8706 */
8707 EAttribute INCOME_DETAIL__WORKED_DAYS = eINSTANCE.getIncome_Detail_Worked_days();
8708
8709 /**
8710 * The meta object literal for the '<em><b>Is contributing CNS</b></em>' attribute feature.
8711 * <!-- begin-user-doc -->
8712 * <!-- end-user-doc -->
8713 * @generated
8714 */
8715 EAttribute INCOME_DETAIL__IS_CONTRIBUTING_CNS = eINSTANCE.getIncome_Detail_Is_contributing_CNS();
8716
8717 /**
8718 * The meta object literal for the '<em><b>Id5</b></em>' attribute feature.
8719 * <!-- begin-user-doc -->
8720 * <!-- end-user-doc -->
8721 * @generated
8722 */
8723 EAttribute INCOME_DETAIL__ID5 = eINSTANCE.getIncome_Detail_Id5();
8724
8725 /**
8726 * The meta object literal for the '<em><b>Income</b></em>' container reference feature.
8727 * <!-- begin-user-doc -->
8728 * <!-- end-user-doc -->
8729 * @generated
8730 */
8731 EReference INCOME_DETAIL__INCOME = eINSTANCE.getIncome_Detail_Income();
8732
8733 /**
8734 * The meta object literal for the '{@link TaxationWithRoot.impl.FromLawImpl <em>From Law</em>}' class.
8735 * <!-- begin-user-doc -->
8736 * <!-- end-user-doc -->
8737 * @see TaxationWithRoot.impl.FromLawImpl
8738 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getFromLaw()
8739 * @generated
8740 */
8741 EClass FROM_LAW = eINSTANCE.getFromLaw();
8742
8743 /**
8744 * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
8745 * <!-- begin-user-doc -->
8746 * <!-- end-user-doc -->
8747 * @generated
8748 */
8749 EAttribute FROM_LAW__ID = eINSTANCE.getFromLaw_Id();
8750
8751 /**
8752 * The meta object literal for the '<em><b>Tax Payer</b></em>' container reference feature.
8753 * <!-- begin-user-doc -->
8754 * <!-- end-user-doc -->
8755 * @generated
8756 */
8757 EReference FROM_LAW__TAX_PAYER = eINSTANCE.getFromLaw_TaxPayer();
8758
8759 /**
8760 * The meta object literal for the '{@link TaxationWithRoot.impl.Fiscal_AddressImpl <em>Fiscal Address</em>}' class.
8761 * <!-- begin-user-doc -->
8762 * <!-- end-user-doc -->
8763 * @see TaxationWithRoot.impl.Fiscal_AddressImpl
8764 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getFiscal_Address()
8765 * @generated
8766 */
8767 EClass FISCAL_ADDRESS = eINSTANCE.getFiscal_Address();
8768
8769 /**
8770 * The meta object literal for the '{@link TaxationWithRoot.impl.Habitual_AddressImpl <em>Habitual Address</em>}' class.
8771 * <!-- begin-user-doc -->
8772 * <!-- end-user-doc -->
8773 * @see TaxationWithRoot.impl.Habitual_AddressImpl
8774 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getHabitual_Address()
8775 * @generated
8776 */
8777 EClass HABITUAL_ADDRESS = eINSTANCE.getHabitual_Address();
8778
8779 /**
8780 * The meta object literal for the '{@link TaxationWithRoot.impl.Marriage_RecordImpl <em>Marriage Record</em>}' class.
8781 * <!-- begin-user-doc -->
8782 * <!-- end-user-doc -->
8783 * @see TaxationWithRoot.impl.Marriage_RecordImpl
8784 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getMarriage_Record()
8785 * @generated
8786 */
8787 EClass MARRIAGE_RECORD = eINSTANCE.getMarriage_Record();
8788
8789 /**
8790 * The meta object literal for the '{@link TaxationWithRoot.impl.Non_Resident_Tax_PayerImpl <em>Non Resident Tax Payer</em>}' class.
8791 * <!-- begin-user-doc -->
8792 * <!-- end-user-doc -->
8793 * @see TaxationWithRoot.impl.Non_Resident_Tax_PayerImpl
8794 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getNon_Resident_Tax_Payer()
8795 * @generated
8796 */
8797 EClass NON_RESIDENT_TAX_PAYER = eINSTANCE.getNon_Resident_Tax_Payer();
8798
8799 /**
8800 * The meta object literal for the '<em><b>Is assimilated to resident</b></em>' attribute feature.
8801 * <!-- begin-user-doc -->
8802 * <!-- end-user-doc -->
8803 * @generated
8804 */
8805 EAttribute NON_RESIDENT_TAX_PAYER__IS_ASSIMILATED_TO_RESIDENT = eINSTANCE.getNon_Resident_Tax_Payer_Is_assimilated_to_resident();
8806
8807 /**
8808 * The meta object literal for the '{@link TaxationWithRoot.impl.Partnership_RecordImpl <em>Partnership Record</em>}' class.
8809 * <!-- begin-user-doc -->
8810 * <!-- end-user-doc -->
8811 * @see TaxationWithRoot.impl.Partnership_RecordImpl
8812 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getPartnership_Record()
8813 * @generated
8814 */
8815 EClass PARTNERSHIP_RECORD = eINSTANCE.getPartnership_Record();
8816
8817 /**
8818 * The meta object literal for the '{@link TaxationWithRoot.impl.Resident_Tax_PayerImpl <em>Resident Tax Payer</em>}' class.
8819 * <!-- begin-user-doc -->
8820 * <!-- end-user-doc -->
8821 * @see TaxationWithRoot.impl.Resident_Tax_PayerImpl
8822 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getResident_Tax_Payer()
8823 * @generated
8824 */
8825 EClass RESIDENT_TAX_PAYER = eINSTANCE.getResident_Tax_Payer();
8826
8827 /**
8828 * The meta object literal for the '{@link TaxationWithRoot.impl.Trade_and_Business_IncomeImpl <em>Trade and Business Income</em>}' class.
8829 * <!-- begin-user-doc -->
8830 * <!-- end-user-doc -->
8831 * @see TaxationWithRoot.impl.Trade_and_Business_IncomeImpl
8832 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getTrade_and_Business_Income()
8833 * @generated
8834 */
8835 EClass TRADE_AND_BUSINESS_INCOME = eINSTANCE.getTrade_and_Business_Income();
8836
8837 /**
8838 * The meta object literal for the '{@link TaxationWithRoot.impl.Agriculture_and_Forestry_IncomeImpl <em>Agriculture and Forestry Income</em>}' class.
8839 * <!-- begin-user-doc -->
8840 * <!-- end-user-doc -->
8841 * @see TaxationWithRoot.impl.Agriculture_and_Forestry_IncomeImpl
8842 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getAgriculture_and_Forestry_Income()
8843 * @generated
8844 */
8845 EClass AGRICULTURE_AND_FORESTRY_INCOME = eINSTANCE.getAgriculture_and_Forestry_Income();
8846
8847 /**
8848 * The meta object literal for the '{@link TaxationWithRoot.impl.Pensions_and_Annuities_IncomeImpl <em>Pensions and Annuities Income</em>}' class.
8849 * <!-- begin-user-doc -->
8850 * <!-- end-user-doc -->
8851 * @see TaxationWithRoot.impl.Pensions_and_Annuities_IncomeImpl
8852 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getPensions_and_Annuities_Income()
8853 * @generated
8854 */
8855 EClass PENSIONS_AND_ANNUITIES_INCOME = eINSTANCE.getPensions_and_Annuities_Income();
8856
8857 /**
8858 * The meta object literal for the '<em><b>Occasional payement</b></em>' attribute feature.
8859 * <!-- begin-user-doc -->
8860 * <!-- end-user-doc -->
8861 * @generated
8862 */
8863 EAttribute PENSIONS_AND_ANNUITIES_INCOME__OCCASIONAL_PAYEMENT = eINSTANCE.getPensions_and_Annuities_Income_Occasional_payement();
8864
8865 /**
8866 * The meta object literal for the '{@link TaxationWithRoot.impl.Capital_and_Investments_IncomeImpl <em>Capital and Investments Income</em>}' class.
8867 * <!-- begin-user-doc -->
8868 * <!-- end-user-doc -->
8869 * @see TaxationWithRoot.impl.Capital_and_Investments_IncomeImpl
8870 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getCapital_and_Investments_Income()
8871 * @generated
8872 */
8873 EClass CAPITAL_AND_INVESTMENTS_INCOME = eINSTANCE.getCapital_and_Investments_Income();
8874
8875 /**
8876 * The meta object literal for the '{@link TaxationWithRoot.impl.Employment_IncomeImpl <em>Employment Income</em>}' class.
8877 * <!-- begin-user-doc -->
8878 * <!-- end-user-doc -->
8879 * @see TaxationWithRoot.impl.Employment_IncomeImpl
8880 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getEmployment_Income()
8881 * @generated
8882 */
8883 EClass EMPLOYMENT_INCOME = eINSTANCE.getEmployment_Income();
8884
8885 /**
8886 * The meta object literal for the '{@link TaxationWithRoot.impl.Rentals_and_Leases_IncomeImpl <em>Rentals and Leases Income</em>}' class.
8887 * <!-- begin-user-doc -->
8888 * <!-- end-user-doc -->
8889 * @see TaxationWithRoot.impl.Rentals_and_Leases_IncomeImpl
8890 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getRentals_and_Leases_Income()
8891 * @generated
8892 */
8893 EClass RENTALS_AND_LEASES_INCOME = eINSTANCE.getRentals_and_Leases_Income();
8894
8895 /**
8896 * The meta object literal for the '<em><b>Is periodic</b></em>' attribute feature.
8897 * <!-- begin-user-doc -->
8898 * <!-- end-user-doc -->
8899 * @generated
8900 */
8901 EAttribute RENTALS_AND_LEASES_INCOME__IS_PERIODIC = eINSTANCE.getRentals_and_Leases_Income_Is_periodic();
8902
8903 /**
8904 * The meta object literal for the '{@link TaxationWithRoot.impl.Foreign_IncomeImpl <em>Foreign Income</em>}' class.
8905 * <!-- begin-user-doc -->
8906 * <!-- end-user-doc -->
8907 * @see TaxationWithRoot.impl.Foreign_IncomeImpl
8908 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getForeign_Income()
8909 * @generated
8910 */
8911 EClass FOREIGN_INCOME = eINSTANCE.getForeign_Income();
8912
8913 /**
8914 * The meta object literal for the '{@link TaxationWithRoot.impl.Local_IncomeImpl <em>Local Income</em>}' class.
8915 * <!-- begin-user-doc -->
8916 * <!-- end-user-doc -->
8917 * @see TaxationWithRoot.impl.Local_IncomeImpl
8918 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getLocal_Income()
8919 * @generated
8920 */
8921 EClass LOCAL_INCOME = eINSTANCE.getLocal_Income();
8922
8923 /**
8924 * The meta object literal for the '{@link TaxationWithRoot.impl.CIMImpl <em>CIM</em>}' class.
8925 * <!-- begin-user-doc -->
8926 * <!-- end-user-doc -->
8927 * @see TaxationWithRoot.impl.CIMImpl
8928 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getCIM()
8929 * @generated
8930 */
8931 EClass CIM = eINSTANCE.getCIM();
8932
8933 /**
8934 * The meta object literal for the '{@link TaxationWithRoot.impl.CIPImpl <em>CIP</em>}' class.
8935 * <!-- begin-user-doc -->
8936 * <!-- end-user-doc -->
8937 * @see TaxationWithRoot.impl.CIPImpl
8938 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getCIP()
8939 * @generated
8940 */
8941 EClass CIP = eINSTANCE.getCIP();
8942
8943 /**
8944 * The meta object literal for the '{@link TaxationWithRoot.impl.CISImpl <em>CIS</em>}' class.
8945 * <!-- begin-user-doc -->
8946 * <!-- end-user-doc -->
8947 * @see TaxationWithRoot.impl.CISImpl
8948 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getCIS()
8949 * @generated
8950 */
8951 EClass CIS = eINSTANCE.getCIS();
8952
8953 /**
8954 * The meta object literal for the '{@link TaxationWithRoot.impl.Permanent_ExpenseImpl <em>Permanent Expense</em>}' class.
8955 * <!-- begin-user-doc -->
8956 * <!-- end-user-doc -->
8957 * @see TaxationWithRoot.impl.Permanent_ExpenseImpl
8958 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getPermanent_Expense()
8959 * @generated
8960 */
8961 EClass PERMANENT_EXPENSE = eINSTANCE.getPermanent_Expense();
8962
8963 /**
8964 * The meta object literal for the '<em><b>Category</b></em>' attribute feature.
8965 * <!-- begin-user-doc -->
8966 * <!-- end-user-doc -->
8967 * @generated
8968 */
8969 EAttribute PERMANENT_EXPENSE__CATEGORY = eINSTANCE.getPermanent_Expense_Category();
8970
8971 /**
8972 * The meta object literal for the '{@link TaxationWithRoot.impl.Special_Expense_DSImpl <em>Special Expense DS</em>}' class.
8973 * <!-- begin-user-doc -->
8974 * <!-- end-user-doc -->
8975 * @see TaxationWithRoot.impl.Special_Expense_DSImpl
8976 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getSpecial_Expense_DS()
8977 * @generated
8978 */
8979 EClass SPECIAL_EXPENSE_DS = eINSTANCE.getSpecial_Expense_DS();
8980
8981 /**
8982 * The meta object literal for the '{@link TaxationWithRoot.impl.Interest_ExpenseImpl <em>Interest Expense</em>}' class.
8983 * <!-- begin-user-doc -->
8984 * <!-- end-user-doc -->
8985 * @see TaxationWithRoot.impl.Interest_ExpenseImpl
8986 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getInterest_Expense()
8987 * @generated
8988 */
8989 EClass INTEREST_EXPENSE = eINSTANCE.getInterest_Expense();
8990
8991 /**
8992 * The meta object literal for the '{@link TaxationWithRoot.impl.Private_Insurance_and_PlanImpl <em>Private Insurance and Plan</em>}' class.
8993 * <!-- begin-user-doc -->
8994 * <!-- end-user-doc -->
8995 * @see TaxationWithRoot.impl.Private_Insurance_and_PlanImpl
8996 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getPrivate_Insurance_and_Plan()
8997 * @generated
8998 */
8999 EClass PRIVATE_INSURANCE_AND_PLAN = eINSTANCE.getPrivate_Insurance_and_Plan();
9000
9001 /**
9002 * The meta object literal for the '<em><b>Category</b></em>' attribute feature.
9003 * <!-- begin-user-doc -->
9004 * <!-- end-user-doc -->
9005 * @generated
9006 */
9007 EAttribute PRIVATE_INSURANCE_AND_PLAN__CATEGORY = eINSTANCE.getPrivate_Insurance_and_Plan_Category();
9008
9009 /**
9010 * The meta object literal for the '<em><b>Duration of contract</b></em>' attribute feature.
9011 * <!-- begin-user-doc -->
9012 * <!-- end-user-doc -->
9013 * @generated
9014 */
9015 EAttribute PRIVATE_INSURANCE_AND_PLAN__DURATION_OF_CONTRACT = eINSTANCE.getPrivate_Insurance_and_Plan_Duration_of_contract();
9016
9017 /**
9018 * The meta object literal for the '{@link TaxationWithRoot.impl.Health_and_Pension_InsuranceImpl <em>Health and Pension Insurance</em>}' class.
9019 * <!-- begin-user-doc -->
9020 * <!-- end-user-doc -->
9021 * @see TaxationWithRoot.impl.Health_and_Pension_InsuranceImpl
9022 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getHealth_and_Pension_Insurance()
9023 * @generated
9024 */
9025 EClass HEALTH_AND_PENSION_INSURANCE = eINSTANCE.getHealth_and_Pension_Insurance();
9026
9027 /**
9028 * The meta object literal for the '<em><b>Category</b></em>' attribute feature.
9029 * <!-- begin-user-doc -->
9030 * <!-- end-user-doc -->
9031 * @generated
9032 */
9033 EAttribute HEALTH_AND_PENSION_INSURANCE__CATEGORY = eINSTANCE.getHealth_and_Pension_Insurance_Category();
9034
9035 /**
9036 * The meta object literal for the '<em><b>Is related to additional salary</b></em>' attribute feature.
9037 * <!-- begin-user-doc -->
9038 * <!-- end-user-doc -->
9039 * @generated
9040 */
9041 EAttribute HEALTH_AND_PENSION_INSURANCE__IS_RELATED_TO_ADDITIONAL_SALARY = eINSTANCE.getHealth_and_Pension_Insurance_Is_related_to_additional_salary();
9042
9043 /**
9044 * The meta object literal for the '{@link TaxationWithRoot.impl.DonationImpl <em>Donation</em>}' class.
9045 * <!-- begin-user-doc -->
9046 * <!-- end-user-doc -->
9047 * @see TaxationWithRoot.impl.DonationImpl
9048 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getDonation()
9049 * @generated
9050 */
9051 EClass DONATION = eINSTANCE.getDonation();
9052
9053 /**
9054 * The meta object literal for the '<em><b>Beneficiary1</b></em>' attribute feature.
9055 * <!-- begin-user-doc -->
9056 * <!-- end-user-doc -->
9057 * @generated
9058 */
9059 EAttribute DONATION__BENEFICIARY1 = eINSTANCE.getDonation_Beneficiary1();
9060
9061 /**
9062 * The meta object literal for the '<em><b>Is donation reported</b></em>' attribute feature.
9063 * <!-- begin-user-doc -->
9064 * <!-- end-user-doc -->
9065 * @generated
9066 */
9067 EAttribute DONATION__IS_DONATION_REPORTED = eINSTANCE.getDonation_Is_donation_reported();
9068
9069 /**
9070 * The meta object literal for the '{@link TaxationWithRoot.impl.Loss_CarryforwardImpl <em>Loss Carryforward</em>}' class.
9071 * <!-- begin-user-doc -->
9072 * <!-- end-user-doc -->
9073 * @see TaxationWithRoot.impl.Loss_CarryforwardImpl
9074 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getLoss_Carryforward()
9075 * @generated
9076 */
9077 EClass LOSS_CARRYFORWARD = eINSTANCE.getLoss_Carryforward();
9078
9079 /**
9080 * The meta object literal for the '{@link TaxationWithRoot.impl.Spousal_Expense_ACImpl <em>Spousal Expense AC</em>}' class.
9081 * <!-- begin-user-doc -->
9082 * <!-- end-user-doc -->
9083 * @see TaxationWithRoot.impl.Spousal_Expense_ACImpl
9084 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getSpousal_Expense_AC()
9085 * @generated
9086 */
9087 EClass SPOUSAL_EXPENSE_AC = eINSTANCE.getSpousal_Expense_AC();
9088
9089 /**
9090 * The meta object literal for the '{@link TaxationWithRoot.impl.Extraordinary_Expense_CEImpl <em>Extraordinary Expense CE</em>}' class.
9091 * <!-- begin-user-doc -->
9092 * <!-- end-user-doc -->
9093 * @see TaxationWithRoot.impl.Extraordinary_Expense_CEImpl
9094 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getExtraordinary_Expense_CE()
9095 * @generated
9096 */
9097 EClass EXTRAORDINARY_EXPENSE_CE = eINSTANCE.getExtraordinary_Expense_CE();
9098
9099 /**
9100 * The meta object literal for the '<em><b>Thresholded deduction percentage</b></em>' attribute feature.
9101 * <!-- begin-user-doc -->
9102 * <!-- end-user-doc -->
9103 * @generated
9104 */
9105 EAttribute EXTRAORDINARY_EXPENSE_CE__THRESHOLDED_DEDUCTION_PERCENTAGE = eINSTANCE.getExtraordinary_Expense_CE_Thresholded_deduction_percentage();
9106
9107 /**
9108 * The meta object literal for the '<em><b>Ce type</b></em>' attribute feature.
9109 * <!-- begin-user-doc -->
9110 * <!-- end-user-doc -->
9111 * @generated
9112 */
9113 EAttribute EXTRAORDINARY_EXPENSE_CE__CE_TYPE = eINSTANCE.getExtraordinary_Expense_CE_Ce_type();
9114
9115 /**
9116 * The meta object literal for the '{@link TaxationWithRoot.impl.Travel_Expense_FDImpl <em>Travel Expense FD</em>}' class.
9117 * <!-- begin-user-doc -->
9118 * <!-- end-user-doc -->
9119 * @see TaxationWithRoot.impl.Travel_Expense_FDImpl
9120 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getTravel_Expense_FD()
9121 * @generated
9122 */
9123 EClass TRAVEL_EXPENSE_FD = eINSTANCE.getTravel_Expense_FD();
9124
9125 /**
9126 * The meta object literal for the '{@link TaxationWithRoot.impl.Professional_ExpenseImpl <em>Professional Expense</em>}' class.
9127 * <!-- begin-user-doc -->
9128 * <!-- end-user-doc -->
9129 * @see TaxationWithRoot.impl.Professional_ExpenseImpl
9130 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getProfessional_Expense()
9131 * @generated
9132 */
9133 EClass PROFESSIONAL_EXPENSE = eINSTANCE.getProfessional_Expense();
9134
9135 /**
9136 * The meta object literal for the '{@link TaxationWithRoot.impl.Miscellaneous_Expense_FOImpl <em>Miscellaneous Expense FO</em>}' class.
9137 * <!-- begin-user-doc -->
9138 * <!-- end-user-doc -->
9139 * @see TaxationWithRoot.impl.Miscellaneous_Expense_FOImpl
9140 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getMiscellaneous_Expense_FO()
9141 * @generated
9142 */
9143 EClass MISCELLANEOUS_EXPENSE_FO = eINSTANCE.getMiscellaneous_Expense_FO();
9144
9145 /**
9146 * The meta object literal for the '{@link TaxationWithRoot.impl.ResourceImpl <em>Resource</em>}' class.
9147 * <!-- begin-user-doc -->
9148 * <!-- end-user-doc -->
9149 * @see TaxationWithRoot.impl.ResourceImpl
9150 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getResource()
9151 * @generated
9152 */
9153 EClass RESOURCE = eINSTANCE.getResource();
9154
9155 /**
9156 * The meta object literal for the '<em><b>Contains</b></em>' containment reference list feature.
9157 * <!-- begin-user-doc -->
9158 * <!-- end-user-doc -->
9159 * @generated
9160 */
9161 EReference RESOURCE__CONTAINS = eINSTANCE.getResource_Contains();
9162
9163 /**
9164 * The meta object literal for the '{@link TaxationWithRoot.Grantor <em>Grantor</em>}' enum.
9165 * <!-- begin-user-doc -->
9166 * <!-- end-user-doc -->
9167 * @see TaxationWithRoot.Grantor
9168 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getGrantor()
9169 * @generated
9170 */
9171 EEnum GRANTOR = eINSTANCE.getGrantor();
9172
9173 /**
9174 * The meta object literal for the '{@link TaxationWithRoot.Disability_Types <em>Disability Types</em>}' enum.
9175 * <!-- begin-user-doc -->
9176 * <!-- end-user-doc -->
9177 * @see TaxationWithRoot.Disability_Types
9178 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getDisability_Types()
9179 * @generated
9180 */
9181 EEnum DISABILITY_TYPES = eINSTANCE.getDisability_Types();
9182
9183 /**
9184 * The meta object literal for the '{@link TaxationWithRoot.Country <em>Country</em>}' enum.
9185 * <!-- begin-user-doc -->
9186 * <!-- end-user-doc -->
9187 * @see TaxationWithRoot.Country
9188 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getCountry()
9189 * @generated
9190 */
9191 EEnum COUNTRY = eINSTANCE.getCountry();
9192
9193 /**
9194 * The meta object literal for the '{@link TaxationWithRoot.Tax_Office <em>Tax Office</em>}' enum.
9195 * <!-- begin-user-doc -->
9196 * <!-- end-user-doc -->
9197 * @see TaxationWithRoot.Tax_Office
9198 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getTax_Office()
9199 * @generated
9200 */
9201 EEnum TAX_OFFICE = eINSTANCE.getTax_Office();
9202
9203 /**
9204 * The meta object literal for the '{@link TaxationWithRoot.Tax_Class_Category <em>Tax Class Category</em>}' enum.
9205 * <!-- begin-user-doc -->
9206 * <!-- end-user-doc -->
9207 * @see TaxationWithRoot.Tax_Class_Category
9208 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getTax_Class_Category()
9209 * @generated
9210 */
9211 EEnum TAX_CLASS_CATEGORY = eINSTANCE.getTax_Class_Category();
9212
9213 /**
9214 * The meta object literal for the '{@link TaxationWithRoot.Job_Activity <em>Job Activity</em>}' enum.
9215 * <!-- begin-user-doc -->
9216 * <!-- end-user-doc -->
9217 * @see TaxationWithRoot.Job_Activity
9218 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getJob_Activity()
9219 * @generated
9220 */
9221 EEnum JOB_ACTIVITY = eINSTANCE.getJob_Activity();
9222
9223 /**
9224 * The meta object literal for the '{@link TaxationWithRoot.Town <em>Town</em>}' enum.
9225 * <!-- begin-user-doc -->
9226 * <!-- end-user-doc -->
9227 * @see TaxationWithRoot.Town
9228 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getTown()
9229 * @generated
9230 */
9231 EEnum TOWN = eINSTANCE.getTown();
9232
9233 /**
9234 * The meta object literal for the '{@link TaxationWithRoot.CE_Type <em>CE Type</em>}' enum.
9235 * <!-- begin-user-doc -->
9236 * <!-- end-user-doc -->
9237 * @see TaxationWithRoot.CE_Type
9238 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getCE_Type()
9239 * @generated
9240 */
9241 EEnum CE_TYPE = eINSTANCE.getCE_Type();
9242
9243 /**
9244 * The meta object literal for the '{@link TaxationWithRoot.Expense_Purpose <em>Expense Purpose</em>}' enum.
9245 * <!-- begin-user-doc -->
9246 * <!-- end-user-doc -->
9247 * @see TaxationWithRoot.Expense_Purpose
9248 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getExpense_Purpose()
9249 * @generated
9250 */
9251 EEnum EXPENSE_PURPOSE = eINSTANCE.getExpense_Purpose();
9252
9253 /**
9254 * The meta object literal for the '{@link TaxationWithRoot.Dependent_Type <em>Dependent Type</em>}' enum.
9255 * <!-- begin-user-doc -->
9256 * <!-- end-user-doc -->
9257 * @see TaxationWithRoot.Dependent_Type
9258 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getDependent_Type()
9259 * @generated
9260 */
9261 EEnum DEPENDENT_TYPE = eINSTANCE.getDependent_Type();
9262
9263 /**
9264 * The meta object literal for the '{@link TaxationWithRoot.Separation_Causes <em>Separation Causes</em>}' enum.
9265 * <!-- begin-user-doc -->
9266 * <!-- end-user-doc -->
9267 * @see TaxationWithRoot.Separation_Causes
9268 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getSeparation_Causes()
9269 * @generated
9270 */
9271 EEnum SEPARATION_CAUSES = eINSTANCE.getSeparation_Causes();
9272
9273 /**
9274 * The meta object literal for the '{@link TaxationWithRoot.Category_of_Permanent_Expense <em>Category of Permanent Expense</em>}' enum.
9275 * <!-- begin-user-doc -->
9276 * <!-- end-user-doc -->
9277 * @see TaxationWithRoot.Category_of_Permanent_Expense
9278 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getCategory_of_Permanent_Expense()
9279 * @generated
9280 */
9281 EEnum CATEGORY_OF_PERMANENT_EXPENSE = eINSTANCE.getCategory_of_Permanent_Expense();
9282
9283 /**
9284 * The meta object literal for the '{@link TaxationWithRoot.Category_of_Health_and_Pension_Insurances <em>Category of Health and Pension Insurances</em>}' enum.
9285 * <!-- begin-user-doc -->
9286 * <!-- end-user-doc -->
9287 * @see TaxationWithRoot.Category_of_Health_and_Pension_Insurances
9288 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getCategory_of_Health_and_Pension_Insurances()
9289 * @generated
9290 */
9291 EEnum CATEGORY_OF_HEALTH_AND_PENSION_INSURANCES = eINSTANCE.getCategory_of_Health_and_Pension_Insurances();
9292
9293 /**
9294 * The meta object literal for the '{@link TaxationWithRoot.Category_of_Private_Insurance_and_Plan <em>Category of Private Insurance and Plan</em>}' enum.
9295 * <!-- begin-user-doc -->
9296 * <!-- end-user-doc -->
9297 * @see TaxationWithRoot.Category_of_Private_Insurance_and_Plan
9298 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getCategory_of_Private_Insurance_and_Plan()
9299 * @generated
9300 */
9301 EEnum CATEGORY_OF_PRIVATE_INSURANCE_AND_PLAN = eINSTANCE.getCategory_of_Private_Insurance_and_Plan();
9302
9303 /**
9304 * The meta object literal for the '{@link TaxationWithRoot.Legal_Union_Types <em>Legal Union Types</em>}' enum.
9305 * <!-- begin-user-doc -->
9306 * <!-- end-user-doc -->
9307 * @see TaxationWithRoot.Legal_Union_Types
9308 * @see TaxationWithRoot.impl.TaxationWithRootPackageImpl#getLegal_Union_Types()
9309 * @generated
9310 */
9311 EEnum LEGAL_UNION_TYPES = eINSTANCE.getLegal_Union_Types();
9312
9313 }
9314
9315} //TaxationWithRootPackage
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Town.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Town.java
new file mode 100644
index 00000000..f61dd7c6
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Town.java
@@ -0,0 +1,278 @@
1/**
2 */
3package TaxationWithRoot;
4
5import java.util.Arrays;
6import java.util.Collections;
7import java.util.List;
8
9import org.eclipse.emf.common.util.Enumerator;
10
11/**
12 * <!-- begin-user-doc -->
13 * A representation of the literals of the enumeration '<em><b>Town</b></em>',
14 * and utility methods for working with them.
15 * <!-- end-user-doc -->
16 * @see TaxationWithRoot.TaxationWithRootPackage#getTown()
17 * @model
18 * @generated
19 */
20public enum Town implements Enumerator {
21 /**
22 * The '<em><b>LL</b></em>' literal object.
23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc -->
25 * @see #LL_VALUE
26 * @generated
27 * @ordered
28 */
29 LL(0, "LL", "LL"),
30
31 /**
32 * The '<em><b>BB</b></em>' literal object.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @see #BB_VALUE
36 * @generated
37 * @ordered
38 */
39 BB(1, "BB", "BB"),
40
41 /**
42 * The '<em><b>SS</b></em>' literal object.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #SS_VALUE
46 * @generated
47 * @ordered
48 */
49 SS(2, "SS", "SS"),
50
51 /**
52 * The '<em><b>TT</b></em>' literal object.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #TT_VALUE
56 * @generated
57 * @ordered
58 */
59 TT(3, "TT", "TT"),
60
61 /**
62 * The '<em><b>Other</b></em>' literal object.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @see #OTHER_VALUE
66 * @generated
67 * @ordered
68 */
69 OTHER(4, "Other", "Other");
70
71 /**
72 * The '<em><b>LL</b></em>' literal value.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @see #LL
76 * @model
77 * @generated
78 * @ordered
79 */
80 public static final int LL_VALUE = 0;
81
82 /**
83 * The '<em><b>BB</b></em>' literal value.
84 * <!-- begin-user-doc -->
85 * <!-- end-user-doc -->
86 * @see #BB
87 * @model
88 * @generated
89 * @ordered
90 */
91 public static final int BB_VALUE = 1;
92
93 /**
94 * The '<em><b>SS</b></em>' literal value.
95 * <!-- begin-user-doc -->
96 * <!-- end-user-doc -->
97 * @see #SS
98 * @model
99 * @generated
100 * @ordered
101 */
102 public static final int SS_VALUE = 2;
103
104 /**
105 * The '<em><b>TT</b></em>' literal value.
106 * <!-- begin-user-doc -->
107 * <!-- end-user-doc -->
108 * @see #TT
109 * @model
110 * @generated
111 * @ordered
112 */
113 public static final int TT_VALUE = 3;
114
115 /**
116 * The '<em><b>Other</b></em>' literal value.
117 * <!-- begin-user-doc -->
118 * <!-- end-user-doc -->
119 * @see #OTHER
120 * @model name="Other"
121 * @generated
122 * @ordered
123 */
124 public static final int OTHER_VALUE = 4;
125
126 /**
127 * An array of all the '<em><b>Town</b></em>' enumerators.
128 * <!-- begin-user-doc -->
129 * <!-- end-user-doc -->
130 * @generated
131 */
132 private static final Town[] VALUES_ARRAY =
133 new Town[] {
134 LL,
135 BB,
136 SS,
137 TT,
138 OTHER,
139 };
140
141 /**
142 * A public read-only list of all the '<em><b>Town</b></em>' enumerators.
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @generated
146 */
147 public static final List<Town> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
148
149 /**
150 * Returns the '<em><b>Town</b></em>' literal with the specified literal value.
151 * <!-- begin-user-doc -->
152 * <!-- end-user-doc -->
153 * @param literal the literal.
154 * @return the matching enumerator or <code>null</code>.
155 * @generated
156 */
157 public static Town get(String literal) {
158 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
159 Town result = VALUES_ARRAY[i];
160 if (result.toString().equals(literal)) {
161 return result;
162 }
163 }
164 return null;
165 }
166
167 /**
168 * Returns the '<em><b>Town</b></em>' literal with the specified name.
169 * <!-- begin-user-doc -->
170 * <!-- end-user-doc -->
171 * @param name the name.
172 * @return the matching enumerator or <code>null</code>.
173 * @generated
174 */
175 public static Town getByName(String name) {
176 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
177 Town result = VALUES_ARRAY[i];
178 if (result.getName().equals(name)) {
179 return result;
180 }
181 }
182 return null;
183 }
184
185 /**
186 * Returns the '<em><b>Town</b></em>' literal with the specified integer value.
187 * <!-- begin-user-doc -->
188 * <!-- end-user-doc -->
189 * @param value the integer value.
190 * @return the matching enumerator or <code>null</code>.
191 * @generated
192 */
193 public static Town get(int value) {
194 switch (value) {
195 case LL_VALUE: return LL;
196 case BB_VALUE: return BB;
197 case SS_VALUE: return SS;
198 case TT_VALUE: return TT;
199 case OTHER_VALUE: return OTHER;
200 }
201 return null;
202 }
203
204 /**
205 * <!-- begin-user-doc -->
206 * <!-- end-user-doc -->
207 * @generated
208 */
209 private final int value;
210
211 /**
212 * <!-- begin-user-doc -->
213 * <!-- end-user-doc -->
214 * @generated
215 */
216 private final String name;
217
218 /**
219 * <!-- begin-user-doc -->
220 * <!-- end-user-doc -->
221 * @generated
222 */
223 private final String literal;
224
225 /**
226 * Only this class can construct instances.
227 * <!-- begin-user-doc -->
228 * <!-- end-user-doc -->
229 * @generated
230 */
231 private Town(int value, String name, String literal) {
232 this.value = value;
233 this.name = name;
234 this.literal = literal;
235 }
236
237 /**
238 * <!-- begin-user-doc -->
239 * <!-- end-user-doc -->
240 * @generated
241 */
242 @Override
243 public int getValue() {
244 return value;
245 }
246
247 /**
248 * <!-- begin-user-doc -->
249 * <!-- end-user-doc -->
250 * @generated
251 */
252 @Override
253 public String getName() {
254 return name;
255 }
256
257 /**
258 * <!-- begin-user-doc -->
259 * <!-- end-user-doc -->
260 * @generated
261 */
262 @Override
263 public String getLiteral() {
264 return literal;
265 }
266
267 /**
268 * Returns the literal value of the enumerator, which is its string representation.
269 * <!-- begin-user-doc -->
270 * <!-- end-user-doc -->
271 * @generated
272 */
273 @Override
274 public String toString() {
275 return literal;
276 }
277
278} //Town
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Trade_and_Business_Income.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Trade_and_Business_Income.java
new file mode 100644
index 00000000..9b07a1b9
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Trade_and_Business_Income.java
@@ -0,0 +1,17 @@
1/**
2 */
3package TaxationWithRoot;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Trade and Business Income</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see TaxationWithRoot.TaxationWithRootPackage#getTrade_and_Business_Income()
13 * @model
14 * @generated
15 */
16public interface Trade_and_Business_Income extends Income_Type {
17} // Trade_and_Business_Income
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Travel_Expense_FD.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Travel_Expense_FD.java
new file mode 100644
index 00000000..85f84991
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/Travel_Expense_FD.java
@@ -0,0 +1,17 @@
1/**
2 */
3package TaxationWithRoot;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Travel Expense FD</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see TaxationWithRoot.TaxationWithRootPackage#getTravel_Expense_FD()
13 * @model
14 * @generated
15 */
16public interface Travel_Expense_FD extends Professional_Expense {
17} // Travel_Expense_FD
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/AddressImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/AddressImpl.java
new file mode 100644
index 00000000..8c97c7bf
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/AddressImpl.java
@@ -0,0 +1,465 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Address;
6import TaxationWithRoot.Country;
7import TaxationWithRoot.Physical_Person;
8import TaxationWithRoot.TaxationWithRootPackage;
9
10import java.util.Collection;
11
12import org.eclipse.emf.common.notify.Notification;
13import org.eclipse.emf.common.notify.NotificationChain;
14
15import org.eclipse.emf.common.util.EList;
16
17import org.eclipse.emf.ecore.EClass;
18import org.eclipse.emf.ecore.InternalEObject;
19
20import org.eclipse.emf.ecore.impl.ENotificationImpl;
21import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
22
23import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
24import org.eclipse.emf.ecore.util.InternalEList;
25
26/**
27 * <!-- begin-user-doc -->
28 * An implementation of the model object '<em><b>Address</b></em>'.
29 * <!-- end-user-doc -->
30 * <p>
31 * The following features are implemented:
32 * </p>
33 * <ul>
34 * <li>{@link TaxationWithRoot.impl.AddressImpl#getCountry <em>Country</em>}</li>
35 * <li>{@link TaxationWithRoot.impl.AddressImpl#getStreet <em>Street</em>}</li>
36 * <li>{@link TaxationWithRoot.impl.AddressImpl#getZipCode <em>Zip Code</em>}</li>
37 * <li>{@link TaxationWithRoot.impl.AddressImpl#getCity <em>City</em>}</li>
38 * <li>{@link TaxationWithRoot.impl.AddressImpl#getId2 <em>Id2</em>}</li>
39 * <li>{@link TaxationWithRoot.impl.AddressImpl#getTaxPayer <em>Tax Payer</em>}</li>
40 * </ul>
41 *
42 * @generated
43 */
44public class AddressImpl extends MinimalEObjectImpl.Container implements Address {
45 /**
46 * The default value of the '{@link #getCountry() <em>Country</em>}' attribute.
47 * <!-- begin-user-doc -->
48 * <!-- end-user-doc -->
49 * @see #getCountry()
50 * @generated
51 * @ordered
52 */
53 protected static final Country COUNTRY_EDEFAULT = Country.ZZ;
54
55 /**
56 * The cached value of the '{@link #getCountry() <em>Country</em>}' attribute.
57 * <!-- begin-user-doc -->
58 * <!-- end-user-doc -->
59 * @see #getCountry()
60 * @generated
61 * @ordered
62 */
63 protected Country country = COUNTRY_EDEFAULT;
64
65 /**
66 * The default value of the '{@link #getStreet() <em>Street</em>}' attribute.
67 * <!-- begin-user-doc -->
68 * <!-- end-user-doc -->
69 * @see #getStreet()
70 * @generated
71 * @ordered
72 */
73 protected static final String STREET_EDEFAULT = null;
74
75 /**
76 * The cached value of the '{@link #getStreet() <em>Street</em>}' attribute.
77 * <!-- begin-user-doc -->
78 * <!-- end-user-doc -->
79 * @see #getStreet()
80 * @generated
81 * @ordered
82 */
83 protected String street = STREET_EDEFAULT;
84
85 /**
86 * The default value of the '{@link #getZipCode() <em>Zip Code</em>}' attribute.
87 * <!-- begin-user-doc -->
88 * <!-- end-user-doc -->
89 * @see #getZipCode()
90 * @generated
91 * @ordered
92 */
93 protected static final String ZIP_CODE_EDEFAULT = null;
94
95 /**
96 * The cached value of the '{@link #getZipCode() <em>Zip Code</em>}' attribute.
97 * <!-- begin-user-doc -->
98 * <!-- end-user-doc -->
99 * @see #getZipCode()
100 * @generated
101 * @ordered
102 */
103 protected String zipCode = ZIP_CODE_EDEFAULT;
104
105 /**
106 * The default value of the '{@link #getCity() <em>City</em>}' attribute.
107 * <!-- begin-user-doc -->
108 * <!-- end-user-doc -->
109 * @see #getCity()
110 * @generated
111 * @ordered
112 */
113 protected static final String CITY_EDEFAULT = null;
114
115 /**
116 * The cached value of the '{@link #getCity() <em>City</em>}' attribute.
117 * <!-- begin-user-doc -->
118 * <!-- end-user-doc -->
119 * @see #getCity()
120 * @generated
121 * @ordered
122 */
123 protected String city = CITY_EDEFAULT;
124
125 /**
126 * The default value of the '{@link #getId2() <em>Id2</em>}' attribute.
127 * <!-- begin-user-doc -->
128 * <!-- end-user-doc -->
129 * @see #getId2()
130 * @generated
131 * @ordered
132 */
133 protected static final String ID2_EDEFAULT = null;
134
135 /**
136 * The cached value of the '{@link #getId2() <em>Id2</em>}' attribute.
137 * <!-- begin-user-doc -->
138 * <!-- end-user-doc -->
139 * @see #getId2()
140 * @generated
141 * @ordered
142 */
143 protected String id2 = ID2_EDEFAULT;
144
145 /**
146 * The cached value of the '{@link #getTaxPayer() <em>Tax Payer</em>}' reference list.
147 * <!-- begin-user-doc -->
148 * <!-- end-user-doc -->
149 * @see #getTaxPayer()
150 * @generated
151 * @ordered
152 */
153 protected EList<Physical_Person> taxPayer;
154
155 /**
156 * <!-- begin-user-doc -->
157 * <!-- end-user-doc -->
158 * @generated
159 */
160 protected AddressImpl() {
161 super();
162 }
163
164 /**
165 * <!-- begin-user-doc -->
166 * <!-- end-user-doc -->
167 * @generated
168 */
169 @Override
170 protected EClass eStaticClass() {
171 return TaxationWithRootPackage.Literals.ADDRESS;
172 }
173
174 /**
175 * <!-- begin-user-doc -->
176 * <!-- end-user-doc -->
177 * @generated
178 */
179 @Override
180 public Country getCountry() {
181 return country;
182 }
183
184 /**
185 * <!-- begin-user-doc -->
186 * <!-- end-user-doc -->
187 * @generated
188 */
189 @Override
190 public void setCountry(Country newCountry) {
191 Country oldCountry = country;
192 country = newCountry == null ? COUNTRY_EDEFAULT : newCountry;
193 if (eNotificationRequired())
194 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.ADDRESS__COUNTRY, oldCountry, country));
195 }
196
197 /**
198 * <!-- begin-user-doc -->
199 * <!-- end-user-doc -->
200 * @generated
201 */
202 @Override
203 public String getStreet() {
204 return street;
205 }
206
207 /**
208 * <!-- begin-user-doc -->
209 * <!-- end-user-doc -->
210 * @generated
211 */
212 @Override
213 public void setStreet(String newStreet) {
214 String oldStreet = street;
215 street = newStreet;
216 if (eNotificationRequired())
217 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.ADDRESS__STREET, oldStreet, street));
218 }
219
220 /**
221 * <!-- begin-user-doc -->
222 * <!-- end-user-doc -->
223 * @generated
224 */
225 @Override
226 public String getZipCode() {
227 return zipCode;
228 }
229
230 /**
231 * <!-- begin-user-doc -->
232 * <!-- end-user-doc -->
233 * @generated
234 */
235 @Override
236 public void setZipCode(String newZipCode) {
237 String oldZipCode = zipCode;
238 zipCode = newZipCode;
239 if (eNotificationRequired())
240 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.ADDRESS__ZIP_CODE, oldZipCode, zipCode));
241 }
242
243 /**
244 * <!-- begin-user-doc -->
245 * <!-- end-user-doc -->
246 * @generated
247 */
248 @Override
249 public String getCity() {
250 return city;
251 }
252
253 /**
254 * <!-- begin-user-doc -->
255 * <!-- end-user-doc -->
256 * @generated
257 */
258 @Override
259 public void setCity(String newCity) {
260 String oldCity = city;
261 city = newCity;
262 if (eNotificationRequired())
263 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.ADDRESS__CITY, oldCity, city));
264 }
265
266 /**
267 * <!-- begin-user-doc -->
268 * <!-- end-user-doc -->
269 * @generated
270 */
271 @Override
272 public String getId2() {
273 return id2;
274 }
275
276 /**
277 * <!-- begin-user-doc -->
278 * <!-- end-user-doc -->
279 * @generated
280 */
281 @Override
282 public void setId2(String newId2) {
283 String oldId2 = id2;
284 id2 = newId2;
285 if (eNotificationRequired())
286 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.ADDRESS__ID2, oldId2, id2));
287 }
288
289 /**
290 * <!-- begin-user-doc -->
291 * <!-- end-user-doc -->
292 * @generated
293 */
294 @Override
295 public EList<Physical_Person> getTaxPayer() {
296 if (taxPayer == null) {
297 taxPayer = new EObjectWithInverseResolvingEList.ManyInverse<Physical_Person>(Physical_Person.class, this, TaxationWithRootPackage.ADDRESS__TAX_PAYER, TaxationWithRootPackage.PHYSICAL_PERSON__ADDRESSES);
298 }
299 return taxPayer;
300 }
301
302 /**
303 * <!-- begin-user-doc -->
304 * <!-- end-user-doc -->
305 * @generated
306 */
307 @SuppressWarnings("unchecked")
308 @Override
309 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
310 switch (featureID) {
311 case TaxationWithRootPackage.ADDRESS__TAX_PAYER:
312 return ((InternalEList<InternalEObject>)(InternalEList<?>)getTaxPayer()).basicAdd(otherEnd, msgs);
313 }
314 return super.eInverseAdd(otherEnd, featureID, msgs);
315 }
316
317 /**
318 * <!-- begin-user-doc -->
319 * <!-- end-user-doc -->
320 * @generated
321 */
322 @Override
323 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
324 switch (featureID) {
325 case TaxationWithRootPackage.ADDRESS__TAX_PAYER:
326 return ((InternalEList<?>)getTaxPayer()).basicRemove(otherEnd, msgs);
327 }
328 return super.eInverseRemove(otherEnd, featureID, msgs);
329 }
330
331 /**
332 * <!-- begin-user-doc -->
333 * <!-- end-user-doc -->
334 * @generated
335 */
336 @Override
337 public Object eGet(int featureID, boolean resolve, boolean coreType) {
338 switch (featureID) {
339 case TaxationWithRootPackage.ADDRESS__COUNTRY:
340 return getCountry();
341 case TaxationWithRootPackage.ADDRESS__STREET:
342 return getStreet();
343 case TaxationWithRootPackage.ADDRESS__ZIP_CODE:
344 return getZipCode();
345 case TaxationWithRootPackage.ADDRESS__CITY:
346 return getCity();
347 case TaxationWithRootPackage.ADDRESS__ID2:
348 return getId2();
349 case TaxationWithRootPackage.ADDRESS__TAX_PAYER:
350 return getTaxPayer();
351 }
352 return super.eGet(featureID, resolve, coreType);
353 }
354
355 /**
356 * <!-- begin-user-doc -->
357 * <!-- end-user-doc -->
358 * @generated
359 */
360 @SuppressWarnings("unchecked")
361 @Override
362 public void eSet(int featureID, Object newValue) {
363 switch (featureID) {
364 case TaxationWithRootPackage.ADDRESS__COUNTRY:
365 setCountry((Country)newValue);
366 return;
367 case TaxationWithRootPackage.ADDRESS__STREET:
368 setStreet((String)newValue);
369 return;
370 case TaxationWithRootPackage.ADDRESS__ZIP_CODE:
371 setZipCode((String)newValue);
372 return;
373 case TaxationWithRootPackage.ADDRESS__CITY:
374 setCity((String)newValue);
375 return;
376 case TaxationWithRootPackage.ADDRESS__ID2:
377 setId2((String)newValue);
378 return;
379 case TaxationWithRootPackage.ADDRESS__TAX_PAYER:
380 getTaxPayer().clear();
381 getTaxPayer().addAll((Collection<? extends Physical_Person>)newValue);
382 return;
383 }
384 super.eSet(featureID, newValue);
385 }
386
387 /**
388 * <!-- begin-user-doc -->
389 * <!-- end-user-doc -->
390 * @generated
391 */
392 @Override
393 public void eUnset(int featureID) {
394 switch (featureID) {
395 case TaxationWithRootPackage.ADDRESS__COUNTRY:
396 setCountry(COUNTRY_EDEFAULT);
397 return;
398 case TaxationWithRootPackage.ADDRESS__STREET:
399 setStreet(STREET_EDEFAULT);
400 return;
401 case TaxationWithRootPackage.ADDRESS__ZIP_CODE:
402 setZipCode(ZIP_CODE_EDEFAULT);
403 return;
404 case TaxationWithRootPackage.ADDRESS__CITY:
405 setCity(CITY_EDEFAULT);
406 return;
407 case TaxationWithRootPackage.ADDRESS__ID2:
408 setId2(ID2_EDEFAULT);
409 return;
410 case TaxationWithRootPackage.ADDRESS__TAX_PAYER:
411 getTaxPayer().clear();
412 return;
413 }
414 super.eUnset(featureID);
415 }
416
417 /**
418 * <!-- begin-user-doc -->
419 * <!-- end-user-doc -->
420 * @generated
421 */
422 @Override
423 public boolean eIsSet(int featureID) {
424 switch (featureID) {
425 case TaxationWithRootPackage.ADDRESS__COUNTRY:
426 return country != COUNTRY_EDEFAULT;
427 case TaxationWithRootPackage.ADDRESS__STREET:
428 return STREET_EDEFAULT == null ? street != null : !STREET_EDEFAULT.equals(street);
429 case TaxationWithRootPackage.ADDRESS__ZIP_CODE:
430 return ZIP_CODE_EDEFAULT == null ? zipCode != null : !ZIP_CODE_EDEFAULT.equals(zipCode);
431 case TaxationWithRootPackage.ADDRESS__CITY:
432 return CITY_EDEFAULT == null ? city != null : !CITY_EDEFAULT.equals(city);
433 case TaxationWithRootPackage.ADDRESS__ID2:
434 return ID2_EDEFAULT == null ? id2 != null : !ID2_EDEFAULT.equals(id2);
435 case TaxationWithRootPackage.ADDRESS__TAX_PAYER:
436 return taxPayer != null && !taxPayer.isEmpty();
437 }
438 return super.eIsSet(featureID);
439 }
440
441 /**
442 * <!-- begin-user-doc -->
443 * <!-- end-user-doc -->
444 * @generated
445 */
446 @Override
447 public String toString() {
448 if (eIsProxy()) return super.toString();
449
450 StringBuilder result = new StringBuilder(super.toString());
451 result.append(" (country: ");
452 result.append(country);
453 result.append(", street: ");
454 result.append(street);
455 result.append(", zipCode: ");
456 result.append(zipCode);
457 result.append(", city: ");
458 result.append(city);
459 result.append(", id2: ");
460 result.append(id2);
461 result.append(')');
462 return result.toString();
463 }
464
465} //AddressImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Agriculture_and_Forestry_IncomeImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Agriculture_and_Forestry_IncomeImpl.java
new file mode 100644
index 00000000..4a953a0b
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Agriculture_and_Forestry_IncomeImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Agriculture_and_Forestry_Income;
6import TaxationWithRoot.TaxationWithRootPackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Agriculture and Forestry Income</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class Agriculture_and_Forestry_IncomeImpl extends Income_TypeImpl implements Agriculture_and_Forestry_Income {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected Agriculture_and_Forestry_IncomeImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return TaxationWithRootPackage.Literals.AGRICULTURE_AND_FORESTRY_INCOME;
35 }
36
37} //Agriculture_and_Forestry_IncomeImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/CIMImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/CIMImpl.java
new file mode 100644
index 00000000..c511cece
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/CIMImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.CIM;
6import TaxationWithRoot.TaxationWithRootPackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>CIM</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class CIMImpl extends Income_Tax_CreditImpl implements CIM {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected CIMImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return TaxationWithRootPackage.Literals.CIM;
35 }
36
37} //CIMImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/CIPImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/CIPImpl.java
new file mode 100644
index 00000000..41f43e75
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/CIPImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.CIP;
6import TaxationWithRoot.TaxationWithRootPackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>CIP</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class CIPImpl extends Income_Tax_CreditImpl implements CIP {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected CIPImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return TaxationWithRootPackage.Literals.CIP;
35 }
36
37} //CIPImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/CISImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/CISImpl.java
new file mode 100644
index 00000000..1aa54828
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/CISImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.CIS;
6import TaxationWithRoot.TaxationWithRootPackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>CIS</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class CISImpl extends Income_Tax_CreditImpl implements CIS {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected CISImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return TaxationWithRootPackage.Literals.CIS;
35 }
36
37} //CISImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Capital_and_Investments_IncomeImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Capital_and_Investments_IncomeImpl.java
new file mode 100644
index 00000000..7d1f8a04
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Capital_and_Investments_IncomeImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Capital_and_Investments_Income;
6import TaxationWithRoot.TaxationWithRootPackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Capital and Investments Income</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class Capital_and_Investments_IncomeImpl extends Income_TypeImpl implements Capital_and_Investments_Income {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected Capital_and_Investments_IncomeImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return TaxationWithRootPackage.Literals.CAPITAL_AND_INVESTMENTS_INCOME;
35 }
36
37} //Capital_and_Investments_IncomeImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/ConstantsImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/ConstantsImpl.java
new file mode 100644
index 00000000..dcf5b13a
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/ConstantsImpl.java
@@ -0,0 +1,1509 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Constants;
6import TaxationWithRoot.TaxationWithRootPackage;
7
8import org.eclipse.emf.common.notify.Notification;
9
10import org.eclipse.emf.ecore.EClass;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
14
15/**
16 * <!-- begin-user-doc -->
17 * An implementation of the model object '<em><b>Constants</b></em>'.
18 * <!-- end-user-doc -->
19 * <p>
20 * The following features are implemented:
21 * </p>
22 * <ul>
23 * <li>{@link TaxationWithRoot.impl.ConstantsImpl#getMAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD <em>MAXIMUM CE RATE FOR CHILD NOT BEING PART OF HOUSEHOLD</em>}</li>
24 * <li>{@link TaxationWithRoot.impl.ConstantsImpl#getMAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE <em>MAXIMUM CE RATE FOR HOUSE CARE AND CHILD PART OF THE HOUSEHOLD CARE</em>}</li>
25 * <li>{@link TaxationWithRoot.impl.ConstantsImpl#getMINIMUM_SALARY <em>MINIMUM SALARY</em>}</li>
26 * <li>{@link TaxationWithRoot.impl.ConstantsImpl#getFLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION <em>FLAT RATE FOR EXTRA PROFESSIONAL DEDUCTION</em>}</li>
27 * <li>{@link TaxationWithRoot.impl.ConstantsImpl#getMAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS <em>MAXIMUM DEDUCTIBLE PERCENTAGE FOR DONATIONS</em>}</li>
28 * <li>{@link TaxationWithRoot.impl.ConstantsImpl#getMINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS <em>MINIMUM DEDUCTIBLE AMOUNT FOR DONATIONS</em>}</li>
29 * <li>{@link TaxationWithRoot.impl.ConstantsImpl#getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC <em>MAXIMUM DEDUCTIBLE AMOUNT FOR ADDITIONAL PENSION AND INSURANC</em>}</li>
30 * <li>{@link TaxationWithRoot.impl.ConstantsImpl#getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE <em>MAXIMUM DEDUCTIBLE AMOUNT FOR ALIMONY EXPENSE</em>}</li>
31 * <li>{@link TaxationWithRoot.impl.ConstantsImpl#getMAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION <em>MAXIMAL DISTANCE FOR TRAVEL EXPENSE DEDUCTION</em>}</li>
32 * <li>{@link TaxationWithRoot.impl.ConstantsImpl#getMAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION <em>MAXIMAL FLAT DISTANCE FOR TRAVEL EXPENSE DEDUCTION</em>}</li>
33 * <li>{@link TaxationWithRoot.impl.ConstantsImpl#getMINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION <em>MINIMAL DISTANCE FOR TRAVEL EXPENSE DEDUCTION</em>}</li>
34 * <li>{@link TaxationWithRoot.impl.ConstantsImpl#getFLAT_RATE_CIM_DAILY <em>FLAT RATE CIM DAILY</em>}</li>
35 * <li>{@link TaxationWithRoot.impl.ConstantsImpl#getFLAT_RATE_CIM_MONTHLY <em>FLAT RATE CIM MONTHLY</em>}</li>
36 * <li>{@link TaxationWithRoot.impl.ConstantsImpl#getFLAT_RATE_CIM_YEARLY <em>FLAT RATE CIM YEARLY</em>}</li>
37 * <li>{@link TaxationWithRoot.impl.ConstantsImpl#getFLAT_RATE_CIP_DAILY <em>FLAT RATE CIP DAILY</em>}</li>
38 * <li>{@link TaxationWithRoot.impl.ConstantsImpl#getFLAT_RATE_CIP_MONTHLY <em>FLAT RATE CIP MONTHLY</em>}</li>
39 * <li>{@link TaxationWithRoot.impl.ConstantsImpl#getFLAT_RATE_CIP_YEARLY <em>FLAT RATE CIP YEARLY</em>}</li>
40 * <li>{@link TaxationWithRoot.impl.ConstantsImpl#getFLAT_RATE_CIS_DAILY <em>FLAT RATE CIS DAILY</em>}</li>
41 * <li>{@link TaxationWithRoot.impl.ConstantsImpl#getFLAT_RATE_CIS_MONTHLY <em>FLAT RATE CIS MONTHLY</em>}</li>
42 * <li>{@link TaxationWithRoot.impl.ConstantsImpl#getFLAT_RATE_CIS_YEARLY <em>FLAT RATE CIS YEARLY</em>}</li>
43 * <li>{@link TaxationWithRoot.impl.ConstantsImpl#getFLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT <em>FLAT RATE FOR TRAVEL EXPENSE PER UNIT</em>}</li>
44 * <li>{@link TaxationWithRoot.impl.ConstantsImpl#getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS <em>MAXIMUM DEDUCTIBLE AMOUNT FOR DS</em>}</li>
45 * <li>{@link TaxationWithRoot.impl.ConstantsImpl#getFLAT_RATE_FOR_MISCELLANEOUS_EXPENSE <em>FLAT RATE FOR MISCELLANEOUS EXPENSE</em>}</li>
46 * <li>{@link TaxationWithRoot.impl.ConstantsImpl#getDISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE <em>DISABILITY FLAT RATE FOR MISCELLANEOUS EXPENSE</em>}</li>
47 * <li>{@link TaxationWithRoot.impl.ConstantsImpl#getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE <em>MAXIMUM DEDUCTIBLE AMOUNT FOR ADDITIONAL PENSION AND INSURANCE</em>}</li>
48 * </ul>
49 *
50 * @generated
51 */
52public abstract class ConstantsImpl extends MinimalEObjectImpl.Container implements Constants {
53 /**
54 * The default value of the '{@link #getMAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD() <em>MAXIMUM CE RATE FOR CHILD NOT BEING PART OF HOUSEHOLD</em>}' attribute.
55 * <!-- begin-user-doc -->
56 * <!-- end-user-doc -->
57 * @see #getMAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD()
58 * @generated
59 * @ordered
60 */
61 protected static final double MAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD_EDEFAULT = 3480.0;
62
63 /**
64 * The cached value of the '{@link #getMAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD() <em>MAXIMUM CE RATE FOR CHILD NOT BEING PART OF HOUSEHOLD</em>}' attribute.
65 * <!-- begin-user-doc -->
66 * <!-- end-user-doc -->
67 * @see #getMAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD()
68 * @generated
69 * @ordered
70 */
71 protected double maximuM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD = MAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD_EDEFAULT;
72
73 /**
74 * The default value of the '{@link #getMAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE() <em>MAXIMUM CE RATE FOR HOUSE CARE AND CHILD PART OF THE HOUSEHOLD CARE</em>}' attribute.
75 * <!-- begin-user-doc -->
76 * <!-- end-user-doc -->
77 * @see #getMAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE()
78 * @generated
79 * @ordered
80 */
81 protected static final double MAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE_EDEFAULT = 3600.0;
82
83 /**
84 * The cached value of the '{@link #getMAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE() <em>MAXIMUM CE RATE FOR HOUSE CARE AND CHILD PART OF THE HOUSEHOLD CARE</em>}' attribute.
85 * <!-- begin-user-doc -->
86 * <!-- end-user-doc -->
87 * @see #getMAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE()
88 * @generated
89 * @ordered
90 */
91 protected double maximuM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE = MAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE_EDEFAULT;
92
93 /**
94 * The default value of the '{@link #getMINIMUM_SALARY() <em>MINIMUM SALARY</em>}' attribute.
95 * <!-- begin-user-doc -->
96 * <!-- end-user-doc -->
97 * @see #getMINIMUM_SALARY()
98 * @generated
99 * @ordered
100 */
101 protected static final double MINIMUM_SALARY_EDEFAULT = 1500.0;
102
103 /**
104 * The cached value of the '{@link #getMINIMUM_SALARY() <em>MINIMUM SALARY</em>}' attribute.
105 * <!-- begin-user-doc -->
106 * <!-- end-user-doc -->
107 * @see #getMINIMUM_SALARY()
108 * @generated
109 * @ordered
110 */
111 protected double minimuM_SALARY = MINIMUM_SALARY_EDEFAULT;
112
113 /**
114 * The default value of the '{@link #getFLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION() <em>FLAT RATE FOR EXTRA PROFESSIONAL DEDUCTION</em>}' attribute.
115 * <!-- begin-user-doc -->
116 * <!-- end-user-doc -->
117 * @see #getFLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION()
118 * @generated
119 * @ordered
120 */
121 protected static final double FLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION_EDEFAULT = 4500.0;
122
123 /**
124 * The cached value of the '{@link #getFLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION() <em>FLAT RATE FOR EXTRA PROFESSIONAL DEDUCTION</em>}' attribute.
125 * <!-- begin-user-doc -->
126 * <!-- end-user-doc -->
127 * @see #getFLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION()
128 * @generated
129 * @ordered
130 */
131 protected double flaT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION = FLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION_EDEFAULT;
132
133 /**
134 * The default value of the '{@link #getMAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS() <em>MAXIMUM DEDUCTIBLE PERCENTAGE FOR DONATIONS</em>}' attribute.
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @see #getMAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS()
138 * @generated
139 * @ordered
140 */
141 protected static final double MAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS_EDEFAULT = 20.0;
142
143 /**
144 * The cached value of the '{@link #getMAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS() <em>MAXIMUM DEDUCTIBLE PERCENTAGE FOR DONATIONS</em>}' attribute.
145 * <!-- begin-user-doc -->
146 * <!-- end-user-doc -->
147 * @see #getMAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS()
148 * @generated
149 * @ordered
150 */
151 protected double maximuM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS = MAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS_EDEFAULT;
152
153 /**
154 * The default value of the '{@link #getMINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS() <em>MINIMUM DEDUCTIBLE AMOUNT FOR DONATIONS</em>}' attribute.
155 * <!-- begin-user-doc -->
156 * <!-- end-user-doc -->
157 * @see #getMINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS()
158 * @generated
159 * @ordered
160 */
161 protected static final double MINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS_EDEFAULT = 120.0;
162
163 /**
164 * The cached value of the '{@link #getMINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS() <em>MINIMUM DEDUCTIBLE AMOUNT FOR DONATIONS</em>}' attribute.
165 * <!-- begin-user-doc -->
166 * <!-- end-user-doc -->
167 * @see #getMINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS()
168 * @generated
169 * @ordered
170 */
171 protected double minimuM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS = MINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS_EDEFAULT;
172
173 /**
174 * The default value of the '{@link #getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC() <em>MAXIMUM DEDUCTIBLE AMOUNT FOR ADDITIONAL PENSION AND INSURANC</em>}' attribute.
175 * <!-- begin-user-doc -->
176 * <!-- end-user-doc -->
177 * @see #getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC()
178 * @generated
179 * @ordered
180 */
181 protected static final double MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC_EDEFAULT = 0.0;
182
183 /**
184 * The cached value of the '{@link #getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC() <em>MAXIMUM DEDUCTIBLE AMOUNT FOR ADDITIONAL PENSION AND INSURANC</em>}' attribute.
185 * <!-- begin-user-doc -->
186 * <!-- end-user-doc -->
187 * @see #getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC()
188 * @generated
189 * @ordered
190 */
191 protected double maximuM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC = MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC_EDEFAULT;
192
193 /**
194 * The default value of the '{@link #getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE() <em>MAXIMUM DEDUCTIBLE AMOUNT FOR ALIMONY EXPENSE</em>}' attribute.
195 * <!-- begin-user-doc -->
196 * <!-- end-user-doc -->
197 * @see #getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE()
198 * @generated
199 * @ordered
200 */
201 protected static final double MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE_EDEFAULT = 24000.0;
202
203 /**
204 * The cached value of the '{@link #getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE() <em>MAXIMUM DEDUCTIBLE AMOUNT FOR ALIMONY EXPENSE</em>}' attribute.
205 * <!-- begin-user-doc -->
206 * <!-- end-user-doc -->
207 * @see #getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE()
208 * @generated
209 * @ordered
210 */
211 protected double maximuM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE = MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE_EDEFAULT;
212
213 /**
214 * The default value of the '{@link #getMAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION() <em>MAXIMAL DISTANCE FOR TRAVEL EXPENSE DEDUCTION</em>}' attribute.
215 * <!-- begin-user-doc -->
216 * <!-- end-user-doc -->
217 * @see #getMAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION()
218 * @generated
219 * @ordered
220 */
221 protected static final double MAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION_EDEFAULT = 99.0;
222
223 /**
224 * The cached value of the '{@link #getMAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION() <em>MAXIMAL DISTANCE FOR TRAVEL EXPENSE DEDUCTION</em>}' attribute.
225 * <!-- begin-user-doc -->
226 * <!-- end-user-doc -->
227 * @see #getMAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION()
228 * @generated
229 * @ordered
230 */
231 protected double maximaL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION = MAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION_EDEFAULT;
232
233 /**
234 * The default value of the '{@link #getMAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION() <em>MAXIMAL FLAT DISTANCE FOR TRAVEL EXPENSE DEDUCTION</em>}' attribute.
235 * <!-- begin-user-doc -->
236 * <!-- end-user-doc -->
237 * @see #getMAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION()
238 * @generated
239 * @ordered
240 */
241 protected static final double MAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION_EDEFAULT = 30.0;
242
243 /**
244 * The cached value of the '{@link #getMAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION() <em>MAXIMAL FLAT DISTANCE FOR TRAVEL EXPENSE DEDUCTION</em>}' attribute.
245 * <!-- begin-user-doc -->
246 * <!-- end-user-doc -->
247 * @see #getMAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION()
248 * @generated
249 * @ordered
250 */
251 protected double maximaL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION = MAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION_EDEFAULT;
252
253 /**
254 * The default value of the '{@link #getMINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION() <em>MINIMAL DISTANCE FOR TRAVEL EXPENSE DEDUCTION</em>}' attribute.
255 * <!-- begin-user-doc -->
256 * <!-- end-user-doc -->
257 * @see #getMINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION()
258 * @generated
259 * @ordered
260 */
261 protected static final double MINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION_EDEFAULT = 4.0;
262
263 /**
264 * The cached value of the '{@link #getMINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION() <em>MINIMAL DISTANCE FOR TRAVEL EXPENSE DEDUCTION</em>}' attribute.
265 * <!-- begin-user-doc -->
266 * <!-- end-user-doc -->
267 * @see #getMINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION()
268 * @generated
269 * @ordered
270 */
271 protected double minimaL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION = MINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION_EDEFAULT;
272
273 /**
274 * The default value of the '{@link #getFLAT_RATE_CIM_DAILY() <em>FLAT RATE CIM DAILY</em>}' attribute.
275 * <!-- begin-user-doc -->
276 * <!-- end-user-doc -->
277 * @see #getFLAT_RATE_CIM_DAILY()
278 * @generated
279 * @ordered
280 */
281 protected static final double FLAT_RATE_CIM_DAILY_EDEFAULT = 2.0;
282
283 /**
284 * The cached value of the '{@link #getFLAT_RATE_CIM_DAILY() <em>FLAT RATE CIM DAILY</em>}' attribute.
285 * <!-- begin-user-doc -->
286 * <!-- end-user-doc -->
287 * @see #getFLAT_RATE_CIM_DAILY()
288 * @generated
289 * @ordered
290 */
291 protected double flaT_RATE_CIM_DAILY = FLAT_RATE_CIM_DAILY_EDEFAULT;
292
293 /**
294 * The default value of the '{@link #getFLAT_RATE_CIM_MONTHLY() <em>FLAT RATE CIM MONTHLY</em>}' attribute.
295 * <!-- begin-user-doc -->
296 * <!-- end-user-doc -->
297 * @see #getFLAT_RATE_CIM_MONTHLY()
298 * @generated
299 * @ordered
300 */
301 protected static final double FLAT_RATE_CIM_MONTHLY_EDEFAULT = 62.0;
302
303 /**
304 * The cached value of the '{@link #getFLAT_RATE_CIM_MONTHLY() <em>FLAT RATE CIM MONTHLY</em>}' attribute.
305 * <!-- begin-user-doc -->
306 * <!-- end-user-doc -->
307 * @see #getFLAT_RATE_CIM_MONTHLY()
308 * @generated
309 * @ordered
310 */
311 protected double flaT_RATE_CIM_MONTHLY = FLAT_RATE_CIM_MONTHLY_EDEFAULT;
312
313 /**
314 * The default value of the '{@link #getFLAT_RATE_CIM_YEARLY() <em>FLAT RATE CIM YEARLY</em>}' attribute.
315 * <!-- begin-user-doc -->
316 * <!-- end-user-doc -->
317 * @see #getFLAT_RATE_CIM_YEARLY()
318 * @generated
319 * @ordered
320 */
321 protected static final double FLAT_RATE_CIM_YEARLY_EDEFAULT = 750.0;
322
323 /**
324 * The cached value of the '{@link #getFLAT_RATE_CIM_YEARLY() <em>FLAT RATE CIM YEARLY</em>}' attribute.
325 * <!-- begin-user-doc -->
326 * <!-- end-user-doc -->
327 * @see #getFLAT_RATE_CIM_YEARLY()
328 * @generated
329 * @ordered
330 */
331 protected double flaT_RATE_CIM_YEARLY = FLAT_RATE_CIM_YEARLY_EDEFAULT;
332
333 /**
334 * The default value of the '{@link #getFLAT_RATE_CIP_DAILY() <em>FLAT RATE CIP DAILY</em>}' attribute.
335 * <!-- begin-user-doc -->
336 * <!-- end-user-doc -->
337 * @see #getFLAT_RATE_CIP_DAILY()
338 * @generated
339 * @ordered
340 */
341 protected static final double FLAT_RATE_CIP_DAILY_EDEFAULT = 1.0;
342
343 /**
344 * The cached value of the '{@link #getFLAT_RATE_CIP_DAILY() <em>FLAT RATE CIP DAILY</em>}' attribute.
345 * <!-- begin-user-doc -->
346 * <!-- end-user-doc -->
347 * @see #getFLAT_RATE_CIP_DAILY()
348 * @generated
349 * @ordered
350 */
351 protected double flaT_RATE_CIP_DAILY = FLAT_RATE_CIP_DAILY_EDEFAULT;
352
353 /**
354 * The default value of the '{@link #getFLAT_RATE_CIP_MONTHLY() <em>FLAT RATE CIP MONTHLY</em>}' attribute.
355 * <!-- begin-user-doc -->
356 * <!-- end-user-doc -->
357 * @see #getFLAT_RATE_CIP_MONTHLY()
358 * @generated
359 * @ordered
360 */
361 protected static final double FLAT_RATE_CIP_MONTHLY_EDEFAULT = 25.0;
362
363 /**
364 * The cached value of the '{@link #getFLAT_RATE_CIP_MONTHLY() <em>FLAT RATE CIP MONTHLY</em>}' attribute.
365 * <!-- begin-user-doc -->
366 * <!-- end-user-doc -->
367 * @see #getFLAT_RATE_CIP_MONTHLY()
368 * @generated
369 * @ordered
370 */
371 protected double flaT_RATE_CIP_MONTHLY = FLAT_RATE_CIP_MONTHLY_EDEFAULT;
372
373 /**
374 * The default value of the '{@link #getFLAT_RATE_CIP_YEARLY() <em>FLAT RATE CIP YEARLY</em>}' attribute.
375 * <!-- begin-user-doc -->
376 * <!-- end-user-doc -->
377 * @see #getFLAT_RATE_CIP_YEARLY()
378 * @generated
379 * @ordered
380 */
381 protected static final double FLAT_RATE_CIP_YEARLY_EDEFAULT = 30.0;
382
383 /**
384 * The cached value of the '{@link #getFLAT_RATE_CIP_YEARLY() <em>FLAT RATE CIP YEARLY</em>}' attribute.
385 * <!-- begin-user-doc -->
386 * <!-- end-user-doc -->
387 * @see #getFLAT_RATE_CIP_YEARLY()
388 * @generated
389 * @ordered
390 */
391 protected double flaT_RATE_CIP_YEARLY = FLAT_RATE_CIP_YEARLY_EDEFAULT;
392
393 /**
394 * The default value of the '{@link #getFLAT_RATE_CIS_DAILY() <em>FLAT RATE CIS DAILY</em>}' attribute.
395 * <!-- begin-user-doc -->
396 * <!-- end-user-doc -->
397 * @see #getFLAT_RATE_CIS_DAILY()
398 * @generated
399 * @ordered
400 */
401 protected static final double FLAT_RATE_CIS_DAILY_EDEFAULT = 1.0;
402
403 /**
404 * The cached value of the '{@link #getFLAT_RATE_CIS_DAILY() <em>FLAT RATE CIS DAILY</em>}' attribute.
405 * <!-- begin-user-doc -->
406 * <!-- end-user-doc -->
407 * @see #getFLAT_RATE_CIS_DAILY()
408 * @generated
409 * @ordered
410 */
411 protected double flaT_RATE_CIS_DAILY = FLAT_RATE_CIS_DAILY_EDEFAULT;
412
413 /**
414 * The default value of the '{@link #getFLAT_RATE_CIS_MONTHLY() <em>FLAT RATE CIS MONTHLY</em>}' attribute.
415 * <!-- begin-user-doc -->
416 * <!-- end-user-doc -->
417 * @see #getFLAT_RATE_CIS_MONTHLY()
418 * @generated
419 * @ordered
420 */
421 protected static final double FLAT_RATE_CIS_MONTHLY_EDEFAULT = 25.0;
422
423 /**
424 * The cached value of the '{@link #getFLAT_RATE_CIS_MONTHLY() <em>FLAT RATE CIS MONTHLY</em>}' attribute.
425 * <!-- begin-user-doc -->
426 * <!-- end-user-doc -->
427 * @see #getFLAT_RATE_CIS_MONTHLY()
428 * @generated
429 * @ordered
430 */
431 protected double flaT_RATE_CIS_MONTHLY = FLAT_RATE_CIS_MONTHLY_EDEFAULT;
432
433 /**
434 * The default value of the '{@link #getFLAT_RATE_CIS_YEARLY() <em>FLAT RATE CIS YEARLY</em>}' attribute.
435 * <!-- begin-user-doc -->
436 * <!-- end-user-doc -->
437 * @see #getFLAT_RATE_CIS_YEARLY()
438 * @generated
439 * @ordered
440 */
441 protected static final double FLAT_RATE_CIS_YEARLY_EDEFAULT = 300.0;
442
443 /**
444 * The cached value of the '{@link #getFLAT_RATE_CIS_YEARLY() <em>FLAT RATE CIS YEARLY</em>}' attribute.
445 * <!-- begin-user-doc -->
446 * <!-- end-user-doc -->
447 * @see #getFLAT_RATE_CIS_YEARLY()
448 * @generated
449 * @ordered
450 */
451 protected double flaT_RATE_CIS_YEARLY = FLAT_RATE_CIS_YEARLY_EDEFAULT;
452
453 /**
454 * The default value of the '{@link #getFLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT() <em>FLAT RATE FOR TRAVEL EXPENSE PER UNIT</em>}' attribute.
455 * <!-- begin-user-doc -->
456 * <!-- end-user-doc -->
457 * @see #getFLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT()
458 * @generated
459 * @ordered
460 */
461 protected static final double FLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT_EDEFAULT = 99.0;
462
463 /**
464 * The cached value of the '{@link #getFLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT() <em>FLAT RATE FOR TRAVEL EXPENSE PER UNIT</em>}' attribute.
465 * <!-- begin-user-doc -->
466 * <!-- end-user-doc -->
467 * @see #getFLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT()
468 * @generated
469 * @ordered
470 */
471 protected double flaT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT = FLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT_EDEFAULT;
472
473 /**
474 * The default value of the '{@link #getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS() <em>MAXIMUM DEDUCTIBLE AMOUNT FOR DS</em>}' attribute.
475 * <!-- begin-user-doc -->
476 * <!-- end-user-doc -->
477 * @see #getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS()
478 * @generated
479 * @ordered
480 */
481 protected static final double MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS_EDEFAULT = 0.0;
482
483 /**
484 * The cached value of the '{@link #getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS() <em>MAXIMUM DEDUCTIBLE AMOUNT FOR DS</em>}' attribute.
485 * <!-- begin-user-doc -->
486 * <!-- end-user-doc -->
487 * @see #getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS()
488 * @generated
489 * @ordered
490 */
491 protected double maximuM_DEDUCTIBLE_AMOUNT_FOR_DS = MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS_EDEFAULT;
492
493 /**
494 * The default value of the '{@link #getFLAT_RATE_FOR_MISCELLANEOUS_EXPENSE() <em>FLAT RATE FOR MISCELLANEOUS EXPENSE</em>}' attribute.
495 * <!-- begin-user-doc -->
496 * <!-- end-user-doc -->
497 * @see #getFLAT_RATE_FOR_MISCELLANEOUS_EXPENSE()
498 * @generated
499 * @ordered
500 */
501 protected static final double FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE_EDEFAULT = 0.0;
502
503 /**
504 * The cached value of the '{@link #getFLAT_RATE_FOR_MISCELLANEOUS_EXPENSE() <em>FLAT RATE FOR MISCELLANEOUS EXPENSE</em>}' attribute.
505 * <!-- begin-user-doc -->
506 * <!-- end-user-doc -->
507 * @see #getFLAT_RATE_FOR_MISCELLANEOUS_EXPENSE()
508 * @generated
509 * @ordered
510 */
511 protected double flaT_RATE_FOR_MISCELLANEOUS_EXPENSE = FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE_EDEFAULT;
512
513 /**
514 * The default value of the '{@link #getDISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE() <em>DISABILITY FLAT RATE FOR MISCELLANEOUS EXPENSE</em>}' attribute.
515 * <!-- begin-user-doc -->
516 * <!-- end-user-doc -->
517 * @see #getDISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE()
518 * @generated
519 * @ordered
520 */
521 protected static final double DISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE_EDEFAULT = 0.0;
522
523 /**
524 * The cached value of the '{@link #getDISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE() <em>DISABILITY FLAT RATE FOR MISCELLANEOUS EXPENSE</em>}' attribute.
525 * <!-- begin-user-doc -->
526 * <!-- end-user-doc -->
527 * @see #getDISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE()
528 * @generated
529 * @ordered
530 */
531 protected double disabilitY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE = DISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE_EDEFAULT;
532
533 /**
534 * The default value of the '{@link #getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE() <em>MAXIMUM DEDUCTIBLE AMOUNT FOR ADDITIONAL PENSION AND INSURANCE</em>}' attribute.
535 * <!-- begin-user-doc -->
536 * <!-- end-user-doc -->
537 * @see #getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE()
538 * @generated
539 * @ordered
540 */
541 protected static final double MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE_EDEFAULT = 0.0;
542
543 /**
544 * The cached value of the '{@link #getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE() <em>MAXIMUM DEDUCTIBLE AMOUNT FOR ADDITIONAL PENSION AND INSURANCE</em>}' attribute.
545 * <!-- begin-user-doc -->
546 * <!-- end-user-doc -->
547 * @see #getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE()
548 * @generated
549 * @ordered
550 */
551 protected double maximuM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE = MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE_EDEFAULT;
552
553 /**
554 * <!-- begin-user-doc -->
555 * <!-- end-user-doc -->
556 * @generated
557 */
558 protected ConstantsImpl() {
559 super();
560 }
561
562 /**
563 * <!-- begin-user-doc -->
564 * <!-- end-user-doc -->
565 * @generated
566 */
567 @Override
568 protected EClass eStaticClass() {
569 return TaxationWithRootPackage.Literals.CONSTANTS;
570 }
571
572 /**
573 * <!-- begin-user-doc -->
574 * <!-- end-user-doc -->
575 * @generated
576 */
577 @Override
578 public double getMAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD() {
579 return maximuM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD;
580 }
581
582 /**
583 * <!-- begin-user-doc -->
584 * <!-- end-user-doc -->
585 * @generated
586 */
587 @Override
588 public void setMAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD(double newMAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD) {
589 double oldMAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD = maximuM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD;
590 maximuM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD = newMAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD;
591 if (eNotificationRequired())
592 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.CONSTANTS__MAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD, oldMAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD, maximuM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD));
593 }
594
595 /**
596 * <!-- begin-user-doc -->
597 * <!-- end-user-doc -->
598 * @generated
599 */
600 @Override
601 public double getMAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE() {
602 return maximuM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE;
603 }
604
605 /**
606 * <!-- begin-user-doc -->
607 * <!-- end-user-doc -->
608 * @generated
609 */
610 @Override
611 public void setMAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE(double newMAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE) {
612 double oldMAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE = maximuM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE;
613 maximuM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE = newMAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE;
614 if (eNotificationRequired())
615 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.CONSTANTS__MAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE, oldMAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE, maximuM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE));
616 }
617
618 /**
619 * <!-- begin-user-doc -->
620 * <!-- end-user-doc -->
621 * @generated
622 */
623 @Override
624 public double getMINIMUM_SALARY() {
625 return minimuM_SALARY;
626 }
627
628 /**
629 * <!-- begin-user-doc -->
630 * <!-- end-user-doc -->
631 * @generated
632 */
633 @Override
634 public void setMINIMUM_SALARY(double newMINIMUM_SALARY) {
635 double oldMINIMUM_SALARY = minimuM_SALARY;
636 minimuM_SALARY = newMINIMUM_SALARY;
637 if (eNotificationRequired())
638 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.CONSTANTS__MINIMUM_SALARY, oldMINIMUM_SALARY, minimuM_SALARY));
639 }
640
641 /**
642 * <!-- begin-user-doc -->
643 * <!-- end-user-doc -->
644 * @generated
645 */
646 @Override
647 public double getFLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION() {
648 return flaT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION;
649 }
650
651 /**
652 * <!-- begin-user-doc -->
653 * <!-- end-user-doc -->
654 * @generated
655 */
656 @Override
657 public void setFLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION(double newFLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION) {
658 double oldFLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION = flaT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION;
659 flaT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION = newFLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION;
660 if (eNotificationRequired())
661 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.CONSTANTS__FLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION, oldFLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION, flaT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION));
662 }
663
664 /**
665 * <!-- begin-user-doc -->
666 * <!-- end-user-doc -->
667 * @generated
668 */
669 @Override
670 public double getMAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS() {
671 return maximuM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS;
672 }
673
674 /**
675 * <!-- begin-user-doc -->
676 * <!-- end-user-doc -->
677 * @generated
678 */
679 @Override
680 public void setMAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS(double newMAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS) {
681 double oldMAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS = maximuM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS;
682 maximuM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS = newMAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS;
683 if (eNotificationRequired())
684 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.CONSTANTS__MAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS, oldMAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS, maximuM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS));
685 }
686
687 /**
688 * <!-- begin-user-doc -->
689 * <!-- end-user-doc -->
690 * @generated
691 */
692 @Override
693 public double getMINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS() {
694 return minimuM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS;
695 }
696
697 /**
698 * <!-- begin-user-doc -->
699 * <!-- end-user-doc -->
700 * @generated
701 */
702 @Override
703 public void setMINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS(double newMINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS) {
704 double oldMINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS = minimuM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS;
705 minimuM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS = newMINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS;
706 if (eNotificationRequired())
707 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.CONSTANTS__MINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS, oldMINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS, minimuM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS));
708 }
709
710 /**
711 * <!-- begin-user-doc -->
712 * <!-- end-user-doc -->
713 * @generated
714 */
715 @Override
716 public double getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC() {
717 return maximuM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC;
718 }
719
720 /**
721 * <!-- begin-user-doc -->
722 * <!-- end-user-doc -->
723 * @generated
724 */
725 @Override
726 public void setMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC(double newMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC) {
727 double oldMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC = maximuM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC;
728 maximuM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC = newMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC;
729 if (eNotificationRequired())
730 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC, oldMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC, maximuM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC));
731 }
732
733 /**
734 * <!-- begin-user-doc -->
735 * <!-- end-user-doc -->
736 * @generated
737 */
738 @Override
739 public double getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE() {
740 return maximuM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE;
741 }
742
743 /**
744 * <!-- begin-user-doc -->
745 * <!-- end-user-doc -->
746 * @generated
747 */
748 @Override
749 public void setMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE(double newMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE) {
750 double oldMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE = maximuM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE;
751 maximuM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE = newMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE;
752 if (eNotificationRequired())
753 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE, oldMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE, maximuM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE));
754 }
755
756 /**
757 * <!-- begin-user-doc -->
758 * <!-- end-user-doc -->
759 * @generated
760 */
761 @Override
762 public double getMAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION() {
763 return maximaL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION;
764 }
765
766 /**
767 * <!-- begin-user-doc -->
768 * <!-- end-user-doc -->
769 * @generated
770 */
771 @Override
772 public void setMAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION(double newMAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION) {
773 double oldMAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION = maximaL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION;
774 maximaL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION = newMAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION;
775 if (eNotificationRequired())
776 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.CONSTANTS__MAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION, oldMAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION, maximaL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION));
777 }
778
779 /**
780 * <!-- begin-user-doc -->
781 * <!-- end-user-doc -->
782 * @generated
783 */
784 @Override
785 public double getMAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION() {
786 return maximaL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION;
787 }
788
789 /**
790 * <!-- begin-user-doc -->
791 * <!-- end-user-doc -->
792 * @generated
793 */
794 @Override
795 public void setMAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION(double newMAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION) {
796 double oldMAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION = maximaL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION;
797 maximaL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION = newMAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION;
798 if (eNotificationRequired())
799 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.CONSTANTS__MAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION, oldMAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION, maximaL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION));
800 }
801
802 /**
803 * <!-- begin-user-doc -->
804 * <!-- end-user-doc -->
805 * @generated
806 */
807 @Override
808 public double getMINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION() {
809 return minimaL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION;
810 }
811
812 /**
813 * <!-- begin-user-doc -->
814 * <!-- end-user-doc -->
815 * @generated
816 */
817 @Override
818 public void setMINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION(double newMINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION) {
819 double oldMINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION = minimaL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION;
820 minimaL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION = newMINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION;
821 if (eNotificationRequired())
822 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.CONSTANTS__MINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION, oldMINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION, minimaL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION));
823 }
824
825 /**
826 * <!-- begin-user-doc -->
827 * <!-- end-user-doc -->
828 * @generated
829 */
830 @Override
831 public double getFLAT_RATE_CIM_DAILY() {
832 return flaT_RATE_CIM_DAILY;
833 }
834
835 /**
836 * <!-- begin-user-doc -->
837 * <!-- end-user-doc -->
838 * @generated
839 */
840 @Override
841 public void setFLAT_RATE_CIM_DAILY(double newFLAT_RATE_CIM_DAILY) {
842 double oldFLAT_RATE_CIM_DAILY = flaT_RATE_CIM_DAILY;
843 flaT_RATE_CIM_DAILY = newFLAT_RATE_CIM_DAILY;
844 if (eNotificationRequired())
845 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIM_DAILY, oldFLAT_RATE_CIM_DAILY, flaT_RATE_CIM_DAILY));
846 }
847
848 /**
849 * <!-- begin-user-doc -->
850 * <!-- end-user-doc -->
851 * @generated
852 */
853 @Override
854 public double getFLAT_RATE_CIM_MONTHLY() {
855 return flaT_RATE_CIM_MONTHLY;
856 }
857
858 /**
859 * <!-- begin-user-doc -->
860 * <!-- end-user-doc -->
861 * @generated
862 */
863 @Override
864 public void setFLAT_RATE_CIM_MONTHLY(double newFLAT_RATE_CIM_MONTHLY) {
865 double oldFLAT_RATE_CIM_MONTHLY = flaT_RATE_CIM_MONTHLY;
866 flaT_RATE_CIM_MONTHLY = newFLAT_RATE_CIM_MONTHLY;
867 if (eNotificationRequired())
868 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIM_MONTHLY, oldFLAT_RATE_CIM_MONTHLY, flaT_RATE_CIM_MONTHLY));
869 }
870
871 /**
872 * <!-- begin-user-doc -->
873 * <!-- end-user-doc -->
874 * @generated
875 */
876 @Override
877 public double getFLAT_RATE_CIM_YEARLY() {
878 return flaT_RATE_CIM_YEARLY;
879 }
880
881 /**
882 * <!-- begin-user-doc -->
883 * <!-- end-user-doc -->
884 * @generated
885 */
886 @Override
887 public void setFLAT_RATE_CIM_YEARLY(double newFLAT_RATE_CIM_YEARLY) {
888 double oldFLAT_RATE_CIM_YEARLY = flaT_RATE_CIM_YEARLY;
889 flaT_RATE_CIM_YEARLY = newFLAT_RATE_CIM_YEARLY;
890 if (eNotificationRequired())
891 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIM_YEARLY, oldFLAT_RATE_CIM_YEARLY, flaT_RATE_CIM_YEARLY));
892 }
893
894 /**
895 * <!-- begin-user-doc -->
896 * <!-- end-user-doc -->
897 * @generated
898 */
899 @Override
900 public double getFLAT_RATE_CIP_DAILY() {
901 return flaT_RATE_CIP_DAILY;
902 }
903
904 /**
905 * <!-- begin-user-doc -->
906 * <!-- end-user-doc -->
907 * @generated
908 */
909 @Override
910 public void setFLAT_RATE_CIP_DAILY(double newFLAT_RATE_CIP_DAILY) {
911 double oldFLAT_RATE_CIP_DAILY = flaT_RATE_CIP_DAILY;
912 flaT_RATE_CIP_DAILY = newFLAT_RATE_CIP_DAILY;
913 if (eNotificationRequired())
914 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIP_DAILY, oldFLAT_RATE_CIP_DAILY, flaT_RATE_CIP_DAILY));
915 }
916
917 /**
918 * <!-- begin-user-doc -->
919 * <!-- end-user-doc -->
920 * @generated
921 */
922 @Override
923 public double getFLAT_RATE_CIP_MONTHLY() {
924 return flaT_RATE_CIP_MONTHLY;
925 }
926
927 /**
928 * <!-- begin-user-doc -->
929 * <!-- end-user-doc -->
930 * @generated
931 */
932 @Override
933 public void setFLAT_RATE_CIP_MONTHLY(double newFLAT_RATE_CIP_MONTHLY) {
934 double oldFLAT_RATE_CIP_MONTHLY = flaT_RATE_CIP_MONTHLY;
935 flaT_RATE_CIP_MONTHLY = newFLAT_RATE_CIP_MONTHLY;
936 if (eNotificationRequired())
937 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIP_MONTHLY, oldFLAT_RATE_CIP_MONTHLY, flaT_RATE_CIP_MONTHLY));
938 }
939
940 /**
941 * <!-- begin-user-doc -->
942 * <!-- end-user-doc -->
943 * @generated
944 */
945 @Override
946 public double getFLAT_RATE_CIP_YEARLY() {
947 return flaT_RATE_CIP_YEARLY;
948 }
949
950 /**
951 * <!-- begin-user-doc -->
952 * <!-- end-user-doc -->
953 * @generated
954 */
955 @Override
956 public void setFLAT_RATE_CIP_YEARLY(double newFLAT_RATE_CIP_YEARLY) {
957 double oldFLAT_RATE_CIP_YEARLY = flaT_RATE_CIP_YEARLY;
958 flaT_RATE_CIP_YEARLY = newFLAT_RATE_CIP_YEARLY;
959 if (eNotificationRequired())
960 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIP_YEARLY, oldFLAT_RATE_CIP_YEARLY, flaT_RATE_CIP_YEARLY));
961 }
962
963 /**
964 * <!-- begin-user-doc -->
965 * <!-- end-user-doc -->
966 * @generated
967 */
968 @Override
969 public double getFLAT_RATE_CIS_DAILY() {
970 return flaT_RATE_CIS_DAILY;
971 }
972
973 /**
974 * <!-- begin-user-doc -->
975 * <!-- end-user-doc -->
976 * @generated
977 */
978 @Override
979 public void setFLAT_RATE_CIS_DAILY(double newFLAT_RATE_CIS_DAILY) {
980 double oldFLAT_RATE_CIS_DAILY = flaT_RATE_CIS_DAILY;
981 flaT_RATE_CIS_DAILY = newFLAT_RATE_CIS_DAILY;
982 if (eNotificationRequired())
983 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIS_DAILY, oldFLAT_RATE_CIS_DAILY, flaT_RATE_CIS_DAILY));
984 }
985
986 /**
987 * <!-- begin-user-doc -->
988 * <!-- end-user-doc -->
989 * @generated
990 */
991 @Override
992 public double getFLAT_RATE_CIS_MONTHLY() {
993 return flaT_RATE_CIS_MONTHLY;
994 }
995
996 /**
997 * <!-- begin-user-doc -->
998 * <!-- end-user-doc -->
999 * @generated
1000 */
1001 @Override
1002 public void setFLAT_RATE_CIS_MONTHLY(double newFLAT_RATE_CIS_MONTHLY) {
1003 double oldFLAT_RATE_CIS_MONTHLY = flaT_RATE_CIS_MONTHLY;
1004 flaT_RATE_CIS_MONTHLY = newFLAT_RATE_CIS_MONTHLY;
1005 if (eNotificationRequired())
1006 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIS_MONTHLY, oldFLAT_RATE_CIS_MONTHLY, flaT_RATE_CIS_MONTHLY));
1007 }
1008
1009 /**
1010 * <!-- begin-user-doc -->
1011 * <!-- end-user-doc -->
1012 * @generated
1013 */
1014 @Override
1015 public double getFLAT_RATE_CIS_YEARLY() {
1016 return flaT_RATE_CIS_YEARLY;
1017 }
1018
1019 /**
1020 * <!-- begin-user-doc -->
1021 * <!-- end-user-doc -->
1022 * @generated
1023 */
1024 @Override
1025 public void setFLAT_RATE_CIS_YEARLY(double newFLAT_RATE_CIS_YEARLY) {
1026 double oldFLAT_RATE_CIS_YEARLY = flaT_RATE_CIS_YEARLY;
1027 flaT_RATE_CIS_YEARLY = newFLAT_RATE_CIS_YEARLY;
1028 if (eNotificationRequired())
1029 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIS_YEARLY, oldFLAT_RATE_CIS_YEARLY, flaT_RATE_CIS_YEARLY));
1030 }
1031
1032 /**
1033 * <!-- begin-user-doc -->
1034 * <!-- end-user-doc -->
1035 * @generated
1036 */
1037 @Override
1038 public double getFLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT() {
1039 return flaT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT;
1040 }
1041
1042 /**
1043 * <!-- begin-user-doc -->
1044 * <!-- end-user-doc -->
1045 * @generated
1046 */
1047 @Override
1048 public void setFLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT(double newFLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT) {
1049 double oldFLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT = flaT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT;
1050 flaT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT = newFLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT;
1051 if (eNotificationRequired())
1052 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.CONSTANTS__FLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT, oldFLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT, flaT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT));
1053 }
1054
1055 /**
1056 * <!-- begin-user-doc -->
1057 * <!-- end-user-doc -->
1058 * @generated
1059 */
1060 @Override
1061 public double getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS() {
1062 return maximuM_DEDUCTIBLE_AMOUNT_FOR_DS;
1063 }
1064
1065 /**
1066 * <!-- begin-user-doc -->
1067 * <!-- end-user-doc -->
1068 * @generated
1069 */
1070 @Override
1071 public void setMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS(double newMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS) {
1072 double oldMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS = maximuM_DEDUCTIBLE_AMOUNT_FOR_DS;
1073 maximuM_DEDUCTIBLE_AMOUNT_FOR_DS = newMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS;
1074 if (eNotificationRequired())
1075 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS, oldMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS, maximuM_DEDUCTIBLE_AMOUNT_FOR_DS));
1076 }
1077
1078 /**
1079 * <!-- begin-user-doc -->
1080 * <!-- end-user-doc -->
1081 * @generated
1082 */
1083 @Override
1084 public double getFLAT_RATE_FOR_MISCELLANEOUS_EXPENSE() {
1085 return flaT_RATE_FOR_MISCELLANEOUS_EXPENSE;
1086 }
1087
1088 /**
1089 * <!-- begin-user-doc -->
1090 * <!-- end-user-doc -->
1091 * @generated
1092 */
1093 @Override
1094 public void setFLAT_RATE_FOR_MISCELLANEOUS_EXPENSE(double newFLAT_RATE_FOR_MISCELLANEOUS_EXPENSE) {
1095 double oldFLAT_RATE_FOR_MISCELLANEOUS_EXPENSE = flaT_RATE_FOR_MISCELLANEOUS_EXPENSE;
1096 flaT_RATE_FOR_MISCELLANEOUS_EXPENSE = newFLAT_RATE_FOR_MISCELLANEOUS_EXPENSE;
1097 if (eNotificationRequired())
1098 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.CONSTANTS__FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE, oldFLAT_RATE_FOR_MISCELLANEOUS_EXPENSE, flaT_RATE_FOR_MISCELLANEOUS_EXPENSE));
1099 }
1100
1101 /**
1102 * <!-- begin-user-doc -->
1103 * <!-- end-user-doc -->
1104 * @generated
1105 */
1106 @Override
1107 public double getDISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE() {
1108 return disabilitY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE;
1109 }
1110
1111 /**
1112 * <!-- begin-user-doc -->
1113 * <!-- end-user-doc -->
1114 * @generated
1115 */
1116 @Override
1117 public void setDISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE(double newDISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE) {
1118 double oldDISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE = disabilitY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE;
1119 disabilitY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE = newDISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE;
1120 if (eNotificationRequired())
1121 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.CONSTANTS__DISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE, oldDISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE, disabilitY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE));
1122 }
1123
1124 /**
1125 * <!-- begin-user-doc -->
1126 * <!-- end-user-doc -->
1127 * @generated
1128 */
1129 @Override
1130 public double getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE() {
1131 return maximuM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE;
1132 }
1133
1134 /**
1135 * <!-- begin-user-doc -->
1136 * <!-- end-user-doc -->
1137 * @generated
1138 */
1139 @Override
1140 public void setMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE(double newMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE) {
1141 double oldMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE = maximuM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE;
1142 maximuM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE = newMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE;
1143 if (eNotificationRequired())
1144 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE, oldMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE, maximuM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE));
1145 }
1146
1147 /**
1148 * <!-- begin-user-doc -->
1149 * <!-- end-user-doc -->
1150 * @generated
1151 */
1152 @Override
1153 public Object eGet(int featureID, boolean resolve, boolean coreType) {
1154 switch (featureID) {
1155 case TaxationWithRootPackage.CONSTANTS__MAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD:
1156 return getMAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD();
1157 case TaxationWithRootPackage.CONSTANTS__MAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE:
1158 return getMAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE();
1159 case TaxationWithRootPackage.CONSTANTS__MINIMUM_SALARY:
1160 return getMINIMUM_SALARY();
1161 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION:
1162 return getFLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION();
1163 case TaxationWithRootPackage.CONSTANTS__MAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS:
1164 return getMAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS();
1165 case TaxationWithRootPackage.CONSTANTS__MINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS:
1166 return getMINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS();
1167 case TaxationWithRootPackage.CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC:
1168 return getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC();
1169 case TaxationWithRootPackage.CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE:
1170 return getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE();
1171 case TaxationWithRootPackage.CONSTANTS__MAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION:
1172 return getMAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION();
1173 case TaxationWithRootPackage.CONSTANTS__MAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION:
1174 return getMAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION();
1175 case TaxationWithRootPackage.CONSTANTS__MINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION:
1176 return getMINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION();
1177 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIM_DAILY:
1178 return getFLAT_RATE_CIM_DAILY();
1179 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIM_MONTHLY:
1180 return getFLAT_RATE_CIM_MONTHLY();
1181 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIM_YEARLY:
1182 return getFLAT_RATE_CIM_YEARLY();
1183 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIP_DAILY:
1184 return getFLAT_RATE_CIP_DAILY();
1185 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIP_MONTHLY:
1186 return getFLAT_RATE_CIP_MONTHLY();
1187 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIP_YEARLY:
1188 return getFLAT_RATE_CIP_YEARLY();
1189 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIS_DAILY:
1190 return getFLAT_RATE_CIS_DAILY();
1191 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIS_MONTHLY:
1192 return getFLAT_RATE_CIS_MONTHLY();
1193 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIS_YEARLY:
1194 return getFLAT_RATE_CIS_YEARLY();
1195 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT:
1196 return getFLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT();
1197 case TaxationWithRootPackage.CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS:
1198 return getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS();
1199 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE:
1200 return getFLAT_RATE_FOR_MISCELLANEOUS_EXPENSE();
1201 case TaxationWithRootPackage.CONSTANTS__DISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE:
1202 return getDISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE();
1203 case TaxationWithRootPackage.CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE:
1204 return getMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE();
1205 }
1206 return super.eGet(featureID, resolve, coreType);
1207 }
1208
1209 /**
1210 * <!-- begin-user-doc -->
1211 * <!-- end-user-doc -->
1212 * @generated
1213 */
1214 @Override
1215 public void eSet(int featureID, Object newValue) {
1216 switch (featureID) {
1217 case TaxationWithRootPackage.CONSTANTS__MAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD:
1218 setMAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD((Double)newValue);
1219 return;
1220 case TaxationWithRootPackage.CONSTANTS__MAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE:
1221 setMAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE((Double)newValue);
1222 return;
1223 case TaxationWithRootPackage.CONSTANTS__MINIMUM_SALARY:
1224 setMINIMUM_SALARY((Double)newValue);
1225 return;
1226 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION:
1227 setFLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION((Double)newValue);
1228 return;
1229 case TaxationWithRootPackage.CONSTANTS__MAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS:
1230 setMAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS((Double)newValue);
1231 return;
1232 case TaxationWithRootPackage.CONSTANTS__MINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS:
1233 setMINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS((Double)newValue);
1234 return;
1235 case TaxationWithRootPackage.CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC:
1236 setMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC((Double)newValue);
1237 return;
1238 case TaxationWithRootPackage.CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE:
1239 setMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE((Double)newValue);
1240 return;
1241 case TaxationWithRootPackage.CONSTANTS__MAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION:
1242 setMAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION((Double)newValue);
1243 return;
1244 case TaxationWithRootPackage.CONSTANTS__MAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION:
1245 setMAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION((Double)newValue);
1246 return;
1247 case TaxationWithRootPackage.CONSTANTS__MINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION:
1248 setMINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION((Double)newValue);
1249 return;
1250 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIM_DAILY:
1251 setFLAT_RATE_CIM_DAILY((Double)newValue);
1252 return;
1253 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIM_MONTHLY:
1254 setFLAT_RATE_CIM_MONTHLY((Double)newValue);
1255 return;
1256 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIM_YEARLY:
1257 setFLAT_RATE_CIM_YEARLY((Double)newValue);
1258 return;
1259 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIP_DAILY:
1260 setFLAT_RATE_CIP_DAILY((Double)newValue);
1261 return;
1262 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIP_MONTHLY:
1263 setFLAT_RATE_CIP_MONTHLY((Double)newValue);
1264 return;
1265 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIP_YEARLY:
1266 setFLAT_RATE_CIP_YEARLY((Double)newValue);
1267 return;
1268 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIS_DAILY:
1269 setFLAT_RATE_CIS_DAILY((Double)newValue);
1270 return;
1271 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIS_MONTHLY:
1272 setFLAT_RATE_CIS_MONTHLY((Double)newValue);
1273 return;
1274 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIS_YEARLY:
1275 setFLAT_RATE_CIS_YEARLY((Double)newValue);
1276 return;
1277 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT:
1278 setFLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT((Double)newValue);
1279 return;
1280 case TaxationWithRootPackage.CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS:
1281 setMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS((Double)newValue);
1282 return;
1283 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE:
1284 setFLAT_RATE_FOR_MISCELLANEOUS_EXPENSE((Double)newValue);
1285 return;
1286 case TaxationWithRootPackage.CONSTANTS__DISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE:
1287 setDISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE((Double)newValue);
1288 return;
1289 case TaxationWithRootPackage.CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE:
1290 setMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE((Double)newValue);
1291 return;
1292 }
1293 super.eSet(featureID, newValue);
1294 }
1295
1296 /**
1297 * <!-- begin-user-doc -->
1298 * <!-- end-user-doc -->
1299 * @generated
1300 */
1301 @Override
1302 public void eUnset(int featureID) {
1303 switch (featureID) {
1304 case TaxationWithRootPackage.CONSTANTS__MAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD:
1305 setMAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD(MAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD_EDEFAULT);
1306 return;
1307 case TaxationWithRootPackage.CONSTANTS__MAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE:
1308 setMAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE(MAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE_EDEFAULT);
1309 return;
1310 case TaxationWithRootPackage.CONSTANTS__MINIMUM_SALARY:
1311 setMINIMUM_SALARY(MINIMUM_SALARY_EDEFAULT);
1312 return;
1313 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION:
1314 setFLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION(FLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION_EDEFAULT);
1315 return;
1316 case TaxationWithRootPackage.CONSTANTS__MAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS:
1317 setMAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS(MAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS_EDEFAULT);
1318 return;
1319 case TaxationWithRootPackage.CONSTANTS__MINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS:
1320 setMINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS(MINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS_EDEFAULT);
1321 return;
1322 case TaxationWithRootPackage.CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC:
1323 setMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC(MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC_EDEFAULT);
1324 return;
1325 case TaxationWithRootPackage.CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE:
1326 setMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE(MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE_EDEFAULT);
1327 return;
1328 case TaxationWithRootPackage.CONSTANTS__MAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION:
1329 setMAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION(MAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION_EDEFAULT);
1330 return;
1331 case TaxationWithRootPackage.CONSTANTS__MAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION:
1332 setMAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION(MAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION_EDEFAULT);
1333 return;
1334 case TaxationWithRootPackage.CONSTANTS__MINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION:
1335 setMINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION(MINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION_EDEFAULT);
1336 return;
1337 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIM_DAILY:
1338 setFLAT_RATE_CIM_DAILY(FLAT_RATE_CIM_DAILY_EDEFAULT);
1339 return;
1340 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIM_MONTHLY:
1341 setFLAT_RATE_CIM_MONTHLY(FLAT_RATE_CIM_MONTHLY_EDEFAULT);
1342 return;
1343 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIM_YEARLY:
1344 setFLAT_RATE_CIM_YEARLY(FLAT_RATE_CIM_YEARLY_EDEFAULT);
1345 return;
1346 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIP_DAILY:
1347 setFLAT_RATE_CIP_DAILY(FLAT_RATE_CIP_DAILY_EDEFAULT);
1348 return;
1349 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIP_MONTHLY:
1350 setFLAT_RATE_CIP_MONTHLY(FLAT_RATE_CIP_MONTHLY_EDEFAULT);
1351 return;
1352 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIP_YEARLY:
1353 setFLAT_RATE_CIP_YEARLY(FLAT_RATE_CIP_YEARLY_EDEFAULT);
1354 return;
1355 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIS_DAILY:
1356 setFLAT_RATE_CIS_DAILY(FLAT_RATE_CIS_DAILY_EDEFAULT);
1357 return;
1358 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIS_MONTHLY:
1359 setFLAT_RATE_CIS_MONTHLY(FLAT_RATE_CIS_MONTHLY_EDEFAULT);
1360 return;
1361 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIS_YEARLY:
1362 setFLAT_RATE_CIS_YEARLY(FLAT_RATE_CIS_YEARLY_EDEFAULT);
1363 return;
1364 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT:
1365 setFLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT(FLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT_EDEFAULT);
1366 return;
1367 case TaxationWithRootPackage.CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS:
1368 setMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS(MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS_EDEFAULT);
1369 return;
1370 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE:
1371 setFLAT_RATE_FOR_MISCELLANEOUS_EXPENSE(FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE_EDEFAULT);
1372 return;
1373 case TaxationWithRootPackage.CONSTANTS__DISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE:
1374 setDISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE(DISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE_EDEFAULT);
1375 return;
1376 case TaxationWithRootPackage.CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE:
1377 setMAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE(MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE_EDEFAULT);
1378 return;
1379 }
1380 super.eUnset(featureID);
1381 }
1382
1383 /**
1384 * <!-- begin-user-doc -->
1385 * <!-- end-user-doc -->
1386 * @generated
1387 */
1388 @Override
1389 public boolean eIsSet(int featureID) {
1390 switch (featureID) {
1391 case TaxationWithRootPackage.CONSTANTS__MAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD:
1392 return maximuM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD != MAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD_EDEFAULT;
1393 case TaxationWithRootPackage.CONSTANTS__MAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE:
1394 return maximuM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE != MAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE_EDEFAULT;
1395 case TaxationWithRootPackage.CONSTANTS__MINIMUM_SALARY:
1396 return minimuM_SALARY != MINIMUM_SALARY_EDEFAULT;
1397 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION:
1398 return flaT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION != FLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION_EDEFAULT;
1399 case TaxationWithRootPackage.CONSTANTS__MAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS:
1400 return maximuM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS != MAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS_EDEFAULT;
1401 case TaxationWithRootPackage.CONSTANTS__MINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS:
1402 return minimuM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS != MINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS_EDEFAULT;
1403 case TaxationWithRootPackage.CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC:
1404 return maximuM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC != MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC_EDEFAULT;
1405 case TaxationWithRootPackage.CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE:
1406 return maximuM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE != MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE_EDEFAULT;
1407 case TaxationWithRootPackage.CONSTANTS__MAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION:
1408 return maximaL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION != MAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION_EDEFAULT;
1409 case TaxationWithRootPackage.CONSTANTS__MAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION:
1410 return maximaL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION != MAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION_EDEFAULT;
1411 case TaxationWithRootPackage.CONSTANTS__MINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION:
1412 return minimaL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION != MINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION_EDEFAULT;
1413 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIM_DAILY:
1414 return flaT_RATE_CIM_DAILY != FLAT_RATE_CIM_DAILY_EDEFAULT;
1415 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIM_MONTHLY:
1416 return flaT_RATE_CIM_MONTHLY != FLAT_RATE_CIM_MONTHLY_EDEFAULT;
1417 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIM_YEARLY:
1418 return flaT_RATE_CIM_YEARLY != FLAT_RATE_CIM_YEARLY_EDEFAULT;
1419 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIP_DAILY:
1420 return flaT_RATE_CIP_DAILY != FLAT_RATE_CIP_DAILY_EDEFAULT;
1421 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIP_MONTHLY:
1422 return flaT_RATE_CIP_MONTHLY != FLAT_RATE_CIP_MONTHLY_EDEFAULT;
1423 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIP_YEARLY:
1424 return flaT_RATE_CIP_YEARLY != FLAT_RATE_CIP_YEARLY_EDEFAULT;
1425 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIS_DAILY:
1426 return flaT_RATE_CIS_DAILY != FLAT_RATE_CIS_DAILY_EDEFAULT;
1427 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIS_MONTHLY:
1428 return flaT_RATE_CIS_MONTHLY != FLAT_RATE_CIS_MONTHLY_EDEFAULT;
1429 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_CIS_YEARLY:
1430 return flaT_RATE_CIS_YEARLY != FLAT_RATE_CIS_YEARLY_EDEFAULT;
1431 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT:
1432 return flaT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT != FLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT_EDEFAULT;
1433 case TaxationWithRootPackage.CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS:
1434 return maximuM_DEDUCTIBLE_AMOUNT_FOR_DS != MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS_EDEFAULT;
1435 case TaxationWithRootPackage.CONSTANTS__FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE:
1436 return flaT_RATE_FOR_MISCELLANEOUS_EXPENSE != FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE_EDEFAULT;
1437 case TaxationWithRootPackage.CONSTANTS__DISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE:
1438 return disabilitY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE != DISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE_EDEFAULT;
1439 case TaxationWithRootPackage.CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE:
1440 return maximuM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE != MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE_EDEFAULT;
1441 }
1442 return super.eIsSet(featureID);
1443 }
1444
1445 /**
1446 * <!-- begin-user-doc -->
1447 * <!-- end-user-doc -->
1448 * @generated
1449 */
1450 @Override
1451 public String toString() {
1452 if (eIsProxy()) return super.toString();
1453
1454 StringBuilder result = new StringBuilder(super.toString());
1455 result.append(" (MAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD: ");
1456 result.append(maximuM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD);
1457 result.append(", MAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE: ");
1458 result.append(maximuM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE);
1459 result.append(", MINIMUM_SALARY: ");
1460 result.append(minimuM_SALARY);
1461 result.append(", FLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION: ");
1462 result.append(flaT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION);
1463 result.append(", MAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS: ");
1464 result.append(maximuM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS);
1465 result.append(", MINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS: ");
1466 result.append(minimuM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS);
1467 result.append(", MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC: ");
1468 result.append(maximuM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC);
1469 result.append(", MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE: ");
1470 result.append(maximuM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE);
1471 result.append(", MAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION: ");
1472 result.append(maximaL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION);
1473 result.append(", MAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION: ");
1474 result.append(maximaL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION);
1475 result.append(", MINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION: ");
1476 result.append(minimaL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION);
1477 result.append(", FLAT_RATE_CIM_DAILY: ");
1478 result.append(flaT_RATE_CIM_DAILY);
1479 result.append(", FLAT_RATE_CIM_MONTHLY: ");
1480 result.append(flaT_RATE_CIM_MONTHLY);
1481 result.append(", FLAT_RATE_CIM_YEARLY: ");
1482 result.append(flaT_RATE_CIM_YEARLY);
1483 result.append(", FLAT_RATE_CIP_DAILY: ");
1484 result.append(flaT_RATE_CIP_DAILY);
1485 result.append(", FLAT_RATE_CIP_MONTHLY: ");
1486 result.append(flaT_RATE_CIP_MONTHLY);
1487 result.append(", FLAT_RATE_CIP_YEARLY: ");
1488 result.append(flaT_RATE_CIP_YEARLY);
1489 result.append(", FLAT_RATE_CIS_DAILY: ");
1490 result.append(flaT_RATE_CIS_DAILY);
1491 result.append(", FLAT_RATE_CIS_MONTHLY: ");
1492 result.append(flaT_RATE_CIS_MONTHLY);
1493 result.append(", FLAT_RATE_CIS_YEARLY: ");
1494 result.append(flaT_RATE_CIS_YEARLY);
1495 result.append(", FLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT: ");
1496 result.append(flaT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT);
1497 result.append(", MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS: ");
1498 result.append(maximuM_DEDUCTIBLE_AMOUNT_FOR_DS);
1499 result.append(", FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE: ");
1500 result.append(flaT_RATE_FOR_MISCELLANEOUS_EXPENSE);
1501 result.append(", DISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE: ");
1502 result.append(disabilitY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE);
1503 result.append(", MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE: ");
1504 result.append(maximuM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE);
1505 result.append(')');
1506 return result.toString();
1507 }
1508
1509} //ConstantsImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/DependentImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/DependentImpl.java
new file mode 100644
index 00000000..f6111014
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/DependentImpl.java
@@ -0,0 +1,599 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Dependent;
6import TaxationWithRoot.Dependent_Type;
7import TaxationWithRoot.Expense;
8import TaxationWithRoot.External_Allowance;
9import TaxationWithRoot.FromAgent;
10import TaxationWithRoot.Household;
11import TaxationWithRoot.Tax_Payer;
12import TaxationWithRoot.TaxationWithRootPackage;
13
14import java.util.Collection;
15
16import org.eclipse.emf.common.notify.Notification;
17import org.eclipse.emf.common.notify.NotificationChain;
18
19import org.eclipse.emf.common.util.EList;
20
21import org.eclipse.emf.ecore.EClass;
22import org.eclipse.emf.ecore.InternalEObject;
23
24import org.eclipse.emf.ecore.impl.ENotificationImpl;
25
26import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
27import org.eclipse.emf.ecore.util.EcoreUtil;
28import org.eclipse.emf.ecore.util.InternalEList;
29
30/**
31 * <!-- begin-user-doc -->
32 * An implementation of the model object '<em><b>Dependent</b></em>'.
33 * <!-- end-user-doc -->
34 * <p>
35 * The following features are implemented:
36 * </p>
37 * <ul>
38 * <li>{@link TaxationWithRoot.impl.DependentImpl#getDependent_type <em>Dependent type</em>}</li>
39 * <li>{@link TaxationWithRoot.impl.DependentImpl#getResponsible_person <em>Responsible person</em>}</li>
40 * <li>{@link TaxationWithRoot.impl.DependentImpl#isContinued_studies <em>Continued studies</em>}</li>
41 * <li>{@link TaxationWithRoot.impl.DependentImpl#getAllowances <em>Allowances</em>}</li>
42 * <li>{@link TaxationWithRoot.impl.DependentImpl#getHousehold <em>Household</em>}</li>
43 * <li>{@link TaxationWithRoot.impl.DependentImpl#getFrom_agent <em>From agent</em>}</li>
44 * <li>{@link TaxationWithRoot.impl.DependentImpl#getExpense <em>Expense</em>}</li>
45 * </ul>
46 *
47 * @generated
48 */
49public class DependentImpl extends Physical_PersonImpl implements Dependent {
50 /**
51 * The default value of the '{@link #getDependent_type() <em>Dependent type</em>}' attribute.
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @see #getDependent_type()
55 * @generated
56 * @ordered
57 */
58 protected static final Dependent_Type DEPENDENT_TYPE_EDEFAULT = Dependent_Type.CHILD;
59
60 /**
61 * The cached value of the '{@link #getDependent_type() <em>Dependent type</em>}' attribute.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @see #getDependent_type()
65 * @generated
66 * @ordered
67 */
68 protected Dependent_Type dependent_type = DEPENDENT_TYPE_EDEFAULT;
69
70 /**
71 * The default value of the '{@link #isContinued_studies() <em>Continued studies</em>}' attribute.
72 * <!-- begin-user-doc -->
73 * <!-- end-user-doc -->
74 * @see #isContinued_studies()
75 * @generated
76 * @ordered
77 */
78 protected static final boolean CONTINUED_STUDIES_EDEFAULT = false;
79
80 /**
81 * The cached value of the '{@link #isContinued_studies() <em>Continued studies</em>}' attribute.
82 * <!-- begin-user-doc -->
83 * <!-- end-user-doc -->
84 * @see #isContinued_studies()
85 * @generated
86 * @ordered
87 */
88 protected boolean continued_studies = CONTINUED_STUDIES_EDEFAULT;
89
90 /**
91 * The cached value of the '{@link #getAllowances() <em>Allowances</em>}' containment reference.
92 * <!-- begin-user-doc -->
93 * <!-- end-user-doc -->
94 * @see #getAllowances()
95 * @generated
96 * @ordered
97 */
98 protected External_Allowance allowances;
99
100 /**
101 * The cached value of the '{@link #getFrom_agent() <em>From agent</em>}' reference.
102 * <!-- begin-user-doc -->
103 * <!-- end-user-doc -->
104 * @see #getFrom_agent()
105 * @generated
106 * @ordered
107 */
108 protected FromAgent from_agent;
109
110 /**
111 * The cached value of the '{@link #getExpense() <em>Expense</em>}' reference list.
112 * <!-- begin-user-doc -->
113 * <!-- end-user-doc -->
114 * @see #getExpense()
115 * @generated
116 * @ordered
117 */
118 protected EList<Expense> expense;
119
120 /**
121 * <!-- begin-user-doc -->
122 * <!-- end-user-doc -->
123 * @generated
124 */
125 protected DependentImpl() {
126 super();
127 }
128
129 /**
130 * <!-- begin-user-doc -->
131 * <!-- end-user-doc -->
132 * @generated
133 */
134 @Override
135 protected EClass eStaticClass() {
136 return TaxationWithRootPackage.Literals.DEPENDENT;
137 }
138
139 /**
140 * <!-- begin-user-doc -->
141 * <!-- end-user-doc -->
142 * @generated
143 */
144 @Override
145 public Dependent_Type getDependent_type() {
146 return dependent_type;
147 }
148
149 /**
150 * <!-- begin-user-doc -->
151 * <!-- end-user-doc -->
152 * @generated
153 */
154 @Override
155 public void setDependent_type(Dependent_Type newDependent_type) {
156 Dependent_Type oldDependent_type = dependent_type;
157 dependent_type = newDependent_type == null ? DEPENDENT_TYPE_EDEFAULT : newDependent_type;
158 if (eNotificationRequired())
159 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.DEPENDENT__DEPENDENT_TYPE, oldDependent_type, dependent_type));
160 }
161
162 /**
163 * <!-- begin-user-doc -->
164 * <!-- end-user-doc -->
165 * @generated
166 */
167 @Override
168 public Tax_Payer getResponsible_person() {
169 if (eContainerFeatureID() != TaxationWithRootPackage.DEPENDENT__RESPONSIBLE_PERSON) return null;
170 return (Tax_Payer)eInternalContainer();
171 }
172
173 /**
174 * <!-- begin-user-doc -->
175 * <!-- end-user-doc -->
176 * @generated
177 */
178 public NotificationChain basicSetResponsible_person(Tax_Payer newResponsible_person, NotificationChain msgs) {
179 msgs = eBasicSetContainer((InternalEObject)newResponsible_person, TaxationWithRootPackage.DEPENDENT__RESPONSIBLE_PERSON, msgs);
180 return msgs;
181 }
182
183 /**
184 * <!-- begin-user-doc -->
185 * <!-- end-user-doc -->
186 * @generated
187 */
188 @Override
189 public void setResponsible_person(Tax_Payer newResponsible_person) {
190 if (newResponsible_person != eInternalContainer() || (eContainerFeatureID() != TaxationWithRootPackage.DEPENDENT__RESPONSIBLE_PERSON && newResponsible_person != null)) {
191 if (EcoreUtil.isAncestor(this, newResponsible_person))
192 throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
193 NotificationChain msgs = null;
194 if (eInternalContainer() != null)
195 msgs = eBasicRemoveFromContainer(msgs);
196 if (newResponsible_person != null)
197 msgs = ((InternalEObject)newResponsible_person).eInverseAdd(this, TaxationWithRootPackage.TAX_PAYER__DEPENDENTS, Tax_Payer.class, msgs);
198 msgs = basicSetResponsible_person(newResponsible_person, msgs);
199 if (msgs != null) msgs.dispatch();
200 }
201 else if (eNotificationRequired())
202 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.DEPENDENT__RESPONSIBLE_PERSON, newResponsible_person, newResponsible_person));
203 }
204
205 /**
206 * <!-- begin-user-doc -->
207 * <!-- end-user-doc -->
208 * @generated
209 */
210 @Override
211 public boolean isContinued_studies() {
212 return continued_studies;
213 }
214
215 /**
216 * <!-- begin-user-doc -->
217 * <!-- end-user-doc -->
218 * @generated
219 */
220 @Override
221 public void setContinued_studies(boolean newContinued_studies) {
222 boolean oldContinued_studies = continued_studies;
223 continued_studies = newContinued_studies;
224 if (eNotificationRequired())
225 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.DEPENDENT__CONTINUED_STUDIES, oldContinued_studies, continued_studies));
226 }
227
228 /**
229 * <!-- begin-user-doc -->
230 * <!-- end-user-doc -->
231 * @generated
232 */
233 @Override
234 public External_Allowance getAllowances() {
235 return allowances;
236 }
237
238 /**
239 * <!-- begin-user-doc -->
240 * <!-- end-user-doc -->
241 * @generated
242 */
243 public NotificationChain basicSetAllowances(External_Allowance newAllowances, NotificationChain msgs) {
244 External_Allowance oldAllowances = allowances;
245 allowances = newAllowances;
246 if (eNotificationRequired()) {
247 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.DEPENDENT__ALLOWANCES, oldAllowances, newAllowances);
248 if (msgs == null) msgs = notification; else msgs.add(notification);
249 }
250 return msgs;
251 }
252
253 /**
254 * <!-- begin-user-doc -->
255 * <!-- end-user-doc -->
256 * @generated
257 */
258 @Override
259 public void setAllowances(External_Allowance newAllowances) {
260 if (newAllowances != allowances) {
261 NotificationChain msgs = null;
262 if (allowances != null)
263 msgs = ((InternalEObject)allowances).eInverseRemove(this, TaxationWithRootPackage.EXTERNAL_ALLOWANCE__PERSON, External_Allowance.class, msgs);
264 if (newAllowances != null)
265 msgs = ((InternalEObject)newAllowances).eInverseAdd(this, TaxationWithRootPackage.EXTERNAL_ALLOWANCE__PERSON, External_Allowance.class, msgs);
266 msgs = basicSetAllowances(newAllowances, msgs);
267 if (msgs != null) msgs.dispatch();
268 }
269 else if (eNotificationRequired())
270 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.DEPENDENT__ALLOWANCES, newAllowances, newAllowances));
271 }
272
273 /**
274 * <!-- begin-user-doc -->
275 * <!-- end-user-doc -->
276 * @generated
277 */
278 @Override
279 public Household getHousehold() {
280 if (eContainerFeatureID() != TaxationWithRootPackage.DEPENDENT__HOUSEHOLD) return null;
281 return (Household)eInternalContainer();
282 }
283
284 /**
285 * <!-- begin-user-doc -->
286 * <!-- end-user-doc -->
287 * @generated
288 */
289 public NotificationChain basicSetHousehold(Household newHousehold, NotificationChain msgs) {
290 msgs = eBasicSetContainer((InternalEObject)newHousehold, TaxationWithRootPackage.DEPENDENT__HOUSEHOLD, msgs);
291 return msgs;
292 }
293
294 /**
295 * <!-- begin-user-doc -->
296 * <!-- end-user-doc -->
297 * @generated
298 */
299 @Override
300 public void setHousehold(Household newHousehold) {
301 if (newHousehold != eInternalContainer() || (eContainerFeatureID() != TaxationWithRootPackage.DEPENDENT__HOUSEHOLD && newHousehold != null)) {
302 if (EcoreUtil.isAncestor(this, newHousehold))
303 throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
304 NotificationChain msgs = null;
305 if (eInternalContainer() != null)
306 msgs = eBasicRemoveFromContainer(msgs);
307 if (newHousehold != null)
308 msgs = ((InternalEObject)newHousehold).eInverseAdd(this, TaxationWithRootPackage.HOUSEHOLD__CHILDREN, Household.class, msgs);
309 msgs = basicSetHousehold(newHousehold, msgs);
310 if (msgs != null) msgs.dispatch();
311 }
312 else if (eNotificationRequired())
313 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.DEPENDENT__HOUSEHOLD, newHousehold, newHousehold));
314 }
315
316 /**
317 * <!-- begin-user-doc -->
318 * <!-- end-user-doc -->
319 * @generated
320 */
321 @Override
322 public FromAgent getFrom_agent() {
323 if (from_agent != null && from_agent.eIsProxy()) {
324 InternalEObject oldFrom_agent = (InternalEObject)from_agent;
325 from_agent = (FromAgent)eResolveProxy(oldFrom_agent);
326 if (from_agent != oldFrom_agent) {
327 if (eNotificationRequired())
328 eNotify(new ENotificationImpl(this, Notification.RESOLVE, TaxationWithRootPackage.DEPENDENT__FROM_AGENT, oldFrom_agent, from_agent));
329 }
330 }
331 return from_agent;
332 }
333
334 /**
335 * <!-- begin-user-doc -->
336 * <!-- end-user-doc -->
337 * @generated
338 */
339 public FromAgent basicGetFrom_agent() {
340 return from_agent;
341 }
342
343 /**
344 * <!-- begin-user-doc -->
345 * <!-- end-user-doc -->
346 * @generated
347 */
348 public NotificationChain basicSetFrom_agent(FromAgent newFrom_agent, NotificationChain msgs) {
349 FromAgent oldFrom_agent = from_agent;
350 from_agent = newFrom_agent;
351 if (eNotificationRequired()) {
352 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.DEPENDENT__FROM_AGENT, oldFrom_agent, newFrom_agent);
353 if (msgs == null) msgs = notification; else msgs.add(notification);
354 }
355 return msgs;
356 }
357
358 /**
359 * <!-- begin-user-doc -->
360 * <!-- end-user-doc -->
361 * @generated
362 */
363 @Override
364 public void setFrom_agent(FromAgent newFrom_agent) {
365 if (newFrom_agent != from_agent) {
366 NotificationChain msgs = null;
367 if (from_agent != null)
368 msgs = ((InternalEObject)from_agent).eInverseRemove(this, TaxationWithRootPackage.FROM_AGENT__DEPENDENT, FromAgent.class, msgs);
369 if (newFrom_agent != null)
370 msgs = ((InternalEObject)newFrom_agent).eInverseAdd(this, TaxationWithRootPackage.FROM_AGENT__DEPENDENT, FromAgent.class, msgs);
371 msgs = basicSetFrom_agent(newFrom_agent, msgs);
372 if (msgs != null) msgs.dispatch();
373 }
374 else if (eNotificationRequired())
375 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.DEPENDENT__FROM_AGENT, newFrom_agent, newFrom_agent));
376 }
377
378 /**
379 * <!-- begin-user-doc -->
380 * <!-- end-user-doc -->
381 * @generated
382 */
383 @Override
384 public EList<Expense> getExpense() {
385 if (expense == null) {
386 expense = new EObjectWithInverseResolvingEList<Expense>(Expense.class, this, TaxationWithRootPackage.DEPENDENT__EXPENSE, TaxationWithRootPackage.EXPENSE__DEPENDENT);
387 }
388 return expense;
389 }
390
391 /**
392 * <!-- begin-user-doc -->
393 * <!-- end-user-doc -->
394 * @generated
395 */
396 @SuppressWarnings("unchecked")
397 @Override
398 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
399 switch (featureID) {
400 case TaxationWithRootPackage.DEPENDENT__RESPONSIBLE_PERSON:
401 if (eInternalContainer() != null)
402 msgs = eBasicRemoveFromContainer(msgs);
403 return basicSetResponsible_person((Tax_Payer)otherEnd, msgs);
404 case TaxationWithRootPackage.DEPENDENT__ALLOWANCES:
405 if (allowances != null)
406 msgs = ((InternalEObject)allowances).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TaxationWithRootPackage.DEPENDENT__ALLOWANCES, null, msgs);
407 return basicSetAllowances((External_Allowance)otherEnd, msgs);
408 case TaxationWithRootPackage.DEPENDENT__HOUSEHOLD:
409 if (eInternalContainer() != null)
410 msgs = eBasicRemoveFromContainer(msgs);
411 return basicSetHousehold((Household)otherEnd, msgs);
412 case TaxationWithRootPackage.DEPENDENT__FROM_AGENT:
413 if (from_agent != null)
414 msgs = ((InternalEObject)from_agent).eInverseRemove(this, TaxationWithRootPackage.FROM_AGENT__DEPENDENT, FromAgent.class, msgs);
415 return basicSetFrom_agent((FromAgent)otherEnd, msgs);
416 case TaxationWithRootPackage.DEPENDENT__EXPENSE:
417 return ((InternalEList<InternalEObject>)(InternalEList<?>)getExpense()).basicAdd(otherEnd, msgs);
418 }
419 return super.eInverseAdd(otherEnd, featureID, msgs);
420 }
421
422 /**
423 * <!-- begin-user-doc -->
424 * <!-- end-user-doc -->
425 * @generated
426 */
427 @Override
428 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
429 switch (featureID) {
430 case TaxationWithRootPackage.DEPENDENT__RESPONSIBLE_PERSON:
431 return basicSetResponsible_person(null, msgs);
432 case TaxationWithRootPackage.DEPENDENT__ALLOWANCES:
433 return basicSetAllowances(null, msgs);
434 case TaxationWithRootPackage.DEPENDENT__HOUSEHOLD:
435 return basicSetHousehold(null, msgs);
436 case TaxationWithRootPackage.DEPENDENT__FROM_AGENT:
437 return basicSetFrom_agent(null, msgs);
438 case TaxationWithRootPackage.DEPENDENT__EXPENSE:
439 return ((InternalEList<?>)getExpense()).basicRemove(otherEnd, msgs);
440 }
441 return super.eInverseRemove(otherEnd, featureID, msgs);
442 }
443
444 /**
445 * <!-- begin-user-doc -->
446 * <!-- end-user-doc -->
447 * @generated
448 */
449 @Override
450 public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
451 switch (eContainerFeatureID()) {
452 case TaxationWithRootPackage.DEPENDENT__RESPONSIBLE_PERSON:
453 return eInternalContainer().eInverseRemove(this, TaxationWithRootPackage.TAX_PAYER__DEPENDENTS, Tax_Payer.class, msgs);
454 case TaxationWithRootPackage.DEPENDENT__HOUSEHOLD:
455 return eInternalContainer().eInverseRemove(this, TaxationWithRootPackage.HOUSEHOLD__CHILDREN, Household.class, msgs);
456 }
457 return super.eBasicRemoveFromContainerFeature(msgs);
458 }
459
460 /**
461 * <!-- begin-user-doc -->
462 * <!-- end-user-doc -->
463 * @generated
464 */
465 @Override
466 public Object eGet(int featureID, boolean resolve, boolean coreType) {
467 switch (featureID) {
468 case TaxationWithRootPackage.DEPENDENT__DEPENDENT_TYPE:
469 return getDependent_type();
470 case TaxationWithRootPackage.DEPENDENT__RESPONSIBLE_PERSON:
471 return getResponsible_person();
472 case TaxationWithRootPackage.DEPENDENT__CONTINUED_STUDIES:
473 return isContinued_studies();
474 case TaxationWithRootPackage.DEPENDENT__ALLOWANCES:
475 return getAllowances();
476 case TaxationWithRootPackage.DEPENDENT__HOUSEHOLD:
477 return getHousehold();
478 case TaxationWithRootPackage.DEPENDENT__FROM_AGENT:
479 if (resolve) return getFrom_agent();
480 return basicGetFrom_agent();
481 case TaxationWithRootPackage.DEPENDENT__EXPENSE:
482 return getExpense();
483 }
484 return super.eGet(featureID, resolve, coreType);
485 }
486
487 /**
488 * <!-- begin-user-doc -->
489 * <!-- end-user-doc -->
490 * @generated
491 */
492 @SuppressWarnings("unchecked")
493 @Override
494 public void eSet(int featureID, Object newValue) {
495 switch (featureID) {
496 case TaxationWithRootPackage.DEPENDENT__DEPENDENT_TYPE:
497 setDependent_type((Dependent_Type)newValue);
498 return;
499 case TaxationWithRootPackage.DEPENDENT__RESPONSIBLE_PERSON:
500 setResponsible_person((Tax_Payer)newValue);
501 return;
502 case TaxationWithRootPackage.DEPENDENT__CONTINUED_STUDIES:
503 setContinued_studies((Boolean)newValue);
504 return;
505 case TaxationWithRootPackage.DEPENDENT__ALLOWANCES:
506 setAllowances((External_Allowance)newValue);
507 return;
508 case TaxationWithRootPackage.DEPENDENT__HOUSEHOLD:
509 setHousehold((Household)newValue);
510 return;
511 case TaxationWithRootPackage.DEPENDENT__FROM_AGENT:
512 setFrom_agent((FromAgent)newValue);
513 return;
514 case TaxationWithRootPackage.DEPENDENT__EXPENSE:
515 getExpense().clear();
516 getExpense().addAll((Collection<? extends Expense>)newValue);
517 return;
518 }
519 super.eSet(featureID, newValue);
520 }
521
522 /**
523 * <!-- begin-user-doc -->
524 * <!-- end-user-doc -->
525 * @generated
526 */
527 @Override
528 public void eUnset(int featureID) {
529 switch (featureID) {
530 case TaxationWithRootPackage.DEPENDENT__DEPENDENT_TYPE:
531 setDependent_type(DEPENDENT_TYPE_EDEFAULT);
532 return;
533 case TaxationWithRootPackage.DEPENDENT__RESPONSIBLE_PERSON:
534 setResponsible_person((Tax_Payer)null);
535 return;
536 case TaxationWithRootPackage.DEPENDENT__CONTINUED_STUDIES:
537 setContinued_studies(CONTINUED_STUDIES_EDEFAULT);
538 return;
539 case TaxationWithRootPackage.DEPENDENT__ALLOWANCES:
540 setAllowances((External_Allowance)null);
541 return;
542 case TaxationWithRootPackage.DEPENDENT__HOUSEHOLD:
543 setHousehold((Household)null);
544 return;
545 case TaxationWithRootPackage.DEPENDENT__FROM_AGENT:
546 setFrom_agent((FromAgent)null);
547 return;
548 case TaxationWithRootPackage.DEPENDENT__EXPENSE:
549 getExpense().clear();
550 return;
551 }
552 super.eUnset(featureID);
553 }
554
555 /**
556 * <!-- begin-user-doc -->
557 * <!-- end-user-doc -->
558 * @generated
559 */
560 @Override
561 public boolean eIsSet(int featureID) {
562 switch (featureID) {
563 case TaxationWithRootPackage.DEPENDENT__DEPENDENT_TYPE:
564 return dependent_type != DEPENDENT_TYPE_EDEFAULT;
565 case TaxationWithRootPackage.DEPENDENT__RESPONSIBLE_PERSON:
566 return getResponsible_person() != null;
567 case TaxationWithRootPackage.DEPENDENT__CONTINUED_STUDIES:
568 return continued_studies != CONTINUED_STUDIES_EDEFAULT;
569 case TaxationWithRootPackage.DEPENDENT__ALLOWANCES:
570 return allowances != null;
571 case TaxationWithRootPackage.DEPENDENT__HOUSEHOLD:
572 return getHousehold() != null;
573 case TaxationWithRootPackage.DEPENDENT__FROM_AGENT:
574 return from_agent != null;
575 case TaxationWithRootPackage.DEPENDENT__EXPENSE:
576 return expense != null && !expense.isEmpty();
577 }
578 return super.eIsSet(featureID);
579 }
580
581 /**
582 * <!-- begin-user-doc -->
583 * <!-- end-user-doc -->
584 * @generated
585 */
586 @Override
587 public String toString() {
588 if (eIsProxy()) return super.toString();
589
590 StringBuilder result = new StringBuilder(super.toString());
591 result.append(" (dependent_type: ");
592 result.append(dependent_type);
593 result.append(", continued_studies: ");
594 result.append(continued_studies);
595 result.append(')');
596 return result.toString();
597 }
598
599} //DependentImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/DonationImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/DonationImpl.java
new file mode 100644
index 00000000..50e05d9f
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/DonationImpl.java
@@ -0,0 +1,220 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Donation;
6import TaxationWithRoot.TaxationWithRootPackage;
7
8import org.eclipse.emf.common.notify.Notification;
9
10import org.eclipse.emf.ecore.EClass;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13
14/**
15 * <!-- begin-user-doc -->
16 * An implementation of the model object '<em><b>Donation</b></em>'.
17 * <!-- end-user-doc -->
18 * <p>
19 * The following features are implemented:
20 * </p>
21 * <ul>
22 * <li>{@link TaxationWithRoot.impl.DonationImpl#getBeneficiary1 <em>Beneficiary1</em>}</li>
23 * <li>{@link TaxationWithRoot.impl.DonationImpl#isIs_donation_reported <em>Is donation reported</em>}</li>
24 * </ul>
25 *
26 * @generated
27 */
28public class DonationImpl extends Special_Expense_DSImpl implements Donation {
29 /**
30 * The default value of the '{@link #getBeneficiary1() <em>Beneficiary1</em>}' attribute.
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @see #getBeneficiary1()
34 * @generated
35 * @ordered
36 */
37 protected static final String BENEFICIARY1_EDEFAULT = null;
38
39 /**
40 * The cached value of the '{@link #getBeneficiary1() <em>Beneficiary1</em>}' attribute.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @see #getBeneficiary1()
44 * @generated
45 * @ordered
46 */
47 protected String beneficiary1 = BENEFICIARY1_EDEFAULT;
48
49 /**
50 * The default value of the '{@link #isIs_donation_reported() <em>Is donation reported</em>}' attribute.
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @see #isIs_donation_reported()
54 * @generated
55 * @ordered
56 */
57 protected static final boolean IS_DONATION_REPORTED_EDEFAULT = false;
58
59 /**
60 * The cached value of the '{@link #isIs_donation_reported() <em>Is donation reported</em>}' attribute.
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @see #isIs_donation_reported()
64 * @generated
65 * @ordered
66 */
67 protected boolean is_donation_reported = IS_DONATION_REPORTED_EDEFAULT;
68
69 /**
70 * <!-- begin-user-doc -->
71 * <!-- end-user-doc -->
72 * @generated
73 */
74 protected DonationImpl() {
75 super();
76 }
77
78 /**
79 * <!-- begin-user-doc -->
80 * <!-- end-user-doc -->
81 * @generated
82 */
83 @Override
84 protected EClass eStaticClass() {
85 return TaxationWithRootPackage.Literals.DONATION;
86 }
87
88 /**
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @generated
92 */
93 @Override
94 public String getBeneficiary1() {
95 return beneficiary1;
96 }
97
98 /**
99 * <!-- begin-user-doc -->
100 * <!-- end-user-doc -->
101 * @generated
102 */
103 @Override
104 public void setBeneficiary1(String newBeneficiary1) {
105 String oldBeneficiary1 = beneficiary1;
106 beneficiary1 = newBeneficiary1;
107 if (eNotificationRequired())
108 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.DONATION__BENEFICIARY1, oldBeneficiary1, beneficiary1));
109 }
110
111 /**
112 * <!-- begin-user-doc -->
113 * <!-- end-user-doc -->
114 * @generated
115 */
116 @Override
117 public boolean isIs_donation_reported() {
118 return is_donation_reported;
119 }
120
121 /**
122 * <!-- begin-user-doc -->
123 * <!-- end-user-doc -->
124 * @generated
125 */
126 @Override
127 public void setIs_donation_reported(boolean newIs_donation_reported) {
128 boolean oldIs_donation_reported = is_donation_reported;
129 is_donation_reported = newIs_donation_reported;
130 if (eNotificationRequired())
131 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.DONATION__IS_DONATION_REPORTED, oldIs_donation_reported, is_donation_reported));
132 }
133
134 /**
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @generated
138 */
139 @Override
140 public Object eGet(int featureID, boolean resolve, boolean coreType) {
141 switch (featureID) {
142 case TaxationWithRootPackage.DONATION__BENEFICIARY1:
143 return getBeneficiary1();
144 case TaxationWithRootPackage.DONATION__IS_DONATION_REPORTED:
145 return isIs_donation_reported();
146 }
147 return super.eGet(featureID, resolve, coreType);
148 }
149
150 /**
151 * <!-- begin-user-doc -->
152 * <!-- end-user-doc -->
153 * @generated
154 */
155 @Override
156 public void eSet(int featureID, Object newValue) {
157 switch (featureID) {
158 case TaxationWithRootPackage.DONATION__BENEFICIARY1:
159 setBeneficiary1((String)newValue);
160 return;
161 case TaxationWithRootPackage.DONATION__IS_DONATION_REPORTED:
162 setIs_donation_reported((Boolean)newValue);
163 return;
164 }
165 super.eSet(featureID, newValue);
166 }
167
168 /**
169 * <!-- begin-user-doc -->
170 * <!-- end-user-doc -->
171 * @generated
172 */
173 @Override
174 public void eUnset(int featureID) {
175 switch (featureID) {
176 case TaxationWithRootPackage.DONATION__BENEFICIARY1:
177 setBeneficiary1(BENEFICIARY1_EDEFAULT);
178 return;
179 case TaxationWithRootPackage.DONATION__IS_DONATION_REPORTED:
180 setIs_donation_reported(IS_DONATION_REPORTED_EDEFAULT);
181 return;
182 }
183 super.eUnset(featureID);
184 }
185
186 /**
187 * <!-- begin-user-doc -->
188 * <!-- end-user-doc -->
189 * @generated
190 */
191 @Override
192 public boolean eIsSet(int featureID) {
193 switch (featureID) {
194 case TaxationWithRootPackage.DONATION__BENEFICIARY1:
195 return BENEFICIARY1_EDEFAULT == null ? beneficiary1 != null : !BENEFICIARY1_EDEFAULT.equals(beneficiary1);
196 case TaxationWithRootPackage.DONATION__IS_DONATION_REPORTED:
197 return is_donation_reported != IS_DONATION_REPORTED_EDEFAULT;
198 }
199 return super.eIsSet(featureID);
200 }
201
202 /**
203 * <!-- begin-user-doc -->
204 * <!-- end-user-doc -->
205 * @generated
206 */
207 @Override
208 public String toString() {
209 if (eIsProxy()) return super.toString();
210
211 StringBuilder result = new StringBuilder(super.toString());
212 result.append(" (beneficiary1: ");
213 result.append(beneficiary1);
214 result.append(", is_donation_reported: ");
215 result.append(is_donation_reported);
216 result.append(')');
217 return result.toString();
218 }
219
220} //DonationImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Employment_IncomeImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Employment_IncomeImpl.java
new file mode 100644
index 00000000..32ea4f65
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Employment_IncomeImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Employment_Income;
6import TaxationWithRoot.TaxationWithRootPackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Employment Income</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class Employment_IncomeImpl extends Income_TypeImpl implements Employment_Income {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected Employment_IncomeImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return TaxationWithRootPackage.Literals.EMPLOYMENT_INCOME;
35 }
36
37} //Employment_IncomeImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/ExpenseImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/ExpenseImpl.java
new file mode 100644
index 00000000..bab7796d
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/ExpenseImpl.java
@@ -0,0 +1,654 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Dependent;
6import TaxationWithRoot.Expense;
7import TaxationWithRoot.Expense_Purpose;
8import TaxationWithRoot.FromAgent;
9import TaxationWithRoot.Income;
10import TaxationWithRoot.Physical_Person;
11import TaxationWithRoot.TaxationWithRootPackage;
12
13import org.eclipse.emf.common.notify.Notification;
14import org.eclipse.emf.common.notify.NotificationChain;
15
16import org.eclipse.emf.ecore.EClass;
17import org.eclipse.emf.ecore.InternalEObject;
18
19import org.eclipse.emf.ecore.impl.ENotificationImpl;
20import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
21
22import org.eclipse.emf.ecore.util.EcoreUtil;
23
24/**
25 * <!-- begin-user-doc -->
26 * An implementation of the model object '<em><b>Expense</b></em>'.
27 * <!-- end-user-doc -->
28 * <p>
29 * The following features are implemented:
30 * </p>
31 * <ul>
32 * <li>{@link TaxationWithRoot.impl.ExpenseImpl#getDeclared_amount <em>Declared amount</em>}</li>
33 * <li>{@link TaxationWithRoot.impl.ExpenseImpl#getExpense_purpose <em>Expense purpose</em>}</li>
34 * <li>{@link TaxationWithRoot.impl.ExpenseImpl#getDependent <em>Dependent</em>}</li>
35 * <li>{@link TaxationWithRoot.impl.ExpenseImpl#getFrom_agent <em>From agent</em>}</li>
36 * <li>{@link TaxationWithRoot.impl.ExpenseImpl#getIncome <em>Income</em>}</li>
37 * <li>{@link TaxationWithRoot.impl.ExpenseImpl#getId4 <em>Id4</em>}</li>
38 * <li>{@link TaxationWithRoot.impl.ExpenseImpl#getBeneficiary <em>Beneficiary</em>}</li>
39 * </ul>
40 *
41 * @generated
42 */
43public class ExpenseImpl extends MinimalEObjectImpl.Container implements Expense {
44 /**
45 * The default value of the '{@link #getDeclared_amount() <em>Declared amount</em>}' attribute.
46 * <!-- begin-user-doc -->
47 * <!-- end-user-doc -->
48 * @see #getDeclared_amount()
49 * @generated
50 * @ordered
51 */
52 protected static final double DECLARED_AMOUNT_EDEFAULT = 0.0;
53
54 /**
55 * The cached value of the '{@link #getDeclared_amount() <em>Declared amount</em>}' attribute.
56 * <!-- begin-user-doc -->
57 * <!-- end-user-doc -->
58 * @see #getDeclared_amount()
59 * @generated
60 * @ordered
61 */
62 protected double declared_amount = DECLARED_AMOUNT_EDEFAULT;
63
64 /**
65 * The default value of the '{@link #getExpense_purpose() <em>Expense purpose</em>}' attribute.
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @see #getExpense_purpose()
69 * @generated
70 * @ordered
71 */
72 protected static final Expense_Purpose EXPENSE_PURPOSE_EDEFAULT = Expense_Purpose.OTHER;
73
74 /**
75 * The cached value of the '{@link #getExpense_purpose() <em>Expense purpose</em>}' attribute.
76 * <!-- begin-user-doc -->
77 * <!-- end-user-doc -->
78 * @see #getExpense_purpose()
79 * @generated
80 * @ordered
81 */
82 protected Expense_Purpose expense_purpose = EXPENSE_PURPOSE_EDEFAULT;
83
84 /**
85 * The cached value of the '{@link #getDependent() <em>Dependent</em>}' reference.
86 * <!-- begin-user-doc -->
87 * <!-- end-user-doc -->
88 * @see #getDependent()
89 * @generated
90 * @ordered
91 */
92 protected Dependent dependent;
93
94 /**
95 * The cached value of the '{@link #getFrom_agent() <em>From agent</em>}' reference.
96 * <!-- begin-user-doc -->
97 * <!-- end-user-doc -->
98 * @see #getFrom_agent()
99 * @generated
100 * @ordered
101 */
102 protected FromAgent from_agent;
103
104 /**
105 * The default value of the '{@link #getId4() <em>Id4</em>}' attribute.
106 * <!-- begin-user-doc -->
107 * <!-- end-user-doc -->
108 * @see #getId4()
109 * @generated
110 * @ordered
111 */
112 protected static final String ID4_EDEFAULT = null;
113
114 /**
115 * The cached value of the '{@link #getId4() <em>Id4</em>}' attribute.
116 * <!-- begin-user-doc -->
117 * <!-- end-user-doc -->
118 * @see #getId4()
119 * @generated
120 * @ordered
121 */
122 protected String id4 = ID4_EDEFAULT;
123
124 /**
125 * The cached value of the '{@link #getBeneficiary() <em>Beneficiary</em>}' reference.
126 * <!-- begin-user-doc -->
127 * <!-- end-user-doc -->
128 * @see #getBeneficiary()
129 * @generated
130 * @ordered
131 */
132 protected Physical_Person beneficiary;
133
134 /**
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @generated
138 */
139 protected ExpenseImpl() {
140 super();
141 }
142
143 /**
144 * <!-- begin-user-doc -->
145 * <!-- end-user-doc -->
146 * @generated
147 */
148 @Override
149 protected EClass eStaticClass() {
150 return TaxationWithRootPackage.Literals.EXPENSE;
151 }
152
153 /**
154 * <!-- begin-user-doc -->
155 * <!-- end-user-doc -->
156 * @generated
157 */
158 @Override
159 public double getDeclared_amount() {
160 return declared_amount;
161 }
162
163 /**
164 * <!-- begin-user-doc -->
165 * <!-- end-user-doc -->
166 * @generated
167 */
168 @Override
169 public void setDeclared_amount(double newDeclared_amount) {
170 double oldDeclared_amount = declared_amount;
171 declared_amount = newDeclared_amount;
172 if (eNotificationRequired())
173 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.EXPENSE__DECLARED_AMOUNT, oldDeclared_amount, declared_amount));
174 }
175
176 /**
177 * <!-- begin-user-doc -->
178 * <!-- end-user-doc -->
179 * @generated
180 */
181 @Override
182 public Expense_Purpose getExpense_purpose() {
183 return expense_purpose;
184 }
185
186 /**
187 * <!-- begin-user-doc -->
188 * <!-- end-user-doc -->
189 * @generated
190 */
191 @Override
192 public void setExpense_purpose(Expense_Purpose newExpense_purpose) {
193 Expense_Purpose oldExpense_purpose = expense_purpose;
194 expense_purpose = newExpense_purpose == null ? EXPENSE_PURPOSE_EDEFAULT : newExpense_purpose;
195 if (eNotificationRequired())
196 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.EXPENSE__EXPENSE_PURPOSE, oldExpense_purpose, expense_purpose));
197 }
198
199 /**
200 * <!-- begin-user-doc -->
201 * <!-- end-user-doc -->
202 * @generated
203 */
204 @Override
205 public Dependent getDependent() {
206 if (dependent != null && dependent.eIsProxy()) {
207 InternalEObject oldDependent = (InternalEObject)dependent;
208 dependent = (Dependent)eResolveProxy(oldDependent);
209 if (dependent != oldDependent) {
210 if (eNotificationRequired())
211 eNotify(new ENotificationImpl(this, Notification.RESOLVE, TaxationWithRootPackage.EXPENSE__DEPENDENT, oldDependent, dependent));
212 }
213 }
214 return dependent;
215 }
216
217 /**
218 * <!-- begin-user-doc -->
219 * <!-- end-user-doc -->
220 * @generated
221 */
222 public Dependent basicGetDependent() {
223 return dependent;
224 }
225
226 /**
227 * <!-- begin-user-doc -->
228 * <!-- end-user-doc -->
229 * @generated
230 */
231 public NotificationChain basicSetDependent(Dependent newDependent, NotificationChain msgs) {
232 Dependent oldDependent = dependent;
233 dependent = newDependent;
234 if (eNotificationRequired()) {
235 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.EXPENSE__DEPENDENT, oldDependent, newDependent);
236 if (msgs == null) msgs = notification; else msgs.add(notification);
237 }
238 return msgs;
239 }
240
241 /**
242 * <!-- begin-user-doc -->
243 * <!-- end-user-doc -->
244 * @generated
245 */
246 @Override
247 public void setDependent(Dependent newDependent) {
248 if (newDependent != dependent) {
249 NotificationChain msgs = null;
250 if (dependent != null)
251 msgs = ((InternalEObject)dependent).eInverseRemove(this, TaxationWithRootPackage.DEPENDENT__EXPENSE, Dependent.class, msgs);
252 if (newDependent != null)
253 msgs = ((InternalEObject)newDependent).eInverseAdd(this, TaxationWithRootPackage.DEPENDENT__EXPENSE, Dependent.class, msgs);
254 msgs = basicSetDependent(newDependent, msgs);
255 if (msgs != null) msgs.dispatch();
256 }
257 else if (eNotificationRequired())
258 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.EXPENSE__DEPENDENT, newDependent, newDependent));
259 }
260
261 /**
262 * <!-- begin-user-doc -->
263 * <!-- end-user-doc -->
264 * @generated
265 */
266 @Override
267 public FromAgent getFrom_agent() {
268 if (from_agent != null && from_agent.eIsProxy()) {
269 InternalEObject oldFrom_agent = (InternalEObject)from_agent;
270 from_agent = (FromAgent)eResolveProxy(oldFrom_agent);
271 if (from_agent != oldFrom_agent) {
272 if (eNotificationRequired())
273 eNotify(new ENotificationImpl(this, Notification.RESOLVE, TaxationWithRootPackage.EXPENSE__FROM_AGENT, oldFrom_agent, from_agent));
274 }
275 }
276 return from_agent;
277 }
278
279 /**
280 * <!-- begin-user-doc -->
281 * <!-- end-user-doc -->
282 * @generated
283 */
284 public FromAgent basicGetFrom_agent() {
285 return from_agent;
286 }
287
288 /**
289 * <!-- begin-user-doc -->
290 * <!-- end-user-doc -->
291 * @generated
292 */
293 public NotificationChain basicSetFrom_agent(FromAgent newFrom_agent, NotificationChain msgs) {
294 FromAgent oldFrom_agent = from_agent;
295 from_agent = newFrom_agent;
296 if (eNotificationRequired()) {
297 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.EXPENSE__FROM_AGENT, oldFrom_agent, newFrom_agent);
298 if (msgs == null) msgs = notification; else msgs.add(notification);
299 }
300 return msgs;
301 }
302
303 /**
304 * <!-- begin-user-doc -->
305 * <!-- end-user-doc -->
306 * @generated
307 */
308 @Override
309 public void setFrom_agent(FromAgent newFrom_agent) {
310 if (newFrom_agent != from_agent) {
311 NotificationChain msgs = null;
312 if (from_agent != null)
313 msgs = ((InternalEObject)from_agent).eInverseRemove(this, TaxationWithRootPackage.FROM_AGENT__EXPENSE, FromAgent.class, msgs);
314 if (newFrom_agent != null)
315 msgs = ((InternalEObject)newFrom_agent).eInverseAdd(this, TaxationWithRootPackage.FROM_AGENT__EXPENSE, FromAgent.class, msgs);
316 msgs = basicSetFrom_agent(newFrom_agent, msgs);
317 if (msgs != null) msgs.dispatch();
318 }
319 else if (eNotificationRequired())
320 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.EXPENSE__FROM_AGENT, newFrom_agent, newFrom_agent));
321 }
322
323 /**
324 * <!-- begin-user-doc -->
325 * <!-- end-user-doc -->
326 * @generated
327 */
328 @Override
329 public Income getIncome() {
330 if (eContainerFeatureID() != TaxationWithRootPackage.EXPENSE__INCOME) return null;
331 return (Income)eInternalContainer();
332 }
333
334 /**
335 * <!-- begin-user-doc -->
336 * <!-- end-user-doc -->
337 * @generated
338 */
339 public NotificationChain basicSetIncome(Income newIncome, NotificationChain msgs) {
340 msgs = eBasicSetContainer((InternalEObject)newIncome, TaxationWithRootPackage.EXPENSE__INCOME, msgs);
341 return msgs;
342 }
343
344 /**
345 * <!-- begin-user-doc -->
346 * <!-- end-user-doc -->
347 * @generated
348 */
349 @Override
350 public void setIncome(Income newIncome) {
351 if (newIncome != eInternalContainer() || (eContainerFeatureID() != TaxationWithRootPackage.EXPENSE__INCOME && newIncome != null)) {
352 if (EcoreUtil.isAncestor(this, newIncome))
353 throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
354 NotificationChain msgs = null;
355 if (eInternalContainer() != null)
356 msgs = eBasicRemoveFromContainer(msgs);
357 if (newIncome != null)
358 msgs = ((InternalEObject)newIncome).eInverseAdd(this, TaxationWithRootPackage.INCOME__EXPENSES, Income.class, msgs);
359 msgs = basicSetIncome(newIncome, msgs);
360 if (msgs != null) msgs.dispatch();
361 }
362 else if (eNotificationRequired())
363 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.EXPENSE__INCOME, newIncome, newIncome));
364 }
365
366 /**
367 * <!-- begin-user-doc -->
368 * <!-- end-user-doc -->
369 * @generated
370 */
371 @Override
372 public String getId4() {
373 return id4;
374 }
375
376 /**
377 * <!-- begin-user-doc -->
378 * <!-- end-user-doc -->
379 * @generated
380 */
381 @Override
382 public void setId4(String newId4) {
383 String oldId4 = id4;
384 id4 = newId4;
385 if (eNotificationRequired())
386 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.EXPENSE__ID4, oldId4, id4));
387 }
388
389 /**
390 * <!-- begin-user-doc -->
391 * <!-- end-user-doc -->
392 * @generated
393 */
394 @Override
395 public Physical_Person getBeneficiary() {
396 if (beneficiary != null && beneficiary.eIsProxy()) {
397 InternalEObject oldBeneficiary = (InternalEObject)beneficiary;
398 beneficiary = (Physical_Person)eResolveProxy(oldBeneficiary);
399 if (beneficiary != oldBeneficiary) {
400 if (eNotificationRequired())
401 eNotify(new ENotificationImpl(this, Notification.RESOLVE, TaxationWithRootPackage.EXPENSE__BENEFICIARY, oldBeneficiary, beneficiary));
402 }
403 }
404 return beneficiary;
405 }
406
407 /**
408 * <!-- begin-user-doc -->
409 * <!-- end-user-doc -->
410 * @generated
411 */
412 public Physical_Person basicGetBeneficiary() {
413 return beneficiary;
414 }
415
416 /**
417 * <!-- begin-user-doc -->
418 * <!-- end-user-doc -->
419 * @generated
420 */
421 public NotificationChain basicSetBeneficiary(Physical_Person newBeneficiary, NotificationChain msgs) {
422 Physical_Person oldBeneficiary = beneficiary;
423 beneficiary = newBeneficiary;
424 if (eNotificationRequired()) {
425 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.EXPENSE__BENEFICIARY, oldBeneficiary, newBeneficiary);
426 if (msgs == null) msgs = notification; else msgs.add(notification);
427 }
428 return msgs;
429 }
430
431 /**
432 * <!-- begin-user-doc -->
433 * <!-- end-user-doc -->
434 * @generated
435 */
436 @Override
437 public void setBeneficiary(Physical_Person newBeneficiary) {
438 if (newBeneficiary != beneficiary) {
439 NotificationChain msgs = null;
440 if (beneficiary != null)
441 msgs = ((InternalEObject)beneficiary).eInverseRemove(this, TaxationWithRootPackage.PHYSICAL_PERSON__EXPENSES, Physical_Person.class, msgs);
442 if (newBeneficiary != null)
443 msgs = ((InternalEObject)newBeneficiary).eInverseAdd(this, TaxationWithRootPackage.PHYSICAL_PERSON__EXPENSES, Physical_Person.class, msgs);
444 msgs = basicSetBeneficiary(newBeneficiary, msgs);
445 if (msgs != null) msgs.dispatch();
446 }
447 else if (eNotificationRequired())
448 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.EXPENSE__BENEFICIARY, newBeneficiary, newBeneficiary));
449 }
450
451 /**
452 * <!-- begin-user-doc -->
453 * <!-- end-user-doc -->
454 * @generated
455 */
456 @Override
457 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
458 switch (featureID) {
459 case TaxationWithRootPackage.EXPENSE__DEPENDENT:
460 if (dependent != null)
461 msgs = ((InternalEObject)dependent).eInverseRemove(this, TaxationWithRootPackage.DEPENDENT__EXPENSE, Dependent.class, msgs);
462 return basicSetDependent((Dependent)otherEnd, msgs);
463 case TaxationWithRootPackage.EXPENSE__FROM_AGENT:
464 if (from_agent != null)
465 msgs = ((InternalEObject)from_agent).eInverseRemove(this, TaxationWithRootPackage.FROM_AGENT__EXPENSE, FromAgent.class, msgs);
466 return basicSetFrom_agent((FromAgent)otherEnd, msgs);
467 case TaxationWithRootPackage.EXPENSE__INCOME:
468 if (eInternalContainer() != null)
469 msgs = eBasicRemoveFromContainer(msgs);
470 return basicSetIncome((Income)otherEnd, msgs);
471 case TaxationWithRootPackage.EXPENSE__BENEFICIARY:
472 if (beneficiary != null)
473 msgs = ((InternalEObject)beneficiary).eInverseRemove(this, TaxationWithRootPackage.PHYSICAL_PERSON__EXPENSES, Physical_Person.class, msgs);
474 return basicSetBeneficiary((Physical_Person)otherEnd, msgs);
475 }
476 return super.eInverseAdd(otherEnd, featureID, msgs);
477 }
478
479 /**
480 * <!-- begin-user-doc -->
481 * <!-- end-user-doc -->
482 * @generated
483 */
484 @Override
485 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
486 switch (featureID) {
487 case TaxationWithRootPackage.EXPENSE__DEPENDENT:
488 return basicSetDependent(null, msgs);
489 case TaxationWithRootPackage.EXPENSE__FROM_AGENT:
490 return basicSetFrom_agent(null, msgs);
491 case TaxationWithRootPackage.EXPENSE__INCOME:
492 return basicSetIncome(null, msgs);
493 case TaxationWithRootPackage.EXPENSE__BENEFICIARY:
494 return basicSetBeneficiary(null, msgs);
495 }
496 return super.eInverseRemove(otherEnd, featureID, msgs);
497 }
498
499 /**
500 * <!-- begin-user-doc -->
501 * <!-- end-user-doc -->
502 * @generated
503 */
504 @Override
505 public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
506 switch (eContainerFeatureID()) {
507 case TaxationWithRootPackage.EXPENSE__INCOME:
508 return eInternalContainer().eInverseRemove(this, TaxationWithRootPackage.INCOME__EXPENSES, Income.class, msgs);
509 }
510 return super.eBasicRemoveFromContainerFeature(msgs);
511 }
512
513 /**
514 * <!-- begin-user-doc -->
515 * <!-- end-user-doc -->
516 * @generated
517 */
518 @Override
519 public Object eGet(int featureID, boolean resolve, boolean coreType) {
520 switch (featureID) {
521 case TaxationWithRootPackage.EXPENSE__DECLARED_AMOUNT:
522 return getDeclared_amount();
523 case TaxationWithRootPackage.EXPENSE__EXPENSE_PURPOSE:
524 return getExpense_purpose();
525 case TaxationWithRootPackage.EXPENSE__DEPENDENT:
526 if (resolve) return getDependent();
527 return basicGetDependent();
528 case TaxationWithRootPackage.EXPENSE__FROM_AGENT:
529 if (resolve) return getFrom_agent();
530 return basicGetFrom_agent();
531 case TaxationWithRootPackage.EXPENSE__INCOME:
532 return getIncome();
533 case TaxationWithRootPackage.EXPENSE__ID4:
534 return getId4();
535 case TaxationWithRootPackage.EXPENSE__BENEFICIARY:
536 if (resolve) return getBeneficiary();
537 return basicGetBeneficiary();
538 }
539 return super.eGet(featureID, resolve, coreType);
540 }
541
542 /**
543 * <!-- begin-user-doc -->
544 * <!-- end-user-doc -->
545 * @generated
546 */
547 @Override
548 public void eSet(int featureID, Object newValue) {
549 switch (featureID) {
550 case TaxationWithRootPackage.EXPENSE__DECLARED_AMOUNT:
551 setDeclared_amount((Double)newValue);
552 return;
553 case TaxationWithRootPackage.EXPENSE__EXPENSE_PURPOSE:
554 setExpense_purpose((Expense_Purpose)newValue);
555 return;
556 case TaxationWithRootPackage.EXPENSE__DEPENDENT:
557 setDependent((Dependent)newValue);
558 return;
559 case TaxationWithRootPackage.EXPENSE__FROM_AGENT:
560 setFrom_agent((FromAgent)newValue);
561 return;
562 case TaxationWithRootPackage.EXPENSE__INCOME:
563 setIncome((Income)newValue);
564 return;
565 case TaxationWithRootPackage.EXPENSE__ID4:
566 setId4((String)newValue);
567 return;
568 case TaxationWithRootPackage.EXPENSE__BENEFICIARY:
569 setBeneficiary((Physical_Person)newValue);
570 return;
571 }
572 super.eSet(featureID, newValue);
573 }
574
575 /**
576 * <!-- begin-user-doc -->
577 * <!-- end-user-doc -->
578 * @generated
579 */
580 @Override
581 public void eUnset(int featureID) {
582 switch (featureID) {
583 case TaxationWithRootPackage.EXPENSE__DECLARED_AMOUNT:
584 setDeclared_amount(DECLARED_AMOUNT_EDEFAULT);
585 return;
586 case TaxationWithRootPackage.EXPENSE__EXPENSE_PURPOSE:
587 setExpense_purpose(EXPENSE_PURPOSE_EDEFAULT);
588 return;
589 case TaxationWithRootPackage.EXPENSE__DEPENDENT:
590 setDependent((Dependent)null);
591 return;
592 case TaxationWithRootPackage.EXPENSE__FROM_AGENT:
593 setFrom_agent((FromAgent)null);
594 return;
595 case TaxationWithRootPackage.EXPENSE__INCOME:
596 setIncome((Income)null);
597 return;
598 case TaxationWithRootPackage.EXPENSE__ID4:
599 setId4(ID4_EDEFAULT);
600 return;
601 case TaxationWithRootPackage.EXPENSE__BENEFICIARY:
602 setBeneficiary((Physical_Person)null);
603 return;
604 }
605 super.eUnset(featureID);
606 }
607
608 /**
609 * <!-- begin-user-doc -->
610 * <!-- end-user-doc -->
611 * @generated
612 */
613 @Override
614 public boolean eIsSet(int featureID) {
615 switch (featureID) {
616 case TaxationWithRootPackage.EXPENSE__DECLARED_AMOUNT:
617 return declared_amount != DECLARED_AMOUNT_EDEFAULT;
618 case TaxationWithRootPackage.EXPENSE__EXPENSE_PURPOSE:
619 return expense_purpose != EXPENSE_PURPOSE_EDEFAULT;
620 case TaxationWithRootPackage.EXPENSE__DEPENDENT:
621 return dependent != null;
622 case TaxationWithRootPackage.EXPENSE__FROM_AGENT:
623 return from_agent != null;
624 case TaxationWithRootPackage.EXPENSE__INCOME:
625 return getIncome() != null;
626 case TaxationWithRootPackage.EXPENSE__ID4:
627 return ID4_EDEFAULT == null ? id4 != null : !ID4_EDEFAULT.equals(id4);
628 case TaxationWithRootPackage.EXPENSE__BENEFICIARY:
629 return beneficiary != null;
630 }
631 return super.eIsSet(featureID);
632 }
633
634 /**
635 * <!-- begin-user-doc -->
636 * <!-- end-user-doc -->
637 * @generated
638 */
639 @Override
640 public String toString() {
641 if (eIsProxy()) return super.toString();
642
643 StringBuilder result = new StringBuilder(super.toString());
644 result.append(" (declared_amount: ");
645 result.append(declared_amount);
646 result.append(", expense_purpose: ");
647 result.append(expense_purpose);
648 result.append(", id4: ");
649 result.append(id4);
650 result.append(')');
651 return result.toString();
652 }
653
654} //ExpenseImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/External_AllowanceImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/External_AllowanceImpl.java
new file mode 100644
index 00000000..88f96468
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/External_AllowanceImpl.java
@@ -0,0 +1,500 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Dependent;
6import TaxationWithRoot.External_Allowance;
7import TaxationWithRoot.Grantor;
8import TaxationWithRoot.Physical_Person;
9import TaxationWithRoot.TaxationWithRootPackage;
10
11import org.eclipse.emf.common.notify.Notification;
12import org.eclipse.emf.common.notify.NotificationChain;
13
14import org.eclipse.emf.ecore.EClass;
15import org.eclipse.emf.ecore.InternalEObject;
16
17import org.eclipse.emf.ecore.impl.ENotificationImpl;
18import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
19
20import org.eclipse.emf.ecore.util.EcoreUtil;
21
22/**
23 * <!-- begin-user-doc -->
24 * An implementation of the model object '<em><b>External Allowance</b></em>'.
25 * <!-- end-user-doc -->
26 * <p>
27 * The following features are implemented:
28 * </p>
29 * <ul>
30 * <li>{@link TaxationWithRoot.impl.External_AllowanceImpl#getGrantor <em>Grantor</em>}</li>
31 * <li>{@link TaxationWithRoot.impl.External_AllowanceImpl#getStarting_year <em>Starting year</em>}</li>
32 * <li>{@link TaxationWithRoot.impl.External_AllowanceImpl#getEnding_year <em>Ending year</em>}</li>
33 * <li>{@link TaxationWithRoot.impl.External_AllowanceImpl#getReciver <em>Reciver</em>}</li>
34 * <li>{@link TaxationWithRoot.impl.External_AllowanceImpl#getId5 <em>Id5</em>}</li>
35 * <li>{@link TaxationWithRoot.impl.External_AllowanceImpl#getPerson <em>Person</em>}</li>
36 * </ul>
37 *
38 * @generated
39 */
40public class External_AllowanceImpl extends MinimalEObjectImpl.Container implements External_Allowance {
41 /**
42 * The default value of the '{@link #getGrantor() <em>Grantor</em>}' attribute.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #getGrantor()
46 * @generated
47 * @ordered
48 */
49 protected static final Grantor GRANTOR_EDEFAULT = Grantor.WWW;
50
51 /**
52 * The cached value of the '{@link #getGrantor() <em>Grantor</em>}' attribute.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #getGrantor()
56 * @generated
57 * @ordered
58 */
59 protected Grantor grantor = GRANTOR_EDEFAULT;
60
61 /**
62 * The default value of the '{@link #getStarting_year() <em>Starting year</em>}' attribute.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @see #getStarting_year()
66 * @generated
67 * @ordered
68 */
69 protected static final int STARTING_YEAR_EDEFAULT = 0;
70
71 /**
72 * The cached value of the '{@link #getStarting_year() <em>Starting year</em>}' attribute.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @see #getStarting_year()
76 * @generated
77 * @ordered
78 */
79 protected int starting_year = STARTING_YEAR_EDEFAULT;
80
81 /**
82 * The default value of the '{@link #getEnding_year() <em>Ending year</em>}' attribute.
83 * <!-- begin-user-doc -->
84 * <!-- end-user-doc -->
85 * @see #getEnding_year()
86 * @generated
87 * @ordered
88 */
89 protected static final int ENDING_YEAR_EDEFAULT = 0;
90
91 /**
92 * The cached value of the '{@link #getEnding_year() <em>Ending year</em>}' attribute.
93 * <!-- begin-user-doc -->
94 * <!-- end-user-doc -->
95 * @see #getEnding_year()
96 * @generated
97 * @ordered
98 */
99 protected int ending_year = ENDING_YEAR_EDEFAULT;
100
101 /**
102 * The cached value of the '{@link #getReciver() <em>Reciver</em>}' reference.
103 * <!-- begin-user-doc -->
104 * <!-- end-user-doc -->
105 * @see #getReciver()
106 * @generated
107 * @ordered
108 */
109 protected Physical_Person reciver;
110
111 /**
112 * The default value of the '{@link #getId5() <em>Id5</em>}' attribute.
113 * <!-- begin-user-doc -->
114 * <!-- end-user-doc -->
115 * @see #getId5()
116 * @generated
117 * @ordered
118 */
119 protected static final String ID5_EDEFAULT = null;
120
121 /**
122 * The cached value of the '{@link #getId5() <em>Id5</em>}' attribute.
123 * <!-- begin-user-doc -->
124 * <!-- end-user-doc -->
125 * @see #getId5()
126 * @generated
127 * @ordered
128 */
129 protected String id5 = ID5_EDEFAULT;
130
131 /**
132 * <!-- begin-user-doc -->
133 * <!-- end-user-doc -->
134 * @generated
135 */
136 protected External_AllowanceImpl() {
137 super();
138 }
139
140 /**
141 * <!-- begin-user-doc -->
142 * <!-- end-user-doc -->
143 * @generated
144 */
145 @Override
146 protected EClass eStaticClass() {
147 return TaxationWithRootPackage.Literals.EXTERNAL_ALLOWANCE;
148 }
149
150 /**
151 * <!-- begin-user-doc -->
152 * <!-- end-user-doc -->
153 * @generated
154 */
155 @Override
156 public Grantor getGrantor() {
157 return grantor;
158 }
159
160 /**
161 * <!-- begin-user-doc -->
162 * <!-- end-user-doc -->
163 * @generated
164 */
165 @Override
166 public void setGrantor(Grantor newGrantor) {
167 Grantor oldGrantor = grantor;
168 grantor = newGrantor == null ? GRANTOR_EDEFAULT : newGrantor;
169 if (eNotificationRequired())
170 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.EXTERNAL_ALLOWANCE__GRANTOR, oldGrantor, grantor));
171 }
172
173 /**
174 * <!-- begin-user-doc -->
175 * <!-- end-user-doc -->
176 * @generated
177 */
178 @Override
179 public int getStarting_year() {
180 return starting_year;
181 }
182
183 /**
184 * <!-- begin-user-doc -->
185 * <!-- end-user-doc -->
186 * @generated
187 */
188 @Override
189 public void setStarting_year(int newStarting_year) {
190 int oldStarting_year = starting_year;
191 starting_year = newStarting_year;
192 if (eNotificationRequired())
193 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.EXTERNAL_ALLOWANCE__STARTING_YEAR, oldStarting_year, starting_year));
194 }
195
196 /**
197 * <!-- begin-user-doc -->
198 * <!-- end-user-doc -->
199 * @generated
200 */
201 @Override
202 public int getEnding_year() {
203 return ending_year;
204 }
205
206 /**
207 * <!-- begin-user-doc -->
208 * <!-- end-user-doc -->
209 * @generated
210 */
211 @Override
212 public void setEnding_year(int newEnding_year) {
213 int oldEnding_year = ending_year;
214 ending_year = newEnding_year;
215 if (eNotificationRequired())
216 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.EXTERNAL_ALLOWANCE__ENDING_YEAR, oldEnding_year, ending_year));
217 }
218
219 /**
220 * <!-- begin-user-doc -->
221 * <!-- end-user-doc -->
222 * @generated
223 */
224 @Override
225 public Physical_Person getReciver() {
226 if (reciver != null && reciver.eIsProxy()) {
227 InternalEObject oldReciver = (InternalEObject)reciver;
228 reciver = (Physical_Person)eResolveProxy(oldReciver);
229 if (reciver != oldReciver) {
230 if (eNotificationRequired())
231 eNotify(new ENotificationImpl(this, Notification.RESOLVE, TaxationWithRootPackage.EXTERNAL_ALLOWANCE__RECIVER, oldReciver, reciver));
232 }
233 }
234 return reciver;
235 }
236
237 /**
238 * <!-- begin-user-doc -->
239 * <!-- end-user-doc -->
240 * @generated
241 */
242 public Physical_Person basicGetReciver() {
243 return reciver;
244 }
245
246 /**
247 * <!-- begin-user-doc -->
248 * <!-- end-user-doc -->
249 * @generated
250 */
251 @Override
252 public void setReciver(Physical_Person newReciver) {
253 Physical_Person oldReciver = reciver;
254 reciver = newReciver;
255 if (eNotificationRequired())
256 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.EXTERNAL_ALLOWANCE__RECIVER, oldReciver, reciver));
257 }
258
259 /**
260 * <!-- begin-user-doc -->
261 * <!-- end-user-doc -->
262 * @generated
263 */
264 @Override
265 public String getId5() {
266 return id5;
267 }
268
269 /**
270 * <!-- begin-user-doc -->
271 * <!-- end-user-doc -->
272 * @generated
273 */
274 @Override
275 public void setId5(String newId5) {
276 String oldId5 = id5;
277 id5 = newId5;
278 if (eNotificationRequired())
279 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.EXTERNAL_ALLOWANCE__ID5, oldId5, id5));
280 }
281
282 /**
283 * <!-- begin-user-doc -->
284 * <!-- end-user-doc -->
285 * @generated
286 */
287 @Override
288 public Dependent getPerson() {
289 if (eContainerFeatureID() != TaxationWithRootPackage.EXTERNAL_ALLOWANCE__PERSON) return null;
290 return (Dependent)eInternalContainer();
291 }
292
293 /**
294 * <!-- begin-user-doc -->
295 * <!-- end-user-doc -->
296 * @generated
297 */
298 public NotificationChain basicSetPerson(Dependent newPerson, NotificationChain msgs) {
299 msgs = eBasicSetContainer((InternalEObject)newPerson, TaxationWithRootPackage.EXTERNAL_ALLOWANCE__PERSON, msgs);
300 return msgs;
301 }
302
303 /**
304 * <!-- begin-user-doc -->
305 * <!-- end-user-doc -->
306 * @generated
307 */
308 @Override
309 public void setPerson(Dependent newPerson) {
310 if (newPerson != eInternalContainer() || (eContainerFeatureID() != TaxationWithRootPackage.EXTERNAL_ALLOWANCE__PERSON && newPerson != null)) {
311 if (EcoreUtil.isAncestor(this, newPerson))
312 throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
313 NotificationChain msgs = null;
314 if (eInternalContainer() != null)
315 msgs = eBasicRemoveFromContainer(msgs);
316 if (newPerson != null)
317 msgs = ((InternalEObject)newPerson).eInverseAdd(this, TaxationWithRootPackage.DEPENDENT__ALLOWANCES, Dependent.class, msgs);
318 msgs = basicSetPerson(newPerson, msgs);
319 if (msgs != null) msgs.dispatch();
320 }
321 else if (eNotificationRequired())
322 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.EXTERNAL_ALLOWANCE__PERSON, newPerson, newPerson));
323 }
324
325 /**
326 * <!-- begin-user-doc -->
327 * <!-- end-user-doc -->
328 * @generated
329 */
330 @Override
331 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
332 switch (featureID) {
333 case TaxationWithRootPackage.EXTERNAL_ALLOWANCE__PERSON:
334 if (eInternalContainer() != null)
335 msgs = eBasicRemoveFromContainer(msgs);
336 return basicSetPerson((Dependent)otherEnd, msgs);
337 }
338 return super.eInverseAdd(otherEnd, featureID, msgs);
339 }
340
341 /**
342 * <!-- begin-user-doc -->
343 * <!-- end-user-doc -->
344 * @generated
345 */
346 @Override
347 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
348 switch (featureID) {
349 case TaxationWithRootPackage.EXTERNAL_ALLOWANCE__PERSON:
350 return basicSetPerson(null, msgs);
351 }
352 return super.eInverseRemove(otherEnd, featureID, msgs);
353 }
354
355 /**
356 * <!-- begin-user-doc -->
357 * <!-- end-user-doc -->
358 * @generated
359 */
360 @Override
361 public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
362 switch (eContainerFeatureID()) {
363 case TaxationWithRootPackage.EXTERNAL_ALLOWANCE__PERSON:
364 return eInternalContainer().eInverseRemove(this, TaxationWithRootPackage.DEPENDENT__ALLOWANCES, Dependent.class, msgs);
365 }
366 return super.eBasicRemoveFromContainerFeature(msgs);
367 }
368
369 /**
370 * <!-- begin-user-doc -->
371 * <!-- end-user-doc -->
372 * @generated
373 */
374 @Override
375 public Object eGet(int featureID, boolean resolve, boolean coreType) {
376 switch (featureID) {
377 case TaxationWithRootPackage.EXTERNAL_ALLOWANCE__GRANTOR:
378 return getGrantor();
379 case TaxationWithRootPackage.EXTERNAL_ALLOWANCE__STARTING_YEAR:
380 return getStarting_year();
381 case TaxationWithRootPackage.EXTERNAL_ALLOWANCE__ENDING_YEAR:
382 return getEnding_year();
383 case TaxationWithRootPackage.EXTERNAL_ALLOWANCE__RECIVER:
384 if (resolve) return getReciver();
385 return basicGetReciver();
386 case TaxationWithRootPackage.EXTERNAL_ALLOWANCE__ID5:
387 return getId5();
388 case TaxationWithRootPackage.EXTERNAL_ALLOWANCE__PERSON:
389 return getPerson();
390 }
391 return super.eGet(featureID, resolve, coreType);
392 }
393
394 /**
395 * <!-- begin-user-doc -->
396 * <!-- end-user-doc -->
397 * @generated
398 */
399 @Override
400 public void eSet(int featureID, Object newValue) {
401 switch (featureID) {
402 case TaxationWithRootPackage.EXTERNAL_ALLOWANCE__GRANTOR:
403 setGrantor((Grantor)newValue);
404 return;
405 case TaxationWithRootPackage.EXTERNAL_ALLOWANCE__STARTING_YEAR:
406 setStarting_year((Integer)newValue);
407 return;
408 case TaxationWithRootPackage.EXTERNAL_ALLOWANCE__ENDING_YEAR:
409 setEnding_year((Integer)newValue);
410 return;
411 case TaxationWithRootPackage.EXTERNAL_ALLOWANCE__RECIVER:
412 setReciver((Physical_Person)newValue);
413 return;
414 case TaxationWithRootPackage.EXTERNAL_ALLOWANCE__ID5:
415 setId5((String)newValue);
416 return;
417 case TaxationWithRootPackage.EXTERNAL_ALLOWANCE__PERSON:
418 setPerson((Dependent)newValue);
419 return;
420 }
421 super.eSet(featureID, newValue);
422 }
423
424 /**
425 * <!-- begin-user-doc -->
426 * <!-- end-user-doc -->
427 * @generated
428 */
429 @Override
430 public void eUnset(int featureID) {
431 switch (featureID) {
432 case TaxationWithRootPackage.EXTERNAL_ALLOWANCE__GRANTOR:
433 setGrantor(GRANTOR_EDEFAULT);
434 return;
435 case TaxationWithRootPackage.EXTERNAL_ALLOWANCE__STARTING_YEAR:
436 setStarting_year(STARTING_YEAR_EDEFAULT);
437 return;
438 case TaxationWithRootPackage.EXTERNAL_ALLOWANCE__ENDING_YEAR:
439 setEnding_year(ENDING_YEAR_EDEFAULT);
440 return;
441 case TaxationWithRootPackage.EXTERNAL_ALLOWANCE__RECIVER:
442 setReciver((Physical_Person)null);
443 return;
444 case TaxationWithRootPackage.EXTERNAL_ALLOWANCE__ID5:
445 setId5(ID5_EDEFAULT);
446 return;
447 case TaxationWithRootPackage.EXTERNAL_ALLOWANCE__PERSON:
448 setPerson((Dependent)null);
449 return;
450 }
451 super.eUnset(featureID);
452 }
453
454 /**
455 * <!-- begin-user-doc -->
456 * <!-- end-user-doc -->
457 * @generated
458 */
459 @Override
460 public boolean eIsSet(int featureID) {
461 switch (featureID) {
462 case TaxationWithRootPackage.EXTERNAL_ALLOWANCE__GRANTOR:
463 return grantor != GRANTOR_EDEFAULT;
464 case TaxationWithRootPackage.EXTERNAL_ALLOWANCE__STARTING_YEAR:
465 return starting_year != STARTING_YEAR_EDEFAULT;
466 case TaxationWithRootPackage.EXTERNAL_ALLOWANCE__ENDING_YEAR:
467 return ending_year != ENDING_YEAR_EDEFAULT;
468 case TaxationWithRootPackage.EXTERNAL_ALLOWANCE__RECIVER:
469 return reciver != null;
470 case TaxationWithRootPackage.EXTERNAL_ALLOWANCE__ID5:
471 return ID5_EDEFAULT == null ? id5 != null : !ID5_EDEFAULT.equals(id5);
472 case TaxationWithRootPackage.EXTERNAL_ALLOWANCE__PERSON:
473 return getPerson() != null;
474 }
475 return super.eIsSet(featureID);
476 }
477
478 /**
479 * <!-- begin-user-doc -->
480 * <!-- end-user-doc -->
481 * @generated
482 */
483 @Override
484 public String toString() {
485 if (eIsProxy()) return super.toString();
486
487 StringBuilder result = new StringBuilder(super.toString());
488 result.append(" (grantor: ");
489 result.append(grantor);
490 result.append(", starting_year: ");
491 result.append(starting_year);
492 result.append(", ending_year: ");
493 result.append(ending_year);
494 result.append(", id5: ");
495 result.append(id5);
496 result.append(')');
497 return result.toString();
498 }
499
500} //External_AllowanceImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Extraordinary_Expense_CEImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Extraordinary_Expense_CEImpl.java
new file mode 100644
index 00000000..74920a1d
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Extraordinary_Expense_CEImpl.java
@@ -0,0 +1,221 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.CE_Type;
6import TaxationWithRoot.Extraordinary_Expense_CE;
7import TaxationWithRoot.TaxationWithRootPackage;
8
9import org.eclipse.emf.common.notify.Notification;
10
11import org.eclipse.emf.ecore.EClass;
12
13import org.eclipse.emf.ecore.impl.ENotificationImpl;
14
15/**
16 * <!-- begin-user-doc -->
17 * An implementation of the model object '<em><b>Extraordinary Expense CE</b></em>'.
18 * <!-- end-user-doc -->
19 * <p>
20 * The following features are implemented:
21 * </p>
22 * <ul>
23 * <li>{@link TaxationWithRoot.impl.Extraordinary_Expense_CEImpl#getThresholded_deduction_percentage <em>Thresholded deduction percentage</em>}</li>
24 * <li>{@link TaxationWithRoot.impl.Extraordinary_Expense_CEImpl#getCe_type <em>Ce type</em>}</li>
25 * </ul>
26 *
27 * @generated
28 */
29public class Extraordinary_Expense_CEImpl extends ExpenseImpl implements Extraordinary_Expense_CE {
30 /**
31 * The default value of the '{@link #getThresholded_deduction_percentage() <em>Thresholded deduction percentage</em>}' attribute.
32 * <!-- begin-user-doc -->
33 * <!-- end-user-doc -->
34 * @see #getThresholded_deduction_percentage()
35 * @generated
36 * @ordered
37 */
38 protected static final double THRESHOLDED_DEDUCTION_PERCENTAGE_EDEFAULT = 0.0;
39
40 /**
41 * The cached value of the '{@link #getThresholded_deduction_percentage() <em>Thresholded deduction percentage</em>}' attribute.
42 * <!-- begin-user-doc -->
43 * <!-- end-user-doc -->
44 * @see #getThresholded_deduction_percentage()
45 * @generated
46 * @ordered
47 */
48 protected double thresholded_deduction_percentage = THRESHOLDED_DEDUCTION_PERCENTAGE_EDEFAULT;
49
50 /**
51 * The default value of the '{@link #getCe_type() <em>Ce type</em>}' attribute.
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @see #getCe_type()
55 * @generated
56 * @ordered
57 */
58 protected static final CE_Type CE_TYPE_EDEFAULT = CE_Type.INALIDITY_AND_INFIRMITY;
59
60 /**
61 * The cached value of the '{@link #getCe_type() <em>Ce type</em>}' attribute.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @see #getCe_type()
65 * @generated
66 * @ordered
67 */
68 protected CE_Type ce_type = CE_TYPE_EDEFAULT;
69
70 /**
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @generated
74 */
75 protected Extraordinary_Expense_CEImpl() {
76 super();
77 }
78
79 /**
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @generated
83 */
84 @Override
85 protected EClass eStaticClass() {
86 return TaxationWithRootPackage.Literals.EXTRAORDINARY_EXPENSE_CE;
87 }
88
89 /**
90 * <!-- begin-user-doc -->
91 * <!-- end-user-doc -->
92 * @generated
93 */
94 @Override
95 public double getThresholded_deduction_percentage() {
96 return thresholded_deduction_percentage;
97 }
98
99 /**
100 * <!-- begin-user-doc -->
101 * <!-- end-user-doc -->
102 * @generated
103 */
104 @Override
105 public void setThresholded_deduction_percentage(double newThresholded_deduction_percentage) {
106 double oldThresholded_deduction_percentage = thresholded_deduction_percentage;
107 thresholded_deduction_percentage = newThresholded_deduction_percentage;
108 if (eNotificationRequired())
109 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.EXTRAORDINARY_EXPENSE_CE__THRESHOLDED_DEDUCTION_PERCENTAGE, oldThresholded_deduction_percentage, thresholded_deduction_percentage));
110 }
111
112 /**
113 * <!-- begin-user-doc -->
114 * <!-- end-user-doc -->
115 * @generated
116 */
117 @Override
118 public CE_Type getCe_type() {
119 return ce_type;
120 }
121
122 /**
123 * <!-- begin-user-doc -->
124 * <!-- end-user-doc -->
125 * @generated
126 */
127 @Override
128 public void setCe_type(CE_Type newCe_type) {
129 CE_Type oldCe_type = ce_type;
130 ce_type = newCe_type == null ? CE_TYPE_EDEFAULT : newCe_type;
131 if (eNotificationRequired())
132 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.EXTRAORDINARY_EXPENSE_CE__CE_TYPE, oldCe_type, ce_type));
133 }
134
135 /**
136 * <!-- begin-user-doc -->
137 * <!-- end-user-doc -->
138 * @generated
139 */
140 @Override
141 public Object eGet(int featureID, boolean resolve, boolean coreType) {
142 switch (featureID) {
143 case TaxationWithRootPackage.EXTRAORDINARY_EXPENSE_CE__THRESHOLDED_DEDUCTION_PERCENTAGE:
144 return getThresholded_deduction_percentage();
145 case TaxationWithRootPackage.EXTRAORDINARY_EXPENSE_CE__CE_TYPE:
146 return getCe_type();
147 }
148 return super.eGet(featureID, resolve, coreType);
149 }
150
151 /**
152 * <!-- begin-user-doc -->
153 * <!-- end-user-doc -->
154 * @generated
155 */
156 @Override
157 public void eSet(int featureID, Object newValue) {
158 switch (featureID) {
159 case TaxationWithRootPackage.EXTRAORDINARY_EXPENSE_CE__THRESHOLDED_DEDUCTION_PERCENTAGE:
160 setThresholded_deduction_percentage((Double)newValue);
161 return;
162 case TaxationWithRootPackage.EXTRAORDINARY_EXPENSE_CE__CE_TYPE:
163 setCe_type((CE_Type)newValue);
164 return;
165 }
166 super.eSet(featureID, newValue);
167 }
168
169 /**
170 * <!-- begin-user-doc -->
171 * <!-- end-user-doc -->
172 * @generated
173 */
174 @Override
175 public void eUnset(int featureID) {
176 switch (featureID) {
177 case TaxationWithRootPackage.EXTRAORDINARY_EXPENSE_CE__THRESHOLDED_DEDUCTION_PERCENTAGE:
178 setThresholded_deduction_percentage(THRESHOLDED_DEDUCTION_PERCENTAGE_EDEFAULT);
179 return;
180 case TaxationWithRootPackage.EXTRAORDINARY_EXPENSE_CE__CE_TYPE:
181 setCe_type(CE_TYPE_EDEFAULT);
182 return;
183 }
184 super.eUnset(featureID);
185 }
186
187 /**
188 * <!-- begin-user-doc -->
189 * <!-- end-user-doc -->
190 * @generated
191 */
192 @Override
193 public boolean eIsSet(int featureID) {
194 switch (featureID) {
195 case TaxationWithRootPackage.EXTRAORDINARY_EXPENSE_CE__THRESHOLDED_DEDUCTION_PERCENTAGE:
196 return thresholded_deduction_percentage != THRESHOLDED_DEDUCTION_PERCENTAGE_EDEFAULT;
197 case TaxationWithRootPackage.EXTRAORDINARY_EXPENSE_CE__CE_TYPE:
198 return ce_type != CE_TYPE_EDEFAULT;
199 }
200 return super.eIsSet(featureID);
201 }
202
203 /**
204 * <!-- begin-user-doc -->
205 * <!-- end-user-doc -->
206 * @generated
207 */
208 @Override
209 public String toString() {
210 if (eIsProxy()) return super.toString();
211
212 StringBuilder result = new StringBuilder(super.toString());
213 result.append(" (thresholded_deduction_percentage: ");
214 result.append(thresholded_deduction_percentage);
215 result.append(", ce_type: ");
216 result.append(ce_type);
217 result.append(')');
218 return result.toString();
219 }
220
221} //Extraordinary_Expense_CEImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Fiscal_AddressImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Fiscal_AddressImpl.java
new file mode 100644
index 00000000..747486de
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Fiscal_AddressImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Fiscal_Address;
6import TaxationWithRoot.TaxationWithRootPackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Fiscal Address</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class Fiscal_AddressImpl extends AddressImpl implements Fiscal_Address {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected Fiscal_AddressImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return TaxationWithRootPackage.Literals.FISCAL_ADDRESS;
35 }
36
37} //Fiscal_AddressImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Foreign_IncomeImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Foreign_IncomeImpl.java
new file mode 100644
index 00000000..fd87c33b
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Foreign_IncomeImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Foreign_Income;
6import TaxationWithRoot.TaxationWithRootPackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Foreign Income</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class Foreign_IncomeImpl extends IncomeImpl implements Foreign_Income {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected Foreign_IncomeImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return TaxationWithRootPackage.Literals.FOREIGN_INCOME;
35 }
36
37} //Foreign_IncomeImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/FromAgentImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/FromAgentImpl.java
new file mode 100644
index 00000000..7523607e
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/FromAgentImpl.java
@@ -0,0 +1,506 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Dependent;
6import TaxationWithRoot.Expense;
7import TaxationWithRoot.FromAgent;
8import TaxationWithRoot.Tax_Payer;
9import TaxationWithRoot.TaxationWithRootPackage;
10
11import org.eclipse.emf.common.notify.Notification;
12import org.eclipse.emf.common.notify.NotificationChain;
13
14import org.eclipse.emf.ecore.EClass;
15import org.eclipse.emf.ecore.InternalEObject;
16
17import org.eclipse.emf.ecore.impl.ENotificationImpl;
18import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
19
20import org.eclipse.emf.ecore.util.EcoreUtil;
21
22/**
23 * <!-- begin-user-doc -->
24 * An implementation of the model object '<em><b>From Agent</b></em>'.
25 * <!-- end-user-doc -->
26 * <p>
27 * The following features are implemented:
28 * </p>
29 * <ul>
30 * <li>{@link TaxationWithRoot.impl.FromAgentImpl#getTaxPayer <em>Tax Payer</em>}</li>
31 * <li>{@link TaxationWithRoot.impl.FromAgentImpl#isIs_dependent_eligible_for_CE_Not_In_Houshold_Children_Care <em>Is dependent eligible for CE Not In Houshold Children Care</em>}</li>
32 * <li>{@link TaxationWithRoot.impl.FromAgentImpl#getExpense <em>Expense</em>}</li>
33 * <li>{@link TaxationWithRoot.impl.FromAgentImpl#isIs_eligible_debt <em>Is eligible debt</em>}</li>
34 * <li>{@link TaxationWithRoot.impl.FromAgentImpl#getDependent <em>Dependent</em>}</li>
35 * </ul>
36 *
37 * @generated
38 */
39public class FromAgentImpl extends MinimalEObjectImpl.Container implements FromAgent {
40 /**
41 * The default value of the '{@link #isIs_dependent_eligible_for_CE_Not_In_Houshold_Children_Care() <em>Is dependent eligible for CE Not In Houshold Children Care</em>}' attribute.
42 * <!-- begin-user-doc -->
43 * <!-- end-user-doc -->
44 * @see #isIs_dependent_eligible_for_CE_Not_In_Houshold_Children_Care()
45 * @generated
46 * @ordered
47 */
48 protected static final boolean IS_DEPENDENT_ELIGIBLE_FOR_CE_NOT_IN_HOUSHOLD_CHILDREN_CARE_EDEFAULT = false;
49
50 /**
51 * The cached value of the '{@link #isIs_dependent_eligible_for_CE_Not_In_Houshold_Children_Care() <em>Is dependent eligible for CE Not In Houshold Children Care</em>}' attribute.
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @see #isIs_dependent_eligible_for_CE_Not_In_Houshold_Children_Care()
55 * @generated
56 * @ordered
57 */
58 protected boolean is_dependent_eligible_for_CE_Not_In_Houshold_Children_Care = IS_DEPENDENT_ELIGIBLE_FOR_CE_NOT_IN_HOUSHOLD_CHILDREN_CARE_EDEFAULT;
59
60 /**
61 * The cached value of the '{@link #getExpense() <em>Expense</em>}' reference.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @see #getExpense()
65 * @generated
66 * @ordered
67 */
68 protected Expense expense;
69
70 /**
71 * The default value of the '{@link #isIs_eligible_debt() <em>Is eligible debt</em>}' attribute.
72 * <!-- begin-user-doc -->
73 * <!-- end-user-doc -->
74 * @see #isIs_eligible_debt()
75 * @generated
76 * @ordered
77 */
78 protected static final boolean IS_ELIGIBLE_DEBT_EDEFAULT = false;
79
80 /**
81 * The cached value of the '{@link #isIs_eligible_debt() <em>Is eligible debt</em>}' attribute.
82 * <!-- begin-user-doc -->
83 * <!-- end-user-doc -->
84 * @see #isIs_eligible_debt()
85 * @generated
86 * @ordered
87 */
88 protected boolean is_eligible_debt = IS_ELIGIBLE_DEBT_EDEFAULT;
89
90 /**
91 * The cached value of the '{@link #getDependent() <em>Dependent</em>}' reference.
92 * <!-- begin-user-doc -->
93 * <!-- end-user-doc -->
94 * @see #getDependent()
95 * @generated
96 * @ordered
97 */
98 protected Dependent dependent;
99
100 /**
101 * <!-- begin-user-doc -->
102 * <!-- end-user-doc -->
103 * @generated
104 */
105 protected FromAgentImpl() {
106 super();
107 }
108
109 /**
110 * <!-- begin-user-doc -->
111 * <!-- end-user-doc -->
112 * @generated
113 */
114 @Override
115 protected EClass eStaticClass() {
116 return TaxationWithRootPackage.Literals.FROM_AGENT;
117 }
118
119 /**
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @generated
123 */
124 @Override
125 public Tax_Payer getTaxPayer() {
126 if (eContainerFeatureID() != TaxationWithRootPackage.FROM_AGENT__TAX_PAYER) return null;
127 return (Tax_Payer)eInternalContainer();
128 }
129
130 /**
131 * <!-- begin-user-doc -->
132 * <!-- end-user-doc -->
133 * @generated
134 */
135 public NotificationChain basicSetTaxPayer(Tax_Payer newTaxPayer, NotificationChain msgs) {
136 msgs = eBasicSetContainer((InternalEObject)newTaxPayer, TaxationWithRootPackage.FROM_AGENT__TAX_PAYER, msgs);
137 return msgs;
138 }
139
140 /**
141 * <!-- begin-user-doc -->
142 * <!-- end-user-doc -->
143 * @generated
144 */
145 @Override
146 public void setTaxPayer(Tax_Payer newTaxPayer) {
147 if (newTaxPayer != eInternalContainer() || (eContainerFeatureID() != TaxationWithRootPackage.FROM_AGENT__TAX_PAYER && newTaxPayer != null)) {
148 if (EcoreUtil.isAncestor(this, newTaxPayer))
149 throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
150 NotificationChain msgs = null;
151 if (eInternalContainer() != null)
152 msgs = eBasicRemoveFromContainer(msgs);
153 if (newTaxPayer != null)
154 msgs = ((InternalEObject)newTaxPayer).eInverseAdd(this, TaxationWithRootPackage.TAX_PAYER__FROM_AGENT, Tax_Payer.class, msgs);
155 msgs = basicSetTaxPayer(newTaxPayer, msgs);
156 if (msgs != null) msgs.dispatch();
157 }
158 else if (eNotificationRequired())
159 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.FROM_AGENT__TAX_PAYER, newTaxPayer, newTaxPayer));
160 }
161
162 /**
163 * <!-- begin-user-doc -->
164 * <!-- end-user-doc -->
165 * @generated
166 */
167 @Override
168 public boolean isIs_dependent_eligible_for_CE_Not_In_Houshold_Children_Care() {
169 return is_dependent_eligible_for_CE_Not_In_Houshold_Children_Care;
170 }
171
172 /**
173 * <!-- begin-user-doc -->
174 * <!-- end-user-doc -->
175 * @generated
176 */
177 @Override
178 public void setIs_dependent_eligible_for_CE_Not_In_Houshold_Children_Care(boolean newIs_dependent_eligible_for_CE_Not_In_Houshold_Children_Care) {
179 boolean oldIs_dependent_eligible_for_CE_Not_In_Houshold_Children_Care = is_dependent_eligible_for_CE_Not_In_Houshold_Children_Care;
180 is_dependent_eligible_for_CE_Not_In_Houshold_Children_Care = newIs_dependent_eligible_for_CE_Not_In_Houshold_Children_Care;
181 if (eNotificationRequired())
182 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.FROM_AGENT__IS_DEPENDENT_ELIGIBLE_FOR_CE_NOT_IN_HOUSHOLD_CHILDREN_CARE, oldIs_dependent_eligible_for_CE_Not_In_Houshold_Children_Care, is_dependent_eligible_for_CE_Not_In_Houshold_Children_Care));
183 }
184
185 /**
186 * <!-- begin-user-doc -->
187 * <!-- end-user-doc -->
188 * @generated
189 */
190 @Override
191 public Expense getExpense() {
192 if (expense != null && expense.eIsProxy()) {
193 InternalEObject oldExpense = (InternalEObject)expense;
194 expense = (Expense)eResolveProxy(oldExpense);
195 if (expense != oldExpense) {
196 if (eNotificationRequired())
197 eNotify(new ENotificationImpl(this, Notification.RESOLVE, TaxationWithRootPackage.FROM_AGENT__EXPENSE, oldExpense, expense));
198 }
199 }
200 return expense;
201 }
202
203 /**
204 * <!-- begin-user-doc -->
205 * <!-- end-user-doc -->
206 * @generated
207 */
208 public Expense basicGetExpense() {
209 return expense;
210 }
211
212 /**
213 * <!-- begin-user-doc -->
214 * <!-- end-user-doc -->
215 * @generated
216 */
217 public NotificationChain basicSetExpense(Expense newExpense, NotificationChain msgs) {
218 Expense oldExpense = expense;
219 expense = newExpense;
220 if (eNotificationRequired()) {
221 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.FROM_AGENT__EXPENSE, oldExpense, newExpense);
222 if (msgs == null) msgs = notification; else msgs.add(notification);
223 }
224 return msgs;
225 }
226
227 /**
228 * <!-- begin-user-doc -->
229 * <!-- end-user-doc -->
230 * @generated
231 */
232 @Override
233 public void setExpense(Expense newExpense) {
234 if (newExpense != expense) {
235 NotificationChain msgs = null;
236 if (expense != null)
237 msgs = ((InternalEObject)expense).eInverseRemove(this, TaxationWithRootPackage.EXPENSE__FROM_AGENT, Expense.class, msgs);
238 if (newExpense != null)
239 msgs = ((InternalEObject)newExpense).eInverseAdd(this, TaxationWithRootPackage.EXPENSE__FROM_AGENT, Expense.class, msgs);
240 msgs = basicSetExpense(newExpense, msgs);
241 if (msgs != null) msgs.dispatch();
242 }
243 else if (eNotificationRequired())
244 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.FROM_AGENT__EXPENSE, newExpense, newExpense));
245 }
246
247 /**
248 * <!-- begin-user-doc -->
249 * <!-- end-user-doc -->
250 * @generated
251 */
252 @Override
253 public boolean isIs_eligible_debt() {
254 return is_eligible_debt;
255 }
256
257 /**
258 * <!-- begin-user-doc -->
259 * <!-- end-user-doc -->
260 * @generated
261 */
262 @Override
263 public void setIs_eligible_debt(boolean newIs_eligible_debt) {
264 boolean oldIs_eligible_debt = is_eligible_debt;
265 is_eligible_debt = newIs_eligible_debt;
266 if (eNotificationRequired())
267 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.FROM_AGENT__IS_ELIGIBLE_DEBT, oldIs_eligible_debt, is_eligible_debt));
268 }
269
270 /**
271 * <!-- begin-user-doc -->
272 * <!-- end-user-doc -->
273 * @generated
274 */
275 @Override
276 public Dependent getDependent() {
277 if (dependent != null && dependent.eIsProxy()) {
278 InternalEObject oldDependent = (InternalEObject)dependent;
279 dependent = (Dependent)eResolveProxy(oldDependent);
280 if (dependent != oldDependent) {
281 if (eNotificationRequired())
282 eNotify(new ENotificationImpl(this, Notification.RESOLVE, TaxationWithRootPackage.FROM_AGENT__DEPENDENT, oldDependent, dependent));
283 }
284 }
285 return dependent;
286 }
287
288 /**
289 * <!-- begin-user-doc -->
290 * <!-- end-user-doc -->
291 * @generated
292 */
293 public Dependent basicGetDependent() {
294 return dependent;
295 }
296
297 /**
298 * <!-- begin-user-doc -->
299 * <!-- end-user-doc -->
300 * @generated
301 */
302 public NotificationChain basicSetDependent(Dependent newDependent, NotificationChain msgs) {
303 Dependent oldDependent = dependent;
304 dependent = newDependent;
305 if (eNotificationRequired()) {
306 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.FROM_AGENT__DEPENDENT, oldDependent, newDependent);
307 if (msgs == null) msgs = notification; else msgs.add(notification);
308 }
309 return msgs;
310 }
311
312 /**
313 * <!-- begin-user-doc -->
314 * <!-- end-user-doc -->
315 * @generated
316 */
317 @Override
318 public void setDependent(Dependent newDependent) {
319 if (newDependent != dependent) {
320 NotificationChain msgs = null;
321 if (dependent != null)
322 msgs = ((InternalEObject)dependent).eInverseRemove(this, TaxationWithRootPackage.DEPENDENT__FROM_AGENT, Dependent.class, msgs);
323 if (newDependent != null)
324 msgs = ((InternalEObject)newDependent).eInverseAdd(this, TaxationWithRootPackage.DEPENDENT__FROM_AGENT, Dependent.class, msgs);
325 msgs = basicSetDependent(newDependent, msgs);
326 if (msgs != null) msgs.dispatch();
327 }
328 else if (eNotificationRequired())
329 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.FROM_AGENT__DEPENDENT, newDependent, newDependent));
330 }
331
332 /**
333 * <!-- begin-user-doc -->
334 * <!-- end-user-doc -->
335 * @generated
336 */
337 @Override
338 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
339 switch (featureID) {
340 case TaxationWithRootPackage.FROM_AGENT__TAX_PAYER:
341 if (eInternalContainer() != null)
342 msgs = eBasicRemoveFromContainer(msgs);
343 return basicSetTaxPayer((Tax_Payer)otherEnd, msgs);
344 case TaxationWithRootPackage.FROM_AGENT__EXPENSE:
345 if (expense != null)
346 msgs = ((InternalEObject)expense).eInverseRemove(this, TaxationWithRootPackage.EXPENSE__FROM_AGENT, Expense.class, msgs);
347 return basicSetExpense((Expense)otherEnd, msgs);
348 case TaxationWithRootPackage.FROM_AGENT__DEPENDENT:
349 if (dependent != null)
350 msgs = ((InternalEObject)dependent).eInverseRemove(this, TaxationWithRootPackage.DEPENDENT__FROM_AGENT, Dependent.class, msgs);
351 return basicSetDependent((Dependent)otherEnd, msgs);
352 }
353 return super.eInverseAdd(otherEnd, featureID, msgs);
354 }
355
356 /**
357 * <!-- begin-user-doc -->
358 * <!-- end-user-doc -->
359 * @generated
360 */
361 @Override
362 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
363 switch (featureID) {
364 case TaxationWithRootPackage.FROM_AGENT__TAX_PAYER:
365 return basicSetTaxPayer(null, msgs);
366 case TaxationWithRootPackage.FROM_AGENT__EXPENSE:
367 return basicSetExpense(null, msgs);
368 case TaxationWithRootPackage.FROM_AGENT__DEPENDENT:
369 return basicSetDependent(null, msgs);
370 }
371 return super.eInverseRemove(otherEnd, featureID, msgs);
372 }
373
374 /**
375 * <!-- begin-user-doc -->
376 * <!-- end-user-doc -->
377 * @generated
378 */
379 @Override
380 public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
381 switch (eContainerFeatureID()) {
382 case TaxationWithRootPackage.FROM_AGENT__TAX_PAYER:
383 return eInternalContainer().eInverseRemove(this, TaxationWithRootPackage.TAX_PAYER__FROM_AGENT, Tax_Payer.class, msgs);
384 }
385 return super.eBasicRemoveFromContainerFeature(msgs);
386 }
387
388 /**
389 * <!-- begin-user-doc -->
390 * <!-- end-user-doc -->
391 * @generated
392 */
393 @Override
394 public Object eGet(int featureID, boolean resolve, boolean coreType) {
395 switch (featureID) {
396 case TaxationWithRootPackage.FROM_AGENT__TAX_PAYER:
397 return getTaxPayer();
398 case TaxationWithRootPackage.FROM_AGENT__IS_DEPENDENT_ELIGIBLE_FOR_CE_NOT_IN_HOUSHOLD_CHILDREN_CARE:
399 return isIs_dependent_eligible_for_CE_Not_In_Houshold_Children_Care();
400 case TaxationWithRootPackage.FROM_AGENT__EXPENSE:
401 if (resolve) return getExpense();
402 return basicGetExpense();
403 case TaxationWithRootPackage.FROM_AGENT__IS_ELIGIBLE_DEBT:
404 return isIs_eligible_debt();
405 case TaxationWithRootPackage.FROM_AGENT__DEPENDENT:
406 if (resolve) return getDependent();
407 return basicGetDependent();
408 }
409 return super.eGet(featureID, resolve, coreType);
410 }
411
412 /**
413 * <!-- begin-user-doc -->
414 * <!-- end-user-doc -->
415 * @generated
416 */
417 @Override
418 public void eSet(int featureID, Object newValue) {
419 switch (featureID) {
420 case TaxationWithRootPackage.FROM_AGENT__TAX_PAYER:
421 setTaxPayer((Tax_Payer)newValue);
422 return;
423 case TaxationWithRootPackage.FROM_AGENT__IS_DEPENDENT_ELIGIBLE_FOR_CE_NOT_IN_HOUSHOLD_CHILDREN_CARE:
424 setIs_dependent_eligible_for_CE_Not_In_Houshold_Children_Care((Boolean)newValue);
425 return;
426 case TaxationWithRootPackage.FROM_AGENT__EXPENSE:
427 setExpense((Expense)newValue);
428 return;
429 case TaxationWithRootPackage.FROM_AGENT__IS_ELIGIBLE_DEBT:
430 setIs_eligible_debt((Boolean)newValue);
431 return;
432 case TaxationWithRootPackage.FROM_AGENT__DEPENDENT:
433 setDependent((Dependent)newValue);
434 return;
435 }
436 super.eSet(featureID, newValue);
437 }
438
439 /**
440 * <!-- begin-user-doc -->
441 * <!-- end-user-doc -->
442 * @generated
443 */
444 @Override
445 public void eUnset(int featureID) {
446 switch (featureID) {
447 case TaxationWithRootPackage.FROM_AGENT__TAX_PAYER:
448 setTaxPayer((Tax_Payer)null);
449 return;
450 case TaxationWithRootPackage.FROM_AGENT__IS_DEPENDENT_ELIGIBLE_FOR_CE_NOT_IN_HOUSHOLD_CHILDREN_CARE:
451 setIs_dependent_eligible_for_CE_Not_In_Houshold_Children_Care(IS_DEPENDENT_ELIGIBLE_FOR_CE_NOT_IN_HOUSHOLD_CHILDREN_CARE_EDEFAULT);
452 return;
453 case TaxationWithRootPackage.FROM_AGENT__EXPENSE:
454 setExpense((Expense)null);
455 return;
456 case TaxationWithRootPackage.FROM_AGENT__IS_ELIGIBLE_DEBT:
457 setIs_eligible_debt(IS_ELIGIBLE_DEBT_EDEFAULT);
458 return;
459 case TaxationWithRootPackage.FROM_AGENT__DEPENDENT:
460 setDependent((Dependent)null);
461 return;
462 }
463 super.eUnset(featureID);
464 }
465
466 /**
467 * <!-- begin-user-doc -->
468 * <!-- end-user-doc -->
469 * @generated
470 */
471 @Override
472 public boolean eIsSet(int featureID) {
473 switch (featureID) {
474 case TaxationWithRootPackage.FROM_AGENT__TAX_PAYER:
475 return getTaxPayer() != null;
476 case TaxationWithRootPackage.FROM_AGENT__IS_DEPENDENT_ELIGIBLE_FOR_CE_NOT_IN_HOUSHOLD_CHILDREN_CARE:
477 return is_dependent_eligible_for_CE_Not_In_Houshold_Children_Care != IS_DEPENDENT_ELIGIBLE_FOR_CE_NOT_IN_HOUSHOLD_CHILDREN_CARE_EDEFAULT;
478 case TaxationWithRootPackage.FROM_AGENT__EXPENSE:
479 return expense != null;
480 case TaxationWithRootPackage.FROM_AGENT__IS_ELIGIBLE_DEBT:
481 return is_eligible_debt != IS_ELIGIBLE_DEBT_EDEFAULT;
482 case TaxationWithRootPackage.FROM_AGENT__DEPENDENT:
483 return dependent != null;
484 }
485 return super.eIsSet(featureID);
486 }
487
488 /**
489 * <!-- begin-user-doc -->
490 * <!-- end-user-doc -->
491 * @generated
492 */
493 @Override
494 public String toString() {
495 if (eIsProxy()) return super.toString();
496
497 StringBuilder result = new StringBuilder(super.toString());
498 result.append(" (is_dependent_eligible_for_CE_Not_In_Houshold_Children_Care: ");
499 result.append(is_dependent_eligible_for_CE_Not_In_Houshold_Children_Care);
500 result.append(", is_eligible_debt: ");
501 result.append(is_eligible_debt);
502 result.append(')');
503 return result.toString();
504 }
505
506} //FromAgentImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/FromLawImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/FromLawImpl.java
new file mode 100644
index 00000000..6244e60f
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/FromLawImpl.java
@@ -0,0 +1,268 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.FromLaw;
6import TaxationWithRoot.Tax_Payer;
7import TaxationWithRoot.TaxationWithRootPackage;
8
9import org.eclipse.emf.common.notify.Notification;
10import org.eclipse.emf.common.notify.NotificationChain;
11
12import org.eclipse.emf.ecore.EClass;
13import org.eclipse.emf.ecore.InternalEObject;
14
15import org.eclipse.emf.ecore.impl.ENotificationImpl;
16import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
17
18import org.eclipse.emf.ecore.util.EcoreUtil;
19
20/**
21 * <!-- begin-user-doc -->
22 * An implementation of the model object '<em><b>From Law</b></em>'.
23 * <!-- end-user-doc -->
24 * <p>
25 * The following features are implemented:
26 * </p>
27 * <ul>
28 * <li>{@link TaxationWithRoot.impl.FromLawImpl#getId <em>Id</em>}</li>
29 * <li>{@link TaxationWithRoot.impl.FromLawImpl#getTaxPayer <em>Tax Payer</em>}</li>
30 * </ul>
31 *
32 * @generated
33 */
34public class FromLawImpl extends MinimalEObjectImpl.Container implements FromLaw {
35 /**
36 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
37 * <!-- begin-user-doc -->
38 * <!-- end-user-doc -->
39 * @see #getId()
40 * @generated
41 * @ordered
42 */
43 protected static final String ID_EDEFAULT = null;
44
45 /**
46 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
47 * <!-- begin-user-doc -->
48 * <!-- end-user-doc -->
49 * @see #getId()
50 * @generated
51 * @ordered
52 */
53 protected String id = ID_EDEFAULT;
54
55 /**
56 * <!-- begin-user-doc -->
57 * <!-- end-user-doc -->
58 * @generated
59 */
60 protected FromLawImpl() {
61 super();
62 }
63
64 /**
65 * <!-- begin-user-doc -->
66 * <!-- end-user-doc -->
67 * @generated
68 */
69 @Override
70 protected EClass eStaticClass() {
71 return TaxationWithRootPackage.Literals.FROM_LAW;
72 }
73
74 /**
75 * <!-- begin-user-doc -->
76 * <!-- end-user-doc -->
77 * @generated
78 */
79 @Override
80 public String getId() {
81 return id;
82 }
83
84 /**
85 * <!-- begin-user-doc -->
86 * <!-- end-user-doc -->
87 * @generated
88 */
89 @Override
90 public void setId(String newId) {
91 String oldId = id;
92 id = newId;
93 if (eNotificationRequired())
94 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.FROM_LAW__ID, oldId, id));
95 }
96
97 /**
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @generated
101 */
102 @Override
103 public Tax_Payer getTaxPayer() {
104 if (eContainerFeatureID() != TaxationWithRootPackage.FROM_LAW__TAX_PAYER) return null;
105 return (Tax_Payer)eInternalContainer();
106 }
107
108 /**
109 * <!-- begin-user-doc -->
110 * <!-- end-user-doc -->
111 * @generated
112 */
113 public NotificationChain basicSetTaxPayer(Tax_Payer newTaxPayer, NotificationChain msgs) {
114 msgs = eBasicSetContainer((InternalEObject)newTaxPayer, TaxationWithRootPackage.FROM_LAW__TAX_PAYER, msgs);
115 return msgs;
116 }
117
118 /**
119 * <!-- begin-user-doc -->
120 * <!-- end-user-doc -->
121 * @generated
122 */
123 @Override
124 public void setTaxPayer(Tax_Payer newTaxPayer) {
125 if (newTaxPayer != eInternalContainer() || (eContainerFeatureID() != TaxationWithRootPackage.FROM_LAW__TAX_PAYER && newTaxPayer != null)) {
126 if (EcoreUtil.isAncestor(this, newTaxPayer))
127 throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
128 NotificationChain msgs = null;
129 if (eInternalContainer() != null)
130 msgs = eBasicRemoveFromContainer(msgs);
131 if (newTaxPayer != null)
132 msgs = ((InternalEObject)newTaxPayer).eInverseAdd(this, TaxationWithRootPackage.TAX_PAYER__FROM_LAW, Tax_Payer.class, msgs);
133 msgs = basicSetTaxPayer(newTaxPayer, msgs);
134 if (msgs != null) msgs.dispatch();
135 }
136 else if (eNotificationRequired())
137 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.FROM_LAW__TAX_PAYER, newTaxPayer, newTaxPayer));
138 }
139
140 /**
141 * <!-- begin-user-doc -->
142 * <!-- end-user-doc -->
143 * @generated
144 */
145 @Override
146 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
147 switch (featureID) {
148 case TaxationWithRootPackage.FROM_LAW__TAX_PAYER:
149 if (eInternalContainer() != null)
150 msgs = eBasicRemoveFromContainer(msgs);
151 return basicSetTaxPayer((Tax_Payer)otherEnd, msgs);
152 }
153 return super.eInverseAdd(otherEnd, featureID, msgs);
154 }
155
156 /**
157 * <!-- begin-user-doc -->
158 * <!-- end-user-doc -->
159 * @generated
160 */
161 @Override
162 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
163 switch (featureID) {
164 case TaxationWithRootPackage.FROM_LAW__TAX_PAYER:
165 return basicSetTaxPayer(null, msgs);
166 }
167 return super.eInverseRemove(otherEnd, featureID, msgs);
168 }
169
170 /**
171 * <!-- begin-user-doc -->
172 * <!-- end-user-doc -->
173 * @generated
174 */
175 @Override
176 public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
177 switch (eContainerFeatureID()) {
178 case TaxationWithRootPackage.FROM_LAW__TAX_PAYER:
179 return eInternalContainer().eInverseRemove(this, TaxationWithRootPackage.TAX_PAYER__FROM_LAW, Tax_Payer.class, msgs);
180 }
181 return super.eBasicRemoveFromContainerFeature(msgs);
182 }
183
184 /**
185 * <!-- begin-user-doc -->
186 * <!-- end-user-doc -->
187 * @generated
188 */
189 @Override
190 public Object eGet(int featureID, boolean resolve, boolean coreType) {
191 switch (featureID) {
192 case TaxationWithRootPackage.FROM_LAW__ID:
193 return getId();
194 case TaxationWithRootPackage.FROM_LAW__TAX_PAYER:
195 return getTaxPayer();
196 }
197 return super.eGet(featureID, resolve, coreType);
198 }
199
200 /**
201 * <!-- begin-user-doc -->
202 * <!-- end-user-doc -->
203 * @generated
204 */
205 @Override
206 public void eSet(int featureID, Object newValue) {
207 switch (featureID) {
208 case TaxationWithRootPackage.FROM_LAW__ID:
209 setId((String)newValue);
210 return;
211 case TaxationWithRootPackage.FROM_LAW__TAX_PAYER:
212 setTaxPayer((Tax_Payer)newValue);
213 return;
214 }
215 super.eSet(featureID, newValue);
216 }
217
218 /**
219 * <!-- begin-user-doc -->
220 * <!-- end-user-doc -->
221 * @generated
222 */
223 @Override
224 public void eUnset(int featureID) {
225 switch (featureID) {
226 case TaxationWithRootPackage.FROM_LAW__ID:
227 setId(ID_EDEFAULT);
228 return;
229 case TaxationWithRootPackage.FROM_LAW__TAX_PAYER:
230 setTaxPayer((Tax_Payer)null);
231 return;
232 }
233 super.eUnset(featureID);
234 }
235
236 /**
237 * <!-- begin-user-doc -->
238 * <!-- end-user-doc -->
239 * @generated
240 */
241 @Override
242 public boolean eIsSet(int featureID) {
243 switch (featureID) {
244 case TaxationWithRootPackage.FROM_LAW__ID:
245 return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
246 case TaxationWithRootPackage.FROM_LAW__TAX_PAYER:
247 return getTaxPayer() != null;
248 }
249 return super.eIsSet(featureID);
250 }
251
252 /**
253 * <!-- begin-user-doc -->
254 * <!-- end-user-doc -->
255 * @generated
256 */
257 @Override
258 public String toString() {
259 if (eIsProxy()) return super.toString();
260
261 StringBuilder result = new StringBuilder(super.toString());
262 result.append(" (id: ");
263 result.append(id);
264 result.append(')');
265 return result.toString();
266 }
267
268} //FromLawImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Habitual_AddressImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Habitual_AddressImpl.java
new file mode 100644
index 00000000..4fea235c
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Habitual_AddressImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Habitual_Address;
6import TaxationWithRoot.TaxationWithRootPackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Habitual Address</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class Habitual_AddressImpl extends AddressImpl implements Habitual_Address {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected Habitual_AddressImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return TaxationWithRootPackage.Literals.HABITUAL_ADDRESS;
35 }
36
37} //Habitual_AddressImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Health_and_Pension_InsuranceImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Health_and_Pension_InsuranceImpl.java
new file mode 100644
index 00000000..2e2346b7
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Health_and_Pension_InsuranceImpl.java
@@ -0,0 +1,221 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Category_of_Health_and_Pension_Insurances;
6import TaxationWithRoot.Health_and_Pension_Insurance;
7import TaxationWithRoot.TaxationWithRootPackage;
8
9import org.eclipse.emf.common.notify.Notification;
10
11import org.eclipse.emf.ecore.EClass;
12
13import org.eclipse.emf.ecore.impl.ENotificationImpl;
14
15/**
16 * <!-- begin-user-doc -->
17 * An implementation of the model object '<em><b>Health and Pension Insurance</b></em>'.
18 * <!-- end-user-doc -->
19 * <p>
20 * The following features are implemented:
21 * </p>
22 * <ul>
23 * <li>{@link TaxationWithRoot.impl.Health_and_Pension_InsuranceImpl#getCategory <em>Category</em>}</li>
24 * <li>{@link TaxationWithRoot.impl.Health_and_Pension_InsuranceImpl#isIs_related_to_additional_salary <em>Is related to additional salary</em>}</li>
25 * </ul>
26 *
27 * @generated
28 */
29public class Health_and_Pension_InsuranceImpl extends Special_Expense_DSImpl implements Health_and_Pension_Insurance {
30 /**
31 * The default value of the '{@link #getCategory() <em>Category</em>}' attribute.
32 * <!-- begin-user-doc -->
33 * <!-- end-user-doc -->
34 * @see #getCategory()
35 * @generated
36 * @ordered
37 */
38 protected static final Category_of_Health_and_Pension_Insurances CATEGORY_EDEFAULT = Category_of_Health_and_Pension_Insurances.MANDATORY_HEALTH_AND_PENSION_INSURANCE;
39
40 /**
41 * The cached value of the '{@link #getCategory() <em>Category</em>}' attribute.
42 * <!-- begin-user-doc -->
43 * <!-- end-user-doc -->
44 * @see #getCategory()
45 * @generated
46 * @ordered
47 */
48 protected Category_of_Health_and_Pension_Insurances category = CATEGORY_EDEFAULT;
49
50 /**
51 * The default value of the '{@link #isIs_related_to_additional_salary() <em>Is related to additional salary</em>}' attribute.
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @see #isIs_related_to_additional_salary()
55 * @generated
56 * @ordered
57 */
58 protected static final boolean IS_RELATED_TO_ADDITIONAL_SALARY_EDEFAULT = false;
59
60 /**
61 * The cached value of the '{@link #isIs_related_to_additional_salary() <em>Is related to additional salary</em>}' attribute.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @see #isIs_related_to_additional_salary()
65 * @generated
66 * @ordered
67 */
68 protected boolean is_related_to_additional_salary = IS_RELATED_TO_ADDITIONAL_SALARY_EDEFAULT;
69
70 /**
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @generated
74 */
75 protected Health_and_Pension_InsuranceImpl() {
76 super();
77 }
78
79 /**
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @generated
83 */
84 @Override
85 protected EClass eStaticClass() {
86 return TaxationWithRootPackage.Literals.HEALTH_AND_PENSION_INSURANCE;
87 }
88
89 /**
90 * <!-- begin-user-doc -->
91 * <!-- end-user-doc -->
92 * @generated
93 */
94 @Override
95 public Category_of_Health_and_Pension_Insurances getCategory() {
96 return category;
97 }
98
99 /**
100 * <!-- begin-user-doc -->
101 * <!-- end-user-doc -->
102 * @generated
103 */
104 @Override
105 public void setCategory(Category_of_Health_and_Pension_Insurances newCategory) {
106 Category_of_Health_and_Pension_Insurances oldCategory = category;
107 category = newCategory == null ? CATEGORY_EDEFAULT : newCategory;
108 if (eNotificationRequired())
109 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.HEALTH_AND_PENSION_INSURANCE__CATEGORY, oldCategory, category));
110 }
111
112 /**
113 * <!-- begin-user-doc -->
114 * <!-- end-user-doc -->
115 * @generated
116 */
117 @Override
118 public boolean isIs_related_to_additional_salary() {
119 return is_related_to_additional_salary;
120 }
121
122 /**
123 * <!-- begin-user-doc -->
124 * <!-- end-user-doc -->
125 * @generated
126 */
127 @Override
128 public void setIs_related_to_additional_salary(boolean newIs_related_to_additional_salary) {
129 boolean oldIs_related_to_additional_salary = is_related_to_additional_salary;
130 is_related_to_additional_salary = newIs_related_to_additional_salary;
131 if (eNotificationRequired())
132 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.HEALTH_AND_PENSION_INSURANCE__IS_RELATED_TO_ADDITIONAL_SALARY, oldIs_related_to_additional_salary, is_related_to_additional_salary));
133 }
134
135 /**
136 * <!-- begin-user-doc -->
137 * <!-- end-user-doc -->
138 * @generated
139 */
140 @Override
141 public Object eGet(int featureID, boolean resolve, boolean coreType) {
142 switch (featureID) {
143 case TaxationWithRootPackage.HEALTH_AND_PENSION_INSURANCE__CATEGORY:
144 return getCategory();
145 case TaxationWithRootPackage.HEALTH_AND_PENSION_INSURANCE__IS_RELATED_TO_ADDITIONAL_SALARY:
146 return isIs_related_to_additional_salary();
147 }
148 return super.eGet(featureID, resolve, coreType);
149 }
150
151 /**
152 * <!-- begin-user-doc -->
153 * <!-- end-user-doc -->
154 * @generated
155 */
156 @Override
157 public void eSet(int featureID, Object newValue) {
158 switch (featureID) {
159 case TaxationWithRootPackage.HEALTH_AND_PENSION_INSURANCE__CATEGORY:
160 setCategory((Category_of_Health_and_Pension_Insurances)newValue);
161 return;
162 case TaxationWithRootPackage.HEALTH_AND_PENSION_INSURANCE__IS_RELATED_TO_ADDITIONAL_SALARY:
163 setIs_related_to_additional_salary((Boolean)newValue);
164 return;
165 }
166 super.eSet(featureID, newValue);
167 }
168
169 /**
170 * <!-- begin-user-doc -->
171 * <!-- end-user-doc -->
172 * @generated
173 */
174 @Override
175 public void eUnset(int featureID) {
176 switch (featureID) {
177 case TaxationWithRootPackage.HEALTH_AND_PENSION_INSURANCE__CATEGORY:
178 setCategory(CATEGORY_EDEFAULT);
179 return;
180 case TaxationWithRootPackage.HEALTH_AND_PENSION_INSURANCE__IS_RELATED_TO_ADDITIONAL_SALARY:
181 setIs_related_to_additional_salary(IS_RELATED_TO_ADDITIONAL_SALARY_EDEFAULT);
182 return;
183 }
184 super.eUnset(featureID);
185 }
186
187 /**
188 * <!-- begin-user-doc -->
189 * <!-- end-user-doc -->
190 * @generated
191 */
192 @Override
193 public boolean eIsSet(int featureID) {
194 switch (featureID) {
195 case TaxationWithRootPackage.HEALTH_AND_PENSION_INSURANCE__CATEGORY:
196 return category != CATEGORY_EDEFAULT;
197 case TaxationWithRootPackage.HEALTH_AND_PENSION_INSURANCE__IS_RELATED_TO_ADDITIONAL_SALARY:
198 return is_related_to_additional_salary != IS_RELATED_TO_ADDITIONAL_SALARY_EDEFAULT;
199 }
200 return super.eIsSet(featureID);
201 }
202
203 /**
204 * <!-- begin-user-doc -->
205 * <!-- end-user-doc -->
206 * @generated
207 */
208 @Override
209 public String toString() {
210 if (eIsProxy()) return super.toString();
211
212 StringBuilder result = new StringBuilder(super.toString());
213 result.append(" (category: ");
214 result.append(category);
215 result.append(", is_related_to_additional_salary: ");
216 result.append(is_related_to_additional_salary);
217 result.append(')');
218 return result.toString();
219 }
220
221} //Health_and_Pension_InsuranceImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/HouseholdImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/HouseholdImpl.java
new file mode 100644
index 00000000..9cd59977
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/HouseholdImpl.java
@@ -0,0 +1,313 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Dependent;
6import TaxationWithRoot.Household;
7import TaxationWithRoot.Legal_Union_Record;
8import TaxationWithRoot.TaxationWithRootPackage;
9
10import java.util.Collection;
11
12import org.eclipse.emf.common.notify.Notification;
13import org.eclipse.emf.common.notify.NotificationChain;
14
15import org.eclipse.emf.common.util.EList;
16
17import org.eclipse.emf.ecore.EClass;
18import org.eclipse.emf.ecore.InternalEObject;
19
20import org.eclipse.emf.ecore.impl.ENotificationImpl;
21import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
22
23import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
24import org.eclipse.emf.ecore.util.InternalEList;
25
26/**
27 * <!-- begin-user-doc -->
28 * An implementation of the model object '<em><b>Household</b></em>'.
29 * <!-- end-user-doc -->
30 * <p>
31 * The following features are implemented:
32 * </p>
33 * <ul>
34 * <li>{@link TaxationWithRoot.impl.HouseholdImpl#getParents <em>Parents</em>}</li>
35 * <li>{@link TaxationWithRoot.impl.HouseholdImpl#getId1 <em>Id1</em>}</li>
36 * <li>{@link TaxationWithRoot.impl.HouseholdImpl#getChildren <em>Children</em>}</li>
37 * </ul>
38 *
39 * @generated
40 */
41public class HouseholdImpl extends MinimalEObjectImpl.Container implements Household {
42 /**
43 * The cached value of the '{@link #getParents() <em>Parents</em>}' containment reference.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @see #getParents()
47 * @generated
48 * @ordered
49 */
50 protected Legal_Union_Record parents;
51
52 /**
53 * The default value of the '{@link #getId1() <em>Id1</em>}' attribute.
54 * <!-- begin-user-doc -->
55 * <!-- end-user-doc -->
56 * @see #getId1()
57 * @generated
58 * @ordered
59 */
60 protected static final String ID1_EDEFAULT = null;
61
62 /**
63 * The cached value of the '{@link #getId1() <em>Id1</em>}' attribute.
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @see #getId1()
67 * @generated
68 * @ordered
69 */
70 protected String id1 = ID1_EDEFAULT;
71
72 /**
73 * The cached value of the '{@link #getChildren() <em>Children</em>}' containment reference list.
74 * <!-- begin-user-doc -->
75 * <!-- end-user-doc -->
76 * @see #getChildren()
77 * @generated
78 * @ordered
79 */
80 protected EList<Dependent> children;
81
82 /**
83 * <!-- begin-user-doc -->
84 * <!-- end-user-doc -->
85 * @generated
86 */
87 protected HouseholdImpl() {
88 super();
89 }
90
91 /**
92 * <!-- begin-user-doc -->
93 * <!-- end-user-doc -->
94 * @generated
95 */
96 @Override
97 protected EClass eStaticClass() {
98 return TaxationWithRootPackage.Literals.HOUSEHOLD;
99 }
100
101 /**
102 * <!-- begin-user-doc -->
103 * <!-- end-user-doc -->
104 * @generated
105 */
106 @Override
107 public Legal_Union_Record getParents() {
108 return parents;
109 }
110
111 /**
112 * <!-- begin-user-doc -->
113 * <!-- end-user-doc -->
114 * @generated
115 */
116 public NotificationChain basicSetParents(Legal_Union_Record newParents, NotificationChain msgs) {
117 Legal_Union_Record oldParents = parents;
118 parents = newParents;
119 if (eNotificationRequired()) {
120 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.HOUSEHOLD__PARENTS, oldParents, newParents);
121 if (msgs == null) msgs = notification; else msgs.add(notification);
122 }
123 return msgs;
124 }
125
126 /**
127 * <!-- begin-user-doc -->
128 * <!-- end-user-doc -->
129 * @generated
130 */
131 @Override
132 public void setParents(Legal_Union_Record newParents) {
133 if (newParents != parents) {
134 NotificationChain msgs = null;
135 if (parents != null)
136 msgs = ((InternalEObject)parents).eInverseRemove(this, TaxationWithRootPackage.LEGAL_UNION_RECORD__HOUSEHOLD, Legal_Union_Record.class, msgs);
137 if (newParents != null)
138 msgs = ((InternalEObject)newParents).eInverseAdd(this, TaxationWithRootPackage.LEGAL_UNION_RECORD__HOUSEHOLD, Legal_Union_Record.class, msgs);
139 msgs = basicSetParents(newParents, msgs);
140 if (msgs != null) msgs.dispatch();
141 }
142 else if (eNotificationRequired())
143 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.HOUSEHOLD__PARENTS, newParents, newParents));
144 }
145
146 /**
147 * <!-- begin-user-doc -->
148 * <!-- end-user-doc -->
149 * @generated
150 */
151 @Override
152 public String getId1() {
153 return id1;
154 }
155
156 /**
157 * <!-- begin-user-doc -->
158 * <!-- end-user-doc -->
159 * @generated
160 */
161 @Override
162 public void setId1(String newId1) {
163 String oldId1 = id1;
164 id1 = newId1;
165 if (eNotificationRequired())
166 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.HOUSEHOLD__ID1, oldId1, id1));
167 }
168
169 /**
170 * <!-- begin-user-doc -->
171 * <!-- end-user-doc -->
172 * @generated
173 */
174 @Override
175 public EList<Dependent> getChildren() {
176 if (children == null) {
177 children = new EObjectContainmentWithInverseEList<Dependent>(Dependent.class, this, TaxationWithRootPackage.HOUSEHOLD__CHILDREN, TaxationWithRootPackage.DEPENDENT__HOUSEHOLD);
178 }
179 return children;
180 }
181
182 /**
183 * <!-- begin-user-doc -->
184 * <!-- end-user-doc -->
185 * @generated
186 */
187 @SuppressWarnings("unchecked")
188 @Override
189 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
190 switch (featureID) {
191 case TaxationWithRootPackage.HOUSEHOLD__PARENTS:
192 if (parents != null)
193 msgs = ((InternalEObject)parents).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TaxationWithRootPackage.HOUSEHOLD__PARENTS, null, msgs);
194 return basicSetParents((Legal_Union_Record)otherEnd, msgs);
195 case TaxationWithRootPackage.HOUSEHOLD__CHILDREN:
196 return ((InternalEList<InternalEObject>)(InternalEList<?>)getChildren()).basicAdd(otherEnd, msgs);
197 }
198 return super.eInverseAdd(otherEnd, featureID, msgs);
199 }
200
201 /**
202 * <!-- begin-user-doc -->
203 * <!-- end-user-doc -->
204 * @generated
205 */
206 @Override
207 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
208 switch (featureID) {
209 case TaxationWithRootPackage.HOUSEHOLD__PARENTS:
210 return basicSetParents(null, msgs);
211 case TaxationWithRootPackage.HOUSEHOLD__CHILDREN:
212 return ((InternalEList<?>)getChildren()).basicRemove(otherEnd, msgs);
213 }
214 return super.eInverseRemove(otherEnd, featureID, msgs);
215 }
216
217 /**
218 * <!-- begin-user-doc -->
219 * <!-- end-user-doc -->
220 * @generated
221 */
222 @Override
223 public Object eGet(int featureID, boolean resolve, boolean coreType) {
224 switch (featureID) {
225 case TaxationWithRootPackage.HOUSEHOLD__PARENTS:
226 return getParents();
227 case TaxationWithRootPackage.HOUSEHOLD__ID1:
228 return getId1();
229 case TaxationWithRootPackage.HOUSEHOLD__CHILDREN:
230 return getChildren();
231 }
232 return super.eGet(featureID, resolve, coreType);
233 }
234
235 /**
236 * <!-- begin-user-doc -->
237 * <!-- end-user-doc -->
238 * @generated
239 */
240 @SuppressWarnings("unchecked")
241 @Override
242 public void eSet(int featureID, Object newValue) {
243 switch (featureID) {
244 case TaxationWithRootPackage.HOUSEHOLD__PARENTS:
245 setParents((Legal_Union_Record)newValue);
246 return;
247 case TaxationWithRootPackage.HOUSEHOLD__ID1:
248 setId1((String)newValue);
249 return;
250 case TaxationWithRootPackage.HOUSEHOLD__CHILDREN:
251 getChildren().clear();
252 getChildren().addAll((Collection<? extends Dependent>)newValue);
253 return;
254 }
255 super.eSet(featureID, newValue);
256 }
257
258 /**
259 * <!-- begin-user-doc -->
260 * <!-- end-user-doc -->
261 * @generated
262 */
263 @Override
264 public void eUnset(int featureID) {
265 switch (featureID) {
266 case TaxationWithRootPackage.HOUSEHOLD__PARENTS:
267 setParents((Legal_Union_Record)null);
268 return;
269 case TaxationWithRootPackage.HOUSEHOLD__ID1:
270 setId1(ID1_EDEFAULT);
271 return;
272 case TaxationWithRootPackage.HOUSEHOLD__CHILDREN:
273 getChildren().clear();
274 return;
275 }
276 super.eUnset(featureID);
277 }
278
279 /**
280 * <!-- begin-user-doc -->
281 * <!-- end-user-doc -->
282 * @generated
283 */
284 @Override
285 public boolean eIsSet(int featureID) {
286 switch (featureID) {
287 case TaxationWithRootPackage.HOUSEHOLD__PARENTS:
288 return parents != null;
289 case TaxationWithRootPackage.HOUSEHOLD__ID1:
290 return ID1_EDEFAULT == null ? id1 != null : !ID1_EDEFAULT.equals(id1);
291 case TaxationWithRootPackage.HOUSEHOLD__CHILDREN:
292 return children != null && !children.isEmpty();
293 }
294 return super.eIsSet(featureID);
295 }
296
297 /**
298 * <!-- begin-user-doc -->
299 * <!-- end-user-doc -->
300 * @generated
301 */
302 @Override
303 public String toString() {
304 if (eIsProxy()) return super.toString();
305
306 StringBuilder result = new StringBuilder(super.toString());
307 result.append(" (id1: ");
308 result.append(id1);
309 result.append(')');
310 return result.toString();
311 }
312
313} //HouseholdImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/IncomeImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/IncomeImpl.java
new file mode 100644
index 00000000..83667fd8
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/IncomeImpl.java
@@ -0,0 +1,614 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Expense;
6import TaxationWithRoot.Income;
7import TaxationWithRoot.Income_Detail;
8import TaxationWithRoot.Income_Type;
9import TaxationWithRoot.Tax_Card;
10import TaxationWithRoot.Tax_Payer;
11import TaxationWithRoot.TaxationWithRootPackage;
12
13import java.util.Collection;
14
15import org.eclipse.emf.common.notify.Notification;
16import org.eclipse.emf.common.notify.NotificationChain;
17
18import org.eclipse.emf.common.util.EList;
19
20import org.eclipse.emf.ecore.EClass;
21import org.eclipse.emf.ecore.InternalEObject;
22
23import org.eclipse.emf.ecore.impl.ENotificationImpl;
24import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
25
26import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
27import org.eclipse.emf.ecore.util.EcoreUtil;
28import org.eclipse.emf.ecore.util.InternalEList;
29
30/**
31 * <!-- begin-user-doc -->
32 * An implementation of the model object '<em><b>Income</b></em>'.
33 * <!-- end-user-doc -->
34 * <p>
35 * The following features are implemented:
36 * </p>
37 * <ul>
38 * <li>{@link TaxationWithRoot.impl.IncomeImpl#getIncome_amount <em>Income amount</em>}</li>
39 * <li>{@link TaxationWithRoot.impl.IncomeImpl#getIncome_type <em>Income type</em>}</li>
40 * <li>{@link TaxationWithRoot.impl.IncomeImpl#getTax_card <em>Tax card</em>}</li>
41 * <li>{@link TaxationWithRoot.impl.IncomeImpl#getTax_liability <em>Tax liability</em>}</li>
42 * <li>{@link TaxationWithRoot.impl.IncomeImpl#getTaxPayer <em>Tax Payer</em>}</li>
43 * <li>{@link TaxationWithRoot.impl.IncomeImpl#getDetails <em>Details</em>}</li>
44 * <li>{@link TaxationWithRoot.impl.IncomeImpl#getNum <em>Num</em>}</li>
45 * <li>{@link TaxationWithRoot.impl.IncomeImpl#getExpenses <em>Expenses</em>}</li>
46 * </ul>
47 *
48 * @generated
49 */
50public abstract class IncomeImpl extends MinimalEObjectImpl.Container implements Income {
51 /**
52 * The default value of the '{@link #getIncome_amount() <em>Income amount</em>}' attribute.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #getIncome_amount()
56 * @generated
57 * @ordered
58 */
59 protected static final double INCOME_AMOUNT_EDEFAULT = 0.0;
60
61 /**
62 * The cached value of the '{@link #getIncome_amount() <em>Income amount</em>}' attribute.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @see #getIncome_amount()
66 * @generated
67 * @ordered
68 */
69 protected double income_amount = INCOME_AMOUNT_EDEFAULT;
70
71 /**
72 * The cached value of the '{@link #getIncome_type() <em>Income type</em>}' containment reference.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @see #getIncome_type()
76 * @generated
77 * @ordered
78 */
79 protected Income_Type income_type;
80
81 /**
82 * The cached value of the '{@link #getTax_card() <em>Tax card</em>}' containment reference.
83 * <!-- begin-user-doc -->
84 * <!-- end-user-doc -->
85 * @see #getTax_card()
86 * @generated
87 * @ordered
88 */
89 protected Tax_Card tax_card;
90
91 /**
92 * The default value of the '{@link #getTax_liability() <em>Tax liability</em>}' attribute.
93 * <!-- begin-user-doc -->
94 * <!-- end-user-doc -->
95 * @see #getTax_liability()
96 * @generated
97 * @ordered
98 */
99 protected static final double TAX_LIABILITY_EDEFAULT = 0.0;
100
101 /**
102 * The cached value of the '{@link #getTax_liability() <em>Tax liability</em>}' attribute.
103 * <!-- begin-user-doc -->
104 * <!-- end-user-doc -->
105 * @see #getTax_liability()
106 * @generated
107 * @ordered
108 */
109 protected double tax_liability = TAX_LIABILITY_EDEFAULT;
110
111 /**
112 * The cached value of the '{@link #getDetails() <em>Details</em>}' containment reference list.
113 * <!-- begin-user-doc -->
114 * <!-- end-user-doc -->
115 * @see #getDetails()
116 * @generated
117 * @ordered
118 */
119 protected EList<Income_Detail> details;
120
121 /**
122 * The default value of the '{@link #getNum() <em>Num</em>}' attribute.
123 * <!-- begin-user-doc -->
124 * <!-- end-user-doc -->
125 * @see #getNum()
126 * @generated
127 * @ordered
128 */
129 protected static final int NUM_EDEFAULT = 0;
130
131 /**
132 * The cached value of the '{@link #getNum() <em>Num</em>}' attribute.
133 * <!-- begin-user-doc -->
134 * <!-- end-user-doc -->
135 * @see #getNum()
136 * @generated
137 * @ordered
138 */
139 protected int num = NUM_EDEFAULT;
140
141 /**
142 * The cached value of the '{@link #getExpenses() <em>Expenses</em>}' containment reference list.
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @see #getExpenses()
146 * @generated
147 * @ordered
148 */
149 protected EList<Expense> expenses;
150
151 /**
152 * <!-- begin-user-doc -->
153 * <!-- end-user-doc -->
154 * @generated
155 */
156 protected IncomeImpl() {
157 super();
158 }
159
160 /**
161 * <!-- begin-user-doc -->
162 * <!-- end-user-doc -->
163 * @generated
164 */
165 @Override
166 protected EClass eStaticClass() {
167 return TaxationWithRootPackage.Literals.INCOME;
168 }
169
170 /**
171 * <!-- begin-user-doc -->
172 * <!-- end-user-doc -->
173 * @generated
174 */
175 @Override
176 public double getIncome_amount() {
177 return income_amount;
178 }
179
180 /**
181 * <!-- begin-user-doc -->
182 * <!-- end-user-doc -->
183 * @generated
184 */
185 @Override
186 public void setIncome_amount(double newIncome_amount) {
187 double oldIncome_amount = income_amount;
188 income_amount = newIncome_amount;
189 if (eNotificationRequired())
190 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME__INCOME_AMOUNT, oldIncome_amount, income_amount));
191 }
192
193 /**
194 * <!-- begin-user-doc -->
195 * <!-- end-user-doc -->
196 * @generated
197 */
198 @Override
199 public Income_Type getIncome_type() {
200 return income_type;
201 }
202
203 /**
204 * <!-- begin-user-doc -->
205 * <!-- end-user-doc -->
206 * @generated
207 */
208 public NotificationChain basicSetIncome_type(Income_Type newIncome_type, NotificationChain msgs) {
209 Income_Type oldIncome_type = income_type;
210 income_type = newIncome_type;
211 if (eNotificationRequired()) {
212 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME__INCOME_TYPE, oldIncome_type, newIncome_type);
213 if (msgs == null) msgs = notification; else msgs.add(notification);
214 }
215 return msgs;
216 }
217
218 /**
219 * <!-- begin-user-doc -->
220 * <!-- end-user-doc -->
221 * @generated
222 */
223 @Override
224 public void setIncome_type(Income_Type newIncome_type) {
225 if (newIncome_type != income_type) {
226 NotificationChain msgs = null;
227 if (income_type != null)
228 msgs = ((InternalEObject)income_type).eInverseRemove(this, TaxationWithRootPackage.INCOME_TYPE__INCOME, Income_Type.class, msgs);
229 if (newIncome_type != null)
230 msgs = ((InternalEObject)newIncome_type).eInverseAdd(this, TaxationWithRootPackage.INCOME_TYPE__INCOME, Income_Type.class, msgs);
231 msgs = basicSetIncome_type(newIncome_type, msgs);
232 if (msgs != null) msgs.dispatch();
233 }
234 else if (eNotificationRequired())
235 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME__INCOME_TYPE, newIncome_type, newIncome_type));
236 }
237
238 /**
239 * <!-- begin-user-doc -->
240 * <!-- end-user-doc -->
241 * @generated
242 */
243 @Override
244 public Tax_Card getTax_card() {
245 return tax_card;
246 }
247
248 /**
249 * <!-- begin-user-doc -->
250 * <!-- end-user-doc -->
251 * @generated
252 */
253 public NotificationChain basicSetTax_card(Tax_Card newTax_card, NotificationChain msgs) {
254 Tax_Card oldTax_card = tax_card;
255 tax_card = newTax_card;
256 if (eNotificationRequired()) {
257 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME__TAX_CARD, oldTax_card, newTax_card);
258 if (msgs == null) msgs = notification; else msgs.add(notification);
259 }
260 return msgs;
261 }
262
263 /**
264 * <!-- begin-user-doc -->
265 * <!-- end-user-doc -->
266 * @generated
267 */
268 @Override
269 public void setTax_card(Tax_Card newTax_card) {
270 if (newTax_card != tax_card) {
271 NotificationChain msgs = null;
272 if (tax_card != null)
273 msgs = ((InternalEObject)tax_card).eInverseRemove(this, TaxationWithRootPackage.TAX_CARD__INCOME, Tax_Card.class, msgs);
274 if (newTax_card != null)
275 msgs = ((InternalEObject)newTax_card).eInverseAdd(this, TaxationWithRootPackage.TAX_CARD__INCOME, Tax_Card.class, msgs);
276 msgs = basicSetTax_card(newTax_card, msgs);
277 if (msgs != null) msgs.dispatch();
278 }
279 else if (eNotificationRequired())
280 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME__TAX_CARD, newTax_card, newTax_card));
281 }
282
283 /**
284 * <!-- begin-user-doc -->
285 * <!-- end-user-doc -->
286 * @generated
287 */
288 @Override
289 public double getTax_liability() {
290 return tax_liability;
291 }
292
293 /**
294 * <!-- begin-user-doc -->
295 * <!-- end-user-doc -->
296 * @generated
297 */
298 @Override
299 public void setTax_liability(double newTax_liability) {
300 double oldTax_liability = tax_liability;
301 tax_liability = newTax_liability;
302 if (eNotificationRequired())
303 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME__TAX_LIABILITY, oldTax_liability, tax_liability));
304 }
305
306 /**
307 * <!-- begin-user-doc -->
308 * <!-- end-user-doc -->
309 * @generated
310 */
311 @Override
312 public Tax_Payer getTaxPayer() {
313 if (eContainerFeatureID() != TaxationWithRootPackage.INCOME__TAX_PAYER) return null;
314 return (Tax_Payer)eInternalContainer();
315 }
316
317 /**
318 * <!-- begin-user-doc -->
319 * <!-- end-user-doc -->
320 * @generated
321 */
322 public NotificationChain basicSetTaxPayer(Tax_Payer newTaxPayer, NotificationChain msgs) {
323 msgs = eBasicSetContainer((InternalEObject)newTaxPayer, TaxationWithRootPackage.INCOME__TAX_PAYER, msgs);
324 return msgs;
325 }
326
327 /**
328 * <!-- begin-user-doc -->
329 * <!-- end-user-doc -->
330 * @generated
331 */
332 @Override
333 public void setTaxPayer(Tax_Payer newTaxPayer) {
334 if (newTaxPayer != eInternalContainer() || (eContainerFeatureID() != TaxationWithRootPackage.INCOME__TAX_PAYER && newTaxPayer != null)) {
335 if (EcoreUtil.isAncestor(this, newTaxPayer))
336 throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
337 NotificationChain msgs = null;
338 if (eInternalContainer() != null)
339 msgs = eBasicRemoveFromContainer(msgs);
340 if (newTaxPayer != null)
341 msgs = ((InternalEObject)newTaxPayer).eInverseAdd(this, TaxationWithRootPackage.TAX_PAYER__INCOMES, Tax_Payer.class, msgs);
342 msgs = basicSetTaxPayer(newTaxPayer, msgs);
343 if (msgs != null) msgs.dispatch();
344 }
345 else if (eNotificationRequired())
346 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME__TAX_PAYER, newTaxPayer, newTaxPayer));
347 }
348
349 /**
350 * <!-- begin-user-doc -->
351 * <!-- end-user-doc -->
352 * @generated
353 */
354 @Override
355 public EList<Income_Detail> getDetails() {
356 if (details == null) {
357 details = new EObjectContainmentWithInverseEList<Income_Detail>(Income_Detail.class, this, TaxationWithRootPackage.INCOME__DETAILS, TaxationWithRootPackage.INCOME_DETAIL__INCOME);
358 }
359 return details;
360 }
361
362 /**
363 * <!-- begin-user-doc -->
364 * <!-- end-user-doc -->
365 * @generated
366 */
367 @Override
368 public int getNum() {
369 return num;
370 }
371
372 /**
373 * <!-- begin-user-doc -->
374 * <!-- end-user-doc -->
375 * @generated
376 */
377 @Override
378 public void setNum(int newNum) {
379 int oldNum = num;
380 num = newNum;
381 if (eNotificationRequired())
382 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME__NUM, oldNum, num));
383 }
384
385 /**
386 * <!-- begin-user-doc -->
387 * <!-- end-user-doc -->
388 * @generated
389 */
390 @Override
391 public EList<Expense> getExpenses() {
392 if (expenses == null) {
393 expenses = new EObjectContainmentWithInverseEList<Expense>(Expense.class, this, TaxationWithRootPackage.INCOME__EXPENSES, TaxationWithRootPackage.EXPENSE__INCOME);
394 }
395 return expenses;
396 }
397
398 /**
399 * <!-- begin-user-doc -->
400 * <!-- end-user-doc -->
401 * @generated
402 */
403 @SuppressWarnings("unchecked")
404 @Override
405 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
406 switch (featureID) {
407 case TaxationWithRootPackage.INCOME__INCOME_TYPE:
408 if (income_type != null)
409 msgs = ((InternalEObject)income_type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TaxationWithRootPackage.INCOME__INCOME_TYPE, null, msgs);
410 return basicSetIncome_type((Income_Type)otherEnd, msgs);
411 case TaxationWithRootPackage.INCOME__TAX_CARD:
412 if (tax_card != null)
413 msgs = ((InternalEObject)tax_card).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TaxationWithRootPackage.INCOME__TAX_CARD, null, msgs);
414 return basicSetTax_card((Tax_Card)otherEnd, msgs);
415 case TaxationWithRootPackage.INCOME__TAX_PAYER:
416 if (eInternalContainer() != null)
417 msgs = eBasicRemoveFromContainer(msgs);
418 return basicSetTaxPayer((Tax_Payer)otherEnd, msgs);
419 case TaxationWithRootPackage.INCOME__DETAILS:
420 return ((InternalEList<InternalEObject>)(InternalEList<?>)getDetails()).basicAdd(otherEnd, msgs);
421 case TaxationWithRootPackage.INCOME__EXPENSES:
422 return ((InternalEList<InternalEObject>)(InternalEList<?>)getExpenses()).basicAdd(otherEnd, msgs);
423 }
424 return super.eInverseAdd(otherEnd, featureID, msgs);
425 }
426
427 /**
428 * <!-- begin-user-doc -->
429 * <!-- end-user-doc -->
430 * @generated
431 */
432 @Override
433 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
434 switch (featureID) {
435 case TaxationWithRootPackage.INCOME__INCOME_TYPE:
436 return basicSetIncome_type(null, msgs);
437 case TaxationWithRootPackage.INCOME__TAX_CARD:
438 return basicSetTax_card(null, msgs);
439 case TaxationWithRootPackage.INCOME__TAX_PAYER:
440 return basicSetTaxPayer(null, msgs);
441 case TaxationWithRootPackage.INCOME__DETAILS:
442 return ((InternalEList<?>)getDetails()).basicRemove(otherEnd, msgs);
443 case TaxationWithRootPackage.INCOME__EXPENSES:
444 return ((InternalEList<?>)getExpenses()).basicRemove(otherEnd, msgs);
445 }
446 return super.eInverseRemove(otherEnd, featureID, msgs);
447 }
448
449 /**
450 * <!-- begin-user-doc -->
451 * <!-- end-user-doc -->
452 * @generated
453 */
454 @Override
455 public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
456 switch (eContainerFeatureID()) {
457 case TaxationWithRootPackage.INCOME__TAX_PAYER:
458 return eInternalContainer().eInverseRemove(this, TaxationWithRootPackage.TAX_PAYER__INCOMES, Tax_Payer.class, msgs);
459 }
460 return super.eBasicRemoveFromContainerFeature(msgs);
461 }
462
463 /**
464 * <!-- begin-user-doc -->
465 * <!-- end-user-doc -->
466 * @generated
467 */
468 @Override
469 public Object eGet(int featureID, boolean resolve, boolean coreType) {
470 switch (featureID) {
471 case TaxationWithRootPackage.INCOME__INCOME_AMOUNT:
472 return getIncome_amount();
473 case TaxationWithRootPackage.INCOME__INCOME_TYPE:
474 return getIncome_type();
475 case TaxationWithRootPackage.INCOME__TAX_CARD:
476 return getTax_card();
477 case TaxationWithRootPackage.INCOME__TAX_LIABILITY:
478 return getTax_liability();
479 case TaxationWithRootPackage.INCOME__TAX_PAYER:
480 return getTaxPayer();
481 case TaxationWithRootPackage.INCOME__DETAILS:
482 return getDetails();
483 case TaxationWithRootPackage.INCOME__NUM:
484 return getNum();
485 case TaxationWithRootPackage.INCOME__EXPENSES:
486 return getExpenses();
487 }
488 return super.eGet(featureID, resolve, coreType);
489 }
490
491 /**
492 * <!-- begin-user-doc -->
493 * <!-- end-user-doc -->
494 * @generated
495 */
496 @SuppressWarnings("unchecked")
497 @Override
498 public void eSet(int featureID, Object newValue) {
499 switch (featureID) {
500 case TaxationWithRootPackage.INCOME__INCOME_AMOUNT:
501 setIncome_amount((Double)newValue);
502 return;
503 case TaxationWithRootPackage.INCOME__INCOME_TYPE:
504 setIncome_type((Income_Type)newValue);
505 return;
506 case TaxationWithRootPackage.INCOME__TAX_CARD:
507 setTax_card((Tax_Card)newValue);
508 return;
509 case TaxationWithRootPackage.INCOME__TAX_LIABILITY:
510 setTax_liability((Double)newValue);
511 return;
512 case TaxationWithRootPackage.INCOME__TAX_PAYER:
513 setTaxPayer((Tax_Payer)newValue);
514 return;
515 case TaxationWithRootPackage.INCOME__DETAILS:
516 getDetails().clear();
517 getDetails().addAll((Collection<? extends Income_Detail>)newValue);
518 return;
519 case TaxationWithRootPackage.INCOME__NUM:
520 setNum((Integer)newValue);
521 return;
522 case TaxationWithRootPackage.INCOME__EXPENSES:
523 getExpenses().clear();
524 getExpenses().addAll((Collection<? extends Expense>)newValue);
525 return;
526 }
527 super.eSet(featureID, newValue);
528 }
529
530 /**
531 * <!-- begin-user-doc -->
532 * <!-- end-user-doc -->
533 * @generated
534 */
535 @Override
536 public void eUnset(int featureID) {
537 switch (featureID) {
538 case TaxationWithRootPackage.INCOME__INCOME_AMOUNT:
539 setIncome_amount(INCOME_AMOUNT_EDEFAULT);
540 return;
541 case TaxationWithRootPackage.INCOME__INCOME_TYPE:
542 setIncome_type((Income_Type)null);
543 return;
544 case TaxationWithRootPackage.INCOME__TAX_CARD:
545 setTax_card((Tax_Card)null);
546 return;
547 case TaxationWithRootPackage.INCOME__TAX_LIABILITY:
548 setTax_liability(TAX_LIABILITY_EDEFAULT);
549 return;
550 case TaxationWithRootPackage.INCOME__TAX_PAYER:
551 setTaxPayer((Tax_Payer)null);
552 return;
553 case TaxationWithRootPackage.INCOME__DETAILS:
554 getDetails().clear();
555 return;
556 case TaxationWithRootPackage.INCOME__NUM:
557 setNum(NUM_EDEFAULT);
558 return;
559 case TaxationWithRootPackage.INCOME__EXPENSES:
560 getExpenses().clear();
561 return;
562 }
563 super.eUnset(featureID);
564 }
565
566 /**
567 * <!-- begin-user-doc -->
568 * <!-- end-user-doc -->
569 * @generated
570 */
571 @Override
572 public boolean eIsSet(int featureID) {
573 switch (featureID) {
574 case TaxationWithRootPackage.INCOME__INCOME_AMOUNT:
575 return income_amount != INCOME_AMOUNT_EDEFAULT;
576 case TaxationWithRootPackage.INCOME__INCOME_TYPE:
577 return income_type != null;
578 case TaxationWithRootPackage.INCOME__TAX_CARD:
579 return tax_card != null;
580 case TaxationWithRootPackage.INCOME__TAX_LIABILITY:
581 return tax_liability != TAX_LIABILITY_EDEFAULT;
582 case TaxationWithRootPackage.INCOME__TAX_PAYER:
583 return getTaxPayer() != null;
584 case TaxationWithRootPackage.INCOME__DETAILS:
585 return details != null && !details.isEmpty();
586 case TaxationWithRootPackage.INCOME__NUM:
587 return num != NUM_EDEFAULT;
588 case TaxationWithRootPackage.INCOME__EXPENSES:
589 return expenses != null && !expenses.isEmpty();
590 }
591 return super.eIsSet(featureID);
592 }
593
594 /**
595 * <!-- begin-user-doc -->
596 * <!-- end-user-doc -->
597 * @generated
598 */
599 @Override
600 public String toString() {
601 if (eIsProxy()) return super.toString();
602
603 StringBuilder result = new StringBuilder(super.toString());
604 result.append(" (income_amount: ");
605 result.append(income_amount);
606 result.append(", tax_liability: ");
607 result.append(tax_liability);
608 result.append(", num: ");
609 result.append(num);
610 result.append(')');
611 return result.toString();
612 }
613
614} //IncomeImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Income_DetailImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Income_DetailImpl.java
new file mode 100644
index 00000000..4820079f
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Income_DetailImpl.java
@@ -0,0 +1,548 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Income;
6import TaxationWithRoot.Income_Detail;
7import TaxationWithRoot.TaxationWithRootPackage;
8
9import org.eclipse.emf.common.notify.Notification;
10import org.eclipse.emf.common.notify.NotificationChain;
11
12import org.eclipse.emf.ecore.EClass;
13import org.eclipse.emf.ecore.InternalEObject;
14
15import org.eclipse.emf.ecore.impl.ENotificationImpl;
16import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
17
18import org.eclipse.emf.ecore.util.EcoreUtil;
19
20/**
21 * <!-- begin-user-doc -->
22 * An implementation of the model object '<em><b>Income Detail</b></em>'.
23 * <!-- end-user-doc -->
24 * <p>
25 * The following features are implemented:
26 * </p>
27 * <ul>
28 * <li>{@link TaxationWithRoot.impl.Income_DetailImpl#getAmount <em>Amount</em>}</li>
29 * <li>{@link TaxationWithRoot.impl.Income_DetailImpl#isIs_worked <em>Is worked</em>}</li>
30 * <li>{@link TaxationWithRoot.impl.Income_DetailImpl#getDistance <em>Distance</em>}</li>
31 * <li>{@link TaxationWithRoot.impl.Income_DetailImpl#getWorked_days <em>Worked days</em>}</li>
32 * <li>{@link TaxationWithRoot.impl.Income_DetailImpl#isIs_contributing_CNS <em>Is contributing CNS</em>}</li>
33 * <li>{@link TaxationWithRoot.impl.Income_DetailImpl#getId5 <em>Id5</em>}</li>
34 * <li>{@link TaxationWithRoot.impl.Income_DetailImpl#getIncome <em>Income</em>}</li>
35 * </ul>
36 *
37 * @generated
38 */
39public class Income_DetailImpl extends MinimalEObjectImpl.Container implements Income_Detail {
40 /**
41 * The default value of the '{@link #getAmount() <em>Amount</em>}' attribute.
42 * <!-- begin-user-doc -->
43 * <!-- end-user-doc -->
44 * @see #getAmount()
45 * @generated
46 * @ordered
47 */
48 protected static final double AMOUNT_EDEFAULT = 0.0;
49
50 /**
51 * The cached value of the '{@link #getAmount() <em>Amount</em>}' attribute.
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @see #getAmount()
55 * @generated
56 * @ordered
57 */
58 protected double amount = AMOUNT_EDEFAULT;
59
60 /**
61 * The default value of the '{@link #isIs_worked() <em>Is worked</em>}' attribute.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @see #isIs_worked()
65 * @generated
66 * @ordered
67 */
68 protected static final boolean IS_WORKED_EDEFAULT = false;
69
70 /**
71 * The cached value of the '{@link #isIs_worked() <em>Is worked</em>}' attribute.
72 * <!-- begin-user-doc -->
73 * <!-- end-user-doc -->
74 * @see #isIs_worked()
75 * @generated
76 * @ordered
77 */
78 protected boolean is_worked = IS_WORKED_EDEFAULT;
79
80 /**
81 * The default value of the '{@link #getDistance() <em>Distance</em>}' attribute.
82 * <!-- begin-user-doc -->
83 * <!-- end-user-doc -->
84 * @see #getDistance()
85 * @generated
86 * @ordered
87 */
88 protected static final double DISTANCE_EDEFAULT = 0.0;
89
90 /**
91 * The cached value of the '{@link #getDistance() <em>Distance</em>}' attribute.
92 * <!-- begin-user-doc -->
93 * <!-- end-user-doc -->
94 * @see #getDistance()
95 * @generated
96 * @ordered
97 */
98 protected double distance = DISTANCE_EDEFAULT;
99
100 /**
101 * The default value of the '{@link #getWorked_days() <em>Worked days</em>}' attribute.
102 * <!-- begin-user-doc -->
103 * <!-- end-user-doc -->
104 * @see #getWorked_days()
105 * @generated
106 * @ordered
107 */
108 protected static final int WORKED_DAYS_EDEFAULT = 0;
109
110 /**
111 * The cached value of the '{@link #getWorked_days() <em>Worked days</em>}' attribute.
112 * <!-- begin-user-doc -->
113 * <!-- end-user-doc -->
114 * @see #getWorked_days()
115 * @generated
116 * @ordered
117 */
118 protected int worked_days = WORKED_DAYS_EDEFAULT;
119
120 /**
121 * The default value of the '{@link #isIs_contributing_CNS() <em>Is contributing CNS</em>}' attribute.
122 * <!-- begin-user-doc -->
123 * <!-- end-user-doc -->
124 * @see #isIs_contributing_CNS()
125 * @generated
126 * @ordered
127 */
128 protected static final boolean IS_CONTRIBUTING_CNS_EDEFAULT = false;
129
130 /**
131 * The cached value of the '{@link #isIs_contributing_CNS() <em>Is contributing CNS</em>}' attribute.
132 * <!-- begin-user-doc -->
133 * <!-- end-user-doc -->
134 * @see #isIs_contributing_CNS()
135 * @generated
136 * @ordered
137 */
138 protected boolean is_contributing_CNS = IS_CONTRIBUTING_CNS_EDEFAULT;
139
140 /**
141 * The default value of the '{@link #getId5() <em>Id5</em>}' attribute.
142 * <!-- begin-user-doc -->
143 * <!-- end-user-doc -->
144 * @see #getId5()
145 * @generated
146 * @ordered
147 */
148 protected static final String ID5_EDEFAULT = null;
149
150 /**
151 * The cached value of the '{@link #getId5() <em>Id5</em>}' attribute.
152 * <!-- begin-user-doc -->
153 * <!-- end-user-doc -->
154 * @see #getId5()
155 * @generated
156 * @ordered
157 */
158 protected String id5 = ID5_EDEFAULT;
159
160 /**
161 * <!-- begin-user-doc -->
162 * <!-- end-user-doc -->
163 * @generated
164 */
165 protected Income_DetailImpl() {
166 super();
167 }
168
169 /**
170 * <!-- begin-user-doc -->
171 * <!-- end-user-doc -->
172 * @generated
173 */
174 @Override
175 protected EClass eStaticClass() {
176 return TaxationWithRootPackage.Literals.INCOME_DETAIL;
177 }
178
179 /**
180 * <!-- begin-user-doc -->
181 * <!-- end-user-doc -->
182 * @generated
183 */
184 @Override
185 public double getAmount() {
186 return amount;
187 }
188
189 /**
190 * <!-- begin-user-doc -->
191 * <!-- end-user-doc -->
192 * @generated
193 */
194 @Override
195 public void setAmount(double newAmount) {
196 double oldAmount = amount;
197 amount = newAmount;
198 if (eNotificationRequired())
199 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME_DETAIL__AMOUNT, oldAmount, amount));
200 }
201
202 /**
203 * <!-- begin-user-doc -->
204 * <!-- end-user-doc -->
205 * @generated
206 */
207 @Override
208 public boolean isIs_worked() {
209 return is_worked;
210 }
211
212 /**
213 * <!-- begin-user-doc -->
214 * <!-- end-user-doc -->
215 * @generated
216 */
217 @Override
218 public void setIs_worked(boolean newIs_worked) {
219 boolean oldIs_worked = is_worked;
220 is_worked = newIs_worked;
221 if (eNotificationRequired())
222 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME_DETAIL__IS_WORKED, oldIs_worked, is_worked));
223 }
224
225 /**
226 * <!-- begin-user-doc -->
227 * <!-- end-user-doc -->
228 * @generated
229 */
230 @Override
231 public double getDistance() {
232 return distance;
233 }
234
235 /**
236 * <!-- begin-user-doc -->
237 * <!-- end-user-doc -->
238 * @generated
239 */
240 @Override
241 public void setDistance(double newDistance) {
242 double oldDistance = distance;
243 distance = newDistance;
244 if (eNotificationRequired())
245 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME_DETAIL__DISTANCE, oldDistance, distance));
246 }
247
248 /**
249 * <!-- begin-user-doc -->
250 * <!-- end-user-doc -->
251 * @generated
252 */
253 @Override
254 public int getWorked_days() {
255 return worked_days;
256 }
257
258 /**
259 * <!-- begin-user-doc -->
260 * <!-- end-user-doc -->
261 * @generated
262 */
263 @Override
264 public void setWorked_days(int newWorked_days) {
265 int oldWorked_days = worked_days;
266 worked_days = newWorked_days;
267 if (eNotificationRequired())
268 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME_DETAIL__WORKED_DAYS, oldWorked_days, worked_days));
269 }
270
271 /**
272 * <!-- begin-user-doc -->
273 * <!-- end-user-doc -->
274 * @generated
275 */
276 @Override
277 public boolean isIs_contributing_CNS() {
278 return is_contributing_CNS;
279 }
280
281 /**
282 * <!-- begin-user-doc -->
283 * <!-- end-user-doc -->
284 * @generated
285 */
286 @Override
287 public void setIs_contributing_CNS(boolean newIs_contributing_CNS) {
288 boolean oldIs_contributing_CNS = is_contributing_CNS;
289 is_contributing_CNS = newIs_contributing_CNS;
290 if (eNotificationRequired())
291 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME_DETAIL__IS_CONTRIBUTING_CNS, oldIs_contributing_CNS, is_contributing_CNS));
292 }
293
294 /**
295 * <!-- begin-user-doc -->
296 * <!-- end-user-doc -->
297 * @generated
298 */
299 @Override
300 public String getId5() {
301 return id5;
302 }
303
304 /**
305 * <!-- begin-user-doc -->
306 * <!-- end-user-doc -->
307 * @generated
308 */
309 @Override
310 public void setId5(String newId5) {
311 String oldId5 = id5;
312 id5 = newId5;
313 if (eNotificationRequired())
314 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME_DETAIL__ID5, oldId5, id5));
315 }
316
317 /**
318 * <!-- begin-user-doc -->
319 * <!-- end-user-doc -->
320 * @generated
321 */
322 @Override
323 public Income getIncome() {
324 if (eContainerFeatureID() != TaxationWithRootPackage.INCOME_DETAIL__INCOME) return null;
325 return (Income)eInternalContainer();
326 }
327
328 /**
329 * <!-- begin-user-doc -->
330 * <!-- end-user-doc -->
331 * @generated
332 */
333 public NotificationChain basicSetIncome(Income newIncome, NotificationChain msgs) {
334 msgs = eBasicSetContainer((InternalEObject)newIncome, TaxationWithRootPackage.INCOME_DETAIL__INCOME, msgs);
335 return msgs;
336 }
337
338 /**
339 * <!-- begin-user-doc -->
340 * <!-- end-user-doc -->
341 * @generated
342 */
343 @Override
344 public void setIncome(Income newIncome) {
345 if (newIncome != eInternalContainer() || (eContainerFeatureID() != TaxationWithRootPackage.INCOME_DETAIL__INCOME && newIncome != null)) {
346 if (EcoreUtil.isAncestor(this, newIncome))
347 throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
348 NotificationChain msgs = null;
349 if (eInternalContainer() != null)
350 msgs = eBasicRemoveFromContainer(msgs);
351 if (newIncome != null)
352 msgs = ((InternalEObject)newIncome).eInverseAdd(this, TaxationWithRootPackage.INCOME__DETAILS, Income.class, msgs);
353 msgs = basicSetIncome(newIncome, msgs);
354 if (msgs != null) msgs.dispatch();
355 }
356 else if (eNotificationRequired())
357 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME_DETAIL__INCOME, newIncome, newIncome));
358 }
359
360 /**
361 * <!-- begin-user-doc -->
362 * <!-- end-user-doc -->
363 * @generated
364 */
365 @Override
366 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
367 switch (featureID) {
368 case TaxationWithRootPackage.INCOME_DETAIL__INCOME:
369 if (eInternalContainer() != null)
370 msgs = eBasicRemoveFromContainer(msgs);
371 return basicSetIncome((Income)otherEnd, msgs);
372 }
373 return super.eInverseAdd(otherEnd, featureID, msgs);
374 }
375
376 /**
377 * <!-- begin-user-doc -->
378 * <!-- end-user-doc -->
379 * @generated
380 */
381 @Override
382 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
383 switch (featureID) {
384 case TaxationWithRootPackage.INCOME_DETAIL__INCOME:
385 return basicSetIncome(null, msgs);
386 }
387 return super.eInverseRemove(otherEnd, featureID, msgs);
388 }
389
390 /**
391 * <!-- begin-user-doc -->
392 * <!-- end-user-doc -->
393 * @generated
394 */
395 @Override
396 public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
397 switch (eContainerFeatureID()) {
398 case TaxationWithRootPackage.INCOME_DETAIL__INCOME:
399 return eInternalContainer().eInverseRemove(this, TaxationWithRootPackage.INCOME__DETAILS, Income.class, msgs);
400 }
401 return super.eBasicRemoveFromContainerFeature(msgs);
402 }
403
404 /**
405 * <!-- begin-user-doc -->
406 * <!-- end-user-doc -->
407 * @generated
408 */
409 @Override
410 public Object eGet(int featureID, boolean resolve, boolean coreType) {
411 switch (featureID) {
412 case TaxationWithRootPackage.INCOME_DETAIL__AMOUNT:
413 return getAmount();
414 case TaxationWithRootPackage.INCOME_DETAIL__IS_WORKED:
415 return isIs_worked();
416 case TaxationWithRootPackage.INCOME_DETAIL__DISTANCE:
417 return getDistance();
418 case TaxationWithRootPackage.INCOME_DETAIL__WORKED_DAYS:
419 return getWorked_days();
420 case TaxationWithRootPackage.INCOME_DETAIL__IS_CONTRIBUTING_CNS:
421 return isIs_contributing_CNS();
422 case TaxationWithRootPackage.INCOME_DETAIL__ID5:
423 return getId5();
424 case TaxationWithRootPackage.INCOME_DETAIL__INCOME:
425 return getIncome();
426 }
427 return super.eGet(featureID, resolve, coreType);
428 }
429
430 /**
431 * <!-- begin-user-doc -->
432 * <!-- end-user-doc -->
433 * @generated
434 */
435 @Override
436 public void eSet(int featureID, Object newValue) {
437 switch (featureID) {
438 case TaxationWithRootPackage.INCOME_DETAIL__AMOUNT:
439 setAmount((Double)newValue);
440 return;
441 case TaxationWithRootPackage.INCOME_DETAIL__IS_WORKED:
442 setIs_worked((Boolean)newValue);
443 return;
444 case TaxationWithRootPackage.INCOME_DETAIL__DISTANCE:
445 setDistance((Double)newValue);
446 return;
447 case TaxationWithRootPackage.INCOME_DETAIL__WORKED_DAYS:
448 setWorked_days((Integer)newValue);
449 return;
450 case TaxationWithRootPackage.INCOME_DETAIL__IS_CONTRIBUTING_CNS:
451 setIs_contributing_CNS((Boolean)newValue);
452 return;
453 case TaxationWithRootPackage.INCOME_DETAIL__ID5:
454 setId5((String)newValue);
455 return;
456 case TaxationWithRootPackage.INCOME_DETAIL__INCOME:
457 setIncome((Income)newValue);
458 return;
459 }
460 super.eSet(featureID, newValue);
461 }
462
463 /**
464 * <!-- begin-user-doc -->
465 * <!-- end-user-doc -->
466 * @generated
467 */
468 @Override
469 public void eUnset(int featureID) {
470 switch (featureID) {
471 case TaxationWithRootPackage.INCOME_DETAIL__AMOUNT:
472 setAmount(AMOUNT_EDEFAULT);
473 return;
474 case TaxationWithRootPackage.INCOME_DETAIL__IS_WORKED:
475 setIs_worked(IS_WORKED_EDEFAULT);
476 return;
477 case TaxationWithRootPackage.INCOME_DETAIL__DISTANCE:
478 setDistance(DISTANCE_EDEFAULT);
479 return;
480 case TaxationWithRootPackage.INCOME_DETAIL__WORKED_DAYS:
481 setWorked_days(WORKED_DAYS_EDEFAULT);
482 return;
483 case TaxationWithRootPackage.INCOME_DETAIL__IS_CONTRIBUTING_CNS:
484 setIs_contributing_CNS(IS_CONTRIBUTING_CNS_EDEFAULT);
485 return;
486 case TaxationWithRootPackage.INCOME_DETAIL__ID5:
487 setId5(ID5_EDEFAULT);
488 return;
489 case TaxationWithRootPackage.INCOME_DETAIL__INCOME:
490 setIncome((Income)null);
491 return;
492 }
493 super.eUnset(featureID);
494 }
495
496 /**
497 * <!-- begin-user-doc -->
498 * <!-- end-user-doc -->
499 * @generated
500 */
501 @Override
502 public boolean eIsSet(int featureID) {
503 switch (featureID) {
504 case TaxationWithRootPackage.INCOME_DETAIL__AMOUNT:
505 return amount != AMOUNT_EDEFAULT;
506 case TaxationWithRootPackage.INCOME_DETAIL__IS_WORKED:
507 return is_worked != IS_WORKED_EDEFAULT;
508 case TaxationWithRootPackage.INCOME_DETAIL__DISTANCE:
509 return distance != DISTANCE_EDEFAULT;
510 case TaxationWithRootPackage.INCOME_DETAIL__WORKED_DAYS:
511 return worked_days != WORKED_DAYS_EDEFAULT;
512 case TaxationWithRootPackage.INCOME_DETAIL__IS_CONTRIBUTING_CNS:
513 return is_contributing_CNS != IS_CONTRIBUTING_CNS_EDEFAULT;
514 case TaxationWithRootPackage.INCOME_DETAIL__ID5:
515 return ID5_EDEFAULT == null ? id5 != null : !ID5_EDEFAULT.equals(id5);
516 case TaxationWithRootPackage.INCOME_DETAIL__INCOME:
517 return getIncome() != null;
518 }
519 return super.eIsSet(featureID);
520 }
521
522 /**
523 * <!-- begin-user-doc -->
524 * <!-- end-user-doc -->
525 * @generated
526 */
527 @Override
528 public String toString() {
529 if (eIsProxy()) return super.toString();
530
531 StringBuilder result = new StringBuilder(super.toString());
532 result.append(" (amount: ");
533 result.append(amount);
534 result.append(", is_worked: ");
535 result.append(is_worked);
536 result.append(", distance: ");
537 result.append(distance);
538 result.append(", worked_days: ");
539 result.append(worked_days);
540 result.append(", is_contributing_CNS: ");
541 result.append(is_contributing_CNS);
542 result.append(", id5: ");
543 result.append(id5);
544 result.append(')');
545 return result.toString();
546 }
547
548} //Income_DetailImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Income_TaxImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Income_TaxImpl.java
new file mode 100644
index 00000000..58619bc1
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Income_TaxImpl.java
@@ -0,0 +1,341 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Income_Tax;
6import TaxationWithRoot.Tax_Payer;
7import TaxationWithRoot.TaxationWithRootPackage;
8
9import org.eclipse.emf.common.notify.Notification;
10
11import org.eclipse.emf.ecore.EClass;
12import org.eclipse.emf.ecore.InternalEObject;
13
14import org.eclipse.emf.ecore.impl.ENotificationImpl;
15import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
16
17/**
18 * <!-- begin-user-doc -->
19 * An implementation of the model object '<em><b>Income Tax</b></em>'.
20 * <!-- end-user-doc -->
21 * <p>
22 * The following features are implemented:
23 * </p>
24 * <ul>
25 * <li>{@link TaxationWithRoot.impl.Income_TaxImpl#getTaxPayer <em>Tax Payer</em>}</li>
26 * <li>{@link TaxationWithRoot.impl.Income_TaxImpl#getTax_amount <em>Tax amount</em>}</li>
27 * <li>{@link TaxationWithRoot.impl.Income_TaxImpl#getTax_year <em>Tax year</em>}</li>
28 * <li>{@link TaxationWithRoot.impl.Income_TaxImpl#getId6 <em>Id6</em>}</li>
29 * </ul>
30 *
31 * @generated
32 */
33public class Income_TaxImpl extends MinimalEObjectImpl.Container implements Income_Tax {
34 /**
35 * The cached value of the '{@link #getTaxPayer() <em>Tax Payer</em>}' reference.
36 * <!-- begin-user-doc -->
37 * <!-- end-user-doc -->
38 * @see #getTaxPayer()
39 * @generated
40 * @ordered
41 */
42 protected Tax_Payer taxPayer;
43
44 /**
45 * The default value of the '{@link #getTax_amount() <em>Tax amount</em>}' attribute.
46 * <!-- begin-user-doc -->
47 * <!-- end-user-doc -->
48 * @see #getTax_amount()
49 * @generated
50 * @ordered
51 */
52 protected static final double TAX_AMOUNT_EDEFAULT = 0.0;
53
54 /**
55 * The cached value of the '{@link #getTax_amount() <em>Tax amount</em>}' attribute.
56 * <!-- begin-user-doc -->
57 * <!-- end-user-doc -->
58 * @see #getTax_amount()
59 * @generated
60 * @ordered
61 */
62 protected double tax_amount = TAX_AMOUNT_EDEFAULT;
63
64 /**
65 * The default value of the '{@link #getTax_year() <em>Tax year</em>}' attribute.
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @see #getTax_year()
69 * @generated
70 * @ordered
71 */
72 protected static final int TAX_YEAR_EDEFAULT = 0;
73
74 /**
75 * The cached value of the '{@link #getTax_year() <em>Tax year</em>}' attribute.
76 * <!-- begin-user-doc -->
77 * <!-- end-user-doc -->
78 * @see #getTax_year()
79 * @generated
80 * @ordered
81 */
82 protected int tax_year = TAX_YEAR_EDEFAULT;
83
84 /**
85 * The default value of the '{@link #getId6() <em>Id6</em>}' attribute.
86 * <!-- begin-user-doc -->
87 * <!-- end-user-doc -->
88 * @see #getId6()
89 * @generated
90 * @ordered
91 */
92 protected static final String ID6_EDEFAULT = null;
93
94 /**
95 * The cached value of the '{@link #getId6() <em>Id6</em>}' attribute.
96 * <!-- begin-user-doc -->
97 * <!-- end-user-doc -->
98 * @see #getId6()
99 * @generated
100 * @ordered
101 */
102 protected String id6 = ID6_EDEFAULT;
103
104 /**
105 * <!-- begin-user-doc -->
106 * <!-- end-user-doc -->
107 * @generated
108 */
109 protected Income_TaxImpl() {
110 super();
111 }
112
113 /**
114 * <!-- begin-user-doc -->
115 * <!-- end-user-doc -->
116 * @generated
117 */
118 @Override
119 protected EClass eStaticClass() {
120 return TaxationWithRootPackage.Literals.INCOME_TAX;
121 }
122
123 /**
124 * <!-- begin-user-doc -->
125 * <!-- end-user-doc -->
126 * @generated
127 */
128 @Override
129 public Tax_Payer getTaxPayer() {
130 if (taxPayer != null && taxPayer.eIsProxy()) {
131 InternalEObject oldTaxPayer = (InternalEObject)taxPayer;
132 taxPayer = (Tax_Payer)eResolveProxy(oldTaxPayer);
133 if (taxPayer != oldTaxPayer) {
134 if (eNotificationRequired())
135 eNotify(new ENotificationImpl(this, Notification.RESOLVE, TaxationWithRootPackage.INCOME_TAX__TAX_PAYER, oldTaxPayer, taxPayer));
136 }
137 }
138 return taxPayer;
139 }
140
141 /**
142 * <!-- begin-user-doc -->
143 * <!-- end-user-doc -->
144 * @generated
145 */
146 public Tax_Payer basicGetTaxPayer() {
147 return taxPayer;
148 }
149
150 /**
151 * <!-- begin-user-doc -->
152 * <!-- end-user-doc -->
153 * @generated
154 */
155 @Override
156 public void setTaxPayer(Tax_Payer newTaxPayer) {
157 Tax_Payer oldTaxPayer = taxPayer;
158 taxPayer = newTaxPayer;
159 if (eNotificationRequired())
160 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME_TAX__TAX_PAYER, oldTaxPayer, taxPayer));
161 }
162
163 /**
164 * <!-- begin-user-doc -->
165 * <!-- end-user-doc -->
166 * @generated
167 */
168 @Override
169 public double getTax_amount() {
170 return tax_amount;
171 }
172
173 /**
174 * <!-- begin-user-doc -->
175 * <!-- end-user-doc -->
176 * @generated
177 */
178 @Override
179 public void setTax_amount(double newTax_amount) {
180 double oldTax_amount = tax_amount;
181 tax_amount = newTax_amount;
182 if (eNotificationRequired())
183 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME_TAX__TAX_AMOUNT, oldTax_amount, tax_amount));
184 }
185
186 /**
187 * <!-- begin-user-doc -->
188 * <!-- end-user-doc -->
189 * @generated
190 */
191 @Override
192 public int getTax_year() {
193 return tax_year;
194 }
195
196 /**
197 * <!-- begin-user-doc -->
198 * <!-- end-user-doc -->
199 * @generated
200 */
201 @Override
202 public void setTax_year(int newTax_year) {
203 int oldTax_year = tax_year;
204 tax_year = newTax_year;
205 if (eNotificationRequired())
206 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME_TAX__TAX_YEAR, oldTax_year, tax_year));
207 }
208
209 /**
210 * <!-- begin-user-doc -->
211 * <!-- end-user-doc -->
212 * @generated
213 */
214 @Override
215 public String getId6() {
216 return id6;
217 }
218
219 /**
220 * <!-- begin-user-doc -->
221 * <!-- end-user-doc -->
222 * @generated
223 */
224 @Override
225 public void setId6(String newId6) {
226 String oldId6 = id6;
227 id6 = newId6;
228 if (eNotificationRequired())
229 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME_TAX__ID6, oldId6, id6));
230 }
231
232 /**
233 * <!-- begin-user-doc -->
234 * <!-- end-user-doc -->
235 * @generated
236 */
237 @Override
238 public Object eGet(int featureID, boolean resolve, boolean coreType) {
239 switch (featureID) {
240 case TaxationWithRootPackage.INCOME_TAX__TAX_PAYER:
241 if (resolve) return getTaxPayer();
242 return basicGetTaxPayer();
243 case TaxationWithRootPackage.INCOME_TAX__TAX_AMOUNT:
244 return getTax_amount();
245 case TaxationWithRootPackage.INCOME_TAX__TAX_YEAR:
246 return getTax_year();
247 case TaxationWithRootPackage.INCOME_TAX__ID6:
248 return getId6();
249 }
250 return super.eGet(featureID, resolve, coreType);
251 }
252
253 /**
254 * <!-- begin-user-doc -->
255 * <!-- end-user-doc -->
256 * @generated
257 */
258 @Override
259 public void eSet(int featureID, Object newValue) {
260 switch (featureID) {
261 case TaxationWithRootPackage.INCOME_TAX__TAX_PAYER:
262 setTaxPayer((Tax_Payer)newValue);
263 return;
264 case TaxationWithRootPackage.INCOME_TAX__TAX_AMOUNT:
265 setTax_amount((Double)newValue);
266 return;
267 case TaxationWithRootPackage.INCOME_TAX__TAX_YEAR:
268 setTax_year((Integer)newValue);
269 return;
270 case TaxationWithRootPackage.INCOME_TAX__ID6:
271 setId6((String)newValue);
272 return;
273 }
274 super.eSet(featureID, newValue);
275 }
276
277 /**
278 * <!-- begin-user-doc -->
279 * <!-- end-user-doc -->
280 * @generated
281 */
282 @Override
283 public void eUnset(int featureID) {
284 switch (featureID) {
285 case TaxationWithRootPackage.INCOME_TAX__TAX_PAYER:
286 setTaxPayer((Tax_Payer)null);
287 return;
288 case TaxationWithRootPackage.INCOME_TAX__TAX_AMOUNT:
289 setTax_amount(TAX_AMOUNT_EDEFAULT);
290 return;
291 case TaxationWithRootPackage.INCOME_TAX__TAX_YEAR:
292 setTax_year(TAX_YEAR_EDEFAULT);
293 return;
294 case TaxationWithRootPackage.INCOME_TAX__ID6:
295 setId6(ID6_EDEFAULT);
296 return;
297 }
298 super.eUnset(featureID);
299 }
300
301 /**
302 * <!-- begin-user-doc -->
303 * <!-- end-user-doc -->
304 * @generated
305 */
306 @Override
307 public boolean eIsSet(int featureID) {
308 switch (featureID) {
309 case TaxationWithRootPackage.INCOME_TAX__TAX_PAYER:
310 return taxPayer != null;
311 case TaxationWithRootPackage.INCOME_TAX__TAX_AMOUNT:
312 return tax_amount != TAX_AMOUNT_EDEFAULT;
313 case TaxationWithRootPackage.INCOME_TAX__TAX_YEAR:
314 return tax_year != TAX_YEAR_EDEFAULT;
315 case TaxationWithRootPackage.INCOME_TAX__ID6:
316 return ID6_EDEFAULT == null ? id6 != null : !ID6_EDEFAULT.equals(id6);
317 }
318 return super.eIsSet(featureID);
319 }
320
321 /**
322 * <!-- begin-user-doc -->
323 * <!-- end-user-doc -->
324 * @generated
325 */
326 @Override
327 public String toString() {
328 if (eIsProxy()) return super.toString();
329
330 StringBuilder result = new StringBuilder(super.toString());
331 result.append(" (tax_amount: ");
332 result.append(tax_amount);
333 result.append(", tax_year: ");
334 result.append(tax_year);
335 result.append(", id6: ");
336 result.append(id6);
337 result.append(')');
338 return result.toString();
339 }
340
341} //Income_TaxImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Income_Tax_CreditImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Income_Tax_CreditImpl.java
new file mode 100644
index 00000000..4e7a317a
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Income_Tax_CreditImpl.java
@@ -0,0 +1,626 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Grantor;
6import TaxationWithRoot.Income_Tax_Credit;
7import TaxationWithRoot.Tax_Card;
8import TaxationWithRoot.Tax_Payer;
9import TaxationWithRoot.TaxationWithRootPackage;
10
11import org.eclipse.emf.common.notify.Notification;
12import org.eclipse.emf.common.notify.NotificationChain;
13
14import org.eclipse.emf.ecore.EClass;
15import org.eclipse.emf.ecore.InternalEObject;
16
17import org.eclipse.emf.ecore.impl.ENotificationImpl;
18import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
19
20/**
21 * <!-- begin-user-doc -->
22 * An implementation of the model object '<em><b>Income Tax Credit</b></em>'.
23 * <!-- end-user-doc -->
24 * <p>
25 * The following features are implemented:
26 * </p>
27 * <ul>
28 * <li>{@link TaxationWithRoot.impl.Income_Tax_CreditImpl#getGrantedBy <em>Granted By</em>}</li>
29 * <li>{@link TaxationWithRoot.impl.Income_Tax_CreditImpl#getTaxPayer <em>Tax Payer</em>}</li>
30 * <li>{@link TaxationWithRoot.impl.Income_Tax_CreditImpl#getTax_year <em>Tax year</em>}</li>
31 * <li>{@link TaxationWithRoot.impl.Income_Tax_CreditImpl#getYearly <em>Yearly</em>}</li>
32 * <li>{@link TaxationWithRoot.impl.Income_Tax_CreditImpl#getMonthly <em>Monthly</em>}</li>
33 * <li>{@link TaxationWithRoot.impl.Income_Tax_CreditImpl#getDaily <em>Daily</em>}</li>
34 * <li>{@link TaxationWithRoot.impl.Income_Tax_CreditImpl#getId7 <em>Id7</em>}</li>
35 * <li>{@link TaxationWithRoot.impl.Income_Tax_CreditImpl#getTaxation_Frame <em>Taxation Frame</em>}</li>
36 * </ul>
37 *
38 * @generated
39 */
40public class Income_Tax_CreditImpl extends MinimalEObjectImpl.Container implements Income_Tax_Credit {
41 /**
42 * The default value of the '{@link #getGrantedBy() <em>Granted By</em>}' attribute.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #getGrantedBy()
46 * @generated
47 * @ordered
48 */
49 protected static final Grantor GRANTED_BY_EDEFAULT = Grantor.WWW;
50
51 /**
52 * The cached value of the '{@link #getGrantedBy() <em>Granted By</em>}' attribute.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #getGrantedBy()
56 * @generated
57 * @ordered
58 */
59 protected Grantor grantedBy = GRANTED_BY_EDEFAULT;
60
61 /**
62 * The cached value of the '{@link #getTaxPayer() <em>Tax Payer</em>}' reference.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @see #getTaxPayer()
66 * @generated
67 * @ordered
68 */
69 protected Tax_Payer taxPayer;
70
71 /**
72 * The default value of the '{@link #getTax_year() <em>Tax year</em>}' attribute.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @see #getTax_year()
76 * @generated
77 * @ordered
78 */
79 protected static final int TAX_YEAR_EDEFAULT = 0;
80
81 /**
82 * The cached value of the '{@link #getTax_year() <em>Tax year</em>}' attribute.
83 * <!-- begin-user-doc -->
84 * <!-- end-user-doc -->
85 * @see #getTax_year()
86 * @generated
87 * @ordered
88 */
89 protected int tax_year = TAX_YEAR_EDEFAULT;
90
91 /**
92 * The default value of the '{@link #getYearly() <em>Yearly</em>}' attribute.
93 * <!-- begin-user-doc -->
94 * <!-- end-user-doc -->
95 * @see #getYearly()
96 * @generated
97 * @ordered
98 */
99 protected static final double YEARLY_EDEFAULT = 300.0;
100
101 /**
102 * The cached value of the '{@link #getYearly() <em>Yearly</em>}' attribute.
103 * <!-- begin-user-doc -->
104 * <!-- end-user-doc -->
105 * @see #getYearly()
106 * @generated
107 * @ordered
108 */
109 protected double yearly = YEARLY_EDEFAULT;
110
111 /**
112 * The default value of the '{@link #getMonthly() <em>Monthly</em>}' attribute.
113 * <!-- begin-user-doc -->
114 * <!-- end-user-doc -->
115 * @see #getMonthly()
116 * @generated
117 * @ordered
118 */
119 protected static final double MONTHLY_EDEFAULT = 25.0;
120
121 /**
122 * The cached value of the '{@link #getMonthly() <em>Monthly</em>}' attribute.
123 * <!-- begin-user-doc -->
124 * <!-- end-user-doc -->
125 * @see #getMonthly()
126 * @generated
127 * @ordered
128 */
129 protected double monthly = MONTHLY_EDEFAULT;
130
131 /**
132 * The default value of the '{@link #getDaily() <em>Daily</em>}' attribute.
133 * <!-- begin-user-doc -->
134 * <!-- end-user-doc -->
135 * @see #getDaily()
136 * @generated
137 * @ordered
138 */
139 protected static final double DAILY_EDEFAULT = 1.0;
140
141 /**
142 * The cached value of the '{@link #getDaily() <em>Daily</em>}' attribute.
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @see #getDaily()
146 * @generated
147 * @ordered
148 */
149 protected double daily = DAILY_EDEFAULT;
150
151 /**
152 * The default value of the '{@link #getId7() <em>Id7</em>}' attribute.
153 * <!-- begin-user-doc -->
154 * <!-- end-user-doc -->
155 * @see #getId7()
156 * @generated
157 * @ordered
158 */
159 protected static final String ID7_EDEFAULT = null;
160
161 /**
162 * The cached value of the '{@link #getId7() <em>Id7</em>}' attribute.
163 * <!-- begin-user-doc -->
164 * <!-- end-user-doc -->
165 * @see #getId7()
166 * @generated
167 * @ordered
168 */
169 protected String id7 = ID7_EDEFAULT;
170
171 /**
172 * The cached value of the '{@link #getTaxation_Frame() <em>Taxation Frame</em>}' reference.
173 * <!-- begin-user-doc -->
174 * <!-- end-user-doc -->
175 * @see #getTaxation_Frame()
176 * @generated
177 * @ordered
178 */
179 protected Tax_Card taxation_Frame;
180
181 /**
182 * <!-- begin-user-doc -->
183 * <!-- end-user-doc -->
184 * @generated
185 */
186 protected Income_Tax_CreditImpl() {
187 super();
188 }
189
190 /**
191 * <!-- begin-user-doc -->
192 * <!-- end-user-doc -->
193 * @generated
194 */
195 @Override
196 protected EClass eStaticClass() {
197 return TaxationWithRootPackage.Literals.INCOME_TAX_CREDIT;
198 }
199
200 /**
201 * <!-- begin-user-doc -->
202 * <!-- end-user-doc -->
203 * @generated
204 */
205 @Override
206 public Grantor getGrantedBy() {
207 return grantedBy;
208 }
209
210 /**
211 * <!-- begin-user-doc -->
212 * <!-- end-user-doc -->
213 * @generated
214 */
215 @Override
216 public void setGrantedBy(Grantor newGrantedBy) {
217 Grantor oldGrantedBy = grantedBy;
218 grantedBy = newGrantedBy == null ? GRANTED_BY_EDEFAULT : newGrantedBy;
219 if (eNotificationRequired())
220 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME_TAX_CREDIT__GRANTED_BY, oldGrantedBy, grantedBy));
221 }
222
223 /**
224 * <!-- begin-user-doc -->
225 * <!-- end-user-doc -->
226 * @generated
227 */
228 @Override
229 public Tax_Payer getTaxPayer() {
230 if (taxPayer != null && taxPayer.eIsProxy()) {
231 InternalEObject oldTaxPayer = (InternalEObject)taxPayer;
232 taxPayer = (Tax_Payer)eResolveProxy(oldTaxPayer);
233 if (taxPayer != oldTaxPayer) {
234 if (eNotificationRequired())
235 eNotify(new ENotificationImpl(this, Notification.RESOLVE, TaxationWithRootPackage.INCOME_TAX_CREDIT__TAX_PAYER, oldTaxPayer, taxPayer));
236 }
237 }
238 return taxPayer;
239 }
240
241 /**
242 * <!-- begin-user-doc -->
243 * <!-- end-user-doc -->
244 * @generated
245 */
246 public Tax_Payer basicGetTaxPayer() {
247 return taxPayer;
248 }
249
250 /**
251 * <!-- begin-user-doc -->
252 * <!-- end-user-doc -->
253 * @generated
254 */
255 @Override
256 public void setTaxPayer(Tax_Payer newTaxPayer) {
257 Tax_Payer oldTaxPayer = taxPayer;
258 taxPayer = newTaxPayer;
259 if (eNotificationRequired())
260 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME_TAX_CREDIT__TAX_PAYER, oldTaxPayer, taxPayer));
261 }
262
263 /**
264 * <!-- begin-user-doc -->
265 * <!-- end-user-doc -->
266 * @generated
267 */
268 @Override
269 public int getTax_year() {
270 return tax_year;
271 }
272
273 /**
274 * <!-- begin-user-doc -->
275 * <!-- end-user-doc -->
276 * @generated
277 */
278 @Override
279 public void setTax_year(int newTax_year) {
280 int oldTax_year = tax_year;
281 tax_year = newTax_year;
282 if (eNotificationRequired())
283 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME_TAX_CREDIT__TAX_YEAR, oldTax_year, tax_year));
284 }
285
286 /**
287 * <!-- begin-user-doc -->
288 * <!-- end-user-doc -->
289 * @generated
290 */
291 @Override
292 public double getYearly() {
293 return yearly;
294 }
295
296 /**
297 * <!-- begin-user-doc -->
298 * <!-- end-user-doc -->
299 * @generated
300 */
301 @Override
302 public void setYearly(double newYearly) {
303 double oldYearly = yearly;
304 yearly = newYearly;
305 if (eNotificationRequired())
306 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME_TAX_CREDIT__YEARLY, oldYearly, yearly));
307 }
308
309 /**
310 * <!-- begin-user-doc -->
311 * <!-- end-user-doc -->
312 * @generated
313 */
314 @Override
315 public double getMonthly() {
316 return monthly;
317 }
318
319 /**
320 * <!-- begin-user-doc -->
321 * <!-- end-user-doc -->
322 * @generated
323 */
324 @Override
325 public void setMonthly(double newMonthly) {
326 double oldMonthly = monthly;
327 monthly = newMonthly;
328 if (eNotificationRequired())
329 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME_TAX_CREDIT__MONTHLY, oldMonthly, monthly));
330 }
331
332 /**
333 * <!-- begin-user-doc -->
334 * <!-- end-user-doc -->
335 * @generated
336 */
337 @Override
338 public double getDaily() {
339 return daily;
340 }
341
342 /**
343 * <!-- begin-user-doc -->
344 * <!-- end-user-doc -->
345 * @generated
346 */
347 @Override
348 public void setDaily(double newDaily) {
349 double oldDaily = daily;
350 daily = newDaily;
351 if (eNotificationRequired())
352 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME_TAX_CREDIT__DAILY, oldDaily, daily));
353 }
354
355 /**
356 * <!-- begin-user-doc -->
357 * <!-- end-user-doc -->
358 * @generated
359 */
360 @Override
361 public String getId7() {
362 return id7;
363 }
364
365 /**
366 * <!-- begin-user-doc -->
367 * <!-- end-user-doc -->
368 * @generated
369 */
370 @Override
371 public void setId7(String newId7) {
372 String oldId7 = id7;
373 id7 = newId7;
374 if (eNotificationRequired())
375 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME_TAX_CREDIT__ID7, oldId7, id7));
376 }
377
378 /**
379 * <!-- begin-user-doc -->
380 * <!-- end-user-doc -->
381 * @generated
382 */
383 @Override
384 public Tax_Card getTaxation_Frame() {
385 if (taxation_Frame != null && taxation_Frame.eIsProxy()) {
386 InternalEObject oldTaxation_Frame = (InternalEObject)taxation_Frame;
387 taxation_Frame = (Tax_Card)eResolveProxy(oldTaxation_Frame);
388 if (taxation_Frame != oldTaxation_Frame) {
389 if (eNotificationRequired())
390 eNotify(new ENotificationImpl(this, Notification.RESOLVE, TaxationWithRootPackage.INCOME_TAX_CREDIT__TAXATION_FRAME, oldTaxation_Frame, taxation_Frame));
391 }
392 }
393 return taxation_Frame;
394 }
395
396 /**
397 * <!-- begin-user-doc -->
398 * <!-- end-user-doc -->
399 * @generated
400 */
401 public Tax_Card basicGetTaxation_Frame() {
402 return taxation_Frame;
403 }
404
405 /**
406 * <!-- begin-user-doc -->
407 * <!-- end-user-doc -->
408 * @generated
409 */
410 public NotificationChain basicSetTaxation_Frame(Tax_Card newTaxation_Frame, NotificationChain msgs) {
411 Tax_Card oldTaxation_Frame = taxation_Frame;
412 taxation_Frame = newTaxation_Frame;
413 if (eNotificationRequired()) {
414 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME_TAX_CREDIT__TAXATION_FRAME, oldTaxation_Frame, newTaxation_Frame);
415 if (msgs == null) msgs = notification; else msgs.add(notification);
416 }
417 return msgs;
418 }
419
420 /**
421 * <!-- begin-user-doc -->
422 * <!-- end-user-doc -->
423 * @generated
424 */
425 @Override
426 public void setTaxation_Frame(Tax_Card newTaxation_Frame) {
427 if (newTaxation_Frame != taxation_Frame) {
428 NotificationChain msgs = null;
429 if (taxation_Frame != null)
430 msgs = ((InternalEObject)taxation_Frame).eInverseRemove(this, TaxationWithRootPackage.TAX_CARD__INCOME_TAX_CREDIT, Tax_Card.class, msgs);
431 if (newTaxation_Frame != null)
432 msgs = ((InternalEObject)newTaxation_Frame).eInverseAdd(this, TaxationWithRootPackage.TAX_CARD__INCOME_TAX_CREDIT, Tax_Card.class, msgs);
433 msgs = basicSetTaxation_Frame(newTaxation_Frame, msgs);
434 if (msgs != null) msgs.dispatch();
435 }
436 else if (eNotificationRequired())
437 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME_TAX_CREDIT__TAXATION_FRAME, newTaxation_Frame, newTaxation_Frame));
438 }
439
440 /**
441 * <!-- begin-user-doc -->
442 * <!-- end-user-doc -->
443 * @generated
444 */
445 @Override
446 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
447 switch (featureID) {
448 case TaxationWithRootPackage.INCOME_TAX_CREDIT__TAXATION_FRAME:
449 if (taxation_Frame != null)
450 msgs = ((InternalEObject)taxation_Frame).eInverseRemove(this, TaxationWithRootPackage.TAX_CARD__INCOME_TAX_CREDIT, Tax_Card.class, msgs);
451 return basicSetTaxation_Frame((Tax_Card)otherEnd, msgs);
452 }
453 return super.eInverseAdd(otherEnd, featureID, msgs);
454 }
455
456 /**
457 * <!-- begin-user-doc -->
458 * <!-- end-user-doc -->
459 * @generated
460 */
461 @Override
462 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
463 switch (featureID) {
464 case TaxationWithRootPackage.INCOME_TAX_CREDIT__TAXATION_FRAME:
465 return basicSetTaxation_Frame(null, msgs);
466 }
467 return super.eInverseRemove(otherEnd, featureID, msgs);
468 }
469
470 /**
471 * <!-- begin-user-doc -->
472 * <!-- end-user-doc -->
473 * @generated
474 */
475 @Override
476 public Object eGet(int featureID, boolean resolve, boolean coreType) {
477 switch (featureID) {
478 case TaxationWithRootPackage.INCOME_TAX_CREDIT__GRANTED_BY:
479 return getGrantedBy();
480 case TaxationWithRootPackage.INCOME_TAX_CREDIT__TAX_PAYER:
481 if (resolve) return getTaxPayer();
482 return basicGetTaxPayer();
483 case TaxationWithRootPackage.INCOME_TAX_CREDIT__TAX_YEAR:
484 return getTax_year();
485 case TaxationWithRootPackage.INCOME_TAX_CREDIT__YEARLY:
486 return getYearly();
487 case TaxationWithRootPackage.INCOME_TAX_CREDIT__MONTHLY:
488 return getMonthly();
489 case TaxationWithRootPackage.INCOME_TAX_CREDIT__DAILY:
490 return getDaily();
491 case TaxationWithRootPackage.INCOME_TAX_CREDIT__ID7:
492 return getId7();
493 case TaxationWithRootPackage.INCOME_TAX_CREDIT__TAXATION_FRAME:
494 if (resolve) return getTaxation_Frame();
495 return basicGetTaxation_Frame();
496 }
497 return super.eGet(featureID, resolve, coreType);
498 }
499
500 /**
501 * <!-- begin-user-doc -->
502 * <!-- end-user-doc -->
503 * @generated
504 */
505 @Override
506 public void eSet(int featureID, Object newValue) {
507 switch (featureID) {
508 case TaxationWithRootPackage.INCOME_TAX_CREDIT__GRANTED_BY:
509 setGrantedBy((Grantor)newValue);
510 return;
511 case TaxationWithRootPackage.INCOME_TAX_CREDIT__TAX_PAYER:
512 setTaxPayer((Tax_Payer)newValue);
513 return;
514 case TaxationWithRootPackage.INCOME_TAX_CREDIT__TAX_YEAR:
515 setTax_year((Integer)newValue);
516 return;
517 case TaxationWithRootPackage.INCOME_TAX_CREDIT__YEARLY:
518 setYearly((Double)newValue);
519 return;
520 case TaxationWithRootPackage.INCOME_TAX_CREDIT__MONTHLY:
521 setMonthly((Double)newValue);
522 return;
523 case TaxationWithRootPackage.INCOME_TAX_CREDIT__DAILY:
524 setDaily((Double)newValue);
525 return;
526 case TaxationWithRootPackage.INCOME_TAX_CREDIT__ID7:
527 setId7((String)newValue);
528 return;
529 case TaxationWithRootPackage.INCOME_TAX_CREDIT__TAXATION_FRAME:
530 setTaxation_Frame((Tax_Card)newValue);
531 return;
532 }
533 super.eSet(featureID, newValue);
534 }
535
536 /**
537 * <!-- begin-user-doc -->
538 * <!-- end-user-doc -->
539 * @generated
540 */
541 @Override
542 public void eUnset(int featureID) {
543 switch (featureID) {
544 case TaxationWithRootPackage.INCOME_TAX_CREDIT__GRANTED_BY:
545 setGrantedBy(GRANTED_BY_EDEFAULT);
546 return;
547 case TaxationWithRootPackage.INCOME_TAX_CREDIT__TAX_PAYER:
548 setTaxPayer((Tax_Payer)null);
549 return;
550 case TaxationWithRootPackage.INCOME_TAX_CREDIT__TAX_YEAR:
551 setTax_year(TAX_YEAR_EDEFAULT);
552 return;
553 case TaxationWithRootPackage.INCOME_TAX_CREDIT__YEARLY:
554 setYearly(YEARLY_EDEFAULT);
555 return;
556 case TaxationWithRootPackage.INCOME_TAX_CREDIT__MONTHLY:
557 setMonthly(MONTHLY_EDEFAULT);
558 return;
559 case TaxationWithRootPackage.INCOME_TAX_CREDIT__DAILY:
560 setDaily(DAILY_EDEFAULT);
561 return;
562 case TaxationWithRootPackage.INCOME_TAX_CREDIT__ID7:
563 setId7(ID7_EDEFAULT);
564 return;
565 case TaxationWithRootPackage.INCOME_TAX_CREDIT__TAXATION_FRAME:
566 setTaxation_Frame((Tax_Card)null);
567 return;
568 }
569 super.eUnset(featureID);
570 }
571
572 /**
573 * <!-- begin-user-doc -->
574 * <!-- end-user-doc -->
575 * @generated
576 */
577 @Override
578 public boolean eIsSet(int featureID) {
579 switch (featureID) {
580 case TaxationWithRootPackage.INCOME_TAX_CREDIT__GRANTED_BY:
581 return grantedBy != GRANTED_BY_EDEFAULT;
582 case TaxationWithRootPackage.INCOME_TAX_CREDIT__TAX_PAYER:
583 return taxPayer != null;
584 case TaxationWithRootPackage.INCOME_TAX_CREDIT__TAX_YEAR:
585 return tax_year != TAX_YEAR_EDEFAULT;
586 case TaxationWithRootPackage.INCOME_TAX_CREDIT__YEARLY:
587 return yearly != YEARLY_EDEFAULT;
588 case TaxationWithRootPackage.INCOME_TAX_CREDIT__MONTHLY:
589 return monthly != MONTHLY_EDEFAULT;
590 case TaxationWithRootPackage.INCOME_TAX_CREDIT__DAILY:
591 return daily != DAILY_EDEFAULT;
592 case TaxationWithRootPackage.INCOME_TAX_CREDIT__ID7:
593 return ID7_EDEFAULT == null ? id7 != null : !ID7_EDEFAULT.equals(id7);
594 case TaxationWithRootPackage.INCOME_TAX_CREDIT__TAXATION_FRAME:
595 return taxation_Frame != null;
596 }
597 return super.eIsSet(featureID);
598 }
599
600 /**
601 * <!-- begin-user-doc -->
602 * <!-- end-user-doc -->
603 * @generated
604 */
605 @Override
606 public String toString() {
607 if (eIsProxy()) return super.toString();
608
609 StringBuilder result = new StringBuilder(super.toString());
610 result.append(" (grantedBy: ");
611 result.append(grantedBy);
612 result.append(", tax_year: ");
613 result.append(tax_year);
614 result.append(", yearly: ");
615 result.append(yearly);
616 result.append(", monthly: ");
617 result.append(monthly);
618 result.append(", daily: ");
619 result.append(daily);
620 result.append(", id7: ");
621 result.append(id7);
622 result.append(')');
623 return result.toString();
624 }
625
626} //Income_Tax_CreditImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Income_TypeImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Income_TypeImpl.java
new file mode 100644
index 00000000..c3411b34
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Income_TypeImpl.java
@@ -0,0 +1,268 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Income;
6import TaxationWithRoot.Income_Type;
7import TaxationWithRoot.TaxationWithRootPackage;
8
9import org.eclipse.emf.common.notify.Notification;
10import org.eclipse.emf.common.notify.NotificationChain;
11
12import org.eclipse.emf.ecore.EClass;
13import org.eclipse.emf.ecore.InternalEObject;
14
15import org.eclipse.emf.ecore.impl.ENotificationImpl;
16import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
17
18import org.eclipse.emf.ecore.util.EcoreUtil;
19
20/**
21 * <!-- begin-user-doc -->
22 * An implementation of the model object '<em><b>Income Type</b></em>'.
23 * <!-- end-user-doc -->
24 * <p>
25 * The following features are implemented:
26 * </p>
27 * <ul>
28 * <li>{@link TaxationWithRoot.impl.Income_TypeImpl#getId8 <em>Id8</em>}</li>
29 * <li>{@link TaxationWithRoot.impl.Income_TypeImpl#getIncome <em>Income</em>}</li>
30 * </ul>
31 *
32 * @generated
33 */
34public abstract class Income_TypeImpl extends MinimalEObjectImpl.Container implements Income_Type {
35 /**
36 * The default value of the '{@link #getId8() <em>Id8</em>}' attribute.
37 * <!-- begin-user-doc -->
38 * <!-- end-user-doc -->
39 * @see #getId8()
40 * @generated
41 * @ordered
42 */
43 protected static final String ID8_EDEFAULT = null;
44
45 /**
46 * The cached value of the '{@link #getId8() <em>Id8</em>}' attribute.
47 * <!-- begin-user-doc -->
48 * <!-- end-user-doc -->
49 * @see #getId8()
50 * @generated
51 * @ordered
52 */
53 protected String id8 = ID8_EDEFAULT;
54
55 /**
56 * <!-- begin-user-doc -->
57 * <!-- end-user-doc -->
58 * @generated
59 */
60 protected Income_TypeImpl() {
61 super();
62 }
63
64 /**
65 * <!-- begin-user-doc -->
66 * <!-- end-user-doc -->
67 * @generated
68 */
69 @Override
70 protected EClass eStaticClass() {
71 return TaxationWithRootPackage.Literals.INCOME_TYPE;
72 }
73
74 /**
75 * <!-- begin-user-doc -->
76 * <!-- end-user-doc -->
77 * @generated
78 */
79 @Override
80 public String getId8() {
81 return id8;
82 }
83
84 /**
85 * <!-- begin-user-doc -->
86 * <!-- end-user-doc -->
87 * @generated
88 */
89 @Override
90 public void setId8(String newId8) {
91 String oldId8 = id8;
92 id8 = newId8;
93 if (eNotificationRequired())
94 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME_TYPE__ID8, oldId8, id8));
95 }
96
97 /**
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @generated
101 */
102 @Override
103 public Income getIncome() {
104 if (eContainerFeatureID() != TaxationWithRootPackage.INCOME_TYPE__INCOME) return null;
105 return (Income)eInternalContainer();
106 }
107
108 /**
109 * <!-- begin-user-doc -->
110 * <!-- end-user-doc -->
111 * @generated
112 */
113 public NotificationChain basicSetIncome(Income newIncome, NotificationChain msgs) {
114 msgs = eBasicSetContainer((InternalEObject)newIncome, TaxationWithRootPackage.INCOME_TYPE__INCOME, msgs);
115 return msgs;
116 }
117
118 /**
119 * <!-- begin-user-doc -->
120 * <!-- end-user-doc -->
121 * @generated
122 */
123 @Override
124 public void setIncome(Income newIncome) {
125 if (newIncome != eInternalContainer() || (eContainerFeatureID() != TaxationWithRootPackage.INCOME_TYPE__INCOME && newIncome != null)) {
126 if (EcoreUtil.isAncestor(this, newIncome))
127 throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
128 NotificationChain msgs = null;
129 if (eInternalContainer() != null)
130 msgs = eBasicRemoveFromContainer(msgs);
131 if (newIncome != null)
132 msgs = ((InternalEObject)newIncome).eInverseAdd(this, TaxationWithRootPackage.INCOME__INCOME_TYPE, Income.class, msgs);
133 msgs = basicSetIncome(newIncome, msgs);
134 if (msgs != null) msgs.dispatch();
135 }
136 else if (eNotificationRequired())
137 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.INCOME_TYPE__INCOME, newIncome, newIncome));
138 }
139
140 /**
141 * <!-- begin-user-doc -->
142 * <!-- end-user-doc -->
143 * @generated
144 */
145 @Override
146 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
147 switch (featureID) {
148 case TaxationWithRootPackage.INCOME_TYPE__INCOME:
149 if (eInternalContainer() != null)
150 msgs = eBasicRemoveFromContainer(msgs);
151 return basicSetIncome((Income)otherEnd, msgs);
152 }
153 return super.eInverseAdd(otherEnd, featureID, msgs);
154 }
155
156 /**
157 * <!-- begin-user-doc -->
158 * <!-- end-user-doc -->
159 * @generated
160 */
161 @Override
162 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
163 switch (featureID) {
164 case TaxationWithRootPackage.INCOME_TYPE__INCOME:
165 return basicSetIncome(null, msgs);
166 }
167 return super.eInverseRemove(otherEnd, featureID, msgs);
168 }
169
170 /**
171 * <!-- begin-user-doc -->
172 * <!-- end-user-doc -->
173 * @generated
174 */
175 @Override
176 public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
177 switch (eContainerFeatureID()) {
178 case TaxationWithRootPackage.INCOME_TYPE__INCOME:
179 return eInternalContainer().eInverseRemove(this, TaxationWithRootPackage.INCOME__INCOME_TYPE, Income.class, msgs);
180 }
181 return super.eBasicRemoveFromContainerFeature(msgs);
182 }
183
184 /**
185 * <!-- begin-user-doc -->
186 * <!-- end-user-doc -->
187 * @generated
188 */
189 @Override
190 public Object eGet(int featureID, boolean resolve, boolean coreType) {
191 switch (featureID) {
192 case TaxationWithRootPackage.INCOME_TYPE__ID8:
193 return getId8();
194 case TaxationWithRootPackage.INCOME_TYPE__INCOME:
195 return getIncome();
196 }
197 return super.eGet(featureID, resolve, coreType);
198 }
199
200 /**
201 * <!-- begin-user-doc -->
202 * <!-- end-user-doc -->
203 * @generated
204 */
205 @Override
206 public void eSet(int featureID, Object newValue) {
207 switch (featureID) {
208 case TaxationWithRootPackage.INCOME_TYPE__ID8:
209 setId8((String)newValue);
210 return;
211 case TaxationWithRootPackage.INCOME_TYPE__INCOME:
212 setIncome((Income)newValue);
213 return;
214 }
215 super.eSet(featureID, newValue);
216 }
217
218 /**
219 * <!-- begin-user-doc -->
220 * <!-- end-user-doc -->
221 * @generated
222 */
223 @Override
224 public void eUnset(int featureID) {
225 switch (featureID) {
226 case TaxationWithRootPackage.INCOME_TYPE__ID8:
227 setId8(ID8_EDEFAULT);
228 return;
229 case TaxationWithRootPackage.INCOME_TYPE__INCOME:
230 setIncome((Income)null);
231 return;
232 }
233 super.eUnset(featureID);
234 }
235
236 /**
237 * <!-- begin-user-doc -->
238 * <!-- end-user-doc -->
239 * @generated
240 */
241 @Override
242 public boolean eIsSet(int featureID) {
243 switch (featureID) {
244 case TaxationWithRootPackage.INCOME_TYPE__ID8:
245 return ID8_EDEFAULT == null ? id8 != null : !ID8_EDEFAULT.equals(id8);
246 case TaxationWithRootPackage.INCOME_TYPE__INCOME:
247 return getIncome() != null;
248 }
249 return super.eIsSet(featureID);
250 }
251
252 /**
253 * <!-- begin-user-doc -->
254 * <!-- end-user-doc -->
255 * @generated
256 */
257 @Override
258 public String toString() {
259 if (eIsProxy()) return super.toString();
260
261 StringBuilder result = new StringBuilder(super.toString());
262 result.append(" (id8: ");
263 result.append(id8);
264 result.append(')');
265 return result.toString();
266 }
267
268} //Income_TypeImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Interest_ExpenseImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Interest_ExpenseImpl.java
new file mode 100644
index 00000000..cc5df875
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Interest_ExpenseImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Interest_Expense;
6import TaxationWithRoot.TaxationWithRootPackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Interest Expense</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class Interest_ExpenseImpl extends Special_Expense_DSImpl implements Interest_Expense {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected Interest_ExpenseImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return TaxationWithRootPackage.Literals.INTEREST_EXPENSE;
35 }
36
37} //Interest_ExpenseImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Legal_Union_RecordImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Legal_Union_RecordImpl.java
new file mode 100644
index 00000000..90d04c90
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Legal_Union_RecordImpl.java
@@ -0,0 +1,648 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Household;
6import TaxationWithRoot.Legal_Union_Record;
7import TaxationWithRoot.Physical_Person;
8import TaxationWithRoot.Separation_Causes;
9import TaxationWithRoot.Tax_Property;
10import TaxationWithRoot.TaxationWithRootPackage;
11
12import java.util.Collection;
13
14import org.eclipse.emf.common.notify.Notification;
15import org.eclipse.emf.common.notify.NotificationChain;
16
17import org.eclipse.emf.common.util.EList;
18
19import org.eclipse.emf.ecore.EClass;
20import org.eclipse.emf.ecore.InternalEObject;
21
22import org.eclipse.emf.ecore.impl.ENotificationImpl;
23import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
24
25import org.eclipse.emf.ecore.util.EObjectContainmentEList;
26import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
27import org.eclipse.emf.ecore.util.EcoreUtil;
28import org.eclipse.emf.ecore.util.InternalEList;
29
30/**
31 * <!-- begin-user-doc -->
32 * An implementation of the model object '<em><b>Legal Union Record</b></em>'.
33 * <!-- end-user-doc -->
34 * <p>
35 * The following features are implemented:
36 * </p>
37 * <ul>
38 * <li>{@link TaxationWithRoot.impl.Legal_Union_RecordImpl#getStart_year <em>Start year</em>}</li>
39 * <li>{@link TaxationWithRoot.impl.Legal_Union_RecordImpl#getEnd_year <em>End year</em>}</li>
40 * <li>{@link TaxationWithRoot.impl.Legal_Union_RecordImpl#getSeparation_cause <em>Separation cause</em>}</li>
41 * <li>{@link TaxationWithRoot.impl.Legal_Union_RecordImpl#getIndividual_A <em>Individual A</em>}</li>
42 * <li>{@link TaxationWithRoot.impl.Legal_Union_RecordImpl#getIndividual_B <em>Individual B</em>}</li>
43 * <li>{@link TaxationWithRoot.impl.Legal_Union_RecordImpl#getProperties <em>Properties</em>}</li>
44 * <li>{@link TaxationWithRoot.impl.Legal_Union_RecordImpl#isMutual_agreement <em>Mutual agreement</em>}</li>
45 * <li>{@link TaxationWithRoot.impl.Legal_Union_RecordImpl#getId9 <em>Id9</em>}</li>
46 * <li>{@link TaxationWithRoot.impl.Legal_Union_RecordImpl#getHousehold <em>Household</em>}</li>
47 * </ul>
48 *
49 * @generated
50 */
51public abstract class Legal_Union_RecordImpl extends MinimalEObjectImpl.Container implements Legal_Union_Record {
52 /**
53 * The default value of the '{@link #getStart_year() <em>Start year</em>}' attribute.
54 * <!-- begin-user-doc -->
55 * <!-- end-user-doc -->
56 * @see #getStart_year()
57 * @generated
58 * @ordered
59 */
60 protected static final int START_YEAR_EDEFAULT = 0;
61
62 /**
63 * The cached value of the '{@link #getStart_year() <em>Start year</em>}' attribute.
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @see #getStart_year()
67 * @generated
68 * @ordered
69 */
70 protected int start_year = START_YEAR_EDEFAULT;
71
72 /**
73 * The default value of the '{@link #getEnd_year() <em>End year</em>}' attribute.
74 * <!-- begin-user-doc -->
75 * <!-- end-user-doc -->
76 * @see #getEnd_year()
77 * @generated
78 * @ordered
79 */
80 protected static final int END_YEAR_EDEFAULT = 0;
81
82 /**
83 * The cached value of the '{@link #getEnd_year() <em>End year</em>}' attribute.
84 * <!-- begin-user-doc -->
85 * <!-- end-user-doc -->
86 * @see #getEnd_year()
87 * @generated
88 * @ordered
89 */
90 protected int end_year = END_YEAR_EDEFAULT;
91
92 /**
93 * The default value of the '{@link #getSeparation_cause() <em>Separation cause</em>}' attribute.
94 * <!-- begin-user-doc -->
95 * <!-- end-user-doc -->
96 * @see #getSeparation_cause()
97 * @generated
98 * @ordered
99 */
100 protected static final Separation_Causes SEPARATION_CAUSE_EDEFAULT = Separation_Causes.NONE;
101
102 /**
103 * The cached value of the '{@link #getSeparation_cause() <em>Separation cause</em>}' attribute.
104 * <!-- begin-user-doc -->
105 * <!-- end-user-doc -->
106 * @see #getSeparation_cause()
107 * @generated
108 * @ordered
109 */
110 protected Separation_Causes separation_cause = SEPARATION_CAUSE_EDEFAULT;
111
112 /**
113 * The cached value of the '{@link #getIndividual_A() <em>Individual A</em>}' containment reference.
114 * <!-- begin-user-doc -->
115 * <!-- end-user-doc -->
116 * @see #getIndividual_A()
117 * @generated
118 * @ordered
119 */
120 protected Physical_Person individual_A;
121
122 /**
123 * The cached value of the '{@link #getIndividual_B() <em>Individual B</em>}' containment reference list.
124 * <!-- begin-user-doc -->
125 * <!-- end-user-doc -->
126 * @see #getIndividual_B()
127 * @generated
128 * @ordered
129 */
130 protected EList<Physical_Person> individual_B;
131
132 /**
133 * The cached value of the '{@link #getProperties() <em>Properties</em>}' containment reference list.
134 * <!-- begin-user-doc -->
135 * <!-- end-user-doc -->
136 * @see #getProperties()
137 * @generated
138 * @ordered
139 */
140 protected EList<Tax_Property> properties;
141
142 /**
143 * The default value of the '{@link #isMutual_agreement() <em>Mutual agreement</em>}' attribute.
144 * <!-- begin-user-doc -->
145 * <!-- end-user-doc -->
146 * @see #isMutual_agreement()
147 * @generated
148 * @ordered
149 */
150 protected static final boolean MUTUAL_AGREEMENT_EDEFAULT = false;
151
152 /**
153 * The cached value of the '{@link #isMutual_agreement() <em>Mutual agreement</em>}' attribute.
154 * <!-- begin-user-doc -->
155 * <!-- end-user-doc -->
156 * @see #isMutual_agreement()
157 * @generated
158 * @ordered
159 */
160 protected boolean mutual_agreement = MUTUAL_AGREEMENT_EDEFAULT;
161
162 /**
163 * The default value of the '{@link #getId9() <em>Id9</em>}' attribute.
164 * <!-- begin-user-doc -->
165 * <!-- end-user-doc -->
166 * @see #getId9()
167 * @generated
168 * @ordered
169 */
170 protected static final String ID9_EDEFAULT = null;
171
172 /**
173 * The cached value of the '{@link #getId9() <em>Id9</em>}' attribute.
174 * <!-- begin-user-doc -->
175 * <!-- end-user-doc -->
176 * @see #getId9()
177 * @generated
178 * @ordered
179 */
180 protected String id9 = ID9_EDEFAULT;
181
182 /**
183 * <!-- begin-user-doc -->
184 * <!-- end-user-doc -->
185 * @generated
186 */
187 protected Legal_Union_RecordImpl() {
188 super();
189 }
190
191 /**
192 * <!-- begin-user-doc -->
193 * <!-- end-user-doc -->
194 * @generated
195 */
196 @Override
197 protected EClass eStaticClass() {
198 return TaxationWithRootPackage.Literals.LEGAL_UNION_RECORD;
199 }
200
201 /**
202 * <!-- begin-user-doc -->
203 * <!-- end-user-doc -->
204 * @generated
205 */
206 @Override
207 public int getStart_year() {
208 return start_year;
209 }
210
211 /**
212 * <!-- begin-user-doc -->
213 * <!-- end-user-doc -->
214 * @generated
215 */
216 @Override
217 public void setStart_year(int newStart_year) {
218 int oldStart_year = start_year;
219 start_year = newStart_year;
220 if (eNotificationRequired())
221 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.LEGAL_UNION_RECORD__START_YEAR, oldStart_year, start_year));
222 }
223
224 /**
225 * <!-- begin-user-doc -->
226 * <!-- end-user-doc -->
227 * @generated
228 */
229 @Override
230 public int getEnd_year() {
231 return end_year;
232 }
233
234 /**
235 * <!-- begin-user-doc -->
236 * <!-- end-user-doc -->
237 * @generated
238 */
239 @Override
240 public void setEnd_year(int newEnd_year) {
241 int oldEnd_year = end_year;
242 end_year = newEnd_year;
243 if (eNotificationRequired())
244 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.LEGAL_UNION_RECORD__END_YEAR, oldEnd_year, end_year));
245 }
246
247 /**
248 * <!-- begin-user-doc -->
249 * <!-- end-user-doc -->
250 * @generated
251 */
252 @Override
253 public Separation_Causes getSeparation_cause() {
254 return separation_cause;
255 }
256
257 /**
258 * <!-- begin-user-doc -->
259 * <!-- end-user-doc -->
260 * @generated
261 */
262 @Override
263 public void setSeparation_cause(Separation_Causes newSeparation_cause) {
264 Separation_Causes oldSeparation_cause = separation_cause;
265 separation_cause = newSeparation_cause == null ? SEPARATION_CAUSE_EDEFAULT : newSeparation_cause;
266 if (eNotificationRequired())
267 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.LEGAL_UNION_RECORD__SEPARATION_CAUSE, oldSeparation_cause, separation_cause));
268 }
269
270 /**
271 * <!-- begin-user-doc -->
272 * <!-- end-user-doc -->
273 * @generated
274 */
275 @Override
276 public Physical_Person getIndividual_A() {
277 return individual_A;
278 }
279
280 /**
281 * <!-- begin-user-doc -->
282 * <!-- end-user-doc -->
283 * @generated
284 */
285 public NotificationChain basicSetIndividual_A(Physical_Person newIndividual_A, NotificationChain msgs) {
286 Physical_Person oldIndividual_A = individual_A;
287 individual_A = newIndividual_A;
288 if (eNotificationRequired()) {
289 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.LEGAL_UNION_RECORD__INDIVIDUAL_A, oldIndividual_A, newIndividual_A);
290 if (msgs == null) msgs = notification; else msgs.add(notification);
291 }
292 return msgs;
293 }
294
295 /**
296 * <!-- begin-user-doc -->
297 * <!-- end-user-doc -->
298 * @generated
299 */
300 @Override
301 public void setIndividual_A(Physical_Person newIndividual_A) {
302 if (newIndividual_A != individual_A) {
303 NotificationChain msgs = null;
304 if (individual_A != null)
305 msgs = ((InternalEObject)individual_A).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TaxationWithRootPackage.LEGAL_UNION_RECORD__INDIVIDUAL_A, null, msgs);
306 if (newIndividual_A != null)
307 msgs = ((InternalEObject)newIndividual_A).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - TaxationWithRootPackage.LEGAL_UNION_RECORD__INDIVIDUAL_A, null, msgs);
308 msgs = basicSetIndividual_A(newIndividual_A, msgs);
309 if (msgs != null) msgs.dispatch();
310 }
311 else if (eNotificationRequired())
312 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.LEGAL_UNION_RECORD__INDIVIDUAL_A, newIndividual_A, newIndividual_A));
313 }
314
315 /**
316 * <!-- begin-user-doc -->
317 * <!-- end-user-doc -->
318 * @generated
319 */
320 @Override
321 public EList<Physical_Person> getIndividual_B() {
322 if (individual_B == null) {
323 individual_B = new EObjectContainmentEList<Physical_Person>(Physical_Person.class, this, TaxationWithRootPackage.LEGAL_UNION_RECORD__INDIVIDUAL_B);
324 }
325 return individual_B;
326 }
327
328 /**
329 * <!-- begin-user-doc -->
330 * <!-- end-user-doc -->
331 * @generated
332 */
333 @Override
334 public EList<Tax_Property> getProperties() {
335 if (properties == null) {
336 properties = new EObjectContainmentWithInverseEList<Tax_Property>(Tax_Property.class, this, TaxationWithRootPackage.LEGAL_UNION_RECORD__PROPERTIES, TaxationWithRootPackage.TAX_PROPERTY__UNION_RECORD);
337 }
338 return properties;
339 }
340
341 /**
342 * <!-- begin-user-doc -->
343 * <!-- end-user-doc -->
344 * @generated
345 */
346 @Override
347 public boolean isMutual_agreement() {
348 return mutual_agreement;
349 }
350
351 /**
352 * <!-- begin-user-doc -->
353 * <!-- end-user-doc -->
354 * @generated
355 */
356 @Override
357 public void setMutual_agreement(boolean newMutual_agreement) {
358 boolean oldMutual_agreement = mutual_agreement;
359 mutual_agreement = newMutual_agreement;
360 if (eNotificationRequired())
361 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.LEGAL_UNION_RECORD__MUTUAL_AGREEMENT, oldMutual_agreement, mutual_agreement));
362 }
363
364 /**
365 * <!-- begin-user-doc -->
366 * <!-- end-user-doc -->
367 * @generated
368 */
369 @Override
370 public String getId9() {
371 return id9;
372 }
373
374 /**
375 * <!-- begin-user-doc -->
376 * <!-- end-user-doc -->
377 * @generated
378 */
379 @Override
380 public void setId9(String newId9) {
381 String oldId9 = id9;
382 id9 = newId9;
383 if (eNotificationRequired())
384 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.LEGAL_UNION_RECORD__ID9, oldId9, id9));
385 }
386
387 /**
388 * <!-- begin-user-doc -->
389 * <!-- end-user-doc -->
390 * @generated
391 */
392 @Override
393 public Household getHousehold() {
394 if (eContainerFeatureID() != TaxationWithRootPackage.LEGAL_UNION_RECORD__HOUSEHOLD) return null;
395 return (Household)eInternalContainer();
396 }
397
398 /**
399 * <!-- begin-user-doc -->
400 * <!-- end-user-doc -->
401 * @generated
402 */
403 public NotificationChain basicSetHousehold(Household newHousehold, NotificationChain msgs) {
404 msgs = eBasicSetContainer((InternalEObject)newHousehold, TaxationWithRootPackage.LEGAL_UNION_RECORD__HOUSEHOLD, msgs);
405 return msgs;
406 }
407
408 /**
409 * <!-- begin-user-doc -->
410 * <!-- end-user-doc -->
411 * @generated
412 */
413 @Override
414 public void setHousehold(Household newHousehold) {
415 if (newHousehold != eInternalContainer() || (eContainerFeatureID() != TaxationWithRootPackage.LEGAL_UNION_RECORD__HOUSEHOLD && newHousehold != null)) {
416 if (EcoreUtil.isAncestor(this, newHousehold))
417 throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
418 NotificationChain msgs = null;
419 if (eInternalContainer() != null)
420 msgs = eBasicRemoveFromContainer(msgs);
421 if (newHousehold != null)
422 msgs = ((InternalEObject)newHousehold).eInverseAdd(this, TaxationWithRootPackage.HOUSEHOLD__PARENTS, Household.class, msgs);
423 msgs = basicSetHousehold(newHousehold, msgs);
424 if (msgs != null) msgs.dispatch();
425 }
426 else if (eNotificationRequired())
427 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.LEGAL_UNION_RECORD__HOUSEHOLD, newHousehold, newHousehold));
428 }
429
430 /**
431 * <!-- begin-user-doc -->
432 * <!-- end-user-doc -->
433 * @generated
434 */
435 @SuppressWarnings("unchecked")
436 @Override
437 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
438 switch (featureID) {
439 case TaxationWithRootPackage.LEGAL_UNION_RECORD__PROPERTIES:
440 return ((InternalEList<InternalEObject>)(InternalEList<?>)getProperties()).basicAdd(otherEnd, msgs);
441 case TaxationWithRootPackage.LEGAL_UNION_RECORD__HOUSEHOLD:
442 if (eInternalContainer() != null)
443 msgs = eBasicRemoveFromContainer(msgs);
444 return basicSetHousehold((Household)otherEnd, msgs);
445 }
446 return super.eInverseAdd(otherEnd, featureID, msgs);
447 }
448
449 /**
450 * <!-- begin-user-doc -->
451 * <!-- end-user-doc -->
452 * @generated
453 */
454 @Override
455 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
456 switch (featureID) {
457 case TaxationWithRootPackage.LEGAL_UNION_RECORD__INDIVIDUAL_A:
458 return basicSetIndividual_A(null, msgs);
459 case TaxationWithRootPackage.LEGAL_UNION_RECORD__INDIVIDUAL_B:
460 return ((InternalEList<?>)getIndividual_B()).basicRemove(otherEnd, msgs);
461 case TaxationWithRootPackage.LEGAL_UNION_RECORD__PROPERTIES:
462 return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
463 case TaxationWithRootPackage.LEGAL_UNION_RECORD__HOUSEHOLD:
464 return basicSetHousehold(null, msgs);
465 }
466 return super.eInverseRemove(otherEnd, featureID, msgs);
467 }
468
469 /**
470 * <!-- begin-user-doc -->
471 * <!-- end-user-doc -->
472 * @generated
473 */
474 @Override
475 public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
476 switch (eContainerFeatureID()) {
477 case TaxationWithRootPackage.LEGAL_UNION_RECORD__HOUSEHOLD:
478 return eInternalContainer().eInverseRemove(this, TaxationWithRootPackage.HOUSEHOLD__PARENTS, Household.class, msgs);
479 }
480 return super.eBasicRemoveFromContainerFeature(msgs);
481 }
482
483 /**
484 * <!-- begin-user-doc -->
485 * <!-- end-user-doc -->
486 * @generated
487 */
488 @Override
489 public Object eGet(int featureID, boolean resolve, boolean coreType) {
490 switch (featureID) {
491 case TaxationWithRootPackage.LEGAL_UNION_RECORD__START_YEAR:
492 return getStart_year();
493 case TaxationWithRootPackage.LEGAL_UNION_RECORD__END_YEAR:
494 return getEnd_year();
495 case TaxationWithRootPackage.LEGAL_UNION_RECORD__SEPARATION_CAUSE:
496 return getSeparation_cause();
497 case TaxationWithRootPackage.LEGAL_UNION_RECORD__INDIVIDUAL_A:
498 return getIndividual_A();
499 case TaxationWithRootPackage.LEGAL_UNION_RECORD__INDIVIDUAL_B:
500 return getIndividual_B();
501 case TaxationWithRootPackage.LEGAL_UNION_RECORD__PROPERTIES:
502 return getProperties();
503 case TaxationWithRootPackage.LEGAL_UNION_RECORD__MUTUAL_AGREEMENT:
504 return isMutual_agreement();
505 case TaxationWithRootPackage.LEGAL_UNION_RECORD__ID9:
506 return getId9();
507 case TaxationWithRootPackage.LEGAL_UNION_RECORD__HOUSEHOLD:
508 return getHousehold();
509 }
510 return super.eGet(featureID, resolve, coreType);
511 }
512
513 /**
514 * <!-- begin-user-doc -->
515 * <!-- end-user-doc -->
516 * @generated
517 */
518 @SuppressWarnings("unchecked")
519 @Override
520 public void eSet(int featureID, Object newValue) {
521 switch (featureID) {
522 case TaxationWithRootPackage.LEGAL_UNION_RECORD__START_YEAR:
523 setStart_year((Integer)newValue);
524 return;
525 case TaxationWithRootPackage.LEGAL_UNION_RECORD__END_YEAR:
526 setEnd_year((Integer)newValue);
527 return;
528 case TaxationWithRootPackage.LEGAL_UNION_RECORD__SEPARATION_CAUSE:
529 setSeparation_cause((Separation_Causes)newValue);
530 return;
531 case TaxationWithRootPackage.LEGAL_UNION_RECORD__INDIVIDUAL_A:
532 setIndividual_A((Physical_Person)newValue);
533 return;
534 case TaxationWithRootPackage.LEGAL_UNION_RECORD__INDIVIDUAL_B:
535 getIndividual_B().clear();
536 getIndividual_B().addAll((Collection<? extends Physical_Person>)newValue);
537 return;
538 case TaxationWithRootPackage.LEGAL_UNION_RECORD__PROPERTIES:
539 getProperties().clear();
540 getProperties().addAll((Collection<? extends Tax_Property>)newValue);
541 return;
542 case TaxationWithRootPackage.LEGAL_UNION_RECORD__MUTUAL_AGREEMENT:
543 setMutual_agreement((Boolean)newValue);
544 return;
545 case TaxationWithRootPackage.LEGAL_UNION_RECORD__ID9:
546 setId9((String)newValue);
547 return;
548 case TaxationWithRootPackage.LEGAL_UNION_RECORD__HOUSEHOLD:
549 setHousehold((Household)newValue);
550 return;
551 }
552 super.eSet(featureID, newValue);
553 }
554
555 /**
556 * <!-- begin-user-doc -->
557 * <!-- end-user-doc -->
558 * @generated
559 */
560 @Override
561 public void eUnset(int featureID) {
562 switch (featureID) {
563 case TaxationWithRootPackage.LEGAL_UNION_RECORD__START_YEAR:
564 setStart_year(START_YEAR_EDEFAULT);
565 return;
566 case TaxationWithRootPackage.LEGAL_UNION_RECORD__END_YEAR:
567 setEnd_year(END_YEAR_EDEFAULT);
568 return;
569 case TaxationWithRootPackage.LEGAL_UNION_RECORD__SEPARATION_CAUSE:
570 setSeparation_cause(SEPARATION_CAUSE_EDEFAULT);
571 return;
572 case TaxationWithRootPackage.LEGAL_UNION_RECORD__INDIVIDUAL_A:
573 setIndividual_A((Physical_Person)null);
574 return;
575 case TaxationWithRootPackage.LEGAL_UNION_RECORD__INDIVIDUAL_B:
576 getIndividual_B().clear();
577 return;
578 case TaxationWithRootPackage.LEGAL_UNION_RECORD__PROPERTIES:
579 getProperties().clear();
580 return;
581 case TaxationWithRootPackage.LEGAL_UNION_RECORD__MUTUAL_AGREEMENT:
582 setMutual_agreement(MUTUAL_AGREEMENT_EDEFAULT);
583 return;
584 case TaxationWithRootPackage.LEGAL_UNION_RECORD__ID9:
585 setId9(ID9_EDEFAULT);
586 return;
587 case TaxationWithRootPackage.LEGAL_UNION_RECORD__HOUSEHOLD:
588 setHousehold((Household)null);
589 return;
590 }
591 super.eUnset(featureID);
592 }
593
594 /**
595 * <!-- begin-user-doc -->
596 * <!-- end-user-doc -->
597 * @generated
598 */
599 @Override
600 public boolean eIsSet(int featureID) {
601 switch (featureID) {
602 case TaxationWithRootPackage.LEGAL_UNION_RECORD__START_YEAR:
603 return start_year != START_YEAR_EDEFAULT;
604 case TaxationWithRootPackage.LEGAL_UNION_RECORD__END_YEAR:
605 return end_year != END_YEAR_EDEFAULT;
606 case TaxationWithRootPackage.LEGAL_UNION_RECORD__SEPARATION_CAUSE:
607 return separation_cause != SEPARATION_CAUSE_EDEFAULT;
608 case TaxationWithRootPackage.LEGAL_UNION_RECORD__INDIVIDUAL_A:
609 return individual_A != null;
610 case TaxationWithRootPackage.LEGAL_UNION_RECORD__INDIVIDUAL_B:
611 return individual_B != null && !individual_B.isEmpty();
612 case TaxationWithRootPackage.LEGAL_UNION_RECORD__PROPERTIES:
613 return properties != null && !properties.isEmpty();
614 case TaxationWithRootPackage.LEGAL_UNION_RECORD__MUTUAL_AGREEMENT:
615 return mutual_agreement != MUTUAL_AGREEMENT_EDEFAULT;
616 case TaxationWithRootPackage.LEGAL_UNION_RECORD__ID9:
617 return ID9_EDEFAULT == null ? id9 != null : !ID9_EDEFAULT.equals(id9);
618 case TaxationWithRootPackage.LEGAL_UNION_RECORD__HOUSEHOLD:
619 return getHousehold() != null;
620 }
621 return super.eIsSet(featureID);
622 }
623
624 /**
625 * <!-- begin-user-doc -->
626 * <!-- end-user-doc -->
627 * @generated
628 */
629 @Override
630 public String toString() {
631 if (eIsProxy()) return super.toString();
632
633 StringBuilder result = new StringBuilder(super.toString());
634 result.append(" (start_year: ");
635 result.append(start_year);
636 result.append(", end_year: ");
637 result.append(end_year);
638 result.append(", separation_cause: ");
639 result.append(separation_cause);
640 result.append(", mutual_agreement: ");
641 result.append(mutual_agreement);
642 result.append(", id9: ");
643 result.append(id9);
644 result.append(')');
645 return result.toString();
646 }
647
648} //Legal_Union_RecordImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Local_IncomeImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Local_IncomeImpl.java
new file mode 100644
index 00000000..1e7bcf81
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Local_IncomeImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Local_Income;
6import TaxationWithRoot.TaxationWithRootPackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Local Income</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class Local_IncomeImpl extends IncomeImpl implements Local_Income {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected Local_IncomeImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return TaxationWithRootPackage.Literals.LOCAL_INCOME;
35 }
36
37} //Local_IncomeImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Loss_CarryforwardImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Loss_CarryforwardImpl.java
new file mode 100644
index 00000000..32cb3507
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Loss_CarryforwardImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Loss_Carryforward;
6import TaxationWithRoot.TaxationWithRootPackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Loss Carryforward</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class Loss_CarryforwardImpl extends Special_Expense_DSImpl implements Loss_Carryforward {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected Loss_CarryforwardImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return TaxationWithRootPackage.Literals.LOSS_CARRYFORWARD;
35 }
36
37} //Loss_CarryforwardImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Marriage_RecordImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Marriage_RecordImpl.java
new file mode 100644
index 00000000..39f7966a
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Marriage_RecordImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Marriage_Record;
6import TaxationWithRoot.TaxationWithRootPackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Marriage Record</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class Marriage_RecordImpl extends Legal_Union_RecordImpl implements Marriage_Record {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected Marriage_RecordImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return TaxationWithRootPackage.Literals.MARRIAGE_RECORD;
35 }
36
37} //Marriage_RecordImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Miscellaneous_Expense_FOImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Miscellaneous_Expense_FOImpl.java
new file mode 100644
index 00000000..f3b824e7
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Miscellaneous_Expense_FOImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Miscellaneous_Expense_FO;
6import TaxationWithRoot.TaxationWithRootPackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Miscellaneous Expense FO</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class Miscellaneous_Expense_FOImpl extends Professional_ExpenseImpl implements Miscellaneous_Expense_FO {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected Miscellaneous_Expense_FOImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return TaxationWithRootPackage.Literals.MISCELLANEOUS_EXPENSE_FO;
35 }
36
37} //Miscellaneous_Expense_FOImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Non_Resident_Tax_PayerImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Non_Resident_Tax_PayerImpl.java
new file mode 100644
index 00000000..253c1097
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Non_Resident_Tax_PayerImpl.java
@@ -0,0 +1,164 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Non_Resident_Tax_Payer;
6import TaxationWithRoot.TaxationWithRootPackage;
7
8import org.eclipse.emf.common.notify.Notification;
9
10import org.eclipse.emf.ecore.EClass;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13
14/**
15 * <!-- begin-user-doc -->
16 * An implementation of the model object '<em><b>Non Resident Tax Payer</b></em>'.
17 * <!-- end-user-doc -->
18 * <p>
19 * The following features are implemented:
20 * </p>
21 * <ul>
22 * <li>{@link TaxationWithRoot.impl.Non_Resident_Tax_PayerImpl#isIs_assimilated_to_resident <em>Is assimilated to resident</em>}</li>
23 * </ul>
24 *
25 * @generated
26 */
27public class Non_Resident_Tax_PayerImpl extends Tax_PayerImpl implements Non_Resident_Tax_Payer {
28 /**
29 * The default value of the '{@link #isIs_assimilated_to_resident() <em>Is assimilated to resident</em>}' attribute.
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @see #isIs_assimilated_to_resident()
33 * @generated
34 * @ordered
35 */
36 protected static final boolean IS_ASSIMILATED_TO_RESIDENT_EDEFAULT = false;
37
38 /**
39 * The cached value of the '{@link #isIs_assimilated_to_resident() <em>Is assimilated to resident</em>}' attribute.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @see #isIs_assimilated_to_resident()
43 * @generated
44 * @ordered
45 */
46 protected boolean is_assimilated_to_resident = IS_ASSIMILATED_TO_RESIDENT_EDEFAULT;
47
48 /**
49 * <!-- begin-user-doc -->
50 * <!-- end-user-doc -->
51 * @generated
52 */
53 protected Non_Resident_Tax_PayerImpl() {
54 super();
55 }
56
57 /**
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @generated
61 */
62 @Override
63 protected EClass eStaticClass() {
64 return TaxationWithRootPackage.Literals.NON_RESIDENT_TAX_PAYER;
65 }
66
67 /**
68 * <!-- begin-user-doc -->
69 * <!-- end-user-doc -->
70 * @generated
71 */
72 @Override
73 public boolean isIs_assimilated_to_resident() {
74 return is_assimilated_to_resident;
75 }
76
77 /**
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @generated
81 */
82 @Override
83 public void setIs_assimilated_to_resident(boolean newIs_assimilated_to_resident) {
84 boolean oldIs_assimilated_to_resident = is_assimilated_to_resident;
85 is_assimilated_to_resident = newIs_assimilated_to_resident;
86 if (eNotificationRequired())
87 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.NON_RESIDENT_TAX_PAYER__IS_ASSIMILATED_TO_RESIDENT, oldIs_assimilated_to_resident, is_assimilated_to_resident));
88 }
89
90 /**
91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc -->
93 * @generated
94 */
95 @Override
96 public Object eGet(int featureID, boolean resolve, boolean coreType) {
97 switch (featureID) {
98 case TaxationWithRootPackage.NON_RESIDENT_TAX_PAYER__IS_ASSIMILATED_TO_RESIDENT:
99 return isIs_assimilated_to_resident();
100 }
101 return super.eGet(featureID, resolve, coreType);
102 }
103
104 /**
105 * <!-- begin-user-doc -->
106 * <!-- end-user-doc -->
107 * @generated
108 */
109 @Override
110 public void eSet(int featureID, Object newValue) {
111 switch (featureID) {
112 case TaxationWithRootPackage.NON_RESIDENT_TAX_PAYER__IS_ASSIMILATED_TO_RESIDENT:
113 setIs_assimilated_to_resident((Boolean)newValue);
114 return;
115 }
116 super.eSet(featureID, newValue);
117 }
118
119 /**
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @generated
123 */
124 @Override
125 public void eUnset(int featureID) {
126 switch (featureID) {
127 case TaxationWithRootPackage.NON_RESIDENT_TAX_PAYER__IS_ASSIMILATED_TO_RESIDENT:
128 setIs_assimilated_to_resident(IS_ASSIMILATED_TO_RESIDENT_EDEFAULT);
129 return;
130 }
131 super.eUnset(featureID);
132 }
133
134 /**
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @generated
138 */
139 @Override
140 public boolean eIsSet(int featureID) {
141 switch (featureID) {
142 case TaxationWithRootPackage.NON_RESIDENT_TAX_PAYER__IS_ASSIMILATED_TO_RESIDENT:
143 return is_assimilated_to_resident != IS_ASSIMILATED_TO_RESIDENT_EDEFAULT;
144 }
145 return super.eIsSet(featureID);
146 }
147
148 /**
149 * <!-- begin-user-doc -->
150 * <!-- end-user-doc -->
151 * @generated
152 */
153 @Override
154 public String toString() {
155 if (eIsProxy()) return super.toString();
156
157 StringBuilder result = new StringBuilder(super.toString());
158 result.append(" (is_assimilated_to_resident: ");
159 result.append(is_assimilated_to_resident);
160 result.append(')');
161 return result.toString();
162 }
163
164} //Non_Resident_Tax_PayerImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Partnership_RecordImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Partnership_RecordImpl.java
new file mode 100644
index 00000000..fd4dc513
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Partnership_RecordImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Partnership_Record;
6import TaxationWithRoot.TaxationWithRootPackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Partnership Record</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class Partnership_RecordImpl extends Legal_Union_RecordImpl implements Partnership_Record {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected Partnership_RecordImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return TaxationWithRootPackage.Literals.PARTNERSHIP_RECORD;
35 }
36
37} //Partnership_RecordImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Pensions_and_Annuities_IncomeImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Pensions_and_Annuities_IncomeImpl.java
new file mode 100644
index 00000000..e58f5005
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Pensions_and_Annuities_IncomeImpl.java
@@ -0,0 +1,164 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Pensions_and_Annuities_Income;
6import TaxationWithRoot.TaxationWithRootPackage;
7
8import org.eclipse.emf.common.notify.Notification;
9
10import org.eclipse.emf.ecore.EClass;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13
14/**
15 * <!-- begin-user-doc -->
16 * An implementation of the model object '<em><b>Pensions and Annuities Income</b></em>'.
17 * <!-- end-user-doc -->
18 * <p>
19 * The following features are implemented:
20 * </p>
21 * <ul>
22 * <li>{@link TaxationWithRoot.impl.Pensions_and_Annuities_IncomeImpl#isOccasional_payement <em>Occasional payement</em>}</li>
23 * </ul>
24 *
25 * @generated
26 */
27public class Pensions_and_Annuities_IncomeImpl extends Income_TypeImpl implements Pensions_and_Annuities_Income {
28 /**
29 * The default value of the '{@link #isOccasional_payement() <em>Occasional payement</em>}' attribute.
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @see #isOccasional_payement()
33 * @generated
34 * @ordered
35 */
36 protected static final boolean OCCASIONAL_PAYEMENT_EDEFAULT = false;
37
38 /**
39 * The cached value of the '{@link #isOccasional_payement() <em>Occasional payement</em>}' attribute.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @see #isOccasional_payement()
43 * @generated
44 * @ordered
45 */
46 protected boolean occasional_payement = OCCASIONAL_PAYEMENT_EDEFAULT;
47
48 /**
49 * <!-- begin-user-doc -->
50 * <!-- end-user-doc -->
51 * @generated
52 */
53 protected Pensions_and_Annuities_IncomeImpl() {
54 super();
55 }
56
57 /**
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @generated
61 */
62 @Override
63 protected EClass eStaticClass() {
64 return TaxationWithRootPackage.Literals.PENSIONS_AND_ANNUITIES_INCOME;
65 }
66
67 /**
68 * <!-- begin-user-doc -->
69 * <!-- end-user-doc -->
70 * @generated
71 */
72 @Override
73 public boolean isOccasional_payement() {
74 return occasional_payement;
75 }
76
77 /**
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @generated
81 */
82 @Override
83 public void setOccasional_payement(boolean newOccasional_payement) {
84 boolean oldOccasional_payement = occasional_payement;
85 occasional_payement = newOccasional_payement;
86 if (eNotificationRequired())
87 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.PENSIONS_AND_ANNUITIES_INCOME__OCCASIONAL_PAYEMENT, oldOccasional_payement, occasional_payement));
88 }
89
90 /**
91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc -->
93 * @generated
94 */
95 @Override
96 public Object eGet(int featureID, boolean resolve, boolean coreType) {
97 switch (featureID) {
98 case TaxationWithRootPackage.PENSIONS_AND_ANNUITIES_INCOME__OCCASIONAL_PAYEMENT:
99 return isOccasional_payement();
100 }
101 return super.eGet(featureID, resolve, coreType);
102 }
103
104 /**
105 * <!-- begin-user-doc -->
106 * <!-- end-user-doc -->
107 * @generated
108 */
109 @Override
110 public void eSet(int featureID, Object newValue) {
111 switch (featureID) {
112 case TaxationWithRootPackage.PENSIONS_AND_ANNUITIES_INCOME__OCCASIONAL_PAYEMENT:
113 setOccasional_payement((Boolean)newValue);
114 return;
115 }
116 super.eSet(featureID, newValue);
117 }
118
119 /**
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @generated
123 */
124 @Override
125 public void eUnset(int featureID) {
126 switch (featureID) {
127 case TaxationWithRootPackage.PENSIONS_AND_ANNUITIES_INCOME__OCCASIONAL_PAYEMENT:
128 setOccasional_payement(OCCASIONAL_PAYEMENT_EDEFAULT);
129 return;
130 }
131 super.eUnset(featureID);
132 }
133
134 /**
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @generated
138 */
139 @Override
140 public boolean eIsSet(int featureID) {
141 switch (featureID) {
142 case TaxationWithRootPackage.PENSIONS_AND_ANNUITIES_INCOME__OCCASIONAL_PAYEMENT:
143 return occasional_payement != OCCASIONAL_PAYEMENT_EDEFAULT;
144 }
145 return super.eIsSet(featureID);
146 }
147
148 /**
149 * <!-- begin-user-doc -->
150 * <!-- end-user-doc -->
151 * @generated
152 */
153 @Override
154 public String toString() {
155 if (eIsProxy()) return super.toString();
156
157 StringBuilder result = new StringBuilder(super.toString());
158 result.append(" (occasional_payement: ");
159 result.append(occasional_payement);
160 result.append(')');
161 return result.toString();
162 }
163
164} //Pensions_and_Annuities_IncomeImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Permanent_ExpenseImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Permanent_ExpenseImpl.java
new file mode 100644
index 00000000..c6735595
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Permanent_ExpenseImpl.java
@@ -0,0 +1,165 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Category_of_Permanent_Expense;
6import TaxationWithRoot.Permanent_Expense;
7import TaxationWithRoot.TaxationWithRootPackage;
8
9import org.eclipse.emf.common.notify.Notification;
10
11import org.eclipse.emf.ecore.EClass;
12
13import org.eclipse.emf.ecore.impl.ENotificationImpl;
14
15/**
16 * <!-- begin-user-doc -->
17 * An implementation of the model object '<em><b>Permanent Expense</b></em>'.
18 * <!-- end-user-doc -->
19 * <p>
20 * The following features are implemented:
21 * </p>
22 * <ul>
23 * <li>{@link TaxationWithRoot.impl.Permanent_ExpenseImpl#getCategory <em>Category</em>}</li>
24 * </ul>
25 *
26 * @generated
27 */
28public class Permanent_ExpenseImpl extends Special_Expense_DSImpl implements Permanent_Expense {
29 /**
30 * The default value of the '{@link #getCategory() <em>Category</em>}' attribute.
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @see #getCategory()
34 * @generated
35 * @ordered
36 */
37 protected static final Category_of_Permanent_Expense CATEGORY_EDEFAULT = Category_of_Permanent_Expense.MISCELLANEOUS_DEBT;
38
39 /**
40 * The cached value of the '{@link #getCategory() <em>Category</em>}' attribute.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @see #getCategory()
44 * @generated
45 * @ordered
46 */
47 protected Category_of_Permanent_Expense category = CATEGORY_EDEFAULT;
48
49 /**
50 * <!-- begin-user-doc -->
51 * <!-- end-user-doc -->
52 * @generated
53 */
54 protected Permanent_ExpenseImpl() {
55 super();
56 }
57
58 /**
59 * <!-- begin-user-doc -->
60 * <!-- end-user-doc -->
61 * @generated
62 */
63 @Override
64 protected EClass eStaticClass() {
65 return TaxationWithRootPackage.Literals.PERMANENT_EXPENSE;
66 }
67
68 /**
69 * <!-- begin-user-doc -->
70 * <!-- end-user-doc -->
71 * @generated
72 */
73 @Override
74 public Category_of_Permanent_Expense getCategory() {
75 return category;
76 }
77
78 /**
79 * <!-- begin-user-doc -->
80 * <!-- end-user-doc -->
81 * @generated
82 */
83 @Override
84 public void setCategory(Category_of_Permanent_Expense newCategory) {
85 Category_of_Permanent_Expense oldCategory = category;
86 category = newCategory == null ? CATEGORY_EDEFAULT : newCategory;
87 if (eNotificationRequired())
88 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.PERMANENT_EXPENSE__CATEGORY, oldCategory, category));
89 }
90
91 /**
92 * <!-- begin-user-doc -->
93 * <!-- end-user-doc -->
94 * @generated
95 */
96 @Override
97 public Object eGet(int featureID, boolean resolve, boolean coreType) {
98 switch (featureID) {
99 case TaxationWithRootPackage.PERMANENT_EXPENSE__CATEGORY:
100 return getCategory();
101 }
102 return super.eGet(featureID, resolve, coreType);
103 }
104
105 /**
106 * <!-- begin-user-doc -->
107 * <!-- end-user-doc -->
108 * @generated
109 */
110 @Override
111 public void eSet(int featureID, Object newValue) {
112 switch (featureID) {
113 case TaxationWithRootPackage.PERMANENT_EXPENSE__CATEGORY:
114 setCategory((Category_of_Permanent_Expense)newValue);
115 return;
116 }
117 super.eSet(featureID, newValue);
118 }
119
120 /**
121 * <!-- begin-user-doc -->
122 * <!-- end-user-doc -->
123 * @generated
124 */
125 @Override
126 public void eUnset(int featureID) {
127 switch (featureID) {
128 case TaxationWithRootPackage.PERMANENT_EXPENSE__CATEGORY:
129 setCategory(CATEGORY_EDEFAULT);
130 return;
131 }
132 super.eUnset(featureID);
133 }
134
135 /**
136 * <!-- begin-user-doc -->
137 * <!-- end-user-doc -->
138 * @generated
139 */
140 @Override
141 public boolean eIsSet(int featureID) {
142 switch (featureID) {
143 case TaxationWithRootPackage.PERMANENT_EXPENSE__CATEGORY:
144 return category != CATEGORY_EDEFAULT;
145 }
146 return super.eIsSet(featureID);
147 }
148
149 /**
150 * <!-- begin-user-doc -->
151 * <!-- end-user-doc -->
152 * @generated
153 */
154 @Override
155 public String toString() {
156 if (eIsProxy()) return super.toString();
157
158 StringBuilder result = new StringBuilder(super.toString());
159 result.append(" (category: ");
160 result.append(category);
161 result.append(')');
162 return result.toString();
163 }
164
165} //Permanent_ExpenseImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Physical_PersonImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Physical_PersonImpl.java
new file mode 100644
index 00000000..408ee362
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Physical_PersonImpl.java
@@ -0,0 +1,617 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Address;
6import TaxationWithRoot.Disability_Types;
7import TaxationWithRoot.Expense;
8import TaxationWithRoot.Physical_Person;
9import TaxationWithRoot.TaxationWithRootPackage;
10
11import java.util.Collection;
12
13import org.eclipse.emf.common.notify.Notification;
14import org.eclipse.emf.common.notify.NotificationChain;
15
16import org.eclipse.emf.common.util.EList;
17
18import org.eclipse.emf.ecore.EClass;
19import org.eclipse.emf.ecore.InternalEObject;
20
21import org.eclipse.emf.ecore.impl.ENotificationImpl;
22import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
23
24import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
25import org.eclipse.emf.ecore.util.InternalEList;
26
27/**
28 * <!-- begin-user-doc -->
29 * An implementation of the model object '<em><b>Physical Person</b></em>'.
30 * <!-- end-user-doc -->
31 * <p>
32 * The following features are implemented:
33 * </p>
34 * <ul>
35 * <li>{@link TaxationWithRoot.impl.Physical_PersonImpl#getSSNo <em>SS No</em>}</li>
36 * <li>{@link TaxationWithRoot.impl.Physical_PersonImpl#getAddresses <em>Addresses</em>}</li>
37 * <li>{@link TaxationWithRoot.impl.Physical_PersonImpl#getBirth_year <em>Birth year</em>}</li>
38 * <li>{@link TaxationWithRoot.impl.Physical_PersonImpl#getDisability_percentage <em>Disability percentage</em>}</li>
39 * <li>{@link TaxationWithRoot.impl.Physical_PersonImpl#getDisability_type <em>Disability type</em>}</li>
40 * <li>{@link TaxationWithRoot.impl.Physical_PersonImpl#getBirth_month <em>Birth month</em>}</li>
41 * <li>{@link TaxationWithRoot.impl.Physical_PersonImpl#getBirth_day <em>Birth day</em>}</li>
42 * <li>{@link TaxationWithRoot.impl.Physical_PersonImpl#getExpenses <em>Expenses</em>}</li>
43 * <li>{@link TaxationWithRoot.impl.Physical_PersonImpl#isIs_widower <em>Is widower</em>}</li>
44 * </ul>
45 *
46 * @generated
47 */
48public class Physical_PersonImpl extends MinimalEObjectImpl.Container implements Physical_Person {
49 /**
50 * The default value of the '{@link #getSSNo() <em>SS No</em>}' attribute.
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @see #getSSNo()
54 * @generated
55 * @ordered
56 */
57 protected static final String SS_NO_EDEFAULT = null;
58
59 /**
60 * The cached value of the '{@link #getSSNo() <em>SS No</em>}' attribute.
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @see #getSSNo()
64 * @generated
65 * @ordered
66 */
67 protected String ssNo = SS_NO_EDEFAULT;
68
69 /**
70 * The cached value of the '{@link #getAddresses() <em>Addresses</em>}' reference list.
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @see #getAddresses()
74 * @generated
75 * @ordered
76 */
77 protected EList<Address> addresses;
78
79 /**
80 * The default value of the '{@link #getBirth_year() <em>Birth year</em>}' attribute.
81 * <!-- begin-user-doc -->
82 * <!-- end-user-doc -->
83 * @see #getBirth_year()
84 * @generated
85 * @ordered
86 */
87 protected static final int BIRTH_YEAR_EDEFAULT = 0;
88
89 /**
90 * The cached value of the '{@link #getBirth_year() <em>Birth year</em>}' attribute.
91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc -->
93 * @see #getBirth_year()
94 * @generated
95 * @ordered
96 */
97 protected int birth_year = BIRTH_YEAR_EDEFAULT;
98
99 /**
100 * The default value of the '{@link #getDisability_percentage() <em>Disability percentage</em>}' attribute.
101 * <!-- begin-user-doc -->
102 * <!-- end-user-doc -->
103 * @see #getDisability_percentage()
104 * @generated
105 * @ordered
106 */
107 protected static final double DISABILITY_PERCENTAGE_EDEFAULT = 0.0;
108
109 /**
110 * The cached value of the '{@link #getDisability_percentage() <em>Disability percentage</em>}' attribute.
111 * <!-- begin-user-doc -->
112 * <!-- end-user-doc -->
113 * @see #getDisability_percentage()
114 * @generated
115 * @ordered
116 */
117 protected double disability_percentage = DISABILITY_PERCENTAGE_EDEFAULT;
118
119 /**
120 * The default value of the '{@link #getDisability_type() <em>Disability type</em>}' attribute.
121 * <!-- begin-user-doc -->
122 * <!-- end-user-doc -->
123 * @see #getDisability_type()
124 * @generated
125 * @ordered
126 */
127 protected static final Disability_Types DISABILITY_TYPE_EDEFAULT = Disability_Types.BEUG;
128
129 /**
130 * The cached value of the '{@link #getDisability_type() <em>Disability type</em>}' attribute.
131 * <!-- begin-user-doc -->
132 * <!-- end-user-doc -->
133 * @see #getDisability_type()
134 * @generated
135 * @ordered
136 */
137 protected Disability_Types disability_type = DISABILITY_TYPE_EDEFAULT;
138
139 /**
140 * The default value of the '{@link #getBirth_month() <em>Birth month</em>}' attribute.
141 * <!-- begin-user-doc -->
142 * <!-- end-user-doc -->
143 * @see #getBirth_month()
144 * @generated
145 * @ordered
146 */
147 protected static final int BIRTH_MONTH_EDEFAULT = 0;
148
149 /**
150 * The cached value of the '{@link #getBirth_month() <em>Birth month</em>}' attribute.
151 * <!-- begin-user-doc -->
152 * <!-- end-user-doc -->
153 * @see #getBirth_month()
154 * @generated
155 * @ordered
156 */
157 protected int birth_month = BIRTH_MONTH_EDEFAULT;
158
159 /**
160 * The default value of the '{@link #getBirth_day() <em>Birth day</em>}' attribute.
161 * <!-- begin-user-doc -->
162 * <!-- end-user-doc -->
163 * @see #getBirth_day()
164 * @generated
165 * @ordered
166 */
167 protected static final int BIRTH_DAY_EDEFAULT = 0;
168
169 /**
170 * The cached value of the '{@link #getBirth_day() <em>Birth day</em>}' attribute.
171 * <!-- begin-user-doc -->
172 * <!-- end-user-doc -->
173 * @see #getBirth_day()
174 * @generated
175 * @ordered
176 */
177 protected int birth_day = BIRTH_DAY_EDEFAULT;
178
179 /**
180 * The cached value of the '{@link #getExpenses() <em>Expenses</em>}' reference list.
181 * <!-- begin-user-doc -->
182 * <!-- end-user-doc -->
183 * @see #getExpenses()
184 * @generated
185 * @ordered
186 */
187 protected EList<Expense> expenses;
188
189 /**
190 * The default value of the '{@link #isIs_widower() <em>Is widower</em>}' attribute.
191 * <!-- begin-user-doc -->
192 * <!-- end-user-doc -->
193 * @see #isIs_widower()
194 * @generated
195 * @ordered
196 */
197 protected static final boolean IS_WIDOWER_EDEFAULT = false;
198
199 /**
200 * The cached value of the '{@link #isIs_widower() <em>Is widower</em>}' attribute.
201 * <!-- begin-user-doc -->
202 * <!-- end-user-doc -->
203 * @see #isIs_widower()
204 * @generated
205 * @ordered
206 */
207 protected boolean is_widower = IS_WIDOWER_EDEFAULT;
208
209 /**
210 * <!-- begin-user-doc -->
211 * <!-- end-user-doc -->
212 * @generated
213 */
214 protected Physical_PersonImpl() {
215 super();
216 }
217
218 /**
219 * <!-- begin-user-doc -->
220 * <!-- end-user-doc -->
221 * @generated
222 */
223 @Override
224 protected EClass eStaticClass() {
225 return TaxationWithRootPackage.Literals.PHYSICAL_PERSON;
226 }
227
228 /**
229 * <!-- begin-user-doc -->
230 * <!-- end-user-doc -->
231 * @generated
232 */
233 @Override
234 public String getSSNo() {
235 return ssNo;
236 }
237
238 /**
239 * <!-- begin-user-doc -->
240 * <!-- end-user-doc -->
241 * @generated
242 */
243 @Override
244 public void setSSNo(String newSSNo) {
245 String oldSSNo = ssNo;
246 ssNo = newSSNo;
247 if (eNotificationRequired())
248 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.PHYSICAL_PERSON__SS_NO, oldSSNo, ssNo));
249 }
250
251 /**
252 * <!-- begin-user-doc -->
253 * <!-- end-user-doc -->
254 * @generated
255 */
256 @Override
257 public EList<Address> getAddresses() {
258 if (addresses == null) {
259 addresses = new EObjectWithInverseResolvingEList.ManyInverse<Address>(Address.class, this, TaxationWithRootPackage.PHYSICAL_PERSON__ADDRESSES, TaxationWithRootPackage.ADDRESS__TAX_PAYER);
260 }
261 return addresses;
262 }
263
264 /**
265 * <!-- begin-user-doc -->
266 * <!-- end-user-doc -->
267 * @generated
268 */
269 @Override
270 public int getBirth_year() {
271 return birth_year;
272 }
273
274 /**
275 * <!-- begin-user-doc -->
276 * <!-- end-user-doc -->
277 * @generated
278 */
279 @Override
280 public void setBirth_year(int newBirth_year) {
281 int oldBirth_year = birth_year;
282 birth_year = newBirth_year;
283 if (eNotificationRequired())
284 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.PHYSICAL_PERSON__BIRTH_YEAR, oldBirth_year, birth_year));
285 }
286
287 /**
288 * <!-- begin-user-doc -->
289 * <!-- end-user-doc -->
290 * @generated
291 */
292 @Override
293 public double getDisability_percentage() {
294 return disability_percentage;
295 }
296
297 /**
298 * <!-- begin-user-doc -->
299 * <!-- end-user-doc -->
300 * @generated
301 */
302 @Override
303 public void setDisability_percentage(double newDisability_percentage) {
304 double oldDisability_percentage = disability_percentage;
305 disability_percentage = newDisability_percentage;
306 if (eNotificationRequired())
307 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.PHYSICAL_PERSON__DISABILITY_PERCENTAGE, oldDisability_percentage, disability_percentage));
308 }
309
310 /**
311 * <!-- begin-user-doc -->
312 * <!-- end-user-doc -->
313 * @generated
314 */
315 @Override
316 public Disability_Types getDisability_type() {
317 return disability_type;
318 }
319
320 /**
321 * <!-- begin-user-doc -->
322 * <!-- end-user-doc -->
323 * @generated
324 */
325 @Override
326 public void setDisability_type(Disability_Types newDisability_type) {
327 Disability_Types oldDisability_type = disability_type;
328 disability_type = newDisability_type == null ? DISABILITY_TYPE_EDEFAULT : newDisability_type;
329 if (eNotificationRequired())
330 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.PHYSICAL_PERSON__DISABILITY_TYPE, oldDisability_type, disability_type));
331 }
332
333 /**
334 * <!-- begin-user-doc -->
335 * <!-- end-user-doc -->
336 * @generated
337 */
338 @Override
339 public int getBirth_month() {
340 return birth_month;
341 }
342
343 /**
344 * <!-- begin-user-doc -->
345 * <!-- end-user-doc -->
346 * @generated
347 */
348 @Override
349 public void setBirth_month(int newBirth_month) {
350 int oldBirth_month = birth_month;
351 birth_month = newBirth_month;
352 if (eNotificationRequired())
353 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.PHYSICAL_PERSON__BIRTH_MONTH, oldBirth_month, birth_month));
354 }
355
356 /**
357 * <!-- begin-user-doc -->
358 * <!-- end-user-doc -->
359 * @generated
360 */
361 @Override
362 public int getBirth_day() {
363 return birth_day;
364 }
365
366 /**
367 * <!-- begin-user-doc -->
368 * <!-- end-user-doc -->
369 * @generated
370 */
371 @Override
372 public void setBirth_day(int newBirth_day) {
373 int oldBirth_day = birth_day;
374 birth_day = newBirth_day;
375 if (eNotificationRequired())
376 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.PHYSICAL_PERSON__BIRTH_DAY, oldBirth_day, birth_day));
377 }
378
379 /**
380 * <!-- begin-user-doc -->
381 * <!-- end-user-doc -->
382 * @generated
383 */
384 @Override
385 public EList<Expense> getExpenses() {
386 if (expenses == null) {
387 expenses = new EObjectWithInverseResolvingEList<Expense>(Expense.class, this, TaxationWithRootPackage.PHYSICAL_PERSON__EXPENSES, TaxationWithRootPackage.EXPENSE__BENEFICIARY);
388 }
389 return expenses;
390 }
391
392 /**
393 * <!-- begin-user-doc -->
394 * <!-- end-user-doc -->
395 * @generated
396 */
397 @Override
398 public boolean isIs_widower() {
399 return is_widower;
400 }
401
402 /**
403 * <!-- begin-user-doc -->
404 * <!-- end-user-doc -->
405 * @generated
406 */
407 @Override
408 public void setIs_widower(boolean newIs_widower) {
409 boolean oldIs_widower = is_widower;
410 is_widower = newIs_widower;
411 if (eNotificationRequired())
412 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.PHYSICAL_PERSON__IS_WIDOWER, oldIs_widower, is_widower));
413 }
414
415 /**
416 * <!-- begin-user-doc -->
417 * <!-- end-user-doc -->
418 * @generated
419 */
420 @SuppressWarnings("unchecked")
421 @Override
422 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
423 switch (featureID) {
424 case TaxationWithRootPackage.PHYSICAL_PERSON__ADDRESSES:
425 return ((InternalEList<InternalEObject>)(InternalEList<?>)getAddresses()).basicAdd(otherEnd, msgs);
426 case TaxationWithRootPackage.PHYSICAL_PERSON__EXPENSES:
427 return ((InternalEList<InternalEObject>)(InternalEList<?>)getExpenses()).basicAdd(otherEnd, msgs);
428 }
429 return super.eInverseAdd(otherEnd, featureID, msgs);
430 }
431
432 /**
433 * <!-- begin-user-doc -->
434 * <!-- end-user-doc -->
435 * @generated
436 */
437 @Override
438 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
439 switch (featureID) {
440 case TaxationWithRootPackage.PHYSICAL_PERSON__ADDRESSES:
441 return ((InternalEList<?>)getAddresses()).basicRemove(otherEnd, msgs);
442 case TaxationWithRootPackage.PHYSICAL_PERSON__EXPENSES:
443 return ((InternalEList<?>)getExpenses()).basicRemove(otherEnd, msgs);
444 }
445 return super.eInverseRemove(otherEnd, featureID, msgs);
446 }
447
448 /**
449 * <!-- begin-user-doc -->
450 * <!-- end-user-doc -->
451 * @generated
452 */
453 @Override
454 public Object eGet(int featureID, boolean resolve, boolean coreType) {
455 switch (featureID) {
456 case TaxationWithRootPackage.PHYSICAL_PERSON__SS_NO:
457 return getSSNo();
458 case TaxationWithRootPackage.PHYSICAL_PERSON__ADDRESSES:
459 return getAddresses();
460 case TaxationWithRootPackage.PHYSICAL_PERSON__BIRTH_YEAR:
461 return getBirth_year();
462 case TaxationWithRootPackage.PHYSICAL_PERSON__DISABILITY_PERCENTAGE:
463 return getDisability_percentage();
464 case TaxationWithRootPackage.PHYSICAL_PERSON__DISABILITY_TYPE:
465 return getDisability_type();
466 case TaxationWithRootPackage.PHYSICAL_PERSON__BIRTH_MONTH:
467 return getBirth_month();
468 case TaxationWithRootPackage.PHYSICAL_PERSON__BIRTH_DAY:
469 return getBirth_day();
470 case TaxationWithRootPackage.PHYSICAL_PERSON__EXPENSES:
471 return getExpenses();
472 case TaxationWithRootPackage.PHYSICAL_PERSON__IS_WIDOWER:
473 return isIs_widower();
474 }
475 return super.eGet(featureID, resolve, coreType);
476 }
477
478 /**
479 * <!-- begin-user-doc -->
480 * <!-- end-user-doc -->
481 * @generated
482 */
483 @SuppressWarnings("unchecked")
484 @Override
485 public void eSet(int featureID, Object newValue) {
486 switch (featureID) {
487 case TaxationWithRootPackage.PHYSICAL_PERSON__SS_NO:
488 setSSNo((String)newValue);
489 return;
490 case TaxationWithRootPackage.PHYSICAL_PERSON__ADDRESSES:
491 getAddresses().clear();
492 getAddresses().addAll((Collection<? extends Address>)newValue);
493 return;
494 case TaxationWithRootPackage.PHYSICAL_PERSON__BIRTH_YEAR:
495 setBirth_year((Integer)newValue);
496 return;
497 case TaxationWithRootPackage.PHYSICAL_PERSON__DISABILITY_PERCENTAGE:
498 setDisability_percentage((Double)newValue);
499 return;
500 case TaxationWithRootPackage.PHYSICAL_PERSON__DISABILITY_TYPE:
501 setDisability_type((Disability_Types)newValue);
502 return;
503 case TaxationWithRootPackage.PHYSICAL_PERSON__BIRTH_MONTH:
504 setBirth_month((Integer)newValue);
505 return;
506 case TaxationWithRootPackage.PHYSICAL_PERSON__BIRTH_DAY:
507 setBirth_day((Integer)newValue);
508 return;
509 case TaxationWithRootPackage.PHYSICAL_PERSON__EXPENSES:
510 getExpenses().clear();
511 getExpenses().addAll((Collection<? extends Expense>)newValue);
512 return;
513 case TaxationWithRootPackage.PHYSICAL_PERSON__IS_WIDOWER:
514 setIs_widower((Boolean)newValue);
515 return;
516 }
517 super.eSet(featureID, newValue);
518 }
519
520 /**
521 * <!-- begin-user-doc -->
522 * <!-- end-user-doc -->
523 * @generated
524 */
525 @Override
526 public void eUnset(int featureID) {
527 switch (featureID) {
528 case TaxationWithRootPackage.PHYSICAL_PERSON__SS_NO:
529 setSSNo(SS_NO_EDEFAULT);
530 return;
531 case TaxationWithRootPackage.PHYSICAL_PERSON__ADDRESSES:
532 getAddresses().clear();
533 return;
534 case TaxationWithRootPackage.PHYSICAL_PERSON__BIRTH_YEAR:
535 setBirth_year(BIRTH_YEAR_EDEFAULT);
536 return;
537 case TaxationWithRootPackage.PHYSICAL_PERSON__DISABILITY_PERCENTAGE:
538 setDisability_percentage(DISABILITY_PERCENTAGE_EDEFAULT);
539 return;
540 case TaxationWithRootPackage.PHYSICAL_PERSON__DISABILITY_TYPE:
541 setDisability_type(DISABILITY_TYPE_EDEFAULT);
542 return;
543 case TaxationWithRootPackage.PHYSICAL_PERSON__BIRTH_MONTH:
544 setBirth_month(BIRTH_MONTH_EDEFAULT);
545 return;
546 case TaxationWithRootPackage.PHYSICAL_PERSON__BIRTH_DAY:
547 setBirth_day(BIRTH_DAY_EDEFAULT);
548 return;
549 case TaxationWithRootPackage.PHYSICAL_PERSON__EXPENSES:
550 getExpenses().clear();
551 return;
552 case TaxationWithRootPackage.PHYSICAL_PERSON__IS_WIDOWER:
553 setIs_widower(IS_WIDOWER_EDEFAULT);
554 return;
555 }
556 super.eUnset(featureID);
557 }
558
559 /**
560 * <!-- begin-user-doc -->
561 * <!-- end-user-doc -->
562 * @generated
563 */
564 @Override
565 public boolean eIsSet(int featureID) {
566 switch (featureID) {
567 case TaxationWithRootPackage.PHYSICAL_PERSON__SS_NO:
568 return SS_NO_EDEFAULT == null ? ssNo != null : !SS_NO_EDEFAULT.equals(ssNo);
569 case TaxationWithRootPackage.PHYSICAL_PERSON__ADDRESSES:
570 return addresses != null && !addresses.isEmpty();
571 case TaxationWithRootPackage.PHYSICAL_PERSON__BIRTH_YEAR:
572 return birth_year != BIRTH_YEAR_EDEFAULT;
573 case TaxationWithRootPackage.PHYSICAL_PERSON__DISABILITY_PERCENTAGE:
574 return disability_percentage != DISABILITY_PERCENTAGE_EDEFAULT;
575 case TaxationWithRootPackage.PHYSICAL_PERSON__DISABILITY_TYPE:
576 return disability_type != DISABILITY_TYPE_EDEFAULT;
577 case TaxationWithRootPackage.PHYSICAL_PERSON__BIRTH_MONTH:
578 return birth_month != BIRTH_MONTH_EDEFAULT;
579 case TaxationWithRootPackage.PHYSICAL_PERSON__BIRTH_DAY:
580 return birth_day != BIRTH_DAY_EDEFAULT;
581 case TaxationWithRootPackage.PHYSICAL_PERSON__EXPENSES:
582 return expenses != null && !expenses.isEmpty();
583 case TaxationWithRootPackage.PHYSICAL_PERSON__IS_WIDOWER:
584 return is_widower != IS_WIDOWER_EDEFAULT;
585 }
586 return super.eIsSet(featureID);
587 }
588
589 /**
590 * <!-- begin-user-doc -->
591 * <!-- end-user-doc -->
592 * @generated
593 */
594 @Override
595 public String toString() {
596 if (eIsProxy()) return super.toString();
597
598 StringBuilder result = new StringBuilder(super.toString());
599 result.append(" (SSNo: ");
600 result.append(ssNo);
601 result.append(", birth_year: ");
602 result.append(birth_year);
603 result.append(", disability_percentage: ");
604 result.append(disability_percentage);
605 result.append(", disability_type: ");
606 result.append(disability_type);
607 result.append(", birth_month: ");
608 result.append(birth_month);
609 result.append(", birth_day: ");
610 result.append(birth_day);
611 result.append(", is_widower: ");
612 result.append(is_widower);
613 result.append(')');
614 return result.toString();
615 }
616
617} //Physical_PersonImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Private_Insurance_and_PlanImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Private_Insurance_and_PlanImpl.java
new file mode 100644
index 00000000..a2881b29
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Private_Insurance_and_PlanImpl.java
@@ -0,0 +1,221 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Category_of_Private_Insurance_and_Plan;
6import TaxationWithRoot.Private_Insurance_and_Plan;
7import TaxationWithRoot.TaxationWithRootPackage;
8
9import org.eclipse.emf.common.notify.Notification;
10
11import org.eclipse.emf.ecore.EClass;
12
13import org.eclipse.emf.ecore.impl.ENotificationImpl;
14
15/**
16 * <!-- begin-user-doc -->
17 * An implementation of the model object '<em><b>Private Insurance and Plan</b></em>'.
18 * <!-- end-user-doc -->
19 * <p>
20 * The following features are implemented:
21 * </p>
22 * <ul>
23 * <li>{@link TaxationWithRoot.impl.Private_Insurance_and_PlanImpl#getCategory <em>Category</em>}</li>
24 * <li>{@link TaxationWithRoot.impl.Private_Insurance_and_PlanImpl#getDuration_of_contract <em>Duration of contract</em>}</li>
25 * </ul>
26 *
27 * @generated
28 */
29public class Private_Insurance_and_PlanImpl extends Special_Expense_DSImpl implements Private_Insurance_and_Plan {
30 /**
31 * The default value of the '{@link #getCategory() <em>Category</em>}' attribute.
32 * <!-- begin-user-doc -->
33 * <!-- end-user-doc -->
34 * @see #getCategory()
35 * @generated
36 * @ordered
37 */
38 protected static final Category_of_Private_Insurance_and_Plan CATEGORY_EDEFAULT = Category_of_Private_Insurance_and_Plan.PRIVATE_INSURANCE;
39
40 /**
41 * The cached value of the '{@link #getCategory() <em>Category</em>}' attribute.
42 * <!-- begin-user-doc -->
43 * <!-- end-user-doc -->
44 * @see #getCategory()
45 * @generated
46 * @ordered
47 */
48 protected Category_of_Private_Insurance_and_Plan category = CATEGORY_EDEFAULT;
49
50 /**
51 * The default value of the '{@link #getDuration_of_contract() <em>Duration of contract</em>}' attribute.
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @see #getDuration_of_contract()
55 * @generated
56 * @ordered
57 */
58 protected static final int DURATION_OF_CONTRACT_EDEFAULT = 0;
59
60 /**
61 * The cached value of the '{@link #getDuration_of_contract() <em>Duration of contract</em>}' attribute.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @see #getDuration_of_contract()
65 * @generated
66 * @ordered
67 */
68 protected int duration_of_contract = DURATION_OF_CONTRACT_EDEFAULT;
69
70 /**
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @generated
74 */
75 protected Private_Insurance_and_PlanImpl() {
76 super();
77 }
78
79 /**
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @generated
83 */
84 @Override
85 protected EClass eStaticClass() {
86 return TaxationWithRootPackage.Literals.PRIVATE_INSURANCE_AND_PLAN;
87 }
88
89 /**
90 * <!-- begin-user-doc -->
91 * <!-- end-user-doc -->
92 * @generated
93 */
94 @Override
95 public Category_of_Private_Insurance_and_Plan getCategory() {
96 return category;
97 }
98
99 /**
100 * <!-- begin-user-doc -->
101 * <!-- end-user-doc -->
102 * @generated
103 */
104 @Override
105 public void setCategory(Category_of_Private_Insurance_and_Plan newCategory) {
106 Category_of_Private_Insurance_and_Plan oldCategory = category;
107 category = newCategory == null ? CATEGORY_EDEFAULT : newCategory;
108 if (eNotificationRequired())
109 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.PRIVATE_INSURANCE_AND_PLAN__CATEGORY, oldCategory, category));
110 }
111
112 /**
113 * <!-- begin-user-doc -->
114 * <!-- end-user-doc -->
115 * @generated
116 */
117 @Override
118 public int getDuration_of_contract() {
119 return duration_of_contract;
120 }
121
122 /**
123 * <!-- begin-user-doc -->
124 * <!-- end-user-doc -->
125 * @generated
126 */
127 @Override
128 public void setDuration_of_contract(int newDuration_of_contract) {
129 int oldDuration_of_contract = duration_of_contract;
130 duration_of_contract = newDuration_of_contract;
131 if (eNotificationRequired())
132 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.PRIVATE_INSURANCE_AND_PLAN__DURATION_OF_CONTRACT, oldDuration_of_contract, duration_of_contract));
133 }
134
135 /**
136 * <!-- begin-user-doc -->
137 * <!-- end-user-doc -->
138 * @generated
139 */
140 @Override
141 public Object eGet(int featureID, boolean resolve, boolean coreType) {
142 switch (featureID) {
143 case TaxationWithRootPackage.PRIVATE_INSURANCE_AND_PLAN__CATEGORY:
144 return getCategory();
145 case TaxationWithRootPackage.PRIVATE_INSURANCE_AND_PLAN__DURATION_OF_CONTRACT:
146 return getDuration_of_contract();
147 }
148 return super.eGet(featureID, resolve, coreType);
149 }
150
151 /**
152 * <!-- begin-user-doc -->
153 * <!-- end-user-doc -->
154 * @generated
155 */
156 @Override
157 public void eSet(int featureID, Object newValue) {
158 switch (featureID) {
159 case TaxationWithRootPackage.PRIVATE_INSURANCE_AND_PLAN__CATEGORY:
160 setCategory((Category_of_Private_Insurance_and_Plan)newValue);
161 return;
162 case TaxationWithRootPackage.PRIVATE_INSURANCE_AND_PLAN__DURATION_OF_CONTRACT:
163 setDuration_of_contract((Integer)newValue);
164 return;
165 }
166 super.eSet(featureID, newValue);
167 }
168
169 /**
170 * <!-- begin-user-doc -->
171 * <!-- end-user-doc -->
172 * @generated
173 */
174 @Override
175 public void eUnset(int featureID) {
176 switch (featureID) {
177 case TaxationWithRootPackage.PRIVATE_INSURANCE_AND_PLAN__CATEGORY:
178 setCategory(CATEGORY_EDEFAULT);
179 return;
180 case TaxationWithRootPackage.PRIVATE_INSURANCE_AND_PLAN__DURATION_OF_CONTRACT:
181 setDuration_of_contract(DURATION_OF_CONTRACT_EDEFAULT);
182 return;
183 }
184 super.eUnset(featureID);
185 }
186
187 /**
188 * <!-- begin-user-doc -->
189 * <!-- end-user-doc -->
190 * @generated
191 */
192 @Override
193 public boolean eIsSet(int featureID) {
194 switch (featureID) {
195 case TaxationWithRootPackage.PRIVATE_INSURANCE_AND_PLAN__CATEGORY:
196 return category != CATEGORY_EDEFAULT;
197 case TaxationWithRootPackage.PRIVATE_INSURANCE_AND_PLAN__DURATION_OF_CONTRACT:
198 return duration_of_contract != DURATION_OF_CONTRACT_EDEFAULT;
199 }
200 return super.eIsSet(featureID);
201 }
202
203 /**
204 * <!-- begin-user-doc -->
205 * <!-- end-user-doc -->
206 * @generated
207 */
208 @Override
209 public String toString() {
210 if (eIsProxy()) return super.toString();
211
212 StringBuilder result = new StringBuilder(super.toString());
213 result.append(" (category: ");
214 result.append(category);
215 result.append(", duration_of_contract: ");
216 result.append(duration_of_contract);
217 result.append(')');
218 return result.toString();
219 }
220
221} //Private_Insurance_and_PlanImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Professional_ExpenseImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Professional_ExpenseImpl.java
new file mode 100644
index 00000000..3dc4a3ab
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Professional_ExpenseImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Professional_Expense;
6import TaxationWithRoot.TaxationWithRootPackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Professional Expense</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class Professional_ExpenseImpl extends ExpenseImpl implements Professional_Expense {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected Professional_ExpenseImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return TaxationWithRootPackage.Literals.PROFESSIONAL_EXPENSE;
35 }
36
37} //Professional_ExpenseImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Rentals_and_Leases_IncomeImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Rentals_and_Leases_IncomeImpl.java
new file mode 100644
index 00000000..ac9af840
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Rentals_and_Leases_IncomeImpl.java
@@ -0,0 +1,164 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Rentals_and_Leases_Income;
6import TaxationWithRoot.TaxationWithRootPackage;
7
8import org.eclipse.emf.common.notify.Notification;
9
10import org.eclipse.emf.ecore.EClass;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13
14/**
15 * <!-- begin-user-doc -->
16 * An implementation of the model object '<em><b>Rentals and Leases Income</b></em>'.
17 * <!-- end-user-doc -->
18 * <p>
19 * The following features are implemented:
20 * </p>
21 * <ul>
22 * <li>{@link TaxationWithRoot.impl.Rentals_and_Leases_IncomeImpl#isIs_periodic <em>Is periodic</em>}</li>
23 * </ul>
24 *
25 * @generated
26 */
27public class Rentals_and_Leases_IncomeImpl extends Income_TypeImpl implements Rentals_and_Leases_Income {
28 /**
29 * The default value of the '{@link #isIs_periodic() <em>Is periodic</em>}' attribute.
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @see #isIs_periodic()
33 * @generated
34 * @ordered
35 */
36 protected static final boolean IS_PERIODIC_EDEFAULT = true;
37
38 /**
39 * The cached value of the '{@link #isIs_periodic() <em>Is periodic</em>}' attribute.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @see #isIs_periodic()
43 * @generated
44 * @ordered
45 */
46 protected boolean is_periodic = IS_PERIODIC_EDEFAULT;
47
48 /**
49 * <!-- begin-user-doc -->
50 * <!-- end-user-doc -->
51 * @generated
52 */
53 protected Rentals_and_Leases_IncomeImpl() {
54 super();
55 }
56
57 /**
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @generated
61 */
62 @Override
63 protected EClass eStaticClass() {
64 return TaxationWithRootPackage.Literals.RENTALS_AND_LEASES_INCOME;
65 }
66
67 /**
68 * <!-- begin-user-doc -->
69 * <!-- end-user-doc -->
70 * @generated
71 */
72 @Override
73 public boolean isIs_periodic() {
74 return is_periodic;
75 }
76
77 /**
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @generated
81 */
82 @Override
83 public void setIs_periodic(boolean newIs_periodic) {
84 boolean oldIs_periodic = is_periodic;
85 is_periodic = newIs_periodic;
86 if (eNotificationRequired())
87 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.RENTALS_AND_LEASES_INCOME__IS_PERIODIC, oldIs_periodic, is_periodic));
88 }
89
90 /**
91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc -->
93 * @generated
94 */
95 @Override
96 public Object eGet(int featureID, boolean resolve, boolean coreType) {
97 switch (featureID) {
98 case TaxationWithRootPackage.RENTALS_AND_LEASES_INCOME__IS_PERIODIC:
99 return isIs_periodic();
100 }
101 return super.eGet(featureID, resolve, coreType);
102 }
103
104 /**
105 * <!-- begin-user-doc -->
106 * <!-- end-user-doc -->
107 * @generated
108 */
109 @Override
110 public void eSet(int featureID, Object newValue) {
111 switch (featureID) {
112 case TaxationWithRootPackage.RENTALS_AND_LEASES_INCOME__IS_PERIODIC:
113 setIs_periodic((Boolean)newValue);
114 return;
115 }
116 super.eSet(featureID, newValue);
117 }
118
119 /**
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @generated
123 */
124 @Override
125 public void eUnset(int featureID) {
126 switch (featureID) {
127 case TaxationWithRootPackage.RENTALS_AND_LEASES_INCOME__IS_PERIODIC:
128 setIs_periodic(IS_PERIODIC_EDEFAULT);
129 return;
130 }
131 super.eUnset(featureID);
132 }
133
134 /**
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @generated
138 */
139 @Override
140 public boolean eIsSet(int featureID) {
141 switch (featureID) {
142 case TaxationWithRootPackage.RENTALS_AND_LEASES_INCOME__IS_PERIODIC:
143 return is_periodic != IS_PERIODIC_EDEFAULT;
144 }
145 return super.eIsSet(featureID);
146 }
147
148 /**
149 * <!-- begin-user-doc -->
150 * <!-- end-user-doc -->
151 * @generated
152 */
153 @Override
154 public String toString() {
155 if (eIsProxy()) return super.toString();
156
157 StringBuilder result = new StringBuilder(super.toString());
158 result.append(" (is_periodic: ");
159 result.append(is_periodic);
160 result.append(')');
161 return result.toString();
162 }
163
164} //Rentals_and_Leases_IncomeImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Resident_Tax_PayerImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Resident_Tax_PayerImpl.java
new file mode 100644
index 00000000..e18a3490
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Resident_Tax_PayerImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Resident_Tax_Payer;
6import TaxationWithRoot.TaxationWithRootPackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Resident Tax Payer</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class Resident_Tax_PayerImpl extends Tax_PayerImpl implements Resident_Tax_Payer {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected Resident_Tax_PayerImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return TaxationWithRootPackage.Literals.RESIDENT_TAX_PAYER;
35 }
36
37} //Resident_Tax_PayerImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/ResourceImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/ResourceImpl.java
new file mode 100644
index 00000000..27e76c61
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/ResourceImpl.java
@@ -0,0 +1,153 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Household;
6import TaxationWithRoot.Resource;
7import TaxationWithRoot.TaxationWithRootPackage;
8
9import java.util.Collection;
10
11import org.eclipse.emf.common.notify.NotificationChain;
12
13import org.eclipse.emf.common.util.EList;
14
15import org.eclipse.emf.ecore.EClass;
16import org.eclipse.emf.ecore.InternalEObject;
17
18import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
19
20import org.eclipse.emf.ecore.util.EObjectContainmentEList;
21import org.eclipse.emf.ecore.util.InternalEList;
22
23/**
24 * <!-- begin-user-doc -->
25 * An implementation of the model object '<em><b>Resource</b></em>'.
26 * <!-- end-user-doc -->
27 * <p>
28 * The following features are implemented:
29 * </p>
30 * <ul>
31 * <li>{@link TaxationWithRoot.impl.ResourceImpl#getContains <em>Contains</em>}</li>
32 * </ul>
33 *
34 * @generated
35 */
36public class ResourceImpl extends MinimalEObjectImpl.Container implements Resource {
37 /**
38 * The cached value of the '{@link #getContains() <em>Contains</em>}' containment reference list.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @see #getContains()
42 * @generated
43 * @ordered
44 */
45 protected EList<Household> contains;
46
47 /**
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @generated
51 */
52 protected ResourceImpl() {
53 super();
54 }
55
56 /**
57 * <!-- begin-user-doc -->
58 * <!-- end-user-doc -->
59 * @generated
60 */
61 @Override
62 protected EClass eStaticClass() {
63 return TaxationWithRootPackage.Literals.RESOURCE;
64 }
65
66 /**
67 * <!-- begin-user-doc -->
68 * <!-- end-user-doc -->
69 * @generated
70 */
71 @Override
72 public EList<Household> getContains() {
73 if (contains == null) {
74 contains = new EObjectContainmentEList<Household>(Household.class, this, TaxationWithRootPackage.RESOURCE__CONTAINS);
75 }
76 return contains;
77 }
78
79 /**
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @generated
83 */
84 @Override
85 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
86 switch (featureID) {
87 case TaxationWithRootPackage.RESOURCE__CONTAINS:
88 return ((InternalEList<?>)getContains()).basicRemove(otherEnd, msgs);
89 }
90 return super.eInverseRemove(otherEnd, featureID, msgs);
91 }
92
93 /**
94 * <!-- begin-user-doc -->
95 * <!-- end-user-doc -->
96 * @generated
97 */
98 @Override
99 public Object eGet(int featureID, boolean resolve, boolean coreType) {
100 switch (featureID) {
101 case TaxationWithRootPackage.RESOURCE__CONTAINS:
102 return getContains();
103 }
104 return super.eGet(featureID, resolve, coreType);
105 }
106
107 /**
108 * <!-- begin-user-doc -->
109 * <!-- end-user-doc -->
110 * @generated
111 */
112 @SuppressWarnings("unchecked")
113 @Override
114 public void eSet(int featureID, Object newValue) {
115 switch (featureID) {
116 case TaxationWithRootPackage.RESOURCE__CONTAINS:
117 getContains().clear();
118 getContains().addAll((Collection<? extends Household>)newValue);
119 return;
120 }
121 super.eSet(featureID, newValue);
122 }
123
124 /**
125 * <!-- begin-user-doc -->
126 * <!-- end-user-doc -->
127 * @generated
128 */
129 @Override
130 public void eUnset(int featureID) {
131 switch (featureID) {
132 case TaxationWithRootPackage.RESOURCE__CONTAINS:
133 getContains().clear();
134 return;
135 }
136 super.eUnset(featureID);
137 }
138
139 /**
140 * <!-- begin-user-doc -->
141 * <!-- end-user-doc -->
142 * @generated
143 */
144 @Override
145 public boolean eIsSet(int featureID) {
146 switch (featureID) {
147 case TaxationWithRootPackage.RESOURCE__CONTAINS:
148 return contains != null && !contains.isEmpty();
149 }
150 return super.eIsSet(featureID);
151 }
152
153} //ResourceImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Special_Expense_DSImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Special_Expense_DSImpl.java
new file mode 100644
index 00000000..c2dcf8e5
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Special_Expense_DSImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Special_Expense_DS;
6import TaxationWithRoot.TaxationWithRootPackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Special Expense DS</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class Special_Expense_DSImpl extends ExpenseImpl implements Special_Expense_DS {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected Special_Expense_DSImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return TaxationWithRootPackage.Literals.SPECIAL_EXPENSE_DS;
35 }
36
37} //Special_Expense_DSImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Spousal_Expense_ACImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Spousal_Expense_ACImpl.java
new file mode 100644
index 00000000..2fc910e3
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Spousal_Expense_ACImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Spousal_Expense_AC;
6import TaxationWithRoot.TaxationWithRootPackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Spousal Expense AC</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class Spousal_Expense_ACImpl extends ExpenseImpl implements Spousal_Expense_AC {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected Spousal_Expense_ACImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return TaxationWithRootPackage.Literals.SPOUSAL_EXPENSE_AC;
35 }
36
37} //Spousal_Expense_ACImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Tax_CardImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Tax_CardImpl.java
new file mode 100644
index 00000000..9f457341
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Tax_CardImpl.java
@@ -0,0 +1,2093 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Address;
6import TaxationWithRoot.Income;
7import TaxationWithRoot.Income_Tax_Credit;
8import TaxationWithRoot.Job_Activity;
9import TaxationWithRoot.Tax_Card;
10import TaxationWithRoot.Tax_Office;
11import TaxationWithRoot.TaxationWithRootPackage;
12import TaxationWithRoot.Town;
13
14import java.util.Collection;
15
16import org.eclipse.emf.common.notify.Notification;
17import org.eclipse.emf.common.notify.NotificationChain;
18
19import org.eclipse.emf.common.util.EList;
20
21import org.eclipse.emf.ecore.EClass;
22import org.eclipse.emf.ecore.InternalEObject;
23
24import org.eclipse.emf.ecore.impl.ENotificationImpl;
25import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
26
27import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
28import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
29import org.eclipse.emf.ecore.util.EcoreUtil;
30import org.eclipse.emf.ecore.util.InternalEList;
31
32/**
33 * <!-- begin-user-doc -->
34 * An implementation of the model object '<em><b>Tax Card</b></em>'.
35 * <!-- end-user-doc -->
36 * <p>
37 * The following features are implemented:
38 * </p>
39 * <ul>
40 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getCard_identifier <em>Card identifier</em>}</li>
41 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getTax_office <em>Tax office</em>}</li>
42 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getPercentage_of_witholding <em>Percentage of witholding</em>}</li>
43 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getTax_payers_name_surname <em>Tax payers name surname</em>}</li>
44 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getTax_payers_partner_name_surname <em>Tax payers partner name surname</em>}</li>
45 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getTax_payers_address <em>Tax payers address</em>}</li>
46 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getJobs_Employer_SSNo <em>Jobs Employer SS No</em>}</li>
47 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getJobs_employers_name <em>Jobs employers name</em>}</li>
48 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getJobs_activity_type <em>Jobs activity type</em>}</li>
49 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getJobs_place_of_work <em>Jobs place of work</em>}</li>
50 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getDeduction_FD_daily <em>Deduction FD daily</em>}</li>
51 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getDeduction_FD_monthly <em>Deduction FD monthly</em>}</li>
52 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getDeduction_AC_daily <em>Deduction AC daily</em>}</li>
53 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getDeduction_AC_monthly <em>Deduction AC monthly</em>}</li>
54 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getDeduction_AC_yearly <em>Deduction AC yearly</em>}</li>
55 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getDeduction_CE_daily <em>Deduction CE daily</em>}</li>
56 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getDeduction_CE_monthly <em>Deduction CE monthly</em>}</li>
57 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getDeduction_CE_yearly <em>Deduction CE yearly</em>}</li>
58 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getDeduction_DS_daily <em>Deduction DS daily</em>}</li>
59 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getDeduction_DS_monthly <em>Deduction DS monthly</em>}</li>
60 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getDeduction_FO_daily <em>Deduction FO daily</em>}</li>
61 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getDeduction_FO_monthly <em>Deduction FO monthly</em>}</li>
62 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getDeduction_FO_yearly <em>Deduction FO yearly</em>}</li>
63 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getCredit_CIS_daily <em>Credit CIS daily</em>}</li>
64 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getCredit_CIS_monthly <em>Credit CIS monthly</em>}</li>
65 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getCredit_CIM_daily <em>Credit CIM daily</em>}</li>
66 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#isValidity <em>Validity</em>}</li>
67 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getIncome_Tax_Credit <em>Income Tax Credit</em>}</li>
68 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getPrevious <em>Previous</em>}</li>
69 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getCurrent_tax_card <em>Current tax card</em>}</li>
70 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getCredit_CIM_yearly <em>Credit CIM yearly</em>}</li>
71 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getDeduction_DS_Alimony_yearly <em>Deduction DS Alimony yearly</em>}</li>
72 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getDeduction_DS_Debt_yearly <em>Deduction DS Debt yearly</em>}</li>
73 * <li>{@link TaxationWithRoot.impl.Tax_CardImpl#getIncome <em>Income</em>}</li>
74 * </ul>
75 *
76 * @generated
77 */
78public class Tax_CardImpl extends MinimalEObjectImpl.Container implements Tax_Card {
79 /**
80 * The default value of the '{@link #getCard_identifier() <em>Card identifier</em>}' attribute.
81 * <!-- begin-user-doc -->
82 * <!-- end-user-doc -->
83 * @see #getCard_identifier()
84 * @generated
85 * @ordered
86 */
87 protected static final String CARD_IDENTIFIER_EDEFAULT = null;
88
89 /**
90 * The cached value of the '{@link #getCard_identifier() <em>Card identifier</em>}' attribute.
91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc -->
93 * @see #getCard_identifier()
94 * @generated
95 * @ordered
96 */
97 protected String card_identifier = CARD_IDENTIFIER_EDEFAULT;
98
99 /**
100 * The default value of the '{@link #getTax_office() <em>Tax office</em>}' attribute.
101 * <!-- begin-user-doc -->
102 * <!-- end-user-doc -->
103 * @see #getTax_office()
104 * @generated
105 * @ordered
106 */
107 protected static final Tax_Office TAX_OFFICE_EDEFAULT = Tax_Office.RTS_2;
108
109 /**
110 * The cached value of the '{@link #getTax_office() <em>Tax office</em>}' attribute.
111 * <!-- begin-user-doc -->
112 * <!-- end-user-doc -->
113 * @see #getTax_office()
114 * @generated
115 * @ordered
116 */
117 protected Tax_Office tax_office = TAX_OFFICE_EDEFAULT;
118
119 /**
120 * The default value of the '{@link #getPercentage_of_witholding() <em>Percentage of witholding</em>}' attribute.
121 * <!-- begin-user-doc -->
122 * <!-- end-user-doc -->
123 * @see #getPercentage_of_witholding()
124 * @generated
125 * @ordered
126 */
127 protected static final double PERCENTAGE_OF_WITHOLDING_EDEFAULT = 0.0;
128
129 /**
130 * The cached value of the '{@link #getPercentage_of_witholding() <em>Percentage of witholding</em>}' attribute.
131 * <!-- begin-user-doc -->
132 * <!-- end-user-doc -->
133 * @see #getPercentage_of_witholding()
134 * @generated
135 * @ordered
136 */
137 protected double percentage_of_witholding = PERCENTAGE_OF_WITHOLDING_EDEFAULT;
138
139 /**
140 * The cached value of the '{@link #getTax_payers_name_surname() <em>Tax payers name surname</em>}' attribute list.
141 * <!-- begin-user-doc -->
142 * <!-- end-user-doc -->
143 * @see #getTax_payers_name_surname()
144 * @generated
145 * @ordered
146 */
147 protected EList<String> tax_payers_name_surname;
148
149 /**
150 * The cached value of the '{@link #getTax_payers_partner_name_surname() <em>Tax payers partner name surname</em>}' attribute list.
151 * <!-- begin-user-doc -->
152 * <!-- end-user-doc -->
153 * @see #getTax_payers_partner_name_surname()
154 * @generated
155 * @ordered
156 */
157 protected EList<String> tax_payers_partner_name_surname;
158
159 /**
160 * The cached value of the '{@link #getTax_payers_address() <em>Tax payers address</em>}' reference.
161 * <!-- begin-user-doc -->
162 * <!-- end-user-doc -->
163 * @see #getTax_payers_address()
164 * @generated
165 * @ordered
166 */
167 protected Address tax_payers_address;
168
169 /**
170 * The default value of the '{@link #getJobs_Employer_SSNo() <em>Jobs Employer SS No</em>}' attribute.
171 * <!-- begin-user-doc -->
172 * <!-- end-user-doc -->
173 * @see #getJobs_Employer_SSNo()
174 * @generated
175 * @ordered
176 */
177 protected static final String JOBS_EMPLOYER_SS_NO_EDEFAULT = null;
178
179 /**
180 * The cached value of the '{@link #getJobs_Employer_SSNo() <em>Jobs Employer SS No</em>}' attribute.
181 * <!-- begin-user-doc -->
182 * <!-- end-user-doc -->
183 * @see #getJobs_Employer_SSNo()
184 * @generated
185 * @ordered
186 */
187 protected String jobs_Employer_SSNo = JOBS_EMPLOYER_SS_NO_EDEFAULT;
188
189 /**
190 * The default value of the '{@link #getJobs_employers_name() <em>Jobs employers name</em>}' attribute.
191 * <!-- begin-user-doc -->
192 * <!-- end-user-doc -->
193 * @see #getJobs_employers_name()
194 * @generated
195 * @ordered
196 */
197 protected static final String JOBS_EMPLOYERS_NAME_EDEFAULT = null;
198
199 /**
200 * The cached value of the '{@link #getJobs_employers_name() <em>Jobs employers name</em>}' attribute.
201 * <!-- begin-user-doc -->
202 * <!-- end-user-doc -->
203 * @see #getJobs_employers_name()
204 * @generated
205 * @ordered
206 */
207 protected String jobs_employers_name = JOBS_EMPLOYERS_NAME_EDEFAULT;
208
209 /**
210 * The default value of the '{@link #getJobs_activity_type() <em>Jobs activity type</em>}' attribute.
211 * <!-- begin-user-doc -->
212 * <!-- end-user-doc -->
213 * @see #getJobs_activity_type()
214 * @generated
215 * @ordered
216 */
217 protected static final Job_Activity JOBS_ACTIVITY_TYPE_EDEFAULT = Job_Activity.SALARY;
218
219 /**
220 * The cached value of the '{@link #getJobs_activity_type() <em>Jobs activity type</em>}' attribute.
221 * <!-- begin-user-doc -->
222 * <!-- end-user-doc -->
223 * @see #getJobs_activity_type()
224 * @generated
225 * @ordered
226 */
227 protected Job_Activity jobs_activity_type = JOBS_ACTIVITY_TYPE_EDEFAULT;
228
229 /**
230 * The default value of the '{@link #getJobs_place_of_work() <em>Jobs place of work</em>}' attribute.
231 * <!-- begin-user-doc -->
232 * <!-- end-user-doc -->
233 * @see #getJobs_place_of_work()
234 * @generated
235 * @ordered
236 */
237 protected static final Town JOBS_PLACE_OF_WORK_EDEFAULT = Town.LL;
238
239 /**
240 * The cached value of the '{@link #getJobs_place_of_work() <em>Jobs place of work</em>}' attribute.
241 * <!-- begin-user-doc -->
242 * <!-- end-user-doc -->
243 * @see #getJobs_place_of_work()
244 * @generated
245 * @ordered
246 */
247 protected Town jobs_place_of_work = JOBS_PLACE_OF_WORK_EDEFAULT;
248
249 /**
250 * The default value of the '{@link #getDeduction_FD_daily() <em>Deduction FD daily</em>}' attribute.
251 * <!-- begin-user-doc -->
252 * <!-- end-user-doc -->
253 * @see #getDeduction_FD_daily()
254 * @generated
255 * @ordered
256 */
257 protected static final double DEDUCTION_FD_DAILY_EDEFAULT = 0.0;
258
259 /**
260 * The cached value of the '{@link #getDeduction_FD_daily() <em>Deduction FD daily</em>}' attribute.
261 * <!-- begin-user-doc -->
262 * <!-- end-user-doc -->
263 * @see #getDeduction_FD_daily()
264 * @generated
265 * @ordered
266 */
267 protected double deduction_FD_daily = DEDUCTION_FD_DAILY_EDEFAULT;
268
269 /**
270 * The default value of the '{@link #getDeduction_FD_monthly() <em>Deduction FD monthly</em>}' attribute.
271 * <!-- begin-user-doc -->
272 * <!-- end-user-doc -->
273 * @see #getDeduction_FD_monthly()
274 * @generated
275 * @ordered
276 */
277 protected static final double DEDUCTION_FD_MONTHLY_EDEFAULT = 0.0;
278
279 /**
280 * The cached value of the '{@link #getDeduction_FD_monthly() <em>Deduction FD monthly</em>}' attribute.
281 * <!-- begin-user-doc -->
282 * <!-- end-user-doc -->
283 * @see #getDeduction_FD_monthly()
284 * @generated
285 * @ordered
286 */
287 protected double deduction_FD_monthly = DEDUCTION_FD_MONTHLY_EDEFAULT;
288
289 /**
290 * The default value of the '{@link #getDeduction_AC_daily() <em>Deduction AC daily</em>}' attribute.
291 * <!-- begin-user-doc -->
292 * <!-- end-user-doc -->
293 * @see #getDeduction_AC_daily()
294 * @generated
295 * @ordered
296 */
297 protected static final double DEDUCTION_AC_DAILY_EDEFAULT = 0.0;
298
299 /**
300 * The cached value of the '{@link #getDeduction_AC_daily() <em>Deduction AC daily</em>}' attribute.
301 * <!-- begin-user-doc -->
302 * <!-- end-user-doc -->
303 * @see #getDeduction_AC_daily()
304 * @generated
305 * @ordered
306 */
307 protected double deduction_AC_daily = DEDUCTION_AC_DAILY_EDEFAULT;
308
309 /**
310 * The default value of the '{@link #getDeduction_AC_monthly() <em>Deduction AC monthly</em>}' attribute.
311 * <!-- begin-user-doc -->
312 * <!-- end-user-doc -->
313 * @see #getDeduction_AC_monthly()
314 * @generated
315 * @ordered
316 */
317 protected static final double DEDUCTION_AC_MONTHLY_EDEFAULT = 0.0;
318
319 /**
320 * The cached value of the '{@link #getDeduction_AC_monthly() <em>Deduction AC monthly</em>}' attribute.
321 * <!-- begin-user-doc -->
322 * <!-- end-user-doc -->
323 * @see #getDeduction_AC_monthly()
324 * @generated
325 * @ordered
326 */
327 protected double deduction_AC_monthly = DEDUCTION_AC_MONTHLY_EDEFAULT;
328
329 /**
330 * The default value of the '{@link #getDeduction_AC_yearly() <em>Deduction AC yearly</em>}' attribute.
331 * <!-- begin-user-doc -->
332 * <!-- end-user-doc -->
333 * @see #getDeduction_AC_yearly()
334 * @generated
335 * @ordered
336 */
337 protected static final double DEDUCTION_AC_YEARLY_EDEFAULT = 0.0;
338
339 /**
340 * The cached value of the '{@link #getDeduction_AC_yearly() <em>Deduction AC yearly</em>}' attribute.
341 * <!-- begin-user-doc -->
342 * <!-- end-user-doc -->
343 * @see #getDeduction_AC_yearly()
344 * @generated
345 * @ordered
346 */
347 protected double deduction_AC_yearly = DEDUCTION_AC_YEARLY_EDEFAULT;
348
349 /**
350 * The default value of the '{@link #getDeduction_CE_daily() <em>Deduction CE daily</em>}' attribute.
351 * <!-- begin-user-doc -->
352 * <!-- end-user-doc -->
353 * @see #getDeduction_CE_daily()
354 * @generated
355 * @ordered
356 */
357 protected static final double DEDUCTION_CE_DAILY_EDEFAULT = 0.0;
358
359 /**
360 * The cached value of the '{@link #getDeduction_CE_daily() <em>Deduction CE daily</em>}' attribute.
361 * <!-- begin-user-doc -->
362 * <!-- end-user-doc -->
363 * @see #getDeduction_CE_daily()
364 * @generated
365 * @ordered
366 */
367 protected double deduction_CE_daily = DEDUCTION_CE_DAILY_EDEFAULT;
368
369 /**
370 * The default value of the '{@link #getDeduction_CE_monthly() <em>Deduction CE monthly</em>}' attribute.
371 * <!-- begin-user-doc -->
372 * <!-- end-user-doc -->
373 * @see #getDeduction_CE_monthly()
374 * @generated
375 * @ordered
376 */
377 protected static final double DEDUCTION_CE_MONTHLY_EDEFAULT = 0.0;
378
379 /**
380 * The cached value of the '{@link #getDeduction_CE_monthly() <em>Deduction CE monthly</em>}' attribute.
381 * <!-- begin-user-doc -->
382 * <!-- end-user-doc -->
383 * @see #getDeduction_CE_monthly()
384 * @generated
385 * @ordered
386 */
387 protected double deduction_CE_monthly = DEDUCTION_CE_MONTHLY_EDEFAULT;
388
389 /**
390 * The default value of the '{@link #getDeduction_CE_yearly() <em>Deduction CE yearly</em>}' attribute.
391 * <!-- begin-user-doc -->
392 * <!-- end-user-doc -->
393 * @see #getDeduction_CE_yearly()
394 * @generated
395 * @ordered
396 */
397 protected static final double DEDUCTION_CE_YEARLY_EDEFAULT = 0.0;
398
399 /**
400 * The cached value of the '{@link #getDeduction_CE_yearly() <em>Deduction CE yearly</em>}' attribute.
401 * <!-- begin-user-doc -->
402 * <!-- end-user-doc -->
403 * @see #getDeduction_CE_yearly()
404 * @generated
405 * @ordered
406 */
407 protected double deduction_CE_yearly = DEDUCTION_CE_YEARLY_EDEFAULT;
408
409 /**
410 * The default value of the '{@link #getDeduction_DS_daily() <em>Deduction DS daily</em>}' attribute.
411 * <!-- begin-user-doc -->
412 * <!-- end-user-doc -->
413 * @see #getDeduction_DS_daily()
414 * @generated
415 * @ordered
416 */
417 protected static final double DEDUCTION_DS_DAILY_EDEFAULT = 0.0;
418
419 /**
420 * The cached value of the '{@link #getDeduction_DS_daily() <em>Deduction DS daily</em>}' attribute.
421 * <!-- begin-user-doc -->
422 * <!-- end-user-doc -->
423 * @see #getDeduction_DS_daily()
424 * @generated
425 * @ordered
426 */
427 protected double deduction_DS_daily = DEDUCTION_DS_DAILY_EDEFAULT;
428
429 /**
430 * The default value of the '{@link #getDeduction_DS_monthly() <em>Deduction DS monthly</em>}' attribute.
431 * <!-- begin-user-doc -->
432 * <!-- end-user-doc -->
433 * @see #getDeduction_DS_monthly()
434 * @generated
435 * @ordered
436 */
437 protected static final double DEDUCTION_DS_MONTHLY_EDEFAULT = 0.0;
438
439 /**
440 * The cached value of the '{@link #getDeduction_DS_monthly() <em>Deduction DS monthly</em>}' attribute.
441 * <!-- begin-user-doc -->
442 * <!-- end-user-doc -->
443 * @see #getDeduction_DS_monthly()
444 * @generated
445 * @ordered
446 */
447 protected double deduction_DS_monthly = DEDUCTION_DS_MONTHLY_EDEFAULT;
448
449 /**
450 * The default value of the '{@link #getDeduction_FO_daily() <em>Deduction FO daily</em>}' attribute.
451 * <!-- begin-user-doc -->
452 * <!-- end-user-doc -->
453 * @see #getDeduction_FO_daily()
454 * @generated
455 * @ordered
456 */
457 protected static final double DEDUCTION_FO_DAILY_EDEFAULT = 0.0;
458
459 /**
460 * The cached value of the '{@link #getDeduction_FO_daily() <em>Deduction FO daily</em>}' attribute.
461 * <!-- begin-user-doc -->
462 * <!-- end-user-doc -->
463 * @see #getDeduction_FO_daily()
464 * @generated
465 * @ordered
466 */
467 protected double deduction_FO_daily = DEDUCTION_FO_DAILY_EDEFAULT;
468
469 /**
470 * The default value of the '{@link #getDeduction_FO_monthly() <em>Deduction FO monthly</em>}' attribute.
471 * <!-- begin-user-doc -->
472 * <!-- end-user-doc -->
473 * @see #getDeduction_FO_monthly()
474 * @generated
475 * @ordered
476 */
477 protected static final double DEDUCTION_FO_MONTHLY_EDEFAULT = 0.0;
478
479 /**
480 * The cached value of the '{@link #getDeduction_FO_monthly() <em>Deduction FO monthly</em>}' attribute.
481 * <!-- begin-user-doc -->
482 * <!-- end-user-doc -->
483 * @see #getDeduction_FO_monthly()
484 * @generated
485 * @ordered
486 */
487 protected double deduction_FO_monthly = DEDUCTION_FO_MONTHLY_EDEFAULT;
488
489 /**
490 * The default value of the '{@link #getDeduction_FO_yearly() <em>Deduction FO yearly</em>}' attribute.
491 * <!-- begin-user-doc -->
492 * <!-- end-user-doc -->
493 * @see #getDeduction_FO_yearly()
494 * @generated
495 * @ordered
496 */
497 protected static final double DEDUCTION_FO_YEARLY_EDEFAULT = 0.0;
498
499 /**
500 * The cached value of the '{@link #getDeduction_FO_yearly() <em>Deduction FO yearly</em>}' attribute.
501 * <!-- begin-user-doc -->
502 * <!-- end-user-doc -->
503 * @see #getDeduction_FO_yearly()
504 * @generated
505 * @ordered
506 */
507 protected double deduction_FO_yearly = DEDUCTION_FO_YEARLY_EDEFAULT;
508
509 /**
510 * The default value of the '{@link #getCredit_CIS_daily() <em>Credit CIS daily</em>}' attribute.
511 * <!-- begin-user-doc -->
512 * <!-- end-user-doc -->
513 * @see #getCredit_CIS_daily()
514 * @generated
515 * @ordered
516 */
517 protected static final double CREDIT_CIS_DAILY_EDEFAULT = 0.0;
518
519 /**
520 * The cached value of the '{@link #getCredit_CIS_daily() <em>Credit CIS daily</em>}' attribute.
521 * <!-- begin-user-doc -->
522 * <!-- end-user-doc -->
523 * @see #getCredit_CIS_daily()
524 * @generated
525 * @ordered
526 */
527 protected double credit_CIS_daily = CREDIT_CIS_DAILY_EDEFAULT;
528
529 /**
530 * The default value of the '{@link #getCredit_CIS_monthly() <em>Credit CIS monthly</em>}' attribute.
531 * <!-- begin-user-doc -->
532 * <!-- end-user-doc -->
533 * @see #getCredit_CIS_monthly()
534 * @generated
535 * @ordered
536 */
537 protected static final double CREDIT_CIS_MONTHLY_EDEFAULT = 0.0;
538
539 /**
540 * The cached value of the '{@link #getCredit_CIS_monthly() <em>Credit CIS monthly</em>}' attribute.
541 * <!-- begin-user-doc -->
542 * <!-- end-user-doc -->
543 * @see #getCredit_CIS_monthly()
544 * @generated
545 * @ordered
546 */
547 protected double credit_CIS_monthly = CREDIT_CIS_MONTHLY_EDEFAULT;
548
549 /**
550 * The default value of the '{@link #getCredit_CIM_daily() <em>Credit CIM daily</em>}' attribute.
551 * <!-- begin-user-doc -->
552 * <!-- end-user-doc -->
553 * @see #getCredit_CIM_daily()
554 * @generated
555 * @ordered
556 */
557 protected static final double CREDIT_CIM_DAILY_EDEFAULT = 0.0;
558
559 /**
560 * The cached value of the '{@link #getCredit_CIM_daily() <em>Credit CIM daily</em>}' attribute.
561 * <!-- begin-user-doc -->
562 * <!-- end-user-doc -->
563 * @see #getCredit_CIM_daily()
564 * @generated
565 * @ordered
566 */
567 protected double credit_CIM_daily = CREDIT_CIM_DAILY_EDEFAULT;
568
569 /**
570 * The default value of the '{@link #isValidity() <em>Validity</em>}' attribute.
571 * <!-- begin-user-doc -->
572 * <!-- end-user-doc -->
573 * @see #isValidity()
574 * @generated
575 * @ordered
576 */
577 protected static final boolean VALIDITY_EDEFAULT = false;
578
579 /**
580 * The cached value of the '{@link #isValidity() <em>Validity</em>}' attribute.
581 * <!-- begin-user-doc -->
582 * <!-- end-user-doc -->
583 * @see #isValidity()
584 * @generated
585 * @ordered
586 */
587 protected boolean validity = VALIDITY_EDEFAULT;
588
589 /**
590 * The cached value of the '{@link #getIncome_Tax_Credit() <em>Income Tax Credit</em>}' reference list.
591 * <!-- begin-user-doc -->
592 * <!-- end-user-doc -->
593 * @see #getIncome_Tax_Credit()
594 * @generated
595 * @ordered
596 */
597 protected EList<Income_Tax_Credit> income_Tax_Credit;
598
599 /**
600 * The cached value of the '{@link #getPrevious() <em>Previous</em>}' reference.
601 * <!-- begin-user-doc -->
602 * <!-- end-user-doc -->
603 * @see #getPrevious()
604 * @generated
605 * @ordered
606 */
607 protected Tax_Card previous;
608
609 /**
610 * The cached value of the '{@link #getCurrent_tax_card() <em>Current tax card</em>}' reference.
611 * <!-- begin-user-doc -->
612 * <!-- end-user-doc -->
613 * @see #getCurrent_tax_card()
614 * @generated
615 * @ordered
616 */
617 protected Tax_Card current_tax_card;
618
619 /**
620 * The default value of the '{@link #getCredit_CIM_yearly() <em>Credit CIM yearly</em>}' attribute.
621 * <!-- begin-user-doc -->
622 * <!-- end-user-doc -->
623 * @see #getCredit_CIM_yearly()
624 * @generated
625 * @ordered
626 */
627 protected static final double CREDIT_CIM_YEARLY_EDEFAULT = 0.0;
628
629 /**
630 * The cached value of the '{@link #getCredit_CIM_yearly() <em>Credit CIM yearly</em>}' attribute.
631 * <!-- begin-user-doc -->
632 * <!-- end-user-doc -->
633 * @see #getCredit_CIM_yearly()
634 * @generated
635 * @ordered
636 */
637 protected double credit_CIM_yearly = CREDIT_CIM_YEARLY_EDEFAULT;
638
639 /**
640 * The default value of the '{@link #getDeduction_DS_Alimony_yearly() <em>Deduction DS Alimony yearly</em>}' attribute.
641 * <!-- begin-user-doc -->
642 * <!-- end-user-doc -->
643 * @see #getDeduction_DS_Alimony_yearly()
644 * @generated
645 * @ordered
646 */
647 protected static final double DEDUCTION_DS_ALIMONY_YEARLY_EDEFAULT = 0.0;
648
649 /**
650 * The cached value of the '{@link #getDeduction_DS_Alimony_yearly() <em>Deduction DS Alimony yearly</em>}' attribute.
651 * <!-- begin-user-doc -->
652 * <!-- end-user-doc -->
653 * @see #getDeduction_DS_Alimony_yearly()
654 * @generated
655 * @ordered
656 */
657 protected double deduction_DS_Alimony_yearly = DEDUCTION_DS_ALIMONY_YEARLY_EDEFAULT;
658
659 /**
660 * The default value of the '{@link #getDeduction_DS_Debt_yearly() <em>Deduction DS Debt yearly</em>}' attribute.
661 * <!-- begin-user-doc -->
662 * <!-- end-user-doc -->
663 * @see #getDeduction_DS_Debt_yearly()
664 * @generated
665 * @ordered
666 */
667 protected static final double DEDUCTION_DS_DEBT_YEARLY_EDEFAULT = 0.0;
668
669 /**
670 * The cached value of the '{@link #getDeduction_DS_Debt_yearly() <em>Deduction DS Debt yearly</em>}' attribute.
671 * <!-- begin-user-doc -->
672 * <!-- end-user-doc -->
673 * @see #getDeduction_DS_Debt_yearly()
674 * @generated
675 * @ordered
676 */
677 protected double deduction_DS_Debt_yearly = DEDUCTION_DS_DEBT_YEARLY_EDEFAULT;
678
679 /**
680 * <!-- begin-user-doc -->
681 * <!-- end-user-doc -->
682 * @generated
683 */
684 protected Tax_CardImpl() {
685 super();
686 }
687
688 /**
689 * <!-- begin-user-doc -->
690 * <!-- end-user-doc -->
691 * @generated
692 */
693 @Override
694 protected EClass eStaticClass() {
695 return TaxationWithRootPackage.Literals.TAX_CARD;
696 }
697
698 /**
699 * <!-- begin-user-doc -->
700 * <!-- end-user-doc -->
701 * @generated
702 */
703 @Override
704 public String getCard_identifier() {
705 return card_identifier;
706 }
707
708 /**
709 * <!-- begin-user-doc -->
710 * <!-- end-user-doc -->
711 * @generated
712 */
713 @Override
714 public void setCard_identifier(String newCard_identifier) {
715 String oldCard_identifier = card_identifier;
716 card_identifier = newCard_identifier;
717 if (eNotificationRequired())
718 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__CARD_IDENTIFIER, oldCard_identifier, card_identifier));
719 }
720
721 /**
722 * <!-- begin-user-doc -->
723 * <!-- end-user-doc -->
724 * @generated
725 */
726 @Override
727 public Tax_Office getTax_office() {
728 return tax_office;
729 }
730
731 /**
732 * <!-- begin-user-doc -->
733 * <!-- end-user-doc -->
734 * @generated
735 */
736 @Override
737 public void setTax_office(Tax_Office newTax_office) {
738 Tax_Office oldTax_office = tax_office;
739 tax_office = newTax_office == null ? TAX_OFFICE_EDEFAULT : newTax_office;
740 if (eNotificationRequired())
741 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__TAX_OFFICE, oldTax_office, tax_office));
742 }
743
744 /**
745 * <!-- begin-user-doc -->
746 * <!-- end-user-doc -->
747 * @generated
748 */
749 @Override
750 public double getPercentage_of_witholding() {
751 return percentage_of_witholding;
752 }
753
754 /**
755 * <!-- begin-user-doc -->
756 * <!-- end-user-doc -->
757 * @generated
758 */
759 @Override
760 public void setPercentage_of_witholding(double newPercentage_of_witholding) {
761 double oldPercentage_of_witholding = percentage_of_witholding;
762 percentage_of_witholding = newPercentage_of_witholding;
763 if (eNotificationRequired())
764 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__PERCENTAGE_OF_WITHOLDING, oldPercentage_of_witholding, percentage_of_witholding));
765 }
766
767 /**
768 * <!-- begin-user-doc -->
769 * <!-- end-user-doc -->
770 * @generated
771 */
772 @Override
773 public EList<String> getTax_payers_name_surname() {
774 if (tax_payers_name_surname == null) {
775 tax_payers_name_surname = new EDataTypeUniqueEList<String>(String.class, this, TaxationWithRootPackage.TAX_CARD__TAX_PAYERS_NAME_SURNAME);
776 }
777 return tax_payers_name_surname;
778 }
779
780 /**
781 * <!-- begin-user-doc -->
782 * <!-- end-user-doc -->
783 * @generated
784 */
785 @Override
786 public EList<String> getTax_payers_partner_name_surname() {
787 if (tax_payers_partner_name_surname == null) {
788 tax_payers_partner_name_surname = new EDataTypeUniqueEList<String>(String.class, this, TaxationWithRootPackage.TAX_CARD__TAX_PAYERS_PARTNER_NAME_SURNAME);
789 }
790 return tax_payers_partner_name_surname;
791 }
792
793 /**
794 * <!-- begin-user-doc -->
795 * <!-- end-user-doc -->
796 * @generated
797 */
798 @Override
799 public Address getTax_payers_address() {
800 if (tax_payers_address != null && tax_payers_address.eIsProxy()) {
801 InternalEObject oldTax_payers_address = (InternalEObject)tax_payers_address;
802 tax_payers_address = (Address)eResolveProxy(oldTax_payers_address);
803 if (tax_payers_address != oldTax_payers_address) {
804 if (eNotificationRequired())
805 eNotify(new ENotificationImpl(this, Notification.RESOLVE, TaxationWithRootPackage.TAX_CARD__TAX_PAYERS_ADDRESS, oldTax_payers_address, tax_payers_address));
806 }
807 }
808 return tax_payers_address;
809 }
810
811 /**
812 * <!-- begin-user-doc -->
813 * <!-- end-user-doc -->
814 * @generated
815 */
816 public Address basicGetTax_payers_address() {
817 return tax_payers_address;
818 }
819
820 /**
821 * <!-- begin-user-doc -->
822 * <!-- end-user-doc -->
823 * @generated
824 */
825 @Override
826 public void setTax_payers_address(Address newTax_payers_address) {
827 Address oldTax_payers_address = tax_payers_address;
828 tax_payers_address = newTax_payers_address;
829 if (eNotificationRequired())
830 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__TAX_PAYERS_ADDRESS, oldTax_payers_address, tax_payers_address));
831 }
832
833 /**
834 * <!-- begin-user-doc -->
835 * <!-- end-user-doc -->
836 * @generated
837 */
838 @Override
839 public String getJobs_Employer_SSNo() {
840 return jobs_Employer_SSNo;
841 }
842
843 /**
844 * <!-- begin-user-doc -->
845 * <!-- end-user-doc -->
846 * @generated
847 */
848 @Override
849 public void setJobs_Employer_SSNo(String newJobs_Employer_SSNo) {
850 String oldJobs_Employer_SSNo = jobs_Employer_SSNo;
851 jobs_Employer_SSNo = newJobs_Employer_SSNo;
852 if (eNotificationRequired())
853 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__JOBS_EMPLOYER_SS_NO, oldJobs_Employer_SSNo, jobs_Employer_SSNo));
854 }
855
856 /**
857 * <!-- begin-user-doc -->
858 * <!-- end-user-doc -->
859 * @generated
860 */
861 @Override
862 public String getJobs_employers_name() {
863 return jobs_employers_name;
864 }
865
866 /**
867 * <!-- begin-user-doc -->
868 * <!-- end-user-doc -->
869 * @generated
870 */
871 @Override
872 public void setJobs_employers_name(String newJobs_employers_name) {
873 String oldJobs_employers_name = jobs_employers_name;
874 jobs_employers_name = newJobs_employers_name;
875 if (eNotificationRequired())
876 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__JOBS_EMPLOYERS_NAME, oldJobs_employers_name, jobs_employers_name));
877 }
878
879 /**
880 * <!-- begin-user-doc -->
881 * <!-- end-user-doc -->
882 * @generated
883 */
884 @Override
885 public Job_Activity getJobs_activity_type() {
886 return jobs_activity_type;
887 }
888
889 /**
890 * <!-- begin-user-doc -->
891 * <!-- end-user-doc -->
892 * @generated
893 */
894 @Override
895 public void setJobs_activity_type(Job_Activity newJobs_activity_type) {
896 Job_Activity oldJobs_activity_type = jobs_activity_type;
897 jobs_activity_type = newJobs_activity_type == null ? JOBS_ACTIVITY_TYPE_EDEFAULT : newJobs_activity_type;
898 if (eNotificationRequired())
899 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__JOBS_ACTIVITY_TYPE, oldJobs_activity_type, jobs_activity_type));
900 }
901
902 /**
903 * <!-- begin-user-doc -->
904 * <!-- end-user-doc -->
905 * @generated
906 */
907 @Override
908 public Town getJobs_place_of_work() {
909 return jobs_place_of_work;
910 }
911
912 /**
913 * <!-- begin-user-doc -->
914 * <!-- end-user-doc -->
915 * @generated
916 */
917 @Override
918 public void setJobs_place_of_work(Town newJobs_place_of_work) {
919 Town oldJobs_place_of_work = jobs_place_of_work;
920 jobs_place_of_work = newJobs_place_of_work == null ? JOBS_PLACE_OF_WORK_EDEFAULT : newJobs_place_of_work;
921 if (eNotificationRequired())
922 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__JOBS_PLACE_OF_WORK, oldJobs_place_of_work, jobs_place_of_work));
923 }
924
925 /**
926 * <!-- begin-user-doc -->
927 * <!-- end-user-doc -->
928 * @generated
929 */
930 @Override
931 public double getDeduction_FD_daily() {
932 return deduction_FD_daily;
933 }
934
935 /**
936 * <!-- begin-user-doc -->
937 * <!-- end-user-doc -->
938 * @generated
939 */
940 @Override
941 public void setDeduction_FD_daily(double newDeduction_FD_daily) {
942 double oldDeduction_FD_daily = deduction_FD_daily;
943 deduction_FD_daily = newDeduction_FD_daily;
944 if (eNotificationRequired())
945 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__DEDUCTION_FD_DAILY, oldDeduction_FD_daily, deduction_FD_daily));
946 }
947
948 /**
949 * <!-- begin-user-doc -->
950 * <!-- end-user-doc -->
951 * @generated
952 */
953 @Override
954 public double getDeduction_FD_monthly() {
955 return deduction_FD_monthly;
956 }
957
958 /**
959 * <!-- begin-user-doc -->
960 * <!-- end-user-doc -->
961 * @generated
962 */
963 @Override
964 public void setDeduction_FD_monthly(double newDeduction_FD_monthly) {
965 double oldDeduction_FD_monthly = deduction_FD_monthly;
966 deduction_FD_monthly = newDeduction_FD_monthly;
967 if (eNotificationRequired())
968 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__DEDUCTION_FD_MONTHLY, oldDeduction_FD_monthly, deduction_FD_monthly));
969 }
970
971 /**
972 * <!-- begin-user-doc -->
973 * <!-- end-user-doc -->
974 * @generated
975 */
976 @Override
977 public double getDeduction_AC_daily() {
978 return deduction_AC_daily;
979 }
980
981 /**
982 * <!-- begin-user-doc -->
983 * <!-- end-user-doc -->
984 * @generated
985 */
986 @Override
987 public void setDeduction_AC_daily(double newDeduction_AC_daily) {
988 double oldDeduction_AC_daily = deduction_AC_daily;
989 deduction_AC_daily = newDeduction_AC_daily;
990 if (eNotificationRequired())
991 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__DEDUCTION_AC_DAILY, oldDeduction_AC_daily, deduction_AC_daily));
992 }
993
994 /**
995 * <!-- begin-user-doc -->
996 * <!-- end-user-doc -->
997 * @generated
998 */
999 @Override
1000 public double getDeduction_AC_monthly() {
1001 return deduction_AC_monthly;
1002 }
1003
1004 /**
1005 * <!-- begin-user-doc -->
1006 * <!-- end-user-doc -->
1007 * @generated
1008 */
1009 @Override
1010 public void setDeduction_AC_monthly(double newDeduction_AC_monthly) {
1011 double oldDeduction_AC_monthly = deduction_AC_monthly;
1012 deduction_AC_monthly = newDeduction_AC_monthly;
1013 if (eNotificationRequired())
1014 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__DEDUCTION_AC_MONTHLY, oldDeduction_AC_monthly, deduction_AC_monthly));
1015 }
1016
1017 /**
1018 * <!-- begin-user-doc -->
1019 * <!-- end-user-doc -->
1020 * @generated
1021 */
1022 @Override
1023 public double getDeduction_AC_yearly() {
1024 return deduction_AC_yearly;
1025 }
1026
1027 /**
1028 * <!-- begin-user-doc -->
1029 * <!-- end-user-doc -->
1030 * @generated
1031 */
1032 @Override
1033 public void setDeduction_AC_yearly(double newDeduction_AC_yearly) {
1034 double oldDeduction_AC_yearly = deduction_AC_yearly;
1035 deduction_AC_yearly = newDeduction_AC_yearly;
1036 if (eNotificationRequired())
1037 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__DEDUCTION_AC_YEARLY, oldDeduction_AC_yearly, deduction_AC_yearly));
1038 }
1039
1040 /**
1041 * <!-- begin-user-doc -->
1042 * <!-- end-user-doc -->
1043 * @generated
1044 */
1045 @Override
1046 public double getDeduction_CE_daily() {
1047 return deduction_CE_daily;
1048 }
1049
1050 /**
1051 * <!-- begin-user-doc -->
1052 * <!-- end-user-doc -->
1053 * @generated
1054 */
1055 @Override
1056 public void setDeduction_CE_daily(double newDeduction_CE_daily) {
1057 double oldDeduction_CE_daily = deduction_CE_daily;
1058 deduction_CE_daily = newDeduction_CE_daily;
1059 if (eNotificationRequired())
1060 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__DEDUCTION_CE_DAILY, oldDeduction_CE_daily, deduction_CE_daily));
1061 }
1062
1063 /**
1064 * <!-- begin-user-doc -->
1065 * <!-- end-user-doc -->
1066 * @generated
1067 */
1068 @Override
1069 public double getDeduction_CE_monthly() {
1070 return deduction_CE_monthly;
1071 }
1072
1073 /**
1074 * <!-- begin-user-doc -->
1075 * <!-- end-user-doc -->
1076 * @generated
1077 */
1078 @Override
1079 public void setDeduction_CE_monthly(double newDeduction_CE_monthly) {
1080 double oldDeduction_CE_monthly = deduction_CE_monthly;
1081 deduction_CE_monthly = newDeduction_CE_monthly;
1082 if (eNotificationRequired())
1083 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__DEDUCTION_CE_MONTHLY, oldDeduction_CE_monthly, deduction_CE_monthly));
1084 }
1085
1086 /**
1087 * <!-- begin-user-doc -->
1088 * <!-- end-user-doc -->
1089 * @generated
1090 */
1091 @Override
1092 public double getDeduction_CE_yearly() {
1093 return deduction_CE_yearly;
1094 }
1095
1096 /**
1097 * <!-- begin-user-doc -->
1098 * <!-- end-user-doc -->
1099 * @generated
1100 */
1101 @Override
1102 public void setDeduction_CE_yearly(double newDeduction_CE_yearly) {
1103 double oldDeduction_CE_yearly = deduction_CE_yearly;
1104 deduction_CE_yearly = newDeduction_CE_yearly;
1105 if (eNotificationRequired())
1106 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__DEDUCTION_CE_YEARLY, oldDeduction_CE_yearly, deduction_CE_yearly));
1107 }
1108
1109 /**
1110 * <!-- begin-user-doc -->
1111 * <!-- end-user-doc -->
1112 * @generated
1113 */
1114 @Override
1115 public double getDeduction_DS_daily() {
1116 return deduction_DS_daily;
1117 }
1118
1119 /**
1120 * <!-- begin-user-doc -->
1121 * <!-- end-user-doc -->
1122 * @generated
1123 */
1124 @Override
1125 public void setDeduction_DS_daily(double newDeduction_DS_daily) {
1126 double oldDeduction_DS_daily = deduction_DS_daily;
1127 deduction_DS_daily = newDeduction_DS_daily;
1128 if (eNotificationRequired())
1129 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__DEDUCTION_DS_DAILY, oldDeduction_DS_daily, deduction_DS_daily));
1130 }
1131
1132 /**
1133 * <!-- begin-user-doc -->
1134 * <!-- end-user-doc -->
1135 * @generated
1136 */
1137 @Override
1138 public double getDeduction_DS_monthly() {
1139 return deduction_DS_monthly;
1140 }
1141
1142 /**
1143 * <!-- begin-user-doc -->
1144 * <!-- end-user-doc -->
1145 * @generated
1146 */
1147 @Override
1148 public void setDeduction_DS_monthly(double newDeduction_DS_monthly) {
1149 double oldDeduction_DS_monthly = deduction_DS_monthly;
1150 deduction_DS_monthly = newDeduction_DS_monthly;
1151 if (eNotificationRequired())
1152 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__DEDUCTION_DS_MONTHLY, oldDeduction_DS_monthly, deduction_DS_monthly));
1153 }
1154
1155 /**
1156 * <!-- begin-user-doc -->
1157 * <!-- end-user-doc -->
1158 * @generated
1159 */
1160 @Override
1161 public double getDeduction_FO_daily() {
1162 return deduction_FO_daily;
1163 }
1164
1165 /**
1166 * <!-- begin-user-doc -->
1167 * <!-- end-user-doc -->
1168 * @generated
1169 */
1170 @Override
1171 public void setDeduction_FO_daily(double newDeduction_FO_daily) {
1172 double oldDeduction_FO_daily = deduction_FO_daily;
1173 deduction_FO_daily = newDeduction_FO_daily;
1174 if (eNotificationRequired())
1175 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__DEDUCTION_FO_DAILY, oldDeduction_FO_daily, deduction_FO_daily));
1176 }
1177
1178 /**
1179 * <!-- begin-user-doc -->
1180 * <!-- end-user-doc -->
1181 * @generated
1182 */
1183 @Override
1184 public double getDeduction_FO_monthly() {
1185 return deduction_FO_monthly;
1186 }
1187
1188 /**
1189 * <!-- begin-user-doc -->
1190 * <!-- end-user-doc -->
1191 * @generated
1192 */
1193 @Override
1194 public void setDeduction_FO_monthly(double newDeduction_FO_monthly) {
1195 double oldDeduction_FO_monthly = deduction_FO_monthly;
1196 deduction_FO_monthly = newDeduction_FO_monthly;
1197 if (eNotificationRequired())
1198 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__DEDUCTION_FO_MONTHLY, oldDeduction_FO_monthly, deduction_FO_monthly));
1199 }
1200
1201 /**
1202 * <!-- begin-user-doc -->
1203 * <!-- end-user-doc -->
1204 * @generated
1205 */
1206 @Override
1207 public double getDeduction_FO_yearly() {
1208 return deduction_FO_yearly;
1209 }
1210
1211 /**
1212 * <!-- begin-user-doc -->
1213 * <!-- end-user-doc -->
1214 * @generated
1215 */
1216 @Override
1217 public void setDeduction_FO_yearly(double newDeduction_FO_yearly) {
1218 double oldDeduction_FO_yearly = deduction_FO_yearly;
1219 deduction_FO_yearly = newDeduction_FO_yearly;
1220 if (eNotificationRequired())
1221 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__DEDUCTION_FO_YEARLY, oldDeduction_FO_yearly, deduction_FO_yearly));
1222 }
1223
1224 /**
1225 * <!-- begin-user-doc -->
1226 * <!-- end-user-doc -->
1227 * @generated
1228 */
1229 @Override
1230 public double getCredit_CIS_daily() {
1231 return credit_CIS_daily;
1232 }
1233
1234 /**
1235 * <!-- begin-user-doc -->
1236 * <!-- end-user-doc -->
1237 * @generated
1238 */
1239 @Override
1240 public void setCredit_CIS_daily(double newCredit_CIS_daily) {
1241 double oldCredit_CIS_daily = credit_CIS_daily;
1242 credit_CIS_daily = newCredit_CIS_daily;
1243 if (eNotificationRequired())
1244 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__CREDIT_CIS_DAILY, oldCredit_CIS_daily, credit_CIS_daily));
1245 }
1246
1247 /**
1248 * <!-- begin-user-doc -->
1249 * <!-- end-user-doc -->
1250 * @generated
1251 */
1252 @Override
1253 public double getCredit_CIS_monthly() {
1254 return credit_CIS_monthly;
1255 }
1256
1257 /**
1258 * <!-- begin-user-doc -->
1259 * <!-- end-user-doc -->
1260 * @generated
1261 */
1262 @Override
1263 public void setCredit_CIS_monthly(double newCredit_CIS_monthly) {
1264 double oldCredit_CIS_monthly = credit_CIS_monthly;
1265 credit_CIS_monthly = newCredit_CIS_monthly;
1266 if (eNotificationRequired())
1267 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__CREDIT_CIS_MONTHLY, oldCredit_CIS_monthly, credit_CIS_monthly));
1268 }
1269
1270 /**
1271 * <!-- begin-user-doc -->
1272 * <!-- end-user-doc -->
1273 * @generated
1274 */
1275 @Override
1276 public double getCredit_CIM_daily() {
1277 return credit_CIM_daily;
1278 }
1279
1280 /**
1281 * <!-- begin-user-doc -->
1282 * <!-- end-user-doc -->
1283 * @generated
1284 */
1285 @Override
1286 public void setCredit_CIM_daily(double newCredit_CIM_daily) {
1287 double oldCredit_CIM_daily = credit_CIM_daily;
1288 credit_CIM_daily = newCredit_CIM_daily;
1289 if (eNotificationRequired())
1290 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__CREDIT_CIM_DAILY, oldCredit_CIM_daily, credit_CIM_daily));
1291 }
1292
1293 /**
1294 * <!-- begin-user-doc -->
1295 * <!-- end-user-doc -->
1296 * @generated
1297 */
1298 @Override
1299 public boolean isValidity() {
1300 return validity;
1301 }
1302
1303 /**
1304 * <!-- begin-user-doc -->
1305 * <!-- end-user-doc -->
1306 * @generated
1307 */
1308 @Override
1309 public void setValidity(boolean newValidity) {
1310 boolean oldValidity = validity;
1311 validity = newValidity;
1312 if (eNotificationRequired())
1313 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__VALIDITY, oldValidity, validity));
1314 }
1315
1316 /**
1317 * <!-- begin-user-doc -->
1318 * <!-- end-user-doc -->
1319 * @generated
1320 */
1321 @Override
1322 public EList<Income_Tax_Credit> getIncome_Tax_Credit() {
1323 if (income_Tax_Credit == null) {
1324 income_Tax_Credit = new EObjectWithInverseResolvingEList<Income_Tax_Credit>(Income_Tax_Credit.class, this, TaxationWithRootPackage.TAX_CARD__INCOME_TAX_CREDIT, TaxationWithRootPackage.INCOME_TAX_CREDIT__TAXATION_FRAME);
1325 }
1326 return income_Tax_Credit;
1327 }
1328
1329 /**
1330 * <!-- begin-user-doc -->
1331 * <!-- end-user-doc -->
1332 * @generated
1333 */
1334 @Override
1335 public Tax_Card getPrevious() {
1336 if (previous != null && previous.eIsProxy()) {
1337 InternalEObject oldPrevious = (InternalEObject)previous;
1338 previous = (Tax_Card)eResolveProxy(oldPrevious);
1339 if (previous != oldPrevious) {
1340 if (eNotificationRequired())
1341 eNotify(new ENotificationImpl(this, Notification.RESOLVE, TaxationWithRootPackage.TAX_CARD__PREVIOUS, oldPrevious, previous));
1342 }
1343 }
1344 return previous;
1345 }
1346
1347 /**
1348 * <!-- begin-user-doc -->
1349 * <!-- end-user-doc -->
1350 * @generated
1351 */
1352 public Tax_Card basicGetPrevious() {
1353 return previous;
1354 }
1355
1356 /**
1357 * <!-- begin-user-doc -->
1358 * <!-- end-user-doc -->
1359 * @generated
1360 */
1361 public NotificationChain basicSetPrevious(Tax_Card newPrevious, NotificationChain msgs) {
1362 Tax_Card oldPrevious = previous;
1363 previous = newPrevious;
1364 if (eNotificationRequired()) {
1365 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__PREVIOUS, oldPrevious, newPrevious);
1366 if (msgs == null) msgs = notification; else msgs.add(notification);
1367 }
1368 return msgs;
1369 }
1370
1371 /**
1372 * <!-- begin-user-doc -->
1373 * <!-- end-user-doc -->
1374 * @generated
1375 */
1376 @Override
1377 public void setPrevious(Tax_Card newPrevious) {
1378 if (newPrevious != previous) {
1379 NotificationChain msgs = null;
1380 if (previous != null)
1381 msgs = ((InternalEObject)previous).eInverseRemove(this, TaxationWithRootPackage.TAX_CARD__CURRENT_TAX_CARD, Tax_Card.class, msgs);
1382 if (newPrevious != null)
1383 msgs = ((InternalEObject)newPrevious).eInverseAdd(this, TaxationWithRootPackage.TAX_CARD__CURRENT_TAX_CARD, Tax_Card.class, msgs);
1384 msgs = basicSetPrevious(newPrevious, msgs);
1385 if (msgs != null) msgs.dispatch();
1386 }
1387 else if (eNotificationRequired())
1388 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__PREVIOUS, newPrevious, newPrevious));
1389 }
1390
1391 /**
1392 * <!-- begin-user-doc -->
1393 * <!-- end-user-doc -->
1394 * @generated
1395 */
1396 @Override
1397 public Tax_Card getCurrent_tax_card() {
1398 if (current_tax_card != null && current_tax_card.eIsProxy()) {
1399 InternalEObject oldCurrent_tax_card = (InternalEObject)current_tax_card;
1400 current_tax_card = (Tax_Card)eResolveProxy(oldCurrent_tax_card);
1401 if (current_tax_card != oldCurrent_tax_card) {
1402 if (eNotificationRequired())
1403 eNotify(new ENotificationImpl(this, Notification.RESOLVE, TaxationWithRootPackage.TAX_CARD__CURRENT_TAX_CARD, oldCurrent_tax_card, current_tax_card));
1404 }
1405 }
1406 return current_tax_card;
1407 }
1408
1409 /**
1410 * <!-- begin-user-doc -->
1411 * <!-- end-user-doc -->
1412 * @generated
1413 */
1414 public Tax_Card basicGetCurrent_tax_card() {
1415 return current_tax_card;
1416 }
1417
1418 /**
1419 * <!-- begin-user-doc -->
1420 * <!-- end-user-doc -->
1421 * @generated
1422 */
1423 public NotificationChain basicSetCurrent_tax_card(Tax_Card newCurrent_tax_card, NotificationChain msgs) {
1424 Tax_Card oldCurrent_tax_card = current_tax_card;
1425 current_tax_card = newCurrent_tax_card;
1426 if (eNotificationRequired()) {
1427 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__CURRENT_TAX_CARD, oldCurrent_tax_card, newCurrent_tax_card);
1428 if (msgs == null) msgs = notification; else msgs.add(notification);
1429 }
1430 return msgs;
1431 }
1432
1433 /**
1434 * <!-- begin-user-doc -->
1435 * <!-- end-user-doc -->
1436 * @generated
1437 */
1438 @Override
1439 public void setCurrent_tax_card(Tax_Card newCurrent_tax_card) {
1440 if (newCurrent_tax_card != current_tax_card) {
1441 NotificationChain msgs = null;
1442 if (current_tax_card != null)
1443 msgs = ((InternalEObject)current_tax_card).eInverseRemove(this, TaxationWithRootPackage.TAX_CARD__PREVIOUS, Tax_Card.class, msgs);
1444 if (newCurrent_tax_card != null)
1445 msgs = ((InternalEObject)newCurrent_tax_card).eInverseAdd(this, TaxationWithRootPackage.TAX_CARD__PREVIOUS, Tax_Card.class, msgs);
1446 msgs = basicSetCurrent_tax_card(newCurrent_tax_card, msgs);
1447 if (msgs != null) msgs.dispatch();
1448 }
1449 else if (eNotificationRequired())
1450 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__CURRENT_TAX_CARD, newCurrent_tax_card, newCurrent_tax_card));
1451 }
1452
1453 /**
1454 * <!-- begin-user-doc -->
1455 * <!-- end-user-doc -->
1456 * @generated
1457 */
1458 @Override
1459 public double getCredit_CIM_yearly() {
1460 return credit_CIM_yearly;
1461 }
1462
1463 /**
1464 * <!-- begin-user-doc -->
1465 * <!-- end-user-doc -->
1466 * @generated
1467 */
1468 @Override
1469 public void setCredit_CIM_yearly(double newCredit_CIM_yearly) {
1470 double oldCredit_CIM_yearly = credit_CIM_yearly;
1471 credit_CIM_yearly = newCredit_CIM_yearly;
1472 if (eNotificationRequired())
1473 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__CREDIT_CIM_YEARLY, oldCredit_CIM_yearly, credit_CIM_yearly));
1474 }
1475
1476 /**
1477 * <!-- begin-user-doc -->
1478 * <!-- end-user-doc -->
1479 * @generated
1480 */
1481 @Override
1482 public double getDeduction_DS_Alimony_yearly() {
1483 return deduction_DS_Alimony_yearly;
1484 }
1485
1486 /**
1487 * <!-- begin-user-doc -->
1488 * <!-- end-user-doc -->
1489 * @generated
1490 */
1491 @Override
1492 public void setDeduction_DS_Alimony_yearly(double newDeduction_DS_Alimony_yearly) {
1493 double oldDeduction_DS_Alimony_yearly = deduction_DS_Alimony_yearly;
1494 deduction_DS_Alimony_yearly = newDeduction_DS_Alimony_yearly;
1495 if (eNotificationRequired())
1496 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__DEDUCTION_DS_ALIMONY_YEARLY, oldDeduction_DS_Alimony_yearly, deduction_DS_Alimony_yearly));
1497 }
1498
1499 /**
1500 * <!-- begin-user-doc -->
1501 * <!-- end-user-doc -->
1502 * @generated
1503 */
1504 @Override
1505 public double getDeduction_DS_Debt_yearly() {
1506 return deduction_DS_Debt_yearly;
1507 }
1508
1509 /**
1510 * <!-- begin-user-doc -->
1511 * <!-- end-user-doc -->
1512 * @generated
1513 */
1514 @Override
1515 public void setDeduction_DS_Debt_yearly(double newDeduction_DS_Debt_yearly) {
1516 double oldDeduction_DS_Debt_yearly = deduction_DS_Debt_yearly;
1517 deduction_DS_Debt_yearly = newDeduction_DS_Debt_yearly;
1518 if (eNotificationRequired())
1519 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__DEDUCTION_DS_DEBT_YEARLY, oldDeduction_DS_Debt_yearly, deduction_DS_Debt_yearly));
1520 }
1521
1522 /**
1523 * <!-- begin-user-doc -->
1524 * <!-- end-user-doc -->
1525 * @generated
1526 */
1527 @Override
1528 public Income getIncome() {
1529 if (eContainerFeatureID() != TaxationWithRootPackage.TAX_CARD__INCOME) return null;
1530 return (Income)eInternalContainer();
1531 }
1532
1533 /**
1534 * <!-- begin-user-doc -->
1535 * <!-- end-user-doc -->
1536 * @generated
1537 */
1538 public NotificationChain basicSetIncome(Income newIncome, NotificationChain msgs) {
1539 msgs = eBasicSetContainer((InternalEObject)newIncome, TaxationWithRootPackage.TAX_CARD__INCOME, msgs);
1540 return msgs;
1541 }
1542
1543 /**
1544 * <!-- begin-user-doc -->
1545 * <!-- end-user-doc -->
1546 * @generated
1547 */
1548 @Override
1549 public void setIncome(Income newIncome) {
1550 if (newIncome != eInternalContainer() || (eContainerFeatureID() != TaxationWithRootPackage.TAX_CARD__INCOME && newIncome != null)) {
1551 if (EcoreUtil.isAncestor(this, newIncome))
1552 throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
1553 NotificationChain msgs = null;
1554 if (eInternalContainer() != null)
1555 msgs = eBasicRemoveFromContainer(msgs);
1556 if (newIncome != null)
1557 msgs = ((InternalEObject)newIncome).eInverseAdd(this, TaxationWithRootPackage.INCOME__TAX_CARD, Income.class, msgs);
1558 msgs = basicSetIncome(newIncome, msgs);
1559 if (msgs != null) msgs.dispatch();
1560 }
1561 else if (eNotificationRequired())
1562 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_CARD__INCOME, newIncome, newIncome));
1563 }
1564
1565 /**
1566 * <!-- begin-user-doc -->
1567 * <!-- end-user-doc -->
1568 * @generated
1569 */
1570 @SuppressWarnings("unchecked")
1571 @Override
1572 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
1573 switch (featureID) {
1574 case TaxationWithRootPackage.TAX_CARD__INCOME_TAX_CREDIT:
1575 return ((InternalEList<InternalEObject>)(InternalEList<?>)getIncome_Tax_Credit()).basicAdd(otherEnd, msgs);
1576 case TaxationWithRootPackage.TAX_CARD__PREVIOUS:
1577 if (previous != null)
1578 msgs = ((InternalEObject)previous).eInverseRemove(this, TaxationWithRootPackage.TAX_CARD__CURRENT_TAX_CARD, Tax_Card.class, msgs);
1579 return basicSetPrevious((Tax_Card)otherEnd, msgs);
1580 case TaxationWithRootPackage.TAX_CARD__CURRENT_TAX_CARD:
1581 if (current_tax_card != null)
1582 msgs = ((InternalEObject)current_tax_card).eInverseRemove(this, TaxationWithRootPackage.TAX_CARD__PREVIOUS, Tax_Card.class, msgs);
1583 return basicSetCurrent_tax_card((Tax_Card)otherEnd, msgs);
1584 case TaxationWithRootPackage.TAX_CARD__INCOME:
1585 if (eInternalContainer() != null)
1586 msgs = eBasicRemoveFromContainer(msgs);
1587 return basicSetIncome((Income)otherEnd, msgs);
1588 }
1589 return super.eInverseAdd(otherEnd, featureID, msgs);
1590 }
1591
1592 /**
1593 * <!-- begin-user-doc -->
1594 * <!-- end-user-doc -->
1595 * @generated
1596 */
1597 @Override
1598 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
1599 switch (featureID) {
1600 case TaxationWithRootPackage.TAX_CARD__INCOME_TAX_CREDIT:
1601 return ((InternalEList<?>)getIncome_Tax_Credit()).basicRemove(otherEnd, msgs);
1602 case TaxationWithRootPackage.TAX_CARD__PREVIOUS:
1603 return basicSetPrevious(null, msgs);
1604 case TaxationWithRootPackage.TAX_CARD__CURRENT_TAX_CARD:
1605 return basicSetCurrent_tax_card(null, msgs);
1606 case TaxationWithRootPackage.TAX_CARD__INCOME:
1607 return basicSetIncome(null, msgs);
1608 }
1609 return super.eInverseRemove(otherEnd, featureID, msgs);
1610 }
1611
1612 /**
1613 * <!-- begin-user-doc -->
1614 * <!-- end-user-doc -->
1615 * @generated
1616 */
1617 @Override
1618 public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
1619 switch (eContainerFeatureID()) {
1620 case TaxationWithRootPackage.TAX_CARD__INCOME:
1621 return eInternalContainer().eInverseRemove(this, TaxationWithRootPackage.INCOME__TAX_CARD, Income.class, msgs);
1622 }
1623 return super.eBasicRemoveFromContainerFeature(msgs);
1624 }
1625
1626 /**
1627 * <!-- begin-user-doc -->
1628 * <!-- end-user-doc -->
1629 * @generated
1630 */
1631 @Override
1632 public Object eGet(int featureID, boolean resolve, boolean coreType) {
1633 switch (featureID) {
1634 case TaxationWithRootPackage.TAX_CARD__CARD_IDENTIFIER:
1635 return getCard_identifier();
1636 case TaxationWithRootPackage.TAX_CARD__TAX_OFFICE:
1637 return getTax_office();
1638 case TaxationWithRootPackage.TAX_CARD__PERCENTAGE_OF_WITHOLDING:
1639 return getPercentage_of_witholding();
1640 case TaxationWithRootPackage.TAX_CARD__TAX_PAYERS_NAME_SURNAME:
1641 return getTax_payers_name_surname();
1642 case TaxationWithRootPackage.TAX_CARD__TAX_PAYERS_PARTNER_NAME_SURNAME:
1643 return getTax_payers_partner_name_surname();
1644 case TaxationWithRootPackage.TAX_CARD__TAX_PAYERS_ADDRESS:
1645 if (resolve) return getTax_payers_address();
1646 return basicGetTax_payers_address();
1647 case TaxationWithRootPackage.TAX_CARD__JOBS_EMPLOYER_SS_NO:
1648 return getJobs_Employer_SSNo();
1649 case TaxationWithRootPackage.TAX_CARD__JOBS_EMPLOYERS_NAME:
1650 return getJobs_employers_name();
1651 case TaxationWithRootPackage.TAX_CARD__JOBS_ACTIVITY_TYPE:
1652 return getJobs_activity_type();
1653 case TaxationWithRootPackage.TAX_CARD__JOBS_PLACE_OF_WORK:
1654 return getJobs_place_of_work();
1655 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_FD_DAILY:
1656 return getDeduction_FD_daily();
1657 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_FD_MONTHLY:
1658 return getDeduction_FD_monthly();
1659 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_AC_DAILY:
1660 return getDeduction_AC_daily();
1661 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_AC_MONTHLY:
1662 return getDeduction_AC_monthly();
1663 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_AC_YEARLY:
1664 return getDeduction_AC_yearly();
1665 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_CE_DAILY:
1666 return getDeduction_CE_daily();
1667 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_CE_MONTHLY:
1668 return getDeduction_CE_monthly();
1669 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_CE_YEARLY:
1670 return getDeduction_CE_yearly();
1671 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_DS_DAILY:
1672 return getDeduction_DS_daily();
1673 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_DS_MONTHLY:
1674 return getDeduction_DS_monthly();
1675 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_FO_DAILY:
1676 return getDeduction_FO_daily();
1677 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_FO_MONTHLY:
1678 return getDeduction_FO_monthly();
1679 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_FO_YEARLY:
1680 return getDeduction_FO_yearly();
1681 case TaxationWithRootPackage.TAX_CARD__CREDIT_CIS_DAILY:
1682 return getCredit_CIS_daily();
1683 case TaxationWithRootPackage.TAX_CARD__CREDIT_CIS_MONTHLY:
1684 return getCredit_CIS_monthly();
1685 case TaxationWithRootPackage.TAX_CARD__CREDIT_CIM_DAILY:
1686 return getCredit_CIM_daily();
1687 case TaxationWithRootPackage.TAX_CARD__VALIDITY:
1688 return isValidity();
1689 case TaxationWithRootPackage.TAX_CARD__INCOME_TAX_CREDIT:
1690 return getIncome_Tax_Credit();
1691 case TaxationWithRootPackage.TAX_CARD__PREVIOUS:
1692 if (resolve) return getPrevious();
1693 return basicGetPrevious();
1694 case TaxationWithRootPackage.TAX_CARD__CURRENT_TAX_CARD:
1695 if (resolve) return getCurrent_tax_card();
1696 return basicGetCurrent_tax_card();
1697 case TaxationWithRootPackage.TAX_CARD__CREDIT_CIM_YEARLY:
1698 return getCredit_CIM_yearly();
1699 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_DS_ALIMONY_YEARLY:
1700 return getDeduction_DS_Alimony_yearly();
1701 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_DS_DEBT_YEARLY:
1702 return getDeduction_DS_Debt_yearly();
1703 case TaxationWithRootPackage.TAX_CARD__INCOME:
1704 return getIncome();
1705 }
1706 return super.eGet(featureID, resolve, coreType);
1707 }
1708
1709 /**
1710 * <!-- begin-user-doc -->
1711 * <!-- end-user-doc -->
1712 * @generated
1713 */
1714 @SuppressWarnings("unchecked")
1715 @Override
1716 public void eSet(int featureID, Object newValue) {
1717 switch (featureID) {
1718 case TaxationWithRootPackage.TAX_CARD__CARD_IDENTIFIER:
1719 setCard_identifier((String)newValue);
1720 return;
1721 case TaxationWithRootPackage.TAX_CARD__TAX_OFFICE:
1722 setTax_office((Tax_Office)newValue);
1723 return;
1724 case TaxationWithRootPackage.TAX_CARD__PERCENTAGE_OF_WITHOLDING:
1725 setPercentage_of_witholding((Double)newValue);
1726 return;
1727 case TaxationWithRootPackage.TAX_CARD__TAX_PAYERS_NAME_SURNAME:
1728 getTax_payers_name_surname().clear();
1729 getTax_payers_name_surname().addAll((Collection<? extends String>)newValue);
1730 return;
1731 case TaxationWithRootPackage.TAX_CARD__TAX_PAYERS_PARTNER_NAME_SURNAME:
1732 getTax_payers_partner_name_surname().clear();
1733 getTax_payers_partner_name_surname().addAll((Collection<? extends String>)newValue);
1734 return;
1735 case TaxationWithRootPackage.TAX_CARD__TAX_PAYERS_ADDRESS:
1736 setTax_payers_address((Address)newValue);
1737 return;
1738 case TaxationWithRootPackage.TAX_CARD__JOBS_EMPLOYER_SS_NO:
1739 setJobs_Employer_SSNo((String)newValue);
1740 return;
1741 case TaxationWithRootPackage.TAX_CARD__JOBS_EMPLOYERS_NAME:
1742 setJobs_employers_name((String)newValue);
1743 return;
1744 case TaxationWithRootPackage.TAX_CARD__JOBS_ACTIVITY_TYPE:
1745 setJobs_activity_type((Job_Activity)newValue);
1746 return;
1747 case TaxationWithRootPackage.TAX_CARD__JOBS_PLACE_OF_WORK:
1748 setJobs_place_of_work((Town)newValue);
1749 return;
1750 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_FD_DAILY:
1751 setDeduction_FD_daily((Double)newValue);
1752 return;
1753 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_FD_MONTHLY:
1754 setDeduction_FD_monthly((Double)newValue);
1755 return;
1756 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_AC_DAILY:
1757 setDeduction_AC_daily((Double)newValue);
1758 return;
1759 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_AC_MONTHLY:
1760 setDeduction_AC_monthly((Double)newValue);
1761 return;
1762 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_AC_YEARLY:
1763 setDeduction_AC_yearly((Double)newValue);
1764 return;
1765 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_CE_DAILY:
1766 setDeduction_CE_daily((Double)newValue);
1767 return;
1768 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_CE_MONTHLY:
1769 setDeduction_CE_monthly((Double)newValue);
1770 return;
1771 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_CE_YEARLY:
1772 setDeduction_CE_yearly((Double)newValue);
1773 return;
1774 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_DS_DAILY:
1775 setDeduction_DS_daily((Double)newValue);
1776 return;
1777 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_DS_MONTHLY:
1778 setDeduction_DS_monthly((Double)newValue);
1779 return;
1780 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_FO_DAILY:
1781 setDeduction_FO_daily((Double)newValue);
1782 return;
1783 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_FO_MONTHLY:
1784 setDeduction_FO_monthly((Double)newValue);
1785 return;
1786 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_FO_YEARLY:
1787 setDeduction_FO_yearly((Double)newValue);
1788 return;
1789 case TaxationWithRootPackage.TAX_CARD__CREDIT_CIS_DAILY:
1790 setCredit_CIS_daily((Double)newValue);
1791 return;
1792 case TaxationWithRootPackage.TAX_CARD__CREDIT_CIS_MONTHLY:
1793 setCredit_CIS_monthly((Double)newValue);
1794 return;
1795 case TaxationWithRootPackage.TAX_CARD__CREDIT_CIM_DAILY:
1796 setCredit_CIM_daily((Double)newValue);
1797 return;
1798 case TaxationWithRootPackage.TAX_CARD__VALIDITY:
1799 setValidity((Boolean)newValue);
1800 return;
1801 case TaxationWithRootPackage.TAX_CARD__INCOME_TAX_CREDIT:
1802 getIncome_Tax_Credit().clear();
1803 getIncome_Tax_Credit().addAll((Collection<? extends Income_Tax_Credit>)newValue);
1804 return;
1805 case TaxationWithRootPackage.TAX_CARD__PREVIOUS:
1806 setPrevious((Tax_Card)newValue);
1807 return;
1808 case TaxationWithRootPackage.TAX_CARD__CURRENT_TAX_CARD:
1809 setCurrent_tax_card((Tax_Card)newValue);
1810 return;
1811 case TaxationWithRootPackage.TAX_CARD__CREDIT_CIM_YEARLY:
1812 setCredit_CIM_yearly((Double)newValue);
1813 return;
1814 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_DS_ALIMONY_YEARLY:
1815 setDeduction_DS_Alimony_yearly((Double)newValue);
1816 return;
1817 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_DS_DEBT_YEARLY:
1818 setDeduction_DS_Debt_yearly((Double)newValue);
1819 return;
1820 case TaxationWithRootPackage.TAX_CARD__INCOME:
1821 setIncome((Income)newValue);
1822 return;
1823 }
1824 super.eSet(featureID, newValue);
1825 }
1826
1827 /**
1828 * <!-- begin-user-doc -->
1829 * <!-- end-user-doc -->
1830 * @generated
1831 */
1832 @Override
1833 public void eUnset(int featureID) {
1834 switch (featureID) {
1835 case TaxationWithRootPackage.TAX_CARD__CARD_IDENTIFIER:
1836 setCard_identifier(CARD_IDENTIFIER_EDEFAULT);
1837 return;
1838 case TaxationWithRootPackage.TAX_CARD__TAX_OFFICE:
1839 setTax_office(TAX_OFFICE_EDEFAULT);
1840 return;
1841 case TaxationWithRootPackage.TAX_CARD__PERCENTAGE_OF_WITHOLDING:
1842 setPercentage_of_witholding(PERCENTAGE_OF_WITHOLDING_EDEFAULT);
1843 return;
1844 case TaxationWithRootPackage.TAX_CARD__TAX_PAYERS_NAME_SURNAME:
1845 getTax_payers_name_surname().clear();
1846 return;
1847 case TaxationWithRootPackage.TAX_CARD__TAX_PAYERS_PARTNER_NAME_SURNAME:
1848 getTax_payers_partner_name_surname().clear();
1849 return;
1850 case TaxationWithRootPackage.TAX_CARD__TAX_PAYERS_ADDRESS:
1851 setTax_payers_address((Address)null);
1852 return;
1853 case TaxationWithRootPackage.TAX_CARD__JOBS_EMPLOYER_SS_NO:
1854 setJobs_Employer_SSNo(JOBS_EMPLOYER_SS_NO_EDEFAULT);
1855 return;
1856 case TaxationWithRootPackage.TAX_CARD__JOBS_EMPLOYERS_NAME:
1857 setJobs_employers_name(JOBS_EMPLOYERS_NAME_EDEFAULT);
1858 return;
1859 case TaxationWithRootPackage.TAX_CARD__JOBS_ACTIVITY_TYPE:
1860 setJobs_activity_type(JOBS_ACTIVITY_TYPE_EDEFAULT);
1861 return;
1862 case TaxationWithRootPackage.TAX_CARD__JOBS_PLACE_OF_WORK:
1863 setJobs_place_of_work(JOBS_PLACE_OF_WORK_EDEFAULT);
1864 return;
1865 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_FD_DAILY:
1866 setDeduction_FD_daily(DEDUCTION_FD_DAILY_EDEFAULT);
1867 return;
1868 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_FD_MONTHLY:
1869 setDeduction_FD_monthly(DEDUCTION_FD_MONTHLY_EDEFAULT);
1870 return;
1871 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_AC_DAILY:
1872 setDeduction_AC_daily(DEDUCTION_AC_DAILY_EDEFAULT);
1873 return;
1874 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_AC_MONTHLY:
1875 setDeduction_AC_monthly(DEDUCTION_AC_MONTHLY_EDEFAULT);
1876 return;
1877 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_AC_YEARLY:
1878 setDeduction_AC_yearly(DEDUCTION_AC_YEARLY_EDEFAULT);
1879 return;
1880 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_CE_DAILY:
1881 setDeduction_CE_daily(DEDUCTION_CE_DAILY_EDEFAULT);
1882 return;
1883 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_CE_MONTHLY:
1884 setDeduction_CE_monthly(DEDUCTION_CE_MONTHLY_EDEFAULT);
1885 return;
1886 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_CE_YEARLY:
1887 setDeduction_CE_yearly(DEDUCTION_CE_YEARLY_EDEFAULT);
1888 return;
1889 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_DS_DAILY:
1890 setDeduction_DS_daily(DEDUCTION_DS_DAILY_EDEFAULT);
1891 return;
1892 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_DS_MONTHLY:
1893 setDeduction_DS_monthly(DEDUCTION_DS_MONTHLY_EDEFAULT);
1894 return;
1895 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_FO_DAILY:
1896 setDeduction_FO_daily(DEDUCTION_FO_DAILY_EDEFAULT);
1897 return;
1898 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_FO_MONTHLY:
1899 setDeduction_FO_monthly(DEDUCTION_FO_MONTHLY_EDEFAULT);
1900 return;
1901 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_FO_YEARLY:
1902 setDeduction_FO_yearly(DEDUCTION_FO_YEARLY_EDEFAULT);
1903 return;
1904 case TaxationWithRootPackage.TAX_CARD__CREDIT_CIS_DAILY:
1905 setCredit_CIS_daily(CREDIT_CIS_DAILY_EDEFAULT);
1906 return;
1907 case TaxationWithRootPackage.TAX_CARD__CREDIT_CIS_MONTHLY:
1908 setCredit_CIS_monthly(CREDIT_CIS_MONTHLY_EDEFAULT);
1909 return;
1910 case TaxationWithRootPackage.TAX_CARD__CREDIT_CIM_DAILY:
1911 setCredit_CIM_daily(CREDIT_CIM_DAILY_EDEFAULT);
1912 return;
1913 case TaxationWithRootPackage.TAX_CARD__VALIDITY:
1914 setValidity(VALIDITY_EDEFAULT);
1915 return;
1916 case TaxationWithRootPackage.TAX_CARD__INCOME_TAX_CREDIT:
1917 getIncome_Tax_Credit().clear();
1918 return;
1919 case TaxationWithRootPackage.TAX_CARD__PREVIOUS:
1920 setPrevious((Tax_Card)null);
1921 return;
1922 case TaxationWithRootPackage.TAX_CARD__CURRENT_TAX_CARD:
1923 setCurrent_tax_card((Tax_Card)null);
1924 return;
1925 case TaxationWithRootPackage.TAX_CARD__CREDIT_CIM_YEARLY:
1926 setCredit_CIM_yearly(CREDIT_CIM_YEARLY_EDEFAULT);
1927 return;
1928 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_DS_ALIMONY_YEARLY:
1929 setDeduction_DS_Alimony_yearly(DEDUCTION_DS_ALIMONY_YEARLY_EDEFAULT);
1930 return;
1931 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_DS_DEBT_YEARLY:
1932 setDeduction_DS_Debt_yearly(DEDUCTION_DS_DEBT_YEARLY_EDEFAULT);
1933 return;
1934 case TaxationWithRootPackage.TAX_CARD__INCOME:
1935 setIncome((Income)null);
1936 return;
1937 }
1938 super.eUnset(featureID);
1939 }
1940
1941 /**
1942 * <!-- begin-user-doc -->
1943 * <!-- end-user-doc -->
1944 * @generated
1945 */
1946 @Override
1947 public boolean eIsSet(int featureID) {
1948 switch (featureID) {
1949 case TaxationWithRootPackage.TAX_CARD__CARD_IDENTIFIER:
1950 return CARD_IDENTIFIER_EDEFAULT == null ? card_identifier != null : !CARD_IDENTIFIER_EDEFAULT.equals(card_identifier);
1951 case TaxationWithRootPackage.TAX_CARD__TAX_OFFICE:
1952 return tax_office != TAX_OFFICE_EDEFAULT;
1953 case TaxationWithRootPackage.TAX_CARD__PERCENTAGE_OF_WITHOLDING:
1954 return percentage_of_witholding != PERCENTAGE_OF_WITHOLDING_EDEFAULT;
1955 case TaxationWithRootPackage.TAX_CARD__TAX_PAYERS_NAME_SURNAME:
1956 return tax_payers_name_surname != null && !tax_payers_name_surname.isEmpty();
1957 case TaxationWithRootPackage.TAX_CARD__TAX_PAYERS_PARTNER_NAME_SURNAME:
1958 return tax_payers_partner_name_surname != null && !tax_payers_partner_name_surname.isEmpty();
1959 case TaxationWithRootPackage.TAX_CARD__TAX_PAYERS_ADDRESS:
1960 return tax_payers_address != null;
1961 case TaxationWithRootPackage.TAX_CARD__JOBS_EMPLOYER_SS_NO:
1962 return JOBS_EMPLOYER_SS_NO_EDEFAULT == null ? jobs_Employer_SSNo != null : !JOBS_EMPLOYER_SS_NO_EDEFAULT.equals(jobs_Employer_SSNo);
1963 case TaxationWithRootPackage.TAX_CARD__JOBS_EMPLOYERS_NAME:
1964 return JOBS_EMPLOYERS_NAME_EDEFAULT == null ? jobs_employers_name != null : !JOBS_EMPLOYERS_NAME_EDEFAULT.equals(jobs_employers_name);
1965 case TaxationWithRootPackage.TAX_CARD__JOBS_ACTIVITY_TYPE:
1966 return jobs_activity_type != JOBS_ACTIVITY_TYPE_EDEFAULT;
1967 case TaxationWithRootPackage.TAX_CARD__JOBS_PLACE_OF_WORK:
1968 return jobs_place_of_work != JOBS_PLACE_OF_WORK_EDEFAULT;
1969 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_FD_DAILY:
1970 return deduction_FD_daily != DEDUCTION_FD_DAILY_EDEFAULT;
1971 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_FD_MONTHLY:
1972 return deduction_FD_monthly != DEDUCTION_FD_MONTHLY_EDEFAULT;
1973 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_AC_DAILY:
1974 return deduction_AC_daily != DEDUCTION_AC_DAILY_EDEFAULT;
1975 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_AC_MONTHLY:
1976 return deduction_AC_monthly != DEDUCTION_AC_MONTHLY_EDEFAULT;
1977 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_AC_YEARLY:
1978 return deduction_AC_yearly != DEDUCTION_AC_YEARLY_EDEFAULT;
1979 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_CE_DAILY:
1980 return deduction_CE_daily != DEDUCTION_CE_DAILY_EDEFAULT;
1981 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_CE_MONTHLY:
1982 return deduction_CE_monthly != DEDUCTION_CE_MONTHLY_EDEFAULT;
1983 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_CE_YEARLY:
1984 return deduction_CE_yearly != DEDUCTION_CE_YEARLY_EDEFAULT;
1985 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_DS_DAILY:
1986 return deduction_DS_daily != DEDUCTION_DS_DAILY_EDEFAULT;
1987 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_DS_MONTHLY:
1988 return deduction_DS_monthly != DEDUCTION_DS_MONTHLY_EDEFAULT;
1989 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_FO_DAILY:
1990 return deduction_FO_daily != DEDUCTION_FO_DAILY_EDEFAULT;
1991 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_FO_MONTHLY:
1992 return deduction_FO_monthly != DEDUCTION_FO_MONTHLY_EDEFAULT;
1993 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_FO_YEARLY:
1994 return deduction_FO_yearly != DEDUCTION_FO_YEARLY_EDEFAULT;
1995 case TaxationWithRootPackage.TAX_CARD__CREDIT_CIS_DAILY:
1996 return credit_CIS_daily != CREDIT_CIS_DAILY_EDEFAULT;
1997 case TaxationWithRootPackage.TAX_CARD__CREDIT_CIS_MONTHLY:
1998 return credit_CIS_monthly != CREDIT_CIS_MONTHLY_EDEFAULT;
1999 case TaxationWithRootPackage.TAX_CARD__CREDIT_CIM_DAILY:
2000 return credit_CIM_daily != CREDIT_CIM_DAILY_EDEFAULT;
2001 case TaxationWithRootPackage.TAX_CARD__VALIDITY:
2002 return validity != VALIDITY_EDEFAULT;
2003 case TaxationWithRootPackage.TAX_CARD__INCOME_TAX_CREDIT:
2004 return income_Tax_Credit != null && !income_Tax_Credit.isEmpty();
2005 case TaxationWithRootPackage.TAX_CARD__PREVIOUS:
2006 return previous != null;
2007 case TaxationWithRootPackage.TAX_CARD__CURRENT_TAX_CARD:
2008 return current_tax_card != null;
2009 case TaxationWithRootPackage.TAX_CARD__CREDIT_CIM_YEARLY:
2010 return credit_CIM_yearly != CREDIT_CIM_YEARLY_EDEFAULT;
2011 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_DS_ALIMONY_YEARLY:
2012 return deduction_DS_Alimony_yearly != DEDUCTION_DS_ALIMONY_YEARLY_EDEFAULT;
2013 case TaxationWithRootPackage.TAX_CARD__DEDUCTION_DS_DEBT_YEARLY:
2014 return deduction_DS_Debt_yearly != DEDUCTION_DS_DEBT_YEARLY_EDEFAULT;
2015 case TaxationWithRootPackage.TAX_CARD__INCOME:
2016 return getIncome() != null;
2017 }
2018 return super.eIsSet(featureID);
2019 }
2020
2021 /**
2022 * <!-- begin-user-doc -->
2023 * <!-- end-user-doc -->
2024 * @generated
2025 */
2026 @Override
2027 public String toString() {
2028 if (eIsProxy()) return super.toString();
2029
2030 StringBuilder result = new StringBuilder(super.toString());
2031 result.append(" (card_identifier: ");
2032 result.append(card_identifier);
2033 result.append(", tax_office: ");
2034 result.append(tax_office);
2035 result.append(", percentage_of_witholding: ");
2036 result.append(percentage_of_witholding);
2037 result.append(", tax_payers_name_surname: ");
2038 result.append(tax_payers_name_surname);
2039 result.append(", tax_payers_partner_name_surname: ");
2040 result.append(tax_payers_partner_name_surname);
2041 result.append(", jobs_Employer_SSNo: ");
2042 result.append(jobs_Employer_SSNo);
2043 result.append(", jobs_employers_name: ");
2044 result.append(jobs_employers_name);
2045 result.append(", jobs_activity_type: ");
2046 result.append(jobs_activity_type);
2047 result.append(", jobs_place_of_work: ");
2048 result.append(jobs_place_of_work);
2049 result.append(", deduction_FD_daily: ");
2050 result.append(deduction_FD_daily);
2051 result.append(", deduction_FD_monthly: ");
2052 result.append(deduction_FD_monthly);
2053 result.append(", deduction_AC_daily: ");
2054 result.append(deduction_AC_daily);
2055 result.append(", deduction_AC_monthly: ");
2056 result.append(deduction_AC_monthly);
2057 result.append(", deduction_AC_yearly: ");
2058 result.append(deduction_AC_yearly);
2059 result.append(", deduction_CE_daily: ");
2060 result.append(deduction_CE_daily);
2061 result.append(", deduction_CE_monthly: ");
2062 result.append(deduction_CE_monthly);
2063 result.append(", deduction_CE_yearly: ");
2064 result.append(deduction_CE_yearly);
2065 result.append(", deduction_DS_daily: ");
2066 result.append(deduction_DS_daily);
2067 result.append(", deduction_DS_monthly: ");
2068 result.append(deduction_DS_monthly);
2069 result.append(", deduction_FO_daily: ");
2070 result.append(deduction_FO_daily);
2071 result.append(", deduction_FO_monthly: ");
2072 result.append(deduction_FO_monthly);
2073 result.append(", deduction_FO_yearly: ");
2074 result.append(deduction_FO_yearly);
2075 result.append(", credit_CIS_daily: ");
2076 result.append(credit_CIS_daily);
2077 result.append(", credit_CIS_monthly: ");
2078 result.append(credit_CIS_monthly);
2079 result.append(", credit_CIM_daily: ");
2080 result.append(credit_CIM_daily);
2081 result.append(", validity: ");
2082 result.append(validity);
2083 result.append(", credit_CIM_yearly: ");
2084 result.append(credit_CIM_yearly);
2085 result.append(", deduction_DS_Alimony_yearly: ");
2086 result.append(deduction_DS_Alimony_yearly);
2087 result.append(", deduction_DS_Debt_yearly: ");
2088 result.append(deduction_DS_Debt_yearly);
2089 result.append(')');
2090 return result.toString();
2091 }
2092
2093} //Tax_CardImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Tax_PayerImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Tax_PayerImpl.java
new file mode 100644
index 00000000..3783701a
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Tax_PayerImpl.java
@@ -0,0 +1,355 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Dependent;
6import TaxationWithRoot.FromAgent;
7import TaxationWithRoot.FromLaw;
8import TaxationWithRoot.Income;
9import TaxationWithRoot.Tax_Payer;
10import TaxationWithRoot.TaxationWithRootPackage;
11
12import java.util.Collection;
13
14import org.eclipse.emf.common.notify.Notification;
15import org.eclipse.emf.common.notify.NotificationChain;
16
17import org.eclipse.emf.common.util.EList;
18
19import org.eclipse.emf.ecore.EClass;
20import org.eclipse.emf.ecore.InternalEObject;
21
22import org.eclipse.emf.ecore.impl.ENotificationImpl;
23
24import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
25import org.eclipse.emf.ecore.util.InternalEList;
26
27/**
28 * <!-- begin-user-doc -->
29 * An implementation of the model object '<em><b>Tax Payer</b></em>'.
30 * <!-- end-user-doc -->
31 * <p>
32 * The following features are implemented:
33 * </p>
34 * <ul>
35 * <li>{@link TaxationWithRoot.impl.Tax_PayerImpl#getDependents <em>Dependents</em>}</li>
36 * <li>{@link TaxationWithRoot.impl.Tax_PayerImpl#getFrom_agent <em>From agent</em>}</li>
37 * <li>{@link TaxationWithRoot.impl.Tax_PayerImpl#getIncomes <em>Incomes</em>}</li>
38 * <li>{@link TaxationWithRoot.impl.Tax_PayerImpl#getFrom_law <em>From law</em>}</li>
39 * </ul>
40 *
41 * @generated
42 */
43public abstract class Tax_PayerImpl extends Physical_PersonImpl implements Tax_Payer {
44 /**
45 * The cached value of the '{@link #getDependents() <em>Dependents</em>}' containment reference list.
46 * <!-- begin-user-doc -->
47 * <!-- end-user-doc -->
48 * @see #getDependents()
49 * @generated
50 * @ordered
51 */
52 protected EList<Dependent> dependents;
53
54 /**
55 * The cached value of the '{@link #getFrom_agent() <em>From agent</em>}' containment reference.
56 * <!-- begin-user-doc -->
57 * <!-- end-user-doc -->
58 * @see #getFrom_agent()
59 * @generated
60 * @ordered
61 */
62 protected FromAgent from_agent;
63
64 /**
65 * The cached value of the '{@link #getIncomes() <em>Incomes</em>}' containment reference list.
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @see #getIncomes()
69 * @generated
70 * @ordered
71 */
72 protected EList<Income> incomes;
73
74 /**
75 * The cached value of the '{@link #getFrom_law() <em>From law</em>}' containment reference.
76 * <!-- begin-user-doc -->
77 * <!-- end-user-doc -->
78 * @see #getFrom_law()
79 * @generated
80 * @ordered
81 */
82 protected FromLaw from_law;
83
84 /**
85 * <!-- begin-user-doc -->
86 * <!-- end-user-doc -->
87 * @generated
88 */
89 protected Tax_PayerImpl() {
90 super();
91 }
92
93 /**
94 * <!-- begin-user-doc -->
95 * <!-- end-user-doc -->
96 * @generated
97 */
98 @Override
99 protected EClass eStaticClass() {
100 return TaxationWithRootPackage.Literals.TAX_PAYER;
101 }
102
103 /**
104 * <!-- begin-user-doc -->
105 * <!-- end-user-doc -->
106 * @generated
107 */
108 @Override
109 public EList<Dependent> getDependents() {
110 if (dependents == null) {
111 dependents = new EObjectContainmentWithInverseEList<Dependent>(Dependent.class, this, TaxationWithRootPackage.TAX_PAYER__DEPENDENTS, TaxationWithRootPackage.DEPENDENT__RESPONSIBLE_PERSON);
112 }
113 return dependents;
114 }
115
116 /**
117 * <!-- begin-user-doc -->
118 * <!-- end-user-doc -->
119 * @generated
120 */
121 @Override
122 public FromAgent getFrom_agent() {
123 return from_agent;
124 }
125
126 /**
127 * <!-- begin-user-doc -->
128 * <!-- end-user-doc -->
129 * @generated
130 */
131 public NotificationChain basicSetFrom_agent(FromAgent newFrom_agent, NotificationChain msgs) {
132 FromAgent oldFrom_agent = from_agent;
133 from_agent = newFrom_agent;
134 if (eNotificationRequired()) {
135 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_PAYER__FROM_AGENT, oldFrom_agent, newFrom_agent);
136 if (msgs == null) msgs = notification; else msgs.add(notification);
137 }
138 return msgs;
139 }
140
141 /**
142 * <!-- begin-user-doc -->
143 * <!-- end-user-doc -->
144 * @generated
145 */
146 @Override
147 public void setFrom_agent(FromAgent newFrom_agent) {
148 if (newFrom_agent != from_agent) {
149 NotificationChain msgs = null;
150 if (from_agent != null)
151 msgs = ((InternalEObject)from_agent).eInverseRemove(this, TaxationWithRootPackage.FROM_AGENT__TAX_PAYER, FromAgent.class, msgs);
152 if (newFrom_agent != null)
153 msgs = ((InternalEObject)newFrom_agent).eInverseAdd(this, TaxationWithRootPackage.FROM_AGENT__TAX_PAYER, FromAgent.class, msgs);
154 msgs = basicSetFrom_agent(newFrom_agent, msgs);
155 if (msgs != null) msgs.dispatch();
156 }
157 else if (eNotificationRequired())
158 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_PAYER__FROM_AGENT, newFrom_agent, newFrom_agent));
159 }
160
161 /**
162 * <!-- begin-user-doc -->
163 * <!-- end-user-doc -->
164 * @generated
165 */
166 @Override
167 public EList<Income> getIncomes() {
168 if (incomes == null) {
169 incomes = new EObjectContainmentWithInverseEList<Income>(Income.class, this, TaxationWithRootPackage.TAX_PAYER__INCOMES, TaxationWithRootPackage.INCOME__TAX_PAYER);
170 }
171 return incomes;
172 }
173
174 /**
175 * <!-- begin-user-doc -->
176 * <!-- end-user-doc -->
177 * @generated
178 */
179 @Override
180 public FromLaw getFrom_law() {
181 return from_law;
182 }
183
184 /**
185 * <!-- begin-user-doc -->
186 * <!-- end-user-doc -->
187 * @generated
188 */
189 public NotificationChain basicSetFrom_law(FromLaw newFrom_law, NotificationChain msgs) {
190 FromLaw oldFrom_law = from_law;
191 from_law = newFrom_law;
192 if (eNotificationRequired()) {
193 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_PAYER__FROM_LAW, oldFrom_law, newFrom_law);
194 if (msgs == null) msgs = notification; else msgs.add(notification);
195 }
196 return msgs;
197 }
198
199 /**
200 * <!-- begin-user-doc -->
201 * <!-- end-user-doc -->
202 * @generated
203 */
204 @Override
205 public void setFrom_law(FromLaw newFrom_law) {
206 if (newFrom_law != from_law) {
207 NotificationChain msgs = null;
208 if (from_law != null)
209 msgs = ((InternalEObject)from_law).eInverseRemove(this, TaxationWithRootPackage.FROM_LAW__TAX_PAYER, FromLaw.class, msgs);
210 if (newFrom_law != null)
211 msgs = ((InternalEObject)newFrom_law).eInverseAdd(this, TaxationWithRootPackage.FROM_LAW__TAX_PAYER, FromLaw.class, msgs);
212 msgs = basicSetFrom_law(newFrom_law, msgs);
213 if (msgs != null) msgs.dispatch();
214 }
215 else if (eNotificationRequired())
216 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_PAYER__FROM_LAW, newFrom_law, newFrom_law));
217 }
218
219 /**
220 * <!-- begin-user-doc -->
221 * <!-- end-user-doc -->
222 * @generated
223 */
224 @SuppressWarnings("unchecked")
225 @Override
226 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
227 switch (featureID) {
228 case TaxationWithRootPackage.TAX_PAYER__DEPENDENTS:
229 return ((InternalEList<InternalEObject>)(InternalEList<?>)getDependents()).basicAdd(otherEnd, msgs);
230 case TaxationWithRootPackage.TAX_PAYER__FROM_AGENT:
231 if (from_agent != null)
232 msgs = ((InternalEObject)from_agent).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TaxationWithRootPackage.TAX_PAYER__FROM_AGENT, null, msgs);
233 return basicSetFrom_agent((FromAgent)otherEnd, msgs);
234 case TaxationWithRootPackage.TAX_PAYER__INCOMES:
235 return ((InternalEList<InternalEObject>)(InternalEList<?>)getIncomes()).basicAdd(otherEnd, msgs);
236 case TaxationWithRootPackage.TAX_PAYER__FROM_LAW:
237 if (from_law != null)
238 msgs = ((InternalEObject)from_law).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TaxationWithRootPackage.TAX_PAYER__FROM_LAW, null, msgs);
239 return basicSetFrom_law((FromLaw)otherEnd, msgs);
240 }
241 return super.eInverseAdd(otherEnd, featureID, msgs);
242 }
243
244 /**
245 * <!-- begin-user-doc -->
246 * <!-- end-user-doc -->
247 * @generated
248 */
249 @Override
250 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
251 switch (featureID) {
252 case TaxationWithRootPackage.TAX_PAYER__DEPENDENTS:
253 return ((InternalEList<?>)getDependents()).basicRemove(otherEnd, msgs);
254 case TaxationWithRootPackage.TAX_PAYER__FROM_AGENT:
255 return basicSetFrom_agent(null, msgs);
256 case TaxationWithRootPackage.TAX_PAYER__INCOMES:
257 return ((InternalEList<?>)getIncomes()).basicRemove(otherEnd, msgs);
258 case TaxationWithRootPackage.TAX_PAYER__FROM_LAW:
259 return basicSetFrom_law(null, msgs);
260 }
261 return super.eInverseRemove(otherEnd, featureID, msgs);
262 }
263
264 /**
265 * <!-- begin-user-doc -->
266 * <!-- end-user-doc -->
267 * @generated
268 */
269 @Override
270 public Object eGet(int featureID, boolean resolve, boolean coreType) {
271 switch (featureID) {
272 case TaxationWithRootPackage.TAX_PAYER__DEPENDENTS:
273 return getDependents();
274 case TaxationWithRootPackage.TAX_PAYER__FROM_AGENT:
275 return getFrom_agent();
276 case TaxationWithRootPackage.TAX_PAYER__INCOMES:
277 return getIncomes();
278 case TaxationWithRootPackage.TAX_PAYER__FROM_LAW:
279 return getFrom_law();
280 }
281 return super.eGet(featureID, resolve, coreType);
282 }
283
284 /**
285 * <!-- begin-user-doc -->
286 * <!-- end-user-doc -->
287 * @generated
288 */
289 @SuppressWarnings("unchecked")
290 @Override
291 public void eSet(int featureID, Object newValue) {
292 switch (featureID) {
293 case TaxationWithRootPackage.TAX_PAYER__DEPENDENTS:
294 getDependents().clear();
295 getDependents().addAll((Collection<? extends Dependent>)newValue);
296 return;
297 case TaxationWithRootPackage.TAX_PAYER__FROM_AGENT:
298 setFrom_agent((FromAgent)newValue);
299 return;
300 case TaxationWithRootPackage.TAX_PAYER__INCOMES:
301 getIncomes().clear();
302 getIncomes().addAll((Collection<? extends Income>)newValue);
303 return;
304 case TaxationWithRootPackage.TAX_PAYER__FROM_LAW:
305 setFrom_law((FromLaw)newValue);
306 return;
307 }
308 super.eSet(featureID, newValue);
309 }
310
311 /**
312 * <!-- begin-user-doc -->
313 * <!-- end-user-doc -->
314 * @generated
315 */
316 @Override
317 public void eUnset(int featureID) {
318 switch (featureID) {
319 case TaxationWithRootPackage.TAX_PAYER__DEPENDENTS:
320 getDependents().clear();
321 return;
322 case TaxationWithRootPackage.TAX_PAYER__FROM_AGENT:
323 setFrom_agent((FromAgent)null);
324 return;
325 case TaxationWithRootPackage.TAX_PAYER__INCOMES:
326 getIncomes().clear();
327 return;
328 case TaxationWithRootPackage.TAX_PAYER__FROM_LAW:
329 setFrom_law((FromLaw)null);
330 return;
331 }
332 super.eUnset(featureID);
333 }
334
335 /**
336 * <!-- begin-user-doc -->
337 * <!-- end-user-doc -->
338 * @generated
339 */
340 @Override
341 public boolean eIsSet(int featureID) {
342 switch (featureID) {
343 case TaxationWithRootPackage.TAX_PAYER__DEPENDENTS:
344 return dependents != null && !dependents.isEmpty();
345 case TaxationWithRootPackage.TAX_PAYER__FROM_AGENT:
346 return from_agent != null;
347 case TaxationWithRootPackage.TAX_PAYER__INCOMES:
348 return incomes != null && !incomes.isEmpty();
349 case TaxationWithRootPackage.TAX_PAYER__FROM_LAW:
350 return from_law != null;
351 }
352 return super.eIsSet(featureID);
353 }
354
355} //Tax_PayerImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Tax_PropertyImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Tax_PropertyImpl.java
new file mode 100644
index 00000000..8b5e4683
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Tax_PropertyImpl.java
@@ -0,0 +1,324 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Legal_Union_Record;
6import TaxationWithRoot.Tax_Property;
7import TaxationWithRoot.TaxationWithRootPackage;
8
9import org.eclipse.emf.common.notify.Notification;
10import org.eclipse.emf.common.notify.NotificationChain;
11
12import org.eclipse.emf.ecore.EClass;
13import org.eclipse.emf.ecore.InternalEObject;
14
15import org.eclipse.emf.ecore.impl.ENotificationImpl;
16import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
17
18import org.eclipse.emf.ecore.util.EcoreUtil;
19
20/**
21 * <!-- begin-user-doc -->
22 * An implementation of the model object '<em><b>Tax Property</b></em>'.
23 * <!-- end-user-doc -->
24 * <p>
25 * The following features are implemented:
26 * </p>
27 * <ul>
28 * <li>{@link TaxationWithRoot.impl.Tax_PropertyImpl#getStarting_year <em>Starting year</em>}</li>
29 * <li>{@link TaxationWithRoot.impl.Tax_PropertyImpl#getId10 <em>Id10</em>}</li>
30 * <li>{@link TaxationWithRoot.impl.Tax_PropertyImpl#getUnion_record <em>Union record</em>}</li>
31 * </ul>
32 *
33 * @generated
34 */
35public class Tax_PropertyImpl extends MinimalEObjectImpl.Container implements Tax_Property {
36 /**
37 * The default value of the '{@link #getStarting_year() <em>Starting year</em>}' attribute.
38 * <!-- begin-user-doc -->
39 * <!-- end-user-doc -->
40 * @see #getStarting_year()
41 * @generated
42 * @ordered
43 */
44 protected static final int STARTING_YEAR_EDEFAULT = 0;
45
46 /**
47 * The cached value of the '{@link #getStarting_year() <em>Starting year</em>}' attribute.
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @see #getStarting_year()
51 * @generated
52 * @ordered
53 */
54 protected int starting_year = STARTING_YEAR_EDEFAULT;
55
56 /**
57 * The default value of the '{@link #getId10() <em>Id10</em>}' attribute.
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @see #getId10()
61 * @generated
62 * @ordered
63 */
64 protected static final String ID10_EDEFAULT = null;
65
66 /**
67 * The cached value of the '{@link #getId10() <em>Id10</em>}' attribute.
68 * <!-- begin-user-doc -->
69 * <!-- end-user-doc -->
70 * @see #getId10()
71 * @generated
72 * @ordered
73 */
74 protected String id10 = ID10_EDEFAULT;
75
76 /**
77 * <!-- begin-user-doc -->
78 * <!-- end-user-doc -->
79 * @generated
80 */
81 protected Tax_PropertyImpl() {
82 super();
83 }
84
85 /**
86 * <!-- begin-user-doc -->
87 * <!-- end-user-doc -->
88 * @generated
89 */
90 @Override
91 protected EClass eStaticClass() {
92 return TaxationWithRootPackage.Literals.TAX_PROPERTY;
93 }
94
95 /**
96 * <!-- begin-user-doc -->
97 * <!-- end-user-doc -->
98 * @generated
99 */
100 @Override
101 public int getStarting_year() {
102 return starting_year;
103 }
104
105 /**
106 * <!-- begin-user-doc -->
107 * <!-- end-user-doc -->
108 * @generated
109 */
110 @Override
111 public void setStarting_year(int newStarting_year) {
112 int oldStarting_year = starting_year;
113 starting_year = newStarting_year;
114 if (eNotificationRequired())
115 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_PROPERTY__STARTING_YEAR, oldStarting_year, starting_year));
116 }
117
118 /**
119 * <!-- begin-user-doc -->
120 * <!-- end-user-doc -->
121 * @generated
122 */
123 @Override
124 public String getId10() {
125 return id10;
126 }
127
128 /**
129 * <!-- begin-user-doc -->
130 * <!-- end-user-doc -->
131 * @generated
132 */
133 @Override
134 public void setId10(String newId10) {
135 String oldId10 = id10;
136 id10 = newId10;
137 if (eNotificationRequired())
138 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_PROPERTY__ID10, oldId10, id10));
139 }
140
141 /**
142 * <!-- begin-user-doc -->
143 * <!-- end-user-doc -->
144 * @generated
145 */
146 @Override
147 public Legal_Union_Record getUnion_record() {
148 if (eContainerFeatureID() != TaxationWithRootPackage.TAX_PROPERTY__UNION_RECORD) return null;
149 return (Legal_Union_Record)eInternalContainer();
150 }
151
152 /**
153 * <!-- begin-user-doc -->
154 * <!-- end-user-doc -->
155 * @generated
156 */
157 public NotificationChain basicSetUnion_record(Legal_Union_Record newUnion_record, NotificationChain msgs) {
158 msgs = eBasicSetContainer((InternalEObject)newUnion_record, TaxationWithRootPackage.TAX_PROPERTY__UNION_RECORD, msgs);
159 return msgs;
160 }
161
162 /**
163 * <!-- begin-user-doc -->
164 * <!-- end-user-doc -->
165 * @generated
166 */
167 @Override
168 public void setUnion_record(Legal_Union_Record newUnion_record) {
169 if (newUnion_record != eInternalContainer() || (eContainerFeatureID() != TaxationWithRootPackage.TAX_PROPERTY__UNION_RECORD && newUnion_record != null)) {
170 if (EcoreUtil.isAncestor(this, newUnion_record))
171 throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
172 NotificationChain msgs = null;
173 if (eInternalContainer() != null)
174 msgs = eBasicRemoveFromContainer(msgs);
175 if (newUnion_record != null)
176 msgs = ((InternalEObject)newUnion_record).eInverseAdd(this, TaxationWithRootPackage.LEGAL_UNION_RECORD__PROPERTIES, Legal_Union_Record.class, msgs);
177 msgs = basicSetUnion_record(newUnion_record, msgs);
178 if (msgs != null) msgs.dispatch();
179 }
180 else if (eNotificationRequired())
181 eNotify(new ENotificationImpl(this, Notification.SET, TaxationWithRootPackage.TAX_PROPERTY__UNION_RECORD, newUnion_record, newUnion_record));
182 }
183
184 /**
185 * <!-- begin-user-doc -->
186 * <!-- end-user-doc -->
187 * @generated
188 */
189 @Override
190 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
191 switch (featureID) {
192 case TaxationWithRootPackage.TAX_PROPERTY__UNION_RECORD:
193 if (eInternalContainer() != null)
194 msgs = eBasicRemoveFromContainer(msgs);
195 return basicSetUnion_record((Legal_Union_Record)otherEnd, msgs);
196 }
197 return super.eInverseAdd(otherEnd, featureID, msgs);
198 }
199
200 /**
201 * <!-- begin-user-doc -->
202 * <!-- end-user-doc -->
203 * @generated
204 */
205 @Override
206 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
207 switch (featureID) {
208 case TaxationWithRootPackage.TAX_PROPERTY__UNION_RECORD:
209 return basicSetUnion_record(null, msgs);
210 }
211 return super.eInverseRemove(otherEnd, featureID, msgs);
212 }
213
214 /**
215 * <!-- begin-user-doc -->
216 * <!-- end-user-doc -->
217 * @generated
218 */
219 @Override
220 public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
221 switch (eContainerFeatureID()) {
222 case TaxationWithRootPackage.TAX_PROPERTY__UNION_RECORD:
223 return eInternalContainer().eInverseRemove(this, TaxationWithRootPackage.LEGAL_UNION_RECORD__PROPERTIES, Legal_Union_Record.class, msgs);
224 }
225 return super.eBasicRemoveFromContainerFeature(msgs);
226 }
227
228 /**
229 * <!-- begin-user-doc -->
230 * <!-- end-user-doc -->
231 * @generated
232 */
233 @Override
234 public Object eGet(int featureID, boolean resolve, boolean coreType) {
235 switch (featureID) {
236 case TaxationWithRootPackage.TAX_PROPERTY__STARTING_YEAR:
237 return getStarting_year();
238 case TaxationWithRootPackage.TAX_PROPERTY__ID10:
239 return getId10();
240 case TaxationWithRootPackage.TAX_PROPERTY__UNION_RECORD:
241 return getUnion_record();
242 }
243 return super.eGet(featureID, resolve, coreType);
244 }
245
246 /**
247 * <!-- begin-user-doc -->
248 * <!-- end-user-doc -->
249 * @generated
250 */
251 @Override
252 public void eSet(int featureID, Object newValue) {
253 switch (featureID) {
254 case TaxationWithRootPackage.TAX_PROPERTY__STARTING_YEAR:
255 setStarting_year((Integer)newValue);
256 return;
257 case TaxationWithRootPackage.TAX_PROPERTY__ID10:
258 setId10((String)newValue);
259 return;
260 case TaxationWithRootPackage.TAX_PROPERTY__UNION_RECORD:
261 setUnion_record((Legal_Union_Record)newValue);
262 return;
263 }
264 super.eSet(featureID, newValue);
265 }
266
267 /**
268 * <!-- begin-user-doc -->
269 * <!-- end-user-doc -->
270 * @generated
271 */
272 @Override
273 public void eUnset(int featureID) {
274 switch (featureID) {
275 case TaxationWithRootPackage.TAX_PROPERTY__STARTING_YEAR:
276 setStarting_year(STARTING_YEAR_EDEFAULT);
277 return;
278 case TaxationWithRootPackage.TAX_PROPERTY__ID10:
279 setId10(ID10_EDEFAULT);
280 return;
281 case TaxationWithRootPackage.TAX_PROPERTY__UNION_RECORD:
282 setUnion_record((Legal_Union_Record)null);
283 return;
284 }
285 super.eUnset(featureID);
286 }
287
288 /**
289 * <!-- begin-user-doc -->
290 * <!-- end-user-doc -->
291 * @generated
292 */
293 @Override
294 public boolean eIsSet(int featureID) {
295 switch (featureID) {
296 case TaxationWithRootPackage.TAX_PROPERTY__STARTING_YEAR:
297 return starting_year != STARTING_YEAR_EDEFAULT;
298 case TaxationWithRootPackage.TAX_PROPERTY__ID10:
299 return ID10_EDEFAULT == null ? id10 != null : !ID10_EDEFAULT.equals(id10);
300 case TaxationWithRootPackage.TAX_PROPERTY__UNION_RECORD:
301 return getUnion_record() != null;
302 }
303 return super.eIsSet(featureID);
304 }
305
306 /**
307 * <!-- begin-user-doc -->
308 * <!-- end-user-doc -->
309 * @generated
310 */
311 @Override
312 public String toString() {
313 if (eIsProxy()) return super.toString();
314
315 StringBuilder result = new StringBuilder(super.toString());
316 result.append(" (starting_year: ");
317 result.append(starting_year);
318 result.append(", id10: ");
319 result.append(id10);
320 result.append(')');
321 return result.toString();
322 }
323
324} //Tax_PropertyImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/TaxationWithRootFactoryImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/TaxationWithRootFactoryImpl.java
new file mode 100644
index 00000000..876fa851
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/TaxationWithRootFactoryImpl.java
@@ -0,0 +1,988 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.*;
6
7import org.eclipse.emf.ecore.EClass;
8import org.eclipse.emf.ecore.EDataType;
9import org.eclipse.emf.ecore.EObject;
10import org.eclipse.emf.ecore.EPackage;
11
12import org.eclipse.emf.ecore.impl.EFactoryImpl;
13
14import org.eclipse.emf.ecore.plugin.EcorePlugin;
15
16/**
17 * <!-- begin-user-doc -->
18 * An implementation of the model <b>Factory</b>.
19 * <!-- end-user-doc -->
20 * @generated
21 */
22public class TaxationWithRootFactoryImpl extends EFactoryImpl implements TaxationWithRootFactory {
23 /**
24 * Creates the default factory implementation.
25 * <!-- begin-user-doc -->
26 * <!-- end-user-doc -->
27 * @generated
28 */
29 public static TaxationWithRootFactory init() {
30 try {
31 TaxationWithRootFactory theTaxationWithRootFactory = (TaxationWithRootFactory)EPackage.Registry.INSTANCE.getEFactory(TaxationWithRootPackage.eNS_URI);
32 if (theTaxationWithRootFactory != null) {
33 return theTaxationWithRootFactory;
34 }
35 }
36 catch (Exception exception) {
37 EcorePlugin.INSTANCE.log(exception);
38 }
39 return new TaxationWithRootFactoryImpl();
40 }
41
42 /**
43 * Creates an instance of the factory.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @generated
47 */
48 public TaxationWithRootFactoryImpl() {
49 super();
50 }
51
52 /**
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @generated
56 */
57 @Override
58 public EObject create(EClass eClass) {
59 switch (eClass.getClassifierID()) {
60 case TaxationWithRootPackage.INCOME_TAX: return createIncome_Tax();
61 case TaxationWithRootPackage.PHYSICAL_PERSON: return createPhysical_Person();
62 case TaxationWithRootPackage.ADDRESS: return createAddress();
63 case TaxationWithRootPackage.EXPENSE: return createExpense();
64 case TaxationWithRootPackage.DEPENDENT: return createDependent();
65 case TaxationWithRootPackage.EXTERNAL_ALLOWANCE: return createExternal_Allowance();
66 case TaxationWithRootPackage.HOUSEHOLD: return createHousehold();
67 case TaxationWithRootPackage.TAX_PROPERTY: return createTax_Property();
68 case TaxationWithRootPackage.FROM_AGENT: return createFromAgent();
69 case TaxationWithRootPackage.TAX_CARD: return createTax_Card();
70 case TaxationWithRootPackage.INCOME_TAX_CREDIT: return createIncome_Tax_Credit();
71 case TaxationWithRootPackage.INCOME_DETAIL: return createIncome_Detail();
72 case TaxationWithRootPackage.FROM_LAW: return createFromLaw();
73 case TaxationWithRootPackage.FISCAL_ADDRESS: return createFiscal_Address();
74 case TaxationWithRootPackage.HABITUAL_ADDRESS: return createHabitual_Address();
75 case TaxationWithRootPackage.MARRIAGE_RECORD: return createMarriage_Record();
76 case TaxationWithRootPackage.NON_RESIDENT_TAX_PAYER: return createNon_Resident_Tax_Payer();
77 case TaxationWithRootPackage.PARTNERSHIP_RECORD: return createPartnership_Record();
78 case TaxationWithRootPackage.RESIDENT_TAX_PAYER: return createResident_Tax_Payer();
79 case TaxationWithRootPackage.TRADE_AND_BUSINESS_INCOME: return createTrade_and_Business_Income();
80 case TaxationWithRootPackage.AGRICULTURE_AND_FORESTRY_INCOME: return createAgriculture_and_Forestry_Income();
81 case TaxationWithRootPackage.PENSIONS_AND_ANNUITIES_INCOME: return createPensions_and_Annuities_Income();
82 case TaxationWithRootPackage.CAPITAL_AND_INVESTMENTS_INCOME: return createCapital_and_Investments_Income();
83 case TaxationWithRootPackage.EMPLOYMENT_INCOME: return createEmployment_Income();
84 case TaxationWithRootPackage.RENTALS_AND_LEASES_INCOME: return createRentals_and_Leases_Income();
85 case TaxationWithRootPackage.FOREIGN_INCOME: return createForeign_Income();
86 case TaxationWithRootPackage.LOCAL_INCOME: return createLocal_Income();
87 case TaxationWithRootPackage.CIM: return createCIM();
88 case TaxationWithRootPackage.CIP: return createCIP();
89 case TaxationWithRootPackage.CIS: return createCIS();
90 case TaxationWithRootPackage.PERMANENT_EXPENSE: return createPermanent_Expense();
91 case TaxationWithRootPackage.SPECIAL_EXPENSE_DS: return createSpecial_Expense_DS();
92 case TaxationWithRootPackage.INTEREST_EXPENSE: return createInterest_Expense();
93 case TaxationWithRootPackage.PRIVATE_INSURANCE_AND_PLAN: return createPrivate_Insurance_and_Plan();
94 case TaxationWithRootPackage.HEALTH_AND_PENSION_INSURANCE: return createHealth_and_Pension_Insurance();
95 case TaxationWithRootPackage.DONATION: return createDonation();
96 case TaxationWithRootPackage.LOSS_CARRYFORWARD: return createLoss_Carryforward();
97 case TaxationWithRootPackage.SPOUSAL_EXPENSE_AC: return createSpousal_Expense_AC();
98 case TaxationWithRootPackage.EXTRAORDINARY_EXPENSE_CE: return createExtraordinary_Expense_CE();
99 case TaxationWithRootPackage.TRAVEL_EXPENSE_FD: return createTravel_Expense_FD();
100 case TaxationWithRootPackage.PROFESSIONAL_EXPENSE: return createProfessional_Expense();
101 case TaxationWithRootPackage.MISCELLANEOUS_EXPENSE_FO: return createMiscellaneous_Expense_FO();
102 case TaxationWithRootPackage.RESOURCE: return createResource();
103 default:
104 throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
105 }
106 }
107
108 /**
109 * <!-- begin-user-doc -->
110 * <!-- end-user-doc -->
111 * @generated
112 */
113 @Override
114 public Object createFromString(EDataType eDataType, String initialValue) {
115 switch (eDataType.getClassifierID()) {
116 case TaxationWithRootPackage.GRANTOR:
117 return createGrantorFromString(eDataType, initialValue);
118 case TaxationWithRootPackage.DISABILITY_TYPES:
119 return createDisability_TypesFromString(eDataType, initialValue);
120 case TaxationWithRootPackage.COUNTRY:
121 return createCountryFromString(eDataType, initialValue);
122 case TaxationWithRootPackage.TAX_OFFICE:
123 return createTax_OfficeFromString(eDataType, initialValue);
124 case TaxationWithRootPackage.TAX_CLASS_CATEGORY:
125 return createTax_Class_CategoryFromString(eDataType, initialValue);
126 case TaxationWithRootPackage.JOB_ACTIVITY:
127 return createJob_ActivityFromString(eDataType, initialValue);
128 case TaxationWithRootPackage.TOWN:
129 return createTownFromString(eDataType, initialValue);
130 case TaxationWithRootPackage.CE_TYPE:
131 return createCE_TypeFromString(eDataType, initialValue);
132 case TaxationWithRootPackage.EXPENSE_PURPOSE:
133 return createExpense_PurposeFromString(eDataType, initialValue);
134 case TaxationWithRootPackage.DEPENDENT_TYPE:
135 return createDependent_TypeFromString(eDataType, initialValue);
136 case TaxationWithRootPackage.SEPARATION_CAUSES:
137 return createSeparation_CausesFromString(eDataType, initialValue);
138 case TaxationWithRootPackage.CATEGORY_OF_PERMANENT_EXPENSE:
139 return createCategory_of_Permanent_ExpenseFromString(eDataType, initialValue);
140 case TaxationWithRootPackage.CATEGORY_OF_HEALTH_AND_PENSION_INSURANCES:
141 return createCategory_of_Health_and_Pension_InsurancesFromString(eDataType, initialValue);
142 case TaxationWithRootPackage.CATEGORY_OF_PRIVATE_INSURANCE_AND_PLAN:
143 return createCategory_of_Private_Insurance_and_PlanFromString(eDataType, initialValue);
144 case TaxationWithRootPackage.LEGAL_UNION_TYPES:
145 return createLegal_Union_TypesFromString(eDataType, initialValue);
146 default:
147 throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
148 }
149 }
150
151 /**
152 * <!-- begin-user-doc -->
153 * <!-- end-user-doc -->
154 * @generated
155 */
156 @Override
157 public String convertToString(EDataType eDataType, Object instanceValue) {
158 switch (eDataType.getClassifierID()) {
159 case TaxationWithRootPackage.GRANTOR:
160 return convertGrantorToString(eDataType, instanceValue);
161 case TaxationWithRootPackage.DISABILITY_TYPES:
162 return convertDisability_TypesToString(eDataType, instanceValue);
163 case TaxationWithRootPackage.COUNTRY:
164 return convertCountryToString(eDataType, instanceValue);
165 case TaxationWithRootPackage.TAX_OFFICE:
166 return convertTax_OfficeToString(eDataType, instanceValue);
167 case TaxationWithRootPackage.TAX_CLASS_CATEGORY:
168 return convertTax_Class_CategoryToString(eDataType, instanceValue);
169 case TaxationWithRootPackage.JOB_ACTIVITY:
170 return convertJob_ActivityToString(eDataType, instanceValue);
171 case TaxationWithRootPackage.TOWN:
172 return convertTownToString(eDataType, instanceValue);
173 case TaxationWithRootPackage.CE_TYPE:
174 return convertCE_TypeToString(eDataType, instanceValue);
175 case TaxationWithRootPackage.EXPENSE_PURPOSE:
176 return convertExpense_PurposeToString(eDataType, instanceValue);
177 case TaxationWithRootPackage.DEPENDENT_TYPE:
178 return convertDependent_TypeToString(eDataType, instanceValue);
179 case TaxationWithRootPackage.SEPARATION_CAUSES:
180 return convertSeparation_CausesToString(eDataType, instanceValue);
181 case TaxationWithRootPackage.CATEGORY_OF_PERMANENT_EXPENSE:
182 return convertCategory_of_Permanent_ExpenseToString(eDataType, instanceValue);
183 case TaxationWithRootPackage.CATEGORY_OF_HEALTH_AND_PENSION_INSURANCES:
184 return convertCategory_of_Health_and_Pension_InsurancesToString(eDataType, instanceValue);
185 case TaxationWithRootPackage.CATEGORY_OF_PRIVATE_INSURANCE_AND_PLAN:
186 return convertCategory_of_Private_Insurance_and_PlanToString(eDataType, instanceValue);
187 case TaxationWithRootPackage.LEGAL_UNION_TYPES:
188 return convertLegal_Union_TypesToString(eDataType, instanceValue);
189 default:
190 throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
191 }
192 }
193
194 /**
195 * <!-- begin-user-doc -->
196 * <!-- end-user-doc -->
197 * @generated
198 */
199 @Override
200 public Income_Tax createIncome_Tax() {
201 Income_TaxImpl income_Tax = new Income_TaxImpl();
202 return income_Tax;
203 }
204
205 /**
206 * <!-- begin-user-doc -->
207 * <!-- end-user-doc -->
208 * @generated
209 */
210 @Override
211 public Physical_Person createPhysical_Person() {
212 Physical_PersonImpl physical_Person = new Physical_PersonImpl();
213 return physical_Person;
214 }
215
216 /**
217 * <!-- begin-user-doc -->
218 * <!-- end-user-doc -->
219 * @generated
220 */
221 @Override
222 public Address createAddress() {
223 AddressImpl address = new AddressImpl();
224 return address;
225 }
226
227 /**
228 * <!-- begin-user-doc -->
229 * <!-- end-user-doc -->
230 * @generated
231 */
232 @Override
233 public Expense createExpense() {
234 ExpenseImpl expense = new ExpenseImpl();
235 return expense;
236 }
237
238 /**
239 * <!-- begin-user-doc -->
240 * <!-- end-user-doc -->
241 * @generated
242 */
243 @Override
244 public Dependent createDependent() {
245 DependentImpl dependent = new DependentImpl();
246 return dependent;
247 }
248
249 /**
250 * <!-- begin-user-doc -->
251 * <!-- end-user-doc -->
252 * @generated
253 */
254 @Override
255 public External_Allowance createExternal_Allowance() {
256 External_AllowanceImpl external_Allowance = new External_AllowanceImpl();
257 return external_Allowance;
258 }
259
260 /**
261 * <!-- begin-user-doc -->
262 * <!-- end-user-doc -->
263 * @generated
264 */
265 @Override
266 public Household createHousehold() {
267 HouseholdImpl household = new HouseholdImpl();
268 return household;
269 }
270
271 /**
272 * <!-- begin-user-doc -->
273 * <!-- end-user-doc -->
274 * @generated
275 */
276 @Override
277 public Tax_Property createTax_Property() {
278 Tax_PropertyImpl tax_Property = new Tax_PropertyImpl();
279 return tax_Property;
280 }
281
282 /**
283 * <!-- begin-user-doc -->
284 * <!-- end-user-doc -->
285 * @generated
286 */
287 @Override
288 public FromAgent createFromAgent() {
289 FromAgentImpl fromAgent = new FromAgentImpl();
290 return fromAgent;
291 }
292
293 /**
294 * <!-- begin-user-doc -->
295 * <!-- end-user-doc -->
296 * @generated
297 */
298 @Override
299 public Tax_Card createTax_Card() {
300 Tax_CardImpl tax_Card = new Tax_CardImpl();
301 return tax_Card;
302 }
303
304 /**
305 * <!-- begin-user-doc -->
306 * <!-- end-user-doc -->
307 * @generated
308 */
309 @Override
310 public Income_Tax_Credit createIncome_Tax_Credit() {
311 Income_Tax_CreditImpl income_Tax_Credit = new Income_Tax_CreditImpl();
312 return income_Tax_Credit;
313 }
314
315 /**
316 * <!-- begin-user-doc -->
317 * <!-- end-user-doc -->
318 * @generated
319 */
320 @Override
321 public Income_Detail createIncome_Detail() {
322 Income_DetailImpl income_Detail = new Income_DetailImpl();
323 return income_Detail;
324 }
325
326 /**
327 * <!-- begin-user-doc -->
328 * <!-- end-user-doc -->
329 * @generated
330 */
331 @Override
332 public FromLaw createFromLaw() {
333 FromLawImpl fromLaw = new FromLawImpl();
334 return fromLaw;
335 }
336
337 /**
338 * <!-- begin-user-doc -->
339 * <!-- end-user-doc -->
340 * @generated
341 */
342 @Override
343 public Fiscal_Address createFiscal_Address() {
344 Fiscal_AddressImpl fiscal_Address = new Fiscal_AddressImpl();
345 return fiscal_Address;
346 }
347
348 /**
349 * <!-- begin-user-doc -->
350 * <!-- end-user-doc -->
351 * @generated
352 */
353 @Override
354 public Habitual_Address createHabitual_Address() {
355 Habitual_AddressImpl habitual_Address = new Habitual_AddressImpl();
356 return habitual_Address;
357 }
358
359 /**
360 * <!-- begin-user-doc -->
361 * <!-- end-user-doc -->
362 * @generated
363 */
364 @Override
365 public Marriage_Record createMarriage_Record() {
366 Marriage_RecordImpl marriage_Record = new Marriage_RecordImpl();
367 return marriage_Record;
368 }
369
370 /**
371 * <!-- begin-user-doc -->
372 * <!-- end-user-doc -->
373 * @generated
374 */
375 @Override
376 public Non_Resident_Tax_Payer createNon_Resident_Tax_Payer() {
377 Non_Resident_Tax_PayerImpl non_Resident_Tax_Payer = new Non_Resident_Tax_PayerImpl();
378 return non_Resident_Tax_Payer;
379 }
380
381 /**
382 * <!-- begin-user-doc -->
383 * <!-- end-user-doc -->
384 * @generated
385 */
386 @Override
387 public Partnership_Record createPartnership_Record() {
388 Partnership_RecordImpl partnership_Record = new Partnership_RecordImpl();
389 return partnership_Record;
390 }
391
392 /**
393 * <!-- begin-user-doc -->
394 * <!-- end-user-doc -->
395 * @generated
396 */
397 @Override
398 public Resident_Tax_Payer createResident_Tax_Payer() {
399 Resident_Tax_PayerImpl resident_Tax_Payer = new Resident_Tax_PayerImpl();
400 return resident_Tax_Payer;
401 }
402
403 /**
404 * <!-- begin-user-doc -->
405 * <!-- end-user-doc -->
406 * @generated
407 */
408 @Override
409 public Trade_and_Business_Income createTrade_and_Business_Income() {
410 Trade_and_Business_IncomeImpl trade_and_Business_Income = new Trade_and_Business_IncomeImpl();
411 return trade_and_Business_Income;
412 }
413
414 /**
415 * <!-- begin-user-doc -->
416 * <!-- end-user-doc -->
417 * @generated
418 */
419 @Override
420 public Agriculture_and_Forestry_Income createAgriculture_and_Forestry_Income() {
421 Agriculture_and_Forestry_IncomeImpl agriculture_and_Forestry_Income = new Agriculture_and_Forestry_IncomeImpl();
422 return agriculture_and_Forestry_Income;
423 }
424
425 /**
426 * <!-- begin-user-doc -->
427 * <!-- end-user-doc -->
428 * @generated
429 */
430 @Override
431 public Pensions_and_Annuities_Income createPensions_and_Annuities_Income() {
432 Pensions_and_Annuities_IncomeImpl pensions_and_Annuities_Income = new Pensions_and_Annuities_IncomeImpl();
433 return pensions_and_Annuities_Income;
434 }
435
436 /**
437 * <!-- begin-user-doc -->
438 * <!-- end-user-doc -->
439 * @generated
440 */
441 @Override
442 public Capital_and_Investments_Income createCapital_and_Investments_Income() {
443 Capital_and_Investments_IncomeImpl capital_and_Investments_Income = new Capital_and_Investments_IncomeImpl();
444 return capital_and_Investments_Income;
445 }
446
447 /**
448 * <!-- begin-user-doc -->
449 * <!-- end-user-doc -->
450 * @generated
451 */
452 @Override
453 public Employment_Income createEmployment_Income() {
454 Employment_IncomeImpl employment_Income = new Employment_IncomeImpl();
455 return employment_Income;
456 }
457
458 /**
459 * <!-- begin-user-doc -->
460 * <!-- end-user-doc -->
461 * @generated
462 */
463 @Override
464 public Rentals_and_Leases_Income createRentals_and_Leases_Income() {
465 Rentals_and_Leases_IncomeImpl rentals_and_Leases_Income = new Rentals_and_Leases_IncomeImpl();
466 return rentals_and_Leases_Income;
467 }
468
469 /**
470 * <!-- begin-user-doc -->
471 * <!-- end-user-doc -->
472 * @generated
473 */
474 @Override
475 public Foreign_Income createForeign_Income() {
476 Foreign_IncomeImpl foreign_Income = new Foreign_IncomeImpl();
477 return foreign_Income;
478 }
479
480 /**
481 * <!-- begin-user-doc -->
482 * <!-- end-user-doc -->
483 * @generated
484 */
485 @Override
486 public Local_Income createLocal_Income() {
487 Local_IncomeImpl local_Income = new Local_IncomeImpl();
488 return local_Income;
489 }
490
491 /**
492 * <!-- begin-user-doc -->
493 * <!-- end-user-doc -->
494 * @generated
495 */
496 @Override
497 public CIM createCIM() {
498 CIMImpl cim = new CIMImpl();
499 return cim;
500 }
501
502 /**
503 * <!-- begin-user-doc -->
504 * <!-- end-user-doc -->
505 * @generated
506 */
507 @Override
508 public CIP createCIP() {
509 CIPImpl cip = new CIPImpl();
510 return cip;
511 }
512
513 /**
514 * <!-- begin-user-doc -->
515 * <!-- end-user-doc -->
516 * @generated
517 */
518 @Override
519 public CIS createCIS() {
520 CISImpl cis = new CISImpl();
521 return cis;
522 }
523
524 /**
525 * <!-- begin-user-doc -->
526 * <!-- end-user-doc -->
527 * @generated
528 */
529 @Override
530 public Permanent_Expense createPermanent_Expense() {
531 Permanent_ExpenseImpl permanent_Expense = new Permanent_ExpenseImpl();
532 return permanent_Expense;
533 }
534
535 /**
536 * <!-- begin-user-doc -->
537 * <!-- end-user-doc -->
538 * @generated
539 */
540 @Override
541 public Special_Expense_DS createSpecial_Expense_DS() {
542 Special_Expense_DSImpl special_Expense_DS = new Special_Expense_DSImpl();
543 return special_Expense_DS;
544 }
545
546 /**
547 * <!-- begin-user-doc -->
548 * <!-- end-user-doc -->
549 * @generated
550 */
551 @Override
552 public Interest_Expense createInterest_Expense() {
553 Interest_ExpenseImpl interest_Expense = new Interest_ExpenseImpl();
554 return interest_Expense;
555 }
556
557 /**
558 * <!-- begin-user-doc -->
559 * <!-- end-user-doc -->
560 * @generated
561 */
562 @Override
563 public Private_Insurance_and_Plan createPrivate_Insurance_and_Plan() {
564 Private_Insurance_and_PlanImpl private_Insurance_and_Plan = new Private_Insurance_and_PlanImpl();
565 return private_Insurance_and_Plan;
566 }
567
568 /**
569 * <!-- begin-user-doc -->
570 * <!-- end-user-doc -->
571 * @generated
572 */
573 @Override
574 public Health_and_Pension_Insurance createHealth_and_Pension_Insurance() {
575 Health_and_Pension_InsuranceImpl health_and_Pension_Insurance = new Health_and_Pension_InsuranceImpl();
576 return health_and_Pension_Insurance;
577 }
578
579 /**
580 * <!-- begin-user-doc -->
581 * <!-- end-user-doc -->
582 * @generated
583 */
584 @Override
585 public Donation createDonation() {
586 DonationImpl donation = new DonationImpl();
587 return donation;
588 }
589
590 /**
591 * <!-- begin-user-doc -->
592 * <!-- end-user-doc -->
593 * @generated
594 */
595 @Override
596 public Loss_Carryforward createLoss_Carryforward() {
597 Loss_CarryforwardImpl loss_Carryforward = new Loss_CarryforwardImpl();
598 return loss_Carryforward;
599 }
600
601 /**
602 * <!-- begin-user-doc -->
603 * <!-- end-user-doc -->
604 * @generated
605 */
606 @Override
607 public Spousal_Expense_AC createSpousal_Expense_AC() {
608 Spousal_Expense_ACImpl spousal_Expense_AC = new Spousal_Expense_ACImpl();
609 return spousal_Expense_AC;
610 }
611
612 /**
613 * <!-- begin-user-doc -->
614 * <!-- end-user-doc -->
615 * @generated
616 */
617 @Override
618 public Extraordinary_Expense_CE createExtraordinary_Expense_CE() {
619 Extraordinary_Expense_CEImpl extraordinary_Expense_CE = new Extraordinary_Expense_CEImpl();
620 return extraordinary_Expense_CE;
621 }
622
623 /**
624 * <!-- begin-user-doc -->
625 * <!-- end-user-doc -->
626 * @generated
627 */
628 @Override
629 public Travel_Expense_FD createTravel_Expense_FD() {
630 Travel_Expense_FDImpl travel_Expense_FD = new Travel_Expense_FDImpl();
631 return travel_Expense_FD;
632 }
633
634 /**
635 * <!-- begin-user-doc -->
636 * <!-- end-user-doc -->
637 * @generated
638 */
639 @Override
640 public Professional_Expense createProfessional_Expense() {
641 Professional_ExpenseImpl professional_Expense = new Professional_ExpenseImpl();
642 return professional_Expense;
643 }
644
645 /**
646 * <!-- begin-user-doc -->
647 * <!-- end-user-doc -->
648 * @generated
649 */
650 @Override
651 public Miscellaneous_Expense_FO createMiscellaneous_Expense_FO() {
652 Miscellaneous_Expense_FOImpl miscellaneous_Expense_FO = new Miscellaneous_Expense_FOImpl();
653 return miscellaneous_Expense_FO;
654 }
655
656 /**
657 * <!-- begin-user-doc -->
658 * <!-- end-user-doc -->
659 * @generated
660 */
661 @Override
662 public Resource createResource() {
663 ResourceImpl resource = new ResourceImpl();
664 return resource;
665 }
666
667 /**
668 * <!-- begin-user-doc -->
669 * <!-- end-user-doc -->
670 * @generated
671 */
672 public Grantor createGrantorFromString(EDataType eDataType, String initialValue) {
673 Grantor result = Grantor.get(initialValue);
674 if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
675 return result;
676 }
677
678 /**
679 * <!-- begin-user-doc -->
680 * <!-- end-user-doc -->
681 * @generated
682 */
683 public String convertGrantorToString(EDataType eDataType, Object instanceValue) {
684 return instanceValue == null ? null : instanceValue.toString();
685 }
686
687 /**
688 * <!-- begin-user-doc -->
689 * <!-- end-user-doc -->
690 * @generated
691 */
692 public Disability_Types createDisability_TypesFromString(EDataType eDataType, String initialValue) {
693 Disability_Types result = Disability_Types.get(initialValue);
694 if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
695 return result;
696 }
697
698 /**
699 * <!-- begin-user-doc -->
700 * <!-- end-user-doc -->
701 * @generated
702 */
703 public String convertDisability_TypesToString(EDataType eDataType, Object instanceValue) {
704 return instanceValue == null ? null : instanceValue.toString();
705 }
706
707 /**
708 * <!-- begin-user-doc -->
709 * <!-- end-user-doc -->
710 * @generated
711 */
712 public Country createCountryFromString(EDataType eDataType, String initialValue) {
713 Country result = Country.get(initialValue);
714 if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
715 return result;
716 }
717
718 /**
719 * <!-- begin-user-doc -->
720 * <!-- end-user-doc -->
721 * @generated
722 */
723 public String convertCountryToString(EDataType eDataType, Object instanceValue) {
724 return instanceValue == null ? null : instanceValue.toString();
725 }
726
727 /**
728 * <!-- begin-user-doc -->
729 * <!-- end-user-doc -->
730 * @generated
731 */
732 public Tax_Office createTax_OfficeFromString(EDataType eDataType, String initialValue) {
733 Tax_Office result = Tax_Office.get(initialValue);
734 if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
735 return result;
736 }
737
738 /**
739 * <!-- begin-user-doc -->
740 * <!-- end-user-doc -->
741 * @generated
742 */
743 public String convertTax_OfficeToString(EDataType eDataType, Object instanceValue) {
744 return instanceValue == null ? null : instanceValue.toString();
745 }
746
747 /**
748 * <!-- begin-user-doc -->
749 * <!-- end-user-doc -->
750 * @generated
751 */
752 public Tax_Class_Category createTax_Class_CategoryFromString(EDataType eDataType, String initialValue) {
753 Tax_Class_Category result = Tax_Class_Category.get(initialValue);
754 if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
755 return result;
756 }
757
758 /**
759 * <!-- begin-user-doc -->
760 * <!-- end-user-doc -->
761 * @generated
762 */
763 public String convertTax_Class_CategoryToString(EDataType eDataType, Object instanceValue) {
764 return instanceValue == null ? null : instanceValue.toString();
765 }
766
767 /**
768 * <!-- begin-user-doc -->
769 * <!-- end-user-doc -->
770 * @generated
771 */
772 public Job_Activity createJob_ActivityFromString(EDataType eDataType, String initialValue) {
773 Job_Activity result = Job_Activity.get(initialValue);
774 if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
775 return result;
776 }
777
778 /**
779 * <!-- begin-user-doc -->
780 * <!-- end-user-doc -->
781 * @generated
782 */
783 public String convertJob_ActivityToString(EDataType eDataType, Object instanceValue) {
784 return instanceValue == null ? null : instanceValue.toString();
785 }
786
787 /**
788 * <!-- begin-user-doc -->
789 * <!-- end-user-doc -->
790 * @generated
791 */
792 public Town createTownFromString(EDataType eDataType, String initialValue) {
793 Town result = Town.get(initialValue);
794 if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
795 return result;
796 }
797
798 /**
799 * <!-- begin-user-doc -->
800 * <!-- end-user-doc -->
801 * @generated
802 */
803 public String convertTownToString(EDataType eDataType, Object instanceValue) {
804 return instanceValue == null ? null : instanceValue.toString();
805 }
806
807 /**
808 * <!-- begin-user-doc -->
809 * <!-- end-user-doc -->
810 * @generated
811 */
812 public CE_Type createCE_TypeFromString(EDataType eDataType, String initialValue) {
813 CE_Type result = CE_Type.get(initialValue);
814 if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
815 return result;
816 }
817
818 /**
819 * <!-- begin-user-doc -->
820 * <!-- end-user-doc -->
821 * @generated
822 */
823 public String convertCE_TypeToString(EDataType eDataType, Object instanceValue) {
824 return instanceValue == null ? null : instanceValue.toString();
825 }
826
827 /**
828 * <!-- begin-user-doc -->
829 * <!-- end-user-doc -->
830 * @generated
831 */
832 public Expense_Purpose createExpense_PurposeFromString(EDataType eDataType, String initialValue) {
833 Expense_Purpose result = Expense_Purpose.get(initialValue);
834 if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
835 return result;
836 }
837
838 /**
839 * <!-- begin-user-doc -->
840 * <!-- end-user-doc -->
841 * @generated
842 */
843 public String convertExpense_PurposeToString(EDataType eDataType, Object instanceValue) {
844 return instanceValue == null ? null : instanceValue.toString();
845 }
846
847 /**
848 * <!-- begin-user-doc -->
849 * <!-- end-user-doc -->
850 * @generated
851 */
852 public Dependent_Type createDependent_TypeFromString(EDataType eDataType, String initialValue) {
853 Dependent_Type result = Dependent_Type.get(initialValue);
854 if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
855 return result;
856 }
857
858 /**
859 * <!-- begin-user-doc -->
860 * <!-- end-user-doc -->
861 * @generated
862 */
863 public String convertDependent_TypeToString(EDataType eDataType, Object instanceValue) {
864 return instanceValue == null ? null : instanceValue.toString();
865 }
866
867 /**
868 * <!-- begin-user-doc -->
869 * <!-- end-user-doc -->
870 * @generated
871 */
872 public Separation_Causes createSeparation_CausesFromString(EDataType eDataType, String initialValue) {
873 Separation_Causes result = Separation_Causes.get(initialValue);
874 if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
875 return result;
876 }
877
878 /**
879 * <!-- begin-user-doc -->
880 * <!-- end-user-doc -->
881 * @generated
882 */
883 public String convertSeparation_CausesToString(EDataType eDataType, Object instanceValue) {
884 return instanceValue == null ? null : instanceValue.toString();
885 }
886
887 /**
888 * <!-- begin-user-doc -->
889 * <!-- end-user-doc -->
890 * @generated
891 */
892 public Category_of_Permanent_Expense createCategory_of_Permanent_ExpenseFromString(EDataType eDataType, String initialValue) {
893 Category_of_Permanent_Expense result = Category_of_Permanent_Expense.get(initialValue);
894 if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
895 return result;
896 }
897
898 /**
899 * <!-- begin-user-doc -->
900 * <!-- end-user-doc -->
901 * @generated
902 */
903 public String convertCategory_of_Permanent_ExpenseToString(EDataType eDataType, Object instanceValue) {
904 return instanceValue == null ? null : instanceValue.toString();
905 }
906
907 /**
908 * <!-- begin-user-doc -->
909 * <!-- end-user-doc -->
910 * @generated
911 */
912 public Category_of_Health_and_Pension_Insurances createCategory_of_Health_and_Pension_InsurancesFromString(EDataType eDataType, String initialValue) {
913 Category_of_Health_and_Pension_Insurances result = Category_of_Health_and_Pension_Insurances.get(initialValue);
914 if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
915 return result;
916 }
917
918 /**
919 * <!-- begin-user-doc -->
920 * <!-- end-user-doc -->
921 * @generated
922 */
923 public String convertCategory_of_Health_and_Pension_InsurancesToString(EDataType eDataType, Object instanceValue) {
924 return instanceValue == null ? null : instanceValue.toString();
925 }
926
927 /**
928 * <!-- begin-user-doc -->
929 * <!-- end-user-doc -->
930 * @generated
931 */
932 public Category_of_Private_Insurance_and_Plan createCategory_of_Private_Insurance_and_PlanFromString(EDataType eDataType, String initialValue) {
933 Category_of_Private_Insurance_and_Plan result = Category_of_Private_Insurance_and_Plan.get(initialValue);
934 if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
935 return result;
936 }
937
938 /**
939 * <!-- begin-user-doc -->
940 * <!-- end-user-doc -->
941 * @generated
942 */
943 public String convertCategory_of_Private_Insurance_and_PlanToString(EDataType eDataType, Object instanceValue) {
944 return instanceValue == null ? null : instanceValue.toString();
945 }
946
947 /**
948 * <!-- begin-user-doc -->
949 * <!-- end-user-doc -->
950 * @generated
951 */
952 public Legal_Union_Types createLegal_Union_TypesFromString(EDataType eDataType, String initialValue) {
953 Legal_Union_Types result = Legal_Union_Types.get(initialValue);
954 if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
955 return result;
956 }
957
958 /**
959 * <!-- begin-user-doc -->
960 * <!-- end-user-doc -->
961 * @generated
962 */
963 public String convertLegal_Union_TypesToString(EDataType eDataType, Object instanceValue) {
964 return instanceValue == null ? null : instanceValue.toString();
965 }
966
967 /**
968 * <!-- begin-user-doc -->
969 * <!-- end-user-doc -->
970 * @generated
971 */
972 @Override
973 public TaxationWithRootPackage getTaxationWithRootPackage() {
974 return (TaxationWithRootPackage)getEPackage();
975 }
976
977 /**
978 * <!-- begin-user-doc -->
979 * <!-- end-user-doc -->
980 * @deprecated
981 * @generated
982 */
983 @Deprecated
984 public static TaxationWithRootPackage getPackage() {
985 return TaxationWithRootPackage.eINSTANCE;
986 }
987
988} //TaxationWithRootFactoryImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/TaxationWithRootPackageImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/TaxationWithRootPackageImpl.java
new file mode 100644
index 00000000..acf4425a
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/TaxationWithRootPackageImpl.java
@@ -0,0 +1,3663 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.Address;
6import TaxationWithRoot.Agriculture_and_Forestry_Income;
7import TaxationWithRoot.CE_Type;
8import TaxationWithRoot.Capital_and_Investments_Income;
9import TaxationWithRoot.Category_of_Health_and_Pension_Insurances;
10import TaxationWithRoot.Category_of_Permanent_Expense;
11import TaxationWithRoot.Category_of_Private_Insurance_and_Plan;
12import TaxationWithRoot.Constants;
13import TaxationWithRoot.Country;
14import TaxationWithRoot.Dependent;
15import TaxationWithRoot.Dependent_Type;
16import TaxationWithRoot.Disability_Types;
17import TaxationWithRoot.Donation;
18import TaxationWithRoot.Employment_Income;
19import TaxationWithRoot.Expense;
20import TaxationWithRoot.Expense_Purpose;
21import TaxationWithRoot.External_Allowance;
22import TaxationWithRoot.Extraordinary_Expense_CE;
23import TaxationWithRoot.Fiscal_Address;
24import TaxationWithRoot.Foreign_Income;
25import TaxationWithRoot.FromAgent;
26import TaxationWithRoot.FromLaw;
27import TaxationWithRoot.Grantor;
28import TaxationWithRoot.Habitual_Address;
29import TaxationWithRoot.Health_and_Pension_Insurance;
30import TaxationWithRoot.Household;
31import TaxationWithRoot.Income;
32import TaxationWithRoot.Income_Detail;
33import TaxationWithRoot.Income_Tax;
34import TaxationWithRoot.Income_Tax_Credit;
35import TaxationWithRoot.Income_Type;
36import TaxationWithRoot.Interest_Expense;
37import TaxationWithRoot.Job_Activity;
38import TaxationWithRoot.Legal_Union_Record;
39import TaxationWithRoot.Legal_Union_Types;
40import TaxationWithRoot.Local_Income;
41import TaxationWithRoot.Loss_Carryforward;
42import TaxationWithRoot.Marriage_Record;
43import TaxationWithRoot.Miscellaneous_Expense_FO;
44import TaxationWithRoot.Non_Resident_Tax_Payer;
45import TaxationWithRoot.Partnership_Record;
46import TaxationWithRoot.Pensions_and_Annuities_Income;
47import TaxationWithRoot.Permanent_Expense;
48import TaxationWithRoot.Physical_Person;
49import TaxationWithRoot.Private_Insurance_and_Plan;
50import TaxationWithRoot.Professional_Expense;
51import TaxationWithRoot.Rentals_and_Leases_Income;
52import TaxationWithRoot.Resident_Tax_Payer;
53import TaxationWithRoot.Resource;
54import TaxationWithRoot.Separation_Causes;
55import TaxationWithRoot.Special_Expense_DS;
56import TaxationWithRoot.Spousal_Expense_AC;
57import TaxationWithRoot.Tax_Card;
58import TaxationWithRoot.Tax_Case;
59import TaxationWithRoot.Tax_Class_Category;
60import TaxationWithRoot.Tax_Office;
61import TaxationWithRoot.Tax_Payer;
62import TaxationWithRoot.Tax_Property;
63import TaxationWithRoot.TaxationWithRootFactory;
64import TaxationWithRoot.TaxationWithRootPackage;
65import TaxationWithRoot.Town;
66import TaxationWithRoot.Trade_and_Business_Income;
67import TaxationWithRoot.Travel_Expense_FD;
68
69import org.eclipse.emf.ecore.EAttribute;
70import org.eclipse.emf.ecore.EClass;
71import org.eclipse.emf.ecore.EEnum;
72import org.eclipse.emf.ecore.EPackage;
73import org.eclipse.emf.ecore.EReference;
74
75import org.eclipse.emf.ecore.impl.EPackageImpl;
76
77/**
78 * <!-- begin-user-doc -->
79 * An implementation of the model <b>Package</b>.
80 * <!-- end-user-doc -->
81 * @generated
82 */
83public class TaxationWithRootPackageImpl extends EPackageImpl implements TaxationWithRootPackage {
84 /**
85 * <!-- begin-user-doc -->
86 * <!-- end-user-doc -->
87 * @generated
88 */
89 private EClass constantsEClass = null;
90
91 /**
92 * <!-- begin-user-doc -->
93 * <!-- end-user-doc -->
94 * @generated
95 */
96 private EClass income_TaxEClass = null;
97
98 /**
99 * <!-- begin-user-doc -->
100 * <!-- end-user-doc -->
101 * @generated
102 */
103 private EClass tax_PayerEClass = null;
104
105 /**
106 * <!-- begin-user-doc -->
107 * <!-- end-user-doc -->
108 * @generated
109 */
110 private EClass physical_PersonEClass = null;
111
112 /**
113 * <!-- begin-user-doc -->
114 * <!-- end-user-doc -->
115 * @generated
116 */
117 private EClass addressEClass = null;
118
119 /**
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @generated
123 */
124 private EClass expenseEClass = null;
125
126 /**
127 * <!-- begin-user-doc -->
128 * <!-- end-user-doc -->
129 * @generated
130 */
131 private EClass dependentEClass = null;
132
133 /**
134 * <!-- begin-user-doc -->
135 * <!-- end-user-doc -->
136 * @generated
137 */
138 private EClass external_AllowanceEClass = null;
139
140 /**
141 * <!-- begin-user-doc -->
142 * <!-- end-user-doc -->
143 * @generated
144 */
145 private EClass householdEClass = null;
146
147 /**
148 * <!-- begin-user-doc -->
149 * <!-- end-user-doc -->
150 * @generated
151 */
152 private EClass legal_Union_RecordEClass = null;
153
154 /**
155 * <!-- begin-user-doc -->
156 * <!-- end-user-doc -->
157 * @generated
158 */
159 private EClass tax_PropertyEClass = null;
160
161 /**
162 * <!-- begin-user-doc -->
163 * <!-- end-user-doc -->
164 * @generated
165 */
166 private EClass tax_CaseEClass = null;
167
168 /**
169 * <!-- begin-user-doc -->
170 * <!-- end-user-doc -->
171 * @generated
172 */
173 private EClass fromAgentEClass = null;
174
175 /**
176 * <!-- begin-user-doc -->
177 * <!-- end-user-doc -->
178 * @generated
179 */
180 private EClass incomeEClass = null;
181
182 /**
183 * <!-- begin-user-doc -->
184 * <!-- end-user-doc -->
185 * @generated
186 */
187 private EClass income_TypeEClass = null;
188
189 /**
190 * <!-- begin-user-doc -->
191 * <!-- end-user-doc -->
192 * @generated
193 */
194 private EClass tax_CardEClass = null;
195
196 /**
197 * <!-- begin-user-doc -->
198 * <!-- end-user-doc -->
199 * @generated
200 */
201 private EClass income_Tax_CreditEClass = null;
202
203 /**
204 * <!-- begin-user-doc -->
205 * <!-- end-user-doc -->
206 * @generated
207 */
208 private EClass income_DetailEClass = null;
209
210 /**
211 * <!-- begin-user-doc -->
212 * <!-- end-user-doc -->
213 * @generated
214 */
215 private EClass fromLawEClass = null;
216
217 /**
218 * <!-- begin-user-doc -->
219 * <!-- end-user-doc -->
220 * @generated
221 */
222 private EClass fiscal_AddressEClass = null;
223
224 /**
225 * <!-- begin-user-doc -->
226 * <!-- end-user-doc -->
227 * @generated
228 */
229 private EClass habitual_AddressEClass = null;
230
231 /**
232 * <!-- begin-user-doc -->
233 * <!-- end-user-doc -->
234 * @generated
235 */
236 private EClass marriage_RecordEClass = null;
237
238 /**
239 * <!-- begin-user-doc -->
240 * <!-- end-user-doc -->
241 * @generated
242 */
243 private EClass non_Resident_Tax_PayerEClass = null;
244
245 /**
246 * <!-- begin-user-doc -->
247 * <!-- end-user-doc -->
248 * @generated
249 */
250 private EClass partnership_RecordEClass = null;
251
252 /**
253 * <!-- begin-user-doc -->
254 * <!-- end-user-doc -->
255 * @generated
256 */
257 private EClass resident_Tax_PayerEClass = null;
258
259 /**
260 * <!-- begin-user-doc -->
261 * <!-- end-user-doc -->
262 * @generated
263 */
264 private EClass trade_and_Business_IncomeEClass = null;
265
266 /**
267 * <!-- begin-user-doc -->
268 * <!-- end-user-doc -->
269 * @generated
270 */
271 private EClass agriculture_and_Forestry_IncomeEClass = null;
272
273 /**
274 * <!-- begin-user-doc -->
275 * <!-- end-user-doc -->
276 * @generated
277 */
278 private EClass pensions_and_Annuities_IncomeEClass = null;
279
280 /**
281 * <!-- begin-user-doc -->
282 * <!-- end-user-doc -->
283 * @generated
284 */
285 private EClass capital_and_Investments_IncomeEClass = null;
286
287 /**
288 * <!-- begin-user-doc -->
289 * <!-- end-user-doc -->
290 * @generated
291 */
292 private EClass employment_IncomeEClass = null;
293
294 /**
295 * <!-- begin-user-doc -->
296 * <!-- end-user-doc -->
297 * @generated
298 */
299 private EClass rentals_and_Leases_IncomeEClass = null;
300
301 /**
302 * <!-- begin-user-doc -->
303 * <!-- end-user-doc -->
304 * @generated
305 */
306 private EClass foreign_IncomeEClass = null;
307
308 /**
309 * <!-- begin-user-doc -->
310 * <!-- end-user-doc -->
311 * @generated
312 */
313 private EClass local_IncomeEClass = null;
314
315 /**
316 * <!-- begin-user-doc -->
317 * <!-- end-user-doc -->
318 * @generated
319 */
320 private EClass cimEClass = null;
321
322 /**
323 * <!-- begin-user-doc -->
324 * <!-- end-user-doc -->
325 * @generated
326 */
327 private EClass cipEClass = null;
328
329 /**
330 * <!-- begin-user-doc -->
331 * <!-- end-user-doc -->
332 * @generated
333 */
334 private EClass cisEClass = null;
335
336 /**
337 * <!-- begin-user-doc -->
338 * <!-- end-user-doc -->
339 * @generated
340 */
341 private EClass permanent_ExpenseEClass = null;
342
343 /**
344 * <!-- begin-user-doc -->
345 * <!-- end-user-doc -->
346 * @generated
347 */
348 private EClass special_Expense_DSEClass = null;
349
350 /**
351 * <!-- begin-user-doc -->
352 * <!-- end-user-doc -->
353 * @generated
354 */
355 private EClass interest_ExpenseEClass = null;
356
357 /**
358 * <!-- begin-user-doc -->
359 * <!-- end-user-doc -->
360 * @generated
361 */
362 private EClass private_Insurance_and_PlanEClass = null;
363
364 /**
365 * <!-- begin-user-doc -->
366 * <!-- end-user-doc -->
367 * @generated
368 */
369 private EClass health_and_Pension_InsuranceEClass = null;
370
371 /**
372 * <!-- begin-user-doc -->
373 * <!-- end-user-doc -->
374 * @generated
375 */
376 private EClass donationEClass = null;
377
378 /**
379 * <!-- begin-user-doc -->
380 * <!-- end-user-doc -->
381 * @generated
382 */
383 private EClass loss_CarryforwardEClass = null;
384
385 /**
386 * <!-- begin-user-doc -->
387 * <!-- end-user-doc -->
388 * @generated
389 */
390 private EClass spousal_Expense_ACEClass = null;
391
392 /**
393 * <!-- begin-user-doc -->
394 * <!-- end-user-doc -->
395 * @generated
396 */
397 private EClass extraordinary_Expense_CEEClass = null;
398
399 /**
400 * <!-- begin-user-doc -->
401 * <!-- end-user-doc -->
402 * @generated
403 */
404 private EClass travel_Expense_FDEClass = null;
405
406 /**
407 * <!-- begin-user-doc -->
408 * <!-- end-user-doc -->
409 * @generated
410 */
411 private EClass professional_ExpenseEClass = null;
412
413 /**
414 * <!-- begin-user-doc -->
415 * <!-- end-user-doc -->
416 * @generated
417 */
418 private EClass miscellaneous_Expense_FOEClass = null;
419
420 /**
421 * <!-- begin-user-doc -->
422 * <!-- end-user-doc -->
423 * @generated
424 */
425 private EClass resourceEClass = null;
426
427 /**
428 * <!-- begin-user-doc -->
429 * <!-- end-user-doc -->
430 * @generated
431 */
432 private EEnum grantorEEnum = null;
433
434 /**
435 * <!-- begin-user-doc -->
436 * <!-- end-user-doc -->
437 * @generated
438 */
439 private EEnum disability_TypesEEnum = null;
440
441 /**
442 * <!-- begin-user-doc -->
443 * <!-- end-user-doc -->
444 * @generated
445 */
446 private EEnum countryEEnum = null;
447
448 /**
449 * <!-- begin-user-doc -->
450 * <!-- end-user-doc -->
451 * @generated
452 */
453 private EEnum tax_OfficeEEnum = null;
454
455 /**
456 * <!-- begin-user-doc -->
457 * <!-- end-user-doc -->
458 * @generated
459 */
460 private EEnum tax_Class_CategoryEEnum = null;
461
462 /**
463 * <!-- begin-user-doc -->
464 * <!-- end-user-doc -->
465 * @generated
466 */
467 private EEnum job_ActivityEEnum = null;
468
469 /**
470 * <!-- begin-user-doc -->
471 * <!-- end-user-doc -->
472 * @generated
473 */
474 private EEnum townEEnum = null;
475
476 /**
477 * <!-- begin-user-doc -->
478 * <!-- end-user-doc -->
479 * @generated
480 */
481 private EEnum cE_TypeEEnum = null;
482
483 /**
484 * <!-- begin-user-doc -->
485 * <!-- end-user-doc -->
486 * @generated
487 */
488 private EEnum expense_PurposeEEnum = null;
489
490 /**
491 * <!-- begin-user-doc -->
492 * <!-- end-user-doc -->
493 * @generated
494 */
495 private EEnum dependent_TypeEEnum = null;
496
497 /**
498 * <!-- begin-user-doc -->
499 * <!-- end-user-doc -->
500 * @generated
501 */
502 private EEnum separation_CausesEEnum = null;
503
504 /**
505 * <!-- begin-user-doc -->
506 * <!-- end-user-doc -->
507 * @generated
508 */
509 private EEnum category_of_Permanent_ExpenseEEnum = null;
510
511 /**
512 * <!-- begin-user-doc -->
513 * <!-- end-user-doc -->
514 * @generated
515 */
516 private EEnum category_of_Health_and_Pension_InsurancesEEnum = null;
517
518 /**
519 * <!-- begin-user-doc -->
520 * <!-- end-user-doc -->
521 * @generated
522 */
523 private EEnum category_of_Private_Insurance_and_PlanEEnum = null;
524
525 /**
526 * <!-- begin-user-doc -->
527 * <!-- end-user-doc -->
528 * @generated
529 */
530 private EEnum legal_Union_TypesEEnum = null;
531
532 /**
533 * Creates an instance of the model <b>Package</b>, registered with
534 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
535 * package URI value.
536 * <p>Note: the correct way to create the package is via the static
537 * factory method {@link #init init()}, which also performs
538 * initialization of the package, or returns the registered package,
539 * if one already exists.
540 * <!-- begin-user-doc -->
541 * <!-- end-user-doc -->
542 * @see org.eclipse.emf.ecore.EPackage.Registry
543 * @see TaxationWithRoot.TaxationWithRootPackage#eNS_URI
544 * @see #init()
545 * @generated
546 */
547 private TaxationWithRootPackageImpl() {
548 super(eNS_URI, TaxationWithRootFactory.eINSTANCE);
549 }
550
551 /**
552 * <!-- begin-user-doc -->
553 * <!-- end-user-doc -->
554 * @generated
555 */
556 private static boolean isInited = false;
557
558 /**
559 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
560 *
561 * <p>This method is used to initialize {@link TaxationWithRootPackage#eINSTANCE} when that field is accessed.
562 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
563 * <!-- begin-user-doc -->
564 * <!-- end-user-doc -->
565 * @see #eNS_URI
566 * @see #createPackageContents()
567 * @see #initializePackageContents()
568 * @generated
569 */
570 public static TaxationWithRootPackage init() {
571 if (isInited) return (TaxationWithRootPackage)EPackage.Registry.INSTANCE.getEPackage(TaxationWithRootPackage.eNS_URI);
572
573 // Obtain or create and register package
574 Object registeredTaxationWithRootPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
575 TaxationWithRootPackageImpl theTaxationWithRootPackage = registeredTaxationWithRootPackage instanceof TaxationWithRootPackageImpl ? (TaxationWithRootPackageImpl)registeredTaxationWithRootPackage : new TaxationWithRootPackageImpl();
576
577 isInited = true;
578
579 // Create package meta-data objects
580 theTaxationWithRootPackage.createPackageContents();
581
582 // Initialize created meta-data
583 theTaxationWithRootPackage.initializePackageContents();
584
585 // Mark meta-data to indicate it can't be changed
586 theTaxationWithRootPackage.freeze();
587
588 // Update the registry and return the package
589 EPackage.Registry.INSTANCE.put(TaxationWithRootPackage.eNS_URI, theTaxationWithRootPackage);
590 return theTaxationWithRootPackage;
591 }
592
593 /**
594 * <!-- begin-user-doc -->
595 * <!-- end-user-doc -->
596 * @generated
597 */
598 @Override
599 public EClass getConstants() {
600 return constantsEClass;
601 }
602
603 /**
604 * <!-- begin-user-doc -->
605 * <!-- end-user-doc -->
606 * @generated
607 */
608 @Override
609 public EAttribute getConstants_MAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD() {
610 return (EAttribute)constantsEClass.getEStructuralFeatures().get(0);
611 }
612
613 /**
614 * <!-- begin-user-doc -->
615 * <!-- end-user-doc -->
616 * @generated
617 */
618 @Override
619 public EAttribute getConstants_MAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE() {
620 return (EAttribute)constantsEClass.getEStructuralFeatures().get(1);
621 }
622
623 /**
624 * <!-- begin-user-doc -->
625 * <!-- end-user-doc -->
626 * @generated
627 */
628 @Override
629 public EAttribute getConstants_MINIMUM_SALARY() {
630 return (EAttribute)constantsEClass.getEStructuralFeatures().get(2);
631 }
632
633 /**
634 * <!-- begin-user-doc -->
635 * <!-- end-user-doc -->
636 * @generated
637 */
638 @Override
639 public EAttribute getConstants_FLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION() {
640 return (EAttribute)constantsEClass.getEStructuralFeatures().get(3);
641 }
642
643 /**
644 * <!-- begin-user-doc -->
645 * <!-- end-user-doc -->
646 * @generated
647 */
648 @Override
649 public EAttribute getConstants_MAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS() {
650 return (EAttribute)constantsEClass.getEStructuralFeatures().get(4);
651 }
652
653 /**
654 * <!-- begin-user-doc -->
655 * <!-- end-user-doc -->
656 * @generated
657 */
658 @Override
659 public EAttribute getConstants_MINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS() {
660 return (EAttribute)constantsEClass.getEStructuralFeatures().get(5);
661 }
662
663 /**
664 * <!-- begin-user-doc -->
665 * <!-- end-user-doc -->
666 * @generated
667 */
668 @Override
669 public EAttribute getConstants_MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC() {
670 return (EAttribute)constantsEClass.getEStructuralFeatures().get(6);
671 }
672
673 /**
674 * <!-- begin-user-doc -->
675 * <!-- end-user-doc -->
676 * @generated
677 */
678 @Override
679 public EAttribute getConstants_MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE() {
680 return (EAttribute)constantsEClass.getEStructuralFeatures().get(7);
681 }
682
683 /**
684 * <!-- begin-user-doc -->
685 * <!-- end-user-doc -->
686 * @generated
687 */
688 @Override
689 public EAttribute getConstants_MAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION() {
690 return (EAttribute)constantsEClass.getEStructuralFeatures().get(8);
691 }
692
693 /**
694 * <!-- begin-user-doc -->
695 * <!-- end-user-doc -->
696 * @generated
697 */
698 @Override
699 public EAttribute getConstants_MAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION() {
700 return (EAttribute)constantsEClass.getEStructuralFeatures().get(9);
701 }
702
703 /**
704 * <!-- begin-user-doc -->
705 * <!-- end-user-doc -->
706 * @generated
707 */
708 @Override
709 public EAttribute getConstants_MINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION() {
710 return (EAttribute)constantsEClass.getEStructuralFeatures().get(10);
711 }
712
713 /**
714 * <!-- begin-user-doc -->
715 * <!-- end-user-doc -->
716 * @generated
717 */
718 @Override
719 public EAttribute getConstants_FLAT_RATE_CIM_DAILY() {
720 return (EAttribute)constantsEClass.getEStructuralFeatures().get(11);
721 }
722
723 /**
724 * <!-- begin-user-doc -->
725 * <!-- end-user-doc -->
726 * @generated
727 */
728 @Override
729 public EAttribute getConstants_FLAT_RATE_CIM_MONTHLY() {
730 return (EAttribute)constantsEClass.getEStructuralFeatures().get(12);
731 }
732
733 /**
734 * <!-- begin-user-doc -->
735 * <!-- end-user-doc -->
736 * @generated
737 */
738 @Override
739 public EAttribute getConstants_FLAT_RATE_CIM_YEARLY() {
740 return (EAttribute)constantsEClass.getEStructuralFeatures().get(13);
741 }
742
743 /**
744 * <!-- begin-user-doc -->
745 * <!-- end-user-doc -->
746 * @generated
747 */
748 @Override
749 public EAttribute getConstants_FLAT_RATE_CIP_DAILY() {
750 return (EAttribute)constantsEClass.getEStructuralFeatures().get(14);
751 }
752
753 /**
754 * <!-- begin-user-doc -->
755 * <!-- end-user-doc -->
756 * @generated
757 */
758 @Override
759 public EAttribute getConstants_FLAT_RATE_CIP_MONTHLY() {
760 return (EAttribute)constantsEClass.getEStructuralFeatures().get(15);
761 }
762
763 /**
764 * <!-- begin-user-doc -->
765 * <!-- end-user-doc -->
766 * @generated
767 */
768 @Override
769 public EAttribute getConstants_FLAT_RATE_CIP_YEARLY() {
770 return (EAttribute)constantsEClass.getEStructuralFeatures().get(16);
771 }
772
773 /**
774 * <!-- begin-user-doc -->
775 * <!-- end-user-doc -->
776 * @generated
777 */
778 @Override
779 public EAttribute getConstants_FLAT_RATE_CIS_DAILY() {
780 return (EAttribute)constantsEClass.getEStructuralFeatures().get(17);
781 }
782
783 /**
784 * <!-- begin-user-doc -->
785 * <!-- end-user-doc -->
786 * @generated
787 */
788 @Override
789 public EAttribute getConstants_FLAT_RATE_CIS_MONTHLY() {
790 return (EAttribute)constantsEClass.getEStructuralFeatures().get(18);
791 }
792
793 /**
794 * <!-- begin-user-doc -->
795 * <!-- end-user-doc -->
796 * @generated
797 */
798 @Override
799 public EAttribute getConstants_FLAT_RATE_CIS_YEARLY() {
800 return (EAttribute)constantsEClass.getEStructuralFeatures().get(19);
801 }
802
803 /**
804 * <!-- begin-user-doc -->
805 * <!-- end-user-doc -->
806 * @generated
807 */
808 @Override
809 public EAttribute getConstants_FLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT() {
810 return (EAttribute)constantsEClass.getEStructuralFeatures().get(20);
811 }
812
813 /**
814 * <!-- begin-user-doc -->
815 * <!-- end-user-doc -->
816 * @generated
817 */
818 @Override
819 public EAttribute getConstants_MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS() {
820 return (EAttribute)constantsEClass.getEStructuralFeatures().get(21);
821 }
822
823 /**
824 * <!-- begin-user-doc -->
825 * <!-- end-user-doc -->
826 * @generated
827 */
828 @Override
829 public EAttribute getConstants_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE() {
830 return (EAttribute)constantsEClass.getEStructuralFeatures().get(22);
831 }
832
833 /**
834 * <!-- begin-user-doc -->
835 * <!-- end-user-doc -->
836 * @generated
837 */
838 @Override
839 public EAttribute getConstants_DISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE() {
840 return (EAttribute)constantsEClass.getEStructuralFeatures().get(23);
841 }
842
843 /**
844 * <!-- begin-user-doc -->
845 * <!-- end-user-doc -->
846 * @generated
847 */
848 @Override
849 public EAttribute getConstants_MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE() {
850 return (EAttribute)constantsEClass.getEStructuralFeatures().get(24);
851 }
852
853 /**
854 * <!-- begin-user-doc -->
855 * <!-- end-user-doc -->
856 * @generated
857 */
858 @Override
859 public EClass getIncome_Tax() {
860 return income_TaxEClass;
861 }
862
863 /**
864 * <!-- begin-user-doc -->
865 * <!-- end-user-doc -->
866 * @generated
867 */
868 @Override
869 public EReference getIncome_Tax_TaxPayer() {
870 return (EReference)income_TaxEClass.getEStructuralFeatures().get(0);
871 }
872
873 /**
874 * <!-- begin-user-doc -->
875 * <!-- end-user-doc -->
876 * @generated
877 */
878 @Override
879 public EAttribute getIncome_Tax_Tax_amount() {
880 return (EAttribute)income_TaxEClass.getEStructuralFeatures().get(1);
881 }
882
883 /**
884 * <!-- begin-user-doc -->
885 * <!-- end-user-doc -->
886 * @generated
887 */
888 @Override
889 public EAttribute getIncome_Tax_Tax_year() {
890 return (EAttribute)income_TaxEClass.getEStructuralFeatures().get(2);
891 }
892
893 /**
894 * <!-- begin-user-doc -->
895 * <!-- end-user-doc -->
896 * @generated
897 */
898 @Override
899 public EAttribute getIncome_Tax_Id6() {
900 return (EAttribute)income_TaxEClass.getEStructuralFeatures().get(3);
901 }
902
903 /**
904 * <!-- begin-user-doc -->
905 * <!-- end-user-doc -->
906 * @generated
907 */
908 @Override
909 public EClass getTax_Payer() {
910 return tax_PayerEClass;
911 }
912
913 /**
914 * <!-- begin-user-doc -->
915 * <!-- end-user-doc -->
916 * @generated
917 */
918 @Override
919 public EReference getTax_Payer_Dependents() {
920 return (EReference)tax_PayerEClass.getEStructuralFeatures().get(0);
921 }
922
923 /**
924 * <!-- begin-user-doc -->
925 * <!-- end-user-doc -->
926 * @generated
927 */
928 @Override
929 public EReference getTax_Payer_From_agent() {
930 return (EReference)tax_PayerEClass.getEStructuralFeatures().get(1);
931 }
932
933 /**
934 * <!-- begin-user-doc -->
935 * <!-- end-user-doc -->
936 * @generated
937 */
938 @Override
939 public EReference getTax_Payer_Incomes() {
940 return (EReference)tax_PayerEClass.getEStructuralFeatures().get(2);
941 }
942
943 /**
944 * <!-- begin-user-doc -->
945 * <!-- end-user-doc -->
946 * @generated
947 */
948 @Override
949 public EReference getTax_Payer_From_law() {
950 return (EReference)tax_PayerEClass.getEStructuralFeatures().get(3);
951 }
952
953 /**
954 * <!-- begin-user-doc -->
955 * <!-- end-user-doc -->
956 * @generated
957 */
958 @Override
959 public EClass getPhysical_Person() {
960 return physical_PersonEClass;
961 }
962
963 /**
964 * <!-- begin-user-doc -->
965 * <!-- end-user-doc -->
966 * @generated
967 */
968 @Override
969 public EAttribute getPhysical_Person_SSNo() {
970 return (EAttribute)physical_PersonEClass.getEStructuralFeatures().get(0);
971 }
972
973 /**
974 * <!-- begin-user-doc -->
975 * <!-- end-user-doc -->
976 * @generated
977 */
978 @Override
979 public EReference getPhysical_Person_Addresses() {
980 return (EReference)physical_PersonEClass.getEStructuralFeatures().get(1);
981 }
982
983 /**
984 * <!-- begin-user-doc -->
985 * <!-- end-user-doc -->
986 * @generated
987 */
988 @Override
989 public EAttribute getPhysical_Person_Birth_year() {
990 return (EAttribute)physical_PersonEClass.getEStructuralFeatures().get(2);
991 }
992
993 /**
994 * <!-- begin-user-doc -->
995 * <!-- end-user-doc -->
996 * @generated
997 */
998 @Override
999 public EAttribute getPhysical_Person_Disability_percentage() {
1000 return (EAttribute)physical_PersonEClass.getEStructuralFeatures().get(3);
1001 }
1002
1003 /**
1004 * <!-- begin-user-doc -->
1005 * <!-- end-user-doc -->
1006 * @generated
1007 */
1008 @Override
1009 public EAttribute getPhysical_Person_Disability_type() {
1010 return (EAttribute)physical_PersonEClass.getEStructuralFeatures().get(4);
1011 }
1012
1013 /**
1014 * <!-- begin-user-doc -->
1015 * <!-- end-user-doc -->
1016 * @generated
1017 */
1018 @Override
1019 public EAttribute getPhysical_Person_Birth_month() {
1020 return (EAttribute)physical_PersonEClass.getEStructuralFeatures().get(5);
1021 }
1022
1023 /**
1024 * <!-- begin-user-doc -->
1025 * <!-- end-user-doc -->
1026 * @generated
1027 */
1028 @Override
1029 public EAttribute getPhysical_Person_Birth_day() {
1030 return (EAttribute)physical_PersonEClass.getEStructuralFeatures().get(6);
1031 }
1032
1033 /**
1034 * <!-- begin-user-doc -->
1035 * <!-- end-user-doc -->
1036 * @generated
1037 */
1038 @Override
1039 public EReference getPhysical_Person_Expenses() {
1040 return (EReference)physical_PersonEClass.getEStructuralFeatures().get(7);
1041 }
1042
1043 /**
1044 * <!-- begin-user-doc -->
1045 * <!-- end-user-doc -->
1046 * @generated
1047 */
1048 @Override
1049 public EAttribute getPhysical_Person_Is_widower() {
1050 return (EAttribute)physical_PersonEClass.getEStructuralFeatures().get(8);
1051 }
1052
1053 /**
1054 * <!-- begin-user-doc -->
1055 * <!-- end-user-doc -->
1056 * @generated
1057 */
1058 @Override
1059 public EClass getAddress() {
1060 return addressEClass;
1061 }
1062
1063 /**
1064 * <!-- begin-user-doc -->
1065 * <!-- end-user-doc -->
1066 * @generated
1067 */
1068 @Override
1069 public EAttribute getAddress_Country() {
1070 return (EAttribute)addressEClass.getEStructuralFeatures().get(0);
1071 }
1072
1073 /**
1074 * <!-- begin-user-doc -->
1075 * <!-- end-user-doc -->
1076 * @generated
1077 */
1078 @Override
1079 public EAttribute getAddress_Street() {
1080 return (EAttribute)addressEClass.getEStructuralFeatures().get(1);
1081 }
1082
1083 /**
1084 * <!-- begin-user-doc -->
1085 * <!-- end-user-doc -->
1086 * @generated
1087 */
1088 @Override
1089 public EAttribute getAddress_ZipCode() {
1090 return (EAttribute)addressEClass.getEStructuralFeatures().get(2);
1091 }
1092
1093 /**
1094 * <!-- begin-user-doc -->
1095 * <!-- end-user-doc -->
1096 * @generated
1097 */
1098 @Override
1099 public EAttribute getAddress_City() {
1100 return (EAttribute)addressEClass.getEStructuralFeatures().get(3);
1101 }
1102
1103 /**
1104 * <!-- begin-user-doc -->
1105 * <!-- end-user-doc -->
1106 * @generated
1107 */
1108 @Override
1109 public EAttribute getAddress_Id2() {
1110 return (EAttribute)addressEClass.getEStructuralFeatures().get(4);
1111 }
1112
1113 /**
1114 * <!-- begin-user-doc -->
1115 * <!-- end-user-doc -->
1116 * @generated
1117 */
1118 @Override
1119 public EReference getAddress_TaxPayer() {
1120 return (EReference)addressEClass.getEStructuralFeatures().get(5);
1121 }
1122
1123 /**
1124 * <!-- begin-user-doc -->
1125 * <!-- end-user-doc -->
1126 * @generated
1127 */
1128 @Override
1129 public EClass getExpense() {
1130 return expenseEClass;
1131 }
1132
1133 /**
1134 * <!-- begin-user-doc -->
1135 * <!-- end-user-doc -->
1136 * @generated
1137 */
1138 @Override
1139 public EAttribute getExpense_Declared_amount() {
1140 return (EAttribute)expenseEClass.getEStructuralFeatures().get(0);
1141 }
1142
1143 /**
1144 * <!-- begin-user-doc -->
1145 * <!-- end-user-doc -->
1146 * @generated
1147 */
1148 @Override
1149 public EAttribute getExpense_Expense_purpose() {
1150 return (EAttribute)expenseEClass.getEStructuralFeatures().get(1);
1151 }
1152
1153 /**
1154 * <!-- begin-user-doc -->
1155 * <!-- end-user-doc -->
1156 * @generated
1157 */
1158 @Override
1159 public EReference getExpense_Dependent() {
1160 return (EReference)expenseEClass.getEStructuralFeatures().get(2);
1161 }
1162
1163 /**
1164 * <!-- begin-user-doc -->
1165 * <!-- end-user-doc -->
1166 * @generated
1167 */
1168 @Override
1169 public EReference getExpense_From_agent() {
1170 return (EReference)expenseEClass.getEStructuralFeatures().get(3);
1171 }
1172
1173 /**
1174 * <!-- begin-user-doc -->
1175 * <!-- end-user-doc -->
1176 * @generated
1177 */
1178 @Override
1179 public EReference getExpense_Income() {
1180 return (EReference)expenseEClass.getEStructuralFeatures().get(4);
1181 }
1182
1183 /**
1184 * <!-- begin-user-doc -->
1185 * <!-- end-user-doc -->
1186 * @generated
1187 */
1188 @Override
1189 public EAttribute getExpense_Id4() {
1190 return (EAttribute)expenseEClass.getEStructuralFeatures().get(5);
1191 }
1192
1193 /**
1194 * <!-- begin-user-doc -->
1195 * <!-- end-user-doc -->
1196 * @generated
1197 */
1198 @Override
1199 public EReference getExpense_Beneficiary() {
1200 return (EReference)expenseEClass.getEStructuralFeatures().get(6);
1201 }
1202
1203 /**
1204 * <!-- begin-user-doc -->
1205 * <!-- end-user-doc -->
1206 * @generated
1207 */
1208 @Override
1209 public EClass getDependent() {
1210 return dependentEClass;
1211 }
1212
1213 /**
1214 * <!-- begin-user-doc -->
1215 * <!-- end-user-doc -->
1216 * @generated
1217 */
1218 @Override
1219 public EAttribute getDependent_Dependent_type() {
1220 return (EAttribute)dependentEClass.getEStructuralFeatures().get(0);
1221 }
1222
1223 /**
1224 * <!-- begin-user-doc -->
1225 * <!-- end-user-doc -->
1226 * @generated
1227 */
1228 @Override
1229 public EReference getDependent_Responsible_person() {
1230 return (EReference)dependentEClass.getEStructuralFeatures().get(1);
1231 }
1232
1233 /**
1234 * <!-- begin-user-doc -->
1235 * <!-- end-user-doc -->
1236 * @generated
1237 */
1238 @Override
1239 public EAttribute getDependent_Continued_studies() {
1240 return (EAttribute)dependentEClass.getEStructuralFeatures().get(2);
1241 }
1242
1243 /**
1244 * <!-- begin-user-doc -->
1245 * <!-- end-user-doc -->
1246 * @generated
1247 */
1248 @Override
1249 public EReference getDependent_Allowances() {
1250 return (EReference)dependentEClass.getEStructuralFeatures().get(3);
1251 }
1252
1253 /**
1254 * <!-- begin-user-doc -->
1255 * <!-- end-user-doc -->
1256 * @generated
1257 */
1258 @Override
1259 public EReference getDependent_Household() {
1260 return (EReference)dependentEClass.getEStructuralFeatures().get(4);
1261 }
1262
1263 /**
1264 * <!-- begin-user-doc -->
1265 * <!-- end-user-doc -->
1266 * @generated
1267 */
1268 @Override
1269 public EReference getDependent_From_agent() {
1270 return (EReference)dependentEClass.getEStructuralFeatures().get(5);
1271 }
1272
1273 /**
1274 * <!-- begin-user-doc -->
1275 * <!-- end-user-doc -->
1276 * @generated
1277 */
1278 @Override
1279 public EReference getDependent_Expense() {
1280 return (EReference)dependentEClass.getEStructuralFeatures().get(6);
1281 }
1282
1283 /**
1284 * <!-- begin-user-doc -->
1285 * <!-- end-user-doc -->
1286 * @generated
1287 */
1288 @Override
1289 public EClass getExternal_Allowance() {
1290 return external_AllowanceEClass;
1291 }
1292
1293 /**
1294 * <!-- begin-user-doc -->
1295 * <!-- end-user-doc -->
1296 * @generated
1297 */
1298 @Override
1299 public EAttribute getExternal_Allowance_Grantor() {
1300 return (EAttribute)external_AllowanceEClass.getEStructuralFeatures().get(0);
1301 }
1302
1303 /**
1304 * <!-- begin-user-doc -->
1305 * <!-- end-user-doc -->
1306 * @generated
1307 */
1308 @Override
1309 public EAttribute getExternal_Allowance_Starting_year() {
1310 return (EAttribute)external_AllowanceEClass.getEStructuralFeatures().get(1);
1311 }
1312
1313 /**
1314 * <!-- begin-user-doc -->
1315 * <!-- end-user-doc -->
1316 * @generated
1317 */
1318 @Override
1319 public EAttribute getExternal_Allowance_Ending_year() {
1320 return (EAttribute)external_AllowanceEClass.getEStructuralFeatures().get(2);
1321 }
1322
1323 /**
1324 * <!-- begin-user-doc -->
1325 * <!-- end-user-doc -->
1326 * @generated
1327 */
1328 @Override
1329 public EReference getExternal_Allowance_Reciver() {
1330 return (EReference)external_AllowanceEClass.getEStructuralFeatures().get(3);
1331 }
1332
1333 /**
1334 * <!-- begin-user-doc -->
1335 * <!-- end-user-doc -->
1336 * @generated
1337 */
1338 @Override
1339 public EAttribute getExternal_Allowance_Id5() {
1340 return (EAttribute)external_AllowanceEClass.getEStructuralFeatures().get(4);
1341 }
1342
1343 /**
1344 * <!-- begin-user-doc -->
1345 * <!-- end-user-doc -->
1346 * @generated
1347 */
1348 @Override
1349 public EReference getExternal_Allowance_Person() {
1350 return (EReference)external_AllowanceEClass.getEStructuralFeatures().get(5);
1351 }
1352
1353 /**
1354 * <!-- begin-user-doc -->
1355 * <!-- end-user-doc -->
1356 * @generated
1357 */
1358 @Override
1359 public EClass getHousehold() {
1360 return householdEClass;
1361 }
1362
1363 /**
1364 * <!-- begin-user-doc -->
1365 * <!-- end-user-doc -->
1366 * @generated
1367 */
1368 @Override
1369 public EReference getHousehold_Parents() {
1370 return (EReference)householdEClass.getEStructuralFeatures().get(0);
1371 }
1372
1373 /**
1374 * <!-- begin-user-doc -->
1375 * <!-- end-user-doc -->
1376 * @generated
1377 */
1378 @Override
1379 public EAttribute getHousehold_Id1() {
1380 return (EAttribute)householdEClass.getEStructuralFeatures().get(1);
1381 }
1382
1383 /**
1384 * <!-- begin-user-doc -->
1385 * <!-- end-user-doc -->
1386 * @generated
1387 */
1388 @Override
1389 public EReference getHousehold_Children() {
1390 return (EReference)householdEClass.getEStructuralFeatures().get(2);
1391 }
1392
1393 /**
1394 * <!-- begin-user-doc -->
1395 * <!-- end-user-doc -->
1396 * @generated
1397 */
1398 @Override
1399 public EClass getLegal_Union_Record() {
1400 return legal_Union_RecordEClass;
1401 }
1402
1403 /**
1404 * <!-- begin-user-doc -->
1405 * <!-- end-user-doc -->
1406 * @generated
1407 */
1408 @Override
1409 public EAttribute getLegal_Union_Record_Start_year() {
1410 return (EAttribute)legal_Union_RecordEClass.getEStructuralFeatures().get(0);
1411 }
1412
1413 /**
1414 * <!-- begin-user-doc -->
1415 * <!-- end-user-doc -->
1416 * @generated
1417 */
1418 @Override
1419 public EAttribute getLegal_Union_Record_End_year() {
1420 return (EAttribute)legal_Union_RecordEClass.getEStructuralFeatures().get(1);
1421 }
1422
1423 /**
1424 * <!-- begin-user-doc -->
1425 * <!-- end-user-doc -->
1426 * @generated
1427 */
1428 @Override
1429 public EAttribute getLegal_Union_Record_Separation_cause() {
1430 return (EAttribute)legal_Union_RecordEClass.getEStructuralFeatures().get(2);
1431 }
1432
1433 /**
1434 * <!-- begin-user-doc -->
1435 * <!-- end-user-doc -->
1436 * @generated
1437 */
1438 @Override
1439 public EReference getLegal_Union_Record_Individual_A() {
1440 return (EReference)legal_Union_RecordEClass.getEStructuralFeatures().get(3);
1441 }
1442
1443 /**
1444 * <!-- begin-user-doc -->
1445 * <!-- end-user-doc -->
1446 * @generated
1447 */
1448 @Override
1449 public EReference getLegal_Union_Record_Individual_B() {
1450 return (EReference)legal_Union_RecordEClass.getEStructuralFeatures().get(4);
1451 }
1452
1453 /**
1454 * <!-- begin-user-doc -->
1455 * <!-- end-user-doc -->
1456 * @generated
1457 */
1458 @Override
1459 public EReference getLegal_Union_Record_Properties() {
1460 return (EReference)legal_Union_RecordEClass.getEStructuralFeatures().get(5);
1461 }
1462
1463 /**
1464 * <!-- begin-user-doc -->
1465 * <!-- end-user-doc -->
1466 * @generated
1467 */
1468 @Override
1469 public EAttribute getLegal_Union_Record_Mutual_agreement() {
1470 return (EAttribute)legal_Union_RecordEClass.getEStructuralFeatures().get(6);
1471 }
1472
1473 /**
1474 * <!-- begin-user-doc -->
1475 * <!-- end-user-doc -->
1476 * @generated
1477 */
1478 @Override
1479 public EAttribute getLegal_Union_Record_Id9() {
1480 return (EAttribute)legal_Union_RecordEClass.getEStructuralFeatures().get(7);
1481 }
1482
1483 /**
1484 * <!-- begin-user-doc -->
1485 * <!-- end-user-doc -->
1486 * @generated
1487 */
1488 @Override
1489 public EReference getLegal_Union_Record_Household() {
1490 return (EReference)legal_Union_RecordEClass.getEStructuralFeatures().get(8);
1491 }
1492
1493 /**
1494 * <!-- begin-user-doc -->
1495 * <!-- end-user-doc -->
1496 * @generated
1497 */
1498 @Override
1499 public EClass getTax_Property() {
1500 return tax_PropertyEClass;
1501 }
1502
1503 /**
1504 * <!-- begin-user-doc -->
1505 * <!-- end-user-doc -->
1506 * @generated
1507 */
1508 @Override
1509 public EAttribute getTax_Property_Starting_year() {
1510 return (EAttribute)tax_PropertyEClass.getEStructuralFeatures().get(0);
1511 }
1512
1513 /**
1514 * <!-- begin-user-doc -->
1515 * <!-- end-user-doc -->
1516 * @generated
1517 */
1518 @Override
1519 public EAttribute getTax_Property_Id10() {
1520 return (EAttribute)tax_PropertyEClass.getEStructuralFeatures().get(1);
1521 }
1522
1523 /**
1524 * <!-- begin-user-doc -->
1525 * <!-- end-user-doc -->
1526 * @generated
1527 */
1528 @Override
1529 public EReference getTax_Property_Union_record() {
1530 return (EReference)tax_PropertyEClass.getEStructuralFeatures().get(2);
1531 }
1532
1533 /**
1534 * <!-- begin-user-doc -->
1535 * <!-- end-user-doc -->
1536 * @generated
1537 */
1538 @Override
1539 public EClass getTax_Case() {
1540 return tax_CaseEClass;
1541 }
1542
1543 /**
1544 * <!-- begin-user-doc -->
1545 * <!-- end-user-doc -->
1546 * @generated
1547 */
1548 @Override
1549 public EClass getFromAgent() {
1550 return fromAgentEClass;
1551 }
1552
1553 /**
1554 * <!-- begin-user-doc -->
1555 * <!-- end-user-doc -->
1556 * @generated
1557 */
1558 @Override
1559 public EReference getFromAgent_TaxPayer() {
1560 return (EReference)fromAgentEClass.getEStructuralFeatures().get(0);
1561 }
1562
1563 /**
1564 * <!-- begin-user-doc -->
1565 * <!-- end-user-doc -->
1566 * @generated
1567 */
1568 @Override
1569 public EAttribute getFromAgent_Is_dependent_eligible_for_CE_Not_In_Houshold_Children_Care() {
1570 return (EAttribute)fromAgentEClass.getEStructuralFeatures().get(1);
1571 }
1572
1573 /**
1574 * <!-- begin-user-doc -->
1575 * <!-- end-user-doc -->
1576 * @generated
1577 */
1578 @Override
1579 public EReference getFromAgent_Expense() {
1580 return (EReference)fromAgentEClass.getEStructuralFeatures().get(2);
1581 }
1582
1583 /**
1584 * <!-- begin-user-doc -->
1585 * <!-- end-user-doc -->
1586 * @generated
1587 */
1588 @Override
1589 public EAttribute getFromAgent_Is_eligible_debt() {
1590 return (EAttribute)fromAgentEClass.getEStructuralFeatures().get(3);
1591 }
1592
1593 /**
1594 * <!-- begin-user-doc -->
1595 * <!-- end-user-doc -->
1596 * @generated
1597 */
1598 @Override
1599 public EReference getFromAgent_Dependent() {
1600 return (EReference)fromAgentEClass.getEStructuralFeatures().get(4);
1601 }
1602
1603 /**
1604 * <!-- begin-user-doc -->
1605 * <!-- end-user-doc -->
1606 * @generated
1607 */
1608 @Override
1609 public EClass getIncome() {
1610 return incomeEClass;
1611 }
1612
1613 /**
1614 * <!-- begin-user-doc -->
1615 * <!-- end-user-doc -->
1616 * @generated
1617 */
1618 @Override
1619 public EAttribute getIncome_Income_amount() {
1620 return (EAttribute)incomeEClass.getEStructuralFeatures().get(0);
1621 }
1622
1623 /**
1624 * <!-- begin-user-doc -->
1625 * <!-- end-user-doc -->
1626 * @generated
1627 */
1628 @Override
1629 public EReference getIncome_Income_type() {
1630 return (EReference)incomeEClass.getEStructuralFeatures().get(1);
1631 }
1632
1633 /**
1634 * <!-- begin-user-doc -->
1635 * <!-- end-user-doc -->
1636 * @generated
1637 */
1638 @Override
1639 public EReference getIncome_Tax_card() {
1640 return (EReference)incomeEClass.getEStructuralFeatures().get(2);
1641 }
1642
1643 /**
1644 * <!-- begin-user-doc -->
1645 * <!-- end-user-doc -->
1646 * @generated
1647 */
1648 @Override
1649 public EAttribute getIncome_Tax_liability() {
1650 return (EAttribute)incomeEClass.getEStructuralFeatures().get(3);
1651 }
1652
1653 /**
1654 * <!-- begin-user-doc -->
1655 * <!-- end-user-doc -->
1656 * @generated
1657 */
1658 @Override
1659 public EReference getIncome_TaxPayer() {
1660 return (EReference)incomeEClass.getEStructuralFeatures().get(4);
1661 }
1662
1663 /**
1664 * <!-- begin-user-doc -->
1665 * <!-- end-user-doc -->
1666 * @generated
1667 */
1668 @Override
1669 public EReference getIncome_Details() {
1670 return (EReference)incomeEClass.getEStructuralFeatures().get(5);
1671 }
1672
1673 /**
1674 * <!-- begin-user-doc -->
1675 * <!-- end-user-doc -->
1676 * @generated
1677 */
1678 @Override
1679 public EAttribute getIncome_Num() {
1680 return (EAttribute)incomeEClass.getEStructuralFeatures().get(6);
1681 }
1682
1683 /**
1684 * <!-- begin-user-doc -->
1685 * <!-- end-user-doc -->
1686 * @generated
1687 */
1688 @Override
1689 public EReference getIncome_Expenses() {
1690 return (EReference)incomeEClass.getEStructuralFeatures().get(7);
1691 }
1692
1693 /**
1694 * <!-- begin-user-doc -->
1695 * <!-- end-user-doc -->
1696 * @generated
1697 */
1698 @Override
1699 public EClass getIncome_Type() {
1700 return income_TypeEClass;
1701 }
1702
1703 /**
1704 * <!-- begin-user-doc -->
1705 * <!-- end-user-doc -->
1706 * @generated
1707 */
1708 @Override
1709 public EAttribute getIncome_Type_Id8() {
1710 return (EAttribute)income_TypeEClass.getEStructuralFeatures().get(0);
1711 }
1712
1713 /**
1714 * <!-- begin-user-doc -->
1715 * <!-- end-user-doc -->
1716 * @generated
1717 */
1718 @Override
1719 public EReference getIncome_Type_Income() {
1720 return (EReference)income_TypeEClass.getEStructuralFeatures().get(1);
1721 }
1722
1723 /**
1724 * <!-- begin-user-doc -->
1725 * <!-- end-user-doc -->
1726 * @generated
1727 */
1728 @Override
1729 public EClass getTax_Card() {
1730 return tax_CardEClass;
1731 }
1732
1733 /**
1734 * <!-- begin-user-doc -->
1735 * <!-- end-user-doc -->
1736 * @generated
1737 */
1738 @Override
1739 public EAttribute getTax_Card_Card_identifier() {
1740 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(0);
1741 }
1742
1743 /**
1744 * <!-- begin-user-doc -->
1745 * <!-- end-user-doc -->
1746 * @generated
1747 */
1748 @Override
1749 public EAttribute getTax_Card_Tax_office() {
1750 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(1);
1751 }
1752
1753 /**
1754 * <!-- begin-user-doc -->
1755 * <!-- end-user-doc -->
1756 * @generated
1757 */
1758 @Override
1759 public EAttribute getTax_Card_Percentage_of_witholding() {
1760 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(2);
1761 }
1762
1763 /**
1764 * <!-- begin-user-doc -->
1765 * <!-- end-user-doc -->
1766 * @generated
1767 */
1768 @Override
1769 public EAttribute getTax_Card_Tax_payers_name_surname() {
1770 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(3);
1771 }
1772
1773 /**
1774 * <!-- begin-user-doc -->
1775 * <!-- end-user-doc -->
1776 * @generated
1777 */
1778 @Override
1779 public EAttribute getTax_Card_Tax_payers_partner_name_surname() {
1780 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(4);
1781 }
1782
1783 /**
1784 * <!-- begin-user-doc -->
1785 * <!-- end-user-doc -->
1786 * @generated
1787 */
1788 @Override
1789 public EReference getTax_Card_Tax_payers_address() {
1790 return (EReference)tax_CardEClass.getEStructuralFeatures().get(5);
1791 }
1792
1793 /**
1794 * <!-- begin-user-doc -->
1795 * <!-- end-user-doc -->
1796 * @generated
1797 */
1798 @Override
1799 public EAttribute getTax_Card_Jobs_Employer_SSNo() {
1800 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(6);
1801 }
1802
1803 /**
1804 * <!-- begin-user-doc -->
1805 * <!-- end-user-doc -->
1806 * @generated
1807 */
1808 @Override
1809 public EAttribute getTax_Card_Jobs_employers_name() {
1810 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(7);
1811 }
1812
1813 /**
1814 * <!-- begin-user-doc -->
1815 * <!-- end-user-doc -->
1816 * @generated
1817 */
1818 @Override
1819 public EAttribute getTax_Card_Jobs_activity_type() {
1820 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(8);
1821 }
1822
1823 /**
1824 * <!-- begin-user-doc -->
1825 * <!-- end-user-doc -->
1826 * @generated
1827 */
1828 @Override
1829 public EAttribute getTax_Card_Jobs_place_of_work() {
1830 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(9);
1831 }
1832
1833 /**
1834 * <!-- begin-user-doc -->
1835 * <!-- end-user-doc -->
1836 * @generated
1837 */
1838 @Override
1839 public EAttribute getTax_Card_Deduction_FD_daily() {
1840 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(10);
1841 }
1842
1843 /**
1844 * <!-- begin-user-doc -->
1845 * <!-- end-user-doc -->
1846 * @generated
1847 */
1848 @Override
1849 public EAttribute getTax_Card_Deduction_FD_monthly() {
1850 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(11);
1851 }
1852
1853 /**
1854 * <!-- begin-user-doc -->
1855 * <!-- end-user-doc -->
1856 * @generated
1857 */
1858 @Override
1859 public EAttribute getTax_Card_Deduction_AC_daily() {
1860 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(12);
1861 }
1862
1863 /**
1864 * <!-- begin-user-doc -->
1865 * <!-- end-user-doc -->
1866 * @generated
1867 */
1868 @Override
1869 public EAttribute getTax_Card_Deduction_AC_monthly() {
1870 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(13);
1871 }
1872
1873 /**
1874 * <!-- begin-user-doc -->
1875 * <!-- end-user-doc -->
1876 * @generated
1877 */
1878 @Override
1879 public EAttribute getTax_Card_Deduction_AC_yearly() {
1880 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(14);
1881 }
1882
1883 /**
1884 * <!-- begin-user-doc -->
1885 * <!-- end-user-doc -->
1886 * @generated
1887 */
1888 @Override
1889 public EAttribute getTax_Card_Deduction_CE_daily() {
1890 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(15);
1891 }
1892
1893 /**
1894 * <!-- begin-user-doc -->
1895 * <!-- end-user-doc -->
1896 * @generated
1897 */
1898 @Override
1899 public EAttribute getTax_Card_Deduction_CE_monthly() {
1900 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(16);
1901 }
1902
1903 /**
1904 * <!-- begin-user-doc -->
1905 * <!-- end-user-doc -->
1906 * @generated
1907 */
1908 @Override
1909 public EAttribute getTax_Card_Deduction_CE_yearly() {
1910 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(17);
1911 }
1912
1913 /**
1914 * <!-- begin-user-doc -->
1915 * <!-- end-user-doc -->
1916 * @generated
1917 */
1918 @Override
1919 public EAttribute getTax_Card_Deduction_DS_daily() {
1920 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(18);
1921 }
1922
1923 /**
1924 * <!-- begin-user-doc -->
1925 * <!-- end-user-doc -->
1926 * @generated
1927 */
1928 @Override
1929 public EAttribute getTax_Card_Deduction_DS_monthly() {
1930 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(19);
1931 }
1932
1933 /**
1934 * <!-- begin-user-doc -->
1935 * <!-- end-user-doc -->
1936 * @generated
1937 */
1938 @Override
1939 public EAttribute getTax_Card_Deduction_FO_daily() {
1940 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(20);
1941 }
1942
1943 /**
1944 * <!-- begin-user-doc -->
1945 * <!-- end-user-doc -->
1946 * @generated
1947 */
1948 @Override
1949 public EAttribute getTax_Card_Deduction_FO_monthly() {
1950 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(21);
1951 }
1952
1953 /**
1954 * <!-- begin-user-doc -->
1955 * <!-- end-user-doc -->
1956 * @generated
1957 */
1958 @Override
1959 public EAttribute getTax_Card_Deduction_FO_yearly() {
1960 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(22);
1961 }
1962
1963 /**
1964 * <!-- begin-user-doc -->
1965 * <!-- end-user-doc -->
1966 * @generated
1967 */
1968 @Override
1969 public EAttribute getTax_Card_Credit_CIS_daily() {
1970 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(23);
1971 }
1972
1973 /**
1974 * <!-- begin-user-doc -->
1975 * <!-- end-user-doc -->
1976 * @generated
1977 */
1978 @Override
1979 public EAttribute getTax_Card_Credit_CIS_monthly() {
1980 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(24);
1981 }
1982
1983 /**
1984 * <!-- begin-user-doc -->
1985 * <!-- end-user-doc -->
1986 * @generated
1987 */
1988 @Override
1989 public EAttribute getTax_Card_Credit_CIM_daily() {
1990 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(25);
1991 }
1992
1993 /**
1994 * <!-- begin-user-doc -->
1995 * <!-- end-user-doc -->
1996 * @generated
1997 */
1998 @Override
1999 public EAttribute getTax_Card_Validity() {
2000 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(26);
2001 }
2002
2003 /**
2004 * <!-- begin-user-doc -->
2005 * <!-- end-user-doc -->
2006 * @generated
2007 */
2008 @Override
2009 public EReference getTax_Card_Income_Tax_Credit() {
2010 return (EReference)tax_CardEClass.getEStructuralFeatures().get(27);
2011 }
2012
2013 /**
2014 * <!-- begin-user-doc -->
2015 * <!-- end-user-doc -->
2016 * @generated
2017 */
2018 @Override
2019 public EReference getTax_Card_Previous() {
2020 return (EReference)tax_CardEClass.getEStructuralFeatures().get(28);
2021 }
2022
2023 /**
2024 * <!-- begin-user-doc -->
2025 * <!-- end-user-doc -->
2026 * @generated
2027 */
2028 @Override
2029 public EReference getTax_Card_Current_tax_card() {
2030 return (EReference)tax_CardEClass.getEStructuralFeatures().get(29);
2031 }
2032
2033 /**
2034 * <!-- begin-user-doc -->
2035 * <!-- end-user-doc -->
2036 * @generated
2037 */
2038 @Override
2039 public EAttribute getTax_Card_Credit_CIM_yearly() {
2040 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(30);
2041 }
2042
2043 /**
2044 * <!-- begin-user-doc -->
2045 * <!-- end-user-doc -->
2046 * @generated
2047 */
2048 @Override
2049 public EAttribute getTax_Card_Deduction_DS_Alimony_yearly() {
2050 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(31);
2051 }
2052
2053 /**
2054 * <!-- begin-user-doc -->
2055 * <!-- end-user-doc -->
2056 * @generated
2057 */
2058 @Override
2059 public EAttribute getTax_Card_Deduction_DS_Debt_yearly() {
2060 return (EAttribute)tax_CardEClass.getEStructuralFeatures().get(32);
2061 }
2062
2063 /**
2064 * <!-- begin-user-doc -->
2065 * <!-- end-user-doc -->
2066 * @generated
2067 */
2068 @Override
2069 public EReference getTax_Card_Income() {
2070 return (EReference)tax_CardEClass.getEStructuralFeatures().get(33);
2071 }
2072
2073 /**
2074 * <!-- begin-user-doc -->
2075 * <!-- end-user-doc -->
2076 * @generated
2077 */
2078 @Override
2079 public EClass getIncome_Tax_Credit() {
2080 return income_Tax_CreditEClass;
2081 }
2082
2083 /**
2084 * <!-- begin-user-doc -->
2085 * <!-- end-user-doc -->
2086 * @generated
2087 */
2088 @Override
2089 public EAttribute getIncome_Tax_Credit_GrantedBy() {
2090 return (EAttribute)income_Tax_CreditEClass.getEStructuralFeatures().get(0);
2091 }
2092
2093 /**
2094 * <!-- begin-user-doc -->
2095 * <!-- end-user-doc -->
2096 * @generated
2097 */
2098 @Override
2099 public EReference getIncome_Tax_Credit_TaxPayer() {
2100 return (EReference)income_Tax_CreditEClass.getEStructuralFeatures().get(1);
2101 }
2102
2103 /**
2104 * <!-- begin-user-doc -->
2105 * <!-- end-user-doc -->
2106 * @generated
2107 */
2108 @Override
2109 public EAttribute getIncome_Tax_Credit_Tax_year() {
2110 return (EAttribute)income_Tax_CreditEClass.getEStructuralFeatures().get(2);
2111 }
2112
2113 /**
2114 * <!-- begin-user-doc -->
2115 * <!-- end-user-doc -->
2116 * @generated
2117 */
2118 @Override
2119 public EAttribute getIncome_Tax_Credit_Yearly() {
2120 return (EAttribute)income_Tax_CreditEClass.getEStructuralFeatures().get(3);
2121 }
2122
2123 /**
2124 * <!-- begin-user-doc -->
2125 * <!-- end-user-doc -->
2126 * @generated
2127 */
2128 @Override
2129 public EAttribute getIncome_Tax_Credit_Monthly() {
2130 return (EAttribute)income_Tax_CreditEClass.getEStructuralFeatures().get(4);
2131 }
2132
2133 /**
2134 * <!-- begin-user-doc -->
2135 * <!-- end-user-doc -->
2136 * @generated
2137 */
2138 @Override
2139 public EAttribute getIncome_Tax_Credit_Daily() {
2140 return (EAttribute)income_Tax_CreditEClass.getEStructuralFeatures().get(5);
2141 }
2142
2143 /**
2144 * <!-- begin-user-doc -->
2145 * <!-- end-user-doc -->
2146 * @generated
2147 */
2148 @Override
2149 public EAttribute getIncome_Tax_Credit_Id7() {
2150 return (EAttribute)income_Tax_CreditEClass.getEStructuralFeatures().get(6);
2151 }
2152
2153 /**
2154 * <!-- begin-user-doc -->
2155 * <!-- end-user-doc -->
2156 * @generated
2157 */
2158 @Override
2159 public EReference getIncome_Tax_Credit_Taxation_Frame() {
2160 return (EReference)income_Tax_CreditEClass.getEStructuralFeatures().get(7);
2161 }
2162
2163 /**
2164 * <!-- begin-user-doc -->
2165 * <!-- end-user-doc -->
2166 * @generated
2167 */
2168 @Override
2169 public EClass getIncome_Detail() {
2170 return income_DetailEClass;
2171 }
2172
2173 /**
2174 * <!-- begin-user-doc -->
2175 * <!-- end-user-doc -->
2176 * @generated
2177 */
2178 @Override
2179 public EAttribute getIncome_Detail_Amount() {
2180 return (EAttribute)income_DetailEClass.getEStructuralFeatures().get(0);
2181 }
2182
2183 /**
2184 * <!-- begin-user-doc -->
2185 * <!-- end-user-doc -->
2186 * @generated
2187 */
2188 @Override
2189 public EAttribute getIncome_Detail_Is_worked() {
2190 return (EAttribute)income_DetailEClass.getEStructuralFeatures().get(1);
2191 }
2192
2193 /**
2194 * <!-- begin-user-doc -->
2195 * <!-- end-user-doc -->
2196 * @generated
2197 */
2198 @Override
2199 public EAttribute getIncome_Detail_Distance() {
2200 return (EAttribute)income_DetailEClass.getEStructuralFeatures().get(2);
2201 }
2202
2203 /**
2204 * <!-- begin-user-doc -->
2205 * <!-- end-user-doc -->
2206 * @generated
2207 */
2208 @Override
2209 public EAttribute getIncome_Detail_Worked_days() {
2210 return (EAttribute)income_DetailEClass.getEStructuralFeatures().get(3);
2211 }
2212
2213 /**
2214 * <!-- begin-user-doc -->
2215 * <!-- end-user-doc -->
2216 * @generated
2217 */
2218 @Override
2219 public EAttribute getIncome_Detail_Is_contributing_CNS() {
2220 return (EAttribute)income_DetailEClass.getEStructuralFeatures().get(4);
2221 }
2222
2223 /**
2224 * <!-- begin-user-doc -->
2225 * <!-- end-user-doc -->
2226 * @generated
2227 */
2228 @Override
2229 public EAttribute getIncome_Detail_Id5() {
2230 return (EAttribute)income_DetailEClass.getEStructuralFeatures().get(5);
2231 }
2232
2233 /**
2234 * <!-- begin-user-doc -->
2235 * <!-- end-user-doc -->
2236 * @generated
2237 */
2238 @Override
2239 public EReference getIncome_Detail_Income() {
2240 return (EReference)income_DetailEClass.getEStructuralFeatures().get(6);
2241 }
2242
2243 /**
2244 * <!-- begin-user-doc -->
2245 * <!-- end-user-doc -->
2246 * @generated
2247 */
2248 @Override
2249 public EClass getFromLaw() {
2250 return fromLawEClass;
2251 }
2252
2253 /**
2254 * <!-- begin-user-doc -->
2255 * <!-- end-user-doc -->
2256 * @generated
2257 */
2258 @Override
2259 public EAttribute getFromLaw_Id() {
2260 return (EAttribute)fromLawEClass.getEStructuralFeatures().get(0);
2261 }
2262
2263 /**
2264 * <!-- begin-user-doc -->
2265 * <!-- end-user-doc -->
2266 * @generated
2267 */
2268 @Override
2269 public EReference getFromLaw_TaxPayer() {
2270 return (EReference)fromLawEClass.getEStructuralFeatures().get(1);
2271 }
2272
2273 /**
2274 * <!-- begin-user-doc -->
2275 * <!-- end-user-doc -->
2276 * @generated
2277 */
2278 @Override
2279 public EClass getFiscal_Address() {
2280 return fiscal_AddressEClass;
2281 }
2282
2283 /**
2284 * <!-- begin-user-doc -->
2285 * <!-- end-user-doc -->
2286 * @generated
2287 */
2288 @Override
2289 public EClass getHabitual_Address() {
2290 return habitual_AddressEClass;
2291 }
2292
2293 /**
2294 * <!-- begin-user-doc -->
2295 * <!-- end-user-doc -->
2296 * @generated
2297 */
2298 @Override
2299 public EClass getMarriage_Record() {
2300 return marriage_RecordEClass;
2301 }
2302
2303 /**
2304 * <!-- begin-user-doc -->
2305 * <!-- end-user-doc -->
2306 * @generated
2307 */
2308 @Override
2309 public EClass getNon_Resident_Tax_Payer() {
2310 return non_Resident_Tax_PayerEClass;
2311 }
2312
2313 /**
2314 * <!-- begin-user-doc -->
2315 * <!-- end-user-doc -->
2316 * @generated
2317 */
2318 @Override
2319 public EAttribute getNon_Resident_Tax_Payer_Is_assimilated_to_resident() {
2320 return (EAttribute)non_Resident_Tax_PayerEClass.getEStructuralFeatures().get(0);
2321 }
2322
2323 /**
2324 * <!-- begin-user-doc -->
2325 * <!-- end-user-doc -->
2326 * @generated
2327 */
2328 @Override
2329 public EClass getPartnership_Record() {
2330 return partnership_RecordEClass;
2331 }
2332
2333 /**
2334 * <!-- begin-user-doc -->
2335 * <!-- end-user-doc -->
2336 * @generated
2337 */
2338 @Override
2339 public EClass getResident_Tax_Payer() {
2340 return resident_Tax_PayerEClass;
2341 }
2342
2343 /**
2344 * <!-- begin-user-doc -->
2345 * <!-- end-user-doc -->
2346 * @generated
2347 */
2348 @Override
2349 public EClass getTrade_and_Business_Income() {
2350 return trade_and_Business_IncomeEClass;
2351 }
2352
2353 /**
2354 * <!-- begin-user-doc -->
2355 * <!-- end-user-doc -->
2356 * @generated
2357 */
2358 @Override
2359 public EClass getAgriculture_and_Forestry_Income() {
2360 return agriculture_and_Forestry_IncomeEClass;
2361 }
2362
2363 /**
2364 * <!-- begin-user-doc -->
2365 * <!-- end-user-doc -->
2366 * @generated
2367 */
2368 @Override
2369 public EClass getPensions_and_Annuities_Income() {
2370 return pensions_and_Annuities_IncomeEClass;
2371 }
2372
2373 /**
2374 * <!-- begin-user-doc -->
2375 * <!-- end-user-doc -->
2376 * @generated
2377 */
2378 @Override
2379 public EAttribute getPensions_and_Annuities_Income_Occasional_payement() {
2380 return (EAttribute)pensions_and_Annuities_IncomeEClass.getEStructuralFeatures().get(0);
2381 }
2382
2383 /**
2384 * <!-- begin-user-doc -->
2385 * <!-- end-user-doc -->
2386 * @generated
2387 */
2388 @Override
2389 public EClass getCapital_and_Investments_Income() {
2390 return capital_and_Investments_IncomeEClass;
2391 }
2392
2393 /**
2394 * <!-- begin-user-doc -->
2395 * <!-- end-user-doc -->
2396 * @generated
2397 */
2398 @Override
2399 public EClass getEmployment_Income() {
2400 return employment_IncomeEClass;
2401 }
2402
2403 /**
2404 * <!-- begin-user-doc -->
2405 * <!-- end-user-doc -->
2406 * @generated
2407 */
2408 @Override
2409 public EClass getRentals_and_Leases_Income() {
2410 return rentals_and_Leases_IncomeEClass;
2411 }
2412
2413 /**
2414 * <!-- begin-user-doc -->
2415 * <!-- end-user-doc -->
2416 * @generated
2417 */
2418 @Override
2419 public EAttribute getRentals_and_Leases_Income_Is_periodic() {
2420 return (EAttribute)rentals_and_Leases_IncomeEClass.getEStructuralFeatures().get(0);
2421 }
2422
2423 /**
2424 * <!-- begin-user-doc -->
2425 * <!-- end-user-doc -->
2426 * @generated
2427 */
2428 @Override
2429 public EClass getForeign_Income() {
2430 return foreign_IncomeEClass;
2431 }
2432
2433 /**
2434 * <!-- begin-user-doc -->
2435 * <!-- end-user-doc -->
2436 * @generated
2437 */
2438 @Override
2439 public EClass getLocal_Income() {
2440 return local_IncomeEClass;
2441 }
2442
2443 /**
2444 * <!-- begin-user-doc -->
2445 * <!-- end-user-doc -->
2446 * @generated
2447 */
2448 @Override
2449 public EClass getCIM() {
2450 return cimEClass;
2451 }
2452
2453 /**
2454 * <!-- begin-user-doc -->
2455 * <!-- end-user-doc -->
2456 * @generated
2457 */
2458 @Override
2459 public EClass getCIP() {
2460 return cipEClass;
2461 }
2462
2463 /**
2464 * <!-- begin-user-doc -->
2465 * <!-- end-user-doc -->
2466 * @generated
2467 */
2468 @Override
2469 public EClass getCIS() {
2470 return cisEClass;
2471 }
2472
2473 /**
2474 * <!-- begin-user-doc -->
2475 * <!-- end-user-doc -->
2476 * @generated
2477 */
2478 @Override
2479 public EClass getPermanent_Expense() {
2480 return permanent_ExpenseEClass;
2481 }
2482
2483 /**
2484 * <!-- begin-user-doc -->
2485 * <!-- end-user-doc -->
2486 * @generated
2487 */
2488 @Override
2489 public EAttribute getPermanent_Expense_Category() {
2490 return (EAttribute)permanent_ExpenseEClass.getEStructuralFeatures().get(0);
2491 }
2492
2493 /**
2494 * <!-- begin-user-doc -->
2495 * <!-- end-user-doc -->
2496 * @generated
2497 */
2498 @Override
2499 public EClass getSpecial_Expense_DS() {
2500 return special_Expense_DSEClass;
2501 }
2502
2503 /**
2504 * <!-- begin-user-doc -->
2505 * <!-- end-user-doc -->
2506 * @generated
2507 */
2508 @Override
2509 public EClass getInterest_Expense() {
2510 return interest_ExpenseEClass;
2511 }
2512
2513 /**
2514 * <!-- begin-user-doc -->
2515 * <!-- end-user-doc -->
2516 * @generated
2517 */
2518 @Override
2519 public EClass getPrivate_Insurance_and_Plan() {
2520 return private_Insurance_and_PlanEClass;
2521 }
2522
2523 /**
2524 * <!-- begin-user-doc -->
2525 * <!-- end-user-doc -->
2526 * @generated
2527 */
2528 @Override
2529 public EAttribute getPrivate_Insurance_and_Plan_Category() {
2530 return (EAttribute)private_Insurance_and_PlanEClass.getEStructuralFeatures().get(0);
2531 }
2532
2533 /**
2534 * <!-- begin-user-doc -->
2535 * <!-- end-user-doc -->
2536 * @generated
2537 */
2538 @Override
2539 public EAttribute getPrivate_Insurance_and_Plan_Duration_of_contract() {
2540 return (EAttribute)private_Insurance_and_PlanEClass.getEStructuralFeatures().get(1);
2541 }
2542
2543 /**
2544 * <!-- begin-user-doc -->
2545 * <!-- end-user-doc -->
2546 * @generated
2547 */
2548 @Override
2549 public EClass getHealth_and_Pension_Insurance() {
2550 return health_and_Pension_InsuranceEClass;
2551 }
2552
2553 /**
2554 * <!-- begin-user-doc -->
2555 * <!-- end-user-doc -->
2556 * @generated
2557 */
2558 @Override
2559 public EAttribute getHealth_and_Pension_Insurance_Category() {
2560 return (EAttribute)health_and_Pension_InsuranceEClass.getEStructuralFeatures().get(0);
2561 }
2562
2563 /**
2564 * <!-- begin-user-doc -->
2565 * <!-- end-user-doc -->
2566 * @generated
2567 */
2568 @Override
2569 public EAttribute getHealth_and_Pension_Insurance_Is_related_to_additional_salary() {
2570 return (EAttribute)health_and_Pension_InsuranceEClass.getEStructuralFeatures().get(1);
2571 }
2572
2573 /**
2574 * <!-- begin-user-doc -->
2575 * <!-- end-user-doc -->
2576 * @generated
2577 */
2578 @Override
2579 public EClass getDonation() {
2580 return donationEClass;
2581 }
2582
2583 /**
2584 * <!-- begin-user-doc -->
2585 * <!-- end-user-doc -->
2586 * @generated
2587 */
2588 @Override
2589 public EAttribute getDonation_Beneficiary1() {
2590 return (EAttribute)donationEClass.getEStructuralFeatures().get(0);
2591 }
2592
2593 /**
2594 * <!-- begin-user-doc -->
2595 * <!-- end-user-doc -->
2596 * @generated
2597 */
2598 @Override
2599 public EAttribute getDonation_Is_donation_reported() {
2600 return (EAttribute)donationEClass.getEStructuralFeatures().get(1);
2601 }
2602
2603 /**
2604 * <!-- begin-user-doc -->
2605 * <!-- end-user-doc -->
2606 * @generated
2607 */
2608 @Override
2609 public EClass getLoss_Carryforward() {
2610 return loss_CarryforwardEClass;
2611 }
2612
2613 /**
2614 * <!-- begin-user-doc -->
2615 * <!-- end-user-doc -->
2616 * @generated
2617 */
2618 @Override
2619 public EClass getSpousal_Expense_AC() {
2620 return spousal_Expense_ACEClass;
2621 }
2622
2623 /**
2624 * <!-- begin-user-doc -->
2625 * <!-- end-user-doc -->
2626 * @generated
2627 */
2628 @Override
2629 public EClass getExtraordinary_Expense_CE() {
2630 return extraordinary_Expense_CEEClass;
2631 }
2632
2633 /**
2634 * <!-- begin-user-doc -->
2635 * <!-- end-user-doc -->
2636 * @generated
2637 */
2638 @Override
2639 public EAttribute getExtraordinary_Expense_CE_Thresholded_deduction_percentage() {
2640 return (EAttribute)extraordinary_Expense_CEEClass.getEStructuralFeatures().get(0);
2641 }
2642
2643 /**
2644 * <!-- begin-user-doc -->
2645 * <!-- end-user-doc -->
2646 * @generated
2647 */
2648 @Override
2649 public EAttribute getExtraordinary_Expense_CE_Ce_type() {
2650 return (EAttribute)extraordinary_Expense_CEEClass.getEStructuralFeatures().get(1);
2651 }
2652
2653 /**
2654 * <!-- begin-user-doc -->
2655 * <!-- end-user-doc -->
2656 * @generated
2657 */
2658 @Override
2659 public EClass getTravel_Expense_FD() {
2660 return travel_Expense_FDEClass;
2661 }
2662
2663 /**
2664 * <!-- begin-user-doc -->
2665 * <!-- end-user-doc -->
2666 * @generated
2667 */
2668 @Override
2669 public EClass getProfessional_Expense() {
2670 return professional_ExpenseEClass;
2671 }
2672
2673 /**
2674 * <!-- begin-user-doc -->
2675 * <!-- end-user-doc -->
2676 * @generated
2677 */
2678 @Override
2679 public EClass getMiscellaneous_Expense_FO() {
2680 return miscellaneous_Expense_FOEClass;
2681 }
2682
2683 /**
2684 * <!-- begin-user-doc -->
2685 * <!-- end-user-doc -->
2686 * @generated
2687 */
2688 @Override
2689 public EClass getResource() {
2690 return resourceEClass;
2691 }
2692
2693 /**
2694 * <!-- begin-user-doc -->
2695 * <!-- end-user-doc -->
2696 * @generated
2697 */
2698 @Override
2699 public EReference getResource_Contains() {
2700 return (EReference)resourceEClass.getEStructuralFeatures().get(0);
2701 }
2702
2703 /**
2704 * <!-- begin-user-doc -->
2705 * <!-- end-user-doc -->
2706 * @generated
2707 */
2708 @Override
2709 public EEnum getGrantor() {
2710 return grantorEEnum;
2711 }
2712
2713 /**
2714 * <!-- begin-user-doc -->
2715 * <!-- end-user-doc -->
2716 * @generated
2717 */
2718 @Override
2719 public EEnum getDisability_Types() {
2720 return disability_TypesEEnum;
2721 }
2722
2723 /**
2724 * <!-- begin-user-doc -->
2725 * <!-- end-user-doc -->
2726 * @generated
2727 */
2728 @Override
2729 public EEnum getCountry() {
2730 return countryEEnum;
2731 }
2732
2733 /**
2734 * <!-- begin-user-doc -->
2735 * <!-- end-user-doc -->
2736 * @generated
2737 */
2738 @Override
2739 public EEnum getTax_Office() {
2740 return tax_OfficeEEnum;
2741 }
2742
2743 /**
2744 * <!-- begin-user-doc -->
2745 * <!-- end-user-doc -->
2746 * @generated
2747 */
2748 @Override
2749 public EEnum getTax_Class_Category() {
2750 return tax_Class_CategoryEEnum;
2751 }
2752
2753 /**
2754 * <!-- begin-user-doc -->
2755 * <!-- end-user-doc -->
2756 * @generated
2757 */
2758 @Override
2759 public EEnum getJob_Activity() {
2760 return job_ActivityEEnum;
2761 }
2762
2763 /**
2764 * <!-- begin-user-doc -->
2765 * <!-- end-user-doc -->
2766 * @generated
2767 */
2768 @Override
2769 public EEnum getTown() {
2770 return townEEnum;
2771 }
2772
2773 /**
2774 * <!-- begin-user-doc -->
2775 * <!-- end-user-doc -->
2776 * @generated
2777 */
2778 @Override
2779 public EEnum getCE_Type() {
2780 return cE_TypeEEnum;
2781 }
2782
2783 /**
2784 * <!-- begin-user-doc -->
2785 * <!-- end-user-doc -->
2786 * @generated
2787 */
2788 @Override
2789 public EEnum getExpense_Purpose() {
2790 return expense_PurposeEEnum;
2791 }
2792
2793 /**
2794 * <!-- begin-user-doc -->
2795 * <!-- end-user-doc -->
2796 * @generated
2797 */
2798 @Override
2799 public EEnum getDependent_Type() {
2800 return dependent_TypeEEnum;
2801 }
2802
2803 /**
2804 * <!-- begin-user-doc -->
2805 * <!-- end-user-doc -->
2806 * @generated
2807 */
2808 @Override
2809 public EEnum getSeparation_Causes() {
2810 return separation_CausesEEnum;
2811 }
2812
2813 /**
2814 * <!-- begin-user-doc -->
2815 * <!-- end-user-doc -->
2816 * @generated
2817 */
2818 @Override
2819 public EEnum getCategory_of_Permanent_Expense() {
2820 return category_of_Permanent_ExpenseEEnum;
2821 }
2822
2823 /**
2824 * <!-- begin-user-doc -->
2825 * <!-- end-user-doc -->
2826 * @generated
2827 */
2828 @Override
2829 public EEnum getCategory_of_Health_and_Pension_Insurances() {
2830 return category_of_Health_and_Pension_InsurancesEEnum;
2831 }
2832
2833 /**
2834 * <!-- begin-user-doc -->
2835 * <!-- end-user-doc -->
2836 * @generated
2837 */
2838 @Override
2839 public EEnum getCategory_of_Private_Insurance_and_Plan() {
2840 return category_of_Private_Insurance_and_PlanEEnum;
2841 }
2842
2843 /**
2844 * <!-- begin-user-doc -->
2845 * <!-- end-user-doc -->
2846 * @generated
2847 */
2848 @Override
2849 public EEnum getLegal_Union_Types() {
2850 return legal_Union_TypesEEnum;
2851 }
2852
2853 /**
2854 * <!-- begin-user-doc -->
2855 * <!-- end-user-doc -->
2856 * @generated
2857 */
2858 @Override
2859 public TaxationWithRootFactory getTaxationWithRootFactory() {
2860 return (TaxationWithRootFactory)getEFactoryInstance();
2861 }
2862
2863 /**
2864 * <!-- begin-user-doc -->
2865 * <!-- end-user-doc -->
2866 * @generated
2867 */
2868 private boolean isCreated = false;
2869
2870 /**
2871 * Creates the meta-model objects for the package. This method is
2872 * guarded to have no affect on any invocation but its first.
2873 * <!-- begin-user-doc -->
2874 * <!-- end-user-doc -->
2875 * @generated
2876 */
2877 public void createPackageContents() {
2878 if (isCreated) return;
2879 isCreated = true;
2880
2881 // Create classes and their features
2882 constantsEClass = createEClass(CONSTANTS);
2883 createEAttribute(constantsEClass, CONSTANTS__MAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD);
2884 createEAttribute(constantsEClass, CONSTANTS__MAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE);
2885 createEAttribute(constantsEClass, CONSTANTS__MINIMUM_SALARY);
2886 createEAttribute(constantsEClass, CONSTANTS__FLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION);
2887 createEAttribute(constantsEClass, CONSTANTS__MAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS);
2888 createEAttribute(constantsEClass, CONSTANTS__MINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS);
2889 createEAttribute(constantsEClass, CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC);
2890 createEAttribute(constantsEClass, CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE);
2891 createEAttribute(constantsEClass, CONSTANTS__MAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION);
2892 createEAttribute(constantsEClass, CONSTANTS__MAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION);
2893 createEAttribute(constantsEClass, CONSTANTS__MINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION);
2894 createEAttribute(constantsEClass, CONSTANTS__FLAT_RATE_CIM_DAILY);
2895 createEAttribute(constantsEClass, CONSTANTS__FLAT_RATE_CIM_MONTHLY);
2896 createEAttribute(constantsEClass, CONSTANTS__FLAT_RATE_CIM_YEARLY);
2897 createEAttribute(constantsEClass, CONSTANTS__FLAT_RATE_CIP_DAILY);
2898 createEAttribute(constantsEClass, CONSTANTS__FLAT_RATE_CIP_MONTHLY);
2899 createEAttribute(constantsEClass, CONSTANTS__FLAT_RATE_CIP_YEARLY);
2900 createEAttribute(constantsEClass, CONSTANTS__FLAT_RATE_CIS_DAILY);
2901 createEAttribute(constantsEClass, CONSTANTS__FLAT_RATE_CIS_MONTHLY);
2902 createEAttribute(constantsEClass, CONSTANTS__FLAT_RATE_CIS_YEARLY);
2903 createEAttribute(constantsEClass, CONSTANTS__FLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT);
2904 createEAttribute(constantsEClass, CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS);
2905 createEAttribute(constantsEClass, CONSTANTS__FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE);
2906 createEAttribute(constantsEClass, CONSTANTS__DISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE);
2907 createEAttribute(constantsEClass, CONSTANTS__MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE);
2908
2909 income_TaxEClass = createEClass(INCOME_TAX);
2910 createEReference(income_TaxEClass, INCOME_TAX__TAX_PAYER);
2911 createEAttribute(income_TaxEClass, INCOME_TAX__TAX_AMOUNT);
2912 createEAttribute(income_TaxEClass, INCOME_TAX__TAX_YEAR);
2913 createEAttribute(income_TaxEClass, INCOME_TAX__ID6);
2914
2915 tax_PayerEClass = createEClass(TAX_PAYER);
2916 createEReference(tax_PayerEClass, TAX_PAYER__DEPENDENTS);
2917 createEReference(tax_PayerEClass, TAX_PAYER__FROM_AGENT);
2918 createEReference(tax_PayerEClass, TAX_PAYER__INCOMES);
2919 createEReference(tax_PayerEClass, TAX_PAYER__FROM_LAW);
2920
2921 physical_PersonEClass = createEClass(PHYSICAL_PERSON);
2922 createEAttribute(physical_PersonEClass, PHYSICAL_PERSON__SS_NO);
2923 createEReference(physical_PersonEClass, PHYSICAL_PERSON__ADDRESSES);
2924 createEAttribute(physical_PersonEClass, PHYSICAL_PERSON__BIRTH_YEAR);
2925 createEAttribute(physical_PersonEClass, PHYSICAL_PERSON__DISABILITY_PERCENTAGE);
2926 createEAttribute(physical_PersonEClass, PHYSICAL_PERSON__DISABILITY_TYPE);
2927 createEAttribute(physical_PersonEClass, PHYSICAL_PERSON__BIRTH_MONTH);
2928 createEAttribute(physical_PersonEClass, PHYSICAL_PERSON__BIRTH_DAY);
2929 createEReference(physical_PersonEClass, PHYSICAL_PERSON__EXPENSES);
2930 createEAttribute(physical_PersonEClass, PHYSICAL_PERSON__IS_WIDOWER);
2931
2932 addressEClass = createEClass(ADDRESS);
2933 createEAttribute(addressEClass, ADDRESS__COUNTRY);
2934 createEAttribute(addressEClass, ADDRESS__STREET);
2935 createEAttribute(addressEClass, ADDRESS__ZIP_CODE);
2936 createEAttribute(addressEClass, ADDRESS__CITY);
2937 createEAttribute(addressEClass, ADDRESS__ID2);
2938 createEReference(addressEClass, ADDRESS__TAX_PAYER);
2939
2940 expenseEClass = createEClass(EXPENSE);
2941 createEAttribute(expenseEClass, EXPENSE__DECLARED_AMOUNT);
2942 createEAttribute(expenseEClass, EXPENSE__EXPENSE_PURPOSE);
2943 createEReference(expenseEClass, EXPENSE__DEPENDENT);
2944 createEReference(expenseEClass, EXPENSE__FROM_AGENT);
2945 createEReference(expenseEClass, EXPENSE__INCOME);
2946 createEAttribute(expenseEClass, EXPENSE__ID4);
2947 createEReference(expenseEClass, EXPENSE__BENEFICIARY);
2948
2949 dependentEClass = createEClass(DEPENDENT);
2950 createEAttribute(dependentEClass, DEPENDENT__DEPENDENT_TYPE);
2951 createEReference(dependentEClass, DEPENDENT__RESPONSIBLE_PERSON);
2952 createEAttribute(dependentEClass, DEPENDENT__CONTINUED_STUDIES);
2953 createEReference(dependentEClass, DEPENDENT__ALLOWANCES);
2954 createEReference(dependentEClass, DEPENDENT__HOUSEHOLD);
2955 createEReference(dependentEClass, DEPENDENT__FROM_AGENT);
2956 createEReference(dependentEClass, DEPENDENT__EXPENSE);
2957
2958 external_AllowanceEClass = createEClass(EXTERNAL_ALLOWANCE);
2959 createEAttribute(external_AllowanceEClass, EXTERNAL_ALLOWANCE__GRANTOR);
2960 createEAttribute(external_AllowanceEClass, EXTERNAL_ALLOWANCE__STARTING_YEAR);
2961 createEAttribute(external_AllowanceEClass, EXTERNAL_ALLOWANCE__ENDING_YEAR);
2962 createEReference(external_AllowanceEClass, EXTERNAL_ALLOWANCE__RECIVER);
2963 createEAttribute(external_AllowanceEClass, EXTERNAL_ALLOWANCE__ID5);
2964 createEReference(external_AllowanceEClass, EXTERNAL_ALLOWANCE__PERSON);
2965
2966 householdEClass = createEClass(HOUSEHOLD);
2967 createEReference(householdEClass, HOUSEHOLD__PARENTS);
2968 createEAttribute(householdEClass, HOUSEHOLD__ID1);
2969 createEReference(householdEClass, HOUSEHOLD__CHILDREN);
2970
2971 legal_Union_RecordEClass = createEClass(LEGAL_UNION_RECORD);
2972 createEAttribute(legal_Union_RecordEClass, LEGAL_UNION_RECORD__START_YEAR);
2973 createEAttribute(legal_Union_RecordEClass, LEGAL_UNION_RECORD__END_YEAR);
2974 createEAttribute(legal_Union_RecordEClass, LEGAL_UNION_RECORD__SEPARATION_CAUSE);
2975 createEReference(legal_Union_RecordEClass, LEGAL_UNION_RECORD__INDIVIDUAL_A);
2976 createEReference(legal_Union_RecordEClass, LEGAL_UNION_RECORD__INDIVIDUAL_B);
2977 createEReference(legal_Union_RecordEClass, LEGAL_UNION_RECORD__PROPERTIES);
2978 createEAttribute(legal_Union_RecordEClass, LEGAL_UNION_RECORD__MUTUAL_AGREEMENT);
2979 createEAttribute(legal_Union_RecordEClass, LEGAL_UNION_RECORD__ID9);
2980 createEReference(legal_Union_RecordEClass, LEGAL_UNION_RECORD__HOUSEHOLD);
2981
2982 tax_PropertyEClass = createEClass(TAX_PROPERTY);
2983 createEAttribute(tax_PropertyEClass, TAX_PROPERTY__STARTING_YEAR);
2984 createEAttribute(tax_PropertyEClass, TAX_PROPERTY__ID10);
2985 createEReference(tax_PropertyEClass, TAX_PROPERTY__UNION_RECORD);
2986
2987 tax_CaseEClass = createEClass(TAX_CASE);
2988
2989 fromAgentEClass = createEClass(FROM_AGENT);
2990 createEReference(fromAgentEClass, FROM_AGENT__TAX_PAYER);
2991 createEAttribute(fromAgentEClass, FROM_AGENT__IS_DEPENDENT_ELIGIBLE_FOR_CE_NOT_IN_HOUSHOLD_CHILDREN_CARE);
2992 createEReference(fromAgentEClass, FROM_AGENT__EXPENSE);
2993 createEAttribute(fromAgentEClass, FROM_AGENT__IS_ELIGIBLE_DEBT);
2994 createEReference(fromAgentEClass, FROM_AGENT__DEPENDENT);
2995
2996 incomeEClass = createEClass(INCOME);
2997 createEAttribute(incomeEClass, INCOME__INCOME_AMOUNT);
2998 createEReference(incomeEClass, INCOME__INCOME_TYPE);
2999 createEReference(incomeEClass, INCOME__TAX_CARD);
3000 createEAttribute(incomeEClass, INCOME__TAX_LIABILITY);
3001 createEReference(incomeEClass, INCOME__TAX_PAYER);
3002 createEReference(incomeEClass, INCOME__DETAILS);
3003 createEAttribute(incomeEClass, INCOME__NUM);
3004 createEReference(incomeEClass, INCOME__EXPENSES);
3005
3006 income_TypeEClass = createEClass(INCOME_TYPE);
3007 createEAttribute(income_TypeEClass, INCOME_TYPE__ID8);
3008 createEReference(income_TypeEClass, INCOME_TYPE__INCOME);
3009
3010 tax_CardEClass = createEClass(TAX_CARD);
3011 createEAttribute(tax_CardEClass, TAX_CARD__CARD_IDENTIFIER);
3012 createEAttribute(tax_CardEClass, TAX_CARD__TAX_OFFICE);
3013 createEAttribute(tax_CardEClass, TAX_CARD__PERCENTAGE_OF_WITHOLDING);
3014 createEAttribute(tax_CardEClass, TAX_CARD__TAX_PAYERS_NAME_SURNAME);
3015 createEAttribute(tax_CardEClass, TAX_CARD__TAX_PAYERS_PARTNER_NAME_SURNAME);
3016 createEReference(tax_CardEClass, TAX_CARD__TAX_PAYERS_ADDRESS);
3017 createEAttribute(tax_CardEClass, TAX_CARD__JOBS_EMPLOYER_SS_NO);
3018 createEAttribute(tax_CardEClass, TAX_CARD__JOBS_EMPLOYERS_NAME);
3019 createEAttribute(tax_CardEClass, TAX_CARD__JOBS_ACTIVITY_TYPE);
3020 createEAttribute(tax_CardEClass, TAX_CARD__JOBS_PLACE_OF_WORK);
3021 createEAttribute(tax_CardEClass, TAX_CARD__DEDUCTION_FD_DAILY);
3022 createEAttribute(tax_CardEClass, TAX_CARD__DEDUCTION_FD_MONTHLY);
3023 createEAttribute(tax_CardEClass, TAX_CARD__DEDUCTION_AC_DAILY);
3024 createEAttribute(tax_CardEClass, TAX_CARD__DEDUCTION_AC_MONTHLY);
3025 createEAttribute(tax_CardEClass, TAX_CARD__DEDUCTION_AC_YEARLY);
3026 createEAttribute(tax_CardEClass, TAX_CARD__DEDUCTION_CE_DAILY);
3027 createEAttribute(tax_CardEClass, TAX_CARD__DEDUCTION_CE_MONTHLY);
3028 createEAttribute(tax_CardEClass, TAX_CARD__DEDUCTION_CE_YEARLY);
3029 createEAttribute(tax_CardEClass, TAX_CARD__DEDUCTION_DS_DAILY);
3030 createEAttribute(tax_CardEClass, TAX_CARD__DEDUCTION_DS_MONTHLY);
3031 createEAttribute(tax_CardEClass, TAX_CARD__DEDUCTION_FO_DAILY);
3032 createEAttribute(tax_CardEClass, TAX_CARD__DEDUCTION_FO_MONTHLY);
3033 createEAttribute(tax_CardEClass, TAX_CARD__DEDUCTION_FO_YEARLY);
3034 createEAttribute(tax_CardEClass, TAX_CARD__CREDIT_CIS_DAILY);
3035 createEAttribute(tax_CardEClass, TAX_CARD__CREDIT_CIS_MONTHLY);
3036 createEAttribute(tax_CardEClass, TAX_CARD__CREDIT_CIM_DAILY);
3037 createEAttribute(tax_CardEClass, TAX_CARD__VALIDITY);
3038 createEReference(tax_CardEClass, TAX_CARD__INCOME_TAX_CREDIT);
3039 createEReference(tax_CardEClass, TAX_CARD__PREVIOUS);
3040 createEReference(tax_CardEClass, TAX_CARD__CURRENT_TAX_CARD);
3041 createEAttribute(tax_CardEClass, TAX_CARD__CREDIT_CIM_YEARLY);
3042 createEAttribute(tax_CardEClass, TAX_CARD__DEDUCTION_DS_ALIMONY_YEARLY);
3043 createEAttribute(tax_CardEClass, TAX_CARD__DEDUCTION_DS_DEBT_YEARLY);
3044 createEReference(tax_CardEClass, TAX_CARD__INCOME);
3045
3046 income_Tax_CreditEClass = createEClass(INCOME_TAX_CREDIT);
3047 createEAttribute(income_Tax_CreditEClass, INCOME_TAX_CREDIT__GRANTED_BY);
3048 createEReference(income_Tax_CreditEClass, INCOME_TAX_CREDIT__TAX_PAYER);
3049 createEAttribute(income_Tax_CreditEClass, INCOME_TAX_CREDIT__TAX_YEAR);
3050 createEAttribute(income_Tax_CreditEClass, INCOME_TAX_CREDIT__YEARLY);
3051 createEAttribute(income_Tax_CreditEClass, INCOME_TAX_CREDIT__MONTHLY);
3052 createEAttribute(income_Tax_CreditEClass, INCOME_TAX_CREDIT__DAILY);
3053 createEAttribute(income_Tax_CreditEClass, INCOME_TAX_CREDIT__ID7);
3054 createEReference(income_Tax_CreditEClass, INCOME_TAX_CREDIT__TAXATION_FRAME);
3055
3056 income_DetailEClass = createEClass(INCOME_DETAIL);
3057 createEAttribute(income_DetailEClass, INCOME_DETAIL__AMOUNT);
3058 createEAttribute(income_DetailEClass, INCOME_DETAIL__IS_WORKED);
3059 createEAttribute(income_DetailEClass, INCOME_DETAIL__DISTANCE);
3060 createEAttribute(income_DetailEClass, INCOME_DETAIL__WORKED_DAYS);
3061 createEAttribute(income_DetailEClass, INCOME_DETAIL__IS_CONTRIBUTING_CNS);
3062 createEAttribute(income_DetailEClass, INCOME_DETAIL__ID5);
3063 createEReference(income_DetailEClass, INCOME_DETAIL__INCOME);
3064
3065 fromLawEClass = createEClass(FROM_LAW);
3066 createEAttribute(fromLawEClass, FROM_LAW__ID);
3067 createEReference(fromLawEClass, FROM_LAW__TAX_PAYER);
3068
3069 fiscal_AddressEClass = createEClass(FISCAL_ADDRESS);
3070
3071 habitual_AddressEClass = createEClass(HABITUAL_ADDRESS);
3072
3073 marriage_RecordEClass = createEClass(MARRIAGE_RECORD);
3074
3075 non_Resident_Tax_PayerEClass = createEClass(NON_RESIDENT_TAX_PAYER);
3076 createEAttribute(non_Resident_Tax_PayerEClass, NON_RESIDENT_TAX_PAYER__IS_ASSIMILATED_TO_RESIDENT);
3077
3078 partnership_RecordEClass = createEClass(PARTNERSHIP_RECORD);
3079
3080 resident_Tax_PayerEClass = createEClass(RESIDENT_TAX_PAYER);
3081
3082 trade_and_Business_IncomeEClass = createEClass(TRADE_AND_BUSINESS_INCOME);
3083
3084 agriculture_and_Forestry_IncomeEClass = createEClass(AGRICULTURE_AND_FORESTRY_INCOME);
3085
3086 pensions_and_Annuities_IncomeEClass = createEClass(PENSIONS_AND_ANNUITIES_INCOME);
3087 createEAttribute(pensions_and_Annuities_IncomeEClass, PENSIONS_AND_ANNUITIES_INCOME__OCCASIONAL_PAYEMENT);
3088
3089 capital_and_Investments_IncomeEClass = createEClass(CAPITAL_AND_INVESTMENTS_INCOME);
3090
3091 employment_IncomeEClass = createEClass(EMPLOYMENT_INCOME);
3092
3093 rentals_and_Leases_IncomeEClass = createEClass(RENTALS_AND_LEASES_INCOME);
3094 createEAttribute(rentals_and_Leases_IncomeEClass, RENTALS_AND_LEASES_INCOME__IS_PERIODIC);
3095
3096 foreign_IncomeEClass = createEClass(FOREIGN_INCOME);
3097
3098 local_IncomeEClass = createEClass(LOCAL_INCOME);
3099
3100 cimEClass = createEClass(CIM);
3101
3102 cipEClass = createEClass(CIP);
3103
3104 cisEClass = createEClass(CIS);
3105
3106 permanent_ExpenseEClass = createEClass(PERMANENT_EXPENSE);
3107 createEAttribute(permanent_ExpenseEClass, PERMANENT_EXPENSE__CATEGORY);
3108
3109 special_Expense_DSEClass = createEClass(SPECIAL_EXPENSE_DS);
3110
3111 interest_ExpenseEClass = createEClass(INTEREST_EXPENSE);
3112
3113 private_Insurance_and_PlanEClass = createEClass(PRIVATE_INSURANCE_AND_PLAN);
3114 createEAttribute(private_Insurance_and_PlanEClass, PRIVATE_INSURANCE_AND_PLAN__CATEGORY);
3115 createEAttribute(private_Insurance_and_PlanEClass, PRIVATE_INSURANCE_AND_PLAN__DURATION_OF_CONTRACT);
3116
3117 health_and_Pension_InsuranceEClass = createEClass(HEALTH_AND_PENSION_INSURANCE);
3118 createEAttribute(health_and_Pension_InsuranceEClass, HEALTH_AND_PENSION_INSURANCE__CATEGORY);
3119 createEAttribute(health_and_Pension_InsuranceEClass, HEALTH_AND_PENSION_INSURANCE__IS_RELATED_TO_ADDITIONAL_SALARY);
3120
3121 donationEClass = createEClass(DONATION);
3122 createEAttribute(donationEClass, DONATION__BENEFICIARY1);
3123 createEAttribute(donationEClass, DONATION__IS_DONATION_REPORTED);
3124
3125 loss_CarryforwardEClass = createEClass(LOSS_CARRYFORWARD);
3126
3127 spousal_Expense_ACEClass = createEClass(SPOUSAL_EXPENSE_AC);
3128
3129 extraordinary_Expense_CEEClass = createEClass(EXTRAORDINARY_EXPENSE_CE);
3130 createEAttribute(extraordinary_Expense_CEEClass, EXTRAORDINARY_EXPENSE_CE__THRESHOLDED_DEDUCTION_PERCENTAGE);
3131 createEAttribute(extraordinary_Expense_CEEClass, EXTRAORDINARY_EXPENSE_CE__CE_TYPE);
3132
3133 travel_Expense_FDEClass = createEClass(TRAVEL_EXPENSE_FD);
3134
3135 professional_ExpenseEClass = createEClass(PROFESSIONAL_EXPENSE);
3136
3137 miscellaneous_Expense_FOEClass = createEClass(MISCELLANEOUS_EXPENSE_FO);
3138
3139 resourceEClass = createEClass(RESOURCE);
3140 createEReference(resourceEClass, RESOURCE__CONTAINS);
3141
3142 // Create enums
3143 grantorEEnum = createEEnum(GRANTOR);
3144 disability_TypesEEnum = createEEnum(DISABILITY_TYPES);
3145 countryEEnum = createEEnum(COUNTRY);
3146 tax_OfficeEEnum = createEEnum(TAX_OFFICE);
3147 tax_Class_CategoryEEnum = createEEnum(TAX_CLASS_CATEGORY);
3148 job_ActivityEEnum = createEEnum(JOB_ACTIVITY);
3149 townEEnum = createEEnum(TOWN);
3150 cE_TypeEEnum = createEEnum(CE_TYPE);
3151 expense_PurposeEEnum = createEEnum(EXPENSE_PURPOSE);
3152 dependent_TypeEEnum = createEEnum(DEPENDENT_TYPE);
3153 separation_CausesEEnum = createEEnum(SEPARATION_CAUSES);
3154 category_of_Permanent_ExpenseEEnum = createEEnum(CATEGORY_OF_PERMANENT_EXPENSE);
3155 category_of_Health_and_Pension_InsurancesEEnum = createEEnum(CATEGORY_OF_HEALTH_AND_PENSION_INSURANCES);
3156 category_of_Private_Insurance_and_PlanEEnum = createEEnum(CATEGORY_OF_PRIVATE_INSURANCE_AND_PLAN);
3157 legal_Union_TypesEEnum = createEEnum(LEGAL_UNION_TYPES);
3158 }
3159
3160 /**
3161 * <!-- begin-user-doc -->
3162 * <!-- end-user-doc -->
3163 * @generated
3164 */
3165 private boolean isInitialized = false;
3166
3167 /**
3168 * Complete the initialization of the package and its meta-model. This
3169 * method is guarded to have no affect on any invocation but its first.
3170 * <!-- begin-user-doc -->
3171 * <!-- end-user-doc -->
3172 * @generated
3173 */
3174 public void initializePackageContents() {
3175 if (isInitialized) return;
3176 isInitialized = true;
3177
3178 // Initialize package
3179 setName(eNAME);
3180 setNsPrefix(eNS_PREFIX);
3181 setNsURI(eNS_URI);
3182
3183 // Create type parameters
3184
3185 // Set bounds for type parameters
3186
3187 // Add supertypes to classes
3188 tax_PayerEClass.getESuperTypes().add(this.getPhysical_Person());
3189 tax_PayerEClass.getESuperTypes().add(this.getTax_Case());
3190 dependentEClass.getESuperTypes().add(this.getPhysical_Person());
3191 householdEClass.getESuperTypes().add(this.getTax_Case());
3192 fiscal_AddressEClass.getESuperTypes().add(this.getAddress());
3193 habitual_AddressEClass.getESuperTypes().add(this.getAddress());
3194 marriage_RecordEClass.getESuperTypes().add(this.getLegal_Union_Record());
3195 non_Resident_Tax_PayerEClass.getESuperTypes().add(this.getTax_Payer());
3196 partnership_RecordEClass.getESuperTypes().add(this.getLegal_Union_Record());
3197 resident_Tax_PayerEClass.getESuperTypes().add(this.getTax_Payer());
3198 trade_and_Business_IncomeEClass.getESuperTypes().add(this.getIncome_Type());
3199 agriculture_and_Forestry_IncomeEClass.getESuperTypes().add(this.getIncome_Type());
3200 pensions_and_Annuities_IncomeEClass.getESuperTypes().add(this.getIncome_Type());
3201 capital_and_Investments_IncomeEClass.getESuperTypes().add(this.getIncome_Type());
3202 employment_IncomeEClass.getESuperTypes().add(this.getIncome_Type());
3203 rentals_and_Leases_IncomeEClass.getESuperTypes().add(this.getIncome_Type());
3204 foreign_IncomeEClass.getESuperTypes().add(this.getIncome());
3205 local_IncomeEClass.getESuperTypes().add(this.getIncome());
3206 cimEClass.getESuperTypes().add(this.getIncome_Tax_Credit());
3207 cipEClass.getESuperTypes().add(this.getIncome_Tax_Credit());
3208 cisEClass.getESuperTypes().add(this.getIncome_Tax_Credit());
3209 permanent_ExpenseEClass.getESuperTypes().add(this.getSpecial_Expense_DS());
3210 special_Expense_DSEClass.getESuperTypes().add(this.getExpense());
3211 interest_ExpenseEClass.getESuperTypes().add(this.getSpecial_Expense_DS());
3212 private_Insurance_and_PlanEClass.getESuperTypes().add(this.getSpecial_Expense_DS());
3213 health_and_Pension_InsuranceEClass.getESuperTypes().add(this.getSpecial_Expense_DS());
3214 donationEClass.getESuperTypes().add(this.getSpecial_Expense_DS());
3215 loss_CarryforwardEClass.getESuperTypes().add(this.getSpecial_Expense_DS());
3216 spousal_Expense_ACEClass.getESuperTypes().add(this.getExpense());
3217 extraordinary_Expense_CEEClass.getESuperTypes().add(this.getExpense());
3218 travel_Expense_FDEClass.getESuperTypes().add(this.getProfessional_Expense());
3219 professional_ExpenseEClass.getESuperTypes().add(this.getExpense());
3220 miscellaneous_Expense_FOEClass.getESuperTypes().add(this.getProfessional_Expense());
3221
3222 // Initialize classes, features, and operations; add parameters
3223 initEClass(constantsEClass, Constants.class, "Constants", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3224 initEAttribute(getConstants_MAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD(), ecorePackage.getEDouble(), "MAXIMUM_CE_RATE_FOR_CHILD_NOT_BEING_PART_OF_HOUSEHOLD", "3480.0", 1, 1, Constants.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3225 initEAttribute(getConstants_MAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE(), ecorePackage.getEDouble(), "MAXIMUM_CE_RATE_FOR_HOUSE_CARE_AND_CHILD_PART_OF_THE_HOUSEHOLD_CARE", "3600.0", 1, 1, Constants.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3226 initEAttribute(getConstants_MINIMUM_SALARY(), ecorePackage.getEDouble(), "MINIMUM_SALARY", "1500.0", 1, 1, Constants.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3227 initEAttribute(getConstants_FLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION(), ecorePackage.getEDouble(), "FLAT_RATE_FOR_EXTRA_PROFESSIONAL_DEDUCTION", "4500.0", 1, 1, Constants.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3228 initEAttribute(getConstants_MAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS(), ecorePackage.getEDouble(), "MAXIMUM_DEDUCTIBLE_PERCENTAGE_FOR_DONATIONS", "20.0", 1, 1, Constants.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3229 initEAttribute(getConstants_MINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS(), ecorePackage.getEDouble(), "MINIMUM_DEDUCTIBLE_AMOUNT_FOR_DONATIONS", "120.0", 1, 1, Constants.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3230 initEAttribute(getConstants_MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC(), ecorePackage.getEDouble(), "MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANC", "0.0", 1, 1, Constants.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3231 initEAttribute(getConstants_MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE(), ecorePackage.getEDouble(), "MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ALIMONY_EXPENSE", "24000.0", 1, 1, Constants.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3232 initEAttribute(getConstants_MAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION(), ecorePackage.getEDouble(), "MAXIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION", "99.0", 1, 1, Constants.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3233 initEAttribute(getConstants_MAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION(), ecorePackage.getEDouble(), "MAXIMAL_FLAT_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION", "30.0", 1, 1, Constants.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3234 initEAttribute(getConstants_MINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION(), ecorePackage.getEDouble(), "MINIMAL_DISTANCE_FOR_TRAVEL_EXPENSE_DEDUCTION", "4.0", 1, 1, Constants.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3235 initEAttribute(getConstants_FLAT_RATE_CIM_DAILY(), ecorePackage.getEDouble(), "FLAT_RATE_CIM_DAILY", "2.0", 1, 1, Constants.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3236 initEAttribute(getConstants_FLAT_RATE_CIM_MONTHLY(), ecorePackage.getEDouble(), "FLAT_RATE_CIM_MONTHLY", "62.0", 1, 1, Constants.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3237 initEAttribute(getConstants_FLAT_RATE_CIM_YEARLY(), ecorePackage.getEDouble(), "FLAT_RATE_CIM_YEARLY", "750.0", 1, 1, Constants.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3238 initEAttribute(getConstants_FLAT_RATE_CIP_DAILY(), ecorePackage.getEDouble(), "FLAT_RATE_CIP_DAILY", "1.0", 1, 1, Constants.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3239 initEAttribute(getConstants_FLAT_RATE_CIP_MONTHLY(), ecorePackage.getEDouble(), "FLAT_RATE_CIP_MONTHLY", "25.0", 1, 1, Constants.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3240 initEAttribute(getConstants_FLAT_RATE_CIP_YEARLY(), ecorePackage.getEDouble(), "FLAT_RATE_CIP_YEARLY", "30.0", 1, 1, Constants.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3241 initEAttribute(getConstants_FLAT_RATE_CIS_DAILY(), ecorePackage.getEDouble(), "FLAT_RATE_CIS_DAILY", "1.0", 1, 1, Constants.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3242 initEAttribute(getConstants_FLAT_RATE_CIS_MONTHLY(), ecorePackage.getEDouble(), "FLAT_RATE_CIS_MONTHLY", "25.0", 1, 1, Constants.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3243 initEAttribute(getConstants_FLAT_RATE_CIS_YEARLY(), ecorePackage.getEDouble(), "FLAT_RATE_CIS_YEARLY", "300.0", 1, 1, Constants.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3244 initEAttribute(getConstants_FLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT(), ecorePackage.getEDouble(), "FLAT_RATE_FOR_TRAVEL_EXPENSE_PER_UNIT", "99.0", 1, 1, Constants.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3245 initEAttribute(getConstants_MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS(), ecorePackage.getEDouble(), "MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_DS", null, 1, 1, Constants.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3246 initEAttribute(getConstants_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE(), ecorePackage.getEDouble(), "FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE", null, 1, 1, Constants.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3247 initEAttribute(getConstants_DISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE(), ecorePackage.getEDouble(), "DISABILITY_FLAT_RATE_FOR_MISCELLANEOUS_EXPENSE", null, 1, 1, Constants.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3248 initEAttribute(getConstants_MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE(), ecorePackage.getEDouble(), "MAXIMUM_DEDUCTIBLE_AMOUNT_FOR_ADDITIONAL_PENSION_AND_INSURANCE", null, 1, 1, Constants.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3249
3250 initEClass(income_TaxEClass, Income_Tax.class, "Income_Tax", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3251 initEReference(getIncome_Tax_TaxPayer(), this.getTax_Payer(), null, "taxPayer", null, 1, 1, Income_Tax.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3252 initEAttribute(getIncome_Tax_Tax_amount(), ecorePackage.getEDouble(), "tax_amount", null, 1, 1, Income_Tax.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3253 initEAttribute(getIncome_Tax_Tax_year(), ecorePackage.getEInt(), "tax_year", null, 1, 1, Income_Tax.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3254 initEAttribute(getIncome_Tax_Id6(), ecorePackage.getEString(), "id6", null, 1, 1, Income_Tax.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3255
3256 initEClass(tax_PayerEClass, Tax_Payer.class, "Tax_Payer", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3257 initEReference(getTax_Payer_Dependents(), this.getDependent(), this.getDependent_Responsible_person(), "dependents", null, 0, 6, Tax_Payer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3258 initEReference(getTax_Payer_From_agent(), this.getFromAgent(), this.getFromAgent_TaxPayer(), "from_agent", null, 1, 1, Tax_Payer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3259 initEReference(getTax_Payer_Incomes(), this.getIncome(), this.getIncome_TaxPayer(), "incomes", null, 1, -1, Tax_Payer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3260 initEReference(getTax_Payer_From_law(), this.getFromLaw(), this.getFromLaw_TaxPayer(), "from_law", null, 1, 1, Tax_Payer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3261
3262 initEClass(physical_PersonEClass, Physical_Person.class, "Physical_Person", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3263 initEAttribute(getPhysical_Person_SSNo(), ecorePackage.getEString(), "SSNo", null, 1, 1, Physical_Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3264 initEReference(getPhysical_Person_Addresses(), this.getAddress(), this.getAddress_TaxPayer(), "addresses", 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);
3265 initEAttribute(getPhysical_Person_Birth_year(), ecorePackage.getEInt(), "birth_year", null, 1, 1, Physical_Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3266 initEAttribute(getPhysical_Person_Disability_percentage(), ecorePackage.getEDouble(), "disability_percentage", null, 1, 1, Physical_Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3267 initEAttribute(getPhysical_Person_Disability_type(), this.getDisability_Types(), "disability_type", null, 1, 1, Physical_Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3268 initEAttribute(getPhysical_Person_Birth_month(), ecorePackage.getEInt(), "birth_month", null, 1, 1, Physical_Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3269 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);
3270 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);
3271 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);
3272
3273 initEClass(addressEClass, Address.class, "Address", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3274 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);
3275 initEAttribute(getAddress_Street(), ecorePackage.getEString(), "street", null, 1, 1, Address.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3276 initEAttribute(getAddress_ZipCode(), ecorePackage.getEString(), "zipCode", null, 1, 1, Address.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3277 initEAttribute(getAddress_City(), ecorePackage.getEString(), "city", null, 1, 1, Address.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3278 initEAttribute(getAddress_Id2(), ecorePackage.getEString(), "id2", null, 1, 1, Address.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3279 initEReference(getAddress_TaxPayer(), this.getPhysical_Person(), this.getPhysical_Person_Addresses(), "taxPayer", null, 0, -1, Address.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3280
3281 initEClass(expenseEClass, Expense.class, "Expense", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3282 initEAttribute(getExpense_Declared_amount(), ecorePackage.getEDouble(), "declared_amount", null, 1, 1, Expense.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3283 initEAttribute(getExpense_Expense_purpose(), this.getExpense_Purpose(), "expense_purpose", "OTHER", 1, 1, Expense.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3284 initEReference(getExpense_Dependent(), this.getDependent(), this.getDependent_Expense(), "dependent", null, 0, 1, Expense.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3285 initEReference(getExpense_From_agent(), this.getFromAgent(), this.getFromAgent_Expense(), "from_agent", null, 0, 1, Expense.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3286 initEReference(getExpense_Income(), this.getIncome(), this.getIncome_Expenses(), "income", null, 1, 1, Expense.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3287 initEAttribute(getExpense_Id4(), ecorePackage.getEString(), "id4", null, 1, 1, Expense.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3288 initEReference(getExpense_Beneficiary(), this.getPhysical_Person(), this.getPhysical_Person_Expenses(), "beneficiary", null, 0, 1, Expense.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3289
3290 initEClass(dependentEClass, Dependent.class, "Dependent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3291 initEAttribute(getDependent_Dependent_type(), this.getDependent_Type(), "dependent_type", null, 1, 1, Dependent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3292 initEReference(getDependent_Responsible_person(), this.getTax_Payer(), this.getTax_Payer_Dependents(), "responsible_person", null, 0, 1, Dependent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3293 initEAttribute(getDependent_Continued_studies(), ecorePackage.getEBoolean(), "continued_studies", "false", 1, 1, Dependent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3294 initEReference(getDependent_Allowances(), this.getExternal_Allowance(), this.getExternal_Allowance_Person(), "allowances", null, 0, 1, Dependent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3295 initEReference(getDependent_Household(), this.getHousehold(), this.getHousehold_Children(), "household", null, 0, 1, Dependent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3296 initEReference(getDependent_From_agent(), this.getFromAgent(), this.getFromAgent_Dependent(), "from_agent", null, 0, 1, Dependent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3297 initEReference(getDependent_Expense(), this.getExpense(), this.getExpense_Dependent(), "expense", null, 0, -1, Dependent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3298
3299 initEClass(external_AllowanceEClass, External_Allowance.class, "External_Allowance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3300 initEAttribute(getExternal_Allowance_Grantor(), this.getGrantor(), "grantor", null, 1, 1, External_Allowance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3301 initEAttribute(getExternal_Allowance_Starting_year(), ecorePackage.getEInt(), "starting_year", null, 1, 1, External_Allowance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3302 initEAttribute(getExternal_Allowance_Ending_year(), ecorePackage.getEInt(), "ending_year", null, 1, 1, External_Allowance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3303 initEReference(getExternal_Allowance_Reciver(), this.getPhysical_Person(), null, "reciver", null, 1, 1, External_Allowance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3304 initEAttribute(getExternal_Allowance_Id5(), ecorePackage.getEString(), "id5", null, 1, 1, External_Allowance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3305 initEReference(getExternal_Allowance_Person(), this.getDependent(), this.getDependent_Allowances(), "person", null, 1, 1, External_Allowance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3306
3307 initEClass(householdEClass, Household.class, "Household", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3308 initEReference(getHousehold_Parents(), this.getLegal_Union_Record(), this.getLegal_Union_Record_Household(), "parents", null, 1, 1, Household.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3309 initEAttribute(getHousehold_Id1(), ecorePackage.getEString(), "id1", null, 1, 1, Household.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3310 initEReference(getHousehold_Children(), this.getDependent(), this.getDependent_Household(), "children", null, 0, -1, Household.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3311
3312 initEClass(legal_Union_RecordEClass, Legal_Union_Record.class, "Legal_Union_Record", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3313 initEAttribute(getLegal_Union_Record_Start_year(), ecorePackage.getEInt(), "start_year", null, 1, 1, Legal_Union_Record.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3314 initEAttribute(getLegal_Union_Record_End_year(), ecorePackage.getEInt(), "end_year", null, 1, 1, Legal_Union_Record.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3315 initEAttribute(getLegal_Union_Record_Separation_cause(), this.getSeparation_Causes(), "separation_cause", null, 1, 1, Legal_Union_Record.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3316 initEReference(getLegal_Union_Record_Individual_A(), this.getPhysical_Person(), null, "individual_A", null, 1, 1, Legal_Union_Record.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3317 initEReference(getLegal_Union_Record_Individual_B(), this.getPhysical_Person(), null, "individual_B", null, 1, -1, Legal_Union_Record.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3318 initEReference(getLegal_Union_Record_Properties(), this.getTax_Property(), this.getTax_Property_Union_record(), "properties", null, 1, -1, Legal_Union_Record.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3319 initEAttribute(getLegal_Union_Record_Mutual_agreement(), ecorePackage.getEBoolean(), "mutual_agreement", null, 1, 1, Legal_Union_Record.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3320 initEAttribute(getLegal_Union_Record_Id9(), ecorePackage.getEString(), "id9", null, 1, 1, Legal_Union_Record.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3321 initEReference(getLegal_Union_Record_Household(), this.getHousehold(), this.getHousehold_Parents(), "household", null, 1, 1, Legal_Union_Record.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3322
3323 initEClass(tax_PropertyEClass, Tax_Property.class, "Tax_Property", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3324 initEAttribute(getTax_Property_Starting_year(), ecorePackage.getEInt(), "starting_year", null, 1, 1, Tax_Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3325 initEAttribute(getTax_Property_Id10(), ecorePackage.getEString(), "id10", null, 1, 1, Tax_Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3326 initEReference(getTax_Property_Union_record(), this.getLegal_Union_Record(), this.getLegal_Union_Record_Properties(), "union_record", null, 1, 1, Tax_Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3327
3328 initEClass(tax_CaseEClass, Tax_Case.class, "Tax_Case", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3329
3330 initEClass(fromAgentEClass, FromAgent.class, "FromAgent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3331 initEReference(getFromAgent_TaxPayer(), this.getTax_Payer(), this.getTax_Payer_From_agent(), "taxPayer", null, 1, 1, FromAgent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3332 initEAttribute(getFromAgent_Is_dependent_eligible_for_CE_Not_In_Houshold_Children_Care(), ecorePackage.getEBoolean(), "is_dependent_eligible_for_CE_Not_In_Houshold_Children_Care", null, 1, 1, FromAgent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3333 initEReference(getFromAgent_Expense(), this.getExpense(), this.getExpense_From_agent(), "expense", null, 0, 1, FromAgent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3334 initEAttribute(getFromAgent_Is_eligible_debt(), ecorePackage.getEBoolean(), "is_eligible_debt", null, 1, 1, FromAgent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3335 initEReference(getFromAgent_Dependent(), this.getDependent(), this.getDependent_From_agent(), "dependent", null, 0, 1, FromAgent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3336
3337 initEClass(incomeEClass, Income.class, "Income", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3338 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);
3339 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);
3340 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);
3341 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);
3342 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);
3343 initEReference(getIncome_Details(), this.getIncome_Detail(), this.getIncome_Detail_Income(), "details", null, 12, 12, Income.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3344 initEAttribute(getIncome_Num(), ecorePackage.getEInt(), "num", null, 1, 1, Income.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3345 initEReference(getIncome_Expenses(), this.getExpense(), this.getExpense_Income(), "expenses", null, 0, -1, Income.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3346
3347 initEClass(income_TypeEClass, Income_Type.class, "Income_Type", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3348 initEAttribute(getIncome_Type_Id8(), ecorePackage.getEString(), "id8", null, 1, 1, Income_Type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3349 initEReference(getIncome_Type_Income(), this.getIncome(), this.getIncome_Income_type(), "income", null, 1, 1, Income_Type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3350
3351 initEClass(tax_CardEClass, Tax_Card.class, "Tax_Card", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3352 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);
3353 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);
3354 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);
3355 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);
3356 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);
3357 initEReference(getTax_Card_Tax_payers_address(), this.getAddress(), null, "tax_payers_address", null, 0, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3358 initEAttribute(getTax_Card_Jobs_Employer_SSNo(), ecorePackage.getEString(), "jobs_Employer_SSNo", null, 0, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3359 initEAttribute(getTax_Card_Jobs_employers_name(), ecorePackage.getEString(), "jobs_employers_name", null, 0, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3360 initEAttribute(getTax_Card_Jobs_activity_type(), this.getJob_Activity(), "jobs_activity_type", null, 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3361 initEAttribute(getTax_Card_Jobs_place_of_work(), this.getTown(), "jobs_place_of_work", null, 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3362 initEAttribute(getTax_Card_Deduction_FD_daily(), ecorePackage.getEDouble(), "deduction_FD_daily", "0.0", 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3363 initEAttribute(getTax_Card_Deduction_FD_monthly(), ecorePackage.getEDouble(), "deduction_FD_monthly", "0.0", 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3364 initEAttribute(getTax_Card_Deduction_AC_daily(), ecorePackage.getEDouble(), "deduction_AC_daily", "0.0", 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3365 initEAttribute(getTax_Card_Deduction_AC_monthly(), ecorePackage.getEDouble(), "deduction_AC_monthly", "0.0", 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3366 initEAttribute(getTax_Card_Deduction_AC_yearly(), ecorePackage.getEDouble(), "deduction_AC_yearly", "0.0", 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3367 initEAttribute(getTax_Card_Deduction_CE_daily(), ecorePackage.getEDouble(), "deduction_CE_daily", "0.0", 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3368 initEAttribute(getTax_Card_Deduction_CE_monthly(), ecorePackage.getEDouble(), "deduction_CE_monthly", "0.0", 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3369 initEAttribute(getTax_Card_Deduction_CE_yearly(), ecorePackage.getEDouble(), "deduction_CE_yearly", "0.0", 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3370 initEAttribute(getTax_Card_Deduction_DS_daily(), ecorePackage.getEDouble(), "deduction_DS_daily", "0.0", 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3371 initEAttribute(getTax_Card_Deduction_DS_monthly(), ecorePackage.getEDouble(), "deduction_DS_monthly", "0.0", 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3372 initEAttribute(getTax_Card_Deduction_FO_daily(), ecorePackage.getEDouble(), "deduction_FO_daily", "0.0", 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3373 initEAttribute(getTax_Card_Deduction_FO_monthly(), ecorePackage.getEDouble(), "deduction_FO_monthly", "0.0", 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3374 initEAttribute(getTax_Card_Deduction_FO_yearly(), ecorePackage.getEDouble(), "deduction_FO_yearly", "0.0", 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3375 initEAttribute(getTax_Card_Credit_CIS_daily(), ecorePackage.getEDouble(), "credit_CIS_daily", "0.0", 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3376 initEAttribute(getTax_Card_Credit_CIS_monthly(), ecorePackage.getEDouble(), "credit_CIS_monthly", "0.0", 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3377 initEAttribute(getTax_Card_Credit_CIM_daily(), ecorePackage.getEDouble(), "credit_CIM_daily", "0.0", 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3378 initEAttribute(getTax_Card_Validity(), ecorePackage.getEBoolean(), "validity", null, 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3379 initEReference(getTax_Card_Income_Tax_Credit(), this.getIncome_Tax_Credit(), this.getIncome_Tax_Credit_Taxation_Frame(), "income_Tax_Credit", null, 0, -1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3380 initEReference(getTax_Card_Previous(), this.getTax_Card(), this.getTax_Card_Current_tax_card(), "previous", null, 0, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3381 initEReference(getTax_Card_Current_tax_card(), this.getTax_Card(), this.getTax_Card_Previous(), "current_tax_card", null, 0, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3382 initEAttribute(getTax_Card_Credit_CIM_yearly(), ecorePackage.getEDouble(), "credit_CIM_yearly", null, 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3383 initEAttribute(getTax_Card_Deduction_DS_Alimony_yearly(), ecorePackage.getEDouble(), "deduction_DS_Alimony_yearly", null, 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3384 initEAttribute(getTax_Card_Deduction_DS_Debt_yearly(), ecorePackage.getEDouble(), "deduction_DS_Debt_yearly", null, 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3385 initEReference(getTax_Card_Income(), this.getIncome(), this.getIncome_Tax_card(), "income", null, 1, 1, Tax_Card.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3386
3387 initEClass(income_Tax_CreditEClass, Income_Tax_Credit.class, "Income_Tax_Credit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3388 initEAttribute(getIncome_Tax_Credit_GrantedBy(), this.getGrantor(), "grantedBy", null, 1, 1, Income_Tax_Credit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3389 initEReference(getIncome_Tax_Credit_TaxPayer(), this.getTax_Payer(), null, "taxPayer", null, 0, 1, Income_Tax_Credit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3390 initEAttribute(getIncome_Tax_Credit_Tax_year(), ecorePackage.getEInt(), "tax_year", null, 1, 1, Income_Tax_Credit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3391 initEAttribute(getIncome_Tax_Credit_Yearly(), ecorePackage.getEDouble(), "yearly", "300.0", 1, 1, Income_Tax_Credit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3392 initEAttribute(getIncome_Tax_Credit_Monthly(), ecorePackage.getEDouble(), "monthly", "25.0", 1, 1, Income_Tax_Credit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3393 initEAttribute(getIncome_Tax_Credit_Daily(), ecorePackage.getEDouble(), "daily", "1.0", 1, 1, Income_Tax_Credit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3394 initEAttribute(getIncome_Tax_Credit_Id7(), ecorePackage.getEString(), "id7", null, 1, 1, Income_Tax_Credit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3395 initEReference(getIncome_Tax_Credit_Taxation_Frame(), this.getTax_Card(), this.getTax_Card_Income_Tax_Credit(), "taxation_Frame", null, 0, 1, Income_Tax_Credit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3396
3397 initEClass(income_DetailEClass, Income_Detail.class, "Income_Detail", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3398 initEAttribute(getIncome_Detail_Amount(), ecorePackage.getEDouble(), "amount", null, 1, 1, Income_Detail.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3399 initEAttribute(getIncome_Detail_Is_worked(), ecorePackage.getEBoolean(), "is_worked", null, 1, 1, Income_Detail.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3400 initEAttribute(getIncome_Detail_Distance(), ecorePackage.getEDouble(), "distance", null, 1, 1, Income_Detail.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3401 initEAttribute(getIncome_Detail_Worked_days(), ecorePackage.getEInt(), "worked_days", null, 1, 1, Income_Detail.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3402 initEAttribute(getIncome_Detail_Is_contributing_CNS(), ecorePackage.getEBoolean(), "is_contributing_CNS", null, 1, 1, Income_Detail.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3403 initEAttribute(getIncome_Detail_Id5(), ecorePackage.getEString(), "id5", null, 1, 1, Income_Detail.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3404 initEReference(getIncome_Detail_Income(), this.getIncome(), this.getIncome_Details(), "income", null, 1, 1, Income_Detail.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3405
3406 initEClass(fromLawEClass, FromLaw.class, "FromLaw", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3407 initEAttribute(getFromLaw_Id(), ecorePackage.getEString(), "id", null, 1, 1, FromLaw.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
3408 initEReference(getFromLaw_TaxPayer(), this.getTax_Payer(), this.getTax_Payer_From_law(), "taxPayer", null, 1, 1, FromLaw.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3409
3410 initEClass(fiscal_AddressEClass, Fiscal_Address.class, "Fiscal_Address", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3411
3412 initEClass(habitual_AddressEClass, Habitual_Address.class, "Habitual_Address", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3413
3414 initEClass(marriage_RecordEClass, Marriage_Record.class, "Marriage_Record", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3415
3416 initEClass(non_Resident_Tax_PayerEClass, Non_Resident_Tax_Payer.class, "Non_Resident_Tax_Payer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3417 initEAttribute(getNon_Resident_Tax_Payer_Is_assimilated_to_resident(), ecorePackage.getEBoolean(), "is_assimilated_to_resident", "false", 1, 1, Non_Resident_Tax_Payer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3418
3419 initEClass(partnership_RecordEClass, Partnership_Record.class, "Partnership_Record", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3420
3421 initEClass(resident_Tax_PayerEClass, Resident_Tax_Payer.class, "Resident_Tax_Payer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3422
3423 initEClass(trade_and_Business_IncomeEClass, Trade_and_Business_Income.class, "Trade_and_Business_Income", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3424
3425 initEClass(agriculture_and_Forestry_IncomeEClass, Agriculture_and_Forestry_Income.class, "Agriculture_and_Forestry_Income", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3426
3427 initEClass(pensions_and_Annuities_IncomeEClass, Pensions_and_Annuities_Income.class, "Pensions_and_Annuities_Income", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3428 initEAttribute(getPensions_and_Annuities_Income_Occasional_payement(), ecorePackage.getEBoolean(), "occasional_payement", "false", 0, 1, Pensions_and_Annuities_Income.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3429
3430 initEClass(capital_and_Investments_IncomeEClass, Capital_and_Investments_Income.class, "Capital_and_Investments_Income", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3431
3432 initEClass(employment_IncomeEClass, Employment_Income.class, "Employment_Income", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3433
3434 initEClass(rentals_and_Leases_IncomeEClass, Rentals_and_Leases_Income.class, "Rentals_and_Leases_Income", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3435 initEAttribute(getRentals_and_Leases_Income_Is_periodic(), ecorePackage.getEBoolean(), "is_periodic", "true", 1, 1, Rentals_and_Leases_Income.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3436
3437 initEClass(foreign_IncomeEClass, Foreign_Income.class, "Foreign_Income", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3438
3439 initEClass(local_IncomeEClass, Local_Income.class, "Local_Income", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3440
3441 initEClass(cimEClass, TaxationWithRoot.CIM.class, "CIM", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3442
3443 initEClass(cipEClass, TaxationWithRoot.CIP.class, "CIP", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3444
3445 initEClass(cisEClass, TaxationWithRoot.CIS.class, "CIS", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3446
3447 initEClass(permanent_ExpenseEClass, Permanent_Expense.class, "Permanent_Expense", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3448 initEAttribute(getPermanent_Expense_Category(), this.getCategory_of_Permanent_Expense(), "category", null, 1, 1, Permanent_Expense.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3449
3450 initEClass(special_Expense_DSEClass, Special_Expense_DS.class, "Special_Expense_DS", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3451
3452 initEClass(interest_ExpenseEClass, Interest_Expense.class, "Interest_Expense", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3453
3454 initEClass(private_Insurance_and_PlanEClass, Private_Insurance_and_Plan.class, "Private_Insurance_and_Plan", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3455 initEAttribute(getPrivate_Insurance_and_Plan_Category(), this.getCategory_of_Private_Insurance_and_Plan(), "category", null, 1, 1, Private_Insurance_and_Plan.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3456 initEAttribute(getPrivate_Insurance_and_Plan_Duration_of_contract(), ecorePackage.getEInt(), "duration_of_contract", null, 1, 1, Private_Insurance_and_Plan.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3457
3458 initEClass(health_and_Pension_InsuranceEClass, Health_and_Pension_Insurance.class, "Health_and_Pension_Insurance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3459 initEAttribute(getHealth_and_Pension_Insurance_Category(), this.getCategory_of_Health_and_Pension_Insurances(), "category", null, 1, 1, Health_and_Pension_Insurance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3460 initEAttribute(getHealth_and_Pension_Insurance_Is_related_to_additional_salary(), ecorePackage.getEBoolean(), "is_related_to_additional_salary", "false", 1, 1, Health_and_Pension_Insurance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3461
3462 initEClass(donationEClass, Donation.class, "Donation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3463 initEAttribute(getDonation_Beneficiary1(), ecorePackage.getEString(), "beneficiary1", null, 1, 1, Donation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3464 initEAttribute(getDonation_Is_donation_reported(), ecorePackage.getEBoolean(), "is_donation_reported", null, 1, 1, Donation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3465
3466 initEClass(loss_CarryforwardEClass, Loss_Carryforward.class, "Loss_Carryforward", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3467
3468 initEClass(spousal_Expense_ACEClass, Spousal_Expense_AC.class, "Spousal_Expense_AC", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3469
3470 initEClass(extraordinary_Expense_CEEClass, Extraordinary_Expense_CE.class, "Extraordinary_Expense_CE", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3471 initEAttribute(getExtraordinary_Expense_CE_Thresholded_deduction_percentage(), ecorePackage.getEDouble(), "thresholded_deduction_percentage", null, 1, 1, Extraordinary_Expense_CE.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3472 initEAttribute(getExtraordinary_Expense_CE_Ce_type(), this.getCE_Type(), "ce_type", null, 1, 1, Extraordinary_Expense_CE.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3473
3474 initEClass(travel_Expense_FDEClass, Travel_Expense_FD.class, "Travel_Expense_FD", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3475
3476 initEClass(professional_ExpenseEClass, Professional_Expense.class, "Professional_Expense", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3477
3478 initEClass(miscellaneous_Expense_FOEClass, Miscellaneous_Expense_FO.class, "Miscellaneous_Expense_FO", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3479
3480 initEClass(resourceEClass, Resource.class, "Resource", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
3481 initEReference(getResource_Contains(), this.getHousehold(), null, "contains", null, 0, -1, Resource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
3482
3483 // Initialize enums and add enum literals
3484 initEEnum(grantorEEnum, Grantor.class, "Grantor");
3485 addEEnumLiteral(grantorEEnum, Grantor.WWW);
3486 addEEnumLiteral(grantorEEnum, Grantor.EMPLOYER);
3487 addEEnumLiteral(grantorEEnum, Grantor.MMM);
3488 addEEnumLiteral(grantorEEnum, Grantor.UUU);
3489 addEEnumLiteral(grantorEEnum, Grantor.YYY);
3490 addEEnumLiteral(grantorEEnum, Grantor.OOO);
3491
3492 initEEnum(disability_TypesEEnum, Disability_Types.class, "Disability_Types");
3493 addEEnumLiteral(disability_TypesEEnum, Disability_Types.BEUG);
3494 addEEnumLiteral(disability_TypesEEnum, Disability_Types.NONE);
3495 addEEnumLiteral(disability_TypesEEnum, Disability_Types.A);
3496 addEEnumLiteral(disability_TypesEEnum, Disability_Types.B);
3497 addEEnumLiteral(disability_TypesEEnum, Disability_Types.C);
3498 addEEnumLiteral(disability_TypesEEnum, Disability_Types.D);
3499 addEEnumLiteral(disability_TypesEEnum, Disability_Types.E);
3500 addEEnumLiteral(disability_TypesEEnum, Disability_Types.OTHER);
3501
3502 initEEnum(countryEEnum, Country.class, "Country");
3503 addEEnumLiteral(countryEEnum, Country.ZZ);
3504 addEEnumLiteral(countryEEnum, Country.FF);
3505 addEEnumLiteral(countryEEnum, Country.BB);
3506 addEEnumLiteral(countryEEnum, Country.DD);
3507 addEEnumLiteral(countryEEnum, Country.NN);
3508 addEEnumLiteral(countryEEnum, Country.OTHER);
3509
3510 initEEnum(tax_OfficeEEnum, Tax_Office.class, "Tax_Office");
3511 addEEnumLiteral(tax_OfficeEEnum, Tax_Office.RTS_2);
3512 addEEnumLiteral(tax_OfficeEEnum, Tax_Office.RTS_3);
3513 addEEnumLiteral(tax_OfficeEEnum, Tax_Office.RTS_4);
3514 addEEnumLiteral(tax_OfficeEEnum, Tax_Office.RTS_5);
3515
3516 initEEnum(tax_Class_CategoryEEnum, Tax_Class_Category.class, "Tax_Class_Category");
3517 addEEnumLiteral(tax_Class_CategoryEEnum, Tax_Class_Category.ONE);
3518 addEEnumLiteral(tax_Class_CategoryEEnum, Tax_Class_Category.ONE_A);
3519 addEEnumLiteral(tax_Class_CategoryEEnum, Tax_Class_Category.TWO);
3520
3521 initEEnum(job_ActivityEEnum, Job_Activity.class, "Job_Activity");
3522 addEEnumLiteral(job_ActivityEEnum, Job_Activity.SALARY);
3523 addEEnumLiteral(job_ActivityEEnum, Job_Activity.PENSION);
3524 addEEnumLiteral(job_ActivityEEnum, Job_Activity.ANNUITY);
3525
3526 initEEnum(townEEnum, Town.class, "Town");
3527 addEEnumLiteral(townEEnum, Town.LL);
3528 addEEnumLiteral(townEEnum, Town.BB);
3529 addEEnumLiteral(townEEnum, Town.SS);
3530 addEEnumLiteral(townEEnum, Town.TT);
3531 addEEnumLiteral(townEEnum, Town.OTHER);
3532
3533 initEEnum(cE_TypeEEnum, CE_Type.class, "CE_Type");
3534 addEEnumLiteral(cE_TypeEEnum, CE_Type.INALIDITY_AND_INFIRMITY);
3535 addEEnumLiteral(cE_TypeEEnum, CE_Type.DEPENDENCE_AND_CARE_EXCLUDING_CHLIDREN_NOT_PART_OF_HOUSEHOLD);
3536 addEEnumLiteral(cE_TypeEEnum, CE_Type.CARE_FOR_CHILDREN_NOT_BEING_PART_OF_HOUSEHOLD);
3537
3538 initEEnum(expense_PurposeEEnum, Expense_Purpose.class, "Expense_Purpose");
3539 addEEnumLiteral(expense_PurposeEEnum, Expense_Purpose.HOUSE_CARE);
3540 addEEnumLiteral(expense_PurposeEEnum, Expense_Purpose.CHILD_CARE);
3541 addEEnumLiteral(expense_PurposeEEnum, Expense_Purpose.DEPENDENCE_CARE);
3542 addEEnumLiteral(expense_PurposeEEnum, Expense_Purpose.OTHER);
3543 addEEnumLiteral(expense_PurposeEEnum, Expense_Purpose.ALIMONY);
3544 addEEnumLiteral(expense_PurposeEEnum, Expense_Purpose.RECURRENT_DEPT);
3545
3546 initEEnum(dependent_TypeEEnum, Dependent_Type.class, "Dependent_Type");
3547 addEEnumLiteral(dependent_TypeEEnum, Dependent_Type.CHILD);
3548 addEEnumLiteral(dependent_TypeEEnum, Dependent_Type.SPOUSE);
3549 addEEnumLiteral(dependent_TypeEEnum, Dependent_Type.RELATIVE);
3550 addEEnumLiteral(dependent_TypeEEnum, Dependent_Type.OTHER_FAMILY_MEMBER);
3551 addEEnumLiteral(dependent_TypeEEnum, Dependent_Type.NOT_OWN_CHILD);
3552
3553 initEEnum(separation_CausesEEnum, Separation_Causes.class, "Separation_Causes");
3554 addEEnumLiteral(separation_CausesEEnum, Separation_Causes.NONE);
3555 addEEnumLiteral(separation_CausesEEnum, Separation_Causes.DIVORCE);
3556 addEEnumLiteral(separation_CausesEEnum, Separation_Causes.SEPARATION_DE_FAIT);
3557 addEEnumLiteral(separation_CausesEEnum, Separation_Causes.SEPARATION_BY_COURT);
3558
3559 initEEnum(category_of_Permanent_ExpenseEEnum, Category_of_Permanent_Expense.class, "Category_of_Permanent_Expense");
3560 addEEnumLiteral(category_of_Permanent_ExpenseEEnum, Category_of_Permanent_Expense.MISCELLANEOUS_DEBT);
3561 addEEnumLiteral(category_of_Permanent_ExpenseEEnum, Category_of_Permanent_Expense.ALIMONY);
3562
3563 initEEnum(category_of_Health_and_Pension_InsurancesEEnum, Category_of_Health_and_Pension_Insurances.class, "Category_of_Health_and_Pension_Insurances");
3564 addEEnumLiteral(category_of_Health_and_Pension_InsurancesEEnum, Category_of_Health_and_Pension_Insurances.MANDATORY_HEALTH_AND_PENSION_INSURANCE);
3565 addEEnumLiteral(category_of_Health_and_Pension_InsurancesEEnum, Category_of_Health_and_Pension_Insurances.ADDITIONAL_EMPLOYERS_PENSION_INSURANCE);
3566 addEEnumLiteral(category_of_Health_and_Pension_InsurancesEEnum, Category_of_Health_and_Pension_Insurances.CONTINUED_HEALTH_AND_PENSION_INSURANCE);
3567
3568 initEEnum(category_of_Private_Insurance_and_PlanEEnum, Category_of_Private_Insurance_and_Plan.class, "Category_of_Private_Insurance_and_Plan");
3569 addEEnumLiteral(category_of_Private_Insurance_and_PlanEEnum, Category_of_Private_Insurance_and_Plan.PRIVATE_INSURANCE);
3570 addEEnumLiteral(category_of_Private_Insurance_and_PlanEEnum, Category_of_Private_Insurance_and_Plan.PRIVATE_LIFE_INSURANCE);
3571 addEEnumLiteral(category_of_Private_Insurance_and_PlanEEnum, Category_of_Private_Insurance_and_Plan.COMPANY_MEMBERS_PRIVATE_INSURANCE);
3572 addEEnumLiteral(category_of_Private_Insurance_and_PlanEEnum, Category_of_Private_Insurance_and_Plan.HOUSING_SAVING_PLAN);
3573 addEEnumLiteral(category_of_Private_Insurance_and_PlanEEnum, Category_of_Private_Insurance_and_Plan.OLD_AGE_PENSION_PLAN);
3574
3575 initEEnum(legal_Union_TypesEEnum, Legal_Union_Types.class, "Legal_Union_Types");
3576 addEEnumLiteral(legal_Union_TypesEEnum, Legal_Union_Types.MARIAGE);
3577 addEEnumLiteral(legal_Union_TypesEEnum, Legal_Union_Types.PARTNERSHIP);
3578 addEEnumLiteral(legal_Union_TypesEEnum, Legal_Union_Types.OTHER);
3579
3580 // Create resource
3581 createResource(eNS_URI);
3582
3583 // Create annotations
3584 // http://www.eclipse.org/OCL/Import
3585 createImportAnnotations();
3586 // duplicates
3587 createDuplicatesAnnotations();
3588 // http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName
3589 createEmofAnnotations();
3590 // http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot
3591 createPivotAnnotations();
3592 }
3593
3594 /**
3595 * Initializes the annotations for <b>http://www.eclipse.org/OCL/Import</b>.
3596 * <!-- begin-user-doc -->
3597 * <!-- end-user-doc -->
3598 * @generated
3599 */
3600 protected void createImportAnnotations() {
3601 String source = "http://www.eclipse.org/OCL/Import";
3602 addAnnotation
3603 (this,
3604 source,
3605 new String[] {
3606 "ecore", "http://www.eclipse.org/emf/2002/Ecore"
3607 });
3608 }
3609
3610 /**
3611 * Initializes the annotations for <b>duplicates</b>.
3612 * <!-- begin-user-doc -->
3613 * <!-- end-user-doc -->
3614 * @generated
3615 */
3616 protected void createDuplicatesAnnotations() {
3617 String source = "duplicates";
3618 addAnnotation
3619 (tax_PayerEClass,
3620 source,
3621 new String[] {
3622 });
3623 }
3624
3625 /**
3626 * Initializes the annotations for <b>http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName</b>.
3627 * <!-- begin-user-doc -->
3628 * <!-- end-user-doc -->
3629 * @generated
3630 */
3631 protected void createEmofAnnotations() {
3632 String source = "http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName";
3633 addAnnotation
3634 (getLegal_Union_Record_Individual_A(),
3635 source,
3636 new String[] {
3637 "body", "legal_union_A"
3638 });
3639 addAnnotation
3640 (getLegal_Union_Record_Individual_B(),
3641 source,
3642 new String[] {
3643 "body", "legal_union_B"
3644 });
3645 }
3646
3647 /**
3648 * Initializes the annotations for <b>http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot</b>.
3649 * <!-- begin-user-doc -->
3650 * <!-- end-user-doc -->
3651 * @generated
3652 */
3653 protected void createPivotAnnotations() {
3654 String source = "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot";
3655 addAnnotation
3656 (getIncome_Income_amount(),
3657 source,
3658 new String[] {
3659 "derivation", "let non_null_amounts:OrderedSet(Income_Detail)=self.details->select(det:Income_Detail|det.amount>0)->asOrderedSet() in\nnon_null_amounts->collect(amount)->min()"
3660 });
3661 }
3662
3663} //TaxationWithRootPackageImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Trade_and_Business_IncomeImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Trade_and_Business_IncomeImpl.java
new file mode 100644
index 00000000..5c85d666
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Trade_and_Business_IncomeImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.TaxationWithRootPackage;
6import TaxationWithRoot.Trade_and_Business_Income;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Trade and Business Income</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class Trade_and_Business_IncomeImpl extends Income_TypeImpl implements Trade_and_Business_Income {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected Trade_and_Business_IncomeImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return TaxationWithRootPackage.Literals.TRADE_AND_BUSINESS_INCOME;
35 }
36
37} //Trade_and_Business_IncomeImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Travel_Expense_FDImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Travel_Expense_FDImpl.java
new file mode 100644
index 00000000..cfa52929
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/impl/Travel_Expense_FDImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package TaxationWithRoot.impl;
4
5import TaxationWithRoot.TaxationWithRootPackage;
6import TaxationWithRoot.Travel_Expense_FD;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Travel Expense FD</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class Travel_Expense_FDImpl extends Professional_ExpenseImpl implements Travel_Expense_FD {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected Travel_Expense_FDImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return TaxationWithRootPackage.Literals.TRAVEL_EXPENSE_FD;
35 }
36
37} //Travel_Expense_FDImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/util/TaxationWithRootAdapterFactory.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/util/TaxationWithRootAdapterFactory.java
new file mode 100644
index 00000000..bc6cd6e2
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/util/TaxationWithRootAdapterFactory.java
@@ -0,0 +1,984 @@
1/**
2 */
3package TaxationWithRoot.util;
4
5import TaxationWithRoot.*;
6
7import org.eclipse.emf.common.notify.Adapter;
8import org.eclipse.emf.common.notify.Notifier;
9
10import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
11
12import org.eclipse.emf.ecore.EObject;
13
14/**
15 * <!-- begin-user-doc -->
16 * The <b>Adapter Factory</b> for the model.
17 * It provides an adapter <code>createXXX</code> method for each class of the model.
18 * <!-- end-user-doc -->
19 * @see TaxationWithRoot.TaxationWithRootPackage
20 * @generated
21 */
22public class TaxationWithRootAdapterFactory extends AdapterFactoryImpl {
23 /**
24 * The cached model package.
25 * <!-- begin-user-doc -->
26 * <!-- end-user-doc -->
27 * @generated
28 */
29 protected static TaxationWithRootPackage modelPackage;
30
31 /**
32 * Creates an instance of the adapter factory.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @generated
36 */
37 public TaxationWithRootAdapterFactory() {
38 if (modelPackage == null) {
39 modelPackage = TaxationWithRootPackage.eINSTANCE;
40 }
41 }
42
43 /**
44 * Returns whether this factory is applicable for the type of the object.
45 * <!-- begin-user-doc -->
46 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
47 * <!-- end-user-doc -->
48 * @return whether this factory is applicable for the type of the object.
49 * @generated
50 */
51 @Override
52 public boolean isFactoryForType(Object object) {
53 if (object == modelPackage) {
54 return true;
55 }
56 if (object instanceof EObject) {
57 return ((EObject)object).eClass().getEPackage() == modelPackage;
58 }
59 return false;
60 }
61
62 /**
63 * The switch that delegates to the <code>createXXX</code> methods.
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @generated
67 */
68 protected TaxationWithRootSwitch<Adapter> modelSwitch =
69 new TaxationWithRootSwitch<Adapter>() {
70 @Override
71 public Adapter caseConstants(Constants object) {
72 return createConstantsAdapter();
73 }
74 @Override
75 public Adapter caseIncome_Tax(Income_Tax object) {
76 return createIncome_TaxAdapter();
77 }
78 @Override
79 public Adapter caseTax_Payer(Tax_Payer object) {
80 return createTax_PayerAdapter();
81 }
82 @Override
83 public Adapter casePhysical_Person(Physical_Person object) {
84 return createPhysical_PersonAdapter();
85 }
86 @Override
87 public Adapter caseAddress(Address object) {
88 return createAddressAdapter();
89 }
90 @Override
91 public Adapter caseExpense(Expense object) {
92 return createExpenseAdapter();
93 }
94 @Override
95 public Adapter caseDependent(Dependent object) {
96 return createDependentAdapter();
97 }
98 @Override
99 public Adapter caseExternal_Allowance(External_Allowance object) {
100 return createExternal_AllowanceAdapter();
101 }
102 @Override
103 public Adapter caseHousehold(Household object) {
104 return createHouseholdAdapter();
105 }
106 @Override
107 public Adapter caseLegal_Union_Record(Legal_Union_Record object) {
108 return createLegal_Union_RecordAdapter();
109 }
110 @Override
111 public Adapter caseTax_Property(Tax_Property object) {
112 return createTax_PropertyAdapter();
113 }
114 @Override
115 public Adapter caseTax_Case(Tax_Case object) {
116 return createTax_CaseAdapter();
117 }
118 @Override
119 public Adapter caseFromAgent(FromAgent object) {
120 return createFromAgentAdapter();
121 }
122 @Override
123 public Adapter caseIncome(Income object) {
124 return createIncomeAdapter();
125 }
126 @Override
127 public Adapter caseIncome_Type(Income_Type object) {
128 return createIncome_TypeAdapter();
129 }
130 @Override
131 public Adapter caseTax_Card(Tax_Card object) {
132 return createTax_CardAdapter();
133 }
134 @Override
135 public Adapter caseIncome_Tax_Credit(Income_Tax_Credit object) {
136 return createIncome_Tax_CreditAdapter();
137 }
138 @Override
139 public Adapter caseIncome_Detail(Income_Detail object) {
140 return createIncome_DetailAdapter();
141 }
142 @Override
143 public Adapter caseFromLaw(FromLaw object) {
144 return createFromLawAdapter();
145 }
146 @Override
147 public Adapter caseFiscal_Address(Fiscal_Address object) {
148 return createFiscal_AddressAdapter();
149 }
150 @Override
151 public Adapter caseHabitual_Address(Habitual_Address object) {
152 return createHabitual_AddressAdapter();
153 }
154 @Override
155 public Adapter caseMarriage_Record(Marriage_Record object) {
156 return createMarriage_RecordAdapter();
157 }
158 @Override
159 public Adapter caseNon_Resident_Tax_Payer(Non_Resident_Tax_Payer object) {
160 return createNon_Resident_Tax_PayerAdapter();
161 }
162 @Override
163 public Adapter casePartnership_Record(Partnership_Record object) {
164 return createPartnership_RecordAdapter();
165 }
166 @Override
167 public Adapter caseResident_Tax_Payer(Resident_Tax_Payer object) {
168 return createResident_Tax_PayerAdapter();
169 }
170 @Override
171 public Adapter caseTrade_and_Business_Income(Trade_and_Business_Income object) {
172 return createTrade_and_Business_IncomeAdapter();
173 }
174 @Override
175 public Adapter caseAgriculture_and_Forestry_Income(Agriculture_and_Forestry_Income object) {
176 return createAgriculture_and_Forestry_IncomeAdapter();
177 }
178 @Override
179 public Adapter casePensions_and_Annuities_Income(Pensions_and_Annuities_Income object) {
180 return createPensions_and_Annuities_IncomeAdapter();
181 }
182 @Override
183 public Adapter caseCapital_and_Investments_Income(Capital_and_Investments_Income object) {
184 return createCapital_and_Investments_IncomeAdapter();
185 }
186 @Override
187 public Adapter caseEmployment_Income(Employment_Income object) {
188 return createEmployment_IncomeAdapter();
189 }
190 @Override
191 public Adapter caseRentals_and_Leases_Income(Rentals_and_Leases_Income object) {
192 return createRentals_and_Leases_IncomeAdapter();
193 }
194 @Override
195 public Adapter caseForeign_Income(Foreign_Income object) {
196 return createForeign_IncomeAdapter();
197 }
198 @Override
199 public Adapter caseLocal_Income(Local_Income object) {
200 return createLocal_IncomeAdapter();
201 }
202 @Override
203 public Adapter caseCIM(CIM object) {
204 return createCIMAdapter();
205 }
206 @Override
207 public Adapter caseCIP(CIP object) {
208 return createCIPAdapter();
209 }
210 @Override
211 public Adapter caseCIS(CIS object) {
212 return createCISAdapter();
213 }
214 @Override
215 public Adapter casePermanent_Expense(Permanent_Expense object) {
216 return createPermanent_ExpenseAdapter();
217 }
218 @Override
219 public Adapter caseSpecial_Expense_DS(Special_Expense_DS object) {
220 return createSpecial_Expense_DSAdapter();
221 }
222 @Override
223 public Adapter caseInterest_Expense(Interest_Expense object) {
224 return createInterest_ExpenseAdapter();
225 }
226 @Override
227 public Adapter casePrivate_Insurance_and_Plan(Private_Insurance_and_Plan object) {
228 return createPrivate_Insurance_and_PlanAdapter();
229 }
230 @Override
231 public Adapter caseHealth_and_Pension_Insurance(Health_and_Pension_Insurance object) {
232 return createHealth_and_Pension_InsuranceAdapter();
233 }
234 @Override
235 public Adapter caseDonation(Donation object) {
236 return createDonationAdapter();
237 }
238 @Override
239 public Adapter caseLoss_Carryforward(Loss_Carryforward object) {
240 return createLoss_CarryforwardAdapter();
241 }
242 @Override
243 public Adapter caseSpousal_Expense_AC(Spousal_Expense_AC object) {
244 return createSpousal_Expense_ACAdapter();
245 }
246 @Override
247 public Adapter caseExtraordinary_Expense_CE(Extraordinary_Expense_CE object) {
248 return createExtraordinary_Expense_CEAdapter();
249 }
250 @Override
251 public Adapter caseTravel_Expense_FD(Travel_Expense_FD object) {
252 return createTravel_Expense_FDAdapter();
253 }
254 @Override
255 public Adapter caseProfessional_Expense(Professional_Expense object) {
256 return createProfessional_ExpenseAdapter();
257 }
258 @Override
259 public Adapter caseMiscellaneous_Expense_FO(Miscellaneous_Expense_FO object) {
260 return createMiscellaneous_Expense_FOAdapter();
261 }
262 @Override
263 public Adapter caseResource(Resource object) {
264 return createResourceAdapter();
265 }
266 @Override
267 public Adapter defaultCase(EObject object) {
268 return createEObjectAdapter();
269 }
270 };
271
272 /**
273 * Creates an adapter for the <code>target</code>.
274 * <!-- begin-user-doc -->
275 * <!-- end-user-doc -->
276 * @param target the object to adapt.
277 * @return the adapter for the <code>target</code>.
278 * @generated
279 */
280 @Override
281 public Adapter createAdapter(Notifier target) {
282 return modelSwitch.doSwitch((EObject)target);
283 }
284
285
286 /**
287 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Constants <em>Constants</em>}'.
288 * <!-- begin-user-doc -->
289 * This default implementation returns null so that we can easily ignore cases;
290 * it's useful to ignore a case when inheritance will catch all the cases anyway.
291 * <!-- end-user-doc -->
292 * @return the new adapter.
293 * @see TaxationWithRoot.Constants
294 * @generated
295 */
296 public Adapter createConstantsAdapter() {
297 return null;
298 }
299
300 /**
301 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Income_Tax <em>Income Tax</em>}'.
302 * <!-- begin-user-doc -->
303 * This default implementation returns null so that we can easily ignore cases;
304 * it's useful to ignore a case when inheritance will catch all the cases anyway.
305 * <!-- end-user-doc -->
306 * @return the new adapter.
307 * @see TaxationWithRoot.Income_Tax
308 * @generated
309 */
310 public Adapter createIncome_TaxAdapter() {
311 return null;
312 }
313
314 /**
315 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Tax_Payer <em>Tax Payer</em>}'.
316 * <!-- begin-user-doc -->
317 * This default implementation returns null so that we can easily ignore cases;
318 * it's useful to ignore a case when inheritance will catch all the cases anyway.
319 * <!-- end-user-doc -->
320 * @return the new adapter.
321 * @see TaxationWithRoot.Tax_Payer
322 * @generated
323 */
324 public Adapter createTax_PayerAdapter() {
325 return null;
326 }
327
328 /**
329 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Physical_Person <em>Physical Person</em>}'.
330 * <!-- begin-user-doc -->
331 * This default implementation returns null so that we can easily ignore cases;
332 * it's useful to ignore a case when inheritance will catch all the cases anyway.
333 * <!-- end-user-doc -->
334 * @return the new adapter.
335 * @see TaxationWithRoot.Physical_Person
336 * @generated
337 */
338 public Adapter createPhysical_PersonAdapter() {
339 return null;
340 }
341
342 /**
343 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Address <em>Address</em>}'.
344 * <!-- begin-user-doc -->
345 * This default implementation returns null so that we can easily ignore cases;
346 * it's useful to ignore a case when inheritance will catch all the cases anyway.
347 * <!-- end-user-doc -->
348 * @return the new adapter.
349 * @see TaxationWithRoot.Address
350 * @generated
351 */
352 public Adapter createAddressAdapter() {
353 return null;
354 }
355
356 /**
357 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Expense <em>Expense</em>}'.
358 * <!-- begin-user-doc -->
359 * This default implementation returns null so that we can easily ignore cases;
360 * it's useful to ignore a case when inheritance will catch all the cases anyway.
361 * <!-- end-user-doc -->
362 * @return the new adapter.
363 * @see TaxationWithRoot.Expense
364 * @generated
365 */
366 public Adapter createExpenseAdapter() {
367 return null;
368 }
369
370 /**
371 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Dependent <em>Dependent</em>}'.
372 * <!-- begin-user-doc -->
373 * This default implementation returns null so that we can easily ignore cases;
374 * it's useful to ignore a case when inheritance will catch all the cases anyway.
375 * <!-- end-user-doc -->
376 * @return the new adapter.
377 * @see TaxationWithRoot.Dependent
378 * @generated
379 */
380 public Adapter createDependentAdapter() {
381 return null;
382 }
383
384 /**
385 * Creates a new adapter for an object of class '{@link TaxationWithRoot.External_Allowance <em>External Allowance</em>}'.
386 * <!-- begin-user-doc -->
387 * This default implementation returns null so that we can easily ignore cases;
388 * it's useful to ignore a case when inheritance will catch all the cases anyway.
389 * <!-- end-user-doc -->
390 * @return the new adapter.
391 * @see TaxationWithRoot.External_Allowance
392 * @generated
393 */
394 public Adapter createExternal_AllowanceAdapter() {
395 return null;
396 }
397
398 /**
399 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Household <em>Household</em>}'.
400 * <!-- begin-user-doc -->
401 * This default implementation returns null so that we can easily ignore cases;
402 * it's useful to ignore a case when inheritance will catch all the cases anyway.
403 * <!-- end-user-doc -->
404 * @return the new adapter.
405 * @see TaxationWithRoot.Household
406 * @generated
407 */
408 public Adapter createHouseholdAdapter() {
409 return null;
410 }
411
412 /**
413 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Legal_Union_Record <em>Legal Union Record</em>}'.
414 * <!-- begin-user-doc -->
415 * This default implementation returns null so that we can easily ignore cases;
416 * it's useful to ignore a case when inheritance will catch all the cases anyway.
417 * <!-- end-user-doc -->
418 * @return the new adapter.
419 * @see TaxationWithRoot.Legal_Union_Record
420 * @generated
421 */
422 public Adapter createLegal_Union_RecordAdapter() {
423 return null;
424 }
425
426 /**
427 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Tax_Property <em>Tax Property</em>}'.
428 * <!-- begin-user-doc -->
429 * This default implementation returns null so that we can easily ignore cases;
430 * it's useful to ignore a case when inheritance will catch all the cases anyway.
431 * <!-- end-user-doc -->
432 * @return the new adapter.
433 * @see TaxationWithRoot.Tax_Property
434 * @generated
435 */
436 public Adapter createTax_PropertyAdapter() {
437 return null;
438 }
439
440 /**
441 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Tax_Case <em>Tax Case</em>}'.
442 * <!-- begin-user-doc -->
443 * This default implementation returns null so that we can easily ignore cases;
444 * it's useful to ignore a case when inheritance will catch all the cases anyway.
445 * <!-- end-user-doc -->
446 * @return the new adapter.
447 * @see TaxationWithRoot.Tax_Case
448 * @generated
449 */
450 public Adapter createTax_CaseAdapter() {
451 return null;
452 }
453
454 /**
455 * Creates a new adapter for an object of class '{@link TaxationWithRoot.FromAgent <em>From Agent</em>}'.
456 * <!-- begin-user-doc -->
457 * This default implementation returns null so that we can easily ignore cases;
458 * it's useful to ignore a case when inheritance will catch all the cases anyway.
459 * <!-- end-user-doc -->
460 * @return the new adapter.
461 * @see TaxationWithRoot.FromAgent
462 * @generated
463 */
464 public Adapter createFromAgentAdapter() {
465 return null;
466 }
467
468 /**
469 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Income <em>Income</em>}'.
470 * <!-- begin-user-doc -->
471 * This default implementation returns null so that we can easily ignore cases;
472 * it's useful to ignore a case when inheritance will catch all the cases anyway.
473 * <!-- end-user-doc -->
474 * @return the new adapter.
475 * @see TaxationWithRoot.Income
476 * @generated
477 */
478 public Adapter createIncomeAdapter() {
479 return null;
480 }
481
482 /**
483 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Income_Type <em>Income Type</em>}'.
484 * <!-- begin-user-doc -->
485 * This default implementation returns null so that we can easily ignore cases;
486 * it's useful to ignore a case when inheritance will catch all the cases anyway.
487 * <!-- end-user-doc -->
488 * @return the new adapter.
489 * @see TaxationWithRoot.Income_Type
490 * @generated
491 */
492 public Adapter createIncome_TypeAdapter() {
493 return null;
494 }
495
496 /**
497 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Tax_Card <em>Tax Card</em>}'.
498 * <!-- begin-user-doc -->
499 * This default implementation returns null so that we can easily ignore cases;
500 * it's useful to ignore a case when inheritance will catch all the cases anyway.
501 * <!-- end-user-doc -->
502 * @return the new adapter.
503 * @see TaxationWithRoot.Tax_Card
504 * @generated
505 */
506 public Adapter createTax_CardAdapter() {
507 return null;
508 }
509
510 /**
511 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Income_Tax_Credit <em>Income Tax Credit</em>}'.
512 * <!-- begin-user-doc -->
513 * This default implementation returns null so that we can easily ignore cases;
514 * it's useful to ignore a case when inheritance will catch all the cases anyway.
515 * <!-- end-user-doc -->
516 * @return the new adapter.
517 * @see TaxationWithRoot.Income_Tax_Credit
518 * @generated
519 */
520 public Adapter createIncome_Tax_CreditAdapter() {
521 return null;
522 }
523
524 /**
525 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Income_Detail <em>Income Detail</em>}'.
526 * <!-- begin-user-doc -->
527 * This default implementation returns null so that we can easily ignore cases;
528 * it's useful to ignore a case when inheritance will catch all the cases anyway.
529 * <!-- end-user-doc -->
530 * @return the new adapter.
531 * @see TaxationWithRoot.Income_Detail
532 * @generated
533 */
534 public Adapter createIncome_DetailAdapter() {
535 return null;
536 }
537
538 /**
539 * Creates a new adapter for an object of class '{@link TaxationWithRoot.FromLaw <em>From Law</em>}'.
540 * <!-- begin-user-doc -->
541 * This default implementation returns null so that we can easily ignore cases;
542 * it's useful to ignore a case when inheritance will catch all the cases anyway.
543 * <!-- end-user-doc -->
544 * @return the new adapter.
545 * @see TaxationWithRoot.FromLaw
546 * @generated
547 */
548 public Adapter createFromLawAdapter() {
549 return null;
550 }
551
552 /**
553 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Fiscal_Address <em>Fiscal Address</em>}'.
554 * <!-- begin-user-doc -->
555 * This default implementation returns null so that we can easily ignore cases;
556 * it's useful to ignore a case when inheritance will catch all the cases anyway.
557 * <!-- end-user-doc -->
558 * @return the new adapter.
559 * @see TaxationWithRoot.Fiscal_Address
560 * @generated
561 */
562 public Adapter createFiscal_AddressAdapter() {
563 return null;
564 }
565
566 /**
567 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Habitual_Address <em>Habitual Address</em>}'.
568 * <!-- begin-user-doc -->
569 * This default implementation returns null so that we can easily ignore cases;
570 * it's useful to ignore a case when inheritance will catch all the cases anyway.
571 * <!-- end-user-doc -->
572 * @return the new adapter.
573 * @see TaxationWithRoot.Habitual_Address
574 * @generated
575 */
576 public Adapter createHabitual_AddressAdapter() {
577 return null;
578 }
579
580 /**
581 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Marriage_Record <em>Marriage Record</em>}'.
582 * <!-- begin-user-doc -->
583 * This default implementation returns null so that we can easily ignore cases;
584 * it's useful to ignore a case when inheritance will catch all the cases anyway.
585 * <!-- end-user-doc -->
586 * @return the new adapter.
587 * @see TaxationWithRoot.Marriage_Record
588 * @generated
589 */
590 public Adapter createMarriage_RecordAdapter() {
591 return null;
592 }
593
594 /**
595 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Non_Resident_Tax_Payer <em>Non Resident Tax Payer</em>}'.
596 * <!-- begin-user-doc -->
597 * This default implementation returns null so that we can easily ignore cases;
598 * it's useful to ignore a case when inheritance will catch all the cases anyway.
599 * <!-- end-user-doc -->
600 * @return the new adapter.
601 * @see TaxationWithRoot.Non_Resident_Tax_Payer
602 * @generated
603 */
604 public Adapter createNon_Resident_Tax_PayerAdapter() {
605 return null;
606 }
607
608 /**
609 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Partnership_Record <em>Partnership Record</em>}'.
610 * <!-- begin-user-doc -->
611 * This default implementation returns null so that we can easily ignore cases;
612 * it's useful to ignore a case when inheritance will catch all the cases anyway.
613 * <!-- end-user-doc -->
614 * @return the new adapter.
615 * @see TaxationWithRoot.Partnership_Record
616 * @generated
617 */
618 public Adapter createPartnership_RecordAdapter() {
619 return null;
620 }
621
622 /**
623 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Resident_Tax_Payer <em>Resident Tax Payer</em>}'.
624 * <!-- begin-user-doc -->
625 * This default implementation returns null so that we can easily ignore cases;
626 * it's useful to ignore a case when inheritance will catch all the cases anyway.
627 * <!-- end-user-doc -->
628 * @return the new adapter.
629 * @see TaxationWithRoot.Resident_Tax_Payer
630 * @generated
631 */
632 public Adapter createResident_Tax_PayerAdapter() {
633 return null;
634 }
635
636 /**
637 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Trade_and_Business_Income <em>Trade and Business Income</em>}'.
638 * <!-- begin-user-doc -->
639 * This default implementation returns null so that we can easily ignore cases;
640 * it's useful to ignore a case when inheritance will catch all the cases anyway.
641 * <!-- end-user-doc -->
642 * @return the new adapter.
643 * @see TaxationWithRoot.Trade_and_Business_Income
644 * @generated
645 */
646 public Adapter createTrade_and_Business_IncomeAdapter() {
647 return null;
648 }
649
650 /**
651 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Agriculture_and_Forestry_Income <em>Agriculture and Forestry Income</em>}'.
652 * <!-- begin-user-doc -->
653 * This default implementation returns null so that we can easily ignore cases;
654 * it's useful to ignore a case when inheritance will catch all the cases anyway.
655 * <!-- end-user-doc -->
656 * @return the new adapter.
657 * @see TaxationWithRoot.Agriculture_and_Forestry_Income
658 * @generated
659 */
660 public Adapter createAgriculture_and_Forestry_IncomeAdapter() {
661 return null;
662 }
663
664 /**
665 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Pensions_and_Annuities_Income <em>Pensions and Annuities Income</em>}'.
666 * <!-- begin-user-doc -->
667 * This default implementation returns null so that we can easily ignore cases;
668 * it's useful to ignore a case when inheritance will catch all the cases anyway.
669 * <!-- end-user-doc -->
670 * @return the new adapter.
671 * @see TaxationWithRoot.Pensions_and_Annuities_Income
672 * @generated
673 */
674 public Adapter createPensions_and_Annuities_IncomeAdapter() {
675 return null;
676 }
677
678 /**
679 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Capital_and_Investments_Income <em>Capital and Investments Income</em>}'.
680 * <!-- begin-user-doc -->
681 * This default implementation returns null so that we can easily ignore cases;
682 * it's useful to ignore a case when inheritance will catch all the cases anyway.
683 * <!-- end-user-doc -->
684 * @return the new adapter.
685 * @see TaxationWithRoot.Capital_and_Investments_Income
686 * @generated
687 */
688 public Adapter createCapital_and_Investments_IncomeAdapter() {
689 return null;
690 }
691
692 /**
693 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Employment_Income <em>Employment Income</em>}'.
694 * <!-- begin-user-doc -->
695 * This default implementation returns null so that we can easily ignore cases;
696 * it's useful to ignore a case when inheritance will catch all the cases anyway.
697 * <!-- end-user-doc -->
698 * @return the new adapter.
699 * @see TaxationWithRoot.Employment_Income
700 * @generated
701 */
702 public Adapter createEmployment_IncomeAdapter() {
703 return null;
704 }
705
706 /**
707 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Rentals_and_Leases_Income <em>Rentals and Leases Income</em>}'.
708 * <!-- begin-user-doc -->
709 * This default implementation returns null so that we can easily ignore cases;
710 * it's useful to ignore a case when inheritance will catch all the cases anyway.
711 * <!-- end-user-doc -->
712 * @return the new adapter.
713 * @see TaxationWithRoot.Rentals_and_Leases_Income
714 * @generated
715 */
716 public Adapter createRentals_and_Leases_IncomeAdapter() {
717 return null;
718 }
719
720 /**
721 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Foreign_Income <em>Foreign Income</em>}'.
722 * <!-- begin-user-doc -->
723 * This default implementation returns null so that we can easily ignore cases;
724 * it's useful to ignore a case when inheritance will catch all the cases anyway.
725 * <!-- end-user-doc -->
726 * @return the new adapter.
727 * @see TaxationWithRoot.Foreign_Income
728 * @generated
729 */
730 public Adapter createForeign_IncomeAdapter() {
731 return null;
732 }
733
734 /**
735 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Local_Income <em>Local Income</em>}'.
736 * <!-- begin-user-doc -->
737 * This default implementation returns null so that we can easily ignore cases;
738 * it's useful to ignore a case when inheritance will catch all the cases anyway.
739 * <!-- end-user-doc -->
740 * @return the new adapter.
741 * @see TaxationWithRoot.Local_Income
742 * @generated
743 */
744 public Adapter createLocal_IncomeAdapter() {
745 return null;
746 }
747
748 /**
749 * Creates a new adapter for an object of class '{@link TaxationWithRoot.CIM <em>CIM</em>}'.
750 * <!-- begin-user-doc -->
751 * This default implementation returns null so that we can easily ignore cases;
752 * it's useful to ignore a case when inheritance will catch all the cases anyway.
753 * <!-- end-user-doc -->
754 * @return the new adapter.
755 * @see TaxationWithRoot.CIM
756 * @generated
757 */
758 public Adapter createCIMAdapter() {
759 return null;
760 }
761
762 /**
763 * Creates a new adapter for an object of class '{@link TaxationWithRoot.CIP <em>CIP</em>}'.
764 * <!-- begin-user-doc -->
765 * This default implementation returns null so that we can easily ignore cases;
766 * it's useful to ignore a case when inheritance will catch all the cases anyway.
767 * <!-- end-user-doc -->
768 * @return the new adapter.
769 * @see TaxationWithRoot.CIP
770 * @generated
771 */
772 public Adapter createCIPAdapter() {
773 return null;
774 }
775
776 /**
777 * Creates a new adapter for an object of class '{@link TaxationWithRoot.CIS <em>CIS</em>}'.
778 * <!-- begin-user-doc -->
779 * This default implementation returns null so that we can easily ignore cases;
780 * it's useful to ignore a case when inheritance will catch all the cases anyway.
781 * <!-- end-user-doc -->
782 * @return the new adapter.
783 * @see TaxationWithRoot.CIS
784 * @generated
785 */
786 public Adapter createCISAdapter() {
787 return null;
788 }
789
790 /**
791 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Permanent_Expense <em>Permanent Expense</em>}'.
792 * <!-- begin-user-doc -->
793 * This default implementation returns null so that we can easily ignore cases;
794 * it's useful to ignore a case when inheritance will catch all the cases anyway.
795 * <!-- end-user-doc -->
796 * @return the new adapter.
797 * @see TaxationWithRoot.Permanent_Expense
798 * @generated
799 */
800 public Adapter createPermanent_ExpenseAdapter() {
801 return null;
802 }
803
804 /**
805 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Special_Expense_DS <em>Special Expense DS</em>}'.
806 * <!-- begin-user-doc -->
807 * This default implementation returns null so that we can easily ignore cases;
808 * it's useful to ignore a case when inheritance will catch all the cases anyway.
809 * <!-- end-user-doc -->
810 * @return the new adapter.
811 * @see TaxationWithRoot.Special_Expense_DS
812 * @generated
813 */
814 public Adapter createSpecial_Expense_DSAdapter() {
815 return null;
816 }
817
818 /**
819 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Interest_Expense <em>Interest Expense</em>}'.
820 * <!-- begin-user-doc -->
821 * This default implementation returns null so that we can easily ignore cases;
822 * it's useful to ignore a case when inheritance will catch all the cases anyway.
823 * <!-- end-user-doc -->
824 * @return the new adapter.
825 * @see TaxationWithRoot.Interest_Expense
826 * @generated
827 */
828 public Adapter createInterest_ExpenseAdapter() {
829 return null;
830 }
831
832 /**
833 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Private_Insurance_and_Plan <em>Private Insurance and Plan</em>}'.
834 * <!-- begin-user-doc -->
835 * This default implementation returns null so that we can easily ignore cases;
836 * it's useful to ignore a case when inheritance will catch all the cases anyway.
837 * <!-- end-user-doc -->
838 * @return the new adapter.
839 * @see TaxationWithRoot.Private_Insurance_and_Plan
840 * @generated
841 */
842 public Adapter createPrivate_Insurance_and_PlanAdapter() {
843 return null;
844 }
845
846 /**
847 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Health_and_Pension_Insurance <em>Health and Pension Insurance</em>}'.
848 * <!-- begin-user-doc -->
849 * This default implementation returns null so that we can easily ignore cases;
850 * it's useful to ignore a case when inheritance will catch all the cases anyway.
851 * <!-- end-user-doc -->
852 * @return the new adapter.
853 * @see TaxationWithRoot.Health_and_Pension_Insurance
854 * @generated
855 */
856 public Adapter createHealth_and_Pension_InsuranceAdapter() {
857 return null;
858 }
859
860 /**
861 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Donation <em>Donation</em>}'.
862 * <!-- begin-user-doc -->
863 * This default implementation returns null so that we can easily ignore cases;
864 * it's useful to ignore a case when inheritance will catch all the cases anyway.
865 * <!-- end-user-doc -->
866 * @return the new adapter.
867 * @see TaxationWithRoot.Donation
868 * @generated
869 */
870 public Adapter createDonationAdapter() {
871 return null;
872 }
873
874 /**
875 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Loss_Carryforward <em>Loss Carryforward</em>}'.
876 * <!-- begin-user-doc -->
877 * This default implementation returns null so that we can easily ignore cases;
878 * it's useful to ignore a case when inheritance will catch all the cases anyway.
879 * <!-- end-user-doc -->
880 * @return the new adapter.
881 * @see TaxationWithRoot.Loss_Carryforward
882 * @generated
883 */
884 public Adapter createLoss_CarryforwardAdapter() {
885 return null;
886 }
887
888 /**
889 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Spousal_Expense_AC <em>Spousal Expense AC</em>}'.
890 * <!-- begin-user-doc -->
891 * This default implementation returns null so that we can easily ignore cases;
892 * it's useful to ignore a case when inheritance will catch all the cases anyway.
893 * <!-- end-user-doc -->
894 * @return the new adapter.
895 * @see TaxationWithRoot.Spousal_Expense_AC
896 * @generated
897 */
898 public Adapter createSpousal_Expense_ACAdapter() {
899 return null;
900 }
901
902 /**
903 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Extraordinary_Expense_CE <em>Extraordinary Expense CE</em>}'.
904 * <!-- begin-user-doc -->
905 * This default implementation returns null so that we can easily ignore cases;
906 * it's useful to ignore a case when inheritance will catch all the cases anyway.
907 * <!-- end-user-doc -->
908 * @return the new adapter.
909 * @see TaxationWithRoot.Extraordinary_Expense_CE
910 * @generated
911 */
912 public Adapter createExtraordinary_Expense_CEAdapter() {
913 return null;
914 }
915
916 /**
917 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Travel_Expense_FD <em>Travel Expense FD</em>}'.
918 * <!-- begin-user-doc -->
919 * This default implementation returns null so that we can easily ignore cases;
920 * it's useful to ignore a case when inheritance will catch all the cases anyway.
921 * <!-- end-user-doc -->
922 * @return the new adapter.
923 * @see TaxationWithRoot.Travel_Expense_FD
924 * @generated
925 */
926 public Adapter createTravel_Expense_FDAdapter() {
927 return null;
928 }
929
930 /**
931 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Professional_Expense <em>Professional Expense</em>}'.
932 * <!-- begin-user-doc -->
933 * This default implementation returns null so that we can easily ignore cases;
934 * it's useful to ignore a case when inheritance will catch all the cases anyway.
935 * <!-- end-user-doc -->
936 * @return the new adapter.
937 * @see TaxationWithRoot.Professional_Expense
938 * @generated
939 */
940 public Adapter createProfessional_ExpenseAdapter() {
941 return null;
942 }
943
944 /**
945 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Miscellaneous_Expense_FO <em>Miscellaneous Expense FO</em>}'.
946 * <!-- begin-user-doc -->
947 * This default implementation returns null so that we can easily ignore cases;
948 * it's useful to ignore a case when inheritance will catch all the cases anyway.
949 * <!-- end-user-doc -->
950 * @return the new adapter.
951 * @see TaxationWithRoot.Miscellaneous_Expense_FO
952 * @generated
953 */
954 public Adapter createMiscellaneous_Expense_FOAdapter() {
955 return null;
956 }
957
958 /**
959 * Creates a new adapter for an object of class '{@link TaxationWithRoot.Resource <em>Resource</em>}'.
960 * <!-- begin-user-doc -->
961 * This default implementation returns null so that we can easily ignore cases;
962 * it's useful to ignore a case when inheritance will catch all the cases anyway.
963 * <!-- end-user-doc -->
964 * @return the new adapter.
965 * @see TaxationWithRoot.Resource
966 * @generated
967 */
968 public Adapter createResourceAdapter() {
969 return null;
970 }
971
972 /**
973 * Creates a new adapter for the default case.
974 * <!-- begin-user-doc -->
975 * This default implementation returns null.
976 * <!-- end-user-doc -->
977 * @return the new adapter.
978 * @generated
979 */
980 public Adapter createEObjectAdapter() {
981 return null;
982 }
983
984} //TaxationWithRootAdapterFactory
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/util/TaxationWithRootSwitch.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/util/TaxationWithRootSwitch.java
new file mode 100644
index 00000000..5cba1393
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/TaxationWithRoot/util/TaxationWithRootSwitch.java
@@ -0,0 +1,1163 @@
1/**
2 */
3package TaxationWithRoot.util;
4
5import TaxationWithRoot.*;
6
7import org.eclipse.emf.ecore.EObject;
8import org.eclipse.emf.ecore.EPackage;
9
10import org.eclipse.emf.ecore.util.Switch;
11
12/**
13 * <!-- begin-user-doc -->
14 * The <b>Switch</b> for the model's inheritance hierarchy.
15 * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
16 * to invoke the <code>caseXXX</code> method for each class of the model,
17 * starting with the actual class of the object
18 * and proceeding up the inheritance hierarchy
19 * until a non-null result is returned,
20 * which is the result of the switch.
21 * <!-- end-user-doc -->
22 * @see TaxationWithRoot.TaxationWithRootPackage
23 * @generated
24 */
25public class TaxationWithRootSwitch<T> extends Switch<T> {
26 /**
27 * The cached model package
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 protected static TaxationWithRootPackage modelPackage;
33
34 /**
35 * Creates an instance of the switch.
36 * <!-- begin-user-doc -->
37 * <!-- end-user-doc -->
38 * @generated
39 */
40 public TaxationWithRootSwitch() {
41 if (modelPackage == null) {
42 modelPackage = TaxationWithRootPackage.eINSTANCE;
43 }
44 }
45
46 /**
47 * Checks whether this is a switch for the given package.
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @param ePackage the package in question.
51 * @return whether this is a switch for the given package.
52 * @generated
53 */
54 @Override
55 protected boolean isSwitchFor(EPackage ePackage) {
56 return ePackage == modelPackage;
57 }
58
59 /**
60 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @return the first non-null result returned by a <code>caseXXX</code> call.
64 * @generated
65 */
66 @Override
67 protected T doSwitch(int classifierID, EObject theEObject) {
68 switch (classifierID) {
69 case TaxationWithRootPackage.CONSTANTS: {
70 Constants constants = (Constants)theEObject;
71 T result = caseConstants(constants);
72 if (result == null) result = defaultCase(theEObject);
73 return result;
74 }
75 case TaxationWithRootPackage.INCOME_TAX: {
76 Income_Tax income_Tax = (Income_Tax)theEObject;
77 T result = caseIncome_Tax(income_Tax);
78 if (result == null) result = defaultCase(theEObject);
79 return result;
80 }
81 case TaxationWithRootPackage.TAX_PAYER: {
82 Tax_Payer tax_Payer = (Tax_Payer)theEObject;
83 T result = caseTax_Payer(tax_Payer);
84 if (result == null) result = casePhysical_Person(tax_Payer);
85 if (result == null) result = caseTax_Case(tax_Payer);
86 if (result == null) result = defaultCase(theEObject);
87 return result;
88 }
89 case TaxationWithRootPackage.PHYSICAL_PERSON: {
90 Physical_Person physical_Person = (Physical_Person)theEObject;
91 T result = casePhysical_Person(physical_Person);
92 if (result == null) result = defaultCase(theEObject);
93 return result;
94 }
95 case TaxationWithRootPackage.ADDRESS: {
96 Address address = (Address)theEObject;
97 T result = caseAddress(address);
98 if (result == null) result = defaultCase(theEObject);
99 return result;
100 }
101 case TaxationWithRootPackage.EXPENSE: {
102 Expense expense = (Expense)theEObject;
103 T result = caseExpense(expense);
104 if (result == null) result = defaultCase(theEObject);
105 return result;
106 }
107 case TaxationWithRootPackage.DEPENDENT: {
108 Dependent dependent = (Dependent)theEObject;
109 T result = caseDependent(dependent);
110 if (result == null) result = casePhysical_Person(dependent);
111 if (result == null) result = defaultCase(theEObject);
112 return result;
113 }
114 case TaxationWithRootPackage.EXTERNAL_ALLOWANCE: {
115 External_Allowance external_Allowance = (External_Allowance)theEObject;
116 T result = caseExternal_Allowance(external_Allowance);
117 if (result == null) result = defaultCase(theEObject);
118 return result;
119 }
120 case TaxationWithRootPackage.HOUSEHOLD: {
121 Household household = (Household)theEObject;
122 T result = caseHousehold(household);
123 if (result == null) result = caseTax_Case(household);
124 if (result == null) result = defaultCase(theEObject);
125 return result;
126 }
127 case TaxationWithRootPackage.LEGAL_UNION_RECORD: {
128 Legal_Union_Record legal_Union_Record = (Legal_Union_Record)theEObject;
129 T result = caseLegal_Union_Record(legal_Union_Record);
130 if (result == null) result = defaultCase(theEObject);
131 return result;
132 }
133 case TaxationWithRootPackage.TAX_PROPERTY: {
134 Tax_Property tax_Property = (Tax_Property)theEObject;
135 T result = caseTax_Property(tax_Property);
136 if (result == null) result = defaultCase(theEObject);
137 return result;
138 }
139 case TaxationWithRootPackage.TAX_CASE: {
140 Tax_Case tax_Case = (Tax_Case)theEObject;
141 T result = caseTax_Case(tax_Case);
142 if (result == null) result = defaultCase(theEObject);
143 return result;
144 }
145 case TaxationWithRootPackage.FROM_AGENT: {
146 FromAgent fromAgent = (FromAgent)theEObject;
147 T result = caseFromAgent(fromAgent);
148 if (result == null) result = defaultCase(theEObject);
149 return result;
150 }
151 case TaxationWithRootPackage.INCOME: {
152 Income income = (Income)theEObject;
153 T result = caseIncome(income);
154 if (result == null) result = defaultCase(theEObject);
155 return result;
156 }
157 case TaxationWithRootPackage.INCOME_TYPE: {
158 Income_Type income_Type = (Income_Type)theEObject;
159 T result = caseIncome_Type(income_Type);
160 if (result == null) result = defaultCase(theEObject);
161 return result;
162 }
163 case TaxationWithRootPackage.TAX_CARD: {
164 Tax_Card tax_Card = (Tax_Card)theEObject;
165 T result = caseTax_Card(tax_Card);
166 if (result == null) result = defaultCase(theEObject);
167 return result;
168 }
169 case TaxationWithRootPackage.INCOME_TAX_CREDIT: {
170 Income_Tax_Credit income_Tax_Credit = (Income_Tax_Credit)theEObject;
171 T result = caseIncome_Tax_Credit(income_Tax_Credit);
172 if (result == null) result = defaultCase(theEObject);
173 return result;
174 }
175 case TaxationWithRootPackage.INCOME_DETAIL: {
176 Income_Detail income_Detail = (Income_Detail)theEObject;
177 T result = caseIncome_Detail(income_Detail);
178 if (result == null) result = defaultCase(theEObject);
179 return result;
180 }
181 case TaxationWithRootPackage.FROM_LAW: {
182 FromLaw fromLaw = (FromLaw)theEObject;
183 T result = caseFromLaw(fromLaw);
184 if (result == null) result = defaultCase(theEObject);
185 return result;
186 }
187 case TaxationWithRootPackage.FISCAL_ADDRESS: {
188 Fiscal_Address fiscal_Address = (Fiscal_Address)theEObject;
189 T result = caseFiscal_Address(fiscal_Address);
190 if (result == null) result = caseAddress(fiscal_Address);
191 if (result == null) result = defaultCase(theEObject);
192 return result;
193 }
194 case TaxationWithRootPackage.HABITUAL_ADDRESS: {
195 Habitual_Address habitual_Address = (Habitual_Address)theEObject;
196 T result = caseHabitual_Address(habitual_Address);
197 if (result == null) result = caseAddress(habitual_Address);
198 if (result == null) result = defaultCase(theEObject);
199 return result;
200 }
201 case TaxationWithRootPackage.MARRIAGE_RECORD: {
202 Marriage_Record marriage_Record = (Marriage_Record)theEObject;
203 T result = caseMarriage_Record(marriage_Record);
204 if (result == null) result = caseLegal_Union_Record(marriage_Record);
205 if (result == null) result = defaultCase(theEObject);
206 return result;
207 }
208 case TaxationWithRootPackage.NON_RESIDENT_TAX_PAYER: {
209 Non_Resident_Tax_Payer non_Resident_Tax_Payer = (Non_Resident_Tax_Payer)theEObject;
210 T result = caseNon_Resident_Tax_Payer(non_Resident_Tax_Payer);
211 if (result == null) result = caseTax_Payer(non_Resident_Tax_Payer);
212 if (result == null) result = casePhysical_Person(non_Resident_Tax_Payer);
213 if (result == null) result = caseTax_Case(non_Resident_Tax_Payer);
214 if (result == null) result = defaultCase(theEObject);
215 return result;
216 }
217 case TaxationWithRootPackage.PARTNERSHIP_RECORD: {
218 Partnership_Record partnership_Record = (Partnership_Record)theEObject;
219 T result = casePartnership_Record(partnership_Record);
220 if (result == null) result = caseLegal_Union_Record(partnership_Record);
221 if (result == null) result = defaultCase(theEObject);
222 return result;
223 }
224 case TaxationWithRootPackage.RESIDENT_TAX_PAYER: {
225 Resident_Tax_Payer resident_Tax_Payer = (Resident_Tax_Payer)theEObject;
226 T result = caseResident_Tax_Payer(resident_Tax_Payer);
227 if (result == null) result = caseTax_Payer(resident_Tax_Payer);
228 if (result == null) result = casePhysical_Person(resident_Tax_Payer);
229 if (result == null) result = caseTax_Case(resident_Tax_Payer);
230 if (result == null) result = defaultCase(theEObject);
231 return result;
232 }
233 case TaxationWithRootPackage.TRADE_AND_BUSINESS_INCOME: {
234 Trade_and_Business_Income trade_and_Business_Income = (Trade_and_Business_Income)theEObject;
235 T result = caseTrade_and_Business_Income(trade_and_Business_Income);
236 if (result == null) result = caseIncome_Type(trade_and_Business_Income);
237 if (result == null) result = defaultCase(theEObject);
238 return result;
239 }
240 case TaxationWithRootPackage.AGRICULTURE_AND_FORESTRY_INCOME: {
241 Agriculture_and_Forestry_Income agriculture_and_Forestry_Income = (Agriculture_and_Forestry_Income)theEObject;
242 T result = caseAgriculture_and_Forestry_Income(agriculture_and_Forestry_Income);
243 if (result == null) result = caseIncome_Type(agriculture_and_Forestry_Income);
244 if (result == null) result = defaultCase(theEObject);
245 return result;
246 }
247 case TaxationWithRootPackage.PENSIONS_AND_ANNUITIES_INCOME: {
248 Pensions_and_Annuities_Income pensions_and_Annuities_Income = (Pensions_and_Annuities_Income)theEObject;
249 T result = casePensions_and_Annuities_Income(pensions_and_Annuities_Income);
250 if (result == null) result = caseIncome_Type(pensions_and_Annuities_Income);
251 if (result == null) result = defaultCase(theEObject);
252 return result;
253 }
254 case TaxationWithRootPackage.CAPITAL_AND_INVESTMENTS_INCOME: {
255 Capital_and_Investments_Income capital_and_Investments_Income = (Capital_and_Investments_Income)theEObject;
256 T result = caseCapital_and_Investments_Income(capital_and_Investments_Income);
257 if (result == null) result = caseIncome_Type(capital_and_Investments_Income);
258 if (result == null) result = defaultCase(theEObject);
259 return result;
260 }
261 case TaxationWithRootPackage.EMPLOYMENT_INCOME: {
262 Employment_Income employment_Income = (Employment_Income)theEObject;
263 T result = caseEmployment_Income(employment_Income);
264 if (result == null) result = caseIncome_Type(employment_Income);
265 if (result == null) result = defaultCase(theEObject);
266 return result;
267 }
268 case TaxationWithRootPackage.RENTALS_AND_LEASES_INCOME: {
269 Rentals_and_Leases_Income rentals_and_Leases_Income = (Rentals_and_Leases_Income)theEObject;
270 T result = caseRentals_and_Leases_Income(rentals_and_Leases_Income);
271 if (result == null) result = caseIncome_Type(rentals_and_Leases_Income);
272 if (result == null) result = defaultCase(theEObject);
273 return result;
274 }
275 case TaxationWithRootPackage.FOREIGN_INCOME: {
276 Foreign_Income foreign_Income = (Foreign_Income)theEObject;
277 T result = caseForeign_Income(foreign_Income);
278 if (result == null) result = caseIncome(foreign_Income);
279 if (result == null) result = defaultCase(theEObject);
280 return result;
281 }
282 case TaxationWithRootPackage.LOCAL_INCOME: {
283 Local_Income local_Income = (Local_Income)theEObject;
284 T result = caseLocal_Income(local_Income);
285 if (result == null) result = caseIncome(local_Income);
286 if (result == null) result = defaultCase(theEObject);
287 return result;
288 }
289 case TaxationWithRootPackage.CIM: {
290 CIM cim = (CIM)theEObject;
291 T result = caseCIM(cim);
292 if (result == null) result = caseIncome_Tax_Credit(cim);
293 if (result == null) result = defaultCase(theEObject);
294 return result;
295 }
296 case TaxationWithRootPackage.CIP: {
297 CIP cip = (CIP)theEObject;
298 T result = caseCIP(cip);
299 if (result == null) result = caseIncome_Tax_Credit(cip);
300 if (result == null) result = defaultCase(theEObject);
301 return result;
302 }
303 case TaxationWithRootPackage.CIS: {
304 CIS cis = (CIS)theEObject;
305 T result = caseCIS(cis);
306 if (result == null) result = caseIncome_Tax_Credit(cis);
307 if (result == null) result = defaultCase(theEObject);
308 return result;
309 }
310 case TaxationWithRootPackage.PERMANENT_EXPENSE: {
311 Permanent_Expense permanent_Expense = (Permanent_Expense)theEObject;
312 T result = casePermanent_Expense(permanent_Expense);
313 if (result == null) result = caseSpecial_Expense_DS(permanent_Expense);
314 if (result == null) result = caseExpense(permanent_Expense);
315 if (result == null) result = defaultCase(theEObject);
316 return result;
317 }
318 case TaxationWithRootPackage.SPECIAL_EXPENSE_DS: {
319 Special_Expense_DS special_Expense_DS = (Special_Expense_DS)theEObject;
320 T result = caseSpecial_Expense_DS(special_Expense_DS);
321 if (result == null) result = caseExpense(special_Expense_DS);
322 if (result == null) result = defaultCase(theEObject);
323 return result;
324 }
325 case TaxationWithRootPackage.INTEREST_EXPENSE: {
326 Interest_Expense interest_Expense = (Interest_Expense)theEObject;
327 T result = caseInterest_Expense(interest_Expense);
328 if (result == null) result = caseSpecial_Expense_DS(interest_Expense);
329 if (result == null) result = caseExpense(interest_Expense);
330 if (result == null) result = defaultCase(theEObject);
331 return result;
332 }
333 case TaxationWithRootPackage.PRIVATE_INSURANCE_AND_PLAN: {
334 Private_Insurance_and_Plan private_Insurance_and_Plan = (Private_Insurance_and_Plan)theEObject;
335 T result = casePrivate_Insurance_and_Plan(private_Insurance_and_Plan);
336 if (result == null) result = caseSpecial_Expense_DS(private_Insurance_and_Plan);
337 if (result == null) result = caseExpense(private_Insurance_and_Plan);
338 if (result == null) result = defaultCase(theEObject);
339 return result;
340 }
341 case TaxationWithRootPackage.HEALTH_AND_PENSION_INSURANCE: {
342 Health_and_Pension_Insurance health_and_Pension_Insurance = (Health_and_Pension_Insurance)theEObject;
343 T result = caseHealth_and_Pension_Insurance(health_and_Pension_Insurance);
344 if (result == null) result = caseSpecial_Expense_DS(health_and_Pension_Insurance);
345 if (result == null) result = caseExpense(health_and_Pension_Insurance);
346 if (result == null) result = defaultCase(theEObject);
347 return result;
348 }
349 case TaxationWithRootPackage.DONATION: {
350 Donation donation = (Donation)theEObject;
351 T result = caseDonation(donation);
352 if (result == null) result = caseSpecial_Expense_DS(donation);
353 if (result == null) result = caseExpense(donation);
354 if (result == null) result = defaultCase(theEObject);
355 return result;
356 }
357 case TaxationWithRootPackage.LOSS_CARRYFORWARD: {
358 Loss_Carryforward loss_Carryforward = (Loss_Carryforward)theEObject;
359 T result = caseLoss_Carryforward(loss_Carryforward);
360 if (result == null) result = caseSpecial_Expense_DS(loss_Carryforward);
361 if (result == null) result = caseExpense(loss_Carryforward);
362 if (result == null) result = defaultCase(theEObject);
363 return result;
364 }
365 case TaxationWithRootPackage.SPOUSAL_EXPENSE_AC: {
366 Spousal_Expense_AC spousal_Expense_AC = (Spousal_Expense_AC)theEObject;
367 T result = caseSpousal_Expense_AC(spousal_Expense_AC);
368 if (result == null) result = caseExpense(spousal_Expense_AC);
369 if (result == null) result = defaultCase(theEObject);
370 return result;
371 }
372 case TaxationWithRootPackage.EXTRAORDINARY_EXPENSE_CE: {
373 Extraordinary_Expense_CE extraordinary_Expense_CE = (Extraordinary_Expense_CE)theEObject;
374 T result = caseExtraordinary_Expense_CE(extraordinary_Expense_CE);
375 if (result == null) result = caseExpense(extraordinary_Expense_CE);
376 if (result == null) result = defaultCase(theEObject);
377 return result;
378 }
379 case TaxationWithRootPackage.TRAVEL_EXPENSE_FD: {
380 Travel_Expense_FD travel_Expense_FD = (Travel_Expense_FD)theEObject;
381 T result = caseTravel_Expense_FD(travel_Expense_FD);
382 if (result == null) result = caseProfessional_Expense(travel_Expense_FD);
383 if (result == null) result = caseExpense(travel_Expense_FD);
384 if (result == null) result = defaultCase(theEObject);
385 return result;
386 }
387 case TaxationWithRootPackage.PROFESSIONAL_EXPENSE: {
388 Professional_Expense professional_Expense = (Professional_Expense)theEObject;
389 T result = caseProfessional_Expense(professional_Expense);
390 if (result == null) result = caseExpense(professional_Expense);
391 if (result == null) result = defaultCase(theEObject);
392 return result;
393 }
394 case TaxationWithRootPackage.MISCELLANEOUS_EXPENSE_FO: {
395 Miscellaneous_Expense_FO miscellaneous_Expense_FO = (Miscellaneous_Expense_FO)theEObject;
396 T result = caseMiscellaneous_Expense_FO(miscellaneous_Expense_FO);
397 if (result == null) result = caseProfessional_Expense(miscellaneous_Expense_FO);
398 if (result == null) result = caseExpense(miscellaneous_Expense_FO);
399 if (result == null) result = defaultCase(theEObject);
400 return result;
401 }
402 case TaxationWithRootPackage.RESOURCE: {
403 Resource resource = (Resource)theEObject;
404 T result = caseResource(resource);
405 if (result == null) result = defaultCase(theEObject);
406 return result;
407 }
408 default: return defaultCase(theEObject);
409 }
410 }
411
412 /**
413 * Returns the result of interpreting the object as an instance of '<em>Constants</em>'.
414 * <!-- begin-user-doc -->
415 * This implementation returns null;
416 * returning a non-null result will terminate the switch.
417 * <!-- end-user-doc -->
418 * @param object the target of the switch.
419 * @return the result of interpreting the object as an instance of '<em>Constants</em>'.
420 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
421 * @generated
422 */
423 public T caseConstants(Constants object) {
424 return null;
425 }
426
427 /**
428 * Returns the result of interpreting the object as an instance of '<em>Income Tax</em>'.
429 * <!-- begin-user-doc -->
430 * This implementation returns null;
431 * returning a non-null result will terminate the switch.
432 * <!-- end-user-doc -->
433 * @param object the target of the switch.
434 * @return the result of interpreting the object as an instance of '<em>Income Tax</em>'.
435 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
436 * @generated
437 */
438 public T caseIncome_Tax(Income_Tax object) {
439 return null;
440 }
441
442 /**
443 * Returns the result of interpreting the object as an instance of '<em>Tax Payer</em>'.
444 * <!-- begin-user-doc -->
445 * This implementation returns null;
446 * returning a non-null result will terminate the switch.
447 * <!-- end-user-doc -->
448 * @param object the target of the switch.
449 * @return the result of interpreting the object as an instance of '<em>Tax Payer</em>'.
450 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
451 * @generated
452 */
453 public T caseTax_Payer(Tax_Payer object) {
454 return null;
455 }
456
457 /**
458 * Returns the result of interpreting the object as an instance of '<em>Physical Person</em>'.
459 * <!-- begin-user-doc -->
460 * This implementation returns null;
461 * returning a non-null result will terminate the switch.
462 * <!-- end-user-doc -->
463 * @param object the target of the switch.
464 * @return the result of interpreting the object as an instance of '<em>Physical Person</em>'.
465 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
466 * @generated
467 */
468 public T casePhysical_Person(Physical_Person object) {
469 return null;
470 }
471
472 /**
473 * Returns the result of interpreting the object as an instance of '<em>Address</em>'.
474 * <!-- begin-user-doc -->
475 * This implementation returns null;
476 * returning a non-null result will terminate the switch.
477 * <!-- end-user-doc -->
478 * @param object the target of the switch.
479 * @return the result of interpreting the object as an instance of '<em>Address</em>'.
480 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
481 * @generated
482 */
483 public T caseAddress(Address object) {
484 return null;
485 }
486
487 /**
488 * Returns the result of interpreting the object as an instance of '<em>Expense</em>'.
489 * <!-- begin-user-doc -->
490 * This implementation returns null;
491 * returning a non-null result will terminate the switch.
492 * <!-- end-user-doc -->
493 * @param object the target of the switch.
494 * @return the result of interpreting the object as an instance of '<em>Expense</em>'.
495 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
496 * @generated
497 */
498 public T caseExpense(Expense object) {
499 return null;
500 }
501
502 /**
503 * Returns the result of interpreting the object as an instance of '<em>Dependent</em>'.
504 * <!-- begin-user-doc -->
505 * This implementation returns null;
506 * returning a non-null result will terminate the switch.
507 * <!-- end-user-doc -->
508 * @param object the target of the switch.
509 * @return the result of interpreting the object as an instance of '<em>Dependent</em>'.
510 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
511 * @generated
512 */
513 public T caseDependent(Dependent object) {
514 return null;
515 }
516
517 /**
518 * Returns the result of interpreting the object as an instance of '<em>External Allowance</em>'.
519 * <!-- begin-user-doc -->
520 * This implementation returns null;
521 * returning a non-null result will terminate the switch.
522 * <!-- end-user-doc -->
523 * @param object the target of the switch.
524 * @return the result of interpreting the object as an instance of '<em>External Allowance</em>'.
525 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
526 * @generated
527 */
528 public T caseExternal_Allowance(External_Allowance object) {
529 return null;
530 }
531
532 /**
533 * Returns the result of interpreting the object as an instance of '<em>Household</em>'.
534 * <!-- begin-user-doc -->
535 * This implementation returns null;
536 * returning a non-null result will terminate the switch.
537 * <!-- end-user-doc -->
538 * @param object the target of the switch.
539 * @return the result of interpreting the object as an instance of '<em>Household</em>'.
540 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
541 * @generated
542 */
543 public T caseHousehold(Household object) {
544 return null;
545 }
546
547 /**
548 * Returns the result of interpreting the object as an instance of '<em>Legal Union Record</em>'.
549 * <!-- begin-user-doc -->
550 * This implementation returns null;
551 * returning a non-null result will terminate the switch.
552 * <!-- end-user-doc -->
553 * @param object the target of the switch.
554 * @return the result of interpreting the object as an instance of '<em>Legal Union Record</em>'.
555 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
556 * @generated
557 */
558 public T caseLegal_Union_Record(Legal_Union_Record object) {
559 return null;
560 }
561
562 /**
563 * Returns the result of interpreting the object as an instance of '<em>Tax Property</em>'.
564 * <!-- begin-user-doc -->
565 * This implementation returns null;
566 * returning a non-null result will terminate the switch.
567 * <!-- end-user-doc -->
568 * @param object the target of the switch.
569 * @return the result of interpreting the object as an instance of '<em>Tax Property</em>'.
570 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
571 * @generated
572 */
573 public T caseTax_Property(Tax_Property object) {
574 return null;
575 }
576
577 /**
578 * Returns the result of interpreting the object as an instance of '<em>Tax Case</em>'.
579 * <!-- begin-user-doc -->
580 * This implementation returns null;
581 * returning a non-null result will terminate the switch.
582 * <!-- end-user-doc -->
583 * @param object the target of the switch.
584 * @return the result of interpreting the object as an instance of '<em>Tax Case</em>'.
585 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
586 * @generated
587 */
588 public T caseTax_Case(Tax_Case object) {
589 return null;
590 }
591
592 /**
593 * Returns the result of interpreting the object as an instance of '<em>From Agent</em>'.
594 * <!-- begin-user-doc -->
595 * This implementation returns null;
596 * returning a non-null result will terminate the switch.
597 * <!-- end-user-doc -->
598 * @param object the target of the switch.
599 * @return the result of interpreting the object as an instance of '<em>From Agent</em>'.
600 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
601 * @generated
602 */
603 public T caseFromAgent(FromAgent object) {
604 return null;
605 }
606
607 /**
608 * Returns the result of interpreting the object as an instance of '<em>Income</em>'.
609 * <!-- begin-user-doc -->
610 * This implementation returns null;
611 * returning a non-null result will terminate the switch.
612 * <!-- end-user-doc -->
613 * @param object the target of the switch.
614 * @return the result of interpreting the object as an instance of '<em>Income</em>'.
615 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
616 * @generated
617 */
618 public T caseIncome(Income object) {
619 return null;
620 }
621
622 /**
623 * Returns the result of interpreting the object as an instance of '<em>Income Type</em>'.
624 * <!-- begin-user-doc -->
625 * This implementation returns null;
626 * returning a non-null result will terminate the switch.
627 * <!-- end-user-doc -->
628 * @param object the target of the switch.
629 * @return the result of interpreting the object as an instance of '<em>Income Type</em>'.
630 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
631 * @generated
632 */
633 public T caseIncome_Type(Income_Type object) {
634 return null;
635 }
636
637 /**
638 * Returns the result of interpreting the object as an instance of '<em>Tax Card</em>'.
639 * <!-- begin-user-doc -->
640 * This implementation returns null;
641 * returning a non-null result will terminate the switch.
642 * <!-- end-user-doc -->
643 * @param object the target of the switch.
644 * @return the result of interpreting the object as an instance of '<em>Tax Card</em>'.
645 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
646 * @generated
647 */
648 public T caseTax_Card(Tax_Card object) {
649 return null;
650 }
651
652 /**
653 * Returns the result of interpreting the object as an instance of '<em>Income Tax Credit</em>'.
654 * <!-- begin-user-doc -->
655 * This implementation returns null;
656 * returning a non-null result will terminate the switch.
657 * <!-- end-user-doc -->
658 * @param object the target of the switch.
659 * @return the result of interpreting the object as an instance of '<em>Income Tax Credit</em>'.
660 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
661 * @generated
662 */
663 public T caseIncome_Tax_Credit(Income_Tax_Credit object) {
664 return null;
665 }
666
667 /**
668 * Returns the result of interpreting the object as an instance of '<em>Income Detail</em>'.
669 * <!-- begin-user-doc -->
670 * This implementation returns null;
671 * returning a non-null result will terminate the switch.
672 * <!-- end-user-doc -->
673 * @param object the target of the switch.
674 * @return the result of interpreting the object as an instance of '<em>Income Detail</em>'.
675 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
676 * @generated
677 */
678 public T caseIncome_Detail(Income_Detail object) {
679 return null;
680 }
681
682 /**
683 * Returns the result of interpreting the object as an instance of '<em>From Law</em>'.
684 * <!-- begin-user-doc -->
685 * This implementation returns null;
686 * returning a non-null result will terminate the switch.
687 * <!-- end-user-doc -->
688 * @param object the target of the switch.
689 * @return the result of interpreting the object as an instance of '<em>From Law</em>'.
690 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
691 * @generated
692 */
693 public T caseFromLaw(FromLaw object) {
694 return null;
695 }
696
697 /**
698 * Returns the result of interpreting the object as an instance of '<em>Fiscal Address</em>'.
699 * <!-- begin-user-doc -->
700 * This implementation returns null;
701 * returning a non-null result will terminate the switch.
702 * <!-- end-user-doc -->
703 * @param object the target of the switch.
704 * @return the result of interpreting the object as an instance of '<em>Fiscal Address</em>'.
705 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
706 * @generated
707 */
708 public T caseFiscal_Address(Fiscal_Address object) {
709 return null;
710 }
711
712 /**
713 * Returns the result of interpreting the object as an instance of '<em>Habitual Address</em>'.
714 * <!-- begin-user-doc -->
715 * This implementation returns null;
716 * returning a non-null result will terminate the switch.
717 * <!-- end-user-doc -->
718 * @param object the target of the switch.
719 * @return the result of interpreting the object as an instance of '<em>Habitual Address</em>'.
720 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
721 * @generated
722 */
723 public T caseHabitual_Address(Habitual_Address object) {
724 return null;
725 }
726
727 /**
728 * Returns the result of interpreting the object as an instance of '<em>Marriage Record</em>'.
729 * <!-- begin-user-doc -->
730 * This implementation returns null;
731 * returning a non-null result will terminate the switch.
732 * <!-- end-user-doc -->
733 * @param object the target of the switch.
734 * @return the result of interpreting the object as an instance of '<em>Marriage Record</em>'.
735 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
736 * @generated
737 */
738 public T caseMarriage_Record(Marriage_Record object) {
739 return null;
740 }
741
742 /**
743 * Returns the result of interpreting the object as an instance of '<em>Non Resident Tax Payer</em>'.
744 * <!-- begin-user-doc -->
745 * This implementation returns null;
746 * returning a non-null result will terminate the switch.
747 * <!-- end-user-doc -->
748 * @param object the target of the switch.
749 * @return the result of interpreting the object as an instance of '<em>Non Resident Tax Payer</em>'.
750 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
751 * @generated
752 */
753 public T caseNon_Resident_Tax_Payer(Non_Resident_Tax_Payer object) {
754 return null;
755 }
756
757 /**
758 * Returns the result of interpreting the object as an instance of '<em>Partnership Record</em>'.
759 * <!-- begin-user-doc -->
760 * This implementation returns null;
761 * returning a non-null result will terminate the switch.
762 * <!-- end-user-doc -->
763 * @param object the target of the switch.
764 * @return the result of interpreting the object as an instance of '<em>Partnership Record</em>'.
765 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
766 * @generated
767 */
768 public T casePartnership_Record(Partnership_Record object) {
769 return null;
770 }
771
772 /**
773 * Returns the result of interpreting the object as an instance of '<em>Resident Tax Payer</em>'.
774 * <!-- begin-user-doc -->
775 * This implementation returns null;
776 * returning a non-null result will terminate the switch.
777 * <!-- end-user-doc -->
778 * @param object the target of the switch.
779 * @return the result of interpreting the object as an instance of '<em>Resident Tax Payer</em>'.
780 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
781 * @generated
782 */
783 public T caseResident_Tax_Payer(Resident_Tax_Payer object) {
784 return null;
785 }
786
787 /**
788 * Returns the result of interpreting the object as an instance of '<em>Trade and Business Income</em>'.
789 * <!-- begin-user-doc -->
790 * This implementation returns null;
791 * returning a non-null result will terminate the switch.
792 * <!-- end-user-doc -->
793 * @param object the target of the switch.
794 * @return the result of interpreting the object as an instance of '<em>Trade and Business Income</em>'.
795 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
796 * @generated
797 */
798 public T caseTrade_and_Business_Income(Trade_and_Business_Income object) {
799 return null;
800 }
801
802 /**
803 * Returns the result of interpreting the object as an instance of '<em>Agriculture and Forestry Income</em>'.
804 * <!-- begin-user-doc -->
805 * This implementation returns null;
806 * returning a non-null result will terminate the switch.
807 * <!-- end-user-doc -->
808 * @param object the target of the switch.
809 * @return the result of interpreting the object as an instance of '<em>Agriculture and Forestry Income</em>'.
810 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
811 * @generated
812 */
813 public T caseAgriculture_and_Forestry_Income(Agriculture_and_Forestry_Income object) {
814 return null;
815 }
816
817 /**
818 * Returns the result of interpreting the object as an instance of '<em>Pensions and Annuities Income</em>'.
819 * <!-- begin-user-doc -->
820 * This implementation returns null;
821 * returning a non-null result will terminate the switch.
822 * <!-- end-user-doc -->
823 * @param object the target of the switch.
824 * @return the result of interpreting the object as an instance of '<em>Pensions and Annuities Income</em>'.
825 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
826 * @generated
827 */
828 public T casePensions_and_Annuities_Income(Pensions_and_Annuities_Income object) {
829 return null;
830 }
831
832 /**
833 * Returns the result of interpreting the object as an instance of '<em>Capital and Investments Income</em>'.
834 * <!-- begin-user-doc -->
835 * This implementation returns null;
836 * returning a non-null result will terminate the switch.
837 * <!-- end-user-doc -->
838 * @param object the target of the switch.
839 * @return the result of interpreting the object as an instance of '<em>Capital and Investments Income</em>'.
840 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
841 * @generated
842 */
843 public T caseCapital_and_Investments_Income(Capital_and_Investments_Income object) {
844 return null;
845 }
846
847 /**
848 * Returns the result of interpreting the object as an instance of '<em>Employment Income</em>'.
849 * <!-- begin-user-doc -->
850 * This implementation returns null;
851 * returning a non-null result will terminate the switch.
852 * <!-- end-user-doc -->
853 * @param object the target of the switch.
854 * @return the result of interpreting the object as an instance of '<em>Employment Income</em>'.
855 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
856 * @generated
857 */
858 public T caseEmployment_Income(Employment_Income object) {
859 return null;
860 }
861
862 /**
863 * Returns the result of interpreting the object as an instance of '<em>Rentals and Leases Income</em>'.
864 * <!-- begin-user-doc -->
865 * This implementation returns null;
866 * returning a non-null result will terminate the switch.
867 * <!-- end-user-doc -->
868 * @param object the target of the switch.
869 * @return the result of interpreting the object as an instance of '<em>Rentals and Leases Income</em>'.
870 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
871 * @generated
872 */
873 public T caseRentals_and_Leases_Income(Rentals_and_Leases_Income object) {
874 return null;
875 }
876
877 /**
878 * Returns the result of interpreting the object as an instance of '<em>Foreign Income</em>'.
879 * <!-- begin-user-doc -->
880 * This implementation returns null;
881 * returning a non-null result will terminate the switch.
882 * <!-- end-user-doc -->
883 * @param object the target of the switch.
884 * @return the result of interpreting the object as an instance of '<em>Foreign Income</em>'.
885 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
886 * @generated
887 */
888 public T caseForeign_Income(Foreign_Income object) {
889 return null;
890 }
891
892 /**
893 * Returns the result of interpreting the object as an instance of '<em>Local Income</em>'.
894 * <!-- begin-user-doc -->
895 * This implementation returns null;
896 * returning a non-null result will terminate the switch.
897 * <!-- end-user-doc -->
898 * @param object the target of the switch.
899 * @return the result of interpreting the object as an instance of '<em>Local Income</em>'.
900 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
901 * @generated
902 */
903 public T caseLocal_Income(Local_Income object) {
904 return null;
905 }
906
907 /**
908 * Returns the result of interpreting the object as an instance of '<em>CIM</em>'.
909 * <!-- begin-user-doc -->
910 * This implementation returns null;
911 * returning a non-null result will terminate the switch.
912 * <!-- end-user-doc -->
913 * @param object the target of the switch.
914 * @return the result of interpreting the object as an instance of '<em>CIM</em>'.
915 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
916 * @generated
917 */
918 public T caseCIM(CIM object) {
919 return null;
920 }
921
922 /**
923 * Returns the result of interpreting the object as an instance of '<em>CIP</em>'.
924 * <!-- begin-user-doc -->
925 * This implementation returns null;
926 * returning a non-null result will terminate the switch.
927 * <!-- end-user-doc -->
928 * @param object the target of the switch.
929 * @return the result of interpreting the object as an instance of '<em>CIP</em>'.
930 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
931 * @generated
932 */
933 public T caseCIP(CIP object) {
934 return null;
935 }
936
937 /**
938 * Returns the result of interpreting the object as an instance of '<em>CIS</em>'.
939 * <!-- begin-user-doc -->
940 * This implementation returns null;
941 * returning a non-null result will terminate the switch.
942 * <!-- end-user-doc -->
943 * @param object the target of the switch.
944 * @return the result of interpreting the object as an instance of '<em>CIS</em>'.
945 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
946 * @generated
947 */
948 public T caseCIS(CIS object) {
949 return null;
950 }
951
952 /**
953 * Returns the result of interpreting the object as an instance of '<em>Permanent Expense</em>'.
954 * <!-- begin-user-doc -->
955 * This implementation returns null;
956 * returning a non-null result will terminate the switch.
957 * <!-- end-user-doc -->
958 * @param object the target of the switch.
959 * @return the result of interpreting the object as an instance of '<em>Permanent Expense</em>'.
960 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
961 * @generated
962 */
963 public T casePermanent_Expense(Permanent_Expense object) {
964 return null;
965 }
966
967 /**
968 * Returns the result of interpreting the object as an instance of '<em>Special Expense DS</em>'.
969 * <!-- begin-user-doc -->
970 * This implementation returns null;
971 * returning a non-null result will terminate the switch.
972 * <!-- end-user-doc -->
973 * @param object the target of the switch.
974 * @return the result of interpreting the object as an instance of '<em>Special Expense DS</em>'.
975 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
976 * @generated
977 */
978 public T caseSpecial_Expense_DS(Special_Expense_DS object) {
979 return null;
980 }
981
982 /**
983 * Returns the result of interpreting the object as an instance of '<em>Interest Expense</em>'.
984 * <!-- begin-user-doc -->
985 * This implementation returns null;
986 * returning a non-null result will terminate the switch.
987 * <!-- end-user-doc -->
988 * @param object the target of the switch.
989 * @return the result of interpreting the object as an instance of '<em>Interest Expense</em>'.
990 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
991 * @generated
992 */
993 public T caseInterest_Expense(Interest_Expense object) {
994 return null;
995 }
996
997 /**
998 * Returns the result of interpreting the object as an instance of '<em>Private Insurance and Plan</em>'.
999 * <!-- begin-user-doc -->
1000 * This implementation returns null;
1001 * returning a non-null result will terminate the switch.
1002 * <!-- end-user-doc -->
1003 * @param object the target of the switch.
1004 * @return the result of interpreting the object as an instance of '<em>Private Insurance and Plan</em>'.
1005 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1006 * @generated
1007 */
1008 public T casePrivate_Insurance_and_Plan(Private_Insurance_and_Plan object) {
1009 return null;
1010 }
1011
1012 /**
1013 * Returns the result of interpreting the object as an instance of '<em>Health and Pension Insurance</em>'.
1014 * <!-- begin-user-doc -->
1015 * This implementation returns null;
1016 * returning a non-null result will terminate the switch.
1017 * <!-- end-user-doc -->
1018 * @param object the target of the switch.
1019 * @return the result of interpreting the object as an instance of '<em>Health and Pension Insurance</em>'.
1020 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1021 * @generated
1022 */
1023 public T caseHealth_and_Pension_Insurance(Health_and_Pension_Insurance object) {
1024 return null;
1025 }
1026
1027 /**
1028 * Returns the result of interpreting the object as an instance of '<em>Donation</em>'.
1029 * <!-- begin-user-doc -->
1030 * This implementation returns null;
1031 * returning a non-null result will terminate the switch.
1032 * <!-- end-user-doc -->
1033 * @param object the target of the switch.
1034 * @return the result of interpreting the object as an instance of '<em>Donation</em>'.
1035 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1036 * @generated
1037 */
1038 public T caseDonation(Donation object) {
1039 return null;
1040 }
1041
1042 /**
1043 * Returns the result of interpreting the object as an instance of '<em>Loss Carryforward</em>'.
1044 * <!-- begin-user-doc -->
1045 * This implementation returns null;
1046 * returning a non-null result will terminate the switch.
1047 * <!-- end-user-doc -->
1048 * @param object the target of the switch.
1049 * @return the result of interpreting the object as an instance of '<em>Loss Carryforward</em>'.
1050 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1051 * @generated
1052 */
1053 public T caseLoss_Carryforward(Loss_Carryforward object) {
1054 return null;
1055 }
1056
1057 /**
1058 * Returns the result of interpreting the object as an instance of '<em>Spousal Expense AC</em>'.
1059 * <!-- begin-user-doc -->
1060 * This implementation returns null;
1061 * returning a non-null result will terminate the switch.
1062 * <!-- end-user-doc -->
1063 * @param object the target of the switch.
1064 * @return the result of interpreting the object as an instance of '<em>Spousal Expense AC</em>'.
1065 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1066 * @generated
1067 */
1068 public T caseSpousal_Expense_AC(Spousal_Expense_AC object) {
1069 return null;
1070 }
1071
1072 /**
1073 * Returns the result of interpreting the object as an instance of '<em>Extraordinary Expense CE</em>'.
1074 * <!-- begin-user-doc -->
1075 * This implementation returns null;
1076 * returning a non-null result will terminate the switch.
1077 * <!-- end-user-doc -->
1078 * @param object the target of the switch.
1079 * @return the result of interpreting the object as an instance of '<em>Extraordinary Expense CE</em>'.
1080 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1081 * @generated
1082 */
1083 public T caseExtraordinary_Expense_CE(Extraordinary_Expense_CE object) {
1084 return null;
1085 }
1086
1087 /**
1088 * Returns the result of interpreting the object as an instance of '<em>Travel Expense FD</em>'.
1089 * <!-- begin-user-doc -->
1090 * This implementation returns null;
1091 * returning a non-null result will terminate the switch.
1092 * <!-- end-user-doc -->
1093 * @param object the target of the switch.
1094 * @return the result of interpreting the object as an instance of '<em>Travel Expense FD</em>'.
1095 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1096 * @generated
1097 */
1098 public T caseTravel_Expense_FD(Travel_Expense_FD object) {
1099 return null;
1100 }
1101
1102 /**
1103 * Returns the result of interpreting the object as an instance of '<em>Professional Expense</em>'.
1104 * <!-- begin-user-doc -->
1105 * This implementation returns null;
1106 * returning a non-null result will terminate the switch.
1107 * <!-- end-user-doc -->
1108 * @param object the target of the switch.
1109 * @return the result of interpreting the object as an instance of '<em>Professional Expense</em>'.
1110 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1111 * @generated
1112 */
1113 public T caseProfessional_Expense(Professional_Expense object) {
1114 return null;
1115 }
1116
1117 /**
1118 * Returns the result of interpreting the object as an instance of '<em>Miscellaneous Expense FO</em>'.
1119 * <!-- begin-user-doc -->
1120 * This implementation returns null;
1121 * returning a non-null result will terminate the switch.
1122 * <!-- end-user-doc -->
1123 * @param object the target of the switch.
1124 * @return the result of interpreting the object as an instance of '<em>Miscellaneous Expense FO</em>'.
1125 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1126 * @generated
1127 */
1128 public T caseMiscellaneous_Expense_FO(Miscellaneous_Expense_FO object) {
1129 return null;
1130 }
1131
1132 /**
1133 * Returns the result of interpreting the object as an instance of '<em>Resource</em>'.
1134 * <!-- begin-user-doc -->
1135 * This implementation returns null;
1136 * returning a non-null result will terminate the switch.
1137 * <!-- end-user-doc -->
1138 * @param object the target of the switch.
1139 * @return the result of interpreting the object as an instance of '<em>Resource</em>'.
1140 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1141 * @generated
1142 */
1143 public T caseResource(Resource object) {
1144 return null;
1145 }
1146
1147 /**
1148 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
1149 * <!-- begin-user-doc -->
1150 * This implementation returns null;
1151 * returning a non-null result will terminate the switch, but this is the last case anyway.
1152 * <!-- end-user-doc -->
1153 * @param object the target of the switch.
1154 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
1155 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
1156 * @generated
1157 */
1158 @Override
1159 public T defaultCase(EObject object) {
1160 return null;
1161 }
1162
1163} //TaxationWithRootSwitch
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/FamilyTree.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/FamilyTree.java
new file mode 100644
index 00000000..408373a3
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/FamilyTree.java
@@ -0,0 +1,38 @@
1/**
2 */
3package familytree;
4
5import org.eclipse.emf.common.util.EList;
6
7import org.eclipse.emf.ecore.EObject;
8
9/**
10 * <!-- begin-user-doc -->
11 * A representation of the model object '<em><b>Family Tree</b></em>'.
12 * <!-- end-user-doc -->
13 *
14 * <p>
15 * The following features are supported:
16 * </p>
17 * <ul>
18 * <li>{@link familytree.FamilyTree#getMembers <em>Members</em>}</li>
19 * </ul>
20 *
21 * @see familytree.FamilytreePackage#getFamilyTree()
22 * @model
23 * @generated
24 */
25public interface FamilyTree extends EObject {
26 /**
27 * Returns the value of the '<em><b>Members</b></em>' containment reference list.
28 * The list contents are of type {@link familytree.Member}.
29 * <!-- begin-user-doc -->
30 * <!-- end-user-doc -->
31 * @return the value of the '<em>Members</em>' containment reference list.
32 * @see familytree.FamilytreePackage#getFamilyTree_Members()
33 * @model containment="true"
34 * @generated
35 */
36 EList<Member> getMembers();
37
38} // FamilyTree
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/FamilytreeFactory.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/FamilytreeFactory.java
new file mode 100644
index 00000000..534da223
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/FamilytreeFactory.java
@@ -0,0 +1,51 @@
1/**
2 */
3package familytree;
4
5import org.eclipse.emf.ecore.EFactory;
6
7/**
8 * <!-- begin-user-doc -->
9 * The <b>Factory</b> for the model.
10 * It provides a create method for each non-abstract class of the model.
11 * <!-- end-user-doc -->
12 * @see familytree.FamilytreePackage
13 * @generated
14 */
15public interface FamilytreeFactory extends EFactory {
16 /**
17 * The singleton instance of the factory.
18 * <!-- begin-user-doc -->
19 * <!-- end-user-doc -->
20 * @generated
21 */
22 FamilytreeFactory eINSTANCE = familytree.impl.FamilytreeFactoryImpl.init();
23
24 /**
25 * Returns a new object of class '<em>Family Tree</em>'.
26 * <!-- begin-user-doc -->
27 * <!-- end-user-doc -->
28 * @return a new object of class '<em>Family Tree</em>'.
29 * @generated
30 */
31 FamilyTree createFamilyTree();
32
33 /**
34 * Returns a new object of class '<em>Member</em>'.
35 * <!-- begin-user-doc -->
36 * <!-- end-user-doc -->
37 * @return a new object of class '<em>Member</em>'.
38 * @generated
39 */
40 Member createMember();
41
42 /**
43 * Returns the package supported by this factory.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @return the package supported by this factory.
47 * @generated
48 */
49 FamilytreePackage getFamilytreePackage();
50
51} //FamilytreeFactory
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/FamilytreePackage.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/FamilytreePackage.java
new file mode 100644
index 00000000..572a0fe4
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/FamilytreePackage.java
@@ -0,0 +1,321 @@
1/**
2 */
3package familytree;
4
5import org.eclipse.emf.ecore.EAttribute;
6import org.eclipse.emf.ecore.EClass;
7import org.eclipse.emf.ecore.EPackage;
8import org.eclipse.emf.ecore.EReference;
9
10/**
11 * <!-- begin-user-doc -->
12 * The <b>Package</b> for the model.
13 * It contains accessors for the meta objects to represent
14 * <ul>
15 * <li>each class,</li>
16 * <li>each feature of each class,</li>
17 * <li>each operation of each class,</li>
18 * <li>each enum,</li>
19 * <li>and each data type</li>
20 * </ul>
21 * <!-- end-user-doc -->
22 * @see familytree.FamilytreeFactory
23 * @model kind="package"
24 * @generated
25 */
26public interface FamilytreePackage extends EPackage {
27 /**
28 * The package name.
29 * <!-- begin-user-doc -->
30 * <!-- end-user-doc -->
31 * @generated
32 */
33 String eNAME = "familytree";
34
35 /**
36 * The package namespace URI.
37 * <!-- begin-user-doc -->
38 * <!-- end-user-doc -->
39 * @generated
40 */
41 String eNS_URI = "http://www.example.org/familytree";
42
43 /**
44 * The package namespace name.
45 * <!-- begin-user-doc -->
46 * <!-- end-user-doc -->
47 * @generated
48 */
49 String eNS_PREFIX = "familytree";
50
51 /**
52 * The singleton instance of the package.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @generated
56 */
57 FamilytreePackage eINSTANCE = familytree.impl.FamilytreePackageImpl.init();
58
59 /**
60 * The meta object id for the '{@link familytree.impl.FamilyTreeImpl <em>Family Tree</em>}' class.
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @see familytree.impl.FamilyTreeImpl
64 * @see familytree.impl.FamilytreePackageImpl#getFamilyTree()
65 * @generated
66 */
67 int FAMILY_TREE = 0;
68
69 /**
70 * The feature id for the '<em><b>Members</b></em>' containment reference list.
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @generated
74 * @ordered
75 */
76 int FAMILY_TREE__MEMBERS = 0;
77
78 /**
79 * The number of structural features of the '<em>Family Tree</em>' class.
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @generated
83 * @ordered
84 */
85 int FAMILY_TREE_FEATURE_COUNT = 1;
86
87 /**
88 * The number of operations of the '<em>Family Tree</em>' class.
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @generated
92 * @ordered
93 */
94 int FAMILY_TREE_OPERATION_COUNT = 0;
95
96 /**
97 * The meta object id for the '{@link familytree.impl.MemberImpl <em>Member</em>}' class.
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @see familytree.impl.MemberImpl
101 * @see familytree.impl.FamilytreePackageImpl#getMember()
102 * @generated
103 */
104 int MEMBER = 1;
105
106 /**
107 * The feature id for the '<em><b>Name</b></em>' attribute.
108 * <!-- begin-user-doc -->
109 * <!-- end-user-doc -->
110 * @generated
111 * @ordered
112 */
113 int MEMBER__NAME = 0;
114
115 /**
116 * The feature id for the '<em><b>Age</b></em>' attribute.
117 * <!-- begin-user-doc -->
118 * <!-- end-user-doc -->
119 * @generated
120 * @ordered
121 */
122 int MEMBER__AGE = 1;
123
124 /**
125 * The feature id for the '<em><b>Children</b></em>' reference list.
126 * <!-- begin-user-doc -->
127 * <!-- end-user-doc -->
128 * @generated
129 * @ordered
130 */
131 int MEMBER__CHILDREN = 2;
132
133 /**
134 * The feature id for the '<em><b>Parents</b></em>' reference list.
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @generated
138 * @ordered
139 */
140 int MEMBER__PARENTS = 3;
141
142 /**
143 * The number of structural features of the '<em>Member</em>' class.
144 * <!-- begin-user-doc -->
145 * <!-- end-user-doc -->
146 * @generated
147 * @ordered
148 */
149 int MEMBER_FEATURE_COUNT = 4;
150
151 /**
152 * The number of operations of the '<em>Member</em>' class.
153 * <!-- begin-user-doc -->
154 * <!-- end-user-doc -->
155 * @generated
156 * @ordered
157 */
158 int MEMBER_OPERATION_COUNT = 0;
159
160
161 /**
162 * Returns the meta object for class '{@link familytree.FamilyTree <em>Family Tree</em>}'.
163 * <!-- begin-user-doc -->
164 * <!-- end-user-doc -->
165 * @return the meta object for class '<em>Family Tree</em>'.
166 * @see familytree.FamilyTree
167 * @generated
168 */
169 EClass getFamilyTree();
170
171 /**
172 * Returns the meta object for the containment reference list '{@link familytree.FamilyTree#getMembers <em>Members</em>}'.
173 * <!-- begin-user-doc -->
174 * <!-- end-user-doc -->
175 * @return the meta object for the containment reference list '<em>Members</em>'.
176 * @see familytree.FamilyTree#getMembers()
177 * @see #getFamilyTree()
178 * @generated
179 */
180 EReference getFamilyTree_Members();
181
182 /**
183 * Returns the meta object for class '{@link familytree.Member <em>Member</em>}'.
184 * <!-- begin-user-doc -->
185 * <!-- end-user-doc -->
186 * @return the meta object for class '<em>Member</em>'.
187 * @see familytree.Member
188 * @generated
189 */
190 EClass getMember();
191
192 /**
193 * Returns the meta object for the attribute '{@link familytree.Member#getName <em>Name</em>}'.
194 * <!-- begin-user-doc -->
195 * <!-- end-user-doc -->
196 * @return the meta object for the attribute '<em>Name</em>'.
197 * @see familytree.Member#getName()
198 * @see #getMember()
199 * @generated
200 */
201 EAttribute getMember_Name();
202
203 /**
204 * Returns the meta object for the attribute '{@link familytree.Member#getAge <em>Age</em>}'.
205 * <!-- begin-user-doc -->
206 * <!-- end-user-doc -->
207 * @return the meta object for the attribute '<em>Age</em>'.
208 * @see familytree.Member#getAge()
209 * @see #getMember()
210 * @generated
211 */
212 EAttribute getMember_Age();
213
214 /**
215 * Returns the meta object for the reference list '{@link familytree.Member#getChildren <em>Children</em>}'.
216 * <!-- begin-user-doc -->
217 * <!-- end-user-doc -->
218 * @return the meta object for the reference list '<em>Children</em>'.
219 * @see familytree.Member#getChildren()
220 * @see #getMember()
221 * @generated
222 */
223 EReference getMember_Children();
224
225 /**
226 * Returns the meta object for the reference list '{@link familytree.Member#getParents <em>Parents</em>}'.
227 * <!-- begin-user-doc -->
228 * <!-- end-user-doc -->
229 * @return the meta object for the reference list '<em>Parents</em>'.
230 * @see familytree.Member#getParents()
231 * @see #getMember()
232 * @generated
233 */
234 EReference getMember_Parents();
235
236 /**
237 * Returns the factory that creates the instances of the model.
238 * <!-- begin-user-doc -->
239 * <!-- end-user-doc -->
240 * @return the factory that creates the instances of the model.
241 * @generated
242 */
243 FamilytreeFactory getFamilytreeFactory();
244
245 /**
246 * <!-- begin-user-doc -->
247 * Defines literals for the meta objects that represent
248 * <ul>
249 * <li>each class,</li>
250 * <li>each feature of each class,</li>
251 * <li>each operation of each class,</li>
252 * <li>each enum,</li>
253 * <li>and each data type</li>
254 * </ul>
255 * <!-- end-user-doc -->
256 * @generated
257 */
258 interface Literals {
259 /**
260 * The meta object literal for the '{@link familytree.impl.FamilyTreeImpl <em>Family Tree</em>}' class.
261 * <!-- begin-user-doc -->
262 * <!-- end-user-doc -->
263 * @see familytree.impl.FamilyTreeImpl
264 * @see familytree.impl.FamilytreePackageImpl#getFamilyTree()
265 * @generated
266 */
267 EClass FAMILY_TREE = eINSTANCE.getFamilyTree();
268
269 /**
270 * The meta object literal for the '<em><b>Members</b></em>' containment reference list feature.
271 * <!-- begin-user-doc -->
272 * <!-- end-user-doc -->
273 * @generated
274 */
275 EReference FAMILY_TREE__MEMBERS = eINSTANCE.getFamilyTree_Members();
276
277 /**
278 * The meta object literal for the '{@link familytree.impl.MemberImpl <em>Member</em>}' class.
279 * <!-- begin-user-doc -->
280 * <!-- end-user-doc -->
281 * @see familytree.impl.MemberImpl
282 * @see familytree.impl.FamilytreePackageImpl#getMember()
283 * @generated
284 */
285 EClass MEMBER = eINSTANCE.getMember();
286
287 /**
288 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
289 * <!-- begin-user-doc -->
290 * <!-- end-user-doc -->
291 * @generated
292 */
293 EAttribute MEMBER__NAME = eINSTANCE.getMember_Name();
294
295 /**
296 * The meta object literal for the '<em><b>Age</b></em>' attribute feature.
297 * <!-- begin-user-doc -->
298 * <!-- end-user-doc -->
299 * @generated
300 */
301 EAttribute MEMBER__AGE = eINSTANCE.getMember_Age();
302
303 /**
304 * The meta object literal for the '<em><b>Children</b></em>' reference list feature.
305 * <!-- begin-user-doc -->
306 * <!-- end-user-doc -->
307 * @generated
308 */
309 EReference MEMBER__CHILDREN = eINSTANCE.getMember_Children();
310
311 /**
312 * The meta object literal for the '<em><b>Parents</b></em>' reference list feature.
313 * <!-- begin-user-doc -->
314 * <!-- end-user-doc -->
315 * @generated
316 */
317 EReference MEMBER__PARENTS = eINSTANCE.getMember_Parents();
318
319 }
320
321} //FamilytreePackage
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/Member.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/Member.java
new file mode 100644
index 00000000..9438b5e3
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/Member.java
@@ -0,0 +1,102 @@
1/**
2 */
3package familytree;
4
5import org.eclipse.emf.common.util.EList;
6
7import org.eclipse.emf.ecore.EObject;
8
9/**
10 * <!-- begin-user-doc -->
11 * A representation of the model object '<em><b>Member</b></em>'.
12 * <!-- end-user-doc -->
13 *
14 * <p>
15 * The following features are supported:
16 * </p>
17 * <ul>
18 * <li>{@link familytree.Member#getName <em>Name</em>}</li>
19 * <li>{@link familytree.Member#getAge <em>Age</em>}</li>
20 * <li>{@link familytree.Member#getChildren <em>Children</em>}</li>
21 * <li>{@link familytree.Member#getParents <em>Parents</em>}</li>
22 * </ul>
23 *
24 * @see familytree.FamilytreePackage#getMember()
25 * @model
26 * @generated
27 */
28public interface Member extends EObject {
29 /**
30 * Returns the value of the '<em><b>Name</b></em>' attribute.
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @return the value of the '<em>Name</em>' attribute.
34 * @see #setName(String)
35 * @see familytree.FamilytreePackage#getMember_Name()
36 * @model
37 * @generated
38 */
39 String getName();
40
41 /**
42 * Sets the value of the '{@link familytree.Member#getName <em>Name</em>}' attribute.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @param value the new value of the '<em>Name</em>' attribute.
46 * @see #getName()
47 * @generated
48 */
49 void setName(String value);
50
51 /**
52 * Returns the value of the '<em><b>Age</b></em>' attribute.
53 * The default value is <code>"0"</code>.
54 * <!-- begin-user-doc -->
55 * <!-- end-user-doc -->
56 * @return the value of the '<em>Age</em>' attribute.
57 * @see #setAge(int)
58 * @see familytree.FamilytreePackage#getMember_Age()
59 * @model default="0" required="true"
60 * @generated
61 */
62 int getAge();
63
64 /**
65 * Sets the value of the '{@link familytree.Member#getAge <em>Age</em>}' attribute.
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @param value the new value of the '<em>Age</em>' attribute.
69 * @see #getAge()
70 * @generated
71 */
72 void setAge(int value);
73
74 /**
75 * Returns the value of the '<em><b>Children</b></em>' reference list.
76 * The list contents are of type {@link familytree.Member}.
77 * It is bidirectional and its opposite is '{@link familytree.Member#getParents <em>Parents</em>}'.
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @return the value of the '<em>Children</em>' reference list.
81 * @see familytree.FamilytreePackage#getMember_Children()
82 * @see familytree.Member#getParents
83 * @model opposite="parents"
84 * @generated
85 */
86 EList<Member> getChildren();
87
88 /**
89 * Returns the value of the '<em><b>Parents</b></em>' reference list.
90 * The list contents are of type {@link familytree.Member}.
91 * It is bidirectional and its opposite is '{@link familytree.Member#getChildren <em>Children</em>}'.
92 * <!-- begin-user-doc -->
93 * <!-- end-user-doc -->
94 * @return the value of the '<em>Parents</em>' reference list.
95 * @see familytree.FamilytreePackage#getMember_Parents()
96 * @see familytree.Member#getChildren
97 * @model opposite="children" upper="2"
98 * @generated
99 */
100 EList<Member> getParents();
101
102} // Member
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/impl/FamilyTreeImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/impl/FamilyTreeImpl.java
new file mode 100644
index 00000000..07b0a1dd
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/impl/FamilyTreeImpl.java
@@ -0,0 +1,153 @@
1/**
2 */
3package familytree.impl;
4
5import familytree.FamilyTree;
6import familytree.FamilytreePackage;
7import familytree.Member;
8
9import java.util.Collection;
10
11import org.eclipse.emf.common.notify.NotificationChain;
12
13import org.eclipse.emf.common.util.EList;
14
15import org.eclipse.emf.ecore.EClass;
16import org.eclipse.emf.ecore.InternalEObject;
17
18import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
19
20import org.eclipse.emf.ecore.util.EObjectContainmentEList;
21import org.eclipse.emf.ecore.util.InternalEList;
22
23/**
24 * <!-- begin-user-doc -->
25 * An implementation of the model object '<em><b>Family Tree</b></em>'.
26 * <!-- end-user-doc -->
27 * <p>
28 * The following features are implemented:
29 * </p>
30 * <ul>
31 * <li>{@link familytree.impl.FamilyTreeImpl#getMembers <em>Members</em>}</li>
32 * </ul>
33 *
34 * @generated
35 */
36public class FamilyTreeImpl extends MinimalEObjectImpl.Container implements FamilyTree {
37 /**
38 * The cached value of the '{@link #getMembers() <em>Members</em>}' containment reference list.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @see #getMembers()
42 * @generated
43 * @ordered
44 */
45 protected EList<Member> members;
46
47 /**
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @generated
51 */
52 protected FamilyTreeImpl() {
53 super();
54 }
55
56 /**
57 * <!-- begin-user-doc -->
58 * <!-- end-user-doc -->
59 * @generated
60 */
61 @Override
62 protected EClass eStaticClass() {
63 return FamilytreePackage.Literals.FAMILY_TREE;
64 }
65
66 /**
67 * <!-- begin-user-doc -->
68 * <!-- end-user-doc -->
69 * @generated
70 */
71 @Override
72 public EList<Member> getMembers() {
73 if (members == null) {
74 members = new EObjectContainmentEList<Member>(Member.class, this, FamilytreePackage.FAMILY_TREE__MEMBERS);
75 }
76 return members;
77 }
78
79 /**
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @generated
83 */
84 @Override
85 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
86 switch (featureID) {
87 case FamilytreePackage.FAMILY_TREE__MEMBERS:
88 return ((InternalEList<?>)getMembers()).basicRemove(otherEnd, msgs);
89 }
90 return super.eInverseRemove(otherEnd, featureID, msgs);
91 }
92
93 /**
94 * <!-- begin-user-doc -->
95 * <!-- end-user-doc -->
96 * @generated
97 */
98 @Override
99 public Object eGet(int featureID, boolean resolve, boolean coreType) {
100 switch (featureID) {
101 case FamilytreePackage.FAMILY_TREE__MEMBERS:
102 return getMembers();
103 }
104 return super.eGet(featureID, resolve, coreType);
105 }
106
107 /**
108 * <!-- begin-user-doc -->
109 * <!-- end-user-doc -->
110 * @generated
111 */
112 @SuppressWarnings("unchecked")
113 @Override
114 public void eSet(int featureID, Object newValue) {
115 switch (featureID) {
116 case FamilytreePackage.FAMILY_TREE__MEMBERS:
117 getMembers().clear();
118 getMembers().addAll((Collection<? extends Member>)newValue);
119 return;
120 }
121 super.eSet(featureID, newValue);
122 }
123
124 /**
125 * <!-- begin-user-doc -->
126 * <!-- end-user-doc -->
127 * @generated
128 */
129 @Override
130 public void eUnset(int featureID) {
131 switch (featureID) {
132 case FamilytreePackage.FAMILY_TREE__MEMBERS:
133 getMembers().clear();
134 return;
135 }
136 super.eUnset(featureID);
137 }
138
139 /**
140 * <!-- begin-user-doc -->
141 * <!-- end-user-doc -->
142 * @generated
143 */
144 @Override
145 public boolean eIsSet(int featureID) {
146 switch (featureID) {
147 case FamilytreePackage.FAMILY_TREE__MEMBERS:
148 return members != null && !members.isEmpty();
149 }
150 return super.eIsSet(featureID);
151 }
152
153} //FamilyTreeImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/impl/FamilytreeFactoryImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/impl/FamilytreeFactoryImpl.java
new file mode 100644
index 00000000..bc54d09c
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/impl/FamilytreeFactoryImpl.java
@@ -0,0 +1,109 @@
1/**
2 */
3package familytree.impl;
4
5import familytree.*;
6
7import org.eclipse.emf.ecore.EClass;
8import org.eclipse.emf.ecore.EObject;
9import org.eclipse.emf.ecore.EPackage;
10
11import org.eclipse.emf.ecore.impl.EFactoryImpl;
12
13import org.eclipse.emf.ecore.plugin.EcorePlugin;
14
15/**
16 * <!-- begin-user-doc -->
17 * An implementation of the model <b>Factory</b>.
18 * <!-- end-user-doc -->
19 * @generated
20 */
21public class FamilytreeFactoryImpl extends EFactoryImpl implements FamilytreeFactory {
22 /**
23 * Creates the default factory implementation.
24 * <!-- begin-user-doc -->
25 * <!-- end-user-doc -->
26 * @generated
27 */
28 public static FamilytreeFactory init() {
29 try {
30 FamilytreeFactory theFamilytreeFactory = (FamilytreeFactory)EPackage.Registry.INSTANCE.getEFactory(FamilytreePackage.eNS_URI);
31 if (theFamilytreeFactory != null) {
32 return theFamilytreeFactory;
33 }
34 }
35 catch (Exception exception) {
36 EcorePlugin.INSTANCE.log(exception);
37 }
38 return new FamilytreeFactoryImpl();
39 }
40
41 /**
42 * Creates an instance of the factory.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @generated
46 */
47 public FamilytreeFactoryImpl() {
48 super();
49 }
50
51 /**
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @generated
55 */
56 @Override
57 public EObject create(EClass eClass) {
58 switch (eClass.getClassifierID()) {
59 case FamilytreePackage.FAMILY_TREE: return createFamilyTree();
60 case FamilytreePackage.MEMBER: return createMember();
61 default:
62 throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
63 }
64 }
65
66 /**
67 * <!-- begin-user-doc -->
68 * <!-- end-user-doc -->
69 * @generated
70 */
71 @Override
72 public FamilyTree createFamilyTree() {
73 FamilyTreeImpl familyTree = new FamilyTreeImpl();
74 return familyTree;
75 }
76
77 /**
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @generated
81 */
82 @Override
83 public Member createMember() {
84 MemberImpl member = new MemberImpl();
85 return member;
86 }
87
88 /**
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @generated
92 */
93 @Override
94 public FamilytreePackage getFamilytreePackage() {
95 return (FamilytreePackage)getEPackage();
96 }
97
98 /**
99 * <!-- begin-user-doc -->
100 * <!-- end-user-doc -->
101 * @deprecated
102 * @generated
103 */
104 @Deprecated
105 public static FamilytreePackage getPackage() {
106 return FamilytreePackage.eINSTANCE;
107 }
108
109} //FamilytreeFactoryImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/impl/FamilytreePackageImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/impl/FamilytreePackageImpl.java
new file mode 100644
index 00000000..7e5078ab
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/impl/FamilytreePackageImpl.java
@@ -0,0 +1,251 @@
1/**
2 */
3package familytree.impl;
4
5import familytree.FamilyTree;
6import familytree.FamilytreeFactory;
7import familytree.FamilytreePackage;
8import familytree.Member;
9
10import org.eclipse.emf.ecore.EAttribute;
11import org.eclipse.emf.ecore.EClass;
12import org.eclipse.emf.ecore.EPackage;
13import org.eclipse.emf.ecore.EReference;
14
15import org.eclipse.emf.ecore.impl.EPackageImpl;
16
17/**
18 * <!-- begin-user-doc -->
19 * An implementation of the model <b>Package</b>.
20 * <!-- end-user-doc -->
21 * @generated
22 */
23public class FamilytreePackageImpl extends EPackageImpl implements FamilytreePackage {
24 /**
25 * <!-- begin-user-doc -->
26 * <!-- end-user-doc -->
27 * @generated
28 */
29 private EClass familyTreeEClass = null;
30
31 /**
32 * <!-- begin-user-doc -->
33 * <!-- end-user-doc -->
34 * @generated
35 */
36 private EClass memberEClass = null;
37
38 /**
39 * Creates an instance of the model <b>Package</b>, registered with
40 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
41 * package URI value.
42 * <p>Note: the correct way to create the package is via the static
43 * factory method {@link #init init()}, which also performs
44 * initialization of the package, or returns the registered package,
45 * if one already exists.
46 * <!-- begin-user-doc -->
47 * <!-- end-user-doc -->
48 * @see org.eclipse.emf.ecore.EPackage.Registry
49 * @see familytree.FamilytreePackage#eNS_URI
50 * @see #init()
51 * @generated
52 */
53 private FamilytreePackageImpl() {
54 super(eNS_URI, FamilytreeFactory.eINSTANCE);
55 }
56
57 /**
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @generated
61 */
62 private static boolean isInited = false;
63
64 /**
65 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
66 *
67 * <p>This method is used to initialize {@link FamilytreePackage#eINSTANCE} when that field is accessed.
68 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
69 * <!-- begin-user-doc -->
70 * <!-- end-user-doc -->
71 * @see #eNS_URI
72 * @see #createPackageContents()
73 * @see #initializePackageContents()
74 * @generated
75 */
76 public static FamilytreePackage init() {
77 if (isInited) return (FamilytreePackage)EPackage.Registry.INSTANCE.getEPackage(FamilytreePackage.eNS_URI);
78
79 // Obtain or create and register package
80 Object registeredFamilytreePackage = EPackage.Registry.INSTANCE.get(eNS_URI);
81 FamilytreePackageImpl theFamilytreePackage = registeredFamilytreePackage instanceof FamilytreePackageImpl ? (FamilytreePackageImpl)registeredFamilytreePackage : new FamilytreePackageImpl();
82
83 isInited = true;
84
85 // Create package meta-data objects
86 theFamilytreePackage.createPackageContents();
87
88 // Initialize created meta-data
89 theFamilytreePackage.initializePackageContents();
90
91 // Mark meta-data to indicate it can't be changed
92 theFamilytreePackage.freeze();
93
94 // Update the registry and return the package
95 EPackage.Registry.INSTANCE.put(FamilytreePackage.eNS_URI, theFamilytreePackage);
96 return theFamilytreePackage;
97 }
98
99 /**
100 * <!-- begin-user-doc -->
101 * <!-- end-user-doc -->
102 * @generated
103 */
104 @Override
105 public EClass getFamilyTree() {
106 return familyTreeEClass;
107 }
108
109 /**
110 * <!-- begin-user-doc -->
111 * <!-- end-user-doc -->
112 * @generated
113 */
114 @Override
115 public EReference getFamilyTree_Members() {
116 return (EReference)familyTreeEClass.getEStructuralFeatures().get(0);
117 }
118
119 /**
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @generated
123 */
124 @Override
125 public EClass getMember() {
126 return memberEClass;
127 }
128
129 /**
130 * <!-- begin-user-doc -->
131 * <!-- end-user-doc -->
132 * @generated
133 */
134 @Override
135 public EAttribute getMember_Name() {
136 return (EAttribute)memberEClass.getEStructuralFeatures().get(0);
137 }
138
139 /**
140 * <!-- begin-user-doc -->
141 * <!-- end-user-doc -->
142 * @generated
143 */
144 @Override
145 public EAttribute getMember_Age() {
146 return (EAttribute)memberEClass.getEStructuralFeatures().get(1);
147 }
148
149 /**
150 * <!-- begin-user-doc -->
151 * <!-- end-user-doc -->
152 * @generated
153 */
154 @Override
155 public EReference getMember_Children() {
156 return (EReference)memberEClass.getEStructuralFeatures().get(2);
157 }
158
159 /**
160 * <!-- begin-user-doc -->
161 * <!-- end-user-doc -->
162 * @generated
163 */
164 @Override
165 public EReference getMember_Parents() {
166 return (EReference)memberEClass.getEStructuralFeatures().get(3);
167 }
168
169 /**
170 * <!-- begin-user-doc -->
171 * <!-- end-user-doc -->
172 * @generated
173 */
174 @Override
175 public FamilytreeFactory getFamilytreeFactory() {
176 return (FamilytreeFactory)getEFactoryInstance();
177 }
178
179 /**
180 * <!-- begin-user-doc -->
181 * <!-- end-user-doc -->
182 * @generated
183 */
184 private boolean isCreated = false;
185
186 /**
187 * Creates the meta-model objects for the package. This method is
188 * guarded to have no affect on any invocation but its first.
189 * <!-- begin-user-doc -->
190 * <!-- end-user-doc -->
191 * @generated
192 */
193 public void createPackageContents() {
194 if (isCreated) return;
195 isCreated = true;
196
197 // Create classes and their features
198 familyTreeEClass = createEClass(FAMILY_TREE);
199 createEReference(familyTreeEClass, FAMILY_TREE__MEMBERS);
200
201 memberEClass = createEClass(MEMBER);
202 createEAttribute(memberEClass, MEMBER__NAME);
203 createEAttribute(memberEClass, MEMBER__AGE);
204 createEReference(memberEClass, MEMBER__CHILDREN);
205 createEReference(memberEClass, MEMBER__PARENTS);
206 }
207
208 /**
209 * <!-- begin-user-doc -->
210 * <!-- end-user-doc -->
211 * @generated
212 */
213 private boolean isInitialized = false;
214
215 /**
216 * Complete the initialization of the package and its meta-model. This
217 * method is guarded to have no affect on any invocation but its first.
218 * <!-- begin-user-doc -->
219 * <!-- end-user-doc -->
220 * @generated
221 */
222 public void initializePackageContents() {
223 if (isInitialized) return;
224 isInitialized = true;
225
226 // Initialize package
227 setName(eNAME);
228 setNsPrefix(eNS_PREFIX);
229 setNsURI(eNS_URI);
230
231 // Create type parameters
232
233 // Set bounds for type parameters
234
235 // Add supertypes to classes
236
237 // Initialize classes, features, and operations; add parameters
238 initEClass(familyTreeEClass, FamilyTree.class, "FamilyTree", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
239 initEReference(getFamilyTree_Members(), this.getMember(), null, "members", null, 0, -1, FamilyTree.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
240
241 initEClass(memberEClass, Member.class, "Member", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
242 initEAttribute(getMember_Name(), ecorePackage.getEString(), "name", null, 0, 1, Member.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
243 initEAttribute(getMember_Age(), ecorePackage.getEInt(), "age", "0", 1, 1, Member.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
244 initEReference(getMember_Children(), this.getMember(), this.getMember_Parents(), "children", null, 0, -1, Member.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
245 initEReference(getMember_Parents(), this.getMember(), this.getMember_Children(), "parents", null, 0, 2, Member.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
246
247 // Create resource
248 createResource(eNS_URI);
249 }
250
251} //FamilytreePackageImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/impl/MemberImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/impl/MemberImpl.java
new file mode 100644
index 00000000..77e423bd
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/impl/MemberImpl.java
@@ -0,0 +1,334 @@
1/**
2 */
3package familytree.impl;
4
5import familytree.FamilytreePackage;
6import familytree.Member;
7
8import java.util.Collection;
9
10import org.eclipse.emf.common.notify.Notification;
11import org.eclipse.emf.common.notify.NotificationChain;
12
13import org.eclipse.emf.common.util.EList;
14
15import org.eclipse.emf.ecore.EClass;
16import org.eclipse.emf.ecore.InternalEObject;
17
18import org.eclipse.emf.ecore.impl.ENotificationImpl;
19import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
20
21import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
22import org.eclipse.emf.ecore.util.InternalEList;
23
24/**
25 * <!-- begin-user-doc -->
26 * An implementation of the model object '<em><b>Member</b></em>'.
27 * <!-- end-user-doc -->
28 * <p>
29 * The following features are implemented:
30 * </p>
31 * <ul>
32 * <li>{@link familytree.impl.MemberImpl#getName <em>Name</em>}</li>
33 * <li>{@link familytree.impl.MemberImpl#getAge <em>Age</em>}</li>
34 * <li>{@link familytree.impl.MemberImpl#getChildren <em>Children</em>}</li>
35 * <li>{@link familytree.impl.MemberImpl#getParents <em>Parents</em>}</li>
36 * </ul>
37 *
38 * @generated
39 */
40public class MemberImpl extends MinimalEObjectImpl.Container implements Member {
41 /**
42 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #getName()
46 * @generated
47 * @ordered
48 */
49 protected static final String NAME_EDEFAULT = null;
50
51 /**
52 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #getName()
56 * @generated
57 * @ordered
58 */
59 protected String name = NAME_EDEFAULT;
60
61 /**
62 * The default value of the '{@link #getAge() <em>Age</em>}' attribute.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @see #getAge()
66 * @generated
67 * @ordered
68 */
69 protected static final int AGE_EDEFAULT = 0;
70
71 /**
72 * The cached value of the '{@link #getAge() <em>Age</em>}' attribute.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @see #getAge()
76 * @generated
77 * @ordered
78 */
79 protected int age = AGE_EDEFAULT;
80
81 /**
82 * The cached value of the '{@link #getChildren() <em>Children</em>}' reference list.
83 * <!-- begin-user-doc -->
84 * <!-- end-user-doc -->
85 * @see #getChildren()
86 * @generated
87 * @ordered
88 */
89 protected EList<Member> children;
90
91 /**
92 * The cached value of the '{@link #getParents() <em>Parents</em>}' reference list.
93 * <!-- begin-user-doc -->
94 * <!-- end-user-doc -->
95 * @see #getParents()
96 * @generated
97 * @ordered
98 */
99 protected EList<Member> parents;
100
101 /**
102 * <!-- begin-user-doc -->
103 * <!-- end-user-doc -->
104 * @generated
105 */
106 protected MemberImpl() {
107 super();
108 }
109
110 /**
111 * <!-- begin-user-doc -->
112 * <!-- end-user-doc -->
113 * @generated
114 */
115 @Override
116 protected EClass eStaticClass() {
117 return FamilytreePackage.Literals.MEMBER;
118 }
119
120 /**
121 * <!-- begin-user-doc -->
122 * <!-- end-user-doc -->
123 * @generated
124 */
125 @Override
126 public String getName() {
127 return name;
128 }
129
130 /**
131 * <!-- begin-user-doc -->
132 * <!-- end-user-doc -->
133 * @generated
134 */
135 @Override
136 public void setName(String newName) {
137 String oldName = name;
138 name = newName;
139 if (eNotificationRequired())
140 eNotify(new ENotificationImpl(this, Notification.SET, FamilytreePackage.MEMBER__NAME, oldName, name));
141 }
142
143 /**
144 * <!-- begin-user-doc -->
145 * <!-- end-user-doc -->
146 * @generated
147 */
148 @Override
149 public int getAge() {
150 return age;
151 }
152
153 /**
154 * <!-- begin-user-doc -->
155 * <!-- end-user-doc -->
156 * @generated
157 */
158 @Override
159 public void setAge(int newAge) {
160 int oldAge = age;
161 age = newAge;
162 if (eNotificationRequired())
163 eNotify(new ENotificationImpl(this, Notification.SET, FamilytreePackage.MEMBER__AGE, oldAge, age));
164 }
165
166 /**
167 * <!-- begin-user-doc -->
168 * <!-- end-user-doc -->
169 * @generated
170 */
171 @Override
172 public EList<Member> getChildren() {
173 if (children == null) {
174 children = new EObjectWithInverseResolvingEList.ManyInverse<Member>(Member.class, this, FamilytreePackage.MEMBER__CHILDREN, FamilytreePackage.MEMBER__PARENTS);
175 }
176 return children;
177 }
178
179 /**
180 * <!-- begin-user-doc -->
181 * <!-- end-user-doc -->
182 * @generated
183 */
184 @Override
185 public EList<Member> getParents() {
186 if (parents == null) {
187 parents = new EObjectWithInverseResolvingEList.ManyInverse<Member>(Member.class, this, FamilytreePackage.MEMBER__PARENTS, FamilytreePackage.MEMBER__CHILDREN);
188 }
189 return parents;
190 }
191
192 /**
193 * <!-- begin-user-doc -->
194 * <!-- end-user-doc -->
195 * @generated
196 */
197 @SuppressWarnings("unchecked")
198 @Override
199 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
200 switch (featureID) {
201 case FamilytreePackage.MEMBER__CHILDREN:
202 return ((InternalEList<InternalEObject>)(InternalEList<?>)getChildren()).basicAdd(otherEnd, msgs);
203 case FamilytreePackage.MEMBER__PARENTS:
204 return ((InternalEList<InternalEObject>)(InternalEList<?>)getParents()).basicAdd(otherEnd, msgs);
205 }
206 return super.eInverseAdd(otherEnd, featureID, msgs);
207 }
208
209 /**
210 * <!-- begin-user-doc -->
211 * <!-- end-user-doc -->
212 * @generated
213 */
214 @Override
215 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
216 switch (featureID) {
217 case FamilytreePackage.MEMBER__CHILDREN:
218 return ((InternalEList<?>)getChildren()).basicRemove(otherEnd, msgs);
219 case FamilytreePackage.MEMBER__PARENTS:
220 return ((InternalEList<?>)getParents()).basicRemove(otherEnd, msgs);
221 }
222 return super.eInverseRemove(otherEnd, featureID, msgs);
223 }
224
225 /**
226 * <!-- begin-user-doc -->
227 * <!-- end-user-doc -->
228 * @generated
229 */
230 @Override
231 public Object eGet(int featureID, boolean resolve, boolean coreType) {
232 switch (featureID) {
233 case FamilytreePackage.MEMBER__NAME:
234 return getName();
235 case FamilytreePackage.MEMBER__AGE:
236 return getAge();
237 case FamilytreePackage.MEMBER__CHILDREN:
238 return getChildren();
239 case FamilytreePackage.MEMBER__PARENTS:
240 return getParents();
241 }
242 return super.eGet(featureID, resolve, coreType);
243 }
244
245 /**
246 * <!-- begin-user-doc -->
247 * <!-- end-user-doc -->
248 * @generated
249 */
250 @SuppressWarnings("unchecked")
251 @Override
252 public void eSet(int featureID, Object newValue) {
253 switch (featureID) {
254 case FamilytreePackage.MEMBER__NAME:
255 setName((String)newValue);
256 return;
257 case FamilytreePackage.MEMBER__AGE:
258 setAge((Integer)newValue);
259 return;
260 case FamilytreePackage.MEMBER__CHILDREN:
261 getChildren().clear();
262 getChildren().addAll((Collection<? extends Member>)newValue);
263 return;
264 case FamilytreePackage.MEMBER__PARENTS:
265 getParents().clear();
266 getParents().addAll((Collection<? extends Member>)newValue);
267 return;
268 }
269 super.eSet(featureID, newValue);
270 }
271
272 /**
273 * <!-- begin-user-doc -->
274 * <!-- end-user-doc -->
275 * @generated
276 */
277 @Override
278 public void eUnset(int featureID) {
279 switch (featureID) {
280 case FamilytreePackage.MEMBER__NAME:
281 setName(NAME_EDEFAULT);
282 return;
283 case FamilytreePackage.MEMBER__AGE:
284 setAge(AGE_EDEFAULT);
285 return;
286 case FamilytreePackage.MEMBER__CHILDREN:
287 getChildren().clear();
288 return;
289 case FamilytreePackage.MEMBER__PARENTS:
290 getParents().clear();
291 return;
292 }
293 super.eUnset(featureID);
294 }
295
296 /**
297 * <!-- begin-user-doc -->
298 * <!-- end-user-doc -->
299 * @generated
300 */
301 @Override
302 public boolean eIsSet(int featureID) {
303 switch (featureID) {
304 case FamilytreePackage.MEMBER__NAME:
305 return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
306 case FamilytreePackage.MEMBER__AGE:
307 return age != AGE_EDEFAULT;
308 case FamilytreePackage.MEMBER__CHILDREN:
309 return children != null && !children.isEmpty();
310 case FamilytreePackage.MEMBER__PARENTS:
311 return parents != null && !parents.isEmpty();
312 }
313 return super.eIsSet(featureID);
314 }
315
316 /**
317 * <!-- begin-user-doc -->
318 * <!-- end-user-doc -->
319 * @generated
320 */
321 @Override
322 public String toString() {
323 if (eIsProxy()) return super.toString();
324
325 StringBuilder result = new StringBuilder(super.toString());
326 result.append(" (name: ");
327 result.append(name);
328 result.append(", age: ");
329 result.append(age);
330 result.append(')');
331 return result.toString();
332 }
333
334} //MemberImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/util/FamilytreeAdapterFactory.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/util/FamilytreeAdapterFactory.java
new file mode 100644
index 00000000..6412c40f
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/util/FamilytreeAdapterFactory.java
@@ -0,0 +1,138 @@
1/**
2 */
3package familytree.util;
4
5import familytree.*;
6
7import org.eclipse.emf.common.notify.Adapter;
8import org.eclipse.emf.common.notify.Notifier;
9
10import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
11
12import org.eclipse.emf.ecore.EObject;
13
14/**
15 * <!-- begin-user-doc -->
16 * The <b>Adapter Factory</b> for the model.
17 * It provides an adapter <code>createXXX</code> method for each class of the model.
18 * <!-- end-user-doc -->
19 * @see familytree.FamilytreePackage
20 * @generated
21 */
22public class FamilytreeAdapterFactory extends AdapterFactoryImpl {
23 /**
24 * The cached model package.
25 * <!-- begin-user-doc -->
26 * <!-- end-user-doc -->
27 * @generated
28 */
29 protected static FamilytreePackage modelPackage;
30
31 /**
32 * Creates an instance of the adapter factory.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @generated
36 */
37 public FamilytreeAdapterFactory() {
38 if (modelPackage == null) {
39 modelPackage = FamilytreePackage.eINSTANCE;
40 }
41 }
42
43 /**
44 * Returns whether this factory is applicable for the type of the object.
45 * <!-- begin-user-doc -->
46 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
47 * <!-- end-user-doc -->
48 * @return whether this factory is applicable for the type of the object.
49 * @generated
50 */
51 @Override
52 public boolean isFactoryForType(Object object) {
53 if (object == modelPackage) {
54 return true;
55 }
56 if (object instanceof EObject) {
57 return ((EObject)object).eClass().getEPackage() == modelPackage;
58 }
59 return false;
60 }
61
62 /**
63 * The switch that delegates to the <code>createXXX</code> methods.
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @generated
67 */
68 protected FamilytreeSwitch<Adapter> modelSwitch =
69 new FamilytreeSwitch<Adapter>() {
70 @Override
71 public Adapter caseFamilyTree(FamilyTree object) {
72 return createFamilyTreeAdapter();
73 }
74 @Override
75 public Adapter caseMember(Member object) {
76 return createMemberAdapter();
77 }
78 @Override
79 public Adapter defaultCase(EObject object) {
80 return createEObjectAdapter();
81 }
82 };
83
84 /**
85 * Creates an adapter for the <code>target</code>.
86 * <!-- begin-user-doc -->
87 * <!-- end-user-doc -->
88 * @param target the object to adapt.
89 * @return the adapter for the <code>target</code>.
90 * @generated
91 */
92 @Override
93 public Adapter createAdapter(Notifier target) {
94 return modelSwitch.doSwitch((EObject)target);
95 }
96
97
98 /**
99 * Creates a new adapter for an object of class '{@link familytree.FamilyTree <em>Family Tree</em>}'.
100 * <!-- begin-user-doc -->
101 * This default implementation returns null so that we can easily ignore cases;
102 * it's useful to ignore a case when inheritance will catch all the cases anyway.
103 * <!-- end-user-doc -->
104 * @return the new adapter.
105 * @see familytree.FamilyTree
106 * @generated
107 */
108 public Adapter createFamilyTreeAdapter() {
109 return null;
110 }
111
112 /**
113 * Creates a new adapter for an object of class '{@link familytree.Member <em>Member</em>}'.
114 * <!-- begin-user-doc -->
115 * This default implementation returns null so that we can easily ignore cases;
116 * it's useful to ignore a case when inheritance will catch all the cases anyway.
117 * <!-- end-user-doc -->
118 * @return the new adapter.
119 * @see familytree.Member
120 * @generated
121 */
122 public Adapter createMemberAdapter() {
123 return null;
124 }
125
126 /**
127 * Creates a new adapter for the default case.
128 * <!-- begin-user-doc -->
129 * This default implementation returns null.
130 * <!-- end-user-doc -->
131 * @return the new adapter.
132 * @generated
133 */
134 public Adapter createEObjectAdapter() {
135 return null;
136 }
137
138} //FamilytreeAdapterFactory
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/util/FamilytreeSwitch.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/util/FamilytreeSwitch.java
new file mode 100644
index 00000000..75bbce3d
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/familytree/util/FamilytreeSwitch.java
@@ -0,0 +1,131 @@
1/**
2 */
3package familytree.util;
4
5import familytree.*;
6
7import org.eclipse.emf.ecore.EObject;
8import org.eclipse.emf.ecore.EPackage;
9
10import org.eclipse.emf.ecore.util.Switch;
11
12/**
13 * <!-- begin-user-doc -->
14 * The <b>Switch</b> for the model's inheritance hierarchy.
15 * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
16 * to invoke the <code>caseXXX</code> method for each class of the model,
17 * starting with the actual class of the object
18 * and proceeding up the inheritance hierarchy
19 * until a non-null result is returned,
20 * which is the result of the switch.
21 * <!-- end-user-doc -->
22 * @see familytree.FamilytreePackage
23 * @generated
24 */
25public class FamilytreeSwitch<T> extends Switch<T> {
26 /**
27 * The cached model package
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 protected static FamilytreePackage modelPackage;
33
34 /**
35 * Creates an instance of the switch.
36 * <!-- begin-user-doc -->
37 * <!-- end-user-doc -->
38 * @generated
39 */
40 public FamilytreeSwitch() {
41 if (modelPackage == null) {
42 modelPackage = FamilytreePackage.eINSTANCE;
43 }
44 }
45
46 /**
47 * Checks whether this is a switch for the given package.
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @param ePackage the package in question.
51 * @return whether this is a switch for the given package.
52 * @generated
53 */
54 @Override
55 protected boolean isSwitchFor(EPackage ePackage) {
56 return ePackage == modelPackage;
57 }
58
59 /**
60 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @return the first non-null result returned by a <code>caseXXX</code> call.
64 * @generated
65 */
66 @Override
67 protected T doSwitch(int classifierID, EObject theEObject) {
68 switch (classifierID) {
69 case FamilytreePackage.FAMILY_TREE: {
70 FamilyTree familyTree = (FamilyTree)theEObject;
71 T result = caseFamilyTree(familyTree);
72 if (result == null) result = defaultCase(theEObject);
73 return result;
74 }
75 case FamilytreePackage.MEMBER: {
76 Member member = (Member)theEObject;
77 T result = caseMember(member);
78 if (result == null) result = defaultCase(theEObject);
79 return result;
80 }
81 default: return defaultCase(theEObject);
82 }
83 }
84
85 /**
86 * Returns the result of interpreting the object as an instance of '<em>Family Tree</em>'.
87 * <!-- begin-user-doc -->
88 * This implementation returns null;
89 * returning a non-null result will terminate the switch.
90 * <!-- end-user-doc -->
91 * @param object the target of the switch.
92 * @return the result of interpreting the object as an instance of '<em>Family Tree</em>'.
93 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
94 * @generated
95 */
96 public T caseFamilyTree(FamilyTree object) {
97 return null;
98 }
99
100 /**
101 * Returns the result of interpreting the object as an instance of '<em>Member</em>'.
102 * <!-- begin-user-doc -->
103 * This implementation returns null;
104 * returning a non-null result will terminate the switch.
105 * <!-- end-user-doc -->
106 * @param object the target of the switch.
107 * @return the result of interpreting the object as an instance of '<em>Member</em>'.
108 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
109 * @generated
110 */
111 public T caseMember(Member object) {
112 return null;
113 }
114
115 /**
116 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
117 * <!-- begin-user-doc -->
118 * This implementation returns null;
119 * returning a non-null result will terminate the switch, but this is the last case anyway.
120 * <!-- end-user-doc -->
121 * @param object the target of the switch.
122 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
123 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
124 * @generated
125 */
126 @Override
127 public T defaultCase(EObject object) {
128 return null;
129 }
130
131} //FamilytreeSwitch
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/hu/bme/mit/inf/dslreasoner/diversitycalculator/MeasureDiversity.xtend b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/hu/bme/mit/inf/dslreasoner/diversitycalculator/MeasureDiversity.xtend
new file mode 100644
index 00000000..8a2bff1a
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/hu/bme/mit/inf/dslreasoner/diversitycalculator/MeasureDiversity.xtend
@@ -0,0 +1,283 @@
1package hu.bme.mit.inf.dslreasoner.diversitycalculator
2
3import TaxationWithRoot.TaxationWithRootPackage
4import familytree.FamilytreePackage
5import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic
6import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration
7import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor
8import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage
9import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement
10import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage
11import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage
12import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage
13import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2PartialInterpretation
14import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.neighbourhood.AbstractNodeDescriptor
15import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.neighbourhood.PartialInterpretation2ImmutableTypeLattice
16import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation
17import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialinterpretationPackage
18import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace
19import java.io.File
20import java.io.PrintWriter
21import java.util.ArrayList
22import java.util.Collections
23import java.util.Comparator
24import java.util.HashMap
25import java.util.HashSet
26import java.util.LinkedList
27import java.util.List
28import java.util.Map
29import org.eclipse.emf.ecore.EClass
30import org.eclipse.emf.ecore.EEnum
31import org.eclipse.emf.ecore.EObject
32import org.eclipse.emf.ecore.EcorePackage
33import org.eclipse.emf.ecore.resource.Resource
34import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
35import org.eclipse.viatra.query.runtime.api.ViatraQueryEngineOptions
36import org.eclipse.viatra.query.runtime.localsearch.matcher.integration.LocalSearchEMFBackendFactory
37import org.eclipse.viatra.query.runtime.rete.matcher.ReteBackendFactory
38import org.eclipse.xtend.lib.annotations.Data
39import satellite.SatellitePackage
40
41class MeasureDiversity {
42 static val partialInterpretation2Logic = new InstanceModel2PartialInterpretation
43 static val neiguboirhoodComputer = new PartialInterpretation2ImmutableTypeLattice
44 static val Ecore2Logic ecore2Logic = new Ecore2Logic
45
46 static private def init() {
47 LogiclanguagePackage.eINSTANCE.class
48 LogicproblemPackage.eINSTANCE.class
49 PartialinterpretationPackage.eINSTANCE.class
50 Ecore2logicannotationsPackage.eINSTANCE.class
51 Viatra2LogicAnnotationsPackage.eINSTANCE.class
52 Resource.Factory.Registry.INSTANCE.extensionToFactoryMap.put("*",new XMIResourceFactoryImpl)
53 ViatraQueryEngineOptions.setSystemDefaultBackends(ReteBackendFactory.INSTANCE, ReteBackendFactory.INSTANCE, LocalSearchEMFBackendFactory.INSTANCE)
54 }
55 static class BenchmarkConfig {
56 int range;
57 int size
58 PrintWriter writer
59 String scenario
60 }
61
62 def static void main(String[] args) {
63 init()
64
65 val path = '''inputs'''
66 val scenarios = #[
67
68 '''FamilyTree''',
69 '''Satellite''',
70 '''Taxation''',
71 '''FamilyTreeNoNum''',
72 '''SatelliteNoNum''',
73 '''TaxationNoNum'''
74 ]
75
76 val writer = new PrintWriter(path+"/diversity.csv", "UTF-8");
77 for(scenario : scenarios) {
78 val config=new BenchmarkConfig();
79 config.writer=writer
80 config.range = 3
81 config.scenario = scenario
82 //config.size = 5
83 //for (var i=1; i<=21;i++) {
84 measureDiversity(scenario,path+"/"+scenario,config)
85 //}
86 println(scenario+" finished")
87 }
88 writer.close();
89 }
90
91 def static void measureDiversity(String scenario, String path, BenchmarkConfig config) {
92 val file = new File(path)
93 if(file.isDirectory) {
94 val subfiles = file.list
95 val xmiSubfiles = subfiles.filter[it.endsWith(".xmi")]
96 if(!xmiSubfiles.empty) {
97 measureDiversity(scenario, file,xmiSubfiles.map[new File(path+"/"+it)].toList,path,config)
98 } else {
99 for(subfile : subfiles) {
100 measureDiversity(scenario, path+"/"+subfile,config)
101 }
102 }
103 } else if(file.isFile) {
104 // Do nothing
105 }
106 }
107
108 def static void measureDiversity(String scenario, File parent, List<File> files, String path, BenchmarkConfig config) {
109 val depth=config.range
110
111 //collect and order models
112 val workspace = new FileSystemWorkspace(path, "")
113 EcorePackage.eINSTANCE.eClass
114 TaxationWithRootPackage.eINSTANCE.eClass
115 SatellitePackage.eINSTANCE.eClass
116 FamilytreePackage.eINSTANCE.eClass
117 files.sort(new FileComparator)
118
119 //calculate shapes
120 val modelShapeLists=new HashMap<File,List<Map<? extends AbstractNodeDescriptor, Integer>>>();
121 val modelShapes=new HashMap<File,Map<? extends AbstractNodeDescriptor, Integer>>();
122 for (file : files) {
123
124 val model = workspace.readModel(EObject, file.name)
125
126 val pckg = model.eClass.EPackage
127 val metamodel = new EcoreMetamodelDescriptor(
128 pckg.EClassifiers.filter(EClass).toList,
129 Collections::emptySet,
130 false,
131 pckg.EClassifiers.filter(EEnum).toList,
132 pckg.EClassifiers.filter(EEnum).map[ELiterals].flatten.toList,
133 pckg.EClassifiers.filter(EClass).map[EReferences].flatten.toList,
134 pckg.EClassifiers.filter(EClass).map[EAttributes].flatten.toList
135 )
136 val metamodelTransformationOutput = ecore2Logic.transformMetamodel(metamodel,new Ecore2LogicConfiguration)
137
138
139 val partialModelOutput = partialInterpretation2Logic.transform(metamodelTransformationOutput, model.eResource,
140 false)
141
142
143
144 val list = shapeList(partialModelOutput, depth/*,matchesList*/)
145 // modelShapeLists.put(file,list)
146 modelShapes.put(file,list.get(depth-1))
147 }
148 //println('''shapes done.''')
149 val writer=config.writer
150 println("Printing internal diversity of models")
151 //writer.println("Scenario;File;Diversity")
152 //val size= config.size as double
153 for (model:files) {
154 val modelshape=modelShapes.get(model)
155 val amounts = modelshape.values.reduce[a,b|a+b]
156 val shapes=modelshape.size() as double
157 writer.println(config.scenario+","+model+","+shapes/amounts)
158 }
159 }
160
161 def static getRandomOrders(List<File> files, int number) {
162 val sequences=new ArrayList<List<File>>();
163 for (var i=0;i<number;i++) {
164 val seq=new ArrayList<File>(files);
165 Collections.shuffle(seq);
166 sequences.add(seq);
167 }
168 return sequences
169 }
170
171 def static printShapeNumbersOnRandomOrders(List<File> files, HashMap<File, Map<? extends AbstractNodeDescriptor, Integer>> shapes, int number) {
172 val sequences=new ArrayList<List<File>>();
173 println("Printing generated random orders (models apper in original order)")
174 for (var i=0;i<number;i++) {
175 val seq=new ArrayList<File>(files);
176 Collections.shuffle(seq);
177 sequences.add(seq);
178 println("Model;NewIndex")
179 for (model:files) {
180 println(model+","+seq.indexOf(model));
181 }
182 }
183
184 println("Printing generated random orders (models apper in original order)")
185 println("SeqNo;Index;Model;NewShapes;AllShapes")
186
187 var seqindx=0;
188 for (seq:sequences) {
189 val currshapes=new HashSet<AbstractNodeDescriptor>()
190 var indx=0
191 for (model:seq){
192 val beforesize=currshapes.size
193 currshapes.addAll(shapes.get(model).keySet)
194 val aftersize=currshapes.size
195 val diff=aftersize-beforesize
196 println(seqindx+","+indx+","+model+","+diff+","+currshapes.size)
197 indx++;
198 }
199 seqindx++;
200 }
201 }
202
203 def static void printShapeNumbers(List<File> order, Map<File,Map<? extends AbstractNodeDescriptor, Integer>> shapes) {
204 println("Model;InternalDiversity;NewShapes;AllCurrentShapes")
205 val currshapes=new HashSet<AbstractNodeDescriptor>()
206
207 for (file:order) {
208 val beforesize=currshapes.size
209 currshapes.addAll(shapes.get(file).keySet)
210 val aftersize=currshapes.size
211 val diff=aftersize-beforesize
212 println(file+","+shapes.get(file).size+","+diff+","+currshapes.size)
213 }
214 }
215
216
217 protected def static runIndex(String name) {
218 val res = name.split("\\.").head.split('_').get(0)
219 if(res.startsWith("result")) {
220 return res.substring(6)
221 } else {
222 return res
223 }
224 }
225 protected def static modelIndex(String name) {
226 name.split("\\.").head.split('_').get(1)
227 }
228
229 protected def static representationList(PartialInterpretation partialModel, int depth) {
230 val list = new LinkedList
231 for(i : 0..<depth) {
232 val neighbourhood = neiguboirhoodComputer.createRepresentation(partialModel,i,0,0)
233 //val m = neighbourhood.modelRepresentation
234 //println(m)
235 list.add(neighbourhood.modelRepresentation.keySet.map[it.hashCode].toSet)
236 }
237 return list
238 }
239
240 protected def static List<Map<? extends AbstractNodeDescriptor, Integer>> shapeList(PartialInterpretation partialModel, int depth/*, List<PatternWithMatches> matches*/) {
241
242 val list = new LinkedList
243 for(i : 0..<depth) {
244
245 val neighbourhood = neiguboirhoodComputer.createRepresentation(partialModel,i,Integer.MAX_VALUE,Integer.MAX_VALUE/*, matchmap*/)
246
247 val openWorldElements = partialModel.openWorldElements //+ partialModel.newElements.filter(PrimitiveElement) + partialModel.problem.elements.filter(PrimitiveElement)
248 val representationsOfOpenElements = openWorldElements.map[neighbourhood.nodeRepresentations.get(it)].toSet
249 val allElementRepresentation = new HashMap(neighbourhood.modelRepresentation)
250 representationsOfOpenElements.forEach[allElementRepresentation.remove(it)]
251
252 val Map<Integer, Integer> hashedRepresentation = new HashMap()
253 for(entry : allElementRepresentation.entrySet) {
254 hashedRepresentation.put(entry.key.dataHash,entry.value)
255 }
256 list.add(allElementRepresentation)
257 }
258 return list
259 }
260}
261
262@Data
263class PatternWithMatches {
264 String name;
265 List<List<DefinedElement>> matches
266}
267
268class FileComparator implements Comparator<File> {
269
270 override compare(File arg0, File arg1) {
271 val r1 = Integer.parseInt(MeasureDiversity::runIndex(arg0.name))
272 val r2 = Integer.parseInt(MeasureDiversity::runIndex(arg1.name))
273 val runRes = Integer.compare(r1, r2)
274 if(runRes === 0) {
275 val a = Integer.parseInt(MeasureDiversity::modelIndex(arg0.name))
276 val b = Integer.parseInt(MeasureDiversity::modelIndex(arg1.name))
277 Integer.compare(a,b)
278 } else {
279 return runRes
280 }
281 arg0.name.compareTo(arg1.name)
282 }
283} \ No newline at end of file
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/hu/bme/mit/inf/dslreasoner/diversitycalculator/MeasureInternalDiversity.xtend b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/hu/bme/mit/inf/dslreasoner/diversitycalculator/MeasureInternalDiversity.xtend
new file mode 100644
index 00000000..1510eeb8
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/hu/bme/mit/inf/dslreasoner/diversitycalculator/MeasureInternalDiversity.xtend
@@ -0,0 +1,107 @@
1package hu.bme.mit.inf.dslreasoner.diversitycalculator
2
3import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic
4import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration
5import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage
6import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage
7import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage
8import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage
9import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2PartialInterpretation
10import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.neighbourhood.PartialInterpretation2ImmutableTypeLattice
11import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation
12import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialinterpretationPackage
13import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace
14import java.io.File
15import java.util.LinkedList
16import java.util.List
17import org.eclipse.emf.ecore.EObject
18import org.eclipse.emf.ecore.resource.Resource
19import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
20import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor
21
22class MeasureInternalDiversity {
23 static val partialInterpretation2Logic = new InstanceModel2PartialInterpretation
24 static val neiguboirhoodComputer = new PartialInterpretation2ImmutableTypeLattice
25
26 static val Ecore2Logic ecore2Logic = new Ecore2Logic
27
28 static private def init() {
29 LogiclanguagePackage.eINSTANCE.class
30 LogicproblemPackage.eINSTANCE.class
31 PartialinterpretationPackage.eINSTANCE.class
32 Ecore2logicannotationsPackage.eINSTANCE.class
33 Viatra2LogicAnnotationsPackage.eINSTANCE.class
34 Resource.Factory.Registry.INSTANCE.extensionToFactoryMap.put("*",new XMIResourceFactoryImpl)
35 }
36
37
38 def static void main(String[] args) {
39 init()
40 }
41
42 def static run(EcoreMetamodelDescriptor metamodel, String path, String scenario) {
43 val range = 20
44
45 measureDiversity(metamodel,scenario,path,range)
46 }
47
48 def static void measureDiversity(EcoreMetamodelDescriptor metamodel, String scenario, String path, int depth) {
49 val file = new File(path)
50 if(file.isDirectory) {
51 val subfiles = file.list
52 val xmiSubfiles = subfiles.filter[it.endsWith(".xmi")]
53 if(!xmiSubfiles.empty) {
54 measureDiversity(metamodel, scenario,file,xmiSubfiles.map[new File(path+"/"+it)].toList,path,depth)
55 } else {
56 for(subfile : subfiles) {
57 measureDiversity(metamodel, scenario,path+"/"+subfile,depth)
58 }
59 }
60 } else if(file.isFile) {
61 // Do nothing
62 }
63 }
64
65 def static void measureDiversity(EcoreMetamodelDescriptor metamodel, String scenario, File parent, List<File> files, String path, int depth) {
66 val workspace = new FileSystemWorkspace(path,"")
67 //val file2Neighbourhood = new HashMap<File,List<?>>
68 for(file : files) {
69
70 val metamodelTransformationOutput = ecore2Logic.transformMetamodel(metamodel,new Ecore2LogicConfiguration)
71
72 val model = workspace.readModel(EObject,file.name)
73 val partialModel = partialInterpretation2Logic.transform(metamodelTransformationOutput,model.eResource,false)
74 val list = representationList(partialModel,depth)
75 try {
76 val runIndex = file.name.runIndex
77 val modelIndex = file.name.modelIndex
78 print('''«scenario»;«runIndex»;«modelIndex»''')
79 } catch (Exception e) {
80 print('''«scenario»;0;«file.name»''')
81 }
82 for(i : 0..<list.size) {
83 print(''';«list.get(i).keySet.size»''')
84 }
85 print(";"+(list.last.keySet.size*1.0 /partialModel.newElements.size))
86 println
87 }
88 }
89
90 protected def static runIndex(String name) {
91 name.split("\\.").head.split('_').get(1)
92 }
93 protected def static modelIndex(String name) {
94 name.split("\\.").head.split('_').get(2)
95 }
96
97 protected def static representationList(PartialInterpretation partialModel, int depth) {
98 val list = new LinkedList
99 for(i : 0..<depth) {
100 val neighbourhood = neiguboirhoodComputer.createRepresentation(partialModel,i,0,0)
101 //val m = neighbourhood.modelRepresentation
102 //println(m)
103 list.add(neighbourhood.modelRepresentation)
104 }
105 return list
106 }
107} \ No newline at end of file
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/CommSubsystem.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/CommSubsystem.java
new file mode 100644
index 00000000..905f5c3c
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/CommSubsystem.java
@@ -0,0 +1,92 @@
1/**
2 */
3package satellite;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Comm Subsystem</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link satellite.CommSubsystem#getTarget <em>Target</em>}</li>
17 * <li>{@link satellite.CommSubsystem#getFrequency <em>Frequency</em>}</li>
18 * <li>{@link satellite.CommSubsystem#getPathLength <em>Path Length</em>}</li>
19 * </ul>
20 *
21 * @see satellite.SatellitePackage#getCommSubsystem()
22 * @model abstract="true"
23 * @generated
24 */
25public interface CommSubsystem extends EObject {
26 /**
27 * Returns the value of the '<em><b>Target</b></em>' reference.
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @return the value of the '<em>Target</em>' reference.
31 * @see #setTarget(CommSubsystem)
32 * @see satellite.SatellitePackage#getCommSubsystem_Target()
33 * @model
34 * @generated
35 */
36 CommSubsystem getTarget();
37
38 /**
39 * Sets the value of the '{@link satellite.CommSubsystem#getTarget <em>Target</em>}' reference.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @param value the new value of the '<em>Target</em>' reference.
43 * @see #getTarget()
44 * @generated
45 */
46 void setTarget(CommSubsystem value);
47
48 /**
49 * Returns the value of the '<em><b>Frequency</b></em>' attribute.
50 * <!-- begin-user-doc -->
51 * <!-- end-user-doc -->
52 * @return the value of the '<em>Frequency</em>' attribute.
53 * @see #setFrequency(int)
54 * @see satellite.SatellitePackage#getCommSubsystem_Frequency()
55 * @model required="true"
56 * @generated
57 */
58 int getFrequency();
59
60 /**
61 * Sets the value of the '{@link satellite.CommSubsystem#getFrequency <em>Frequency</em>}' attribute.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @param value the new value of the '<em>Frequency</em>' attribute.
65 * @see #getFrequency()
66 * @generated
67 */
68 void setFrequency(int value);
69
70 /**
71 * Returns the value of the '<em><b>Path Length</b></em>' attribute.
72 * <!-- begin-user-doc -->
73 * <!-- end-user-doc -->
74 * @return the value of the '<em>Path Length</em>' attribute.
75 * @see #setPathLength(int)
76 * @see satellite.SatellitePackage#getCommSubsystem_PathLength()
77 * @model required="true"
78 * @generated
79 */
80 int getPathLength();
81
82 /**
83 * Sets the value of the '{@link satellite.CommSubsystem#getPathLength <em>Path Length</em>}' attribute.
84 * <!-- begin-user-doc -->
85 * <!-- end-user-doc -->
86 * @param value the new value of the '<em>Path Length</em>' attribute.
87 * @see #getPathLength()
88 * @generated
89 */
90 void setPathLength(int value);
91
92} // CommSubsystem
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/CommunicatingElement.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/CommunicatingElement.java
new file mode 100644
index 00000000..c77ee70d
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/CommunicatingElement.java
@@ -0,0 +1,38 @@
1/**
2 */
3package satellite;
4
5import org.eclipse.emf.common.util.EList;
6
7import org.eclipse.emf.ecore.EObject;
8
9/**
10 * <!-- begin-user-doc -->
11 * A representation of the model object '<em><b>Communicating Element</b></em>'.
12 * <!-- end-user-doc -->
13 *
14 * <p>
15 * The following features are supported:
16 * </p>
17 * <ul>
18 * <li>{@link satellite.CommunicatingElement#getCommSubsystem <em>Comm Subsystem</em>}</li>
19 * </ul>
20 *
21 * @see satellite.SatellitePackage#getCommunicatingElement()
22 * @model abstract="true"
23 * @generated
24 */
25public interface CommunicatingElement extends EObject {
26 /**
27 * Returns the value of the '<em><b>Comm Subsystem</b></em>' containment reference list.
28 * The list contents are of type {@link satellite.CommSubsystem}.
29 * <!-- begin-user-doc -->
30 * <!-- end-user-doc -->
31 * @return the value of the '<em>Comm Subsystem</em>' containment reference list.
32 * @see satellite.SatellitePackage#getCommunicatingElement_CommSubsystem()
33 * @model containment="true" required="true" upper="2"
34 * @generated
35 */
36 EList<CommSubsystem> getCommSubsystem();
37
38} // CommunicatingElement
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/ConstellationMission.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/ConstellationMission.java
new file mode 100644
index 00000000..82efd31c
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/ConstellationMission.java
@@ -0,0 +1,61 @@
1/**
2 */
3package satellite;
4
5import org.eclipse.emf.common.util.EList;
6
7import org.eclipse.emf.ecore.EObject;
8
9/**
10 * <!-- begin-user-doc -->
11 * A representation of the model object '<em><b>Constellation Mission</b></em>'.
12 * <!-- end-user-doc -->
13 *
14 * <p>
15 * The following features are supported:
16 * </p>
17 * <ul>
18 * <li>{@link satellite.ConstellationMission#getGroundStationNetwork <em>Ground Station Network</em>}</li>
19 * <li>{@link satellite.ConstellationMission#getSpacecraft <em>Spacecraft</em>}</li>
20 * </ul>
21 *
22 * @see satellite.SatellitePackage#getConstellationMission()
23 * @model abstract="true"
24 * @generated
25 */
26public interface ConstellationMission extends EObject {
27 /**
28 * Returns the value of the '<em><b>Ground Station Network</b></em>' containment reference.
29 * <!-- begin-user-doc -->
30 * <!-- end-user-doc -->
31 * @return the value of the '<em>Ground Station Network</em>' containment reference.
32 * @see #setGroundStationNetwork(GroundStationNetwork)
33 * @see satellite.SatellitePackage#getConstellationMission_GroundStationNetwork()
34 * @model containment="true" required="true"
35 * @generated
36 */
37 GroundStationNetwork getGroundStationNetwork();
38
39 /**
40 * Sets the value of the '{@link satellite.ConstellationMission#getGroundStationNetwork <em>Ground Station Network</em>}' containment reference.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @param value the new value of the '<em>Ground Station Network</em>' containment reference.
44 * @see #getGroundStationNetwork()
45 * @generated
46 */
47 void setGroundStationNetwork(GroundStationNetwork value);
48
49 /**
50 * Returns the value of the '<em><b>Spacecraft</b></em>' containment reference list.
51 * The list contents are of type {@link satellite.Spacecraft}.
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @return the value of the '<em>Spacecraft</em>' containment reference list.
55 * @see satellite.SatellitePackage#getConstellationMission_Spacecraft()
56 * @model containment="true" lower="2"
57 * @generated
58 */
59 EList<Spacecraft> getSpacecraft();
60
61} // ConstellationMission
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/CubeSat.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/CubeSat.java
new file mode 100644
index 00000000..6b04d5f8
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/CubeSat.java
@@ -0,0 +1,17 @@
1/**
2 */
3package satellite;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Cube Sat</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see satellite.SatellitePackage#getCubeSat()
13 * @model abstract="true"
14 * @generated
15 */
16public interface CubeSat extends Spacecraft {
17} // CubeSat
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/CubeSat3U.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/CubeSat3U.java
new file mode 100644
index 00000000..68ff7a71
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/CubeSat3U.java
@@ -0,0 +1,17 @@
1/**
2 */
3package satellite;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Cube Sat3 U</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see satellite.SatellitePackage#getCubeSat3U()
13 * @model
14 * @generated
15 */
16public interface CubeSat3U extends CubeSat {
17} // CubeSat3U
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/CubeSat6U.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/CubeSat6U.java
new file mode 100644
index 00000000..bf3d8525
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/CubeSat6U.java
@@ -0,0 +1,17 @@
1/**
2 */
3package satellite;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Cube Sat6 U</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see satellite.SatellitePackage#getCubeSat6U()
13 * @model
14 * @generated
15 */
16public interface CubeSat6U extends CubeSat {
17} // CubeSat6U
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/GroundStationNetwork.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/GroundStationNetwork.java
new file mode 100644
index 00000000..a58c0ff4
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/GroundStationNetwork.java
@@ -0,0 +1,17 @@
1/**
2 */
3package satellite;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Ground Station Network</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see satellite.SatellitePackage#getGroundStationNetwork()
13 * @model
14 * @generated
15 */
16public interface GroundStationNetwork extends CommunicatingElement {
17} // GroundStationNetwork
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/InterferometryMission.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/InterferometryMission.java
new file mode 100644
index 00000000..f0859bda
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/InterferometryMission.java
@@ -0,0 +1,45 @@
1/**
2 */
3package satellite;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Interferometry Mission</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 * <p>
12 * The following features are supported:
13 * </p>
14 * <ul>
15 * <li>{@link satellite.InterferometryMission#getObservationTime <em>Observation Time</em>}</li>
16 * </ul>
17 *
18 * @see satellite.SatellitePackage#getInterferometryMission()
19 * @model
20 * @generated
21 */
22public interface InterferometryMission extends ConstellationMission {
23 /**
24 * Returns the value of the '<em><b>Observation Time</b></em>' attribute.
25 * <!-- begin-user-doc -->
26 * <!-- end-user-doc -->
27 * @return the value of the '<em>Observation Time</em>' attribute.
28 * @see #setObservationTime(int)
29 * @see satellite.SatellitePackage#getInterferometryMission_ObservationTime()
30 * @model required="true"
31 * @generated
32 */
33 int getObservationTime();
34
35 /**
36 * Sets the value of the '{@link satellite.InterferometryMission#getObservationTime <em>Observation Time</em>}' attribute.
37 * <!-- begin-user-doc -->
38 * <!-- end-user-doc -->
39 * @param value the new value of the '<em>Observation Time</em>' attribute.
40 * @see #getObservationTime()
41 * @generated
42 */
43 void setObservationTime(int value);
44
45} // InterferometryMission
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/InterferometryPayload.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/InterferometryPayload.java
new file mode 100644
index 00000000..bd2545a3
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/InterferometryPayload.java
@@ -0,0 +1,17 @@
1/**
2 */
3package satellite;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Interferometry Payload</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see satellite.SatellitePackage#getInterferometryPayload()
13 * @model
14 * @generated
15 */
16public interface InterferometryPayload extends Payload {
17} // InterferometryPayload
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/KaCommSubsystem.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/KaCommSubsystem.java
new file mode 100644
index 00000000..a30cdfd5
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/KaCommSubsystem.java
@@ -0,0 +1,17 @@
1/**
2 */
3package satellite;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Ka Comm Subsystem</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see satellite.SatellitePackage#getKaCommSubsystem()
13 * @model
14 * @generated
15 */
16public interface KaCommSubsystem extends CommSubsystem {
17} // KaCommSubsystem
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/Payload.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/Payload.java
new file mode 100644
index 00000000..b4d0f02f
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/Payload.java
@@ -0,0 +1,18 @@
1/**
2 */
3package satellite;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Payload</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see satellite.SatellitePackage#getPayload()
14 * @model abstract="true"
15 * @generated
16 */
17public interface Payload extends EObject {
18} // Payload
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/SatelliteFactory.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/SatelliteFactory.java
new file mode 100644
index 00000000..50414622
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/SatelliteFactory.java
@@ -0,0 +1,114 @@
1/**
2 */
3package satellite;
4
5import org.eclipse.emf.ecore.EFactory;
6
7/**
8 * <!-- begin-user-doc -->
9 * The <b>Factory</b> for the model.
10 * It provides a create method for each non-abstract class of the model.
11 * <!-- end-user-doc -->
12 * @see satellite.SatellitePackage
13 * @generated
14 */
15public interface SatelliteFactory extends EFactory {
16 /**
17 * The singleton instance of the factory.
18 * <!-- begin-user-doc -->
19 * <!-- end-user-doc -->
20 * @generated
21 */
22 SatelliteFactory eINSTANCE = satellite.impl.SatelliteFactoryImpl.init();
23
24 /**
25 * Returns a new object of class '<em>Interferometry Mission</em>'.
26 * <!-- begin-user-doc -->
27 * <!-- end-user-doc -->
28 * @return a new object of class '<em>Interferometry Mission</em>'.
29 * @generated
30 */
31 InterferometryMission createInterferometryMission();
32
33 /**
34 * Returns a new object of class '<em>Ground Station Network</em>'.
35 * <!-- begin-user-doc -->
36 * <!-- end-user-doc -->
37 * @return a new object of class '<em>Ground Station Network</em>'.
38 * @generated
39 */
40 GroundStationNetwork createGroundStationNetwork();
41
42 /**
43 * Returns a new object of class '<em>Interferometry Payload</em>'.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @return a new object of class '<em>Interferometry Payload</em>'.
47 * @generated
48 */
49 InterferometryPayload createInterferometryPayload();
50
51 /**
52 * Returns a new object of class '<em>Cube Sat3 U</em>'.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @return a new object of class '<em>Cube Sat3 U</em>'.
56 * @generated
57 */
58 CubeSat3U createCubeSat3U();
59
60 /**
61 * Returns a new object of class '<em>Cube Sat6 U</em>'.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @return a new object of class '<em>Cube Sat6 U</em>'.
65 * @generated
66 */
67 CubeSat6U createCubeSat6U();
68
69 /**
70 * Returns a new object of class '<em>Small Sat</em>'.
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @return a new object of class '<em>Small Sat</em>'.
74 * @generated
75 */
76 SmallSat createSmallSat();
77
78 /**
79 * Returns a new object of class '<em>UHF Comm Subsystem</em>'.
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @return a new object of class '<em>UHF Comm Subsystem</em>'.
83 * @generated
84 */
85 UHFCommSubsystem createUHFCommSubsystem();
86
87 /**
88 * Returns a new object of class '<em>XComm Subsystem</em>'.
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @return a new object of class '<em>XComm Subsystem</em>'.
92 * @generated
93 */
94 XCommSubsystem createXCommSubsystem();
95
96 /**
97 * Returns a new object of class '<em>Ka Comm Subsystem</em>'.
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @return a new object of class '<em>Ka Comm Subsystem</em>'.
101 * @generated
102 */
103 KaCommSubsystem createKaCommSubsystem();
104
105 /**
106 * Returns the package supported by this factory.
107 * <!-- begin-user-doc -->
108 * <!-- end-user-doc -->
109 * @return the package supported by this factory.
110 * @generated
111 */
112 SatellitePackage getSatellitePackage();
113
114} //SatelliteFactory
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/SatellitePackage.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/SatellitePackage.java
new file mode 100644
index 00000000..fa3fa0e9
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/SatellitePackage.java
@@ -0,0 +1,1218 @@
1/**
2 */
3package satellite;
4
5import org.eclipse.emf.ecore.EAttribute;
6import org.eclipse.emf.ecore.EClass;
7import org.eclipse.emf.ecore.EPackage;
8import org.eclipse.emf.ecore.EReference;
9
10/**
11 * <!-- begin-user-doc -->
12 * The <b>Package</b> for the model.
13 * It contains accessors for the meta objects to represent
14 * <ul>
15 * <li>each class,</li>
16 * <li>each feature of each class,</li>
17 * <li>each operation of each class,</li>
18 * <li>each enum,</li>
19 * <li>and each data type</li>
20 * </ul>
21 * <!-- end-user-doc -->
22 * @see satellite.SatelliteFactory
23 * @model kind="package"
24 * @generated
25 */
26public interface SatellitePackage extends EPackage {
27 /**
28 * The package name.
29 * <!-- begin-user-doc -->
30 * <!-- end-user-doc -->
31 * @generated
32 */
33 String eNAME = "satellite";
34
35 /**
36 * The package namespace URI.
37 * <!-- begin-user-doc -->
38 * <!-- end-user-doc -->
39 * @generated
40 */
41 String eNS_URI = "http://www.example.org/satellite";
42
43 /**
44 * The package namespace name.
45 * <!-- begin-user-doc -->
46 * <!-- end-user-doc -->
47 * @generated
48 */
49 String eNS_PREFIX = "satellite";
50
51 /**
52 * The singleton instance of the package.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @generated
56 */
57 SatellitePackage eINSTANCE = satellite.impl.SatellitePackageImpl.init();
58
59 /**
60 * The meta object id for the '{@link satellite.impl.ConstellationMissionImpl <em>Constellation Mission</em>}' class.
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @see satellite.impl.ConstellationMissionImpl
64 * @see satellite.impl.SatellitePackageImpl#getConstellationMission()
65 * @generated
66 */
67 int CONSTELLATION_MISSION = 0;
68
69 /**
70 * The feature id for the '<em><b>Ground Station Network</b></em>' containment reference.
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @generated
74 * @ordered
75 */
76 int CONSTELLATION_MISSION__GROUND_STATION_NETWORK = 0;
77
78 /**
79 * The feature id for the '<em><b>Spacecraft</b></em>' containment reference list.
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @generated
83 * @ordered
84 */
85 int CONSTELLATION_MISSION__SPACECRAFT = 1;
86
87 /**
88 * The number of structural features of the '<em>Constellation Mission</em>' class.
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @generated
92 * @ordered
93 */
94 int CONSTELLATION_MISSION_FEATURE_COUNT = 2;
95
96 /**
97 * The number of operations of the '<em>Constellation Mission</em>' class.
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @generated
101 * @ordered
102 */
103 int CONSTELLATION_MISSION_OPERATION_COUNT = 0;
104
105 /**
106 * The meta object id for the '{@link satellite.impl.InterferometryMissionImpl <em>Interferometry Mission</em>}' class.
107 * <!-- begin-user-doc -->
108 * <!-- end-user-doc -->
109 * @see satellite.impl.InterferometryMissionImpl
110 * @see satellite.impl.SatellitePackageImpl#getInterferometryMission()
111 * @generated
112 */
113 int INTERFEROMETRY_MISSION = 1;
114
115 /**
116 * The feature id for the '<em><b>Ground Station Network</b></em>' containment reference.
117 * <!-- begin-user-doc -->
118 * <!-- end-user-doc -->
119 * @generated
120 * @ordered
121 */
122 int INTERFEROMETRY_MISSION__GROUND_STATION_NETWORK = CONSTELLATION_MISSION__GROUND_STATION_NETWORK;
123
124 /**
125 * The feature id for the '<em><b>Spacecraft</b></em>' containment reference list.
126 * <!-- begin-user-doc -->
127 * <!-- end-user-doc -->
128 * @generated
129 * @ordered
130 */
131 int INTERFEROMETRY_MISSION__SPACECRAFT = CONSTELLATION_MISSION__SPACECRAFT;
132
133 /**
134 * The feature id for the '<em><b>Observation Time</b></em>' attribute.
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @generated
138 * @ordered
139 */
140 int INTERFEROMETRY_MISSION__OBSERVATION_TIME = CONSTELLATION_MISSION_FEATURE_COUNT + 0;
141
142 /**
143 * The number of structural features of the '<em>Interferometry Mission</em>' class.
144 * <!-- begin-user-doc -->
145 * <!-- end-user-doc -->
146 * @generated
147 * @ordered
148 */
149 int INTERFEROMETRY_MISSION_FEATURE_COUNT = CONSTELLATION_MISSION_FEATURE_COUNT + 1;
150
151 /**
152 * The number of operations of the '<em>Interferometry Mission</em>' class.
153 * <!-- begin-user-doc -->
154 * <!-- end-user-doc -->
155 * @generated
156 * @ordered
157 */
158 int INTERFEROMETRY_MISSION_OPERATION_COUNT = CONSTELLATION_MISSION_OPERATION_COUNT + 0;
159
160 /**
161 * The meta object id for the '{@link satellite.impl.CommunicatingElementImpl <em>Communicating Element</em>}' class.
162 * <!-- begin-user-doc -->
163 * <!-- end-user-doc -->
164 * @see satellite.impl.CommunicatingElementImpl
165 * @see satellite.impl.SatellitePackageImpl#getCommunicatingElement()
166 * @generated
167 */
168 int COMMUNICATING_ELEMENT = 2;
169
170 /**
171 * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list.
172 * <!-- begin-user-doc -->
173 * <!-- end-user-doc -->
174 * @generated
175 * @ordered
176 */
177 int COMMUNICATING_ELEMENT__COMM_SUBSYSTEM = 0;
178
179 /**
180 * The number of structural features of the '<em>Communicating Element</em>' class.
181 * <!-- begin-user-doc -->
182 * <!-- end-user-doc -->
183 * @generated
184 * @ordered
185 */
186 int COMMUNICATING_ELEMENT_FEATURE_COUNT = 1;
187
188 /**
189 * The number of operations of the '<em>Communicating Element</em>' class.
190 * <!-- begin-user-doc -->
191 * <!-- end-user-doc -->
192 * @generated
193 * @ordered
194 */
195 int COMMUNICATING_ELEMENT_OPERATION_COUNT = 0;
196
197 /**
198 * The meta object id for the '{@link satellite.impl.GroundStationNetworkImpl <em>Ground Station Network</em>}' class.
199 * <!-- begin-user-doc -->
200 * <!-- end-user-doc -->
201 * @see satellite.impl.GroundStationNetworkImpl
202 * @see satellite.impl.SatellitePackageImpl#getGroundStationNetwork()
203 * @generated
204 */
205 int GROUND_STATION_NETWORK = 3;
206
207 /**
208 * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list.
209 * <!-- begin-user-doc -->
210 * <!-- end-user-doc -->
211 * @generated
212 * @ordered
213 */
214 int GROUND_STATION_NETWORK__COMM_SUBSYSTEM = COMMUNICATING_ELEMENT__COMM_SUBSYSTEM;
215
216 /**
217 * The number of structural features of the '<em>Ground Station Network</em>' class.
218 * <!-- begin-user-doc -->
219 * <!-- end-user-doc -->
220 * @generated
221 * @ordered
222 */
223 int GROUND_STATION_NETWORK_FEATURE_COUNT = COMMUNICATING_ELEMENT_FEATURE_COUNT + 0;
224
225 /**
226 * The number of operations of the '<em>Ground Station Network</em>' class.
227 * <!-- begin-user-doc -->
228 * <!-- end-user-doc -->
229 * @generated
230 * @ordered
231 */
232 int GROUND_STATION_NETWORK_OPERATION_COUNT = COMMUNICATING_ELEMENT_OPERATION_COUNT + 0;
233
234 /**
235 * The meta object id for the '{@link satellite.impl.SpacecraftImpl <em>Spacecraft</em>}' class.
236 * <!-- begin-user-doc -->
237 * <!-- end-user-doc -->
238 * @see satellite.impl.SpacecraftImpl
239 * @see satellite.impl.SatellitePackageImpl#getSpacecraft()
240 * @generated
241 */
242 int SPACECRAFT = 4;
243
244 /**
245 * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list.
246 * <!-- begin-user-doc -->
247 * <!-- end-user-doc -->
248 * @generated
249 * @ordered
250 */
251 int SPACECRAFT__COMM_SUBSYSTEM = COMMUNICATING_ELEMENT__COMM_SUBSYSTEM;
252
253 /**
254 * The feature id for the '<em><b>Payload</b></em>' containment reference.
255 * <!-- begin-user-doc -->
256 * <!-- end-user-doc -->
257 * @generated
258 * @ordered
259 */
260 int SPACECRAFT__PAYLOAD = COMMUNICATING_ELEMENT_FEATURE_COUNT + 0;
261
262 /**
263 * The number of structural features of the '<em>Spacecraft</em>' class.
264 * <!-- begin-user-doc -->
265 * <!-- end-user-doc -->
266 * @generated
267 * @ordered
268 */
269 int SPACECRAFT_FEATURE_COUNT = COMMUNICATING_ELEMENT_FEATURE_COUNT + 1;
270
271 /**
272 * The number of operations of the '<em>Spacecraft</em>' class.
273 * <!-- begin-user-doc -->
274 * <!-- end-user-doc -->
275 * @generated
276 * @ordered
277 */
278 int SPACECRAFT_OPERATION_COUNT = COMMUNICATING_ELEMENT_OPERATION_COUNT + 0;
279
280 /**
281 * The meta object id for the '{@link satellite.impl.CommSubsystemImpl <em>Comm Subsystem</em>}' class.
282 * <!-- begin-user-doc -->
283 * <!-- end-user-doc -->
284 * @see satellite.impl.CommSubsystemImpl
285 * @see satellite.impl.SatellitePackageImpl#getCommSubsystem()
286 * @generated
287 */
288 int COMM_SUBSYSTEM = 5;
289
290 /**
291 * The feature id for the '<em><b>Target</b></em>' reference.
292 * <!-- begin-user-doc -->
293 * <!-- end-user-doc -->
294 * @generated
295 * @ordered
296 */
297 int COMM_SUBSYSTEM__TARGET = 0;
298
299 /**
300 * The feature id for the '<em><b>Frequency</b></em>' attribute.
301 * <!-- begin-user-doc -->
302 * <!-- end-user-doc -->
303 * @generated
304 * @ordered
305 */
306 int COMM_SUBSYSTEM__FREQUENCY = 1;
307
308 /**
309 * The feature id for the '<em><b>Path Length</b></em>' attribute.
310 * <!-- begin-user-doc -->
311 * <!-- end-user-doc -->
312 * @generated
313 * @ordered
314 */
315 int COMM_SUBSYSTEM__PATH_LENGTH = 2;
316
317 /**
318 * The number of structural features of the '<em>Comm Subsystem</em>' class.
319 * <!-- begin-user-doc -->
320 * <!-- end-user-doc -->
321 * @generated
322 * @ordered
323 */
324 int COMM_SUBSYSTEM_FEATURE_COUNT = 3;
325
326 /**
327 * The number of operations of the '<em>Comm Subsystem</em>' class.
328 * <!-- begin-user-doc -->
329 * <!-- end-user-doc -->
330 * @generated
331 * @ordered
332 */
333 int COMM_SUBSYSTEM_OPERATION_COUNT = 0;
334
335 /**
336 * The meta object id for the '{@link satellite.impl.PayloadImpl <em>Payload</em>}' class.
337 * <!-- begin-user-doc -->
338 * <!-- end-user-doc -->
339 * @see satellite.impl.PayloadImpl
340 * @see satellite.impl.SatellitePackageImpl#getPayload()
341 * @generated
342 */
343 int PAYLOAD = 6;
344
345 /**
346 * The number of structural features of the '<em>Payload</em>' class.
347 * <!-- begin-user-doc -->
348 * <!-- end-user-doc -->
349 * @generated
350 * @ordered
351 */
352 int PAYLOAD_FEATURE_COUNT = 0;
353
354 /**
355 * The number of operations of the '<em>Payload</em>' class.
356 * <!-- begin-user-doc -->
357 * <!-- end-user-doc -->
358 * @generated
359 * @ordered
360 */
361 int PAYLOAD_OPERATION_COUNT = 0;
362
363 /**
364 * The meta object id for the '{@link satellite.impl.InterferometryPayloadImpl <em>Interferometry Payload</em>}' class.
365 * <!-- begin-user-doc -->
366 * <!-- end-user-doc -->
367 * @see satellite.impl.InterferometryPayloadImpl
368 * @see satellite.impl.SatellitePackageImpl#getInterferometryPayload()
369 * @generated
370 */
371 int INTERFEROMETRY_PAYLOAD = 7;
372
373 /**
374 * The number of structural features of the '<em>Interferometry Payload</em>' class.
375 * <!-- begin-user-doc -->
376 * <!-- end-user-doc -->
377 * @generated
378 * @ordered
379 */
380 int INTERFEROMETRY_PAYLOAD_FEATURE_COUNT = PAYLOAD_FEATURE_COUNT + 0;
381
382 /**
383 * The number of operations of the '<em>Interferometry Payload</em>' class.
384 * <!-- begin-user-doc -->
385 * <!-- end-user-doc -->
386 * @generated
387 * @ordered
388 */
389 int INTERFEROMETRY_PAYLOAD_OPERATION_COUNT = PAYLOAD_OPERATION_COUNT + 0;
390
391 /**
392 * The meta object id for the '{@link satellite.impl.CubeSatImpl <em>Cube Sat</em>}' class.
393 * <!-- begin-user-doc -->
394 * <!-- end-user-doc -->
395 * @see satellite.impl.CubeSatImpl
396 * @see satellite.impl.SatellitePackageImpl#getCubeSat()
397 * @generated
398 */
399 int CUBE_SAT = 11;
400
401 /**
402 * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list.
403 * <!-- begin-user-doc -->
404 * <!-- end-user-doc -->
405 * @generated
406 * @ordered
407 */
408 int CUBE_SAT__COMM_SUBSYSTEM = SPACECRAFT__COMM_SUBSYSTEM;
409
410 /**
411 * The feature id for the '<em><b>Payload</b></em>' containment reference.
412 * <!-- begin-user-doc -->
413 * <!-- end-user-doc -->
414 * @generated
415 * @ordered
416 */
417 int CUBE_SAT__PAYLOAD = SPACECRAFT__PAYLOAD;
418
419 /**
420 * The number of structural features of the '<em>Cube Sat</em>' class.
421 * <!-- begin-user-doc -->
422 * <!-- end-user-doc -->
423 * @generated
424 * @ordered
425 */
426 int CUBE_SAT_FEATURE_COUNT = SPACECRAFT_FEATURE_COUNT + 0;
427
428 /**
429 * The number of operations of the '<em>Cube Sat</em>' class.
430 * <!-- begin-user-doc -->
431 * <!-- end-user-doc -->
432 * @generated
433 * @ordered
434 */
435 int CUBE_SAT_OPERATION_COUNT = SPACECRAFT_OPERATION_COUNT + 0;
436
437 /**
438 * The meta object id for the '{@link satellite.impl.CubeSat3UImpl <em>Cube Sat3 U</em>}' class.
439 * <!-- begin-user-doc -->
440 * <!-- end-user-doc -->
441 * @see satellite.impl.CubeSat3UImpl
442 * @see satellite.impl.SatellitePackageImpl#getCubeSat3U()
443 * @generated
444 */
445 int CUBE_SAT3_U = 8;
446
447 /**
448 * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list.
449 * <!-- begin-user-doc -->
450 * <!-- end-user-doc -->
451 * @generated
452 * @ordered
453 */
454 int CUBE_SAT3_U__COMM_SUBSYSTEM = CUBE_SAT__COMM_SUBSYSTEM;
455
456 /**
457 * The feature id for the '<em><b>Payload</b></em>' containment reference.
458 * <!-- begin-user-doc -->
459 * <!-- end-user-doc -->
460 * @generated
461 * @ordered
462 */
463 int CUBE_SAT3_U__PAYLOAD = CUBE_SAT__PAYLOAD;
464
465 /**
466 * The number of structural features of the '<em>Cube Sat3 U</em>' class.
467 * <!-- begin-user-doc -->
468 * <!-- end-user-doc -->
469 * @generated
470 * @ordered
471 */
472 int CUBE_SAT3_U_FEATURE_COUNT = CUBE_SAT_FEATURE_COUNT + 0;
473
474 /**
475 * The number of operations of the '<em>Cube Sat3 U</em>' class.
476 * <!-- begin-user-doc -->
477 * <!-- end-user-doc -->
478 * @generated
479 * @ordered
480 */
481 int CUBE_SAT3_U_OPERATION_COUNT = CUBE_SAT_OPERATION_COUNT + 0;
482
483 /**
484 * The meta object id for the '{@link satellite.impl.CubeSat6UImpl <em>Cube Sat6 U</em>}' class.
485 * <!-- begin-user-doc -->
486 * <!-- end-user-doc -->
487 * @see satellite.impl.CubeSat6UImpl
488 * @see satellite.impl.SatellitePackageImpl#getCubeSat6U()
489 * @generated
490 */
491 int CUBE_SAT6_U = 9;
492
493 /**
494 * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list.
495 * <!-- begin-user-doc -->
496 * <!-- end-user-doc -->
497 * @generated
498 * @ordered
499 */
500 int CUBE_SAT6_U__COMM_SUBSYSTEM = CUBE_SAT__COMM_SUBSYSTEM;
501
502 /**
503 * The feature id for the '<em><b>Payload</b></em>' containment reference.
504 * <!-- begin-user-doc -->
505 * <!-- end-user-doc -->
506 * @generated
507 * @ordered
508 */
509 int CUBE_SAT6_U__PAYLOAD = CUBE_SAT__PAYLOAD;
510
511 /**
512 * The number of structural features of the '<em>Cube Sat6 U</em>' class.
513 * <!-- begin-user-doc -->
514 * <!-- end-user-doc -->
515 * @generated
516 * @ordered
517 */
518 int CUBE_SAT6_U_FEATURE_COUNT = CUBE_SAT_FEATURE_COUNT + 0;
519
520 /**
521 * The number of operations of the '<em>Cube Sat6 U</em>' class.
522 * <!-- begin-user-doc -->
523 * <!-- end-user-doc -->
524 * @generated
525 * @ordered
526 */
527 int CUBE_SAT6_U_OPERATION_COUNT = CUBE_SAT_OPERATION_COUNT + 0;
528
529 /**
530 * The meta object id for the '{@link satellite.impl.SmallSatImpl <em>Small Sat</em>}' class.
531 * <!-- begin-user-doc -->
532 * <!-- end-user-doc -->
533 * @see satellite.impl.SmallSatImpl
534 * @see satellite.impl.SatellitePackageImpl#getSmallSat()
535 * @generated
536 */
537 int SMALL_SAT = 10;
538
539 /**
540 * The feature id for the '<em><b>Comm Subsystem</b></em>' containment reference list.
541 * <!-- begin-user-doc -->
542 * <!-- end-user-doc -->
543 * @generated
544 * @ordered
545 */
546 int SMALL_SAT__COMM_SUBSYSTEM = SPACECRAFT__COMM_SUBSYSTEM;
547
548 /**
549 * The feature id for the '<em><b>Payload</b></em>' containment reference.
550 * <!-- begin-user-doc -->
551 * <!-- end-user-doc -->
552 * @generated
553 * @ordered
554 */
555 int SMALL_SAT__PAYLOAD = SPACECRAFT__PAYLOAD;
556
557 /**
558 * The number of structural features of the '<em>Small Sat</em>' class.
559 * <!-- begin-user-doc -->
560 * <!-- end-user-doc -->
561 * @generated
562 * @ordered
563 */
564 int SMALL_SAT_FEATURE_COUNT = SPACECRAFT_FEATURE_COUNT + 0;
565
566 /**
567 * The number of operations of the '<em>Small Sat</em>' class.
568 * <!-- begin-user-doc -->
569 * <!-- end-user-doc -->
570 * @generated
571 * @ordered
572 */
573 int SMALL_SAT_OPERATION_COUNT = SPACECRAFT_OPERATION_COUNT + 0;
574
575 /**
576 * The meta object id for the '{@link satellite.impl.UHFCommSubsystemImpl <em>UHF Comm Subsystem</em>}' class.
577 * <!-- begin-user-doc -->
578 * <!-- end-user-doc -->
579 * @see satellite.impl.UHFCommSubsystemImpl
580 * @see satellite.impl.SatellitePackageImpl#getUHFCommSubsystem()
581 * @generated
582 */
583 int UHF_COMM_SUBSYSTEM = 12;
584
585 /**
586 * The feature id for the '<em><b>Target</b></em>' reference.
587 * <!-- begin-user-doc -->
588 * <!-- end-user-doc -->
589 * @generated
590 * @ordered
591 */
592 int UHF_COMM_SUBSYSTEM__TARGET = COMM_SUBSYSTEM__TARGET;
593
594 /**
595 * The feature id for the '<em><b>Frequency</b></em>' attribute.
596 * <!-- begin-user-doc -->
597 * <!-- end-user-doc -->
598 * @generated
599 * @ordered
600 */
601 int UHF_COMM_SUBSYSTEM__FREQUENCY = COMM_SUBSYSTEM__FREQUENCY;
602
603 /**
604 * The feature id for the '<em><b>Path Length</b></em>' attribute.
605 * <!-- begin-user-doc -->
606 * <!-- end-user-doc -->
607 * @generated
608 * @ordered
609 */
610 int UHF_COMM_SUBSYSTEM__PATH_LENGTH = COMM_SUBSYSTEM__PATH_LENGTH;
611
612 /**
613 * The number of structural features of the '<em>UHF Comm Subsystem</em>' class.
614 * <!-- begin-user-doc -->
615 * <!-- end-user-doc -->
616 * @generated
617 * @ordered
618 */
619 int UHF_COMM_SUBSYSTEM_FEATURE_COUNT = COMM_SUBSYSTEM_FEATURE_COUNT + 0;
620
621 /**
622 * The number of operations of the '<em>UHF Comm Subsystem</em>' class.
623 * <!-- begin-user-doc -->
624 * <!-- end-user-doc -->
625 * @generated
626 * @ordered
627 */
628 int UHF_COMM_SUBSYSTEM_OPERATION_COUNT = COMM_SUBSYSTEM_OPERATION_COUNT + 0;
629
630 /**
631 * The meta object id for the '{@link satellite.impl.XCommSubsystemImpl <em>XComm Subsystem</em>}' class.
632 * <!-- begin-user-doc -->
633 * <!-- end-user-doc -->
634 * @see satellite.impl.XCommSubsystemImpl
635 * @see satellite.impl.SatellitePackageImpl#getXCommSubsystem()
636 * @generated
637 */
638 int XCOMM_SUBSYSTEM = 13;
639
640 /**
641 * The feature id for the '<em><b>Target</b></em>' reference.
642 * <!-- begin-user-doc -->
643 * <!-- end-user-doc -->
644 * @generated
645 * @ordered
646 */
647 int XCOMM_SUBSYSTEM__TARGET = COMM_SUBSYSTEM__TARGET;
648
649 /**
650 * The feature id for the '<em><b>Frequency</b></em>' attribute.
651 * <!-- begin-user-doc -->
652 * <!-- end-user-doc -->
653 * @generated
654 * @ordered
655 */
656 int XCOMM_SUBSYSTEM__FREQUENCY = COMM_SUBSYSTEM__FREQUENCY;
657
658 /**
659 * The feature id for the '<em><b>Path Length</b></em>' attribute.
660 * <!-- begin-user-doc -->
661 * <!-- end-user-doc -->
662 * @generated
663 * @ordered
664 */
665 int XCOMM_SUBSYSTEM__PATH_LENGTH = COMM_SUBSYSTEM__PATH_LENGTH;
666
667 /**
668 * The number of structural features of the '<em>XComm Subsystem</em>' class.
669 * <!-- begin-user-doc -->
670 * <!-- end-user-doc -->
671 * @generated
672 * @ordered
673 */
674 int XCOMM_SUBSYSTEM_FEATURE_COUNT = COMM_SUBSYSTEM_FEATURE_COUNT + 0;
675
676 /**
677 * The number of operations of the '<em>XComm Subsystem</em>' class.
678 * <!-- begin-user-doc -->
679 * <!-- end-user-doc -->
680 * @generated
681 * @ordered
682 */
683 int XCOMM_SUBSYSTEM_OPERATION_COUNT = COMM_SUBSYSTEM_OPERATION_COUNT + 0;
684
685 /**
686 * The meta object id for the '{@link satellite.impl.KaCommSubsystemImpl <em>Ka Comm Subsystem</em>}' class.
687 * <!-- begin-user-doc -->
688 * <!-- end-user-doc -->
689 * @see satellite.impl.KaCommSubsystemImpl
690 * @see satellite.impl.SatellitePackageImpl#getKaCommSubsystem()
691 * @generated
692 */
693 int KA_COMM_SUBSYSTEM = 14;
694
695 /**
696 * The feature id for the '<em><b>Target</b></em>' reference.
697 * <!-- begin-user-doc -->
698 * <!-- end-user-doc -->
699 * @generated
700 * @ordered
701 */
702 int KA_COMM_SUBSYSTEM__TARGET = COMM_SUBSYSTEM__TARGET;
703
704 /**
705 * The feature id for the '<em><b>Frequency</b></em>' attribute.
706 * <!-- begin-user-doc -->
707 * <!-- end-user-doc -->
708 * @generated
709 * @ordered
710 */
711 int KA_COMM_SUBSYSTEM__FREQUENCY = COMM_SUBSYSTEM__FREQUENCY;
712
713 /**
714 * The feature id for the '<em><b>Path Length</b></em>' attribute.
715 * <!-- begin-user-doc -->
716 * <!-- end-user-doc -->
717 * @generated
718 * @ordered
719 */
720 int KA_COMM_SUBSYSTEM__PATH_LENGTH = COMM_SUBSYSTEM__PATH_LENGTH;
721
722 /**
723 * The number of structural features of the '<em>Ka Comm Subsystem</em>' class.
724 * <!-- begin-user-doc -->
725 * <!-- end-user-doc -->
726 * @generated
727 * @ordered
728 */
729 int KA_COMM_SUBSYSTEM_FEATURE_COUNT = COMM_SUBSYSTEM_FEATURE_COUNT + 0;
730
731 /**
732 * The number of operations of the '<em>Ka Comm Subsystem</em>' class.
733 * <!-- begin-user-doc -->
734 * <!-- end-user-doc -->
735 * @generated
736 * @ordered
737 */
738 int KA_COMM_SUBSYSTEM_OPERATION_COUNT = COMM_SUBSYSTEM_OPERATION_COUNT + 0;
739
740
741 /**
742 * Returns the meta object for class '{@link satellite.ConstellationMission <em>Constellation Mission</em>}'.
743 * <!-- begin-user-doc -->
744 * <!-- end-user-doc -->
745 * @return the meta object for class '<em>Constellation Mission</em>'.
746 * @see satellite.ConstellationMission
747 * @generated
748 */
749 EClass getConstellationMission();
750
751 /**
752 * Returns the meta object for the containment reference '{@link satellite.ConstellationMission#getGroundStationNetwork <em>Ground Station Network</em>}'.
753 * <!-- begin-user-doc -->
754 * <!-- end-user-doc -->
755 * @return the meta object for the containment reference '<em>Ground Station Network</em>'.
756 * @see satellite.ConstellationMission#getGroundStationNetwork()
757 * @see #getConstellationMission()
758 * @generated
759 */
760 EReference getConstellationMission_GroundStationNetwork();
761
762 /**
763 * Returns the meta object for the containment reference list '{@link satellite.ConstellationMission#getSpacecraft <em>Spacecraft</em>}'.
764 * <!-- begin-user-doc -->
765 * <!-- end-user-doc -->
766 * @return the meta object for the containment reference list '<em>Spacecraft</em>'.
767 * @see satellite.ConstellationMission#getSpacecraft()
768 * @see #getConstellationMission()
769 * @generated
770 */
771 EReference getConstellationMission_Spacecraft();
772
773 /**
774 * Returns the meta object for class '{@link satellite.InterferometryMission <em>Interferometry Mission</em>}'.
775 * <!-- begin-user-doc -->
776 * <!-- end-user-doc -->
777 * @return the meta object for class '<em>Interferometry Mission</em>'.
778 * @see satellite.InterferometryMission
779 * @generated
780 */
781 EClass getInterferometryMission();
782
783 /**
784 * Returns the meta object for the attribute '{@link satellite.InterferometryMission#getObservationTime <em>Observation Time</em>}'.
785 * <!-- begin-user-doc -->
786 * <!-- end-user-doc -->
787 * @return the meta object for the attribute '<em>Observation Time</em>'.
788 * @see satellite.InterferometryMission#getObservationTime()
789 * @see #getInterferometryMission()
790 * @generated
791 */
792 EAttribute getInterferometryMission_ObservationTime();
793
794 /**
795 * Returns the meta object for class '{@link satellite.CommunicatingElement <em>Communicating Element</em>}'.
796 * <!-- begin-user-doc -->
797 * <!-- end-user-doc -->
798 * @return the meta object for class '<em>Communicating Element</em>'.
799 * @see satellite.CommunicatingElement
800 * @generated
801 */
802 EClass getCommunicatingElement();
803
804 /**
805 * Returns the meta object for the containment reference list '{@link satellite.CommunicatingElement#getCommSubsystem <em>Comm Subsystem</em>}'.
806 * <!-- begin-user-doc -->
807 * <!-- end-user-doc -->
808 * @return the meta object for the containment reference list '<em>Comm Subsystem</em>'.
809 * @see satellite.CommunicatingElement#getCommSubsystem()
810 * @see #getCommunicatingElement()
811 * @generated
812 */
813 EReference getCommunicatingElement_CommSubsystem();
814
815 /**
816 * Returns the meta object for class '{@link satellite.GroundStationNetwork <em>Ground Station Network</em>}'.
817 * <!-- begin-user-doc -->
818 * <!-- end-user-doc -->
819 * @return the meta object for class '<em>Ground Station Network</em>'.
820 * @see satellite.GroundStationNetwork
821 * @generated
822 */
823 EClass getGroundStationNetwork();
824
825 /**
826 * Returns the meta object for class '{@link satellite.Spacecraft <em>Spacecraft</em>}'.
827 * <!-- begin-user-doc -->
828 * <!-- end-user-doc -->
829 * @return the meta object for class '<em>Spacecraft</em>'.
830 * @see satellite.Spacecraft
831 * @generated
832 */
833 EClass getSpacecraft();
834
835 /**
836 * Returns the meta object for the containment reference '{@link satellite.Spacecraft#getPayload <em>Payload</em>}'.
837 * <!-- begin-user-doc -->
838 * <!-- end-user-doc -->
839 * @return the meta object for the containment reference '<em>Payload</em>'.
840 * @see satellite.Spacecraft#getPayload()
841 * @see #getSpacecraft()
842 * @generated
843 */
844 EReference getSpacecraft_Payload();
845
846 /**
847 * Returns the meta object for class '{@link satellite.CommSubsystem <em>Comm Subsystem</em>}'.
848 * <!-- begin-user-doc -->
849 * <!-- end-user-doc -->
850 * @return the meta object for class '<em>Comm Subsystem</em>'.
851 * @see satellite.CommSubsystem
852 * @generated
853 */
854 EClass getCommSubsystem();
855
856 /**
857 * Returns the meta object for the reference '{@link satellite.CommSubsystem#getTarget <em>Target</em>}'.
858 * <!-- begin-user-doc -->
859 * <!-- end-user-doc -->
860 * @return the meta object for the reference '<em>Target</em>'.
861 * @see satellite.CommSubsystem#getTarget()
862 * @see #getCommSubsystem()
863 * @generated
864 */
865 EReference getCommSubsystem_Target();
866
867 /**
868 * Returns the meta object for the attribute '{@link satellite.CommSubsystem#getFrequency <em>Frequency</em>}'.
869 * <!-- begin-user-doc -->
870 * <!-- end-user-doc -->
871 * @return the meta object for the attribute '<em>Frequency</em>'.
872 * @see satellite.CommSubsystem#getFrequency()
873 * @see #getCommSubsystem()
874 * @generated
875 */
876 EAttribute getCommSubsystem_Frequency();
877
878 /**
879 * Returns the meta object for the attribute '{@link satellite.CommSubsystem#getPathLength <em>Path Length</em>}'.
880 * <!-- begin-user-doc -->
881 * <!-- end-user-doc -->
882 * @return the meta object for the attribute '<em>Path Length</em>'.
883 * @see satellite.CommSubsystem#getPathLength()
884 * @see #getCommSubsystem()
885 * @generated
886 */
887 EAttribute getCommSubsystem_PathLength();
888
889 /**
890 * Returns the meta object for class '{@link satellite.Payload <em>Payload</em>}'.
891 * <!-- begin-user-doc -->
892 * <!-- end-user-doc -->
893 * @return the meta object for class '<em>Payload</em>'.
894 * @see satellite.Payload
895 * @generated
896 */
897 EClass getPayload();
898
899 /**
900 * Returns the meta object for class '{@link satellite.InterferometryPayload <em>Interferometry Payload</em>}'.
901 * <!-- begin-user-doc -->
902 * <!-- end-user-doc -->
903 * @return the meta object for class '<em>Interferometry Payload</em>'.
904 * @see satellite.InterferometryPayload
905 * @generated
906 */
907 EClass getInterferometryPayload();
908
909 /**
910 * Returns the meta object for class '{@link satellite.CubeSat3U <em>Cube Sat3 U</em>}'.
911 * <!-- begin-user-doc -->
912 * <!-- end-user-doc -->
913 * @return the meta object for class '<em>Cube Sat3 U</em>'.
914 * @see satellite.CubeSat3U
915 * @generated
916 */
917 EClass getCubeSat3U();
918
919 /**
920 * Returns the meta object for class '{@link satellite.CubeSat6U <em>Cube Sat6 U</em>}'.
921 * <!-- begin-user-doc -->
922 * <!-- end-user-doc -->
923 * @return the meta object for class '<em>Cube Sat6 U</em>'.
924 * @see satellite.CubeSat6U
925 * @generated
926 */
927 EClass getCubeSat6U();
928
929 /**
930 * Returns the meta object for class '{@link satellite.SmallSat <em>Small Sat</em>}'.
931 * <!-- begin-user-doc -->
932 * <!-- end-user-doc -->
933 * @return the meta object for class '<em>Small Sat</em>'.
934 * @see satellite.SmallSat
935 * @generated
936 */
937 EClass getSmallSat();
938
939 /**
940 * Returns the meta object for class '{@link satellite.CubeSat <em>Cube Sat</em>}'.
941 * <!-- begin-user-doc -->
942 * <!-- end-user-doc -->
943 * @return the meta object for class '<em>Cube Sat</em>'.
944 * @see satellite.CubeSat
945 * @generated
946 */
947 EClass getCubeSat();
948
949 /**
950 * Returns the meta object for class '{@link satellite.UHFCommSubsystem <em>UHF Comm Subsystem</em>}'.
951 * <!-- begin-user-doc -->
952 * <!-- end-user-doc -->
953 * @return the meta object for class '<em>UHF Comm Subsystem</em>'.
954 * @see satellite.UHFCommSubsystem
955 * @generated
956 */
957 EClass getUHFCommSubsystem();
958
959 /**
960 * Returns the meta object for class '{@link satellite.XCommSubsystem <em>XComm Subsystem</em>}'.
961 * <!-- begin-user-doc -->
962 * <!-- end-user-doc -->
963 * @return the meta object for class '<em>XComm Subsystem</em>'.
964 * @see satellite.XCommSubsystem
965 * @generated
966 */
967 EClass getXCommSubsystem();
968
969 /**
970 * Returns the meta object for class '{@link satellite.KaCommSubsystem <em>Ka Comm Subsystem</em>}'.
971 * <!-- begin-user-doc -->
972 * <!-- end-user-doc -->
973 * @return the meta object for class '<em>Ka Comm Subsystem</em>'.
974 * @see satellite.KaCommSubsystem
975 * @generated
976 */
977 EClass getKaCommSubsystem();
978
979 /**
980 * Returns the factory that creates the instances of the model.
981 * <!-- begin-user-doc -->
982 * <!-- end-user-doc -->
983 * @return the factory that creates the instances of the model.
984 * @generated
985 */
986 SatelliteFactory getSatelliteFactory();
987
988 /**
989 * <!-- begin-user-doc -->
990 * Defines literals for the meta objects that represent
991 * <ul>
992 * <li>each class,</li>
993 * <li>each feature of each class,</li>
994 * <li>each operation of each class,</li>
995 * <li>each enum,</li>
996 * <li>and each data type</li>
997 * </ul>
998 * <!-- end-user-doc -->
999 * @generated
1000 */
1001 interface Literals {
1002 /**
1003 * The meta object literal for the '{@link satellite.impl.ConstellationMissionImpl <em>Constellation Mission</em>}' class.
1004 * <!-- begin-user-doc -->
1005 * <!-- end-user-doc -->
1006 * @see satellite.impl.ConstellationMissionImpl
1007 * @see satellite.impl.SatellitePackageImpl#getConstellationMission()
1008 * @generated
1009 */
1010 EClass CONSTELLATION_MISSION = eINSTANCE.getConstellationMission();
1011
1012 /**
1013 * The meta object literal for the '<em><b>Ground Station Network</b></em>' containment reference feature.
1014 * <!-- begin-user-doc -->
1015 * <!-- end-user-doc -->
1016 * @generated
1017 */
1018 EReference CONSTELLATION_MISSION__GROUND_STATION_NETWORK = eINSTANCE.getConstellationMission_GroundStationNetwork();
1019
1020 /**
1021 * The meta object literal for the '<em><b>Spacecraft</b></em>' containment reference list feature.
1022 * <!-- begin-user-doc -->
1023 * <!-- end-user-doc -->
1024 * @generated
1025 */
1026 EReference CONSTELLATION_MISSION__SPACECRAFT = eINSTANCE.getConstellationMission_Spacecraft();
1027
1028 /**
1029 * The meta object literal for the '{@link satellite.impl.InterferometryMissionImpl <em>Interferometry Mission</em>}' class.
1030 * <!-- begin-user-doc -->
1031 * <!-- end-user-doc -->
1032 * @see satellite.impl.InterferometryMissionImpl
1033 * @see satellite.impl.SatellitePackageImpl#getInterferometryMission()
1034 * @generated
1035 */
1036 EClass INTERFEROMETRY_MISSION = eINSTANCE.getInterferometryMission();
1037
1038 /**
1039 * The meta object literal for the '<em><b>Observation Time</b></em>' attribute feature.
1040 * <!-- begin-user-doc -->
1041 * <!-- end-user-doc -->
1042 * @generated
1043 */
1044 EAttribute INTERFEROMETRY_MISSION__OBSERVATION_TIME = eINSTANCE.getInterferometryMission_ObservationTime();
1045
1046 /**
1047 * The meta object literal for the '{@link satellite.impl.CommunicatingElementImpl <em>Communicating Element</em>}' class.
1048 * <!-- begin-user-doc -->
1049 * <!-- end-user-doc -->
1050 * @see satellite.impl.CommunicatingElementImpl
1051 * @see satellite.impl.SatellitePackageImpl#getCommunicatingElement()
1052 * @generated
1053 */
1054 EClass COMMUNICATING_ELEMENT = eINSTANCE.getCommunicatingElement();
1055
1056 /**
1057 * The meta object literal for the '<em><b>Comm Subsystem</b></em>' containment reference list feature.
1058 * <!-- begin-user-doc -->
1059 * <!-- end-user-doc -->
1060 * @generated
1061 */
1062 EReference COMMUNICATING_ELEMENT__COMM_SUBSYSTEM = eINSTANCE.getCommunicatingElement_CommSubsystem();
1063
1064 /**
1065 * The meta object literal for the '{@link satellite.impl.GroundStationNetworkImpl <em>Ground Station Network</em>}' class.
1066 * <!-- begin-user-doc -->
1067 * <!-- end-user-doc -->
1068 * @see satellite.impl.GroundStationNetworkImpl
1069 * @see satellite.impl.SatellitePackageImpl#getGroundStationNetwork()
1070 * @generated
1071 */
1072 EClass GROUND_STATION_NETWORK = eINSTANCE.getGroundStationNetwork();
1073
1074 /**
1075 * The meta object literal for the '{@link satellite.impl.SpacecraftImpl <em>Spacecraft</em>}' class.
1076 * <!-- begin-user-doc -->
1077 * <!-- end-user-doc -->
1078 * @see satellite.impl.SpacecraftImpl
1079 * @see satellite.impl.SatellitePackageImpl#getSpacecraft()
1080 * @generated
1081 */
1082 EClass SPACECRAFT = eINSTANCE.getSpacecraft();
1083
1084 /**
1085 * The meta object literal for the '<em><b>Payload</b></em>' containment reference feature.
1086 * <!-- begin-user-doc -->
1087 * <!-- end-user-doc -->
1088 * @generated
1089 */
1090 EReference SPACECRAFT__PAYLOAD = eINSTANCE.getSpacecraft_Payload();
1091
1092 /**
1093 * The meta object literal for the '{@link satellite.impl.CommSubsystemImpl <em>Comm Subsystem</em>}' class.
1094 * <!-- begin-user-doc -->
1095 * <!-- end-user-doc -->
1096 * @see satellite.impl.CommSubsystemImpl
1097 * @see satellite.impl.SatellitePackageImpl#getCommSubsystem()
1098 * @generated
1099 */
1100 EClass COMM_SUBSYSTEM = eINSTANCE.getCommSubsystem();
1101
1102 /**
1103 * The meta object literal for the '<em><b>Target</b></em>' reference feature.
1104 * <!-- begin-user-doc -->
1105 * <!-- end-user-doc -->
1106 * @generated
1107 */
1108 EReference COMM_SUBSYSTEM__TARGET = eINSTANCE.getCommSubsystem_Target();
1109
1110 /**
1111 * The meta object literal for the '<em><b>Frequency</b></em>' attribute feature.
1112 * <!-- begin-user-doc -->
1113 * <!-- end-user-doc -->
1114 * @generated
1115 */
1116 EAttribute COMM_SUBSYSTEM__FREQUENCY = eINSTANCE.getCommSubsystem_Frequency();
1117
1118 /**
1119 * The meta object literal for the '<em><b>Path Length</b></em>' attribute feature.
1120 * <!-- begin-user-doc -->
1121 * <!-- end-user-doc -->
1122 * @generated
1123 */
1124 EAttribute COMM_SUBSYSTEM__PATH_LENGTH = eINSTANCE.getCommSubsystem_PathLength();
1125
1126 /**
1127 * The meta object literal for the '{@link satellite.impl.PayloadImpl <em>Payload</em>}' class.
1128 * <!-- begin-user-doc -->
1129 * <!-- end-user-doc -->
1130 * @see satellite.impl.PayloadImpl
1131 * @see satellite.impl.SatellitePackageImpl#getPayload()
1132 * @generated
1133 */
1134 EClass PAYLOAD = eINSTANCE.getPayload();
1135
1136 /**
1137 * The meta object literal for the '{@link satellite.impl.InterferometryPayloadImpl <em>Interferometry Payload</em>}' class.
1138 * <!-- begin-user-doc -->
1139 * <!-- end-user-doc -->
1140 * @see satellite.impl.InterferometryPayloadImpl
1141 * @see satellite.impl.SatellitePackageImpl#getInterferometryPayload()
1142 * @generated
1143 */
1144 EClass INTERFEROMETRY_PAYLOAD = eINSTANCE.getInterferometryPayload();
1145
1146 /**
1147 * The meta object literal for the '{@link satellite.impl.CubeSat3UImpl <em>Cube Sat3 U</em>}' class.
1148 * <!-- begin-user-doc -->
1149 * <!-- end-user-doc -->
1150 * @see satellite.impl.CubeSat3UImpl
1151 * @see satellite.impl.SatellitePackageImpl#getCubeSat3U()
1152 * @generated
1153 */
1154 EClass CUBE_SAT3_U = eINSTANCE.getCubeSat3U();
1155
1156 /**
1157 * The meta object literal for the '{@link satellite.impl.CubeSat6UImpl <em>Cube Sat6 U</em>}' class.
1158 * <!-- begin-user-doc -->
1159 * <!-- end-user-doc -->
1160 * @see satellite.impl.CubeSat6UImpl
1161 * @see satellite.impl.SatellitePackageImpl#getCubeSat6U()
1162 * @generated
1163 */
1164 EClass CUBE_SAT6_U = eINSTANCE.getCubeSat6U();
1165
1166 /**
1167 * The meta object literal for the '{@link satellite.impl.SmallSatImpl <em>Small Sat</em>}' class.
1168 * <!-- begin-user-doc -->
1169 * <!-- end-user-doc -->
1170 * @see satellite.impl.SmallSatImpl
1171 * @see satellite.impl.SatellitePackageImpl#getSmallSat()
1172 * @generated
1173 */
1174 EClass SMALL_SAT = eINSTANCE.getSmallSat();
1175
1176 /**
1177 * The meta object literal for the '{@link satellite.impl.CubeSatImpl <em>Cube Sat</em>}' class.
1178 * <!-- begin-user-doc -->
1179 * <!-- end-user-doc -->
1180 * @see satellite.impl.CubeSatImpl
1181 * @see satellite.impl.SatellitePackageImpl#getCubeSat()
1182 * @generated
1183 */
1184 EClass CUBE_SAT = eINSTANCE.getCubeSat();
1185
1186 /**
1187 * The meta object literal for the '{@link satellite.impl.UHFCommSubsystemImpl <em>UHF Comm Subsystem</em>}' class.
1188 * <!-- begin-user-doc -->
1189 * <!-- end-user-doc -->
1190 * @see satellite.impl.UHFCommSubsystemImpl
1191 * @see satellite.impl.SatellitePackageImpl#getUHFCommSubsystem()
1192 * @generated
1193 */
1194 EClass UHF_COMM_SUBSYSTEM = eINSTANCE.getUHFCommSubsystem();
1195
1196 /**
1197 * The meta object literal for the '{@link satellite.impl.XCommSubsystemImpl <em>XComm Subsystem</em>}' class.
1198 * <!-- begin-user-doc -->
1199 * <!-- end-user-doc -->
1200 * @see satellite.impl.XCommSubsystemImpl
1201 * @see satellite.impl.SatellitePackageImpl#getXCommSubsystem()
1202 * @generated
1203 */
1204 EClass XCOMM_SUBSYSTEM = eINSTANCE.getXCommSubsystem();
1205
1206 /**
1207 * The meta object literal for the '{@link satellite.impl.KaCommSubsystemImpl <em>Ka Comm Subsystem</em>}' class.
1208 * <!-- begin-user-doc -->
1209 * <!-- end-user-doc -->
1210 * @see satellite.impl.KaCommSubsystemImpl
1211 * @see satellite.impl.SatellitePackageImpl#getKaCommSubsystem()
1212 * @generated
1213 */
1214 EClass KA_COMM_SUBSYSTEM = eINSTANCE.getKaCommSubsystem();
1215
1216 }
1217
1218} //SatellitePackage
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/SmallSat.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/SmallSat.java
new file mode 100644
index 00000000..4925ff12
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/SmallSat.java
@@ -0,0 +1,17 @@
1/**
2 */
3package satellite;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Small Sat</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see satellite.SatellitePackage#getSmallSat()
13 * @model
14 * @generated
15 */
16public interface SmallSat extends Spacecraft {
17} // SmallSat
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/Spacecraft.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/Spacecraft.java
new file mode 100644
index 00000000..4dd77329
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/Spacecraft.java
@@ -0,0 +1,45 @@
1/**
2 */
3package satellite;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Spacecraft</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 * <p>
12 * The following features are supported:
13 * </p>
14 * <ul>
15 * <li>{@link satellite.Spacecraft#getPayload <em>Payload</em>}</li>
16 * </ul>
17 *
18 * @see satellite.SatellitePackage#getSpacecraft()
19 * @model abstract="true"
20 * @generated
21 */
22public interface Spacecraft extends CommunicatingElement {
23 /**
24 * Returns the value of the '<em><b>Payload</b></em>' containment reference.
25 * <!-- begin-user-doc -->
26 * <!-- end-user-doc -->
27 * @return the value of the '<em>Payload</em>' containment reference.
28 * @see #setPayload(Payload)
29 * @see satellite.SatellitePackage#getSpacecraft_Payload()
30 * @model containment="true"
31 * @generated
32 */
33 Payload getPayload();
34
35 /**
36 * Sets the value of the '{@link satellite.Spacecraft#getPayload <em>Payload</em>}' containment reference.
37 * <!-- begin-user-doc -->
38 * <!-- end-user-doc -->
39 * @param value the new value of the '<em>Payload</em>' containment reference.
40 * @see #getPayload()
41 * @generated
42 */
43 void setPayload(Payload value);
44
45} // Spacecraft
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/UHFCommSubsystem.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/UHFCommSubsystem.java
new file mode 100644
index 00000000..01f95ad5
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/UHFCommSubsystem.java
@@ -0,0 +1,17 @@
1/**
2 */
3package satellite;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>UHF Comm Subsystem</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see satellite.SatellitePackage#getUHFCommSubsystem()
13 * @model
14 * @generated
15 */
16public interface UHFCommSubsystem extends CommSubsystem {
17} // UHFCommSubsystem
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/XCommSubsystem.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/XCommSubsystem.java
new file mode 100644
index 00000000..8e388d38
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/XCommSubsystem.java
@@ -0,0 +1,17 @@
1/**
2 */
3package satellite;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>XComm Subsystem</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see satellite.SatellitePackage#getXCommSubsystem()
13 * @model
14 * @generated
15 */
16public interface XCommSubsystem extends CommSubsystem {
17} // XCommSubsystem
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/CommSubsystemImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/CommSubsystemImpl.java
new file mode 100644
index 00000000..564e9dcb
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/CommSubsystemImpl.java
@@ -0,0 +1,284 @@
1/**
2 */
3package satellite.impl;
4
5import org.eclipse.emf.common.notify.Notification;
6
7import org.eclipse.emf.ecore.EClass;
8import org.eclipse.emf.ecore.InternalEObject;
9
10import org.eclipse.emf.ecore.impl.ENotificationImpl;
11import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
12
13import satellite.CommSubsystem;
14import satellite.SatellitePackage;
15
16/**
17 * <!-- begin-user-doc -->
18 * An implementation of the model object '<em><b>Comm Subsystem</b></em>'.
19 * <!-- end-user-doc -->
20 * <p>
21 * The following features are implemented:
22 * </p>
23 * <ul>
24 * <li>{@link satellite.impl.CommSubsystemImpl#getTarget <em>Target</em>}</li>
25 * <li>{@link satellite.impl.CommSubsystemImpl#getFrequency <em>Frequency</em>}</li>
26 * <li>{@link satellite.impl.CommSubsystemImpl#getPathLength <em>Path Length</em>}</li>
27 * </ul>
28 *
29 * @generated
30 */
31public abstract class CommSubsystemImpl extends MinimalEObjectImpl.Container implements CommSubsystem {
32 /**
33 * The cached value of the '{@link #getTarget() <em>Target</em>}' reference.
34 * <!-- begin-user-doc -->
35 * <!-- end-user-doc -->
36 * @see #getTarget()
37 * @generated
38 * @ordered
39 */
40 protected CommSubsystem target;
41
42 /**
43 * The default value of the '{@link #getFrequency() <em>Frequency</em>}' attribute.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @see #getFrequency()
47 * @generated
48 * @ordered
49 */
50 protected static final int FREQUENCY_EDEFAULT = 0;
51
52 /**
53 * The cached value of the '{@link #getFrequency() <em>Frequency</em>}' attribute.
54 * <!-- begin-user-doc -->
55 * <!-- end-user-doc -->
56 * @see #getFrequency()
57 * @generated
58 * @ordered
59 */
60 protected int frequency = FREQUENCY_EDEFAULT;
61
62 /**
63 * The default value of the '{@link #getPathLength() <em>Path Length</em>}' attribute.
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @see #getPathLength()
67 * @generated
68 * @ordered
69 */
70 protected static final int PATH_LENGTH_EDEFAULT = 0;
71
72 /**
73 * The cached value of the '{@link #getPathLength() <em>Path Length</em>}' attribute.
74 * <!-- begin-user-doc -->
75 * <!-- end-user-doc -->
76 * @see #getPathLength()
77 * @generated
78 * @ordered
79 */
80 protected int pathLength = PATH_LENGTH_EDEFAULT;
81
82 /**
83 * <!-- begin-user-doc -->
84 * <!-- end-user-doc -->
85 * @generated
86 */
87 protected CommSubsystemImpl() {
88 super();
89 }
90
91 /**
92 * <!-- begin-user-doc -->
93 * <!-- end-user-doc -->
94 * @generated
95 */
96 @Override
97 protected EClass eStaticClass() {
98 return SatellitePackage.Literals.COMM_SUBSYSTEM;
99 }
100
101 /**
102 * <!-- begin-user-doc -->
103 * <!-- end-user-doc -->
104 * @generated
105 */
106 @Override
107 public CommSubsystem getTarget() {
108 if (target != null && target.eIsProxy()) {
109 InternalEObject oldTarget = (InternalEObject)target;
110 target = (CommSubsystem)eResolveProxy(oldTarget);
111 if (target != oldTarget) {
112 if (eNotificationRequired())
113 eNotify(new ENotificationImpl(this, Notification.RESOLVE, SatellitePackage.COMM_SUBSYSTEM__TARGET, oldTarget, target));
114 }
115 }
116 return target;
117 }
118
119 /**
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @generated
123 */
124 public CommSubsystem basicGetTarget() {
125 return target;
126 }
127
128 /**
129 * <!-- begin-user-doc -->
130 * <!-- end-user-doc -->
131 * @generated
132 */
133 @Override
134 public void setTarget(CommSubsystem newTarget) {
135 CommSubsystem oldTarget = target;
136 target = newTarget;
137 if (eNotificationRequired())
138 eNotify(new ENotificationImpl(this, Notification.SET, SatellitePackage.COMM_SUBSYSTEM__TARGET, oldTarget, target));
139 }
140
141 /**
142 * <!-- begin-user-doc -->
143 * <!-- end-user-doc -->
144 * @generated
145 */
146 @Override
147 public int getFrequency() {
148 return frequency;
149 }
150
151 /**
152 * <!-- begin-user-doc -->
153 * <!-- end-user-doc -->
154 * @generated
155 */
156 @Override
157 public void setFrequency(int newFrequency) {
158 int oldFrequency = frequency;
159 frequency = newFrequency;
160 if (eNotificationRequired())
161 eNotify(new ENotificationImpl(this, Notification.SET, SatellitePackage.COMM_SUBSYSTEM__FREQUENCY, oldFrequency, frequency));
162 }
163
164 /**
165 * <!-- begin-user-doc -->
166 * <!-- end-user-doc -->
167 * @generated
168 */
169 @Override
170 public int getPathLength() {
171 return pathLength;
172 }
173
174 /**
175 * <!-- begin-user-doc -->
176 * <!-- end-user-doc -->
177 * @generated
178 */
179 @Override
180 public void setPathLength(int newPathLength) {
181 int oldPathLength = pathLength;
182 pathLength = newPathLength;
183 if (eNotificationRequired())
184 eNotify(new ENotificationImpl(this, Notification.SET, SatellitePackage.COMM_SUBSYSTEM__PATH_LENGTH, oldPathLength, pathLength));
185 }
186
187 /**
188 * <!-- begin-user-doc -->
189 * <!-- end-user-doc -->
190 * @generated
191 */
192 @Override
193 public Object eGet(int featureID, boolean resolve, boolean coreType) {
194 switch (featureID) {
195 case SatellitePackage.COMM_SUBSYSTEM__TARGET:
196 if (resolve) return getTarget();
197 return basicGetTarget();
198 case SatellitePackage.COMM_SUBSYSTEM__FREQUENCY:
199 return getFrequency();
200 case SatellitePackage.COMM_SUBSYSTEM__PATH_LENGTH:
201 return getPathLength();
202 }
203 return super.eGet(featureID, resolve, coreType);
204 }
205
206 /**
207 * <!-- begin-user-doc -->
208 * <!-- end-user-doc -->
209 * @generated
210 */
211 @Override
212 public void eSet(int featureID, Object newValue) {
213 switch (featureID) {
214 case SatellitePackage.COMM_SUBSYSTEM__TARGET:
215 setTarget((CommSubsystem)newValue);
216 return;
217 case SatellitePackage.COMM_SUBSYSTEM__FREQUENCY:
218 setFrequency((Integer)newValue);
219 return;
220 case SatellitePackage.COMM_SUBSYSTEM__PATH_LENGTH:
221 setPathLength((Integer)newValue);
222 return;
223 }
224 super.eSet(featureID, newValue);
225 }
226
227 /**
228 * <!-- begin-user-doc -->
229 * <!-- end-user-doc -->
230 * @generated
231 */
232 @Override
233 public void eUnset(int featureID) {
234 switch (featureID) {
235 case SatellitePackage.COMM_SUBSYSTEM__TARGET:
236 setTarget((CommSubsystem)null);
237 return;
238 case SatellitePackage.COMM_SUBSYSTEM__FREQUENCY:
239 setFrequency(FREQUENCY_EDEFAULT);
240 return;
241 case SatellitePackage.COMM_SUBSYSTEM__PATH_LENGTH:
242 setPathLength(PATH_LENGTH_EDEFAULT);
243 return;
244 }
245 super.eUnset(featureID);
246 }
247
248 /**
249 * <!-- begin-user-doc -->
250 * <!-- end-user-doc -->
251 * @generated
252 */
253 @Override
254 public boolean eIsSet(int featureID) {
255 switch (featureID) {
256 case SatellitePackage.COMM_SUBSYSTEM__TARGET:
257 return target != null;
258 case SatellitePackage.COMM_SUBSYSTEM__FREQUENCY:
259 return frequency != FREQUENCY_EDEFAULT;
260 case SatellitePackage.COMM_SUBSYSTEM__PATH_LENGTH:
261 return pathLength != PATH_LENGTH_EDEFAULT;
262 }
263 return super.eIsSet(featureID);
264 }
265
266 /**
267 * <!-- begin-user-doc -->
268 * <!-- end-user-doc -->
269 * @generated
270 */
271 @Override
272 public String toString() {
273 if (eIsProxy()) return super.toString();
274
275 StringBuilder result = new StringBuilder(super.toString());
276 result.append(" (frequency: ");
277 result.append(frequency);
278 result.append(", pathLength: ");
279 result.append(pathLength);
280 result.append(')');
281 return result.toString();
282 }
283
284} //CommSubsystemImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/CommunicatingElementImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/CommunicatingElementImpl.java
new file mode 100644
index 00000000..318f3ac0
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/CommunicatingElementImpl.java
@@ -0,0 +1,153 @@
1/**
2 */
3package satellite.impl;
4
5import java.util.Collection;
6
7import org.eclipse.emf.common.notify.NotificationChain;
8
9import org.eclipse.emf.common.util.EList;
10
11import org.eclipse.emf.ecore.EClass;
12import org.eclipse.emf.ecore.InternalEObject;
13
14import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
15
16import org.eclipse.emf.ecore.util.EObjectContainmentEList;
17import org.eclipse.emf.ecore.util.InternalEList;
18
19import satellite.CommSubsystem;
20import satellite.CommunicatingElement;
21import satellite.SatellitePackage;
22
23/**
24 * <!-- begin-user-doc -->
25 * An implementation of the model object '<em><b>Communicating Element</b></em>'.
26 * <!-- end-user-doc -->
27 * <p>
28 * The following features are implemented:
29 * </p>
30 * <ul>
31 * <li>{@link satellite.impl.CommunicatingElementImpl#getCommSubsystem <em>Comm Subsystem</em>}</li>
32 * </ul>
33 *
34 * @generated
35 */
36public abstract class CommunicatingElementImpl extends MinimalEObjectImpl.Container implements CommunicatingElement {
37 /**
38 * The cached value of the '{@link #getCommSubsystem() <em>Comm Subsystem</em>}' containment reference list.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @see #getCommSubsystem()
42 * @generated
43 * @ordered
44 */
45 protected EList<CommSubsystem> commSubsystem;
46
47 /**
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @generated
51 */
52 protected CommunicatingElementImpl() {
53 super();
54 }
55
56 /**
57 * <!-- begin-user-doc -->
58 * <!-- end-user-doc -->
59 * @generated
60 */
61 @Override
62 protected EClass eStaticClass() {
63 return SatellitePackage.Literals.COMMUNICATING_ELEMENT;
64 }
65
66 /**
67 * <!-- begin-user-doc -->
68 * <!-- end-user-doc -->
69 * @generated
70 */
71 @Override
72 public EList<CommSubsystem> getCommSubsystem() {
73 if (commSubsystem == null) {
74 commSubsystem = new EObjectContainmentEList<CommSubsystem>(CommSubsystem.class, this, SatellitePackage.COMMUNICATING_ELEMENT__COMM_SUBSYSTEM);
75 }
76 return commSubsystem;
77 }
78
79 /**
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @generated
83 */
84 @Override
85 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
86 switch (featureID) {
87 case SatellitePackage.COMMUNICATING_ELEMENT__COMM_SUBSYSTEM:
88 return ((InternalEList<?>)getCommSubsystem()).basicRemove(otherEnd, msgs);
89 }
90 return super.eInverseRemove(otherEnd, featureID, msgs);
91 }
92
93 /**
94 * <!-- begin-user-doc -->
95 * <!-- end-user-doc -->
96 * @generated
97 */
98 @Override
99 public Object eGet(int featureID, boolean resolve, boolean coreType) {
100 switch (featureID) {
101 case SatellitePackage.COMMUNICATING_ELEMENT__COMM_SUBSYSTEM:
102 return getCommSubsystem();
103 }
104 return super.eGet(featureID, resolve, coreType);
105 }
106
107 /**
108 * <!-- begin-user-doc -->
109 * <!-- end-user-doc -->
110 * @generated
111 */
112 @SuppressWarnings("unchecked")
113 @Override
114 public void eSet(int featureID, Object newValue) {
115 switch (featureID) {
116 case SatellitePackage.COMMUNICATING_ELEMENT__COMM_SUBSYSTEM:
117 getCommSubsystem().clear();
118 getCommSubsystem().addAll((Collection<? extends CommSubsystem>)newValue);
119 return;
120 }
121 super.eSet(featureID, newValue);
122 }
123
124 /**
125 * <!-- begin-user-doc -->
126 * <!-- end-user-doc -->
127 * @generated
128 */
129 @Override
130 public void eUnset(int featureID) {
131 switch (featureID) {
132 case SatellitePackage.COMMUNICATING_ELEMENT__COMM_SUBSYSTEM:
133 getCommSubsystem().clear();
134 return;
135 }
136 super.eUnset(featureID);
137 }
138
139 /**
140 * <!-- begin-user-doc -->
141 * <!-- end-user-doc -->
142 * @generated
143 */
144 @Override
145 public boolean eIsSet(int featureID) {
146 switch (featureID) {
147 case SatellitePackage.COMMUNICATING_ELEMENT__COMM_SUBSYSTEM:
148 return commSubsystem != null && !commSubsystem.isEmpty();
149 }
150 return super.eIsSet(featureID);
151 }
152
153} //CommunicatingElementImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/ConstellationMissionImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/ConstellationMissionImpl.java
new file mode 100644
index 00000000..3b70f35f
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/ConstellationMissionImpl.java
@@ -0,0 +1,224 @@
1/**
2 */
3package satellite.impl;
4
5import java.util.Collection;
6
7import org.eclipse.emf.common.notify.Notification;
8import org.eclipse.emf.common.notify.NotificationChain;
9
10import org.eclipse.emf.common.util.EList;
11
12import org.eclipse.emf.ecore.EClass;
13import org.eclipse.emf.ecore.InternalEObject;
14
15import org.eclipse.emf.ecore.impl.ENotificationImpl;
16import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
17
18import org.eclipse.emf.ecore.util.EObjectContainmentEList;
19import org.eclipse.emf.ecore.util.InternalEList;
20
21import satellite.ConstellationMission;
22import satellite.GroundStationNetwork;
23import satellite.SatellitePackage;
24import satellite.Spacecraft;
25
26/**
27 * <!-- begin-user-doc -->
28 * An implementation of the model object '<em><b>Constellation Mission</b></em>'.
29 * <!-- end-user-doc -->
30 * <p>
31 * The following features are implemented:
32 * </p>
33 * <ul>
34 * <li>{@link satellite.impl.ConstellationMissionImpl#getGroundStationNetwork <em>Ground Station Network</em>}</li>
35 * <li>{@link satellite.impl.ConstellationMissionImpl#getSpacecraft <em>Spacecraft</em>}</li>
36 * </ul>
37 *
38 * @generated
39 */
40public abstract class ConstellationMissionImpl extends MinimalEObjectImpl.Container implements ConstellationMission {
41 /**
42 * The cached value of the '{@link #getGroundStationNetwork() <em>Ground Station Network</em>}' containment reference.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #getGroundStationNetwork()
46 * @generated
47 * @ordered
48 */
49 protected GroundStationNetwork groundStationNetwork;
50
51 /**
52 * The cached value of the '{@link #getSpacecraft() <em>Spacecraft</em>}' containment reference list.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #getSpacecraft()
56 * @generated
57 * @ordered
58 */
59 protected EList<Spacecraft> spacecraft;
60
61 /**
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @generated
65 */
66 protected ConstellationMissionImpl() {
67 super();
68 }
69
70 /**
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @generated
74 */
75 @Override
76 protected EClass eStaticClass() {
77 return SatellitePackage.Literals.CONSTELLATION_MISSION;
78 }
79
80 /**
81 * <!-- begin-user-doc -->
82 * <!-- end-user-doc -->
83 * @generated
84 */
85 @Override
86 public GroundStationNetwork getGroundStationNetwork() {
87 return groundStationNetwork;
88 }
89
90 /**
91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc -->
93 * @generated
94 */
95 public NotificationChain basicSetGroundStationNetwork(GroundStationNetwork newGroundStationNetwork, NotificationChain msgs) {
96 GroundStationNetwork oldGroundStationNetwork = groundStationNetwork;
97 groundStationNetwork = newGroundStationNetwork;
98 if (eNotificationRequired()) {
99 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SatellitePackage.CONSTELLATION_MISSION__GROUND_STATION_NETWORK, oldGroundStationNetwork, newGroundStationNetwork);
100 if (msgs == null) msgs = notification; else msgs.add(notification);
101 }
102 return msgs;
103 }
104
105 /**
106 * <!-- begin-user-doc -->
107 * <!-- end-user-doc -->
108 * @generated
109 */
110 @Override
111 public void setGroundStationNetwork(GroundStationNetwork newGroundStationNetwork) {
112 if (newGroundStationNetwork != groundStationNetwork) {
113 NotificationChain msgs = null;
114 if (groundStationNetwork != null)
115 msgs = ((InternalEObject)groundStationNetwork).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SatellitePackage.CONSTELLATION_MISSION__GROUND_STATION_NETWORK, null, msgs);
116 if (newGroundStationNetwork != null)
117 msgs = ((InternalEObject)newGroundStationNetwork).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SatellitePackage.CONSTELLATION_MISSION__GROUND_STATION_NETWORK, null, msgs);
118 msgs = basicSetGroundStationNetwork(newGroundStationNetwork, msgs);
119 if (msgs != null) msgs.dispatch();
120 }
121 else if (eNotificationRequired())
122 eNotify(new ENotificationImpl(this, Notification.SET, SatellitePackage.CONSTELLATION_MISSION__GROUND_STATION_NETWORK, newGroundStationNetwork, newGroundStationNetwork));
123 }
124
125 /**
126 * <!-- begin-user-doc -->
127 * <!-- end-user-doc -->
128 * @generated
129 */
130 @Override
131 public EList<Spacecraft> getSpacecraft() {
132 if (spacecraft == null) {
133 spacecraft = new EObjectContainmentEList<Spacecraft>(Spacecraft.class, this, SatellitePackage.CONSTELLATION_MISSION__SPACECRAFT);
134 }
135 return spacecraft;
136 }
137
138 /**
139 * <!-- begin-user-doc -->
140 * <!-- end-user-doc -->
141 * @generated
142 */
143 @Override
144 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
145 switch (featureID) {
146 case SatellitePackage.CONSTELLATION_MISSION__GROUND_STATION_NETWORK:
147 return basicSetGroundStationNetwork(null, msgs);
148 case SatellitePackage.CONSTELLATION_MISSION__SPACECRAFT:
149 return ((InternalEList<?>)getSpacecraft()).basicRemove(otherEnd, msgs);
150 }
151 return super.eInverseRemove(otherEnd, featureID, msgs);
152 }
153
154 /**
155 * <!-- begin-user-doc -->
156 * <!-- end-user-doc -->
157 * @generated
158 */
159 @Override
160 public Object eGet(int featureID, boolean resolve, boolean coreType) {
161 switch (featureID) {
162 case SatellitePackage.CONSTELLATION_MISSION__GROUND_STATION_NETWORK:
163 return getGroundStationNetwork();
164 case SatellitePackage.CONSTELLATION_MISSION__SPACECRAFT:
165 return getSpacecraft();
166 }
167 return super.eGet(featureID, resolve, coreType);
168 }
169
170 /**
171 * <!-- begin-user-doc -->
172 * <!-- end-user-doc -->
173 * @generated
174 */
175 @SuppressWarnings("unchecked")
176 @Override
177 public void eSet(int featureID, Object newValue) {
178 switch (featureID) {
179 case SatellitePackage.CONSTELLATION_MISSION__GROUND_STATION_NETWORK:
180 setGroundStationNetwork((GroundStationNetwork)newValue);
181 return;
182 case SatellitePackage.CONSTELLATION_MISSION__SPACECRAFT:
183 getSpacecraft().clear();
184 getSpacecraft().addAll((Collection<? extends Spacecraft>)newValue);
185 return;
186 }
187 super.eSet(featureID, newValue);
188 }
189
190 /**
191 * <!-- begin-user-doc -->
192 * <!-- end-user-doc -->
193 * @generated
194 */
195 @Override
196 public void eUnset(int featureID) {
197 switch (featureID) {
198 case SatellitePackage.CONSTELLATION_MISSION__GROUND_STATION_NETWORK:
199 setGroundStationNetwork((GroundStationNetwork)null);
200 return;
201 case SatellitePackage.CONSTELLATION_MISSION__SPACECRAFT:
202 getSpacecraft().clear();
203 return;
204 }
205 super.eUnset(featureID);
206 }
207
208 /**
209 * <!-- begin-user-doc -->
210 * <!-- end-user-doc -->
211 * @generated
212 */
213 @Override
214 public boolean eIsSet(int featureID) {
215 switch (featureID) {
216 case SatellitePackage.CONSTELLATION_MISSION__GROUND_STATION_NETWORK:
217 return groundStationNetwork != null;
218 case SatellitePackage.CONSTELLATION_MISSION__SPACECRAFT:
219 return spacecraft != null && !spacecraft.isEmpty();
220 }
221 return super.eIsSet(featureID);
222 }
223
224} //ConstellationMissionImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/CubeSat3UImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/CubeSat3UImpl.java
new file mode 100644
index 00000000..2b12336a
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/CubeSat3UImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package satellite.impl;
4
5import org.eclipse.emf.ecore.EClass;
6
7import satellite.CubeSat3U;
8import satellite.SatellitePackage;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Cube Sat3 U</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class CubeSat3UImpl extends CubeSatImpl implements CubeSat3U {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected CubeSat3UImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return SatellitePackage.Literals.CUBE_SAT3_U;
35 }
36
37} //CubeSat3UImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/CubeSat6UImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/CubeSat6UImpl.java
new file mode 100644
index 00000000..e2490a39
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/CubeSat6UImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package satellite.impl;
4
5import org.eclipse.emf.ecore.EClass;
6
7import satellite.CubeSat6U;
8import satellite.SatellitePackage;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Cube Sat6 U</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class CubeSat6UImpl extends CubeSatImpl implements CubeSat6U {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected CubeSat6UImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return SatellitePackage.Literals.CUBE_SAT6_U;
35 }
36
37} //CubeSat6UImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/CubeSatImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/CubeSatImpl.java
new file mode 100644
index 00000000..5ca34ee5
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/CubeSatImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package satellite.impl;
4
5import org.eclipse.emf.ecore.EClass;
6
7import satellite.CubeSat;
8import satellite.SatellitePackage;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Cube Sat</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public abstract class CubeSatImpl extends SpacecraftImpl implements CubeSat {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected CubeSatImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return SatellitePackage.Literals.CUBE_SAT;
35 }
36
37} //CubeSatImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/GroundStationNetworkImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/GroundStationNetworkImpl.java
new file mode 100644
index 00000000..3bb8604b
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/GroundStationNetworkImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package satellite.impl;
4
5import org.eclipse.emf.ecore.EClass;
6
7import satellite.GroundStationNetwork;
8import satellite.SatellitePackage;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Ground Station Network</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class GroundStationNetworkImpl extends CommunicatingElementImpl implements GroundStationNetwork {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected GroundStationNetworkImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return SatellitePackage.Literals.GROUND_STATION_NETWORK;
35 }
36
37} //GroundStationNetworkImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/InterferometryMissionImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/InterferometryMissionImpl.java
new file mode 100644
index 00000000..e588be96
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/InterferometryMissionImpl.java
@@ -0,0 +1,164 @@
1/**
2 */
3package satellite.impl;
4
5import org.eclipse.emf.common.notify.Notification;
6
7import org.eclipse.emf.ecore.EClass;
8
9import org.eclipse.emf.ecore.impl.ENotificationImpl;
10
11import satellite.InterferometryMission;
12import satellite.SatellitePackage;
13
14/**
15 * <!-- begin-user-doc -->
16 * An implementation of the model object '<em><b>Interferometry Mission</b></em>'.
17 * <!-- end-user-doc -->
18 * <p>
19 * The following features are implemented:
20 * </p>
21 * <ul>
22 * <li>{@link satellite.impl.InterferometryMissionImpl#getObservationTime <em>Observation Time</em>}</li>
23 * </ul>
24 *
25 * @generated
26 */
27public class InterferometryMissionImpl extends ConstellationMissionImpl implements InterferometryMission {
28 /**
29 * The default value of the '{@link #getObservationTime() <em>Observation Time</em>}' attribute.
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @see #getObservationTime()
33 * @generated
34 * @ordered
35 */
36 protected static final int OBSERVATION_TIME_EDEFAULT = 0;
37
38 /**
39 * The cached value of the '{@link #getObservationTime() <em>Observation Time</em>}' attribute.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @see #getObservationTime()
43 * @generated
44 * @ordered
45 */
46 protected int observationTime = OBSERVATION_TIME_EDEFAULT;
47
48 /**
49 * <!-- begin-user-doc -->
50 * <!-- end-user-doc -->
51 * @generated
52 */
53 protected InterferometryMissionImpl() {
54 super();
55 }
56
57 /**
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @generated
61 */
62 @Override
63 protected EClass eStaticClass() {
64 return SatellitePackage.Literals.INTERFEROMETRY_MISSION;
65 }
66
67 /**
68 * <!-- begin-user-doc -->
69 * <!-- end-user-doc -->
70 * @generated
71 */
72 @Override
73 public int getObservationTime() {
74 return observationTime;
75 }
76
77 /**
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @generated
81 */
82 @Override
83 public void setObservationTime(int newObservationTime) {
84 int oldObservationTime = observationTime;
85 observationTime = newObservationTime;
86 if (eNotificationRequired())
87 eNotify(new ENotificationImpl(this, Notification.SET, SatellitePackage.INTERFEROMETRY_MISSION__OBSERVATION_TIME, oldObservationTime, observationTime));
88 }
89
90 /**
91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc -->
93 * @generated
94 */
95 @Override
96 public Object eGet(int featureID, boolean resolve, boolean coreType) {
97 switch (featureID) {
98 case SatellitePackage.INTERFEROMETRY_MISSION__OBSERVATION_TIME:
99 return getObservationTime();
100 }
101 return super.eGet(featureID, resolve, coreType);
102 }
103
104 /**
105 * <!-- begin-user-doc -->
106 * <!-- end-user-doc -->
107 * @generated
108 */
109 @Override
110 public void eSet(int featureID, Object newValue) {
111 switch (featureID) {
112 case SatellitePackage.INTERFEROMETRY_MISSION__OBSERVATION_TIME:
113 setObservationTime((Integer)newValue);
114 return;
115 }
116 super.eSet(featureID, newValue);
117 }
118
119 /**
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @generated
123 */
124 @Override
125 public void eUnset(int featureID) {
126 switch (featureID) {
127 case SatellitePackage.INTERFEROMETRY_MISSION__OBSERVATION_TIME:
128 setObservationTime(OBSERVATION_TIME_EDEFAULT);
129 return;
130 }
131 super.eUnset(featureID);
132 }
133
134 /**
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @generated
138 */
139 @Override
140 public boolean eIsSet(int featureID) {
141 switch (featureID) {
142 case SatellitePackage.INTERFEROMETRY_MISSION__OBSERVATION_TIME:
143 return observationTime != OBSERVATION_TIME_EDEFAULT;
144 }
145 return super.eIsSet(featureID);
146 }
147
148 /**
149 * <!-- begin-user-doc -->
150 * <!-- end-user-doc -->
151 * @generated
152 */
153 @Override
154 public String toString() {
155 if (eIsProxy()) return super.toString();
156
157 StringBuilder result = new StringBuilder(super.toString());
158 result.append(" (observationTime: ");
159 result.append(observationTime);
160 result.append(')');
161 return result.toString();
162 }
163
164} //InterferometryMissionImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/InterferometryPayloadImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/InterferometryPayloadImpl.java
new file mode 100644
index 00000000..2612e617
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/InterferometryPayloadImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package satellite.impl;
4
5import org.eclipse.emf.ecore.EClass;
6
7import satellite.InterferometryPayload;
8import satellite.SatellitePackage;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Interferometry Payload</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class InterferometryPayloadImpl extends PayloadImpl implements InterferometryPayload {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected InterferometryPayloadImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return SatellitePackage.Literals.INTERFEROMETRY_PAYLOAD;
35 }
36
37} //InterferometryPayloadImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/KaCommSubsystemImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/KaCommSubsystemImpl.java
new file mode 100644
index 00000000..da3338be
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/KaCommSubsystemImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package satellite.impl;
4
5import org.eclipse.emf.ecore.EClass;
6
7import satellite.KaCommSubsystem;
8import satellite.SatellitePackage;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Ka Comm Subsystem</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class KaCommSubsystemImpl extends CommSubsystemImpl implements KaCommSubsystem {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected KaCommSubsystemImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return SatellitePackage.Literals.KA_COMM_SUBSYSTEM;
35 }
36
37} //KaCommSubsystemImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/PayloadImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/PayloadImpl.java
new file mode 100644
index 00000000..5ec893e2
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/PayloadImpl.java
@@ -0,0 +1,39 @@
1/**
2 */
3package satellite.impl;
4
5import org.eclipse.emf.ecore.EClass;
6
7import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
8
9import satellite.Payload;
10import satellite.SatellitePackage;
11
12/**
13 * <!-- begin-user-doc -->
14 * An implementation of the model object '<em><b>Payload</b></em>'.
15 * <!-- end-user-doc -->
16 *
17 * @generated
18 */
19public abstract class PayloadImpl extends MinimalEObjectImpl.Container implements Payload {
20 /**
21 * <!-- begin-user-doc -->
22 * <!-- end-user-doc -->
23 * @generated
24 */
25 protected PayloadImpl() {
26 super();
27 }
28
29 /**
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @generated
33 */
34 @Override
35 protected EClass eStaticClass() {
36 return SatellitePackage.Literals.PAYLOAD;
37 }
38
39} //PayloadImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/SatelliteFactoryImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/SatelliteFactoryImpl.java
new file mode 100644
index 00000000..8d9faa3c
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/SatelliteFactoryImpl.java
@@ -0,0 +1,193 @@
1/**
2 */
3package satellite.impl;
4
5import org.eclipse.emf.ecore.EClass;
6import org.eclipse.emf.ecore.EObject;
7import org.eclipse.emf.ecore.EPackage;
8
9import org.eclipse.emf.ecore.impl.EFactoryImpl;
10
11import org.eclipse.emf.ecore.plugin.EcorePlugin;
12
13import satellite.*;
14
15/**
16 * <!-- begin-user-doc -->
17 * An implementation of the model <b>Factory</b>.
18 * <!-- end-user-doc -->
19 * @generated
20 */
21public class SatelliteFactoryImpl extends EFactoryImpl implements SatelliteFactory {
22 /**
23 * Creates the default factory implementation.
24 * <!-- begin-user-doc -->
25 * <!-- end-user-doc -->
26 * @generated
27 */
28 public static SatelliteFactory init() {
29 try {
30 SatelliteFactory theSatelliteFactory = (SatelliteFactory)EPackage.Registry.INSTANCE.getEFactory(SatellitePackage.eNS_URI);
31 if (theSatelliteFactory != null) {
32 return theSatelliteFactory;
33 }
34 }
35 catch (Exception exception) {
36 EcorePlugin.INSTANCE.log(exception);
37 }
38 return new SatelliteFactoryImpl();
39 }
40
41 /**
42 * Creates an instance of the factory.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @generated
46 */
47 public SatelliteFactoryImpl() {
48 super();
49 }
50
51 /**
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @generated
55 */
56 @Override
57 public EObject create(EClass eClass) {
58 switch (eClass.getClassifierID()) {
59 case SatellitePackage.INTERFEROMETRY_MISSION: return createInterferometryMission();
60 case SatellitePackage.GROUND_STATION_NETWORK: return createGroundStationNetwork();
61 case SatellitePackage.INTERFEROMETRY_PAYLOAD: return createInterferometryPayload();
62 case SatellitePackage.CUBE_SAT3_U: return createCubeSat3U();
63 case SatellitePackage.CUBE_SAT6_U: return createCubeSat6U();
64 case SatellitePackage.SMALL_SAT: return createSmallSat();
65 case SatellitePackage.UHF_COMM_SUBSYSTEM: return createUHFCommSubsystem();
66 case SatellitePackage.XCOMM_SUBSYSTEM: return createXCommSubsystem();
67 case SatellitePackage.KA_COMM_SUBSYSTEM: return createKaCommSubsystem();
68 default:
69 throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
70 }
71 }
72
73 /**
74 * <!-- begin-user-doc -->
75 * <!-- end-user-doc -->
76 * @generated
77 */
78 @Override
79 public InterferometryMission createInterferometryMission() {
80 InterferometryMissionImpl interferometryMission = new InterferometryMissionImpl();
81 return interferometryMission;
82 }
83
84 /**
85 * <!-- begin-user-doc -->
86 * <!-- end-user-doc -->
87 * @generated
88 */
89 @Override
90 public GroundStationNetwork createGroundStationNetwork() {
91 GroundStationNetworkImpl groundStationNetwork = new GroundStationNetworkImpl();
92 return groundStationNetwork;
93 }
94
95 /**
96 * <!-- begin-user-doc -->
97 * <!-- end-user-doc -->
98 * @generated
99 */
100 @Override
101 public InterferometryPayload createInterferometryPayload() {
102 InterferometryPayloadImpl interferometryPayload = new InterferometryPayloadImpl();
103 return interferometryPayload;
104 }
105
106 /**
107 * <!-- begin-user-doc -->
108 * <!-- end-user-doc -->
109 * @generated
110 */
111 @Override
112 public CubeSat3U createCubeSat3U() {
113 CubeSat3UImpl cubeSat3U = new CubeSat3UImpl();
114 return cubeSat3U;
115 }
116
117 /**
118 * <!-- begin-user-doc -->
119 * <!-- end-user-doc -->
120 * @generated
121 */
122 @Override
123 public CubeSat6U createCubeSat6U() {
124 CubeSat6UImpl cubeSat6U = new CubeSat6UImpl();
125 return cubeSat6U;
126 }
127
128 /**
129 * <!-- begin-user-doc -->
130 * <!-- end-user-doc -->
131 * @generated
132 */
133 @Override
134 public SmallSat createSmallSat() {
135 SmallSatImpl smallSat = new SmallSatImpl();
136 return smallSat;
137 }
138
139 /**
140 * <!-- begin-user-doc -->
141 * <!-- end-user-doc -->
142 * @generated
143 */
144 @Override
145 public UHFCommSubsystem createUHFCommSubsystem() {
146 UHFCommSubsystemImpl uhfCommSubsystem = new UHFCommSubsystemImpl();
147 return uhfCommSubsystem;
148 }
149
150 /**
151 * <!-- begin-user-doc -->
152 * <!-- end-user-doc -->
153 * @generated
154 */
155 @Override
156 public XCommSubsystem createXCommSubsystem() {
157 XCommSubsystemImpl xCommSubsystem = new XCommSubsystemImpl();
158 return xCommSubsystem;
159 }
160
161 /**
162 * <!-- begin-user-doc -->
163 * <!-- end-user-doc -->
164 * @generated
165 */
166 @Override
167 public KaCommSubsystem createKaCommSubsystem() {
168 KaCommSubsystemImpl kaCommSubsystem = new KaCommSubsystemImpl();
169 return kaCommSubsystem;
170 }
171
172 /**
173 * <!-- begin-user-doc -->
174 * <!-- end-user-doc -->
175 * @generated
176 */
177 @Override
178 public SatellitePackage getSatellitePackage() {
179 return (SatellitePackage)getEPackage();
180 }
181
182 /**
183 * <!-- begin-user-doc -->
184 * <!-- end-user-doc -->
185 * @deprecated
186 * @generated
187 */
188 @Deprecated
189 public static SatellitePackage getPackage() {
190 return SatellitePackage.eINSTANCE;
191 }
192
193} //SatelliteFactoryImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/SatellitePackageImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/SatellitePackageImpl.java
new file mode 100644
index 00000000..d34429d2
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/SatellitePackageImpl.java
@@ -0,0 +1,584 @@
1/**
2 */
3package satellite.impl;
4
5import org.eclipse.emf.ecore.EAttribute;
6import org.eclipse.emf.ecore.EClass;
7import org.eclipse.emf.ecore.EPackage;
8import org.eclipse.emf.ecore.EReference;
9
10import org.eclipse.emf.ecore.impl.EPackageImpl;
11
12import satellite.CommSubsystem;
13import satellite.CommunicatingElement;
14import satellite.ConstellationMission;
15import satellite.CubeSat;
16import satellite.CubeSat3U;
17import satellite.CubeSat6U;
18import satellite.GroundStationNetwork;
19import satellite.InterferometryMission;
20import satellite.InterferometryPayload;
21import satellite.KaCommSubsystem;
22import satellite.Payload;
23import satellite.SatelliteFactory;
24import satellite.SatellitePackage;
25import satellite.SmallSat;
26import satellite.Spacecraft;
27import satellite.UHFCommSubsystem;
28import satellite.XCommSubsystem;
29
30/**
31 * <!-- begin-user-doc -->
32 * An implementation of the model <b>Package</b>.
33 * <!-- end-user-doc -->
34 * @generated
35 */
36public class SatellitePackageImpl extends EPackageImpl implements SatellitePackage {
37 /**
38 * <!-- begin-user-doc -->
39 * <!-- end-user-doc -->
40 * @generated
41 */
42 private EClass constellationMissionEClass = null;
43
44 /**
45 * <!-- begin-user-doc -->
46 * <!-- end-user-doc -->
47 * @generated
48 */
49 private EClass interferometryMissionEClass = null;
50
51 /**
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @generated
55 */
56 private EClass communicatingElementEClass = null;
57
58 /**
59 * <!-- begin-user-doc -->
60 * <!-- end-user-doc -->
61 * @generated
62 */
63 private EClass groundStationNetworkEClass = null;
64
65 /**
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @generated
69 */
70 private EClass spacecraftEClass = null;
71
72 /**
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @generated
76 */
77 private EClass commSubsystemEClass = null;
78
79 /**
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @generated
83 */
84 private EClass payloadEClass = null;
85
86 /**
87 * <!-- begin-user-doc -->
88 * <!-- end-user-doc -->
89 * @generated
90 */
91 private EClass interferometryPayloadEClass = null;
92
93 /**
94 * <!-- begin-user-doc -->
95 * <!-- end-user-doc -->
96 * @generated
97 */
98 private EClass cubeSat3UEClass = null;
99
100 /**
101 * <!-- begin-user-doc -->
102 * <!-- end-user-doc -->
103 * @generated
104 */
105 private EClass cubeSat6UEClass = null;
106
107 /**
108 * <!-- begin-user-doc -->
109 * <!-- end-user-doc -->
110 * @generated
111 */
112 private EClass smallSatEClass = null;
113
114 /**
115 * <!-- begin-user-doc -->
116 * <!-- end-user-doc -->
117 * @generated
118 */
119 private EClass cubeSatEClass = null;
120
121 /**
122 * <!-- begin-user-doc -->
123 * <!-- end-user-doc -->
124 * @generated
125 */
126 private EClass uhfCommSubsystemEClass = null;
127
128 /**
129 * <!-- begin-user-doc -->
130 * <!-- end-user-doc -->
131 * @generated
132 */
133 private EClass xCommSubsystemEClass = null;
134
135 /**
136 * <!-- begin-user-doc -->
137 * <!-- end-user-doc -->
138 * @generated
139 */
140 private EClass kaCommSubsystemEClass = null;
141
142 /**
143 * Creates an instance of the model <b>Package</b>, registered with
144 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
145 * package URI value.
146 * <p>Note: the correct way to create the package is via the static
147 * factory method {@link #init init()}, which also performs
148 * initialization of the package, or returns the registered package,
149 * if one already exists.
150 * <!-- begin-user-doc -->
151 * <!-- end-user-doc -->
152 * @see org.eclipse.emf.ecore.EPackage.Registry
153 * @see satellite.SatellitePackage#eNS_URI
154 * @see #init()
155 * @generated
156 */
157 private SatellitePackageImpl() {
158 super(eNS_URI, SatelliteFactory.eINSTANCE);
159 }
160
161 /**
162 * <!-- begin-user-doc -->
163 * <!-- end-user-doc -->
164 * @generated
165 */
166 private static boolean isInited = false;
167
168 /**
169 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
170 *
171 * <p>This method is used to initialize {@link SatellitePackage#eINSTANCE} when that field is accessed.
172 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
173 * <!-- begin-user-doc -->
174 * <!-- end-user-doc -->
175 * @see #eNS_URI
176 * @see #createPackageContents()
177 * @see #initializePackageContents()
178 * @generated
179 */
180 public static SatellitePackage init() {
181 if (isInited) return (SatellitePackage)EPackage.Registry.INSTANCE.getEPackage(SatellitePackage.eNS_URI);
182
183 // Obtain or create and register package
184 Object registeredSatellitePackage = EPackage.Registry.INSTANCE.get(eNS_URI);
185 SatellitePackageImpl theSatellitePackage = registeredSatellitePackage instanceof SatellitePackageImpl ? (SatellitePackageImpl)registeredSatellitePackage : new SatellitePackageImpl();
186
187 isInited = true;
188
189 // Create package meta-data objects
190 theSatellitePackage.createPackageContents();
191
192 // Initialize created meta-data
193 theSatellitePackage.initializePackageContents();
194
195 // Mark meta-data to indicate it can't be changed
196 theSatellitePackage.freeze();
197
198 // Update the registry and return the package
199 EPackage.Registry.INSTANCE.put(SatellitePackage.eNS_URI, theSatellitePackage);
200 return theSatellitePackage;
201 }
202
203 /**
204 * <!-- begin-user-doc -->
205 * <!-- end-user-doc -->
206 * @generated
207 */
208 @Override
209 public EClass getConstellationMission() {
210 return constellationMissionEClass;
211 }
212
213 /**
214 * <!-- begin-user-doc -->
215 * <!-- end-user-doc -->
216 * @generated
217 */
218 @Override
219 public EReference getConstellationMission_GroundStationNetwork() {
220 return (EReference)constellationMissionEClass.getEStructuralFeatures().get(0);
221 }
222
223 /**
224 * <!-- begin-user-doc -->
225 * <!-- end-user-doc -->
226 * @generated
227 */
228 @Override
229 public EReference getConstellationMission_Spacecraft() {
230 return (EReference)constellationMissionEClass.getEStructuralFeatures().get(1);
231 }
232
233 /**
234 * <!-- begin-user-doc -->
235 * <!-- end-user-doc -->
236 * @generated
237 */
238 @Override
239 public EClass getInterferometryMission() {
240 return interferometryMissionEClass;
241 }
242
243 /**
244 * <!-- begin-user-doc -->
245 * <!-- end-user-doc -->
246 * @generated
247 */
248 @Override
249 public EAttribute getInterferometryMission_ObservationTime() {
250 return (EAttribute)interferometryMissionEClass.getEStructuralFeatures().get(0);
251 }
252
253 /**
254 * <!-- begin-user-doc -->
255 * <!-- end-user-doc -->
256 * @generated
257 */
258 @Override
259 public EClass getCommunicatingElement() {
260 return communicatingElementEClass;
261 }
262
263 /**
264 * <!-- begin-user-doc -->
265 * <!-- end-user-doc -->
266 * @generated
267 */
268 @Override
269 public EReference getCommunicatingElement_CommSubsystem() {
270 return (EReference)communicatingElementEClass.getEStructuralFeatures().get(0);
271 }
272
273 /**
274 * <!-- begin-user-doc -->
275 * <!-- end-user-doc -->
276 * @generated
277 */
278 @Override
279 public EClass getGroundStationNetwork() {
280 return groundStationNetworkEClass;
281 }
282
283 /**
284 * <!-- begin-user-doc -->
285 * <!-- end-user-doc -->
286 * @generated
287 */
288 @Override
289 public EClass getSpacecraft() {
290 return spacecraftEClass;
291 }
292
293 /**
294 * <!-- begin-user-doc -->
295 * <!-- end-user-doc -->
296 * @generated
297 */
298 @Override
299 public EReference getSpacecraft_Payload() {
300 return (EReference)spacecraftEClass.getEStructuralFeatures().get(0);
301 }
302
303 /**
304 * <!-- begin-user-doc -->
305 * <!-- end-user-doc -->
306 * @generated
307 */
308 @Override
309 public EClass getCommSubsystem() {
310 return commSubsystemEClass;
311 }
312
313 /**
314 * <!-- begin-user-doc -->
315 * <!-- end-user-doc -->
316 * @generated
317 */
318 @Override
319 public EReference getCommSubsystem_Target() {
320 return (EReference)commSubsystemEClass.getEStructuralFeatures().get(0);
321 }
322
323 /**
324 * <!-- begin-user-doc -->
325 * <!-- end-user-doc -->
326 * @generated
327 */
328 @Override
329 public EAttribute getCommSubsystem_Frequency() {
330 return (EAttribute)commSubsystemEClass.getEStructuralFeatures().get(1);
331 }
332
333 /**
334 * <!-- begin-user-doc -->
335 * <!-- end-user-doc -->
336 * @generated
337 */
338 @Override
339 public EAttribute getCommSubsystem_PathLength() {
340 return (EAttribute)commSubsystemEClass.getEStructuralFeatures().get(2);
341 }
342
343 /**
344 * <!-- begin-user-doc -->
345 * <!-- end-user-doc -->
346 * @generated
347 */
348 @Override
349 public EClass getPayload() {
350 return payloadEClass;
351 }
352
353 /**
354 * <!-- begin-user-doc -->
355 * <!-- end-user-doc -->
356 * @generated
357 */
358 @Override
359 public EClass getInterferometryPayload() {
360 return interferometryPayloadEClass;
361 }
362
363 /**
364 * <!-- begin-user-doc -->
365 * <!-- end-user-doc -->
366 * @generated
367 */
368 @Override
369 public EClass getCubeSat3U() {
370 return cubeSat3UEClass;
371 }
372
373 /**
374 * <!-- begin-user-doc -->
375 * <!-- end-user-doc -->
376 * @generated
377 */
378 @Override
379 public EClass getCubeSat6U() {
380 return cubeSat6UEClass;
381 }
382
383 /**
384 * <!-- begin-user-doc -->
385 * <!-- end-user-doc -->
386 * @generated
387 */
388 @Override
389 public EClass getSmallSat() {
390 return smallSatEClass;
391 }
392
393 /**
394 * <!-- begin-user-doc -->
395 * <!-- end-user-doc -->
396 * @generated
397 */
398 @Override
399 public EClass getCubeSat() {
400 return cubeSatEClass;
401 }
402
403 /**
404 * <!-- begin-user-doc -->
405 * <!-- end-user-doc -->
406 * @generated
407 */
408 @Override
409 public EClass getUHFCommSubsystem() {
410 return uhfCommSubsystemEClass;
411 }
412
413 /**
414 * <!-- begin-user-doc -->
415 * <!-- end-user-doc -->
416 * @generated
417 */
418 @Override
419 public EClass getXCommSubsystem() {
420 return xCommSubsystemEClass;
421 }
422
423 /**
424 * <!-- begin-user-doc -->
425 * <!-- end-user-doc -->
426 * @generated
427 */
428 @Override
429 public EClass getKaCommSubsystem() {
430 return kaCommSubsystemEClass;
431 }
432
433 /**
434 * <!-- begin-user-doc -->
435 * <!-- end-user-doc -->
436 * @generated
437 */
438 @Override
439 public SatelliteFactory getSatelliteFactory() {
440 return (SatelliteFactory)getEFactoryInstance();
441 }
442
443 /**
444 * <!-- begin-user-doc -->
445 * <!-- end-user-doc -->
446 * @generated
447 */
448 private boolean isCreated = false;
449
450 /**
451 * Creates the meta-model objects for the package. This method is
452 * guarded to have no affect on any invocation but its first.
453 * <!-- begin-user-doc -->
454 * <!-- end-user-doc -->
455 * @generated
456 */
457 public void createPackageContents() {
458 if (isCreated) return;
459 isCreated = true;
460
461 // Create classes and their features
462 constellationMissionEClass = createEClass(CONSTELLATION_MISSION);
463 createEReference(constellationMissionEClass, CONSTELLATION_MISSION__GROUND_STATION_NETWORK);
464 createEReference(constellationMissionEClass, CONSTELLATION_MISSION__SPACECRAFT);
465
466 interferometryMissionEClass = createEClass(INTERFEROMETRY_MISSION);
467 createEAttribute(interferometryMissionEClass, INTERFEROMETRY_MISSION__OBSERVATION_TIME);
468
469 communicatingElementEClass = createEClass(COMMUNICATING_ELEMENT);
470 createEReference(communicatingElementEClass, COMMUNICATING_ELEMENT__COMM_SUBSYSTEM);
471
472 groundStationNetworkEClass = createEClass(GROUND_STATION_NETWORK);
473
474 spacecraftEClass = createEClass(SPACECRAFT);
475 createEReference(spacecraftEClass, SPACECRAFT__PAYLOAD);
476
477 commSubsystemEClass = createEClass(COMM_SUBSYSTEM);
478 createEReference(commSubsystemEClass, COMM_SUBSYSTEM__TARGET);
479 createEAttribute(commSubsystemEClass, COMM_SUBSYSTEM__FREQUENCY);
480 createEAttribute(commSubsystemEClass, COMM_SUBSYSTEM__PATH_LENGTH);
481
482 payloadEClass = createEClass(PAYLOAD);
483
484 interferometryPayloadEClass = createEClass(INTERFEROMETRY_PAYLOAD);
485
486 cubeSat3UEClass = createEClass(CUBE_SAT3_U);
487
488 cubeSat6UEClass = createEClass(CUBE_SAT6_U);
489
490 smallSatEClass = createEClass(SMALL_SAT);
491
492 cubeSatEClass = createEClass(CUBE_SAT);
493
494 uhfCommSubsystemEClass = createEClass(UHF_COMM_SUBSYSTEM);
495
496 xCommSubsystemEClass = createEClass(XCOMM_SUBSYSTEM);
497
498 kaCommSubsystemEClass = createEClass(KA_COMM_SUBSYSTEM);
499 }
500
501 /**
502 * <!-- begin-user-doc -->
503 * <!-- end-user-doc -->
504 * @generated
505 */
506 private boolean isInitialized = false;
507
508 /**
509 * Complete the initialization of the package and its meta-model. This
510 * method is guarded to have no affect on any invocation but its first.
511 * <!-- begin-user-doc -->
512 * <!-- end-user-doc -->
513 * @generated
514 */
515 public void initializePackageContents() {
516 if (isInitialized) return;
517 isInitialized = true;
518
519 // Initialize package
520 setName(eNAME);
521 setNsPrefix(eNS_PREFIX);
522 setNsURI(eNS_URI);
523
524 // Create type parameters
525
526 // Set bounds for type parameters
527
528 // Add supertypes to classes
529 interferometryMissionEClass.getESuperTypes().add(this.getConstellationMission());
530 groundStationNetworkEClass.getESuperTypes().add(this.getCommunicatingElement());
531 spacecraftEClass.getESuperTypes().add(this.getCommunicatingElement());
532 interferometryPayloadEClass.getESuperTypes().add(this.getPayload());
533 cubeSat3UEClass.getESuperTypes().add(this.getCubeSat());
534 cubeSat6UEClass.getESuperTypes().add(this.getCubeSat());
535 smallSatEClass.getESuperTypes().add(this.getSpacecraft());
536 cubeSatEClass.getESuperTypes().add(this.getSpacecraft());
537 uhfCommSubsystemEClass.getESuperTypes().add(this.getCommSubsystem());
538 xCommSubsystemEClass.getESuperTypes().add(this.getCommSubsystem());
539 kaCommSubsystemEClass.getESuperTypes().add(this.getCommSubsystem());
540
541 // Initialize classes, features, and operations; add parameters
542 initEClass(constellationMissionEClass, ConstellationMission.class, "ConstellationMission", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
543 initEReference(getConstellationMission_GroundStationNetwork(), this.getGroundStationNetwork(), null, "groundStationNetwork", null, 1, 1, ConstellationMission.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
544 initEReference(getConstellationMission_Spacecraft(), this.getSpacecraft(), null, "spacecraft", null, 2, -1, ConstellationMission.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
545
546 initEClass(interferometryMissionEClass, InterferometryMission.class, "InterferometryMission", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
547 initEAttribute(getInterferometryMission_ObservationTime(), ecorePackage.getEInt(), "observationTime", null, 1, 1, InterferometryMission.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
548
549 initEClass(communicatingElementEClass, CommunicatingElement.class, "CommunicatingElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
550 initEReference(getCommunicatingElement_CommSubsystem(), this.getCommSubsystem(), null, "commSubsystem", null, 1, 2, CommunicatingElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
551
552 initEClass(groundStationNetworkEClass, GroundStationNetwork.class, "GroundStationNetwork", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
553
554 initEClass(spacecraftEClass, Spacecraft.class, "Spacecraft", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
555 initEReference(getSpacecraft_Payload(), this.getPayload(), null, "payload", null, 0, 1, Spacecraft.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
556
557 initEClass(commSubsystemEClass, CommSubsystem.class, "CommSubsystem", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
558 initEReference(getCommSubsystem_Target(), this.getCommSubsystem(), null, "target", null, 0, 1, CommSubsystem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
559 initEAttribute(getCommSubsystem_Frequency(), ecorePackage.getEInt(), "frequency", null, 1, 1, CommSubsystem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
560 initEAttribute(getCommSubsystem_PathLength(), ecorePackage.getEInt(), "pathLength", null, 1, 1, CommSubsystem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
561
562 initEClass(payloadEClass, Payload.class, "Payload", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
563
564 initEClass(interferometryPayloadEClass, InterferometryPayload.class, "InterferometryPayload", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
565
566 initEClass(cubeSat3UEClass, CubeSat3U.class, "CubeSat3U", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
567
568 initEClass(cubeSat6UEClass, CubeSat6U.class, "CubeSat6U", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
569
570 initEClass(smallSatEClass, SmallSat.class, "SmallSat", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
571
572 initEClass(cubeSatEClass, CubeSat.class, "CubeSat", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
573
574 initEClass(uhfCommSubsystemEClass, UHFCommSubsystem.class, "UHFCommSubsystem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
575
576 initEClass(xCommSubsystemEClass, XCommSubsystem.class, "XCommSubsystem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
577
578 initEClass(kaCommSubsystemEClass, KaCommSubsystem.class, "KaCommSubsystem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
579
580 // Create resource
581 createResource(eNS_URI);
582 }
583
584} //SatellitePackageImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/SmallSatImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/SmallSatImpl.java
new file mode 100644
index 00000000..504df64c
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/SmallSatImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package satellite.impl;
4
5import org.eclipse.emf.ecore.EClass;
6
7import satellite.SatellitePackage;
8import satellite.SmallSat;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Small Sat</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class SmallSatImpl extends SpacecraftImpl implements SmallSat {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected SmallSatImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return SatellitePackage.Literals.SMALL_SAT;
35 }
36
37} //SmallSatImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/SpacecraftImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/SpacecraftImpl.java
new file mode 100644
index 00000000..c7dff706
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/SpacecraftImpl.java
@@ -0,0 +1,177 @@
1/**
2 */
3package satellite.impl;
4
5import org.eclipse.emf.common.notify.Notification;
6import org.eclipse.emf.common.notify.NotificationChain;
7
8import org.eclipse.emf.ecore.EClass;
9import org.eclipse.emf.ecore.InternalEObject;
10
11import org.eclipse.emf.ecore.impl.ENotificationImpl;
12
13import satellite.Payload;
14import satellite.SatellitePackage;
15import satellite.Spacecraft;
16
17/**
18 * <!-- begin-user-doc -->
19 * An implementation of the model object '<em><b>Spacecraft</b></em>'.
20 * <!-- end-user-doc -->
21 * <p>
22 * The following features are implemented:
23 * </p>
24 * <ul>
25 * <li>{@link satellite.impl.SpacecraftImpl#getPayload <em>Payload</em>}</li>
26 * </ul>
27 *
28 * @generated
29 */
30public abstract class SpacecraftImpl extends CommunicatingElementImpl implements Spacecraft {
31 /**
32 * The cached value of the '{@link #getPayload() <em>Payload</em>}' containment reference.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @see #getPayload()
36 * @generated
37 * @ordered
38 */
39 protected Payload payload;
40
41 /**
42 * <!-- begin-user-doc -->
43 * <!-- end-user-doc -->
44 * @generated
45 */
46 protected SpacecraftImpl() {
47 super();
48 }
49
50 /**
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @generated
54 */
55 @Override
56 protected EClass eStaticClass() {
57 return SatellitePackage.Literals.SPACECRAFT;
58 }
59
60 /**
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @generated
64 */
65 @Override
66 public Payload getPayload() {
67 return payload;
68 }
69
70 /**
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @generated
74 */
75 public NotificationChain basicSetPayload(Payload newPayload, NotificationChain msgs) {
76 Payload oldPayload = payload;
77 payload = newPayload;
78 if (eNotificationRequired()) {
79 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SatellitePackage.SPACECRAFT__PAYLOAD, oldPayload, newPayload);
80 if (msgs == null) msgs = notification; else msgs.add(notification);
81 }
82 return msgs;
83 }
84
85 /**
86 * <!-- begin-user-doc -->
87 * <!-- end-user-doc -->
88 * @generated
89 */
90 @Override
91 public void setPayload(Payload newPayload) {
92 if (newPayload != payload) {
93 NotificationChain msgs = null;
94 if (payload != null)
95 msgs = ((InternalEObject)payload).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SatellitePackage.SPACECRAFT__PAYLOAD, null, msgs);
96 if (newPayload != null)
97 msgs = ((InternalEObject)newPayload).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SatellitePackage.SPACECRAFT__PAYLOAD, null, msgs);
98 msgs = basicSetPayload(newPayload, msgs);
99 if (msgs != null) msgs.dispatch();
100 }
101 else if (eNotificationRequired())
102 eNotify(new ENotificationImpl(this, Notification.SET, SatellitePackage.SPACECRAFT__PAYLOAD, newPayload, newPayload));
103 }
104
105 /**
106 * <!-- begin-user-doc -->
107 * <!-- end-user-doc -->
108 * @generated
109 */
110 @Override
111 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
112 switch (featureID) {
113 case SatellitePackage.SPACECRAFT__PAYLOAD:
114 return basicSetPayload(null, msgs);
115 }
116 return super.eInverseRemove(otherEnd, featureID, msgs);
117 }
118
119 /**
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @generated
123 */
124 @Override
125 public Object eGet(int featureID, boolean resolve, boolean coreType) {
126 switch (featureID) {
127 case SatellitePackage.SPACECRAFT__PAYLOAD:
128 return getPayload();
129 }
130 return super.eGet(featureID, resolve, coreType);
131 }
132
133 /**
134 * <!-- begin-user-doc -->
135 * <!-- end-user-doc -->
136 * @generated
137 */
138 @Override
139 public void eSet(int featureID, Object newValue) {
140 switch (featureID) {
141 case SatellitePackage.SPACECRAFT__PAYLOAD:
142 setPayload((Payload)newValue);
143 return;
144 }
145 super.eSet(featureID, newValue);
146 }
147
148 /**
149 * <!-- begin-user-doc -->
150 * <!-- end-user-doc -->
151 * @generated
152 */
153 @Override
154 public void eUnset(int featureID) {
155 switch (featureID) {
156 case SatellitePackage.SPACECRAFT__PAYLOAD:
157 setPayload((Payload)null);
158 return;
159 }
160 super.eUnset(featureID);
161 }
162
163 /**
164 * <!-- begin-user-doc -->
165 * <!-- end-user-doc -->
166 * @generated
167 */
168 @Override
169 public boolean eIsSet(int featureID) {
170 switch (featureID) {
171 case SatellitePackage.SPACECRAFT__PAYLOAD:
172 return payload != null;
173 }
174 return super.eIsSet(featureID);
175 }
176
177} //SpacecraftImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/UHFCommSubsystemImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/UHFCommSubsystemImpl.java
new file mode 100644
index 00000000..cc2fe056
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/UHFCommSubsystemImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package satellite.impl;
4
5import org.eclipse.emf.ecore.EClass;
6
7import satellite.SatellitePackage;
8import satellite.UHFCommSubsystem;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>UHF Comm Subsystem</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class UHFCommSubsystemImpl extends CommSubsystemImpl implements UHFCommSubsystem {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected UHFCommSubsystemImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return SatellitePackage.Literals.UHF_COMM_SUBSYSTEM;
35 }
36
37} //UHFCommSubsystemImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/XCommSubsystemImpl.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/XCommSubsystemImpl.java
new file mode 100644
index 00000000..df9a491f
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/impl/XCommSubsystemImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package satellite.impl;
4
5import org.eclipse.emf.ecore.EClass;
6
7import satellite.SatellitePackage;
8import satellite.XCommSubsystem;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>XComm Subsystem</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class XCommSubsystemImpl extends CommSubsystemImpl implements XCommSubsystem {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected XCommSubsystemImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return SatellitePackage.Literals.XCOMM_SUBSYSTEM;
35 }
36
37} //XCommSubsystemImpl
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/util/SatelliteAdapterFactory.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/util/SatelliteAdapterFactory.java
new file mode 100644
index 00000000..1e06efde
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/util/SatelliteAdapterFactory.java
@@ -0,0 +1,372 @@
1/**
2 */
3package satellite.util;
4
5import org.eclipse.emf.common.notify.Adapter;
6import org.eclipse.emf.common.notify.Notifier;
7
8import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
9
10import org.eclipse.emf.ecore.EObject;
11
12import satellite.*;
13
14/**
15 * <!-- begin-user-doc -->
16 * The <b>Adapter Factory</b> for the model.
17 * It provides an adapter <code>createXXX</code> method for each class of the model.
18 * <!-- end-user-doc -->
19 * @see satellite.SatellitePackage
20 * @generated
21 */
22public class SatelliteAdapterFactory extends AdapterFactoryImpl {
23 /**
24 * The cached model package.
25 * <!-- begin-user-doc -->
26 * <!-- end-user-doc -->
27 * @generated
28 */
29 protected static SatellitePackage modelPackage;
30
31 /**
32 * Creates an instance of the adapter factory.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @generated
36 */
37 public SatelliteAdapterFactory() {
38 if (modelPackage == null) {
39 modelPackage = SatellitePackage.eINSTANCE;
40 }
41 }
42
43 /**
44 * Returns whether this factory is applicable for the type of the object.
45 * <!-- begin-user-doc -->
46 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
47 * <!-- end-user-doc -->
48 * @return whether this factory is applicable for the type of the object.
49 * @generated
50 */
51 @Override
52 public boolean isFactoryForType(Object object) {
53 if (object == modelPackage) {
54 return true;
55 }
56 if (object instanceof EObject) {
57 return ((EObject)object).eClass().getEPackage() == modelPackage;
58 }
59 return false;
60 }
61
62 /**
63 * The switch that delegates to the <code>createXXX</code> methods.
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @generated
67 */
68 protected SatelliteSwitch<Adapter> modelSwitch =
69 new SatelliteSwitch<Adapter>() {
70 @Override
71 public Adapter caseConstellationMission(ConstellationMission object) {
72 return createConstellationMissionAdapter();
73 }
74 @Override
75 public Adapter caseInterferometryMission(InterferometryMission object) {
76 return createInterferometryMissionAdapter();
77 }
78 @Override
79 public Adapter caseCommunicatingElement(CommunicatingElement object) {
80 return createCommunicatingElementAdapter();
81 }
82 @Override
83 public Adapter caseGroundStationNetwork(GroundStationNetwork object) {
84 return createGroundStationNetworkAdapter();
85 }
86 @Override
87 public Adapter caseSpacecraft(Spacecraft object) {
88 return createSpacecraftAdapter();
89 }
90 @Override
91 public Adapter caseCommSubsystem(CommSubsystem object) {
92 return createCommSubsystemAdapter();
93 }
94 @Override
95 public Adapter casePayload(Payload object) {
96 return createPayloadAdapter();
97 }
98 @Override
99 public Adapter caseInterferometryPayload(InterferometryPayload object) {
100 return createInterferometryPayloadAdapter();
101 }
102 @Override
103 public Adapter caseCubeSat3U(CubeSat3U object) {
104 return createCubeSat3UAdapter();
105 }
106 @Override
107 public Adapter caseCubeSat6U(CubeSat6U object) {
108 return createCubeSat6UAdapter();
109 }
110 @Override
111 public Adapter caseSmallSat(SmallSat object) {
112 return createSmallSatAdapter();
113 }
114 @Override
115 public Adapter caseCubeSat(CubeSat object) {
116 return createCubeSatAdapter();
117 }
118 @Override
119 public Adapter caseUHFCommSubsystem(UHFCommSubsystem object) {
120 return createUHFCommSubsystemAdapter();
121 }
122 @Override
123 public Adapter caseXCommSubsystem(XCommSubsystem object) {
124 return createXCommSubsystemAdapter();
125 }
126 @Override
127 public Adapter caseKaCommSubsystem(KaCommSubsystem object) {
128 return createKaCommSubsystemAdapter();
129 }
130 @Override
131 public Adapter defaultCase(EObject object) {
132 return createEObjectAdapter();
133 }
134 };
135
136 /**
137 * Creates an adapter for the <code>target</code>.
138 * <!-- begin-user-doc -->
139 * <!-- end-user-doc -->
140 * @param target the object to adapt.
141 * @return the adapter for the <code>target</code>.
142 * @generated
143 */
144 @Override
145 public Adapter createAdapter(Notifier target) {
146 return modelSwitch.doSwitch((EObject)target);
147 }
148
149
150 /**
151 * Creates a new adapter for an object of class '{@link satellite.ConstellationMission <em>Constellation Mission</em>}'.
152 * <!-- begin-user-doc -->
153 * This default implementation returns null so that we can easily ignore cases;
154 * it's useful to ignore a case when inheritance will catch all the cases anyway.
155 * <!-- end-user-doc -->
156 * @return the new adapter.
157 * @see satellite.ConstellationMission
158 * @generated
159 */
160 public Adapter createConstellationMissionAdapter() {
161 return null;
162 }
163
164 /**
165 * Creates a new adapter for an object of class '{@link satellite.InterferometryMission <em>Interferometry Mission</em>}'.
166 * <!-- begin-user-doc -->
167 * This default implementation returns null so that we can easily ignore cases;
168 * it's useful to ignore a case when inheritance will catch all the cases anyway.
169 * <!-- end-user-doc -->
170 * @return the new adapter.
171 * @see satellite.InterferometryMission
172 * @generated
173 */
174 public Adapter createInterferometryMissionAdapter() {
175 return null;
176 }
177
178 /**
179 * Creates a new adapter for an object of class '{@link satellite.CommunicatingElement <em>Communicating Element</em>}'.
180 * <!-- begin-user-doc -->
181 * This default implementation returns null so that we can easily ignore cases;
182 * it's useful to ignore a case when inheritance will catch all the cases anyway.
183 * <!-- end-user-doc -->
184 * @return the new adapter.
185 * @see satellite.CommunicatingElement
186 * @generated
187 */
188 public Adapter createCommunicatingElementAdapter() {
189 return null;
190 }
191
192 /**
193 * Creates a new adapter for an object of class '{@link satellite.GroundStationNetwork <em>Ground Station Network</em>}'.
194 * <!-- begin-user-doc -->
195 * This default implementation returns null so that we can easily ignore cases;
196 * it's useful to ignore a case when inheritance will catch all the cases anyway.
197 * <!-- end-user-doc -->
198 * @return the new adapter.
199 * @see satellite.GroundStationNetwork
200 * @generated
201 */
202 public Adapter createGroundStationNetworkAdapter() {
203 return null;
204 }
205
206 /**
207 * Creates a new adapter for an object of class '{@link satellite.Spacecraft <em>Spacecraft</em>}'.
208 * <!-- begin-user-doc -->
209 * This default implementation returns null so that we can easily ignore cases;
210 * it's useful to ignore a case when inheritance will catch all the cases anyway.
211 * <!-- end-user-doc -->
212 * @return the new adapter.
213 * @see satellite.Spacecraft
214 * @generated
215 */
216 public Adapter createSpacecraftAdapter() {
217 return null;
218 }
219
220 /**
221 * Creates a new adapter for an object of class '{@link satellite.CommSubsystem <em>Comm Subsystem</em>}'.
222 * <!-- begin-user-doc -->
223 * This default implementation returns null so that we can easily ignore cases;
224 * it's useful to ignore a case when inheritance will catch all the cases anyway.
225 * <!-- end-user-doc -->
226 * @return the new adapter.
227 * @see satellite.CommSubsystem
228 * @generated
229 */
230 public Adapter createCommSubsystemAdapter() {
231 return null;
232 }
233
234 /**
235 * Creates a new adapter for an object of class '{@link satellite.Payload <em>Payload</em>}'.
236 * <!-- begin-user-doc -->
237 * This default implementation returns null so that we can easily ignore cases;
238 * it's useful to ignore a case when inheritance will catch all the cases anyway.
239 * <!-- end-user-doc -->
240 * @return the new adapter.
241 * @see satellite.Payload
242 * @generated
243 */
244 public Adapter createPayloadAdapter() {
245 return null;
246 }
247
248 /**
249 * Creates a new adapter for an object of class '{@link satellite.InterferometryPayload <em>Interferometry Payload</em>}'.
250 * <!-- begin-user-doc -->
251 * This default implementation returns null so that we can easily ignore cases;
252 * it's useful to ignore a case when inheritance will catch all the cases anyway.
253 * <!-- end-user-doc -->
254 * @return the new adapter.
255 * @see satellite.InterferometryPayload
256 * @generated
257 */
258 public Adapter createInterferometryPayloadAdapter() {
259 return null;
260 }
261
262 /**
263 * Creates a new adapter for an object of class '{@link satellite.CubeSat3U <em>Cube Sat3 U</em>}'.
264 * <!-- begin-user-doc -->
265 * This default implementation returns null so that we can easily ignore cases;
266 * it's useful to ignore a case when inheritance will catch all the cases anyway.
267 * <!-- end-user-doc -->
268 * @return the new adapter.
269 * @see satellite.CubeSat3U
270 * @generated
271 */
272 public Adapter createCubeSat3UAdapter() {
273 return null;
274 }
275
276 /**
277 * Creates a new adapter for an object of class '{@link satellite.CubeSat6U <em>Cube Sat6 U</em>}'.
278 * <!-- begin-user-doc -->
279 * This default implementation returns null so that we can easily ignore cases;
280 * it's useful to ignore a case when inheritance will catch all the cases anyway.
281 * <!-- end-user-doc -->
282 * @return the new adapter.
283 * @see satellite.CubeSat6U
284 * @generated
285 */
286 public Adapter createCubeSat6UAdapter() {
287 return null;
288 }
289
290 /**
291 * Creates a new adapter for an object of class '{@link satellite.SmallSat <em>Small Sat</em>}'.
292 * <!-- begin-user-doc -->
293 * This default implementation returns null so that we can easily ignore cases;
294 * it's useful to ignore a case when inheritance will catch all the cases anyway.
295 * <!-- end-user-doc -->
296 * @return the new adapter.
297 * @see satellite.SmallSat
298 * @generated
299 */
300 public Adapter createSmallSatAdapter() {
301 return null;
302 }
303
304 /**
305 * Creates a new adapter for an object of class '{@link satellite.CubeSat <em>Cube Sat</em>}'.
306 * <!-- begin-user-doc -->
307 * This default implementation returns null so that we can easily ignore cases;
308 * it's useful to ignore a case when inheritance will catch all the cases anyway.
309 * <!-- end-user-doc -->
310 * @return the new adapter.
311 * @see satellite.CubeSat
312 * @generated
313 */
314 public Adapter createCubeSatAdapter() {
315 return null;
316 }
317
318 /**
319 * Creates a new adapter for an object of class '{@link satellite.UHFCommSubsystem <em>UHF Comm Subsystem</em>}'.
320 * <!-- begin-user-doc -->
321 * This default implementation returns null so that we can easily ignore cases;
322 * it's useful to ignore a case when inheritance will catch all the cases anyway.
323 * <!-- end-user-doc -->
324 * @return the new adapter.
325 * @see satellite.UHFCommSubsystem
326 * @generated
327 */
328 public Adapter createUHFCommSubsystemAdapter() {
329 return null;
330 }
331
332 /**
333 * Creates a new adapter for an object of class '{@link satellite.XCommSubsystem <em>XComm Subsystem</em>}'.
334 * <!-- begin-user-doc -->
335 * This default implementation returns null so that we can easily ignore cases;
336 * it's useful to ignore a case when inheritance will catch all the cases anyway.
337 * <!-- end-user-doc -->
338 * @return the new adapter.
339 * @see satellite.XCommSubsystem
340 * @generated
341 */
342 public Adapter createXCommSubsystemAdapter() {
343 return null;
344 }
345
346 /**
347 * Creates a new adapter for an object of class '{@link satellite.KaCommSubsystem <em>Ka Comm Subsystem</em>}'.
348 * <!-- begin-user-doc -->
349 * This default implementation returns null so that we can easily ignore cases;
350 * it's useful to ignore a case when inheritance will catch all the cases anyway.
351 * <!-- end-user-doc -->
352 * @return the new adapter.
353 * @see satellite.KaCommSubsystem
354 * @generated
355 */
356 public Adapter createKaCommSubsystemAdapter() {
357 return null;
358 }
359
360 /**
361 * Creates a new adapter for the default case.
362 * <!-- begin-user-doc -->
363 * This default implementation returns null.
364 * <!-- end-user-doc -->
365 * @return the new adapter.
366 * @generated
367 */
368 public Adapter createEObjectAdapter() {
369 return null;
370 }
371
372} //SatelliteAdapterFactory
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/util/SatelliteSwitch.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/util/SatelliteSwitch.java
new file mode 100644
index 00000000..a380d3f6
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/src/satellite/util/SatelliteSwitch.java
@@ -0,0 +1,421 @@
1/**
2 */
3package satellite.util;
4
5import org.eclipse.emf.ecore.EObject;
6import org.eclipse.emf.ecore.EPackage;
7
8import org.eclipse.emf.ecore.util.Switch;
9
10import satellite.*;
11
12/**
13 * <!-- begin-user-doc -->
14 * The <b>Switch</b> for the model's inheritance hierarchy.
15 * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
16 * to invoke the <code>caseXXX</code> method for each class of the model,
17 * starting with the actual class of the object
18 * and proceeding up the inheritance hierarchy
19 * until a non-null result is returned,
20 * which is the result of the switch.
21 * <!-- end-user-doc -->
22 * @see satellite.SatellitePackage
23 * @generated
24 */
25public class SatelliteSwitch<T> extends Switch<T> {
26 /**
27 * The cached model package
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 protected static SatellitePackage modelPackage;
33
34 /**
35 * Creates an instance of the switch.
36 * <!-- begin-user-doc -->
37 * <!-- end-user-doc -->
38 * @generated
39 */
40 public SatelliteSwitch() {
41 if (modelPackage == null) {
42 modelPackage = SatellitePackage.eINSTANCE;
43 }
44 }
45
46 /**
47 * Checks whether this is a switch for the given package.
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @param ePackage the package in question.
51 * @return whether this is a switch for the given package.
52 * @generated
53 */
54 @Override
55 protected boolean isSwitchFor(EPackage ePackage) {
56 return ePackage == modelPackage;
57 }
58
59 /**
60 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @return the first non-null result returned by a <code>caseXXX</code> call.
64 * @generated
65 */
66 @Override
67 protected T doSwitch(int classifierID, EObject theEObject) {
68 switch (classifierID) {
69 case SatellitePackage.CONSTELLATION_MISSION: {
70 ConstellationMission constellationMission = (ConstellationMission)theEObject;
71 T result = caseConstellationMission(constellationMission);
72 if (result == null) result = defaultCase(theEObject);
73 return result;
74 }
75 case SatellitePackage.INTERFEROMETRY_MISSION: {
76 InterferometryMission interferometryMission = (InterferometryMission)theEObject;
77 T result = caseInterferometryMission(interferometryMission);
78 if (result == null) result = caseConstellationMission(interferometryMission);
79 if (result == null) result = defaultCase(theEObject);
80 return result;
81 }
82 case SatellitePackage.COMMUNICATING_ELEMENT: {
83 CommunicatingElement communicatingElement = (CommunicatingElement)theEObject;
84 T result = caseCommunicatingElement(communicatingElement);
85 if (result == null) result = defaultCase(theEObject);
86 return result;
87 }
88 case SatellitePackage.GROUND_STATION_NETWORK: {
89 GroundStationNetwork groundStationNetwork = (GroundStationNetwork)theEObject;
90 T result = caseGroundStationNetwork(groundStationNetwork);
91 if (result == null) result = caseCommunicatingElement(groundStationNetwork);
92 if (result == null) result = defaultCase(theEObject);
93 return result;
94 }
95 case SatellitePackage.SPACECRAFT: {
96 Spacecraft spacecraft = (Spacecraft)theEObject;
97 T result = caseSpacecraft(spacecraft);
98 if (result == null) result = caseCommunicatingElement(spacecraft);
99 if (result == null) result = defaultCase(theEObject);
100 return result;
101 }
102 case SatellitePackage.COMM_SUBSYSTEM: {
103 CommSubsystem commSubsystem = (CommSubsystem)theEObject;
104 T result = caseCommSubsystem(commSubsystem);
105 if (result == null) result = defaultCase(theEObject);
106 return result;
107 }
108 case SatellitePackage.PAYLOAD: {
109 Payload payload = (Payload)theEObject;
110 T result = casePayload(payload);
111 if (result == null) result = defaultCase(theEObject);
112 return result;
113 }
114 case SatellitePackage.INTERFEROMETRY_PAYLOAD: {
115 InterferometryPayload interferometryPayload = (InterferometryPayload)theEObject;
116 T result = caseInterferometryPayload(interferometryPayload);
117 if (result == null) result = casePayload(interferometryPayload);
118 if (result == null) result = defaultCase(theEObject);
119 return result;
120 }
121 case SatellitePackage.CUBE_SAT3_U: {
122 CubeSat3U cubeSat3U = (CubeSat3U)theEObject;
123 T result = caseCubeSat3U(cubeSat3U);
124 if (result == null) result = caseCubeSat(cubeSat3U);
125 if (result == null) result = caseSpacecraft(cubeSat3U);
126 if (result == null) result = caseCommunicatingElement(cubeSat3U);
127 if (result == null) result = defaultCase(theEObject);
128 return result;
129 }
130 case SatellitePackage.CUBE_SAT6_U: {
131 CubeSat6U cubeSat6U = (CubeSat6U)theEObject;
132 T result = caseCubeSat6U(cubeSat6U);
133 if (result == null) result = caseCubeSat(cubeSat6U);
134 if (result == null) result = caseSpacecraft(cubeSat6U);
135 if (result == null) result = caseCommunicatingElement(cubeSat6U);
136 if (result == null) result = defaultCase(theEObject);
137 return result;
138 }
139 case SatellitePackage.SMALL_SAT: {
140 SmallSat smallSat = (SmallSat)theEObject;
141 T result = caseSmallSat(smallSat);
142 if (result == null) result = caseSpacecraft(smallSat);
143 if (result == null) result = caseCommunicatingElement(smallSat);
144 if (result == null) result = defaultCase(theEObject);
145 return result;
146 }
147 case SatellitePackage.CUBE_SAT: {
148 CubeSat cubeSat = (CubeSat)theEObject;
149 T result = caseCubeSat(cubeSat);
150 if (result == null) result = caseSpacecraft(cubeSat);
151 if (result == null) result = caseCommunicatingElement(cubeSat);
152 if (result == null) result = defaultCase(theEObject);
153 return result;
154 }
155 case SatellitePackage.UHF_COMM_SUBSYSTEM: {
156 UHFCommSubsystem uhfCommSubsystem = (UHFCommSubsystem)theEObject;
157 T result = caseUHFCommSubsystem(uhfCommSubsystem);
158 if (result == null) result = caseCommSubsystem(uhfCommSubsystem);
159 if (result == null) result = defaultCase(theEObject);
160 return result;
161 }
162 case SatellitePackage.XCOMM_SUBSYSTEM: {
163 XCommSubsystem xCommSubsystem = (XCommSubsystem)theEObject;
164 T result = caseXCommSubsystem(xCommSubsystem);
165 if (result == null) result = caseCommSubsystem(xCommSubsystem);
166 if (result == null) result = defaultCase(theEObject);
167 return result;
168 }
169 case SatellitePackage.KA_COMM_SUBSYSTEM: {
170 KaCommSubsystem kaCommSubsystem = (KaCommSubsystem)theEObject;
171 T result = caseKaCommSubsystem(kaCommSubsystem);
172 if (result == null) result = caseCommSubsystem(kaCommSubsystem);
173 if (result == null) result = defaultCase(theEObject);
174 return result;
175 }
176 default: return defaultCase(theEObject);
177 }
178 }
179
180 /**
181 * Returns the result of interpreting the object as an instance of '<em>Constellation Mission</em>'.
182 * <!-- begin-user-doc -->
183 * This implementation returns null;
184 * returning a non-null result will terminate the switch.
185 * <!-- end-user-doc -->
186 * @param object the target of the switch.
187 * @return the result of interpreting the object as an instance of '<em>Constellation Mission</em>'.
188 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
189 * @generated
190 */
191 public T caseConstellationMission(ConstellationMission object) {
192 return null;
193 }
194
195 /**
196 * Returns the result of interpreting the object as an instance of '<em>Interferometry Mission</em>'.
197 * <!-- begin-user-doc -->
198 * This implementation returns null;
199 * returning a non-null result will terminate the switch.
200 * <!-- end-user-doc -->
201 * @param object the target of the switch.
202 * @return the result of interpreting the object as an instance of '<em>Interferometry Mission</em>'.
203 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
204 * @generated
205 */
206 public T caseInterferometryMission(InterferometryMission object) {
207 return null;
208 }
209
210 /**
211 * Returns the result of interpreting the object as an instance of '<em>Communicating Element</em>'.
212 * <!-- begin-user-doc -->
213 * This implementation returns null;
214 * returning a non-null result will terminate the switch.
215 * <!-- end-user-doc -->
216 * @param object the target of the switch.
217 * @return the result of interpreting the object as an instance of '<em>Communicating Element</em>'.
218 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
219 * @generated
220 */
221 public T caseCommunicatingElement(CommunicatingElement object) {
222 return null;
223 }
224
225 /**
226 * Returns the result of interpreting the object as an instance of '<em>Ground Station Network</em>'.
227 * <!-- begin-user-doc -->
228 * This implementation returns null;
229 * returning a non-null result will terminate the switch.
230 * <!-- end-user-doc -->
231 * @param object the target of the switch.
232 * @return the result of interpreting the object as an instance of '<em>Ground Station Network</em>'.
233 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
234 * @generated
235 */
236 public T caseGroundStationNetwork(GroundStationNetwork object) {
237 return null;
238 }
239
240 /**
241 * Returns the result of interpreting the object as an instance of '<em>Spacecraft</em>'.
242 * <!-- begin-user-doc -->
243 * This implementation returns null;
244 * returning a non-null result will terminate the switch.
245 * <!-- end-user-doc -->
246 * @param object the target of the switch.
247 * @return the result of interpreting the object as an instance of '<em>Spacecraft</em>'.
248 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
249 * @generated
250 */
251 public T caseSpacecraft(Spacecraft object) {
252 return null;
253 }
254
255 /**
256 * Returns the result of interpreting the object as an instance of '<em>Comm Subsystem</em>'.
257 * <!-- begin-user-doc -->
258 * This implementation returns null;
259 * returning a non-null result will terminate the switch.
260 * <!-- end-user-doc -->
261 * @param object the target of the switch.
262 * @return the result of interpreting the object as an instance of '<em>Comm Subsystem</em>'.
263 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
264 * @generated
265 */
266 public T caseCommSubsystem(CommSubsystem object) {
267 return null;
268 }
269
270 /**
271 * Returns the result of interpreting the object as an instance of '<em>Payload</em>'.
272 * <!-- begin-user-doc -->
273 * This implementation returns null;
274 * returning a non-null result will terminate the switch.
275 * <!-- end-user-doc -->
276 * @param object the target of the switch.
277 * @return the result of interpreting the object as an instance of '<em>Payload</em>'.
278 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
279 * @generated
280 */
281 public T casePayload(Payload object) {
282 return null;
283 }
284
285 /**
286 * Returns the result of interpreting the object as an instance of '<em>Interferometry Payload</em>'.
287 * <!-- begin-user-doc -->
288 * This implementation returns null;
289 * returning a non-null result will terminate the switch.
290 * <!-- end-user-doc -->
291 * @param object the target of the switch.
292 * @return the result of interpreting the object as an instance of '<em>Interferometry Payload</em>'.
293 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
294 * @generated
295 */
296 public T caseInterferometryPayload(InterferometryPayload object) {
297 return null;
298 }
299
300 /**
301 * Returns the result of interpreting the object as an instance of '<em>Cube Sat3 U</em>'.
302 * <!-- begin-user-doc -->
303 * This implementation returns null;
304 * returning a non-null result will terminate the switch.
305 * <!-- end-user-doc -->
306 * @param object the target of the switch.
307 * @return the result of interpreting the object as an instance of '<em>Cube Sat3 U</em>'.
308 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
309 * @generated
310 */
311 public T caseCubeSat3U(CubeSat3U object) {
312 return null;
313 }
314
315 /**
316 * Returns the result of interpreting the object as an instance of '<em>Cube Sat6 U</em>'.
317 * <!-- begin-user-doc -->
318 * This implementation returns null;
319 * returning a non-null result will terminate the switch.
320 * <!-- end-user-doc -->
321 * @param object the target of the switch.
322 * @return the result of interpreting the object as an instance of '<em>Cube Sat6 U</em>'.
323 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
324 * @generated
325 */
326 public T caseCubeSat6U(CubeSat6U object) {
327 return null;
328 }
329
330 /**
331 * Returns the result of interpreting the object as an instance of '<em>Small Sat</em>'.
332 * <!-- begin-user-doc -->
333 * This implementation returns null;
334 * returning a non-null result will terminate the switch.
335 * <!-- end-user-doc -->
336 * @param object the target of the switch.
337 * @return the result of interpreting the object as an instance of '<em>Small Sat</em>'.
338 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
339 * @generated
340 */
341 public T caseSmallSat(SmallSat object) {
342 return null;
343 }
344
345 /**
346 * Returns the result of interpreting the object as an instance of '<em>Cube Sat</em>'.
347 * <!-- begin-user-doc -->
348 * This implementation returns null;
349 * returning a non-null result will terminate the switch.
350 * <!-- end-user-doc -->
351 * @param object the target of the switch.
352 * @return the result of interpreting the object as an instance of '<em>Cube Sat</em>'.
353 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
354 * @generated
355 */
356 public T caseCubeSat(CubeSat object) {
357 return null;
358 }
359
360 /**
361 * Returns the result of interpreting the object as an instance of '<em>UHF Comm Subsystem</em>'.
362 * <!-- begin-user-doc -->
363 * This implementation returns null;
364 * returning a non-null result will terminate the switch.
365 * <!-- end-user-doc -->
366 * @param object the target of the switch.
367 * @return the result of interpreting the object as an instance of '<em>UHF Comm Subsystem</em>'.
368 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
369 * @generated
370 */
371 public T caseUHFCommSubsystem(UHFCommSubsystem object) {
372 return null;
373 }
374
375 /**
376 * Returns the result of interpreting the object as an instance of '<em>XComm Subsystem</em>'.
377 * <!-- begin-user-doc -->
378 * This implementation returns null;
379 * returning a non-null result will terminate the switch.
380 * <!-- end-user-doc -->
381 * @param object the target of the switch.
382 * @return the result of interpreting the object as an instance of '<em>XComm Subsystem</em>'.
383 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
384 * @generated
385 */
386 public T caseXCommSubsystem(XCommSubsystem object) {
387 return null;
388 }
389
390 /**
391 * Returns the result of interpreting the object as an instance of '<em>Ka Comm Subsystem</em>'.
392 * <!-- begin-user-doc -->
393 * This implementation returns null;
394 * returning a non-null result will terminate the switch.
395 * <!-- end-user-doc -->
396 * @param object the target of the switch.
397 * @return the result of interpreting the object as an instance of '<em>Ka Comm Subsystem</em>'.
398 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
399 * @generated
400 */
401 public T caseKaCommSubsystem(KaCommSubsystem object) {
402 return null;
403 }
404
405 /**
406 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
407 * <!-- begin-user-doc -->
408 * This implementation returns null;
409 * returning a non-null result will terminate the switch, but this is the last case anyway.
410 * <!-- end-user-doc -->
411 * @param object the target of the switch.
412 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
413 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
414 * @generated
415 */
416 @Override
417 public T defaultCase(EObject object) {
418 return null;
419 }
420
421} //SatelliteSwitch
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/.FileComparator.java._trace b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/.FileComparator.java._trace
new file mode 100644
index 00000000..66809531
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/.FileComparator.java._trace
Binary files differ
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureDiversity.java._trace b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureDiversity.java._trace
new file mode 100644
index 00000000..87a0a021
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureDiversity.java._trace
Binary files differ
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureDiversity.xtendbin b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureDiversity.xtendbin
new file mode 100644
index 00000000..b2685222
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureDiversity.xtendbin
Binary files differ
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureInternalDiversity.java._trace b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureInternalDiversity.java._trace
new file mode 100644
index 00000000..f9773278
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureInternalDiversity.java._trace
Binary files differ
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureInternalDiversity.xtendbin b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureInternalDiversity.xtendbin
new file mode 100644
index 00000000..1ffee322
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/.MeasureInternalDiversity.xtendbin
Binary files differ
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/.PatternWithMatches.java._trace b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/.PatternWithMatches.java._trace
new file mode 100644
index 00000000..f8d273ed
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/.PatternWithMatches.java._trace
Binary files differ
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/FileComparator.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/FileComparator.java
new file mode 100644
index 00000000..d3992d29
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/FileComparator.java
@@ -0,0 +1,27 @@
1package hu.bme.mit.inf.dslreasoner.diversitycalculator;
2
3import hu.bme.mit.inf.dslreasoner.diversitycalculator.MeasureDiversity;
4import java.io.File;
5import java.util.Comparator;
6
7@SuppressWarnings("all")
8public class FileComparator implements Comparator<File> {
9 @Override
10 public int compare(final File arg0, final File arg1) {
11 int _xblockexpression = (int) 0;
12 {
13 final int r1 = Integer.parseInt(MeasureDiversity.runIndex(arg0.getName()));
14 final int r2 = Integer.parseInt(MeasureDiversity.runIndex(arg1.getName()));
15 final int runRes = Integer.compare(r1, r2);
16 if ((runRes == 0)) {
17 final int a = Integer.parseInt(MeasureDiversity.modelIndex(arg0.getName()));
18 final int b = Integer.parseInt(MeasureDiversity.modelIndex(arg1.getName()));
19 Integer.compare(a, b);
20 } else {
21 return runRes;
22 }
23 _xblockexpression = arg0.getName().compareTo(arg1.getName());
24 }
25 return _xblockexpression;
26 }
27}
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/MeasureDiversity.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/MeasureDiversity.java
new file mode 100644
index 00000000..bbf46409
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/MeasureDiversity.java
@@ -0,0 +1,350 @@
1package hu.bme.mit.inf.dslreasoner.diversitycalculator;
2
3import TaxationWithRoot.TaxationWithRootPackage;
4import com.google.common.collect.Iterables;
5import familytree.FamilytreePackage;
6import hu.bme.mit.inf.dslreasoner.diversitycalculator.FileComparator;
7import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic;
8import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration;
9import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace;
10import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor;
11import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage;
12import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput;
13import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement;
14import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage;
15import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem;
16import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage;
17import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage;
18import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2PartialInterpretation;
19import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.neighbourhood.AbstractNodeDescriptor;
20import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.neighbourhood.NeighbourhoodWithTraces;
21import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.neighbourhood.PartialInterpretation2ImmutableTypeLattice;
22import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation;
23import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialinterpretationPackage;
24import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace;
25import java.io.File;
26import java.io.PrintWriter;
27import java.util.ArrayList;
28import java.util.Collections;
29import java.util.HashMap;
30import java.util.HashSet;
31import java.util.LinkedList;
32import java.util.List;
33import java.util.Map;
34import java.util.Set;
35import java.util.function.Consumer;
36import org.eclipse.emf.common.util.EList;
37import org.eclipse.emf.ecore.EAttribute;
38import org.eclipse.emf.ecore.EClass;
39import org.eclipse.emf.ecore.EEnum;
40import org.eclipse.emf.ecore.EEnumLiteral;
41import org.eclipse.emf.ecore.EObject;
42import org.eclipse.emf.ecore.EPackage;
43import org.eclipse.emf.ecore.EReference;
44import org.eclipse.emf.ecore.EcorePackage;
45import org.eclipse.emf.ecore.resource.Resource;
46import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
47import org.eclipse.viatra.query.runtime.api.ViatraQueryEngineOptions;
48import org.eclipse.viatra.query.runtime.localsearch.matcher.integration.LocalSearchEMFBackendFactory;
49import org.eclipse.viatra.query.runtime.rete.matcher.ReteBackendFactory;
50import org.eclipse.xtend2.lib.StringConcatenation;
51import org.eclipse.xtext.xbase.lib.CollectionLiterals;
52import org.eclipse.xtext.xbase.lib.Conversions;
53import org.eclipse.xtext.xbase.lib.Exceptions;
54import org.eclipse.xtext.xbase.lib.ExclusiveRange;
55import org.eclipse.xtext.xbase.lib.Functions.Function1;
56import org.eclipse.xtext.xbase.lib.Functions.Function2;
57import org.eclipse.xtext.xbase.lib.InputOutput;
58import org.eclipse.xtext.xbase.lib.IterableExtensions;
59import org.eclipse.xtext.xbase.lib.ListExtensions;
60import satellite.SatellitePackage;
61
62@SuppressWarnings("all")
63public class MeasureDiversity {
64 public static class BenchmarkConfig {
65 private int range;
66
67 private int size;
68
69 private PrintWriter writer;
70
71 private String scenario;
72 }
73
74 private static final InstanceModel2PartialInterpretation partialInterpretation2Logic = new InstanceModel2PartialInterpretation();
75
76 private static final PartialInterpretation2ImmutableTypeLattice neiguboirhoodComputer = new PartialInterpretation2ImmutableTypeLattice();
77
78 private static final Ecore2Logic ecore2Logic = new Ecore2Logic();
79
80 private static void init() {
81 LogiclanguagePackage.eINSTANCE.getClass();
82 LogicproblemPackage.eINSTANCE.getClass();
83 PartialinterpretationPackage.eINSTANCE.getClass();
84 Ecore2logicannotationsPackage.eINSTANCE.getClass();
85 Viatra2LogicAnnotationsPackage.eINSTANCE.getClass();
86 Map<String, Object> _extensionToFactoryMap = Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap();
87 XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl();
88 _extensionToFactoryMap.put("*", _xMIResourceFactoryImpl);
89 ViatraQueryEngineOptions.setSystemDefaultBackends(ReteBackendFactory.INSTANCE, ReteBackendFactory.INSTANCE, LocalSearchEMFBackendFactory.INSTANCE);
90 }
91
92 public static void main(final String[] args) {
93 try {
94 MeasureDiversity.init();
95 StringConcatenation _builder = new StringConcatenation();
96 _builder.append("inputs");
97 final String path = _builder.toString();
98 StringConcatenation _builder_1 = new StringConcatenation();
99 _builder_1.append("FamilyTree");
100 StringConcatenation _builder_2 = new StringConcatenation();
101 _builder_2.append("Satellite");
102 StringConcatenation _builder_3 = new StringConcatenation();
103 _builder_3.append("Taxation");
104 StringConcatenation _builder_4 = new StringConcatenation();
105 _builder_4.append("FamilyTreeNoNum");
106 StringConcatenation _builder_5 = new StringConcatenation();
107 _builder_5.append("SatelliteNoNum");
108 StringConcatenation _builder_6 = new StringConcatenation();
109 _builder_6.append("TaxationNoNum");
110 final List<String> scenarios = Collections.<String>unmodifiableList(CollectionLiterals.<String>newArrayList(_builder_1.toString(), _builder_2.toString(), _builder_3.toString(), _builder_4.toString(), _builder_5.toString(), _builder_6.toString()));
111 final PrintWriter writer = new PrintWriter((path + "/diversity.csv"), "UTF-8");
112 for (final String scenario : scenarios) {
113 {
114 final MeasureDiversity.BenchmarkConfig config = new MeasureDiversity.BenchmarkConfig();
115 config.writer = writer;
116 config.range = 3;
117 config.scenario = scenario;
118 MeasureDiversity.measureDiversity(scenario, ((path + "/") + scenario), config);
119 InputOutput.<String>println((scenario + " finished"));
120 }
121 }
122 writer.close();
123 } catch (Throwable _e) {
124 throw Exceptions.sneakyThrow(_e);
125 }
126 }
127
128 public static void measureDiversity(final String scenario, final String path, final MeasureDiversity.BenchmarkConfig config) {
129 final File file = new File(path);
130 boolean _isDirectory = file.isDirectory();
131 if (_isDirectory) {
132 final String[] subfiles = file.list();
133 final Function1<String, Boolean> _function = (String it) -> {
134 return Boolean.valueOf(it.endsWith(".xmi"));
135 };
136 final Iterable<String> xmiSubfiles = IterableExtensions.<String>filter(((Iterable<String>)Conversions.doWrapArray(subfiles)), _function);
137 boolean _isEmpty = IterableExtensions.isEmpty(xmiSubfiles);
138 boolean _not = (!_isEmpty);
139 if (_not) {
140 final Function1<String, File> _function_1 = (String it) -> {
141 return new File(((path + "/") + it));
142 };
143 MeasureDiversity.measureDiversity(scenario, file, IterableExtensions.<File>toList(IterableExtensions.<String, File>map(xmiSubfiles, _function_1)), path, config);
144 } else {
145 for (final String subfile : subfiles) {
146 MeasureDiversity.measureDiversity(scenario, ((path + "/") + subfile), config);
147 }
148 }
149 } else {
150 boolean _isFile = file.isFile();
151 if (_isFile) {
152 }
153 }
154 }
155
156 public static void measureDiversity(final String scenario, final File parent, final List<File> files, final String path, final MeasureDiversity.BenchmarkConfig config) {
157 final int depth = config.range;
158 final FileSystemWorkspace workspace = new FileSystemWorkspace(path, "");
159 EcorePackage.eINSTANCE.eClass();
160 TaxationWithRootPackage.eINSTANCE.eClass();
161 SatellitePackage.eINSTANCE.eClass();
162 FamilytreePackage.eINSTANCE.eClass();
163 FileComparator _fileComparator = new FileComparator();
164 files.sort(_fileComparator);
165 final HashMap<File, List<Map<? extends AbstractNodeDescriptor, Integer>>> modelShapeLists = new HashMap<File, List<Map<? extends AbstractNodeDescriptor, Integer>>>();
166 final HashMap<File, Map<? extends AbstractNodeDescriptor, Integer>> modelShapes = new HashMap<File, Map<? extends AbstractNodeDescriptor, Integer>>();
167 for (final File file : files) {
168 {
169 final EObject model = workspace.<EObject>readModel(EObject.class, file.getName());
170 final EPackage pckg = model.eClass().getEPackage();
171 List<EClass> _list = IterableExtensions.<EClass>toList(Iterables.<EClass>filter(pckg.getEClassifiers(), EClass.class));
172 Set<EClass> _emptySet = Collections.<EClass>emptySet();
173 List<EEnum> _list_1 = IterableExtensions.<EEnum>toList(Iterables.<EEnum>filter(pckg.getEClassifiers(), EEnum.class));
174 final Function1<EEnum, EList<EEnumLiteral>> _function = (EEnum it) -> {
175 return it.getELiterals();
176 };
177 List<EEnumLiteral> _list_2 = IterableExtensions.<EEnumLiteral>toList(Iterables.<EEnumLiteral>concat(IterableExtensions.<EEnum, EList<EEnumLiteral>>map(Iterables.<EEnum>filter(pckg.getEClassifiers(), EEnum.class), _function)));
178 final Function1<EClass, EList<EReference>> _function_1 = (EClass it) -> {
179 return it.getEReferences();
180 };
181 List<EReference> _list_3 = IterableExtensions.<EReference>toList(Iterables.<EReference>concat(IterableExtensions.<EClass, EList<EReference>>map(Iterables.<EClass>filter(pckg.getEClassifiers(), EClass.class), _function_1)));
182 final Function1<EClass, EList<EAttribute>> _function_2 = (EClass it) -> {
183 return it.getEAttributes();
184 };
185 List<EAttribute> _list_4 = IterableExtensions.<EAttribute>toList(Iterables.<EAttribute>concat(IterableExtensions.<EClass, EList<EAttribute>>map(Iterables.<EClass>filter(pckg.getEClassifiers(), EClass.class), _function_2)));
186 final EcoreMetamodelDescriptor metamodel = new EcoreMetamodelDescriptor(_list, _emptySet,
187 false, _list_1, _list_2, _list_3, _list_4);
188 Ecore2LogicConfiguration _ecore2LogicConfiguration = new Ecore2LogicConfiguration();
189 final TracedOutput<LogicProblem, Ecore2Logic_Trace> metamodelTransformationOutput = MeasureDiversity.ecore2Logic.transformMetamodel(metamodel, _ecore2LogicConfiguration);
190 final PartialInterpretation partialModelOutput = MeasureDiversity.partialInterpretation2Logic.transform(metamodelTransformationOutput, model.eResource(),
191 false);
192 final List<Map<? extends AbstractNodeDescriptor, Integer>> list = MeasureDiversity.shapeList(partialModelOutput, depth);
193 modelShapes.put(file, list.get((depth - 1)));
194 }
195 }
196 final PrintWriter writer = config.writer;
197 InputOutput.<String>println("Printing internal diversity of models");
198 for (final File model : files) {
199 {
200 final Map<? extends AbstractNodeDescriptor, Integer> modelshape = modelShapes.get(model);
201 final Function2<Integer, Integer, Integer> _function = (Integer a, Integer b) -> {
202 return Integer.valueOf(((a).intValue() + (b).intValue()));
203 };
204 final Integer amounts = IterableExtensions.<Integer>reduce(modelshape.values(), _function);
205 int _size = modelshape.size();
206 final double shapes = ((double) _size);
207 writer.println(((((config.scenario + ",") + model) + ",") + Double.valueOf((shapes / (amounts).intValue()))));
208 }
209 }
210 }
211
212 public static ArrayList<List<File>> getRandomOrders(final List<File> files, final int number) {
213 final ArrayList<List<File>> sequences = new ArrayList<List<File>>();
214 for (int i = 0; (i < number); i++) {
215 {
216 final ArrayList<File> seq = new ArrayList<File>(files);
217 Collections.shuffle(seq);
218 sequences.add(seq);
219 }
220 }
221 return sequences;
222 }
223
224 public static void printShapeNumbersOnRandomOrders(final List<File> files, final HashMap<File, Map<? extends AbstractNodeDescriptor, Integer>> shapes, final int number) {
225 final ArrayList<List<File>> sequences = new ArrayList<List<File>>();
226 InputOutput.<String>println("Printing generated random orders (models apper in original order)");
227 for (int i = 0; (i < number); i++) {
228 {
229 final ArrayList<File> seq = new ArrayList<File>(files);
230 Collections.shuffle(seq);
231 sequences.add(seq);
232 InputOutput.<String>println("Model;NewIndex");
233 for (final File model : files) {
234 String _plus = (model + ",");
235 int _indexOf = seq.indexOf(model);
236 String _plus_1 = (_plus + Integer.valueOf(_indexOf));
237 InputOutput.<String>println(_plus_1);
238 }
239 }
240 }
241 InputOutput.<String>println("Printing generated random orders (models apper in original order)");
242 InputOutput.<String>println("SeqNo;Index;Model;NewShapes;AllShapes");
243 int seqindx = 0;
244 for (final List<File> seq : sequences) {
245 {
246 final HashSet<AbstractNodeDescriptor> currshapes = new HashSet<AbstractNodeDescriptor>();
247 int indx = 0;
248 for (final File model : seq) {
249 {
250 final int beforesize = currshapes.size();
251 currshapes.addAll(shapes.get(model).keySet());
252 final int aftersize = currshapes.size();
253 final int diff = (aftersize - beforesize);
254 String _plus = (Integer.valueOf(seqindx) + ",");
255 String _plus_1 = (_plus + Integer.valueOf(indx));
256 String _plus_2 = (_plus_1 + ",");
257 String _plus_3 = (_plus_2 + model);
258 String _plus_4 = (_plus_3 + ",");
259 String _plus_5 = (_plus_4 + Integer.valueOf(diff));
260 String _plus_6 = (_plus_5 + ",");
261 int _size = currshapes.size();
262 String _plus_7 = (_plus_6 + Integer.valueOf(_size));
263 InputOutput.<String>println(_plus_7);
264 indx++;
265 }
266 }
267 seqindx++;
268 }
269 }
270 }
271
272 public static void printShapeNumbers(final List<File> order, final Map<File, Map<? extends AbstractNodeDescriptor, Integer>> shapes) {
273 InputOutput.<String>println("Model;InternalDiversity;NewShapes;AllCurrentShapes");
274 final HashSet<AbstractNodeDescriptor> currshapes = new HashSet<AbstractNodeDescriptor>();
275 for (final File file : order) {
276 {
277 final int beforesize = currshapes.size();
278 currshapes.addAll(shapes.get(file).keySet());
279 final int aftersize = currshapes.size();
280 final int diff = (aftersize - beforesize);
281 String _plus = (file + ",");
282 int _size = shapes.get(file).size();
283 String _plus_1 = (_plus + Integer.valueOf(_size));
284 String _plus_2 = (_plus_1 + ",");
285 String _plus_3 = (_plus_2 + Integer.valueOf(diff));
286 String _plus_4 = (_plus_3 + ",");
287 int _size_1 = currshapes.size();
288 String _plus_5 = (_plus_4 + Integer.valueOf(_size_1));
289 InputOutput.<String>println(_plus_5);
290 }
291 }
292 }
293
294 protected static String runIndex(final String name) {
295 final String res = IterableExtensions.<String>head(((Iterable<String>)Conversions.doWrapArray(name.split("\\.")))).split("_")[0];
296 boolean _startsWith = res.startsWith("result");
297 if (_startsWith) {
298 return res.substring(6);
299 } else {
300 return res;
301 }
302 }
303
304 protected static String modelIndex(final String name) {
305 return IterableExtensions.<String>head(((Iterable<String>)Conversions.doWrapArray(name.split("\\.")))).split("_")[1];
306 }
307
308 protected static LinkedList<Set<Integer>> representationList(final PartialInterpretation partialModel, final int depth) {
309 final LinkedList<Set<Integer>> list = new LinkedList<Set<Integer>>();
310 ExclusiveRange _doubleDotLessThan = new ExclusiveRange(0, depth, true);
311 for (final Integer i : _doubleDotLessThan) {
312 {
313 final NeighbourhoodWithTraces<Map<? extends AbstractNodeDescriptor, Integer>, AbstractNodeDescriptor> neighbourhood = MeasureDiversity.neiguboirhoodComputer.createRepresentation(partialModel, (i).intValue(), 0, 0);
314 final Function1<AbstractNodeDescriptor, Integer> _function = (AbstractNodeDescriptor it) -> {
315 return Integer.valueOf(it.hashCode());
316 };
317 list.add(IterableExtensions.<Integer>toSet(IterableExtensions.map(neighbourhood.getModelRepresentation().keySet(), _function)));
318 }
319 }
320 return list;
321 }
322
323 protected static List<Map<? extends AbstractNodeDescriptor, Integer>> shapeList(final PartialInterpretation partialModel, final int depth) {
324 final LinkedList<Map<? extends AbstractNodeDescriptor, Integer>> list = new LinkedList<Map<? extends AbstractNodeDescriptor, Integer>>();
325 ExclusiveRange _doubleDotLessThan = new ExclusiveRange(0, depth, true);
326 for (final Integer i : _doubleDotLessThan) {
327 {
328 final NeighbourhoodWithTraces<Map<? extends AbstractNodeDescriptor, Integer>, AbstractNodeDescriptor> neighbourhood = MeasureDiversity.neiguboirhoodComputer.createRepresentation(partialModel, (i).intValue(), Integer.MAX_VALUE, Integer.MAX_VALUE);
329 final EList<DefinedElement> openWorldElements = partialModel.getOpenWorldElements();
330 final Function1<DefinedElement, AbstractNodeDescriptor> _function = (DefinedElement it) -> {
331 return neighbourhood.getNodeRepresentations().get(it);
332 };
333 final Set<AbstractNodeDescriptor> representationsOfOpenElements = IterableExtensions.<AbstractNodeDescriptor>toSet(ListExtensions.<DefinedElement, AbstractNodeDescriptor>map(openWorldElements, _function));
334 Map<? extends AbstractNodeDescriptor, Integer> _modelRepresentation = neighbourhood.getModelRepresentation();
335 final HashMap<AbstractNodeDescriptor, Integer> allElementRepresentation = new HashMap<AbstractNodeDescriptor, Integer>(_modelRepresentation);
336 final Consumer<AbstractNodeDescriptor> _function_1 = (AbstractNodeDescriptor it) -> {
337 allElementRepresentation.remove(it);
338 };
339 representationsOfOpenElements.forEach(_function_1);
340 final Map<Integer, Integer> hashedRepresentation = new HashMap<Integer, Integer>();
341 Set<Map.Entry<AbstractNodeDescriptor, Integer>> _entrySet = allElementRepresentation.entrySet();
342 for (final Map.Entry<AbstractNodeDescriptor, Integer> entry : _entrySet) {
343 hashedRepresentation.put(Integer.valueOf(entry.getKey().getDataHash()), entry.getValue());
344 }
345 list.add(allElementRepresentation);
346 }
347 }
348 return list;
349 }
350}
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/MeasureInternalDiversity.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/MeasureInternalDiversity.java
new file mode 100644
index 00000000..e1552b2f
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/MeasureInternalDiversity.java
@@ -0,0 +1,165 @@
1package hu.bme.mit.inf.dslreasoner.diversitycalculator;
2
3import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic;
4import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration;
5import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace;
6import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor;
7import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage;
8import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput;
9import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage;
10import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem;
11import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage;
12import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage;
13import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2PartialInterpretation;
14import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.neighbourhood.AbstractNodeDescriptor;
15import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.neighbourhood.NeighbourhoodWithTraces;
16import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.neighbourhood.PartialInterpretation2ImmutableTypeLattice;
17import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation;
18import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialinterpretationPackage;
19import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace;
20import java.io.File;
21import java.util.LinkedList;
22import java.util.List;
23import java.util.Map;
24import org.eclipse.emf.ecore.EObject;
25import org.eclipse.emf.ecore.resource.Resource;
26import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
27import org.eclipse.xtend2.lib.StringConcatenation;
28import org.eclipse.xtext.xbase.lib.Conversions;
29import org.eclipse.xtext.xbase.lib.Exceptions;
30import org.eclipse.xtext.xbase.lib.ExclusiveRange;
31import org.eclipse.xtext.xbase.lib.Functions.Function1;
32import org.eclipse.xtext.xbase.lib.InputOutput;
33import org.eclipse.xtext.xbase.lib.IterableExtensions;
34
35@SuppressWarnings("all")
36public class MeasureInternalDiversity {
37 private static final InstanceModel2PartialInterpretation partialInterpretation2Logic = new InstanceModel2PartialInterpretation();
38
39 private static final PartialInterpretation2ImmutableTypeLattice neiguboirhoodComputer = new PartialInterpretation2ImmutableTypeLattice();
40
41 private static final Ecore2Logic ecore2Logic = new Ecore2Logic();
42
43 private static Object init() {
44 Object _xblockexpression = null;
45 {
46 LogiclanguagePackage.eINSTANCE.getClass();
47 LogicproblemPackage.eINSTANCE.getClass();
48 PartialinterpretationPackage.eINSTANCE.getClass();
49 Ecore2logicannotationsPackage.eINSTANCE.getClass();
50 Viatra2LogicAnnotationsPackage.eINSTANCE.getClass();
51 Map<String, Object> _extensionToFactoryMap = Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap();
52 XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl();
53 _xblockexpression = _extensionToFactoryMap.put("*", _xMIResourceFactoryImpl);
54 }
55 return _xblockexpression;
56 }
57
58 public static void main(final String[] args) {
59 MeasureInternalDiversity.init();
60 }
61
62 public static void run(final EcoreMetamodelDescriptor metamodel, final String path, final String scenario) {
63 final int range = 20;
64 MeasureInternalDiversity.measureDiversity(metamodel, scenario, path, range);
65 }
66
67 public static void measureDiversity(final EcoreMetamodelDescriptor metamodel, final String scenario, final String path, final int depth) {
68 final File file = new File(path);
69 boolean _isDirectory = file.isDirectory();
70 if (_isDirectory) {
71 final String[] subfiles = file.list();
72 final Function1<String, Boolean> _function = (String it) -> {
73 return Boolean.valueOf(it.endsWith(".xmi"));
74 };
75 final Iterable<String> xmiSubfiles = IterableExtensions.<String>filter(((Iterable<String>)Conversions.doWrapArray(subfiles)), _function);
76 boolean _isEmpty = IterableExtensions.isEmpty(xmiSubfiles);
77 boolean _not = (!_isEmpty);
78 if (_not) {
79 final Function1<String, File> _function_1 = (String it) -> {
80 return new File(((path + "/") + it));
81 };
82 MeasureInternalDiversity.measureDiversity(metamodel, scenario, file, IterableExtensions.<File>toList(IterableExtensions.<String, File>map(xmiSubfiles, _function_1)), path, depth);
83 } else {
84 for (final String subfile : subfiles) {
85 MeasureInternalDiversity.measureDiversity(metamodel, scenario, ((path + "/") + subfile), depth);
86 }
87 }
88 } else {
89 boolean _isFile = file.isFile();
90 if (_isFile) {
91 }
92 }
93 }
94
95 public static void measureDiversity(final EcoreMetamodelDescriptor metamodel, final String scenario, final File parent, final List<File> files, final String path, final int depth) {
96 final FileSystemWorkspace workspace = new FileSystemWorkspace(path, "");
97 for (final File file : files) {
98 {
99 Ecore2LogicConfiguration _ecore2LogicConfiguration = new Ecore2LogicConfiguration();
100 final TracedOutput<LogicProblem, Ecore2Logic_Trace> metamodelTransformationOutput = MeasureInternalDiversity.ecore2Logic.transformMetamodel(metamodel, _ecore2LogicConfiguration);
101 final EObject model = workspace.<EObject>readModel(EObject.class, file.getName());
102 final PartialInterpretation partialModel = MeasureInternalDiversity.partialInterpretation2Logic.transform(metamodelTransformationOutput, model.eResource(), false);
103 final LinkedList<Map<? extends AbstractNodeDescriptor, Integer>> list = MeasureInternalDiversity.representationList(partialModel, depth);
104 try {
105 final String runIndex = MeasureInternalDiversity.runIndex(file.getName());
106 final String modelIndex = MeasureInternalDiversity.modelIndex(file.getName());
107 StringConcatenation _builder = new StringConcatenation();
108 _builder.append(scenario);
109 _builder.append(";");
110 _builder.append(runIndex);
111 _builder.append(";");
112 _builder.append(modelIndex);
113 InputOutput.<String>print(_builder.toString());
114 } catch (final Throwable _t) {
115 if (_t instanceof Exception) {
116 StringConcatenation _builder_1 = new StringConcatenation();
117 _builder_1.append(scenario);
118 _builder_1.append(";0;");
119 String _name = file.getName();
120 _builder_1.append(_name);
121 InputOutput.<String>print(_builder_1.toString());
122 } else {
123 throw Exceptions.sneakyThrow(_t);
124 }
125 }
126 int _size = list.size();
127 ExclusiveRange _doubleDotLessThan = new ExclusiveRange(0, _size, true);
128 for (final Integer i : _doubleDotLessThan) {
129 StringConcatenation _builder = new StringConcatenation();
130 _builder.append(";");
131 int _size_1 = list.get((i).intValue()).keySet().size();
132 _builder.append(_size_1);
133 InputOutput.<String>print(_builder.toString());
134 }
135 int _size_2 = list.getLast().keySet().size();
136 double _multiply = (_size_2 * 1.0);
137 int _size_3 = partialModel.getNewElements().size();
138 double _divide = (_multiply / _size_3);
139 String _plus = (";" + Double.valueOf(_divide));
140 InputOutput.<String>print(_plus);
141 InputOutput.println();
142 }
143 }
144 }
145
146 protected static String runIndex(final String name) {
147 return IterableExtensions.<String>head(((Iterable<String>)Conversions.doWrapArray(name.split("\\.")))).split("_")[1];
148 }
149
150 protected static String modelIndex(final String name) {
151 return IterableExtensions.<String>head(((Iterable<String>)Conversions.doWrapArray(name.split("\\.")))).split("_")[2];
152 }
153
154 protected static LinkedList<Map<? extends AbstractNodeDescriptor, Integer>> representationList(final PartialInterpretation partialModel, final int depth) {
155 final LinkedList<Map<? extends AbstractNodeDescriptor, Integer>> list = new LinkedList<Map<? extends AbstractNodeDescriptor, Integer>>();
156 ExclusiveRange _doubleDotLessThan = new ExclusiveRange(0, depth, true);
157 for (final Integer i : _doubleDotLessThan) {
158 {
159 final NeighbourhoodWithTraces<Map<? extends AbstractNodeDescriptor, Integer>, AbstractNodeDescriptor> neighbourhood = MeasureInternalDiversity.neiguboirhoodComputer.createRepresentation(partialModel, (i).intValue(), 0, 0);
160 list.add(neighbourhood.getModelRepresentation());
161 }
162 }
163 return list;
164 }
165}
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/PatternWithMatches.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/PatternWithMatches.java
new file mode 100644
index 00000000..201269fd
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/PatternWithMatches.java
@@ -0,0 +1,72 @@
1package hu.bme.mit.inf.dslreasoner.diversitycalculator;
2
3import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement;
4import java.util.List;
5import org.eclipse.xtend.lib.annotations.Data;
6import org.eclipse.xtext.xbase.lib.Pure;
7import org.eclipse.xtext.xbase.lib.util.ToStringBuilder;
8
9@Data
10@SuppressWarnings("all")
11public class PatternWithMatches {
12 private final String name;
13
14 private final List<List<DefinedElement>> matches;
15
16 public PatternWithMatches(final String name, final List<List<DefinedElement>> matches) {
17 super();
18 this.name = name;
19 this.matches = matches;
20 }
21
22 @Override
23 @Pure
24 public int hashCode() {
25 final int prime = 31;
26 int result = 1;
27 result = prime * result + ((this.name== null) ? 0 : this.name.hashCode());
28 return prime * result + ((this.matches== null) ? 0 : this.matches.hashCode());
29 }
30
31 @Override
32 @Pure
33 public boolean equals(final Object obj) {
34 if (this == obj)
35 return true;
36 if (obj == null)
37 return false;
38 if (getClass() != obj.getClass())
39 return false;
40 PatternWithMatches other = (PatternWithMatches) obj;
41 if (this.name == null) {
42 if (other.name != null)
43 return false;
44 } else if (!this.name.equals(other.name))
45 return false;
46 if (this.matches == null) {
47 if (other.matches != null)
48 return false;
49 } else if (!this.matches.equals(other.matches))
50 return false;
51 return true;
52 }
53
54 @Override
55 @Pure
56 public String toString() {
57 ToStringBuilder b = new ToStringBuilder(this);
58 b.add("name", this.name);
59 b.add("matches", this.matches);
60 return b.toString();
61 }
62
63 @Pure
64 public String getName() {
65 return this.name;
66 }
67
68 @Pure
69 public List<List<DefinedElement>> getMatches() {
70 return this.matches;
71 }
72}