diff options
author | ArenBabikian <aren.babikian@mail.mcgill.ca> | 2019-04-15 00:06:29 -0400 |
---|---|---|
committer | ArenBabikian <aren.babikian@mail.mcgill.ca> | 2019-04-15 00:06:29 -0400 |
commit | 2f8149678539a94f2f4ca2e7ff5640ff5d7087cc (patch) | |
tree | 87355cdeb19a987a6ffc2dd215460e2bc34f1683 | |
parent | VAMPIRE: #39 Reorganise tests, working yakindu test, need debugging (diff) | |
download | VIATRA-Generator-2f8149678539a94f2f4ca2e7ff5640ff5d7087cc.tar.gz VIATRA-Generator-2f8149678539a94f2f4ca2e7ff5640ff5d7087cc.tar.zst VIATRA-Generator-2f8149678539a94f2f4ca2e7ff5640ff5d7087cc.zip |
68 files changed, 728 insertions, 2085 deletions
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/.ApplicationConfigurationIdeModule.xtendbin b/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/.ApplicationConfigurationIdeModule.xtendbin index d6392a0b..9edfdac5 100644 --- a/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/.ApplicationConfigurationIdeModule.xtendbin +++ b/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/.ApplicationConfigurationIdeModule.xtendbin | |||
Binary files differ | |||
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/.ApplicationConfigurationIdeSetup.xtendbin b/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/.ApplicationConfigurationIdeSetup.xtendbin index c97efa0f..0979473a 100644 --- a/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/.ApplicationConfigurationIdeSetup.xtendbin +++ b/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/.ApplicationConfigurationIdeSetup.xtendbin | |||
Binary files differ | |||
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/plugin.xml b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/plugin.xml index 9ace526f..8069f168 100644 --- a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/plugin.xml +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/plugin.xml | |||
@@ -3,6 +3,35 @@ | |||
3 | <!-- @generated yakindu_simplified --> | 3 | <!-- @generated yakindu_simplified --> |
4 | <package class="hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.YakindummPackage" genModel="model/yakindu_simplified.genmodel" uri="hu.bme.mit.inf.yakindumm"/> | 4 | <package class="hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.YakindummPackage" genModel="model/yakindu_simplified.genmodel" uri="hu.bme.mit.inf.yakindumm"/> |
5 | </extension> | 5 | </extension> |
6 | <extension id="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.Patterns" point="org.eclipse.viatra.query.runtime.queryspecification"> | ||
7 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.Patterns" id="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.Patterns"> | ||
8 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.entryInRegion"/> | ||
9 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.noEntryInRegion"/> | ||
10 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.multipleEntryInRegion"/> | ||
11 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.transition"/> | ||
12 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.incomingToEntry"/> | ||
13 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.noOutgoingTransitionFromEntry"/> | ||
14 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.multipleTransitionFromEntry"/> | ||
15 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.outgoingFromExit"/> | ||
16 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.outgoingFromFinal"/> | ||
17 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.noStateInRegion"/> | ||
18 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.StateInRegion"/> | ||
19 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.choiceHasNoOutgoing"/> | ||
20 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.choiceHasNoIncoming"/> | ||
21 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.synchHasNoOutgoing"/> | ||
22 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.synchHasNoIncoming"/> | ||
23 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.SynchronizedIncomingInSameRegion"/> | ||
24 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.notSynchronizingStates"/> | ||
25 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.hasMultipleOutgoingTrainsition"/> | ||
26 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.hasMultipleIncomingTrainsition"/> | ||
27 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.SynchronizedRegionsAreNotSiblings"/> | ||
28 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.child"/> | ||
29 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.SynchronizedRegionDoesNotHaveMultipleRegions"/> | ||
30 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.hasMultipleRegions"/> | ||
31 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.synchThree"/> | ||
32 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.twoSynch"/> | ||
33 | </group> | ||
34 | </extension> | ||
6 | <extension id="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.Mutated" point="org.eclipse.viatra.query.runtime.queryspecification"> | 35 | <extension id="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.Mutated" point="org.eclipse.viatra.query.runtime.queryspecification"> |
7 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.Mutated" id="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.Mutated"> | 36 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.Mutated" id="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.Mutated"> |
8 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.entryInRegion_M0"/> | 37 | <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.entryInRegion_M0"/> |
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeModule.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeModule.xtendbin index 024dcab9..10495630 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeModule.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeModule.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeSetup.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeSetup.xtendbin index 7e128ad1..295d9ec2 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeSetup.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeSetup.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/.VampireLanguageUiModule.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/.VampireLanguageUiModule.xtendbin index 0bf8ccc6..83b00f77 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/.VampireLanguageUiModule.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/.VampireLanguageUiModule.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/.VampireLanguageProposalProvider.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/.VampireLanguageProposalProvider.xtendbin index 58a18bbb..f8a7a2f3 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/.VampireLanguageProposalProvider.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/.VampireLanguageProposalProvider.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageDescriptionLabelProvider.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageDescriptionLabelProvider.xtendbin index 205afcc4..544f5811 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageDescriptionLabelProvider.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageDescriptionLabelProvider.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageLabelProvider.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageLabelProvider.xtendbin index b388bd43..62aac4ca 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageLabelProvider.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageLabelProvider.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/outline/.VampireLanguageOutlineTreeProvider.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/outline/.VampireLanguageOutlineTreeProvider.xtendbin index 3092be97..31d4543e 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/outline/.VampireLanguageOutlineTreeProvider.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/outline/.VampireLanguageOutlineTreeProvider.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/quickfix/.VampireLanguageQuickfixProvider.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/quickfix/.VampireLanguageQuickfixProvider.xtendbin index 8b23f34d..7b230b65 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/quickfix/.VampireLanguageQuickfixProvider.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/quickfix/.VampireLanguageQuickfixProvider.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageRuntimeModule.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageRuntimeModule.xtendbin index 84682c47..a24c2795 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageRuntimeModule.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageRuntimeModule.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageStandaloneSetup.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageStandaloneSetup.xtendbin index e3f67a0c..b35605ae 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageStandaloneSetup.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageStandaloneSetup.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/formatting2/.VampireLanguageFormatter.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/formatting2/.VampireLanguageFormatter.xtendbin index bf354098..5e9cd3bd 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/formatting2/.VampireLanguageFormatter.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/formatting2/.VampireLanguageFormatter.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/generator/.VampireLanguageGenerator.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/generator/.VampireLanguageGenerator.xtendbin index da62f4c1..0001d80f 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/generator/.VampireLanguageGenerator.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/generator/.VampireLanguageGenerator.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/scoping/.VampireLanguageScopeProvider.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/scoping/.VampireLanguageScopeProvider.xtendbin index 482b884e..b189414a 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/scoping/.VampireLanguageScopeProvider.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/scoping/.VampireLanguageScopeProvider.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/validation/.VampireLanguageValidator.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/validation/.VampireLanguageValidator.xtendbin index 81c1f803..b4eec95c 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/validation/.VampireLanguageValidator.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/validation/.VampireLanguageValidator.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ContainmentMapper.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ContainmentMapper.xtend index 395b4305..8e0e0b11 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ContainmentMapper.xtend +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ContainmentMapper.xtend | |||
@@ -39,7 +39,15 @@ class Logic2VampireLanguageMapper_ContainmentMapper { | |||
39 | for (l : relationsList) { | 39 | for (l : relationsList) { |
40 | var pointingTo = (l.parameters.get(1) as ComplexTypeReference).referred as Type | 40 | var pointingTo = (l.parameters.get(1) as ComplexTypeReference).referred as Type |
41 | containmentListCopy.remove(pointingTo) | 41 | containmentListCopy.remove(pointingTo) |
42 | for (c : pointingTo.subtypes) { | 42 | var List<Type> allSubtypes = newArrayList |
43 | support.listSubtypes(pointingTo, allSubtypes) | ||
44 | for (c : allSubtypes) { | ||
45 | containmentListCopy.remove(c) | ||
46 | } | ||
47 | } | ||
48 | |||
49 | for (c : containmentListCopy) { | ||
50 | if(c.isIsAbstract) { | ||
43 | containmentListCopy.remove(c) | 51 | containmentListCopy.remove(c) |
44 | } | 52 | } |
45 | } | 53 | } |
@@ -135,7 +143,7 @@ class Logic2VampireLanguageMapper_ContainmentMapper { | |||
135 | // STEP 2 CONT'D | 143 | // STEP 2 CONT'D |
136 | for (e : type2cont.entrySet) { | 144 | for (e : type2cont.entrySet) { |
137 | val relFormula = createVLSFofFormula => [ | 145 | val relFormula = createVLSFofFormula => [ |
138 | it.name = support.toIDMultiple("containment", e.key.constant.toString) | 146 | it.name = support.toIDMultiple("containment_contained", e.key.constant.toString) |
139 | it.fofRole = "axiom" | 147 | it.fofRole = "axiom" |
140 | 148 | ||
141 | it.fofFormula = createVLSUniversalQuantifier => [ | 149 | it.fofFormula = createVLSUniversalQuantifier => [ |
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.xtend index 0ae06bc3..2dec281d 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.xtend +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.xtend | |||
@@ -44,9 +44,20 @@ class Logic2VampireLanguageMapper_RelationMapper { | |||
44 | 44 | ||
45 | } | 45 | } |
46 | 46 | ||
47 | //deciding name of relation | ||
48 | val nameArray = r.name.split(" ") | ||
49 | var relNameVar = "" | ||
50 | if (nameArray.length == 3) { | ||
51 | relNameVar = support.toIDMultiple(nameArray.get(0), nameArray.get(2)) | ||
52 | } | ||
53 | else { | ||
54 | relNameVar = r.name | ||
55 | } | ||
56 | val relName = relNameVar | ||
57 | |||
47 | val comply = createVLSFofFormula=> [ | 58 | val comply = createVLSFofFormula=> [ |
48 | val nameArray = r.name.split(" ") | 59 | |
49 | it.name = support.toIDMultiple("compliance", nameArray.get(0), nameArray.get(2)) | 60 | it.name = support.toIDMultiple("compliance", relName) |
50 | it.fofRole = "axiom" | 61 | it.fofRole = "axiom" |
51 | it.fofFormula = createVLSUniversalQuantifier => [ | 62 | it.fofFormula = createVLSUniversalQuantifier => [ |
52 | for (v : relVar2VLS) { | 63 | for (v : relVar2VLS) { |
@@ -54,7 +65,7 @@ class Logic2VampireLanguageMapper_RelationMapper { | |||
54 | } | 65 | } |
55 | it.operand = createVLSImplies => [ | 66 | it.operand = createVLSImplies => [ |
56 | val rel = createVLSFunction => [ | 67 | val rel = createVLSFunction => [ |
57 | it.constant = support.toIDMultiple("r", nameArray.get(0), nameArray.get(2)) | 68 | it.constant = support.toIDMultiple("r", relName) |
58 | for (v : relVar2VLS) { | 69 | for (v : relVar2VLS) { |
59 | it.terms += support.duplicate(v) | 70 | it.terms += support.duplicate(v) |
60 | } | 71 | } |
@@ -71,89 +82,89 @@ class Logic2VampireLanguageMapper_RelationMapper { | |||
71 | 82 | ||
72 | def dispatch public void transformRelation(RelationDefinition reldef, Logic2VampireLanguageMapperTrace trace) { | 83 | def dispatch public void transformRelation(RelationDefinition reldef, Logic2VampireLanguageMapperTrace trace) { |
73 | 84 | ||
74 | // 1. store all variables in support wrt their name | 85 | // // 1. store all variables in support wrt their name |
75 | // 1.1 if variable has type, creating list of type declarations | 86 | // // 1.1 if variable has type, creating list of type declarations |
76 | // val VLSVariable variable = createVLSVariable => [it.name = "A"] | 87 | //// val VLSVariable variable = createVLSVariable => [it.name = "A"] |
77 | val Map<Variable, VLSVariable> relationVar2VLS = new HashMap | 88 | // val Map<Variable, VLSVariable> relationVar2VLS = new HashMap |
78 | val Map<Variable, VLSFunction> relationVar2TypeDecComply = new HashMap | 89 | // val Map<Variable, VLSFunction> relationVar2TypeDecComply = new HashMap |
79 | val Map<Variable, VLSFunction> relationVar2TypeDecRes = new HashMap | 90 | // val Map<Variable, VLSFunction> relationVar2TypeDecRes = new HashMap |
80 | val typedefs = new ArrayList<VLSTerm> | 91 | // val typedefs = new ArrayList<VLSTerm> |
81 | 92 | // | |
82 | for (variable : reldef.variables) { | 93 | // for (variable : reldef.variables) { |
83 | val v = createVLSVariable => [ | 94 | // val v = createVLSVariable => [ |
84 | it.name = support.toIDMultiple("V", variable.name) | 95 | // it.name = support.toIDMultiple("V", variable.name) |
85 | ] | 96 | // ] |
86 | relationVar2VLS.put(variable, v) | 97 | // relationVar2VLS.put(variable, v) |
87 | 98 | // | |
88 | val varTypeComply = createVLSFunction => [ | 99 | // val varTypeComply = createVLSFunction => [ |
89 | it.constant = support.toIDMultiple("t", (variable.range as ComplexTypeReference).referred.name) | 100 | // it.constant = support.toIDMultiple("t", (variable.range as ComplexTypeReference).referred.name) |
90 | it.terms += support.duplicate(v) | 101 | // it.terms += support.duplicate(v) |
91 | ] | 102 | // ] |
92 | relationVar2TypeDecComply.put(variable, varTypeComply) | 103 | // relationVar2TypeDecComply.put(variable, varTypeComply) |
93 | relationVar2TypeDecRes.put(variable, support.duplicate(varTypeComply)) | 104 | // relationVar2TypeDecRes.put(variable, support.duplicate(varTypeComply)) |
94 | } | 105 | // } |
95 | val nameArray = reldef.name.split(" ") | 106 | // val nameArray = reldef.name.split(" ") |
96 | val comply = createVLSFofFormula => [ | 107 | // val comply = createVLSFofFormula => [ |
97 | it.name = support.toIDMultiple("compliance", nameArray.get(nameArray.length - 2), | 108 | // it.name = support.toIDMultiple("compliance", nameArray.get(nameArray.length - 2), |
98 | nameArray.get(nameArray.length - 1)) | 109 | // nameArray.get(nameArray.length - 1)) |
99 | it.fofRole = "axiom" | 110 | // it.fofRole = "axiom" |
100 | it.fofFormula = createVLSUniversalQuantifier => [ | 111 | // it.fofFormula = createVLSUniversalQuantifier => [ |
101 | for (variable : reldef.variables) { | 112 | // for (variable : reldef.variables) { |
102 | it.variables += support.duplicate(variable.lookup(relationVar2VLS)) | 113 | // it.variables += support.duplicate(variable.lookup(relationVar2VLS)) |
103 | 114 | // | |
104 | } | 115 | // } |
105 | it.operand = createVLSImplies => [ | 116 | // it.operand = createVLSImplies => [ |
106 | it.left = createVLSFunction => [ | 117 | // it.left = createVLSFunction => [ |
107 | it.constant = support.toIDMultiple("rel", reldef.name) | 118 | // it.constant = support.toIDMultiple("rel", reldef.name) |
108 | for (variable : reldef.variables) { | 119 | // for (variable : reldef.variables) { |
109 | val v = createVLSVariable => [ | 120 | // val v = createVLSVariable => [ |
110 | it.name = variable.lookup(relationVar2VLS).name | 121 | // it.name = variable.lookup(relationVar2VLS).name |
111 | ] | 122 | // ] |
112 | it.terms += v | 123 | // it.terms += v |
113 | } | 124 | // } |
114 | ] | 125 | // ] |
115 | it.right = support.unfoldAnd(new ArrayList<VLSTerm>(relationVar2TypeDecComply.values)) | 126 | // it.right = support.unfoldAnd(new ArrayList<VLSTerm>(relationVar2TypeDecComply.values)) |
116 | ] | 127 | // ] |
117 | ] | 128 | // ] |
118 | ] | 129 | // ] |
119 | 130 | // | |
120 | val res = createVLSFofFormula => [ | 131 | // val res = createVLSFofFormula => [ |
121 | it.name = support.toIDMultiple("relation", nameArray.get(nameArray.length - 2), | 132 | // it.name = support.toIDMultiple("relation", nameArray.get(nameArray.length - 2), |
122 | nameArray.get(nameArray.length - 1)) | 133 | // nameArray.get(nameArray.length - 1)) |
123 | it.fofRole = "axiom" | 134 | // it.fofRole = "axiom" |
124 | it.fofFormula = createVLSUniversalQuantifier => [ | 135 | // it.fofFormula = createVLSUniversalQuantifier => [ |
125 | for (variable : reldef.variables) { | 136 | // for (variable : reldef.variables) { |
126 | val v = createVLSVariable => [ | 137 | // val v = createVLSVariable => [ |
127 | it.name = variable.lookup(relationVar2VLS).name | 138 | // it.name = variable.lookup(relationVar2VLS).name |
128 | ] | 139 | // ] |
129 | it.variables += v | 140 | // it.variables += v |
130 | 141 | // | |
131 | } | 142 | // } |
132 | it.operand = createVLSImplies => [ | 143 | // it.operand = createVLSImplies => [ |
133 | it.left = support.unfoldAnd(new ArrayList<VLSTerm>(relationVar2TypeDecRes.values)) | 144 | // it.left = support.unfoldAnd(new ArrayList<VLSTerm>(relationVar2TypeDecRes.values)) |
134 | it.right = createVLSEquivalent => [ | 145 | // it.right = createVLSEquivalent => [ |
135 | it.left = createVLSFunction => [ | 146 | // it.left = createVLSFunction => [ |
136 | it.constant = support.toIDMultiple("rel", reldef.name) | 147 | // it.constant = support.toIDMultiple("rel", reldef.name) |
137 | for (variable : reldef.variables) { | 148 | // for (variable : reldef.variables) { |
138 | val v = createVLSVariable => [ | 149 | // val v = createVLSVariable => [ |
139 | it.name = variable.lookup(relationVar2VLS).name | 150 | // it.name = variable.lookup(relationVar2VLS).name |
140 | ] | 151 | // ] |
141 | it.terms += v | 152 | // it.terms += v |
142 | 153 | // | |
143 | } | 154 | // } |
144 | ] | 155 | // ] |
145 | it.right = base.transformTerm(reldef.value, trace, relationVar2VLS) | 156 | // it.right = base.transformTerm(reldef.value, trace, relationVar2VLS) |
146 | ] | 157 | // ] |
147 | 158 | // | |
148 | ] | 159 | // ] |
149 | 160 | // | |
150 | ] | 161 | // ] |
151 | 162 | // | |
152 | ] | 163 | // ] |
153 | 164 | // | |
154 | // trace.relationDefinition2Predicate.put(r,res) | 165 | // // trace.relationDefinition2Predicate.put(r,res) |
155 | trace.specification.formulas += comply; | 166 | // trace.specification.formulas += comply; |
156 | trace.specification.formulas += res; | 167 | // trace.specification.formulas += res; |
157 | 168 | ||
158 | } | 169 | } |
159 | 170 | ||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.xtend index 0a8812e4..4a8d2827 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.xtend +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.xtend | |||
@@ -29,6 +29,7 @@ class Logic2VampireLanguageMapper_ScopeMapper { | |||
29 | // TODO HANDLE ERROR RELATED TO SUM(MIN TYPES)+1(for root) > MAX OBJECTS | 29 | // TODO HANDLE ERROR RELATED TO SUM(MIN TYPES)+1(for root) > MAX OBJECTS |
30 | // TODO HANDLE | 30 | // TODO HANDLE |
31 | // 1. make a list of constants equaling the min number of specified objects | 31 | // 1. make a list of constants equaling the min number of specified objects |
32 | //These numbers do not include enums or initial model elements | ||
32 | val GLOBAL_MIN = config.typeScopes.minNewElements | 33 | val GLOBAL_MIN = config.typeScopes.minNewElements |
33 | val GLOBAL_MAX = config.typeScopes.maxNewElements | 34 | val GLOBAL_MAX = config.typeScopes.maxNewElements |
34 | 35 | ||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.xtend index 195b89bb..680213ab 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.xtend +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.xtend | |||
@@ -273,15 +273,11 @@ class Logic2VampireLanguageMapper_Support { | |||
273 | } | 273 | } |
274 | } | 274 | } |
275 | 275 | ||
276 | def protected List<Type> listSubtypes(Type t) { | 276 | def protected void listSubtypes(Type t, List<Type> allSubtypes) { |
277 | var List<Type> allSubtypes = newArrayList | 277 | for (subt : t.subtypes) { |
278 | if (!t.subtypes.isEmpty) { | 278 | allSubtypes.add(subt) |
279 | for (subt : t.subtypes) { | 279 | listSubtypes(subt, allSubtypes) |
280 | allSubtypes.add(subt) | ||
281 | allSubtypes = listSubtypes(subt) | ||
282 | } | ||
283 | } | 280 | } |
284 | return allSubtypes | ||
285 | } | 281 | } |
286 | 282 | ||
287 | def protected withAddition(Map<Variable, VLSVariable> map1, Map<Variable, VLSVariable> map2) { | 283 | def protected withAddition(Map<Variable, VLSVariable> map1, Map<Variable, VLSVariable> map2) { |
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper.xtend index 3bc945df..2f3af593 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper.xtend +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper.xtend | |||
@@ -44,14 +44,19 @@ class Logic2VampireLanguageMapper_TypeMapper { | |||
44 | 44 | ||
45 | // Create a VLSFunction for each Enum Element | 45 | // Create a VLSFunction for each Enum Element |
46 | val List<VLSFunction> orElems = newArrayList | 46 | val List<VLSFunction> orElems = newArrayList |
47 | |||
47 | for (e : type.elements) { | 48 | for (e : type.elements) { |
49 | val nameArray = e.name.split(" ") | ||
50 | var relNameVar = "" | ||
51 | if (nameArray.length == 3) { | ||
52 | relNameVar = support.toIDMultiple(nameArray.get(0), nameArray.get(2)) | ||
53 | } else { | ||
54 | relNameVar = e.name | ||
55 | } | ||
56 | val relName = relNameVar | ||
57 | |||
48 | val enumElemPred = createVLSFunction => [ | 58 | val enumElemPred = createVLSFunction => [ |
49 | val splitName = e.name.split(" ") | 59 | it.constant = support.toIDMultiple("e", relName) |
50 | if (splitName.length > 2) { | ||
51 | it.constant = support.toIDMultiple("e", splitName.get(0), splitName.get(2)) | ||
52 | } else { | ||
53 | it.constant = support.toIDMultiple("e", splitName.get(0)) | ||
54 | } | ||
55 | it.terms += support.duplicate(variable) | 60 | it.terms += support.duplicate(variable) |
56 | ] | 61 | ] |
57 | trace.element2Predicate.put(e, enumElemPred) | 62 | trace.element2Predicate.put(e, enumElemPred) |
@@ -80,7 +85,7 @@ class Logic2VampireLanguageMapper_TypeMapper { | |||
80 | 85 | ||
81 | // Implement Enum Inheritence Hierarchy | 86 | // Implement Enum Inheritence Hierarchy |
82 | val res = createVLSFofFormula => [ | 87 | val res = createVLSFofFormula => [ |
83 | it.name = support.toIDMultiple("typeDef", type.name.split(" ").get(0)) | 88 | it.name = support.toIDMultiple("typeDef", type.lookup(trace.type2Predicate).constant.toString) |
84 | it.fofRole = "axiom" | 89 | it.fofRole = "axiom" |
85 | it.fofFormula = createVLSUniversalQuantifier => [ | 90 | it.fofFormula = createVLSUniversalQuantifier => [ |
86 | it.variables += support.duplicate(variable) | 91 | it.variables += support.duplicate(variable) |
@@ -105,9 +110,9 @@ class Logic2VampireLanguageMapper_TypeMapper { | |||
105 | val cst = support.toConstant(cstTerm) | 110 | val cst = support.toConstant(cstTerm) |
106 | trace.uniqueInstances.add(cst) | 111 | trace.uniqueInstances.add(cst) |
107 | 112 | ||
108 | val index = i | 113 | val index = i-globalCounter |
109 | val enumScope = createVLSFofFormula => [ | 114 | val enumScope = createVLSFofFormula => [ |
110 | it.name = support.toIDMultiple("enumScope", type.name.split(" ").get(0), | 115 | it.name = support.toIDMultiple("enumScope", type.lookup(trace.type2Predicate).constant.toString, |
111 | type.elements.get(index).name.split(" ").get(0)) | 116 | type.elements.get(index).name.split(" ").get(0)) |
112 | it.fofRole = "axiom" | 117 | it.fofRole = "axiom" |
113 | it.fofFormula = createVLSUniversalQuantifier => [ | 118 | it.fofFormula = createVLSUniversalQuantifier => [ |
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbin index 43e1e477..1ea7e30a 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbin index 4e6f6ca0..ee06cb39 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbin index 707a6089..648d9600 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapperTrace.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapperTrace.xtendbin index 3171324f..a02821a5 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapperTrace.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapperTrace.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbin index 301df7fa..b01f92a6 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ContainmentMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ContainmentMapper.xtendbin index 5e53ea26..7634af4b 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ContainmentMapper.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ContainmentMapper.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbin index b378ed09..4906adfc 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ScopeMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ScopeMapper.xtendbin index 605ac88c..e2c945e3 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ScopeMapper.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ScopeMapper.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbin index 0c289e29..f465506c 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbin index cb72fd90..e046604a 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Vampire2LogicMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Vampire2LogicMapper.xtendbin index cfe1e8cd..aff62dca 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Vampire2LogicMapper.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Vampire2LogicMapper.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireHandler.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireHandler.xtendbin index c2079147..7212cce7 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireHandler.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireHandler.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation.xtendbin index 3c70bc14..d23bacad 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtendbin index 9ef20b23..be78cace 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ContainmentMapper.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ContainmentMapper.java index 4cdc7e6a..9deab87f 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ContainmentMapper.java +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ContainmentMapper.java | |||
@@ -64,12 +64,19 @@ public class Logic2VampireLanguageMapper_ContainmentMapper { | |||
64 | Type _referred = ((ComplexTypeReference) _get).getReferred(); | 64 | Type _referred = ((ComplexTypeReference) _get).getReferred(); |
65 | Type pointingTo = ((Type) _referred); | 65 | Type pointingTo = ((Type) _referred); |
66 | containmentListCopy.remove(pointingTo); | 66 | containmentListCopy.remove(pointingTo); |
67 | EList<Type> _subtypes = pointingTo.getSubtypes(); | 67 | List<Type> allSubtypes = CollectionLiterals.<Type>newArrayList(); |
68 | for (final Type c : _subtypes) { | 68 | this.support.listSubtypes(pointingTo, allSubtypes); |
69 | for (final Type c : allSubtypes) { | ||
69 | containmentListCopy.remove(c); | 70 | containmentListCopy.remove(c); |
70 | } | 71 | } |
71 | } | 72 | } |
72 | } | 73 | } |
74 | for (final Type c : containmentListCopy) { | ||
75 | boolean _isIsAbstract = c.isIsAbstract(); | ||
76 | if (_isIsAbstract) { | ||
77 | containmentListCopy.remove(c); | ||
78 | } | ||
79 | } | ||
73 | final String topName = CollectionsUtil.<Type, VLSFunction>lookup(containmentListCopy.get(0), trace.type2Predicate).getConstant().toString(); | 80 | final String topName = CollectionsUtil.<Type, VLSFunction>lookup(containmentListCopy.get(0), trace.type2Predicate).getConstant().toString(); |
74 | final VLSFunction topTerm = this.support.duplicate(CollectionsUtil.<Type, VLSFunction>lookup(containmentListCopy.get(0), trace.type2Predicate)); | 81 | final VLSFunction topTerm = this.support.duplicate(CollectionsUtil.<Type, VLSFunction>lookup(containmentListCopy.get(0), trace.type2Predicate)); |
75 | VLSFofFormula _createVLSFofFormula = this.factory.createVLSFofFormula(); | 82 | VLSFofFormula _createVLSFofFormula = this.factory.createVLSFofFormula(); |
@@ -132,7 +139,7 @@ public class Logic2VampireLanguageMapper_ContainmentMapper { | |||
132 | final VLSFunction toFunc = CollectionsUtil.<Type, VLSFunction>lookup(toType, trace.type2Predicate); | 139 | final VLSFunction toFunc = CollectionsUtil.<Type, VLSFunction>lookup(toType, trace.type2Predicate); |
133 | this.addToMap(type2cont, toFunc, rel); | 140 | this.addToMap(type2cont, toFunc, rel); |
134 | EList<Type> _subtypes = toType.getSubtypes(); | 141 | EList<Type> _subtypes = toType.getSubtypes(); |
135 | for (final Type c : _subtypes) { | 142 | for (final Type c_1 : _subtypes) { |
136 | this.addToMap(type2cont, toFunc, rel); | 143 | this.addToMap(type2cont, toFunc, rel); |
137 | } | 144 | } |
138 | VLSFofFormula _createVLSFofFormula_1 = this.factory.createVLSFofFormula(); | 145 | VLSFofFormula _createVLSFofFormula_1 = this.factory.createVLSFofFormula(); |
@@ -184,7 +191,7 @@ public class Logic2VampireLanguageMapper_ContainmentMapper { | |||
184 | { | 191 | { |
185 | VLSFofFormula _createVLSFofFormula_1 = this.factory.createVLSFofFormula(); | 192 | VLSFofFormula _createVLSFofFormula_1 = this.factory.createVLSFofFormula(); |
186 | final Procedure1<VLSFofFormula> _function_4 = (VLSFofFormula it) -> { | 193 | final Procedure1<VLSFofFormula> _function_4 = (VLSFofFormula it) -> { |
187 | it.setName(this.support.toIDMultiple("containment", e.getKey().getConstant().toString())); | 194 | it.setName(this.support.toIDMultiple("containment_contained", e.getKey().getConstant().toString())); |
188 | it.setFofRole("axiom"); | 195 | it.setFofRole("axiom"); |
189 | VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); | 196 | VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); |
190 | final Procedure1<VLSUniversalQuantifier> _function_5 = (VLSUniversalQuantifier it_1) -> { | 197 | final Procedure1<VLSUniversalQuantifier> _function_5 = (VLSUniversalQuantifier it_1) -> { |
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.java index d5745333..c6565f6a 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.java +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.java | |||
@@ -3,7 +3,6 @@ package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder; | |||
3 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper; | 3 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper; |
4 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapperTrace; | 4 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapperTrace; |
5 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper_Support; | 5 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper_Support; |
6 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent; | ||
7 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula; | 6 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula; |
8 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction; | 7 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction; |
9 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSImplies; | 8 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSImplies; |
@@ -17,14 +16,10 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration; | |||
17 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDefinition; | 16 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDefinition; |
18 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type; | 17 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type; |
19 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeReference; | 18 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeReference; |
20 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable; | ||
21 | import hu.bme.mit.inf.dslreasoner.util.CollectionsUtil; | 19 | import hu.bme.mit.inf.dslreasoner.util.CollectionsUtil; |
22 | import java.util.ArrayList; | 20 | import java.util.ArrayList; |
23 | import java.util.Arrays; | 21 | import java.util.Arrays; |
24 | import java.util.Collection; | ||
25 | import java.util.HashMap; | ||
26 | import java.util.List; | 22 | import java.util.List; |
27 | import java.util.Map; | ||
28 | import org.eclipse.emf.common.util.EList; | 23 | import org.eclipse.emf.common.util.EList; |
29 | import org.eclipse.xtext.xbase.lib.Conversions; | 24 | import org.eclipse.xtext.xbase.lib.Conversions; |
30 | import org.eclipse.xtext.xbase.lib.ExclusiveRange; | 25 | import org.eclipse.xtext.xbase.lib.ExclusiveRange; |
@@ -64,10 +59,19 @@ public class Logic2VampireLanguageMapper_RelationMapper { | |||
64 | relVar2TypeDecComply.add(varTypeComply); | 59 | relVar2TypeDecComply.add(varTypeComply); |
65 | } | 60 | } |
66 | } | 61 | } |
62 | final String[] nameArray = r.getName().split(" "); | ||
63 | String relNameVar = ""; | ||
64 | int _length_1 = nameArray.length; | ||
65 | boolean _equals = (_length_1 == 3); | ||
66 | if (_equals) { | ||
67 | relNameVar = this.support.toIDMultiple(nameArray[0], nameArray[2]); | ||
68 | } else { | ||
69 | relNameVar = r.getName(); | ||
70 | } | ||
71 | final String relName = relNameVar; | ||
67 | VLSFofFormula _createVLSFofFormula = this.factory.createVLSFofFormula(); | 72 | VLSFofFormula _createVLSFofFormula = this.factory.createVLSFofFormula(); |
68 | final Procedure1<VLSFofFormula> _function = (VLSFofFormula it) -> { | 73 | final Procedure1<VLSFofFormula> _function = (VLSFofFormula it) -> { |
69 | final String[] nameArray = r.getName().split(" "); | 74 | it.setName(this.support.toIDMultiple("compliance", relName)); |
70 | it.setName(this.support.toIDMultiple("compliance", nameArray[0], nameArray[2])); | ||
71 | it.setFofRole("axiom"); | 75 | it.setFofRole("axiom"); |
72 | VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); | 76 | VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); |
73 | final Procedure1<VLSUniversalQuantifier> _function_1 = (VLSUniversalQuantifier it_1) -> { | 77 | final Procedure1<VLSUniversalQuantifier> _function_1 = (VLSUniversalQuantifier it_1) -> { |
@@ -80,7 +84,7 @@ public class Logic2VampireLanguageMapper_RelationMapper { | |||
80 | final Procedure1<VLSImplies> _function_2 = (VLSImplies it_2) -> { | 84 | final Procedure1<VLSImplies> _function_2 = (VLSImplies it_2) -> { |
81 | VLSFunction _createVLSFunction = this.factory.createVLSFunction(); | 85 | VLSFunction _createVLSFunction = this.factory.createVLSFunction(); |
82 | final Procedure1<VLSFunction> _function_3 = (VLSFunction it_3) -> { | 86 | final Procedure1<VLSFunction> _function_3 = (VLSFunction it_3) -> { |
83 | it_3.setConstant(this.support.toIDMultiple("r", nameArray[0], nameArray[2])); | 87 | it_3.setConstant(this.support.toIDMultiple("r", relName)); |
84 | for (final VLSVariable v_1 : relVar2VLS) { | 88 | for (final VLSVariable v_1 : relVar2VLS) { |
85 | EList<VLSTerm> _terms = it_3.getTerms(); | 89 | EList<VLSTerm> _terms = it_3.getTerms(); |
86 | VLSVariable _duplicate_1 = this.support.duplicate(v_1); | 90 | VLSVariable _duplicate_1 = this.support.duplicate(v_1); |
@@ -104,145 +108,6 @@ public class Logic2VampireLanguageMapper_RelationMapper { | |||
104 | } | 108 | } |
105 | 109 | ||
106 | public void _transformRelation(final RelationDefinition reldef, final Logic2VampireLanguageMapperTrace trace) { | 110 | public void _transformRelation(final RelationDefinition reldef, final Logic2VampireLanguageMapperTrace trace) { |
107 | final Map<Variable, VLSVariable> relationVar2VLS = new HashMap<Variable, VLSVariable>(); | ||
108 | final Map<Variable, VLSFunction> relationVar2TypeDecComply = new HashMap<Variable, VLSFunction>(); | ||
109 | final Map<Variable, VLSFunction> relationVar2TypeDecRes = new HashMap<Variable, VLSFunction>(); | ||
110 | final ArrayList<VLSTerm> typedefs = new ArrayList<VLSTerm>(); | ||
111 | EList<Variable> _variables = reldef.getVariables(); | ||
112 | for (final Variable variable : _variables) { | ||
113 | { | ||
114 | VLSVariable _createVLSVariable = this.factory.createVLSVariable(); | ||
115 | final Procedure1<VLSVariable> _function = (VLSVariable it) -> { | ||
116 | it.setName(this.support.toIDMultiple("V", variable.getName())); | ||
117 | }; | ||
118 | final VLSVariable v = ObjectExtensions.<VLSVariable>operator_doubleArrow(_createVLSVariable, _function); | ||
119 | relationVar2VLS.put(variable, v); | ||
120 | VLSFunction _createVLSFunction = this.factory.createVLSFunction(); | ||
121 | final Procedure1<VLSFunction> _function_1 = (VLSFunction it) -> { | ||
122 | TypeReference _range = variable.getRange(); | ||
123 | it.setConstant(this.support.toIDMultiple("t", ((ComplexTypeReference) _range).getReferred().getName())); | ||
124 | EList<VLSTerm> _terms = it.getTerms(); | ||
125 | VLSVariable _duplicate = this.support.duplicate(v); | ||
126 | _terms.add(_duplicate); | ||
127 | }; | ||
128 | final VLSFunction varTypeComply = ObjectExtensions.<VLSFunction>operator_doubleArrow(_createVLSFunction, _function_1); | ||
129 | relationVar2TypeDecComply.put(variable, varTypeComply); | ||
130 | relationVar2TypeDecRes.put(variable, this.support.duplicate(varTypeComply)); | ||
131 | } | ||
132 | } | ||
133 | final String[] nameArray = reldef.getName().split(" "); | ||
134 | VLSFofFormula _createVLSFofFormula = this.factory.createVLSFofFormula(); | ||
135 | final Procedure1<VLSFofFormula> _function = (VLSFofFormula it) -> { | ||
136 | int _length = nameArray.length; | ||
137 | int _minus = (_length - 2); | ||
138 | int _length_1 = nameArray.length; | ||
139 | int _minus_1 = (_length_1 - 1); | ||
140 | it.setName(this.support.toIDMultiple("compliance", nameArray[_minus], | ||
141 | nameArray[_minus_1])); | ||
142 | it.setFofRole("axiom"); | ||
143 | VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); | ||
144 | final Procedure1<VLSUniversalQuantifier> _function_1 = (VLSUniversalQuantifier it_1) -> { | ||
145 | EList<Variable> _variables_1 = reldef.getVariables(); | ||
146 | for (final Variable variable_1 : _variables_1) { | ||
147 | EList<VLSVariable> _variables_2 = it_1.getVariables(); | ||
148 | VLSVariable _duplicate = this.support.duplicate(CollectionsUtil.<Variable, VLSVariable>lookup(variable_1, relationVar2VLS)); | ||
149 | _variables_2.add(_duplicate); | ||
150 | } | ||
151 | VLSImplies _createVLSImplies = this.factory.createVLSImplies(); | ||
152 | final Procedure1<VLSImplies> _function_2 = (VLSImplies it_2) -> { | ||
153 | VLSFunction _createVLSFunction = this.factory.createVLSFunction(); | ||
154 | final Procedure1<VLSFunction> _function_3 = (VLSFunction it_3) -> { | ||
155 | it_3.setConstant(this.support.toIDMultiple("rel", reldef.getName())); | ||
156 | EList<Variable> _variables_3 = reldef.getVariables(); | ||
157 | for (final Variable variable_2 : _variables_3) { | ||
158 | { | ||
159 | VLSVariable _createVLSVariable = this.factory.createVLSVariable(); | ||
160 | final Procedure1<VLSVariable> _function_4 = (VLSVariable it_4) -> { | ||
161 | it_4.setName(CollectionsUtil.<Variable, VLSVariable>lookup(variable_2, relationVar2VLS).getName()); | ||
162 | }; | ||
163 | final VLSVariable v = ObjectExtensions.<VLSVariable>operator_doubleArrow(_createVLSVariable, _function_4); | ||
164 | EList<VLSTerm> _terms = it_3.getTerms(); | ||
165 | _terms.add(v); | ||
166 | } | ||
167 | } | ||
168 | }; | ||
169 | VLSFunction _doubleArrow = ObjectExtensions.<VLSFunction>operator_doubleArrow(_createVLSFunction, _function_3); | ||
170 | it_2.setLeft(_doubleArrow); | ||
171 | Collection<VLSFunction> _values = relationVar2TypeDecComply.values(); | ||
172 | ArrayList<VLSTerm> _arrayList = new ArrayList<VLSTerm>(_values); | ||
173 | it_2.setRight(this.support.unfoldAnd(_arrayList)); | ||
174 | }; | ||
175 | VLSImplies _doubleArrow = ObjectExtensions.<VLSImplies>operator_doubleArrow(_createVLSImplies, _function_2); | ||
176 | it_1.setOperand(_doubleArrow); | ||
177 | }; | ||
178 | VLSUniversalQuantifier _doubleArrow = ObjectExtensions.<VLSUniversalQuantifier>operator_doubleArrow(_createVLSUniversalQuantifier, _function_1); | ||
179 | it.setFofFormula(_doubleArrow); | ||
180 | }; | ||
181 | final VLSFofFormula comply = ObjectExtensions.<VLSFofFormula>operator_doubleArrow(_createVLSFofFormula, _function); | ||
182 | VLSFofFormula _createVLSFofFormula_1 = this.factory.createVLSFofFormula(); | ||
183 | final Procedure1<VLSFofFormula> _function_1 = (VLSFofFormula it) -> { | ||
184 | int _length = nameArray.length; | ||
185 | int _minus = (_length - 2); | ||
186 | int _length_1 = nameArray.length; | ||
187 | int _minus_1 = (_length_1 - 1); | ||
188 | it.setName(this.support.toIDMultiple("relation", nameArray[_minus], | ||
189 | nameArray[_minus_1])); | ||
190 | it.setFofRole("axiom"); | ||
191 | VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); | ||
192 | final Procedure1<VLSUniversalQuantifier> _function_2 = (VLSUniversalQuantifier it_1) -> { | ||
193 | EList<Variable> _variables_1 = reldef.getVariables(); | ||
194 | for (final Variable variable_1 : _variables_1) { | ||
195 | { | ||
196 | VLSVariable _createVLSVariable = this.factory.createVLSVariable(); | ||
197 | final Procedure1<VLSVariable> _function_3 = (VLSVariable it_2) -> { | ||
198 | it_2.setName(CollectionsUtil.<Variable, VLSVariable>lookup(variable_1, relationVar2VLS).getName()); | ||
199 | }; | ||
200 | final VLSVariable v = ObjectExtensions.<VLSVariable>operator_doubleArrow(_createVLSVariable, _function_3); | ||
201 | EList<VLSVariable> _variables_2 = it_1.getVariables(); | ||
202 | _variables_2.add(v); | ||
203 | } | ||
204 | } | ||
205 | VLSImplies _createVLSImplies = this.factory.createVLSImplies(); | ||
206 | final Procedure1<VLSImplies> _function_3 = (VLSImplies it_2) -> { | ||
207 | Collection<VLSFunction> _values = relationVar2TypeDecRes.values(); | ||
208 | ArrayList<VLSTerm> _arrayList = new ArrayList<VLSTerm>(_values); | ||
209 | it_2.setLeft(this.support.unfoldAnd(_arrayList)); | ||
210 | VLSEquivalent _createVLSEquivalent = this.factory.createVLSEquivalent(); | ||
211 | final Procedure1<VLSEquivalent> _function_4 = (VLSEquivalent it_3) -> { | ||
212 | VLSFunction _createVLSFunction = this.factory.createVLSFunction(); | ||
213 | final Procedure1<VLSFunction> _function_5 = (VLSFunction it_4) -> { | ||
214 | it_4.setConstant(this.support.toIDMultiple("rel", reldef.getName())); | ||
215 | EList<Variable> _variables_2 = reldef.getVariables(); | ||
216 | for (final Variable variable_2 : _variables_2) { | ||
217 | { | ||
218 | VLSVariable _createVLSVariable = this.factory.createVLSVariable(); | ||
219 | final Procedure1<VLSVariable> _function_6 = (VLSVariable it_5) -> { | ||
220 | it_5.setName(CollectionsUtil.<Variable, VLSVariable>lookup(variable_2, relationVar2VLS).getName()); | ||
221 | }; | ||
222 | final VLSVariable v = ObjectExtensions.<VLSVariable>operator_doubleArrow(_createVLSVariable, _function_6); | ||
223 | EList<VLSTerm> _terms = it_4.getTerms(); | ||
224 | _terms.add(v); | ||
225 | } | ||
226 | } | ||
227 | }; | ||
228 | VLSFunction _doubleArrow = ObjectExtensions.<VLSFunction>operator_doubleArrow(_createVLSFunction, _function_5); | ||
229 | it_3.setLeft(_doubleArrow); | ||
230 | it_3.setRight(this.base.transformTerm(reldef.getValue(), trace, relationVar2VLS)); | ||
231 | }; | ||
232 | VLSEquivalent _doubleArrow = ObjectExtensions.<VLSEquivalent>operator_doubleArrow(_createVLSEquivalent, _function_4); | ||
233 | it_2.setRight(_doubleArrow); | ||
234 | }; | ||
235 | VLSImplies _doubleArrow = ObjectExtensions.<VLSImplies>operator_doubleArrow(_createVLSImplies, _function_3); | ||
236 | it_1.setOperand(_doubleArrow); | ||
237 | }; | ||
238 | VLSUniversalQuantifier _doubleArrow = ObjectExtensions.<VLSUniversalQuantifier>operator_doubleArrow(_createVLSUniversalQuantifier, _function_2); | ||
239 | it.setFofFormula(_doubleArrow); | ||
240 | }; | ||
241 | final VLSFofFormula res = ObjectExtensions.<VLSFofFormula>operator_doubleArrow(_createVLSFofFormula_1, _function_1); | ||
242 | EList<VLSFofFormula> _formulas = trace.specification.getFormulas(); | ||
243 | _formulas.add(comply); | ||
244 | EList<VLSFofFormula> _formulas_1 = trace.specification.getFormulas(); | ||
245 | _formulas_1.add(res); | ||
246 | } | 111 | } |
247 | 112 | ||
248 | public void transformRelation(final Relation r, final Logic2VampireLanguageMapperTrace trace) { | 113 | public void transformRelation(final Relation r, final Logic2VampireLanguageMapperTrace trace) { |
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.java index 89633ca1..f1d73bec 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.java +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.java | |||
@@ -403,20 +403,14 @@ public class Logic2VampireLanguageMapper_Support { | |||
403 | return _xifexpression; | 403 | return _xifexpression; |
404 | } | 404 | } |
405 | 405 | ||
406 | protected List<Type> listSubtypes(final Type t) { | 406 | protected void listSubtypes(final Type t, final List<Type> allSubtypes) { |
407 | List<Type> allSubtypes = CollectionLiterals.<Type>newArrayList(); | 407 | EList<Type> _subtypes = t.getSubtypes(); |
408 | boolean _isEmpty = t.getSubtypes().isEmpty(); | 408 | for (final Type subt : _subtypes) { |
409 | boolean _not = (!_isEmpty); | 409 | { |
410 | if (_not) { | 410 | allSubtypes.add(subt); |
411 | EList<Type> _subtypes = t.getSubtypes(); | 411 | this.listSubtypes(subt, allSubtypes); |
412 | for (final Type subt : _subtypes) { | ||
413 | { | ||
414 | allSubtypes.add(subt); | ||
415 | allSubtypes = this.listSubtypes(subt); | ||
416 | } | ||
417 | } | 412 | } |
418 | } | 413 | } |
419 | return allSubtypes; | ||
420 | } | 414 | } |
421 | 415 | ||
422 | protected HashMap<Variable, VLSVariable> withAddition(final Map<Variable, VLSVariable> map1, final Map<Variable, VLSVariable> map2) { | 416 | protected HashMap<Variable, VLSVariable> withAddition(final Map<Variable, VLSVariable> map1, final Map<Variable, VLSVariable> map2) { |
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper.java index 9b8f049d..b9c1d28d 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper.java +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper.java | |||
@@ -78,16 +78,19 @@ public class Logic2VampireLanguageMapper_TypeMapper { | |||
78 | EList<DefinedElement> _elements = type_1.getElements(); | 78 | EList<DefinedElement> _elements = type_1.getElements(); |
79 | for (final DefinedElement e : _elements) { | 79 | for (final DefinedElement e : _elements) { |
80 | { | 80 | { |
81 | final String[] nameArray = e.getName().split(" "); | ||
82 | String relNameVar = ""; | ||
83 | int _length = nameArray.length; | ||
84 | boolean _equals = (_length == 3); | ||
85 | if (_equals) { | ||
86 | relNameVar = this.support.toIDMultiple(nameArray[0], nameArray[2]); | ||
87 | } else { | ||
88 | relNameVar = e.getName(); | ||
89 | } | ||
90 | final String relName = relNameVar; | ||
81 | VLSFunction _createVLSFunction = this.factory.createVLSFunction(); | 91 | VLSFunction _createVLSFunction = this.factory.createVLSFunction(); |
82 | final Procedure1<VLSFunction> _function_1 = (VLSFunction it) -> { | 92 | final Procedure1<VLSFunction> _function_1 = (VLSFunction it) -> { |
83 | final String[] splitName = e.getName().split(" "); | 93 | it.setConstant(this.support.toIDMultiple("e", relName)); |
84 | int _length = splitName.length; | ||
85 | boolean _greaterThan = (_length > 2); | ||
86 | if (_greaterThan) { | ||
87 | it.setConstant(this.support.toIDMultiple("e", splitName[0], splitName[2])); | ||
88 | } else { | ||
89 | it.setConstant(this.support.toIDMultiple("e", splitName[0])); | ||
90 | } | ||
91 | EList<VLSTerm> _terms = it.getTerms(); | 94 | EList<VLSTerm> _terms = it.getTerms(); |
92 | VLSVariable _duplicate = this.support.duplicate(variable); | 95 | VLSVariable _duplicate = this.support.duplicate(variable); |
93 | _terms.add(_duplicate); | 96 | _terms.add(_duplicate); |
@@ -123,7 +126,7 @@ public class Logic2VampireLanguageMapper_TypeMapper { | |||
123 | } | 126 | } |
124 | VLSFofFormula _createVLSFofFormula = this.factory.createVLSFofFormula(); | 127 | VLSFofFormula _createVLSFofFormula = this.factory.createVLSFofFormula(); |
125 | final Procedure1<VLSFofFormula> _function_1 = (VLSFofFormula it) -> { | 128 | final Procedure1<VLSFofFormula> _function_1 = (VLSFofFormula it) -> { |
126 | it.setName(this.support.toIDMultiple("typeDef", type_1.getName().split(" ")[0])); | 129 | it.setName(this.support.toIDMultiple("typeDef", CollectionsUtil.<TypeDefinition, VLSFunction>lookup(type_1, trace.type2Predicate).getConstant().toString())); |
127 | it.setFofRole("axiom"); | 130 | it.setFofRole("axiom"); |
128 | VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); | 131 | VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); |
129 | final Procedure1<VLSUniversalQuantifier> _function_2 = (VLSUniversalQuantifier it_1) -> { | 132 | final Procedure1<VLSUniversalQuantifier> _function_2 = (VLSUniversalQuantifier it_1) -> { |
@@ -160,10 +163,10 @@ public class Logic2VampireLanguageMapper_TypeMapper { | |||
160 | final VLSFunctionAsTerm cstTerm = ObjectExtensions.<VLSFunctionAsTerm>operator_doubleArrow(_createVLSFunctionAsTerm, _function_2); | 163 | final VLSFunctionAsTerm cstTerm = ObjectExtensions.<VLSFunctionAsTerm>operator_doubleArrow(_createVLSFunctionAsTerm, _function_2); |
161 | final VLSConstant cst = this.support.toConstant(cstTerm); | 164 | final VLSConstant cst = this.support.toConstant(cstTerm); |
162 | trace.uniqueInstances.add(cst); | 165 | trace.uniqueInstances.add(cst); |
163 | final int index = i; | 166 | final int index = (i - globalCounter); |
164 | VLSFofFormula _createVLSFofFormula_1 = this.factory.createVLSFofFormula(); | 167 | VLSFofFormula _createVLSFofFormula_1 = this.factory.createVLSFofFormula(); |
165 | final Procedure1<VLSFofFormula> _function_3 = (VLSFofFormula it) -> { | 168 | final Procedure1<VLSFofFormula> _function_3 = (VLSFofFormula it) -> { |
166 | it.setName(this.support.toIDMultiple("enumScope", type_1.getName().split(" ")[0], | 169 | it.setName(this.support.toIDMultiple("enumScope", CollectionsUtil.<TypeDefinition, VLSFunction>lookup(type_1, trace.type2Predicate).getConstant().toString(), |
167 | type_1.getElements().get(index).getName().split(" ")[0])); | 170 | type_1.getElements().get(index).getName().split(" ")[0])); |
168 | it.setFofRole("axiom"); | 171 | it.setFofRole("axiom"); |
169 | VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); | 172 | VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/metamodels/filesystem.aird b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/metamodels/filesystem.aird new file mode 100644 index 00000000..50f2ba11 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/metamodels/filesystem.aird | |||
@@ -0,0 +1,379 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style"> | ||
3 | <viewpoint:DAnalysis uid="_EK7A4F8ZEem0RrbB8IXw7Q" selectedViews="_ENX38F8ZEem0RrbB8IXw7Q _ENnIgF8ZEem0RrbB8IXw7Q _ENpkwF8ZEem0RrbB8IXw7Q _EN3AIF8ZEem0RrbB8IXw7Q" version="14.1.0.201810161215"> | ||
4 | <semanticResources>filesystem.ecore</semanticResources> | ||
5 | <semanticResources>filesystem.genmodel</semanticResources> | ||
6 | <ownedViews xmi:type="viewpoint:DView" uid="_ENX38F8ZEem0RrbB8IXw7Q"> | ||
7 | <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/> | ||
8 | <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_ErMcYF8ZEem0RrbB8IXw7Q" name="filesystem class diagram" repPath="#_Eq7WoF8ZEem0RrbB8IXw7Q"> | ||
9 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> | ||
10 | <target xmi:type="ecore:EPackage" href="filesystem.ecore#/"/> | ||
11 | </ownedRepresentationDescriptors> | ||
12 | </ownedViews> | ||
13 | <ownedViews xmi:type="viewpoint:DView" uid="_ENnIgF8ZEem0RrbB8IXw7Q"> | ||
14 | <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Review']"/> | ||
15 | </ownedViews> | ||
16 | <ownedViews xmi:type="viewpoint:DView" uid="_ENpkwF8ZEem0RrbB8IXw7Q"> | ||
17 | <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Archetype']"/> | ||
18 | </ownedViews> | ||
19 | <ownedViews xmi:type="viewpoint:DView" uid="_EN3AIF8ZEem0RrbB8IXw7Q"> | ||
20 | <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Generation']"/> | ||
21 | </ownedViews> | ||
22 | </viewpoint:DAnalysis> | ||
23 | <diagram:DSemanticDiagram uid="_Eq7WoF8ZEem0RrbB8IXw7Q" name="filesystem class diagram"> | ||
24 | <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_ErHj4F8ZEem0RrbB8IXw7Q" source="DANNOTATION_CUSTOMIZATION_KEY"> | ||
25 | <data xmi:type="diagram:ComputedStyleDescriptionRegistry" uid="_ErHj4V8ZEem0RrbB8IXw7Q"> | ||
26 | <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_GPxNgF8ZEem0RrbB8IXw7Q" sourceArrow="FillDiamond" routingStyle="manhattan"> | ||
27 | <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
28 | <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_GPxNgV8ZEem0RrbB8IXw7Q" showIcon="false" labelExpression="service:render"> | ||
29 | <labelFormat>bold</labelFormat> | ||
30 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
31 | </centerLabelStyleDescription> | ||
32 | <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_GPxNgl8ZEem0RrbB8IXw7Q" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel"> | ||
33 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> | ||
34 | </endLabelStyleDescription> | ||
35 | </computedStyleDescriptions> | ||
36 | <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_GPyboF8ZEem0RrbB8IXw7Q" routingStyle="manhattan"> | ||
37 | <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/> | ||
38 | <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_GPyboV8ZEem0RrbB8IXw7Q" showIcon="false" labelExpression="service:render"> | ||
39 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> | ||
40 | </centerLabelStyleDescription> | ||
41 | <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_GPybol8ZEem0RrbB8IXw7Q" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel"> | ||
42 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> | ||
43 | </endLabelStyleDescription> | ||
44 | </computedStyleDescriptions> | ||
45 | <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_GPzpwF8ZEem0RrbB8IXw7Q" sourceArrow="FillDiamond" routingStyle="manhattan"> | ||
46 | <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
47 | <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_GPzpwV8ZEem0RrbB8IXw7Q" showIcon="false" labelExpression="service:render"> | ||
48 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
49 | </centerLabelStyleDescription> | ||
50 | <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_GPzpwl8ZEem0RrbB8IXw7Q" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel"> | ||
51 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> | ||
52 | </endLabelStyleDescription> | ||
53 | </computedStyleDescriptions> | ||
54 | <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_GP3UIF8ZEem0RrbB8IXw7Q" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan"> | ||
55 | <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
56 | <beginLabelStyleDescription xmi:type="style:BeginLabelStyleDescription" xmi:id="_GP3UIV8ZEem0RrbB8IXw7Q" showIcon="false" labelExpression="service:renderEOpposite"> | ||
57 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
58 | </beginLabelStyleDescription> | ||
59 | <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_GP3UIl8ZEem0RrbB8IXw7Q" showIcon="false" labelExpression="service:render"> | ||
60 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
61 | </endLabelStyleDescription> | ||
62 | </computedStyleDescriptions> | ||
63 | </data> | ||
64 | </ownedAnnotationEntries> | ||
65 | <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_ErXbgF8ZEem0RrbB8IXw7Q" source="GMF_DIAGRAMS"> | ||
66 | <data xmi:type="notation:Diagram" xmi:id="_ErXbgV8ZEem0RrbB8IXw7Q" type="Sirius" element="_Eq7WoF8ZEem0RrbB8IXw7Q" measurementUnit="Pixel"> | ||
67 | <children xmi:type="notation:Node" xmi:id="_GP6XcF8ZEem0RrbB8IXw7Q" type="2003" element="_GPjyIF8ZEem0RrbB8IXw7Q"> | ||
68 | <children xmi:type="notation:Node" xmi:id="_GP6-gF8ZEem0RrbB8IXw7Q" type="5007"/> | ||
69 | <children xmi:type="notation:Node" xmi:id="_GP7lkF8ZEem0RrbB8IXw7Q" type="7004"> | ||
70 | <styles xmi:type="notation:SortingStyle" xmi:id="_GP7lkV8ZEem0RrbB8IXw7Q"/> | ||
71 | <styles xmi:type="notation:FilteringStyle" xmi:id="_GP7lkl8ZEem0RrbB8IXw7Q"/> | ||
72 | </children> | ||
73 | <styles xmi:type="notation:ShapeStyle" xmi:id="_GP6XcV8ZEem0RrbB8IXw7Q" fontName="Segoe UI" fontHeight="8"/> | ||
74 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GP6Xcl8ZEem0RrbB8IXw7Q" x="756" y="180"/> | ||
75 | </children> | ||
76 | <children xmi:type="notation:Node" xmi:id="_GP7lk18ZEem0RrbB8IXw7Q" type="2003" element="_GPm1cF8ZEem0RrbB8IXw7Q"> | ||
77 | <children xmi:type="notation:Node" xmi:id="_GP8MoF8ZEem0RrbB8IXw7Q" type="5007"/> | ||
78 | <children xmi:type="notation:Node" xmi:id="_GP8MoV8ZEem0RrbB8IXw7Q" type="7004"> | ||
79 | <styles xmi:type="notation:SortingStyle" xmi:id="_GP8Mol8ZEem0RrbB8IXw7Q"/> | ||
80 | <styles xmi:type="notation:FilteringStyle" xmi:id="_GP8Mo18ZEem0RrbB8IXw7Q"/> | ||
81 | </children> | ||
82 | <styles xmi:type="notation:ShapeStyle" xmi:id="_GP7llF8ZEem0RrbB8IXw7Q" fontName="Segoe UI" fontHeight="8" italic="true"/> | ||
83 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GP7llV8ZEem0RrbB8IXw7Q" x="1260" y="420"/> | ||
84 | </children> | ||
85 | <children xmi:type="notation:Node" xmi:id="_GP8MpF8ZEem0RrbB8IXw7Q" type="2003" element="_GPncgV8ZEem0RrbB8IXw7Q"> | ||
86 | <children xmi:type="notation:Node" xmi:id="_GP8Mp18ZEem0RrbB8IXw7Q" type="5007"/> | ||
87 | <children xmi:type="notation:Node" xmi:id="_GP8MqF8ZEem0RrbB8IXw7Q" type="7004"> | ||
88 | <styles xmi:type="notation:SortingStyle" xmi:id="_GP8MqV8ZEem0RrbB8IXw7Q"/> | ||
89 | <styles xmi:type="notation:FilteringStyle" xmi:id="_GP8Mql8ZEem0RrbB8IXw7Q"/> | ||
90 | </children> | ||
91 | <styles xmi:type="notation:ShapeStyle" xmi:id="_GP8MpV8ZEem0RrbB8IXw7Q" fontName="Segoe UI" fontHeight="8"/> | ||
92 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GP8Mpl8ZEem0RrbB8IXw7Q" x="768" y="648"/> | ||
93 | </children> | ||
94 | <children xmi:type="notation:Node" xmi:id="_GP8zsF8ZEem0RrbB8IXw7Q" type="2003" element="_GPoDkV8ZEem0RrbB8IXw7Q"> | ||
95 | <children xmi:type="notation:Node" xmi:id="_GP8zs18ZEem0RrbB8IXw7Q" type="5007"/> | ||
96 | <children xmi:type="notation:Node" xmi:id="_GP8ztF8ZEem0RrbB8IXw7Q" type="7004"> | ||
97 | <styles xmi:type="notation:SortingStyle" xmi:id="_GP8ztV8ZEem0RrbB8IXw7Q"/> | ||
98 | <styles xmi:type="notation:FilteringStyle" xmi:id="_GP8ztl8ZEem0RrbB8IXw7Q"/> | ||
99 | </children> | ||
100 | <styles xmi:type="notation:ShapeStyle" xmi:id="_GP8zsV8ZEem0RrbB8IXw7Q" fontName="Segoe UI" fontHeight="8"/> | ||
101 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GP8zsl8ZEem0RrbB8IXw7Q" x="1272" y="660"/> | ||
102 | </children> | ||
103 | <children xmi:type="notation:Node" xmi:id="_GP8zt18ZEem0RrbB8IXw7Q" type="2003" element="_GPoqoF8ZEem0RrbB8IXw7Q"> | ||
104 | <children xmi:type="notation:Node" xmi:id="_GP9awF8ZEem0RrbB8IXw7Q" type="5007"/> | ||
105 | <children xmi:type="notation:Node" xmi:id="_GP9awV8ZEem0RrbB8IXw7Q" type="7004"> | ||
106 | <styles xmi:type="notation:SortingStyle" xmi:id="_GP9awl8ZEem0RrbB8IXw7Q"/> | ||
107 | <styles xmi:type="notation:FilteringStyle" xmi:id="_GP9aw18ZEem0RrbB8IXw7Q"/> | ||
108 | </children> | ||
109 | <styles xmi:type="notation:ShapeStyle" xmi:id="_GP8zuF8ZEem0RrbB8IXw7Q" fontName="Segoe UI" fontHeight="8"/> | ||
110 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GP8zuV8ZEem0RrbB8IXw7Q" x="972" y="24"/> | ||
111 | </children> | ||
112 | <styles xmi:type="notation:DiagramStyle" xmi:id="_ErXbgl8ZEem0RrbB8IXw7Q"/> | ||
113 | <edges xmi:type="notation:Edge" xmi:id="_GP_3AF8ZEem0RrbB8IXw7Q" type="4001" element="_GPv_YF8ZEem0RrbB8IXw7Q" source="_GP6XcF8ZEem0RrbB8IXw7Q" target="_GP8MpF8ZEem0RrbB8IXw7Q"> | ||
114 | <children xmi:type="notation:Node" xmi:id="_GQBFIF8ZEem0RrbB8IXw7Q" type="6001"> | ||
115 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQBFIV8ZEem0RrbB8IXw7Q" x="-157" y="-35"/> | ||
116 | </children> | ||
117 | <children xmi:type="notation:Node" xmi:id="_GQCTQF8ZEem0RrbB8IXw7Q" type="6002"> | ||
118 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQCTQV8ZEem0RrbB8IXw7Q" x="-28"/> | ||
119 | </children> | ||
120 | <children xmi:type="notation:Node" xmi:id="_GQC6UF8ZEem0RrbB8IXw7Q" type="6003"> | ||
121 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQC6UV8ZEem0RrbB8IXw7Q" x="-205"/> | ||
122 | </children> | ||
123 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_GP_3AV8ZEem0RrbB8IXw7Q" routing="Rectilinear"/> | ||
124 | <styles xmi:type="notation:FontStyle" xmi:id="_GP_3Al8ZEem0RrbB8IXw7Q" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> | ||
125 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GP_3A18ZEem0RrbB8IXw7Q" points="[-23, 98, -35, -468]$[-23, 468, -35, -98]"/> | ||
126 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GQFWkF8ZEem0RrbB8IXw7Q" id="(0.5,0.0)"/> | ||
127 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GQFWkV8ZEem0RrbB8IXw7Q" id="(0.5,1.0)"/> | ||
128 | </edges> | ||
129 | <edges xmi:type="notation:Edge" xmi:id="_GQFWkl8ZEem0RrbB8IXw7Q" type="4001" element="_GPx0kF8ZEem0RrbB8IXw7Q" source="_GP6XcF8ZEem0RrbB8IXw7Q" target="_GP7lk18ZEem0RrbB8IXw7Q"> | ||
130 | <children xmi:type="notation:Node" xmi:id="_GQF9oF8ZEem0RrbB8IXw7Q" type="6001"> | ||
131 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQF9oV8ZEem0RrbB8IXw7Q" y="-10"/> | ||
132 | </children> | ||
133 | <children xmi:type="notation:Node" xmi:id="_GQF9ol8ZEem0RrbB8IXw7Q" type="6002"> | ||
134 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQF9o18ZEem0RrbB8IXw7Q" x="154" y="-10"/> | ||
135 | </children> | ||
136 | <children xmi:type="notation:Node" xmi:id="_GQF9pF8ZEem0RrbB8IXw7Q" type="6003"> | ||
137 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQF9pV8ZEem0RrbB8IXw7Q" x="10"/> | ||
138 | </children> | ||
139 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_GQFWk18ZEem0RrbB8IXw7Q" routing="Rectilinear"/> | ||
140 | <styles xmi:type="notation:FontStyle" xmi:id="_GQFWlF8ZEem0RrbB8IXw7Q" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> | ||
141 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GQFWlV8ZEem0RrbB8IXw7Q" points="[59, 70, -445, -268]$[469, 70, -35, -268]$[469, 240, -35, -98]"/> | ||
142 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GQGksF8ZEem0RrbB8IXw7Q" id="(0.5,0.0)"/> | ||
143 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GQGksV8ZEem0RrbB8IXw7Q" id="(0.5,1.0)"/> | ||
144 | </edges> | ||
145 | <edges xmi:type="notation:Edge" xmi:id="_GQGksl8ZEem0RrbB8IXw7Q" type="4001" element="_GPybqV8ZEem0RrbB8IXw7Q" source="_GP8zt18ZEem0RrbB8IXw7Q" target="_GP6XcF8ZEem0RrbB8IXw7Q"> | ||
146 | <children xmi:type="notation:Node" xmi:id="_GQGktl8ZEem0RrbB8IXw7Q" type="6001"> | ||
147 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQGkt18ZEem0RrbB8IXw7Q" y="10"/> | ||
148 | </children> | ||
149 | <children xmi:type="notation:Node" xmi:id="_GQHLwF8ZEem0RrbB8IXw7Q" type="6002"> | ||
150 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQHLwV8ZEem0RrbB8IXw7Q" x="51" y="146"/> | ||
151 | </children> | ||
152 | <children xmi:type="notation:Node" xmi:id="_GQHLwl8ZEem0RrbB8IXw7Q" type="6003"> | ||
153 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQHLw18ZEem0RrbB8IXw7Q" x="10"/> | ||
154 | </children> | ||
155 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_GQGks18ZEem0RrbB8IXw7Q" routing="Rectilinear"/> | ||
156 | <styles xmi:type="notation:FontStyle" xmi:id="_GQGktF8ZEem0RrbB8IXw7Q" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> | ||
157 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GQGktV8ZEem0RrbB8IXw7Q" points="[-59, 59, 157, -195]$[-215, 59, 1, -195]$[-215, 156, 1, -98]"/> | ||
158 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GQHLxF8ZEem0RrbB8IXw7Q" id="(0.5,0.0)"/> | ||
159 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GQHLxV8ZEem0RrbB8IXw7Q" id="(0.5,1.0)"/> | ||
160 | </edges> | ||
161 | <edges xmi:type="notation:Edge" xmi:id="_GQHLxl8ZEem0RrbB8IXw7Q" type="4001" element="_GPzCtl8ZEem0RrbB8IXw7Q" source="_GP8zt18ZEem0RrbB8IXw7Q" target="_GP7lk18ZEem0RrbB8IXw7Q"> | ||
162 | <children xmi:type="notation:Node" xmi:id="_GQHLyl8ZEem0RrbB8IXw7Q" type="6001"> | ||
163 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQHLy18ZEem0RrbB8IXw7Q" x="-57" y="25"/> | ||
164 | </children> | ||
165 | <children xmi:type="notation:Node" xmi:id="_GQHLzF8ZEem0RrbB8IXw7Q" type="6002"> | ||
166 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQHLzV8ZEem0RrbB8IXw7Q" x="67" y="10"/> | ||
167 | </children> | ||
168 | <children xmi:type="notation:Node" xmi:id="_GQHy0F8ZEem0RrbB8IXw7Q" type="6003"> | ||
169 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQHy0V8ZEem0RrbB8IXw7Q" x="-186" y="-10"/> | ||
170 | </children> | ||
171 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_GQHLx18ZEem0RrbB8IXw7Q" routing="Rectilinear"/> | ||
172 | <styles xmi:type="notation:FontStyle" xmi:id="_GQHLyF8ZEem0RrbB8IXw7Q" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> | ||
173 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GQHLyV8ZEem0RrbB8IXw7Q" points="[59, 60, -229, -434]$[301, 60, 13, -434]$[301, 396, 13, -98]"/> | ||
174 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GQHy0l8ZEem0RrbB8IXw7Q" id="(0.5,0.0)"/> | ||
175 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GQHy018ZEem0RrbB8IXw7Q" id="(0.5,1.0)"/> | ||
176 | </edges> | ||
177 | <edges xmi:type="notation:Edge" xmi:id="_GQHy1F8ZEem0RrbB8IXw7Q" type="4001" element="_GPzpyV8ZEem0RrbB8IXw7Q" source="_GP8zsF8ZEem0RrbB8IXw7Q" target="_GP7lk18ZEem0RrbB8IXw7Q"> | ||
178 | <children xmi:type="notation:Node" xmi:id="_GQHy2F8ZEem0RrbB8IXw7Q" type="6001"> | ||
179 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQHy2V8ZEem0RrbB8IXw7Q" y="-10"/> | ||
180 | </children> | ||
181 | <children xmi:type="notation:Node" xmi:id="_GQHy2l8ZEem0RrbB8IXw7Q" type="6002"> | ||
182 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQHy218ZEem0RrbB8IXw7Q" y="10"/> | ||
183 | </children> | ||
184 | <children xmi:type="notation:Node" xmi:id="_GQHy3F8ZEem0RrbB8IXw7Q" type="6003"> | ||
185 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQHy3V8ZEem0RrbB8IXw7Q" y="10"/> | ||
186 | </children> | ||
187 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_GQHy1V8ZEem0RrbB8IXw7Q" routing="Tree"/> | ||
188 | <styles xmi:type="notation:FontStyle" xmi:id="_GQHy1l8ZEem0RrbB8IXw7Q" fontName="Segoe UI" fontHeight="8"/> | ||
189 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GQHy118ZEem0RrbB8IXw7Q" points="[0, 0, 162, 60]$[-162, -60, 0, 0]"/> | ||
190 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GQIZ4F8ZEem0RrbB8IXw7Q" id="(0.5,0.0)"/> | ||
191 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GQIZ4V8ZEem0RrbB8IXw7Q" id="(0.5,1.0)"/> | ||
192 | </edges> | ||
193 | <edges xmi:type="notation:Edge" xmi:id="_GQIZ4l8ZEem0RrbB8IXw7Q" type="4001" element="_GP1e9l8ZEem0RrbB8IXw7Q" source="_GP8MpF8ZEem0RrbB8IXw7Q" target="_GP7lk18ZEem0RrbB8IXw7Q"> | ||
194 | <children xmi:type="notation:Node" xmi:id="_GQIZ5l8ZEem0RrbB8IXw7Q" type="6001"> | ||
195 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQIZ518ZEem0RrbB8IXw7Q" x="-113" y="-10"/> | ||
196 | </children> | ||
197 | <children xmi:type="notation:Node" xmi:id="_GQIZ6F8ZEem0RrbB8IXw7Q" type="6002"> | ||
198 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQIZ6V8ZEem0RrbB8IXw7Q" x="50" y="10"/> | ||
199 | </children> | ||
200 | <children xmi:type="notation:Node" xmi:id="_GQIZ6l8ZEem0RrbB8IXw7Q" type="6003"> | ||
201 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQIZ618ZEem0RrbB8IXw7Q" x="-105" y="-47"/> | ||
202 | </children> | ||
203 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_GQIZ418ZEem0RrbB8IXw7Q" routing="Tree"/> | ||
204 | <styles xmi:type="notation:FontStyle" xmi:id="_GQIZ5F8ZEem0RrbB8IXw7Q" fontName="Segoe UI" fontHeight="8"/> | ||
205 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GQIZ5V8ZEem0RrbB8IXw7Q" points="[0, 0, -492, 130]$[0, -48, -492, 82]$[491, -48, -1, 82]$[491, -130, -1, 0]"/> | ||
206 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GQJA8F8ZEem0RrbB8IXw7Q" id="(0.5,0.0)"/> | ||
207 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GQJA8V8ZEem0RrbB8IXw7Q" id="(0.5,1.0)"/> | ||
208 | </edges> | ||
209 | <edges xmi:type="notation:Edge" xmi:id="_GQJA8l8ZEem0RrbB8IXw7Q" type="4001" element="_GP2tEF8ZEem0RrbB8IXw7Q" source="_GP7lk18ZEem0RrbB8IXw7Q" target="_GP8MpF8ZEem0RrbB8IXw7Q"> | ||
210 | <children xmi:type="notation:Node" xmi:id="_GQJA9l8ZEem0RrbB8IXw7Q" type="6001"> | ||
211 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQJA918ZEem0RrbB8IXw7Q" x="-272" y="-10"/> | ||
212 | </children> | ||
213 | <children xmi:type="notation:Node" xmi:id="_GQJA-F8ZEem0RrbB8IXw7Q" type="6002"> | ||
214 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQJA-V8ZEem0RrbB8IXw7Q" x="4" y="-10"/> | ||
215 | </children> | ||
216 | <children xmi:type="notation:Node" xmi:id="_GQJA-l8ZEem0RrbB8IXw7Q" type="6003"> | ||
217 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQJA-18ZEem0RrbB8IXw7Q" x="-92" y="-291"/> | ||
218 | </children> | ||
219 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_GQJA818ZEem0RrbB8IXw7Q" routing="Rectilinear"/> | ||
220 | <styles xmi:type="notation:FontStyle" xmi:id="_GQJA9F8ZEem0RrbB8IXw7Q" fontName="Segoe UI" fontHeight="8"/> | ||
221 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GQJA9V8ZEem0RrbB8IXw7Q" points="[-59, -38, 433, -168]$[-467, -38, 25, -168]$[-467, 130, 25, 0]"/> | ||
222 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GQJA_F8ZEem0RrbB8IXw7Q" id="(0.5,1.0)"/> | ||
223 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GQJA_V8ZEem0RrbB8IXw7Q" id="(0.5,0.0)"/> | ||
224 | </edges> | ||
225 | </data> | ||
226 | </ownedAnnotationEntries> | ||
227 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_GPjyIF8ZEem0RrbB8IXw7Q" name="FileSystem" tooltipText="" outgoingEdges="_GPv_YF8ZEem0RrbB8IXw7Q _GPx0kF8ZEem0RrbB8IXw7Q" incomingEdges="_GPybqV8ZEem0RrbB8IXw7Q" width="12" height="10"> | ||
228 | <target xmi:type="ecore:EClass" href="filesystem.ecore#//FileSystem"/> | ||
229 | <semanticElements xmi:type="ecore:EClass" href="filesystem.ecore#//FileSystem"/> | ||
230 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
231 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
232 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
233 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_GPlAQF8ZEem0RrbB8IXw7Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
234 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
235 | </ownedStyle> | ||
236 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
237 | </ownedDiagramElements> | ||
238 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_GPm1cF8ZEem0RrbB8IXw7Q" name="FSObject" tooltipText="" outgoingEdges="_GP2tEF8ZEem0RrbB8IXw7Q" incomingEdges="_GPx0kF8ZEem0RrbB8IXw7Q _GPzCtl8ZEem0RrbB8IXw7Q _GPzpyV8ZEem0RrbB8IXw7Q _GP1e9l8ZEem0RrbB8IXw7Q" width="12" height="10"> | ||
239 | <target xmi:type="ecore:EClass" href="filesystem.ecore#//FSObject"/> | ||
240 | <semanticElements xmi:type="ecore:EClass" href="filesystem.ecore#//FSObject"/> | ||
241 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
242 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
243 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
244 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_GPm1cV8ZEem0RrbB8IXw7Q" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> | ||
245 | <labelFormat>italic</labelFormat> | ||
246 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/> | ||
247 | </ownedStyle> | ||
248 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
249 | </ownedDiagramElements> | ||
250 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_GPncgV8ZEem0RrbB8IXw7Q" name="Dir" tooltipText="" outgoingEdges="_GP1e9l8ZEem0RrbB8IXw7Q" incomingEdges="_GPv_YF8ZEem0RrbB8IXw7Q _GP2tEF8ZEem0RrbB8IXw7Q" width="12" height="10"> | ||
251 | <target xmi:type="ecore:EClass" href="filesystem.ecore#//Dir"/> | ||
252 | <semanticElements xmi:type="ecore:EClass" href="filesystem.ecore#//Dir"/> | ||
253 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
254 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
255 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
256 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_GPncgl8ZEem0RrbB8IXw7Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
257 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
258 | </ownedStyle> | ||
259 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
260 | </ownedDiagramElements> | ||
261 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_GPoDkV8ZEem0RrbB8IXw7Q" name="File" tooltipText="" outgoingEdges="_GPzpyV8ZEem0RrbB8IXw7Q" width="12" height="10"> | ||
262 | <target xmi:type="ecore:EClass" href="filesystem.ecore#//File"/> | ||
263 | <semanticElements xmi:type="ecore:EClass" href="filesystem.ecore#//File"/> | ||
264 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
265 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
266 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
267 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_GPoDkl8ZEem0RrbB8IXw7Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
268 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
269 | </ownedStyle> | ||
270 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
271 | </ownedDiagramElements> | ||
272 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_GPoqoF8ZEem0RrbB8IXw7Q" name="Model" tooltipText="" outgoingEdges="_GPybqV8ZEem0RrbB8IXw7Q _GPzCtl8ZEem0RrbB8IXw7Q" width="12" height="10"> | ||
273 | <target xmi:type="ecore:EClass" href="filesystem.ecore#//Model"/> | ||
274 | <semanticElements xmi:type="ecore:EClass" href="filesystem.ecore#//Model"/> | ||
275 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
276 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
277 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
278 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_GPoqoV8ZEem0RrbB8IXw7Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
279 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
280 | </ownedStyle> | ||
281 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
282 | </ownedDiagramElements> | ||
283 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_GPv_YF8ZEem0RrbB8IXw7Q" name="[1..1] root" sourceNode="_GPjyIF8ZEem0RrbB8IXw7Q" targetNode="_GPncgV8ZEem0RrbB8IXw7Q"> | ||
284 | <target xmi:type="ecore:EReference" href="filesystem.ecore#//FileSystem/root"/> | ||
285 | <semanticElements xmi:type="ecore:EReference" href="filesystem.ecore#//FileSystem/root"/> | ||
286 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_GPxNg18ZEem0RrbB8IXw7Q" description="_GPxNgF8ZEem0RrbB8IXw7Q" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> | ||
287 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_GPxNhV8ZEem0RrbB8IXw7Q" showIcon="false"> | ||
288 | <customFeatures>labelSize</customFeatures> | ||
289 | <labelFormat>bold</labelFormat> | ||
290 | </centerLabelStyle> | ||
291 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_GPxNhF8ZEem0RrbB8IXw7Q" showIcon="false" labelColor="39,76,114"> | ||
292 | <customFeatures>labelSize</customFeatures> | ||
293 | </endLabelStyle> | ||
294 | </ownedStyle> | ||
295 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | ||
296 | </ownedDiagramElements> | ||
297 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_GPx0kF8ZEem0RrbB8IXw7Q" name="[0..*] /live" sourceNode="_GPjyIF8ZEem0RrbB8IXw7Q" targetNode="_GPm1cF8ZEem0RrbB8IXw7Q"> | ||
298 | <target xmi:type="ecore:EReference" href="filesystem.ecore#//FileSystem/live"/> | ||
299 | <semanticElements xmi:type="ecore:EReference" href="filesystem.ecore#//FileSystem/live"/> | ||
300 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_GPybo18ZEem0RrbB8IXw7Q" description="_GPyboF8ZEem0RrbB8IXw7Q" routingStyle="manhattan" strokeColor="114,159,207"> | ||
301 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_GPybpV8ZEem0RrbB8IXw7Q" showIcon="false" labelColor="39,76,114"> | ||
302 | <customFeatures>labelSize</customFeatures> | ||
303 | </centerLabelStyle> | ||
304 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_GPybpF8ZEem0RrbB8IXw7Q" showIcon="false" labelColor="39,76,114"> | ||
305 | <customFeatures>labelSize</customFeatures> | ||
306 | </endLabelStyle> | ||
307 | </ownedStyle> | ||
308 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | ||
309 | </ownedDiagramElements> | ||
310 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_GPybqV8ZEem0RrbB8IXw7Q" name="[1..1] filesystems" sourceNode="_GPoqoF8ZEem0RrbB8IXw7Q" targetNode="_GPjyIF8ZEem0RrbB8IXw7Q"> | ||
311 | <target xmi:type="ecore:EReference" href="filesystem.ecore#//Model/filesystems"/> | ||
312 | <semanticElements xmi:type="ecore:EReference" href="filesystem.ecore#//Model/filesystems"/> | ||
313 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_GPzCsF8ZEem0RrbB8IXw7Q" description="_GPxNgF8ZEem0RrbB8IXw7Q" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> | ||
314 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_GPzCsl8ZEem0RrbB8IXw7Q" showIcon="false"> | ||
315 | <customFeatures>labelSize</customFeatures> | ||
316 | <labelFormat>bold</labelFormat> | ||
317 | </centerLabelStyle> | ||
318 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_GPzCsV8ZEem0RrbB8IXw7Q" showIcon="false" labelColor="39,76,114"> | ||
319 | <customFeatures>labelSize</customFeatures> | ||
320 | </endLabelStyle> | ||
321 | </ownedStyle> | ||
322 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | ||
323 | </ownedDiagramElements> | ||
324 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_GPzCtl8ZEem0RrbB8IXw7Q" name="[0..*] otherFSObjects" sourceNode="_GPoqoF8ZEem0RrbB8IXw7Q" targetNode="_GPm1cF8ZEem0RrbB8IXw7Q"> | ||
325 | <target xmi:type="ecore:EReference" href="filesystem.ecore#//Model/otherFSObjects"/> | ||
326 | <semanticElements xmi:type="ecore:EReference" href="filesystem.ecore#//Model/otherFSObjects"/> | ||
327 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_GPzpw18ZEem0RrbB8IXw7Q" description="_GPzpwF8ZEem0RrbB8IXw7Q" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> | ||
328 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_GPzpxV8ZEem0RrbB8IXw7Q" showIcon="false"> | ||
329 | <customFeatures>labelSize</customFeatures> | ||
330 | </centerLabelStyle> | ||
331 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_GPzpxF8ZEem0RrbB8IXw7Q" showIcon="false" labelColor="39,76,114"> | ||
332 | <customFeatures>labelSize</customFeatures> | ||
333 | </endLabelStyle> | ||
334 | </ownedStyle> | ||
335 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | ||
336 | </ownedDiagramElements> | ||
337 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_GPzpyV8ZEem0RrbB8IXw7Q" sourceNode="_GPoDkV8ZEem0RrbB8IXw7Q" targetNode="_GPm1cF8ZEem0RrbB8IXw7Q"> | ||
338 | <target xmi:type="ecore:EClass" href="filesystem.ecore#//File"/> | ||
339 | <semanticElements xmi:type="ecore:EClass" href="filesystem.ecore#//File"/> | ||
340 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_GP1e8F8ZEem0RrbB8IXw7Q" targetArrow="InputClosedArrow" routingStyle="tree"> | ||
341 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> | ||
342 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_GP1e8V8ZEem0RrbB8IXw7Q" showIcon="false"> | ||
343 | <labelFormat>italic</labelFormat> | ||
344 | </beginLabelStyle> | ||
345 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_GP1e8l8ZEem0RrbB8IXw7Q" showIcon="false"/> | ||
346 | </ownedStyle> | ||
347 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> | ||
348 | </ownedDiagramElements> | ||
349 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_GP1e9l8ZEem0RrbB8IXw7Q" sourceNode="_GPncgV8ZEem0RrbB8IXw7Q" targetNode="_GPm1cF8ZEem0RrbB8IXw7Q"> | ||
350 | <target xmi:type="ecore:EClass" href="filesystem.ecore#//Dir"/> | ||
351 | <semanticElements xmi:type="ecore:EClass" href="filesystem.ecore#//Dir"/> | ||
352 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_GP2GAF8ZEem0RrbB8IXw7Q" targetArrow="InputClosedArrow" routingStyle="tree"> | ||
353 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> | ||
354 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_GP2GAV8ZEem0RrbB8IXw7Q" showIcon="false"> | ||
355 | <labelFormat>italic</labelFormat> | ||
356 | </beginLabelStyle> | ||
357 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_GP2GAl8ZEem0RrbB8IXw7Q" showIcon="false"/> | ||
358 | </ownedStyle> | ||
359 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> | ||
360 | </ownedDiagramElements> | ||
361 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_GP2tEF8ZEem0RrbB8IXw7Q" sourceNode="_GPm1cF8ZEem0RrbB8IXw7Q" targetNode="_GPncgV8ZEem0RrbB8IXw7Q" beginLabel="[0..*] contents" endLabel="[0..1] parent"> | ||
362 | <target xmi:type="ecore:EReference" href="filesystem.ecore#//FSObject/parent"/> | ||
363 | <semanticElements xmi:type="ecore:EReference" href="filesystem.ecore#//Dir/contents"/> | ||
364 | <semanticElements xmi:type="ecore:EReference" href="filesystem.ecore#//FSObject/parent"/> | ||
365 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_GP3UI18ZEem0RrbB8IXw7Q" description="_GP3UIF8ZEem0RrbB8IXw7Q" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> | ||
366 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_GP3UJF8ZEem0RrbB8IXw7Q" showIcon="false"/> | ||
367 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_GP3UJV8ZEem0RrbB8IXw7Q" showIcon="false"/> | ||
368 | </ownedStyle> | ||
369 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/> | ||
370 | </ownedDiagramElements> | ||
371 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> | ||
372 | <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_Eq_BAF8ZEem0RrbB8IXw7Q"/> | ||
373 | <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> | ||
374 | <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/> | ||
375 | <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/> | ||
376 | <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Archetype']/@ownedRepresentationExtensions[name='Entities%20With%20Archetypes']/@layers[name='Archetypes']"/> | ||
377 | <target xmi:type="ecore:EPackage" href="filesystem.ecore#/"/> | ||
378 | </diagram:DSemanticDiagram> | ||
379 | </xmi:XMI> | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/metamodels/yakindu.aird b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/metamodels/yakindu.aird index ef3746fa..be45a301 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/metamodels/yakindu.aird +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/metamodels/yakindu.aird | |||
@@ -52,7 +52,7 @@ | |||
52 | <styles xmi:type="notation:FilteringStyle" xmi:id="_g_nnMlybEemc87q3iJlCgw"/> | 52 | <styles xmi:type="notation:FilteringStyle" xmi:id="_g_nnMlybEemc87q3iJlCgw"/> |
53 | </children> | 53 | </children> |
54 | <styles xmi:type="notation:ShapeStyle" xmi:id="_g_kj4VybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8" italic="true"/> | 54 | <styles xmi:type="notation:ShapeStyle" xmi:id="_g_kj4VybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8" italic="true"/> |
55 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_kj4lybEemc87q3iJlCgw" x="360" y="324"/> | 55 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_kj4lybEemc87q3iJlCgw" x="1113" y="420"/> |
56 | </children> | 56 | </children> |
57 | <children xmi:type="notation:Node" xmi:id="_g_o1UFybEemc87q3iJlCgw" type="2003" element="_g-SKcFybEemc87q3iJlCgw"> | 57 | <children xmi:type="notation:Node" xmi:id="_g_o1UFybEemc87q3iJlCgw" type="2003" element="_g-SKcFybEemc87q3iJlCgw"> |
58 | <children xmi:type="notation:Node" xmi:id="_g_pcYFybEemc87q3iJlCgw" type="5007"/> | 58 | <children xmi:type="notation:Node" xmi:id="_g_pcYFybEemc87q3iJlCgw" type="5007"/> |
@@ -61,7 +61,7 @@ | |||
61 | <styles xmi:type="notation:FilteringStyle" xmi:id="_g_pcY1ybEemc87q3iJlCgw"/> | 61 | <styles xmi:type="notation:FilteringStyle" xmi:id="_g_pcY1ybEemc87q3iJlCgw"/> |
62 | </children> | 62 | </children> |
63 | <styles xmi:type="notation:ShapeStyle" xmi:id="_g_o1UVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8" italic="true"/> | 63 | <styles xmi:type="notation:ShapeStyle" xmi:id="_g_o1UVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8" italic="true"/> |
64 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_o1UlybEemc87q3iJlCgw" x="648" y="156"/> | 64 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_o1UlybEemc87q3iJlCgw" x="984" y="204"/> |
65 | </children> | 65 | </children> |
66 | <children xmi:type="notation:Node" xmi:id="_g_pcZFybEemc87q3iJlCgw" type="2003" element="_g-T_oFybEemc87q3iJlCgw"> | 66 | <children xmi:type="notation:Node" xmi:id="_g_pcZFybEemc87q3iJlCgw" type="2003" element="_g-T_oFybEemc87q3iJlCgw"> |
67 | <children xmi:type="notation:Node" xmi:id="_g_pcZ1ybEemc87q3iJlCgw" type="5007"/> | 67 | <children xmi:type="notation:Node" xmi:id="_g_pcZ1ybEemc87q3iJlCgw" type="5007"/> |
@@ -70,7 +70,7 @@ | |||
70 | <styles xmi:type="notation:FilteringStyle" xmi:id="_g_pcalybEemc87q3iJlCgw"/> | 70 | <styles xmi:type="notation:FilteringStyle" xmi:id="_g_pcalybEemc87q3iJlCgw"/> |
71 | </children> | 71 | </children> |
72 | <styles xmi:type="notation:ShapeStyle" xmi:id="_g_pcZVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> | 72 | <styles xmi:type="notation:ShapeStyle" xmi:id="_g_pcZVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> |
73 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_pcZlybEemc87q3iJlCgw" x="648" y="324"/> | 73 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_pcZlybEemc87q3iJlCgw" x="948" y="36"/> |
74 | </children> | 74 | </children> |
75 | <children xmi:type="notation:Node" xmi:id="_g_qDcFybEemc87q3iJlCgw" type="2003" element="_g-Wb4FybEemc87q3iJlCgw"> | 75 | <children xmi:type="notation:Node" xmi:id="_g_qDcFybEemc87q3iJlCgw" type="2003" element="_g-Wb4FybEemc87q3iJlCgw"> |
76 | <children xmi:type="notation:Node" xmi:id="_g_qDc1ybEemc87q3iJlCgw" type="5007"/> | 76 | <children xmi:type="notation:Node" xmi:id="_g_qDc1ybEemc87q3iJlCgw" type="5007"/> |
@@ -79,7 +79,7 @@ | |||
79 | <styles xmi:type="notation:FilteringStyle" xmi:id="_g_qDdlybEemc87q3iJlCgw"/> | 79 | <styles xmi:type="notation:FilteringStyle" xmi:id="_g_qDdlybEemc87q3iJlCgw"/> |
80 | </children> | 80 | </children> |
81 | <styles xmi:type="notation:ShapeStyle" xmi:id="_g_qDcVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> | 81 | <styles xmi:type="notation:ShapeStyle" xmi:id="_g_qDcVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> |
82 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_qDclybEemc87q3iJlCgw" x="648"/> | 82 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_qDclybEemc87q3iJlCgw" x="1404" y="204"/> |
83 | </children> | 83 | </children> |
84 | <children xmi:type="notation:Node" xmi:id="_g_qqgFybEemc87q3iJlCgw" type="2003" element="_g-YREFybEemc87q3iJlCgw"> | 84 | <children xmi:type="notation:Node" xmi:id="_g_qqgFybEemc87q3iJlCgw" type="2003" element="_g-YREFybEemc87q3iJlCgw"> |
85 | <children xmi:type="notation:Node" xmi:id="_g_qqg1ybEemc87q3iJlCgw" type="5007"/> | 85 | <children xmi:type="notation:Node" xmi:id="_g_qqg1ybEemc87q3iJlCgw" type="5007"/> |
@@ -88,7 +88,7 @@ | |||
88 | <styles xmi:type="notation:FilteringStyle" xmi:id="_g_qqhlybEemc87q3iJlCgw"/> | 88 | <styles xmi:type="notation:FilteringStyle" xmi:id="_g_qqhlybEemc87q3iJlCgw"/> |
89 | </children> | 89 | </children> |
90 | <styles xmi:type="notation:ShapeStyle" xmi:id="_g_qqgVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> | 90 | <styles xmi:type="notation:ShapeStyle" xmi:id="_g_qqgVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> |
91 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_qqglybEemc87q3iJlCgw" x="648" y="636"/> | 91 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_qqglybEemc87q3iJlCgw" x="300" y="180"/> |
92 | </children> | 92 | </children> |
93 | <children xmi:type="notation:Node" xmi:id="_g_qqh1ybEemc87q3iJlCgw" type="2003" element="_g-aGQFybEemc87q3iJlCgw"> | 93 | <children xmi:type="notation:Node" xmi:id="_g_qqh1ybEemc87q3iJlCgw" type="2003" element="_g-aGQFybEemc87q3iJlCgw"> |
94 | <children xmi:type="notation:Node" xmi:id="_g_rRkFybEemc87q3iJlCgw" type="5007"/> | 94 | <children xmi:type="notation:Node" xmi:id="_g_rRkFybEemc87q3iJlCgw" type="5007"/> |
@@ -97,7 +97,7 @@ | |||
97 | <styles xmi:type="notation:FilteringStyle" xmi:id="_g_rRk1ybEemc87q3iJlCgw"/> | 97 | <styles xmi:type="notation:FilteringStyle" xmi:id="_g_rRk1ybEemc87q3iJlCgw"/> |
98 | </children> | 98 | </children> |
99 | <styles xmi:type="notation:ShapeStyle" xmi:id="_g_qqiFybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> | 99 | <styles xmi:type="notation:ShapeStyle" xmi:id="_g_qqiFybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> |
100 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_qqiVybEemc87q3iJlCgw" x="180" y="480"/> | 100 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_qqiVybEemc87q3iJlCgw" x="1032" y="600"/> |
101 | </children> | 101 | </children> |
102 | <children xmi:type="notation:Node" xmi:id="_g_rRlFybEemc87q3iJlCgw" type="2003" element="_g-b7cFybEemc87q3iJlCgw"> | 102 | <children xmi:type="notation:Node" xmi:id="_g_rRlFybEemc87q3iJlCgw" type="2003" element="_g-b7cFybEemc87q3iJlCgw"> |
103 | <children xmi:type="notation:Node" xmi:id="_g_r4oFybEemc87q3iJlCgw" type="5007"/> | 103 | <children xmi:type="notation:Node" xmi:id="_g_r4oFybEemc87q3iJlCgw" type="5007"/> |
@@ -106,7 +106,7 @@ | |||
106 | <styles xmi:type="notation:FilteringStyle" xmi:id="_g_r4o1ybEemc87q3iJlCgw"/> | 106 | <styles xmi:type="notation:FilteringStyle" xmi:id="_g_r4o1ybEemc87q3iJlCgw"/> |
107 | </children> | 107 | </children> |
108 | <styles xmi:type="notation:ShapeStyle" xmi:id="_g_rRlVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> | 108 | <styles xmi:type="notation:ShapeStyle" xmi:id="_g_rRlVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> |
109 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_rRllybEemc87q3iJlCgw" y="480"/> | 109 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_rRllybEemc87q3iJlCgw" x="852" y="600"/> |
110 | </children> | 110 | </children> |
111 | <children xmi:type="notation:Node" xmi:id="_g_sfsFybEemc87q3iJlCgw" type="2003" element="_g-dJkVybEemc87q3iJlCgw"> | 111 | <children xmi:type="notation:Node" xmi:id="_g_sfsFybEemc87q3iJlCgw" type="2003" element="_g-dJkVybEemc87q3iJlCgw"> |
112 | <children xmi:type="notation:Node" xmi:id="_g_sfs1ybEemc87q3iJlCgw" type="5007"/> | 112 | <children xmi:type="notation:Node" xmi:id="_g_sfs1ybEemc87q3iJlCgw" type="5007"/> |
@@ -115,7 +115,7 @@ | |||
115 | <styles xmi:type="notation:FilteringStyle" xmi:id="_g_sftlybEemc87q3iJlCgw"/> | 115 | <styles xmi:type="notation:FilteringStyle" xmi:id="_g_sftlybEemc87q3iJlCgw"/> |
116 | </children> | 116 | </children> |
117 | <styles xmi:type="notation:ShapeStyle" xmi:id="_g_sfsVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> | 117 | <styles xmi:type="notation:ShapeStyle" xmi:id="_g_sfsVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> |
118 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_sfslybEemc87q3iJlCgw" x="828" y="636"/> | 118 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_sfslybEemc87q3iJlCgw" x="504" y="492"/> |
119 | </children> | 119 | </children> |
120 | <children xmi:type="notation:Node" xmi:id="_g_tGwFybEemc87q3iJlCgw" type="2003" element="_g-fl0FybEemc87q3iJlCgw"> | 120 | <children xmi:type="notation:Node" xmi:id="_g_tGwFybEemc87q3iJlCgw" type="2003" element="_g-fl0FybEemc87q3iJlCgw"> |
121 | <children xmi:type="notation:Node" xmi:id="_g_uU4FybEemc87q3iJlCgw" type="5007"/> | 121 | <children xmi:type="notation:Node" xmi:id="_g_uU4FybEemc87q3iJlCgw" type="5007"/> |
@@ -124,7 +124,7 @@ | |||
124 | <styles xmi:type="notation:FilteringStyle" xmi:id="_g_u78lybEemc87q3iJlCgw"/> | 124 | <styles xmi:type="notation:FilteringStyle" xmi:id="_g_u78lybEemc87q3iJlCgw"/> |
125 | </children> | 125 | </children> |
126 | <styles xmi:type="notation:ShapeStyle" xmi:id="_g_tGwVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8" italic="true"/> | 126 | <styles xmi:type="notation:ShapeStyle" xmi:id="_g_tGwVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8" italic="true"/> |
127 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_tGwlybEemc87q3iJlCgw" x="828" y="324"/> | 127 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_tGwlybEemc87q3iJlCgw" x="672" y="348"/> |
128 | </children> | 128 | </children> |
129 | <children xmi:type="notation:Node" xmi:id="_g_u781ybEemc87q3iJlCgw" type="2003" element="_g-hbAVybEemc87q3iJlCgw"> | 129 | <children xmi:type="notation:Node" xmi:id="_g_u781ybEemc87q3iJlCgw" type="2003" element="_g-hbAVybEemc87q3iJlCgw"> |
130 | <children xmi:type="notation:Node" xmi:id="_g_vjAFybEemc87q3iJlCgw" type="5007"/> | 130 | <children xmi:type="notation:Node" xmi:id="_g_vjAFybEemc87q3iJlCgw" type="5007"/> |
@@ -133,7 +133,7 @@ | |||
133 | <styles xmi:type="notation:FilteringStyle" xmi:id="_g_vjA1ybEemc87q3iJlCgw"/> | 133 | <styles xmi:type="notation:FilteringStyle" xmi:id="_g_vjA1ybEemc87q3iJlCgw"/> |
134 | </children> | 134 | </children> |
135 | <styles xmi:type="notation:ShapeStyle" xmi:id="_g_u79FybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8" italic="true"/> | 135 | <styles xmi:type="notation:ShapeStyle" xmi:id="_g_u79FybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8" italic="true"/> |
136 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_u79VybEemc87q3iJlCgw" x="720" y="480"/> | 136 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_u79VybEemc87q3iJlCgw" x="648" y="24"/> |
137 | </children> | 137 | </children> |
138 | <children xmi:type="notation:Node" xmi:id="_g_vjBFybEemc87q3iJlCgw" type="2003" element="_g-jQMFybEemc87q3iJlCgw"> | 138 | <children xmi:type="notation:Node" xmi:id="_g_vjBFybEemc87q3iJlCgw" type="2003" element="_g-jQMFybEemc87q3iJlCgw"> |
139 | <children xmi:type="notation:Node" xmi:id="_g_wKEFybEemc87q3iJlCgw" type="5007"/> | 139 | <children xmi:type="notation:Node" xmi:id="_g_wKEFybEemc87q3iJlCgw" type="5007"/> |
@@ -142,7 +142,7 @@ | |||
142 | <styles xmi:type="notation:FilteringStyle" xmi:id="_g_wKE1ybEemc87q3iJlCgw"/> | 142 | <styles xmi:type="notation:FilteringStyle" xmi:id="_g_wKE1ybEemc87q3iJlCgw"/> |
143 | </children> | 143 | </children> |
144 | <styles xmi:type="notation:ShapeStyle" xmi:id="_g_vjBVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> | 144 | <styles xmi:type="notation:ShapeStyle" xmi:id="_g_vjBVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> |
145 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_vjBlybEemc87q3iJlCgw" x="360" y="480"/> | 145 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_vjBlybEemc87q3iJlCgw" x="1212" y="600"/> |
146 | </children> | 146 | </children> |
147 | <children xmi:type="notation:Node" xmi:id="_g_wKFFybEemc87q3iJlCgw" type="2003" element="_g-lscFybEemc87q3iJlCgw"> | 147 | <children xmi:type="notation:Node" xmi:id="_g_wKFFybEemc87q3iJlCgw" type="2003" element="_g-lscFybEemc87q3iJlCgw"> |
148 | <children xmi:type="notation:Node" xmi:id="_g_wKF1ybEemc87q3iJlCgw" type="5007"/> | 148 | <children xmi:type="notation:Node" xmi:id="_g_wKF1ybEemc87q3iJlCgw" type="5007"/> |
@@ -151,7 +151,7 @@ | |||
151 | <styles xmi:type="notation:FilteringStyle" xmi:id="_g_wKGlybEemc87q3iJlCgw"/> | 151 | <styles xmi:type="notation:FilteringStyle" xmi:id="_g_wKGlybEemc87q3iJlCgw"/> |
152 | </children> | 152 | </children> |
153 | <styles xmi:type="notation:ShapeStyle" xmi:id="_g_wKFVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> | 153 | <styles xmi:type="notation:ShapeStyle" xmi:id="_g_wKFVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> |
154 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_wKFlybEemc87q3iJlCgw" x="540" y="480"/> | 154 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_wKFlybEemc87q3iJlCgw" x="1392" y="600"/> |
155 | </children> | 155 | </children> |
156 | <children xmi:type="notation:Node" xmi:id="_g_wxIFybEemc87q3iJlCgw" type="2003" element="_g-m6kFybEemc87q3iJlCgw"> | 156 | <children xmi:type="notation:Node" xmi:id="_g_wxIFybEemc87q3iJlCgw" type="2003" element="_g-m6kFybEemc87q3iJlCgw"> |
157 | <children xmi:type="notation:Node" xmi:id="_g_wxI1ybEemc87q3iJlCgw" type="5007"/> | 157 | <children xmi:type="notation:Node" xmi:id="_g_wxI1ybEemc87q3iJlCgw" type="5007"/> |
@@ -160,22 +160,22 @@ | |||
160 | <styles xmi:type="notation:FilteringStyle" xmi:id="_g_wxJlybEemc87q3iJlCgw"/> | 160 | <styles xmi:type="notation:FilteringStyle" xmi:id="_g_wxJlybEemc87q3iJlCgw"/> |
161 | </children> | 161 | </children> |
162 | <styles xmi:type="notation:ShapeStyle" xmi:id="_g_wxIVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> | 162 | <styles xmi:type="notation:ShapeStyle" xmi:id="_g_wxIVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> |
163 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_wxIlybEemc87q3iJlCgw" x="936" y="480"/> | 163 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_wxIlybEemc87q3iJlCgw" x="756" y="480"/> |
164 | </children> | 164 | </children> |
165 | <styles xmi:type="notation:DiagramStyle" xmi:id="_gH58ElybEemc87q3iJlCgw"/> | 165 | <styles xmi:type="notation:DiagramStyle" xmi:id="_gH58ElybEemc87q3iJlCgw"/> |
166 | <edges xmi:type="notation:Edge" xmi:id="_g_z0cFybEemc87q3iJlCgw" type="4001" element="_g_JtIFybEemc87q3iJlCgw" source="_g_pcZFybEemc87q3iJlCgw" target="_g_o1UFybEemc87q3iJlCgw"> | 166 | <edges xmi:type="notation:Edge" xmi:id="_g_z0cFybEemc87q3iJlCgw" type="4001" element="_g_JtIFybEemc87q3iJlCgw" source="_g_pcZFybEemc87q3iJlCgw" target="_g_o1UFybEemc87q3iJlCgw"> |
167 | <children xmi:type="notation:Node" xmi:id="_g_4s8FybEemc87q3iJlCgw" type="6001"> | 167 | <children xmi:type="notation:Node" xmi:id="_g_4s8FybEemc87q3iJlCgw" type="6001"> |
168 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_4s8VybEemc87q3iJlCgw" x="19" y="47"/> | 168 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_4s8VybEemc87q3iJlCgw" x="-10"/> |
169 | </children> | 169 | </children> |
170 | <children xmi:type="notation:Node" xmi:id="_g_4s8lybEemc87q3iJlCgw" type="6002"> | 170 | <children xmi:type="notation:Node" xmi:id="_g_4s8lybEemc87q3iJlCgw" type="6002"> |
171 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_4s81ybEemc87q3iJlCgw" y="10"/> | 171 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_4s81ybEemc87q3iJlCgw" x="60"/> |
172 | </children> | 172 | </children> |
173 | <children xmi:type="notation:Node" xmi:id="_g_4s9FybEemc87q3iJlCgw" type="6003"> | 173 | <children xmi:type="notation:Node" xmi:id="_g_4s9FybEemc87q3iJlCgw" type="6003"> |
174 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_4s9VybEemc87q3iJlCgw" y="10"/> | 174 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_4s9VybEemc87q3iJlCgw" x="10"/> |
175 | </children> | 175 | </children> |
176 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_g_z0cVybEemc87q3iJlCgw" routing="Rectilinear"/> | 176 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_g_z0cVybEemc87q3iJlCgw" routing="Rectilinear"/> |
177 | <styles xmi:type="notation:FontStyle" xmi:id="_g_z0clybEemc87q3iJlCgw" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> | 177 | <styles xmi:type="notation:FontStyle" xmi:id="_g_z0clybEemc87q3iJlCgw" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> |
178 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_g_z0c1ybEemc87q3iJlCgw" points="[25, 0, 25, 70]$[25, -70, 25, 0]"/> | 178 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_g_z0c1ybEemc87q3iJlCgw" points="[25, 98, -11, -168]$[25, 168, -11, -98]"/> |
179 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAETIFybEemc87q3iJlCgw" id="(0.5,0.0)"/> | 179 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAETIFybEemc87q3iJlCgw" id="(0.5,0.0)"/> |
180 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAETIVybEemc87q3iJlCgw" id="(0.5,1.0)"/> | 180 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAETIVybEemc87q3iJlCgw" id="(0.5,1.0)"/> |
181 | </edges> | 181 | </edges> |
@@ -191,7 +191,7 @@ | |||
191 | </children> | 191 | </children> |
192 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAETI1ybEemc87q3iJlCgw" routing="Rectilinear"/> | 192 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAETI1ybEemc87q3iJlCgw" routing="Rectilinear"/> |
193 | <styles xmi:type="notation:FontStyle" xmi:id="_hAETJFybEemc87q3iJlCgw" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> | 193 | <styles xmi:type="notation:FontStyle" xmi:id="_hAETJFybEemc87q3iJlCgw" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> |
194 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAETJVybEemc87q3iJlCgw" points="[0, 0, 75, 60]$[-75, -60, 0, 0]"/> | 194 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAETJVybEemc87q3iJlCgw" points="[59, 72, -241, -38]$[241, 72, -59, -38]"/> |
195 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAFhRFybEemc87q3iJlCgw" id="(0.5,0.0)"/> | 195 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAFhRFybEemc87q3iJlCgw" id="(0.5,0.0)"/> |
196 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAFhRVybEemc87q3iJlCgw" id="(0.5,1.0)"/> | 196 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAFhRVybEemc87q3iJlCgw" id="(0.5,1.0)"/> |
197 | </edges> | 197 | </edges> |
@@ -207,7 +207,7 @@ | |||
207 | </children> | 207 | </children> |
208 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAFhR1ybEemc87q3iJlCgw" routing="Tree"/> | 208 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAFhR1ybEemc87q3iJlCgw" routing="Tree"/> |
209 | <styles xmi:type="notation:FontStyle" xmi:id="_hAFhSFybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> | 209 | <styles xmi:type="notation:FontStyle" xmi:id="_hAFhSFybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> |
210 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAFhSVybEemc87q3iJlCgw" points="[0, 0, 180, 60]$[-180, -60, 0, 0]"/> | 210 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAFhSVybEemc87q3iJlCgw" points="[0, 0, -312, 46]$[0, -12, -312, 34]$[275, -12, -37, 34]$[275, -46, -37, 0]"/> |
211 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAGIVlybEemc87q3iJlCgw" id="(0.5,0.0)"/> | 211 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAGIVlybEemc87q3iJlCgw" id="(0.5,0.0)"/> |
212 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAGIV1ybEemc87q3iJlCgw" id="(0.5,1.0)"/> | 212 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAGIV1ybEemc87q3iJlCgw" id="(0.5,1.0)"/> |
213 | </edges> | 213 | </edges> |
@@ -223,7 +223,7 @@ | |||
223 | </children> | 223 | </children> |
224 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAGIWVybEemc87q3iJlCgw" routing="Tree"/> | 224 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAGIWVybEemc87q3iJlCgw" routing="Tree"/> |
225 | <styles xmi:type="notation:FontStyle" xmi:id="_hAGIWlybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> | 225 | <styles xmi:type="notation:FontStyle" xmi:id="_hAGIWlybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> |
226 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAGIW1ybEemc87q3iJlCgw" points="[0, 0, 0, 60]$[0, -60, 0, 0]"/> | 226 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAGIW1ybEemc87q3iJlCgw" points="[0, 0, 99, 82]$[0, -36, 99, 46]$[-100, -36, -1, 46]$[-100, -82, -1, 0]"/> |
227 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAHWcFybEemc87q3iJlCgw" id="(0.5,0.0)"/> | 227 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAHWcFybEemc87q3iJlCgw" id="(0.5,0.0)"/> |
228 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAHWcVybEemc87q3iJlCgw" id="(0.5,1.0)"/> | 228 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAHWcVybEemc87q3iJlCgw" id="(0.5,1.0)"/> |
229 | </edges> | 229 | </edges> |
@@ -239,7 +239,7 @@ | |||
239 | </children> | 239 | </children> |
240 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAHWc1ybEemc87q3iJlCgw" routing="Tree"/> | 240 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAHWc1ybEemc87q3iJlCgw" routing="Tree"/> |
241 | <styles xmi:type="notation:FontStyle" xmi:id="_hAHWdFybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> | 241 | <styles xmi:type="notation:FontStyle" xmi:id="_hAHWdFybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> |
242 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAHWdVybEemc87q3iJlCgw" points="[0, 0, 180, 60]$[-180, -60, 0, 0]"/> | 242 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAHWdVybEemc87q3iJlCgw" points="[0, 0, 279, 82]$[0, -36, 279, 46]$[-280, -36, -1, 46]$[-280, -82, -1, 0]"/> |
243 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAH9hlybEemc87q3iJlCgw" id="(0.5,0.0)"/> | 243 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAH9hlybEemc87q3iJlCgw" id="(0.5,0.0)"/> |
244 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAH9h1ybEemc87q3iJlCgw" id="(0.5,1.0)"/> | 244 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAH9h1ybEemc87q3iJlCgw" id="(0.5,1.0)"/> |
245 | </edges> | 245 | </edges> |
@@ -255,7 +255,7 @@ | |||
255 | </children> | 255 | </children> |
256 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAIkkVybEemc87q3iJlCgw" routing="Tree"/> | 256 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAIkkVybEemc87q3iJlCgw" routing="Tree"/> |
257 | <styles xmi:type="notation:FontStyle" xmi:id="_hAIkklybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> | 257 | <styles xmi:type="notation:FontStyle" xmi:id="_hAIkklybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> |
258 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAIkk1ybEemc87q3iJlCgw" points="[0, 0, 106, 60]$[-106, -60, 0, 0]"/> | 258 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAIkk1ybEemc87q3iJlCgw" points="[0, 0, 84, 34]$[0, -12, 84, 22]$[-99, -12, -15, 22]$[-99, -34, -15, 0]"/> |
259 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAJLoFybEemc87q3iJlCgw" id="(0.5,0.0)"/> | 259 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAJLoFybEemc87q3iJlCgw" id="(0.5,0.0)"/> |
260 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAJLoVybEemc87q3iJlCgw" id="(0.5,1.0)"/> | 260 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAJLoVybEemc87q3iJlCgw" id="(0.5,1.0)"/> |
261 | </edges> | 261 | </edges> |
@@ -271,7 +271,7 @@ | |||
271 | </children> | 271 | </children> |
272 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAJLo1ybEemc87q3iJlCgw" routing="Tree"/> | 272 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAJLo1ybEemc87q3iJlCgw" routing="Tree"/> |
273 | <styles xmi:type="notation:FontStyle" xmi:id="_hAJLpFybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> | 273 | <styles xmi:type="notation:FontStyle" xmi:id="_hAJLpFybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> |
274 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAJLpVybEemc87q3iJlCgw" points="[0, 0, -180, 60]$[180, -60, 0, 0]"/> | 274 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAJLpVybEemc87q3iJlCgw" points="[0, 0, -81, 82]$[0, -36, -81, 46]$[80, -36, -1, 46]$[80, -82, -1, 0]"/> |
275 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAKZwFybEemc87q3iJlCgw" id="(0.5,0.0)"/> | 275 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAKZwFybEemc87q3iJlCgw" id="(0.5,0.0)"/> |
276 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAKZwVybEemc87q3iJlCgw" id="(0.5,1.0)"/> | 276 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAKZwVybEemc87q3iJlCgw" id="(0.5,1.0)"/> |
277 | </edges> | 277 | </edges> |
@@ -287,7 +287,7 @@ | |||
287 | </children> | 287 | </children> |
288 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAKZw1ybEemc87q3iJlCgw" routing="Tree"/> | 288 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAKZw1ybEemc87q3iJlCgw" routing="Tree"/> |
289 | <styles xmi:type="notation:FontStyle" xmi:id="_hAKZxFybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> | 289 | <styles xmi:type="notation:FontStyle" xmi:id="_hAKZxFybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> |
290 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAKZxVybEemc87q3iJlCgw" points="[0, 0, -75, 60]$[75, -60, 0, 0]"/> | 290 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAKZxVybEemc87q3iJlCgw" points="[0, 98, -348, 156]$[0, 144, -348, 202]$[359, 144, 11, 202]$[359, -58, 11, 0]"/> |
291 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hALA0FybEemc87q3iJlCgw" id="(0.5,0.0)"/> | 291 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hALA0FybEemc87q3iJlCgw" id="(0.5,0.0)"/> |
292 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hALA0VybEemc87q3iJlCgw" id="(0.5,1.0)"/> | 292 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hALA0VybEemc87q3iJlCgw" id="(0.5,1.0)"/> |
293 | </edges> | 293 | </edges> |
@@ -303,7 +303,7 @@ | |||
303 | </children> | 303 | </children> |
304 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hALA01ybEemc87q3iJlCgw" routing="Tree"/> | 304 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hALA01ybEemc87q3iJlCgw" routing="Tree"/> |
305 | <styles xmi:type="notation:FontStyle" xmi:id="_hALA1FybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> | 305 | <styles xmi:type="notation:FontStyle" xmi:id="_hALA1FybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> |
306 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hALA1VybEemc87q3iJlCgw" points="[0, 0, -360, 60]$[360, -60, 0, 0]"/> | 306 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hALA1VybEemc87q3iJlCgw" points="[0, 0, -261, 82]$[0, -36, -261, 46]$[260, -36, -1, 46]$[260, -82, -1, 0]"/> |
307 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hALn4FybEemc87q3iJlCgw" id="(0.5,0.0)"/> | 307 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hALn4FybEemc87q3iJlCgw" id="(0.5,0.0)"/> |
308 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hALn4VybEemc87q3iJlCgw" id="(0.5,1.0)"/> | 308 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hALn4VybEemc87q3iJlCgw" id="(0.5,1.0)"/> |
309 | </edges> | 309 | </edges> |
@@ -319,7 +319,7 @@ | |||
319 | </children> | 319 | </children> |
320 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAMO8VybEemc87q3iJlCgw" routing="Tree"/> | 320 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAMO8VybEemc87q3iJlCgw" routing="Tree"/> |
321 | <styles xmi:type="notation:FontStyle" xmi:id="_hAMO8lybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> | 321 | <styles xmi:type="notation:FontStyle" xmi:id="_hAMO8lybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> |
322 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAMO81ybEemc87q3iJlCgw" points="[0, 0, 0, 220]$[0, -220, 0, 0]"/> | 322 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAMO81ybEemc87q3iJlCgw" points="[0, 0, -168, 46]$[0, -24, -168, 22]$[153, -24, -15, 22]$[153, -46, -15, 0]"/> |
323 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAei0FybEemc87q3iJlCgw" id="(0.5,0.0)"/> | 323 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAei0FybEemc87q3iJlCgw" id="(0.5,0.0)"/> |
324 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAei0VybEemc87q3iJlCgw" id="(0.5,1.0)"/> | 324 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAei0VybEemc87q3iJlCgw" id="(0.5,1.0)"/> |
325 | </edges> | 325 | </edges> |
@@ -335,7 +335,7 @@ | |||
335 | </children> | 335 | </children> |
336 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAfJ4VybEemc87q3iJlCgw" routing="Tree"/> | 336 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAfJ4VybEemc87q3iJlCgw" routing="Tree"/> |
337 | <styles xmi:type="notation:FontStyle" xmi:id="_hAfJ4lybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> | 337 | <styles xmi:type="notation:FontStyle" xmi:id="_hAfJ4lybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> |
338 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAfJ41ybEemc87q3iJlCgw" points="[0, 0, 105, 60]$[-105, -60, 0, 0]"/> | 338 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAfJ41ybEemc87q3iJlCgw" points="[0, 0, -144, 370]$[0, -168, -144, 202]$[155, -168, 11, 202]$[155, -370, 11, 0]"/> |
339 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAgYAFybEemc87q3iJlCgw" id="(0.5,0.0)"/> | 339 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAgYAFybEemc87q3iJlCgw" id="(0.5,0.0)"/> |
340 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAgYAVybEemc87q3iJlCgw" id="(0.5,1.0)"/> | 340 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAgYAVybEemc87q3iJlCgw" id="(0.5,1.0)"/> |
341 | </edges> | 341 | </edges> |
@@ -351,39 +351,39 @@ | |||
351 | </children> | 351 | </children> |
352 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAgYA1ybEemc87q3iJlCgw" routing="Tree"/> | 352 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAgYA1ybEemc87q3iJlCgw" routing="Tree"/> |
353 | <styles xmi:type="notation:FontStyle" xmi:id="_hAgYBFybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> | 353 | <styles xmi:type="notation:FontStyle" xmi:id="_hAgYBFybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> |
354 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAgYBVybEemc87q3iJlCgw" points="[0, 0, -285, 60]$[285, -60, 0, 0]"/> | 354 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAgYBVybEemc87q3iJlCgw" points="[0, 0, 129, 118]$[0, -84, 129, 34]$[-166, -84, -37, 34]$[-166, -118, -37, 0]"/> |
355 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAg_FFybEemc87q3iJlCgw" id="(0.5,0.0)"/> | 355 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAg_FFybEemc87q3iJlCgw" id="(0.5,0.0)"/> |
356 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAg_FVybEemc87q3iJlCgw" id="(0.5,1.0)"/> | 356 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAg_FVybEemc87q3iJlCgw" id="(0.5,1.0)"/> |
357 | </edges> | 357 | </edges> |
358 | <edges xmi:type="notation:Edge" xmi:id="_hAhmIFybEemc87q3iJlCgw" type="4001" element="_g_frY1ybEemc87q3iJlCgw" source="_g_o1UFybEemc87q3iJlCgw" target="_g_qDcFybEemc87q3iJlCgw"> | 358 | <edges xmi:type="notation:Edge" xmi:id="_hAhmIFybEemc87q3iJlCgw" type="4001" element="_g_frY1ybEemc87q3iJlCgw" source="_g_o1UFybEemc87q3iJlCgw" target="_g_qDcFybEemc87q3iJlCgw"> |
359 | <children xmi:type="notation:Node" xmi:id="_hAhmJFybEemc87q3iJlCgw" type="6001"> | 359 | <children xmi:type="notation:Node" xmi:id="_hAhmJFybEemc87q3iJlCgw" type="6001"> |
360 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hAhmJVybEemc87q3iJlCgw" x="1" y="-10"/> | 360 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hAhmJVybEemc87q3iJlCgw" x="-6" y="-10"/> |
361 | </children> | 361 | </children> |
362 | <children xmi:type="notation:Node" xmi:id="_hAhmJlybEemc87q3iJlCgw" type="6002"> | 362 | <children xmi:type="notation:Node" xmi:id="_hAhmJlybEemc87q3iJlCgw" type="6002"> |
363 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hAhmJ1ybEemc87q3iJlCgw" y="-10"/> | 363 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hAhmJ1ybEemc87q3iJlCgw" x="-1" y="10"/> |
364 | </children> | 364 | </children> |
365 | <children xmi:type="notation:Node" xmi:id="_hAhmKFybEemc87q3iJlCgw" type="6003"> | 365 | <children xmi:type="notation:Node" xmi:id="_hAhmKFybEemc87q3iJlCgw" type="6003"> |
366 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hAhmKVybEemc87q3iJlCgw" y="10"/> | 366 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hAhmKVybEemc87q3iJlCgw" x="-31" y="18"/> |
367 | </children> | 367 | </children> |
368 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAhmIVybEemc87q3iJlCgw" routing="Rectilinear"/> | 368 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAhmIVybEemc87q3iJlCgw" routing="Rectilinear"/> |
369 | <styles xmi:type="notation:FontStyle" xmi:id="_hAhmIlybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> | 369 | <styles xmi:type="notation:FontStyle" xmi:id="_hAhmIlybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> |
370 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAhmI1ybEemc87q3iJlCgw" points="[-59, 50, -59, 108]$[-143, 50, -143, 108]$[-143, -106, -143, -48]$[-59, -106, -59, -48]"/> | 370 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAhmI1ybEemc87q3iJlCgw" points="[59, 72, -361, -26]$[361, 72, -59, -26]"/> |
371 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAiNMFybEemc87q3iJlCgw" id="(0.5,0.0)"/> | 371 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAiNMFybEemc87q3iJlCgw" id="(0.5,0.0)"/> |
372 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAiNMVybEemc87q3iJlCgw" id="(0.5,1.0)"/> | 372 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAiNMVybEemc87q3iJlCgw" id="(0.5,1.0)"/> |
373 | </edges> | 373 | </edges> |
374 | <edges xmi:type="notation:Edge" xmi:id="_hAiNMlybEemc87q3iJlCgw" type="4001" element="_g_g5gFybEemc87q3iJlCgw" source="_g_o1UFybEemc87q3iJlCgw" target="_g_qDcFybEemc87q3iJlCgw"> | 374 | <edges xmi:type="notation:Edge" xmi:id="_hAiNMlybEemc87q3iJlCgw" type="4001" element="_g_g5gFybEemc87q3iJlCgw" source="_g_o1UFybEemc87q3iJlCgw" target="_g_qDcFybEemc87q3iJlCgw"> |
375 | <children xmi:type="notation:Node" xmi:id="_hAiNNlybEemc87q3iJlCgw" type="6001"> | 375 | <children xmi:type="notation:Node" xmi:id="_hAiNNlybEemc87q3iJlCgw" type="6001"> |
376 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hAiNN1ybEemc87q3iJlCgw" x="1" y="-10"/> | 376 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hAiNN1ybEemc87q3iJlCgw" y="-10"/> |
377 | </children> | 377 | </children> |
378 | <children xmi:type="notation:Node" xmi:id="_hAi0QFybEemc87q3iJlCgw" type="6002"> | 378 | <children xmi:type="notation:Node" xmi:id="_hAi0QFybEemc87q3iJlCgw" type="6002"> |
379 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hAi0QVybEemc87q3iJlCgw" y="10"/> | 379 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hAi0QVybEemc87q3iJlCgw" x="-1" y="18"/> |
380 | </children> | 380 | </children> |
381 | <children xmi:type="notation:Node" xmi:id="_hAi0QlybEemc87q3iJlCgw" type="6003"> | 381 | <children xmi:type="notation:Node" xmi:id="_hAi0QlybEemc87q3iJlCgw" type="6003"> |
382 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hAi0Q1ybEemc87q3iJlCgw" y="-10"/> | 382 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hAi0Q1ybEemc87q3iJlCgw" x="-34" y="12"/> |
383 | </children> | 383 | </children> |
384 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAiNM1ybEemc87q3iJlCgw" routing="Rectilinear"/> | 384 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAiNM1ybEemc87q3iJlCgw" routing="Rectilinear"/> |
385 | <styles xmi:type="notation:FontStyle" xmi:id="_hAiNNFybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> | 385 | <styles xmi:type="notation:FontStyle" xmi:id="_hAiNNFybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> |
386 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAiNNVybEemc87q3iJlCgw" points="[59, 50, 59, 108]$[130, 50, 130, 108]$[130, -106, 130, -48]$[59, -106, 59, -48]"/> | 386 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAiNNVybEemc87q3iJlCgw" points="[59, 12, -361, -86]$[361, 12, -59, -86]"/> |
387 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAi0RFybEemc87q3iJlCgw" id="(0.5,0.0)"/> | 387 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAi0RFybEemc87q3iJlCgw" id="(0.5,0.0)"/> |
388 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAi0RVybEemc87q3iJlCgw" id="(0.5,1.0)"/> | 388 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAi0RVybEemc87q3iJlCgw" id="(0.5,1.0)"/> |
389 | </edges> | 389 | </edges> |
@@ -392,6 +392,9 @@ | |||
392 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-GkQFybEemc87q3iJlCgw" name="Pseudostate" tooltipText="" outgoingEdges="_g_fEUFybEemc87q3iJlCgw" incomingEdges="_g_V6ZlybEemc87q3iJlCgw _g_V6bVybEemc87q3iJlCgw _g_ay41ybEemc87q3iJlCgw _g_coEFybEemc87q3iJlCgw" width="12" height="10"> | 392 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-GkQFybEemc87q3iJlCgw" name="Pseudostate" tooltipText="" outgoingEdges="_g_fEUFybEemc87q3iJlCgw" incomingEdges="_g_V6ZlybEemc87q3iJlCgw _g_V6bVybEemc87q3iJlCgw _g_ay41ybEemc87q3iJlCgw _g_coEFybEemc87q3iJlCgw" width="12" height="10"> |
393 | <target xmi:type="ecore:EClass" href="yakindu.ecore#//Pseudostate"/> | 393 | <target xmi:type="ecore:EClass" href="yakindu.ecore#//Pseudostate"/> |
394 | <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Pseudostate"/> | 394 | <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Pseudostate"/> |
395 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
396 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
397 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
395 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-NR8FybEemc87q3iJlCgw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> | 398 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-NR8FybEemc87q3iJlCgw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> |
396 | <labelFormat>italic</labelFormat> | 399 | <labelFormat>italic</labelFormat> |
397 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/> | 400 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/> |
@@ -401,6 +404,9 @@ | |||
401 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-SKcFybEemc87q3iJlCgw" name="Vertex" tooltipText="" outgoingEdges="_g_frY1ybEemc87q3iJlCgw _g_g5gFybEemc87q3iJlCgw" incomingEdges="_g_JtIFybEemc87q3iJlCgw _g_S3EFybEemc87q3iJlCgw _g_fEUFybEemc87q3iJlCgw" width="12" height="10"> | 404 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-SKcFybEemc87q3iJlCgw" name="Vertex" tooltipText="" outgoingEdges="_g_frY1ybEemc87q3iJlCgw _g_g5gFybEemc87q3iJlCgw" incomingEdges="_g_JtIFybEemc87q3iJlCgw _g_S3EFybEemc87q3iJlCgw _g_fEUFybEemc87q3iJlCgw" width="12" height="10"> |
402 | <target xmi:type="ecore:EClass" href="yakindu.ecore#//Vertex"/> | 405 | <target xmi:type="ecore:EClass" href="yakindu.ecore#//Vertex"/> |
403 | <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Vertex"/> | 406 | <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Vertex"/> |
407 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
408 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
409 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
404 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-SxgFybEemc87q3iJlCgw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> | 410 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-SxgFybEemc87q3iJlCgw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> |
405 | <labelFormat>italic</labelFormat> | 411 | <labelFormat>italic</labelFormat> |
406 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/> | 412 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/> |
@@ -410,6 +416,9 @@ | |||
410 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-T_oFybEemc87q3iJlCgw" name="Region" tooltipText="" outgoingEdges="_g_JtIFybEemc87q3iJlCgw" incomingEdges="_g_MweVybEemc87q3iJlCgw" width="12" height="10"> | 416 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-T_oFybEemc87q3iJlCgw" name="Region" tooltipText="" outgoingEdges="_g_JtIFybEemc87q3iJlCgw" incomingEdges="_g_MweVybEemc87q3iJlCgw" width="12" height="10"> |
411 | <target xmi:type="ecore:EClass" href="yakindu.ecore#//Region"/> | 417 | <target xmi:type="ecore:EClass" href="yakindu.ecore#//Region"/> |
412 | <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Region"/> | 418 | <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Region"/> |
419 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
420 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
421 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
413 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-VNwFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | 422 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-VNwFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> |
414 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | 423 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> |
415 | </ownedStyle> | 424 | </ownedStyle> |
@@ -418,6 +427,9 @@ | |||
418 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-Wb4FybEemc87q3iJlCgw" name="Transition" tooltipText="" incomingEdges="_g_frY1ybEemc87q3iJlCgw _g_g5gFybEemc87q3iJlCgw" width="12" height="10"> | 427 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-Wb4FybEemc87q3iJlCgw" name="Transition" tooltipText="" incomingEdges="_g_frY1ybEemc87q3iJlCgw _g_g5gFybEemc87q3iJlCgw" width="12" height="10"> |
419 | <target xmi:type="ecore:EClass" href="yakindu.ecore#//Transition"/> | 428 | <target xmi:type="ecore:EClass" href="yakindu.ecore#//Transition"/> |
420 | <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Transition"/> | 429 | <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Transition"/> |
430 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
431 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
432 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
421 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-XC8FybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | 433 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-XC8FybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> |
422 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | 434 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> |
423 | </ownedStyle> | 435 | </ownedStyle> |
@@ -426,6 +438,9 @@ | |||
426 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-YREFybEemc87q3iJlCgw" name="Statechart" tooltipText="" outgoingEdges="_g_cBAFybEemc87q3iJlCgw" width="12" height="10"> | 438 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-YREFybEemc87q3iJlCgw" name="Statechart" tooltipText="" outgoingEdges="_g_cBAFybEemc87q3iJlCgw" width="12" height="10"> |
427 | <target xmi:type="ecore:EClass" href="yakindu.ecore#//Statechart"/> | 439 | <target xmi:type="ecore:EClass" href="yakindu.ecore#//Statechart"/> |
428 | <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Statechart"/> | 440 | <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Statechart"/> |
441 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
442 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
443 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
429 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-ZfMFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | 444 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-ZfMFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> |
430 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | 445 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> |
431 | </ownedStyle> | 446 | </ownedStyle> |
@@ -434,6 +449,9 @@ | |||
434 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-aGQFybEemc87q3iJlCgw" name="Entry" tooltipText="" outgoingEdges="_g_ay41ybEemc87q3iJlCgw" width="12" height="10"> | 449 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-aGQFybEemc87q3iJlCgw" name="Entry" tooltipText="" outgoingEdges="_g_ay41ybEemc87q3iJlCgw" width="12" height="10"> |
435 | <target xmi:type="ecore:EClass" href="yakindu.ecore#//Entry"/> | 450 | <target xmi:type="ecore:EClass" href="yakindu.ecore#//Entry"/> |
436 | <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Entry"/> | 451 | <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Entry"/> |
452 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
453 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
454 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
437 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-atUFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | 455 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-atUFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> |
438 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | 456 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> |
439 | </ownedStyle> | 457 | </ownedStyle> |
@@ -442,6 +460,9 @@ | |||
442 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-b7cFybEemc87q3iJlCgw" name="Synchronization" tooltipText="" outgoingEdges="_g_coEFybEemc87q3iJlCgw" width="12" height="10"> | 460 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-b7cFybEemc87q3iJlCgw" name="Synchronization" tooltipText="" outgoingEdges="_g_coEFybEemc87q3iJlCgw" width="12" height="10"> |
443 | <target xmi:type="ecore:EClass" href="yakindu.ecore#//Synchronization"/> | 461 | <target xmi:type="ecore:EClass" href="yakindu.ecore#//Synchronization"/> |
444 | <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Synchronization"/> | 462 | <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Synchronization"/> |
463 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
464 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
465 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
445 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-cigFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | 466 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-cigFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> |
446 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | 467 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> |
447 | </ownedStyle> | 468 | </ownedStyle> |
@@ -450,6 +471,9 @@ | |||
450 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-dJkVybEemc87q3iJlCgw" name="State" tooltipText="" outgoingEdges="_g_dPI1ybEemc87q3iJlCgw _g_edQFybEemc87q3iJlCgw" width="12" height="10"> | 471 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-dJkVybEemc87q3iJlCgw" name="State" tooltipText="" outgoingEdges="_g_dPI1ybEemc87q3iJlCgw _g_edQFybEemc87q3iJlCgw" width="12" height="10"> |
451 | <target xmi:type="ecore:EClass" href="yakindu.ecore#//State"/> | 472 | <target xmi:type="ecore:EClass" href="yakindu.ecore#//State"/> |
452 | <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//State"/> | 473 | <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//State"/> |
474 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
475 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
476 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
453 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-e-wFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | 477 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-e-wFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> |
454 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | 478 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> |
455 | </ownedStyle> | 479 | </ownedStyle> |
@@ -458,6 +482,9 @@ | |||
458 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-fl0FybEemc87q3iJlCgw" name="RegularState" tooltipText="" outgoingEdges="_g_S3EFybEemc87q3iJlCgw" incomingEdges="_g_aL0FybEemc87q3iJlCgw _g_dPI1ybEemc87q3iJlCgw" width="12" height="10"> | 482 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-fl0FybEemc87q3iJlCgw" name="RegularState" tooltipText="" outgoingEdges="_g_S3EFybEemc87q3iJlCgw" incomingEdges="_g_aL0FybEemc87q3iJlCgw _g_dPI1ybEemc87q3iJlCgw" width="12" height="10"> |
459 | <target xmi:type="ecore:EClass" href="yakindu.ecore#//RegularState"/> | 483 | <target xmi:type="ecore:EClass" href="yakindu.ecore#//RegularState"/> |
460 | <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//RegularState"/> | 484 | <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//RegularState"/> |
485 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
486 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
487 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
461 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-gz8FybEemc87q3iJlCgw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> | 488 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-gz8FybEemc87q3iJlCgw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> |
462 | <labelFormat>italic</labelFormat> | 489 | <labelFormat>italic</labelFormat> |
463 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/> | 490 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/> |
@@ -467,6 +494,9 @@ | |||
467 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-hbAVybEemc87q3iJlCgw" name="CompositeElement" tooltipText="" outgoingEdges="_g_MweVybEemc87q3iJlCgw" incomingEdges="_g_cBAFybEemc87q3iJlCgw _g_edQFybEemc87q3iJlCgw" width="12" height="10"> | 494 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-hbAVybEemc87q3iJlCgw" name="CompositeElement" tooltipText="" outgoingEdges="_g_MweVybEemc87q3iJlCgw" incomingEdges="_g_cBAFybEemc87q3iJlCgw _g_edQFybEemc87q3iJlCgw" width="12" height="10"> |
468 | <target xmi:type="ecore:EClass" href="yakindu.ecore#//CompositeElement"/> | 495 | <target xmi:type="ecore:EClass" href="yakindu.ecore#//CompositeElement"/> |
469 | <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//CompositeElement"/> | 496 | <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//CompositeElement"/> |
497 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
498 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
499 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
470 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-iCEFybEemc87q3iJlCgw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> | 500 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-iCEFybEemc87q3iJlCgw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> |
471 | <labelFormat>italic</labelFormat> | 501 | <labelFormat>italic</labelFormat> |
472 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/> | 502 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/> |
@@ -476,6 +506,9 @@ | |||
476 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-jQMFybEemc87q3iJlCgw" name="Choice" tooltipText="" outgoingEdges="_g_V6ZlybEemc87q3iJlCgw" width="12" height="10"> | 506 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-jQMFybEemc87q3iJlCgw" name="Choice" tooltipText="" outgoingEdges="_g_V6ZlybEemc87q3iJlCgw" width="12" height="10"> |
477 | <target xmi:type="ecore:EClass" href="yakindu.ecore#//Choice"/> | 507 | <target xmi:type="ecore:EClass" href="yakindu.ecore#//Choice"/> |
478 | <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Choice"/> | 508 | <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Choice"/> |
509 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
510 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
511 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
479 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-keUFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | 512 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-keUFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> |
480 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | 513 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> |
481 | </ownedStyle> | 514 | </ownedStyle> |
@@ -484,6 +517,9 @@ | |||
484 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-lscFybEemc87q3iJlCgw" name="Exit" tooltipText="" outgoingEdges="_g_V6bVybEemc87q3iJlCgw" width="12" height="10"> | 517 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-lscFybEemc87q3iJlCgw" name="Exit" tooltipText="" outgoingEdges="_g_V6bVybEemc87q3iJlCgw" width="12" height="10"> |
485 | <target xmi:type="ecore:EClass" href="yakindu.ecore#//Exit"/> | 518 | <target xmi:type="ecore:EClass" href="yakindu.ecore#//Exit"/> |
486 | <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Exit"/> | 519 | <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Exit"/> |
520 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
521 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
522 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
487 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-mTgFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | 523 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-mTgFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> |
488 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | 524 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> |
489 | </ownedStyle> | 525 | </ownedStyle> |
@@ -492,6 +528,9 @@ | |||
492 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-m6kFybEemc87q3iJlCgw" name="FinalState" tooltipText="" outgoingEdges="_g_aL0FybEemc87q3iJlCgw" width="12" height="10"> | 528 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-m6kFybEemc87q3iJlCgw" name="FinalState" tooltipText="" outgoingEdges="_g_aL0FybEemc87q3iJlCgw" width="12" height="10"> |
493 | <target xmi:type="ecore:EClass" href="yakindu.ecore#//FinalState"/> | 529 | <target xmi:type="ecore:EClass" href="yakindu.ecore#//FinalState"/> |
494 | <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//FinalState"/> | 530 | <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//FinalState"/> |
531 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
532 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
533 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
495 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-nhoFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | 534 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-nhoFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> |
496 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | 535 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> |
497 | </ownedStyle> | 536 | </ownedStyle> |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/plugin.xml b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/plugin.xml index f9d517b9..c0c367a1 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/plugin.xml +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/plugin.xml | |||
@@ -20,13 +20,6 @@ | |||
20 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.ecore.queries.nonSymmetricOpposite"/> | 20 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.ecore.queries.nonSymmetricOpposite"/> |
21 | </group> | 21 | </group> |
22 | </extension> | 22 | </extension> |
23 | <extension id="ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.FamPatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> | ||
24 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.FamPatterns" id="ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.FamPatterns"> | ||
25 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.terminatorAndInformation"/> | ||
26 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.rootElements"/> | ||
27 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.parent"/> | ||
28 | </group> | ||
29 | </extension> | ||
30 | <extension id="extension.derived.ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.model" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features"> | 23 | <extension id="extension.derived.ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.model" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features"> |
31 | <wellbehaving-derived-feature classifier-name="FunctionalElement" feature-name="model" package-nsUri="FamMetamodel"/> | 24 | <wellbehaving-derived-feature classifier-name="FunctionalElement" feature-name="model" package-nsUri="FamMetamodel"/> |
32 | </extension> | 25 | </extension> |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/src-gen/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/TerminatorAndInformation.java b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/src-gen/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/TerminatorAndInformation.java deleted file mode 100644 index 69a6b9f4..00000000 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/src-gen/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/TerminatorAndInformation.java +++ /dev/null | |||
@@ -1,747 +0,0 @@ | |||
1 | /** | ||
2 | * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.standalone.test/queries/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/famPatterns.vql | ||
3 | */ | ||
4 | package ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries; | ||
5 | |||
6 | import ca.mcgill.ecse.dslreasoner.standalone.test.fam.FAMTerminator; | ||
7 | import ca.mcgill.ecse.dslreasoner.standalone.test.fam.InformationLink; | ||
8 | import java.util.Arrays; | ||
9 | import java.util.Collection; | ||
10 | import java.util.LinkedHashSet; | ||
11 | import java.util.List; | ||
12 | import java.util.Objects; | ||
13 | import java.util.Optional; | ||
14 | import java.util.Set; | ||
15 | import java.util.function.Consumer; | ||
16 | import java.util.stream.Collectors; | ||
17 | import java.util.stream.Stream; | ||
18 | import org.apache.log4j.Logger; | ||
19 | import org.eclipse.emf.ecore.EClass; | ||
20 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
21 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
22 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
25 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
26 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
27 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
28 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
39 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
40 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
41 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
42 | import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil; | ||
43 | |||
44 | /** | ||
45 | * A pattern-specific query specification that can instantiate Matcher in a type-safe way. | ||
46 | * | ||
47 | * <p>Original source: | ||
48 | * <code><pre> | ||
49 | * {@literal @}Constraint(message="terminatorAndInformation", severity="error", key={T}) | ||
50 | * pattern terminatorAndInformation(T : FAMTerminator, I : InformationLink) = { | ||
51 | * FunctionalOutput.outgoingLinks(Out,I); | ||
52 | * FunctionalOutput.terminator(Out,T); | ||
53 | * } or { | ||
54 | * InformationLink.to(I,In); | ||
55 | * FunctionalInput.terminator(In,T); | ||
56 | * } | ||
57 | * </pre></code> | ||
58 | * | ||
59 | * @see Matcher | ||
60 | * @see Match | ||
61 | * | ||
62 | */ | ||
63 | @SuppressWarnings("all") | ||
64 | public final class TerminatorAndInformation extends BaseGeneratedEMFQuerySpecification<TerminatorAndInformation.Matcher> { | ||
65 | /** | ||
66 | * Pattern-specific match representation of the ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.terminatorAndInformation pattern, | ||
67 | * to be used in conjunction with {@link Matcher}. | ||
68 | * | ||
69 | * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. | ||
70 | * Each instance is a (possibly partial) substitution of pattern parameters, | ||
71 | * usable to represent a match of the pattern in the result of a query, | ||
72 | * or to specify the bound (fixed) input parameters when issuing a query. | ||
73 | * | ||
74 | * @see Matcher | ||
75 | * | ||
76 | */ | ||
77 | public static abstract class Match extends BasePatternMatch { | ||
78 | private FAMTerminator fT; | ||
79 | |||
80 | private InformationLink fI; | ||
81 | |||
82 | private static List<String> parameterNames = makeImmutableList("T", "I"); | ||
83 | |||
84 | private Match(final FAMTerminator pT, final InformationLink pI) { | ||
85 | this.fT = pT; | ||
86 | this.fI = pI; | ||
87 | } | ||
88 | |||
89 | @Override | ||
90 | public Object get(final String parameterName) { | ||
91 | if ("T".equals(parameterName)) return this.fT; | ||
92 | if ("I".equals(parameterName)) return this.fI; | ||
93 | return null; | ||
94 | } | ||
95 | |||
96 | public FAMTerminator getT() { | ||
97 | return this.fT; | ||
98 | } | ||
99 | |||
100 | public InformationLink getI() { | ||
101 | return this.fI; | ||
102 | } | ||
103 | |||
104 | @Override | ||
105 | public boolean set(final String parameterName, final Object newValue) { | ||
106 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
107 | if ("T".equals(parameterName) ) { | ||
108 | this.fT = (FAMTerminator) newValue; | ||
109 | return true; | ||
110 | } | ||
111 | if ("I".equals(parameterName) ) { | ||
112 | this.fI = (InformationLink) newValue; | ||
113 | return true; | ||
114 | } | ||
115 | return false; | ||
116 | } | ||
117 | |||
118 | public void setT(final FAMTerminator pT) { | ||
119 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
120 | this.fT = pT; | ||
121 | } | ||
122 | |||
123 | public void setI(final InformationLink pI) { | ||
124 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
125 | this.fI = pI; | ||
126 | } | ||
127 | |||
128 | @Override | ||
129 | public String patternName() { | ||
130 | return "ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.terminatorAndInformation"; | ||
131 | } | ||
132 | |||
133 | @Override | ||
134 | public List<String> parameterNames() { | ||
135 | return TerminatorAndInformation.Match.parameterNames; | ||
136 | } | ||
137 | |||
138 | @Override | ||
139 | public Object[] toArray() { | ||
140 | return new Object[]{fT, fI}; | ||
141 | } | ||
142 | |||
143 | @Override | ||
144 | public TerminatorAndInformation.Match toImmutable() { | ||
145 | return isMutable() ? newMatch(fT, fI) : this; | ||
146 | } | ||
147 | |||
148 | @Override | ||
149 | public String prettyPrint() { | ||
150 | StringBuilder result = new StringBuilder(); | ||
151 | result.append("\"T\"=" + prettyPrintValue(fT) + ", "); | ||
152 | result.append("\"I\"=" + prettyPrintValue(fI)); | ||
153 | return result.toString(); | ||
154 | } | ||
155 | |||
156 | @Override | ||
157 | public int hashCode() { | ||
158 | return Objects.hash(fT, fI); | ||
159 | } | ||
160 | |||
161 | @Override | ||
162 | public boolean equals(final Object obj) { | ||
163 | if (this == obj) | ||
164 | return true; | ||
165 | if (obj == null) { | ||
166 | return false; | ||
167 | } | ||
168 | if ((obj instanceof TerminatorAndInformation.Match)) { | ||
169 | TerminatorAndInformation.Match other = (TerminatorAndInformation.Match) obj; | ||
170 | return Objects.equals(fT, other.fT) && Objects.equals(fI, other.fI); | ||
171 | } else { | ||
172 | // this should be infrequent | ||
173 | if (!(obj instanceof IPatternMatch)) { | ||
174 | return false; | ||
175 | } | ||
176 | IPatternMatch otherSig = (IPatternMatch) obj; | ||
177 | return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); | ||
178 | } | ||
179 | } | ||
180 | |||
181 | @Override | ||
182 | public TerminatorAndInformation specification() { | ||
183 | return TerminatorAndInformation.instance(); | ||
184 | } | ||
185 | |||
186 | /** | ||
187 | * Returns an empty, mutable match. | ||
188 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
189 | * | ||
190 | * @return the empty match. | ||
191 | * | ||
192 | */ | ||
193 | public static TerminatorAndInformation.Match newEmptyMatch() { | ||
194 | return new Mutable(null, null); | ||
195 | } | ||
196 | |||
197 | /** | ||
198 | * Returns a mutable (partial) match. | ||
199 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
200 | * | ||
201 | * @param pT the fixed value of pattern parameter T, or null if not bound. | ||
202 | * @param pI the fixed value of pattern parameter I, or null if not bound. | ||
203 | * @return the new, mutable (partial) match object. | ||
204 | * | ||
205 | */ | ||
206 | public static TerminatorAndInformation.Match newMutableMatch(final FAMTerminator pT, final InformationLink pI) { | ||
207 | return new Mutable(pT, pI); | ||
208 | } | ||
209 | |||
210 | /** | ||
211 | * Returns a new (partial) match. | ||
212 | * This can be used e.g. to call the matcher with a partial match. | ||
213 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
214 | * @param pT the fixed value of pattern parameter T, or null if not bound. | ||
215 | * @param pI the fixed value of pattern parameter I, or null if not bound. | ||
216 | * @return the (partial) match object. | ||
217 | * | ||
218 | */ | ||
219 | public static TerminatorAndInformation.Match newMatch(final FAMTerminator pT, final InformationLink pI) { | ||
220 | return new Immutable(pT, pI); | ||
221 | } | ||
222 | |||
223 | private static final class Mutable extends TerminatorAndInformation.Match { | ||
224 | Mutable(final FAMTerminator pT, final InformationLink pI) { | ||
225 | super(pT, pI); | ||
226 | } | ||
227 | |||
228 | @Override | ||
229 | public boolean isMutable() { | ||
230 | return true; | ||
231 | } | ||
232 | } | ||
233 | |||
234 | private static final class Immutable extends TerminatorAndInformation.Match { | ||
235 | Immutable(final FAMTerminator pT, final InformationLink pI) { | ||
236 | super(pT, pI); | ||
237 | } | ||
238 | |||
239 | @Override | ||
240 | public boolean isMutable() { | ||
241 | return false; | ||
242 | } | ||
243 | } | ||
244 | } | ||
245 | |||
246 | /** | ||
247 | * Generated pattern matcher API of the ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.terminatorAndInformation pattern, | ||
248 | * providing pattern-specific query methods. | ||
249 | * | ||
250 | * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, | ||
251 | * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. | ||
252 | * | ||
253 | * <p>Matches of the pattern will be represented as {@link Match}. | ||
254 | * | ||
255 | * <p>Original source: | ||
256 | * <code><pre> | ||
257 | * {@literal @}Constraint(message="terminatorAndInformation", severity="error", key={T}) | ||
258 | * pattern terminatorAndInformation(T : FAMTerminator, I : InformationLink) = { | ||
259 | * FunctionalOutput.outgoingLinks(Out,I); | ||
260 | * FunctionalOutput.terminator(Out,T); | ||
261 | * } or { | ||
262 | * InformationLink.to(I,In); | ||
263 | * FunctionalInput.terminator(In,T); | ||
264 | * } | ||
265 | * </pre></code> | ||
266 | * | ||
267 | * @see Match | ||
268 | * @see TerminatorAndInformation | ||
269 | * | ||
270 | */ | ||
271 | public static class Matcher extends BaseMatcher<TerminatorAndInformation.Match> { | ||
272 | /** | ||
273 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
274 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
275 | * | ||
276 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
277 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
278 | * | ||
279 | */ | ||
280 | public static TerminatorAndInformation.Matcher on(final ViatraQueryEngine engine) { | ||
281 | // check if matcher already exists | ||
282 | Matcher matcher = engine.getExistingMatcher(querySpecification()); | ||
283 | if (matcher == null) { | ||
284 | matcher = (Matcher)engine.getMatcher(querySpecification()); | ||
285 | } | ||
286 | return matcher; | ||
287 | } | ||
288 | |||
289 | /** | ||
290 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
291 | * @return an initialized matcher | ||
292 | * @noreference This method is for internal matcher initialization by the framework, do not call it manually. | ||
293 | * | ||
294 | */ | ||
295 | public static TerminatorAndInformation.Matcher create() { | ||
296 | return new Matcher(); | ||
297 | } | ||
298 | |||
299 | private final static int POSITION_T = 0; | ||
300 | |||
301 | private final static int POSITION_I = 1; | ||
302 | |||
303 | private final static Logger LOGGER = ViatraQueryLoggingUtil.getLogger(TerminatorAndInformation.Matcher.class); | ||
304 | |||
305 | /** | ||
306 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
307 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
308 | * | ||
309 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
310 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
311 | * | ||
312 | */ | ||
313 | private Matcher() { | ||
314 | super(querySpecification()); | ||
315 | } | ||
316 | |||
317 | /** | ||
318 | * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. | ||
319 | * @param pT the fixed value of pattern parameter T, or null if not bound. | ||
320 | * @param pI the fixed value of pattern parameter I, or null if not bound. | ||
321 | * @return matches represented as a Match object. | ||
322 | * | ||
323 | */ | ||
324 | public Collection<TerminatorAndInformation.Match> getAllMatches(final FAMTerminator pT, final InformationLink pI) { | ||
325 | return rawStreamAllMatches(new Object[]{pT, pI}).collect(Collectors.toSet()); | ||
326 | } | ||
327 | |||
328 | /** | ||
329 | * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. | ||
330 | * </p> | ||
331 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
332 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
333 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
334 | * @param pT the fixed value of pattern parameter T, or null if not bound. | ||
335 | * @param pI the fixed value of pattern parameter I, or null if not bound. | ||
336 | * @return a stream of matches represented as a Match object. | ||
337 | * | ||
338 | */ | ||
339 | public Stream<TerminatorAndInformation.Match> streamAllMatches(final FAMTerminator pT, final InformationLink pI) { | ||
340 | return rawStreamAllMatches(new Object[]{pT, pI}); | ||
341 | } | ||
342 | |||
343 | /** | ||
344 | * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
345 | * Neither determinism nor randomness of selection is guaranteed. | ||
346 | * @param pT the fixed value of pattern parameter T, or null if not bound. | ||
347 | * @param pI the fixed value of pattern parameter I, or null if not bound. | ||
348 | * @return a match represented as a Match object, or null if no match is found. | ||
349 | * | ||
350 | */ | ||
351 | public Optional<TerminatorAndInformation.Match> getOneArbitraryMatch(final FAMTerminator pT, final InformationLink pI) { | ||
352 | return rawGetOneArbitraryMatch(new Object[]{pT, pI}); | ||
353 | } | ||
354 | |||
355 | /** | ||
356 | * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, | ||
357 | * under any possible substitution of the unspecified parameters (if any). | ||
358 | * @param pT the fixed value of pattern parameter T, or null if not bound. | ||
359 | * @param pI the fixed value of pattern parameter I, or null if not bound. | ||
360 | * @return true if the input is a valid (partial) match of the pattern. | ||
361 | * | ||
362 | */ | ||
363 | public boolean hasMatch(final FAMTerminator pT, final InformationLink pI) { | ||
364 | return rawHasMatch(new Object[]{pT, pI}); | ||
365 | } | ||
366 | |||
367 | /** | ||
368 | * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. | ||
369 | * @param pT the fixed value of pattern parameter T, or null if not bound. | ||
370 | * @param pI the fixed value of pattern parameter I, or null if not bound. | ||
371 | * @return the number of pattern matches found. | ||
372 | * | ||
373 | */ | ||
374 | public int countMatches(final FAMTerminator pT, final InformationLink pI) { | ||
375 | return rawCountMatches(new Object[]{pT, pI}); | ||
376 | } | ||
377 | |||
378 | /** | ||
379 | * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
380 | * Neither determinism nor randomness of selection is guaranteed. | ||
381 | * @param pT the fixed value of pattern parameter T, or null if not bound. | ||
382 | * @param pI the fixed value of pattern parameter I, or null if not bound. | ||
383 | * @param processor the action that will process the selected match. | ||
384 | * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked | ||
385 | * | ||
386 | */ | ||
387 | public boolean forOneArbitraryMatch(final FAMTerminator pT, final InformationLink pI, final Consumer<? super TerminatorAndInformation.Match> processor) { | ||
388 | return rawForOneArbitraryMatch(new Object[]{pT, pI}, processor); | ||
389 | } | ||
390 | |||
391 | /** | ||
392 | * Returns a new (partial) match. | ||
393 | * This can be used e.g. to call the matcher with a partial match. | ||
394 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
395 | * @param pT the fixed value of pattern parameter T, or null if not bound. | ||
396 | * @param pI the fixed value of pattern parameter I, or null if not bound. | ||
397 | * @return the (partial) match object. | ||
398 | * | ||
399 | */ | ||
400 | public TerminatorAndInformation.Match newMatch(final FAMTerminator pT, final InformationLink pI) { | ||
401 | return TerminatorAndInformation.Match.newMatch(pT, pI); | ||
402 | } | ||
403 | |||
404 | /** | ||
405 | * Retrieve the set of values that occur in matches for T. | ||
406 | * @return the Set of all values or empty set if there are no matches | ||
407 | * | ||
408 | */ | ||
409 | protected Stream<FAMTerminator> rawStreamAllValuesOfT(final Object[] parameters) { | ||
410 | return rawStreamAllValues(POSITION_T, parameters).map(FAMTerminator.class::cast); | ||
411 | } | ||
412 | |||
413 | /** | ||
414 | * Retrieve the set of values that occur in matches for T. | ||
415 | * @return the Set of all values or empty set if there are no matches | ||
416 | * | ||
417 | */ | ||
418 | public Set<FAMTerminator> getAllValuesOfT() { | ||
419 | return rawStreamAllValuesOfT(emptyArray()).collect(Collectors.toSet()); | ||
420 | } | ||
421 | |||
422 | /** | ||
423 | * Retrieve the set of values that occur in matches for T. | ||
424 | * @return the Set of all values or empty set if there are no matches | ||
425 | * | ||
426 | */ | ||
427 | public Stream<FAMTerminator> streamAllValuesOfT() { | ||
428 | return rawStreamAllValuesOfT(emptyArray()); | ||
429 | } | ||
430 | |||
431 | /** | ||
432 | * Retrieve the set of values that occur in matches for T. | ||
433 | * </p> | ||
434 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
435 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
436 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
437 | * | ||
438 | * @return the Stream of all values or empty set if there are no matches | ||
439 | * | ||
440 | */ | ||
441 | public Stream<FAMTerminator> streamAllValuesOfT(final TerminatorAndInformation.Match partialMatch) { | ||
442 | return rawStreamAllValuesOfT(partialMatch.toArray()); | ||
443 | } | ||
444 | |||
445 | /** | ||
446 | * Retrieve the set of values that occur in matches for T. | ||
447 | * </p> | ||
448 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
449 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
450 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
451 | * | ||
452 | * @return the Stream of all values or empty set if there are no matches | ||
453 | * | ||
454 | */ | ||
455 | public Stream<FAMTerminator> streamAllValuesOfT(final InformationLink pI) { | ||
456 | return rawStreamAllValuesOfT(new Object[]{null, pI}); | ||
457 | } | ||
458 | |||
459 | /** | ||
460 | * Retrieve the set of values that occur in matches for T. | ||
461 | * @return the Set of all values or empty set if there are no matches | ||
462 | * | ||
463 | */ | ||
464 | public Set<FAMTerminator> getAllValuesOfT(final TerminatorAndInformation.Match partialMatch) { | ||
465 | return rawStreamAllValuesOfT(partialMatch.toArray()).collect(Collectors.toSet()); | ||
466 | } | ||
467 | |||
468 | /** | ||
469 | * Retrieve the set of values that occur in matches for T. | ||
470 | * @return the Set of all values or empty set if there are no matches | ||
471 | * | ||
472 | */ | ||
473 | public Set<FAMTerminator> getAllValuesOfT(final InformationLink pI) { | ||
474 | return rawStreamAllValuesOfT(new Object[]{null, pI}).collect(Collectors.toSet()); | ||
475 | } | ||
476 | |||
477 | /** | ||
478 | * Retrieve the set of values that occur in matches for I. | ||
479 | * @return the Set of all values or empty set if there are no matches | ||
480 | * | ||
481 | */ | ||
482 | protected Stream<InformationLink> rawStreamAllValuesOfI(final Object[] parameters) { | ||
483 | return rawStreamAllValues(POSITION_I, parameters).map(InformationLink.class::cast); | ||
484 | } | ||
485 | |||
486 | /** | ||
487 | * Retrieve the set of values that occur in matches for I. | ||
488 | * @return the Set of all values or empty set if there are no matches | ||
489 | * | ||
490 | */ | ||
491 | public Set<InformationLink> getAllValuesOfI() { | ||
492 | return rawStreamAllValuesOfI(emptyArray()).collect(Collectors.toSet()); | ||
493 | } | ||
494 | |||
495 | /** | ||
496 | * Retrieve the set of values that occur in matches for I. | ||
497 | * @return the Set of all values or empty set if there are no matches | ||
498 | * | ||
499 | */ | ||
500 | public Stream<InformationLink> streamAllValuesOfI() { | ||
501 | return rawStreamAllValuesOfI(emptyArray()); | ||
502 | } | ||
503 | |||
504 | /** | ||
505 | * Retrieve the set of values that occur in matches for I. | ||
506 | * </p> | ||
507 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
508 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
509 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
510 | * | ||
511 | * @return the Stream of all values or empty set if there are no matches | ||
512 | * | ||
513 | */ | ||
514 | public Stream<InformationLink> streamAllValuesOfI(final TerminatorAndInformation.Match partialMatch) { | ||
515 | return rawStreamAllValuesOfI(partialMatch.toArray()); | ||
516 | } | ||
517 | |||
518 | /** | ||
519 | * Retrieve the set of values that occur in matches for I. | ||
520 | * </p> | ||
521 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
522 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
523 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
524 | * | ||
525 | * @return the Stream of all values or empty set if there are no matches | ||
526 | * | ||
527 | */ | ||
528 | public Stream<InformationLink> streamAllValuesOfI(final FAMTerminator pT) { | ||
529 | return rawStreamAllValuesOfI(new Object[]{pT, null}); | ||
530 | } | ||
531 | |||
532 | /** | ||
533 | * Retrieve the set of values that occur in matches for I. | ||
534 | * @return the Set of all values or empty set if there are no matches | ||
535 | * | ||
536 | */ | ||
537 | public Set<InformationLink> getAllValuesOfI(final TerminatorAndInformation.Match partialMatch) { | ||
538 | return rawStreamAllValuesOfI(partialMatch.toArray()).collect(Collectors.toSet()); | ||
539 | } | ||
540 | |||
541 | /** | ||
542 | * Retrieve the set of values that occur in matches for I. | ||
543 | * @return the Set of all values or empty set if there are no matches | ||
544 | * | ||
545 | */ | ||
546 | public Set<InformationLink> getAllValuesOfI(final FAMTerminator pT) { | ||
547 | return rawStreamAllValuesOfI(new Object[]{pT, null}).collect(Collectors.toSet()); | ||
548 | } | ||
549 | |||
550 | @Override | ||
551 | protected TerminatorAndInformation.Match tupleToMatch(final Tuple t) { | ||
552 | try { | ||
553 | return TerminatorAndInformation.Match.newMatch((FAMTerminator) t.get(POSITION_T), (InformationLink) t.get(POSITION_I)); | ||
554 | } catch(ClassCastException e) { | ||
555 | LOGGER.error("Element(s) in tuple not properly typed!",e); | ||
556 | return null; | ||
557 | } | ||
558 | } | ||
559 | |||
560 | @Override | ||
561 | protected TerminatorAndInformation.Match arrayToMatch(final Object[] match) { | ||
562 | try { | ||
563 | return TerminatorAndInformation.Match.newMatch((FAMTerminator) match[POSITION_T], (InformationLink) match[POSITION_I]); | ||
564 | } catch(ClassCastException e) { | ||
565 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
566 | return null; | ||
567 | } | ||
568 | } | ||
569 | |||
570 | @Override | ||
571 | protected TerminatorAndInformation.Match arrayToMatchMutable(final Object[] match) { | ||
572 | try { | ||
573 | return TerminatorAndInformation.Match.newMutableMatch((FAMTerminator) match[POSITION_T], (InformationLink) match[POSITION_I]); | ||
574 | } catch(ClassCastException e) { | ||
575 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
576 | return null; | ||
577 | } | ||
578 | } | ||
579 | |||
580 | /** | ||
581 | * @return the singleton instance of the query specification of this pattern | ||
582 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
583 | * | ||
584 | */ | ||
585 | public static IQuerySpecification<TerminatorAndInformation.Matcher> querySpecification() { | ||
586 | return TerminatorAndInformation.instance(); | ||
587 | } | ||
588 | } | ||
589 | |||
590 | private TerminatorAndInformation() { | ||
591 | super(GeneratedPQuery.INSTANCE); | ||
592 | } | ||
593 | |||
594 | /** | ||
595 | * @return the singleton instance of the query specification | ||
596 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
597 | * | ||
598 | */ | ||
599 | public static TerminatorAndInformation instance() { | ||
600 | try{ | ||
601 | return LazyHolder.INSTANCE; | ||
602 | } catch (ExceptionInInitializerError err) { | ||
603 | throw processInitializerError(err); | ||
604 | } | ||
605 | } | ||
606 | |||
607 | @Override | ||
608 | protected TerminatorAndInformation.Matcher instantiate(final ViatraQueryEngine engine) { | ||
609 | return TerminatorAndInformation.Matcher.on(engine); | ||
610 | } | ||
611 | |||
612 | @Override | ||
613 | public TerminatorAndInformation.Matcher instantiate() { | ||
614 | return TerminatorAndInformation.Matcher.create(); | ||
615 | } | ||
616 | |||
617 | @Override | ||
618 | public TerminatorAndInformation.Match newEmptyMatch() { | ||
619 | return TerminatorAndInformation.Match.newEmptyMatch(); | ||
620 | } | ||
621 | |||
622 | @Override | ||
623 | public TerminatorAndInformation.Match newMatch(final Object... parameters) { | ||
624 | return TerminatorAndInformation.Match.newMatch((ca.mcgill.ecse.dslreasoner.standalone.test.fam.FAMTerminator) parameters[0], (ca.mcgill.ecse.dslreasoner.standalone.test.fam.InformationLink) parameters[1]); | ||
625 | } | ||
626 | |||
627 | /** | ||
628 | * Inner class allowing the singleton instance of {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.TerminatorAndInformation (visibility: PUBLIC, simpleName: TerminatorAndInformation, identifier: ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.TerminatorAndInformation, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
629 | * <b>not</b> at the class load time of the outer class, | ||
630 | * but rather at the first call to {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.TerminatorAndInformation (visibility: PUBLIC, simpleName: TerminatorAndInformation, identifier: ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.TerminatorAndInformation, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
631 | * | ||
632 | * <p> This workaround is required e.g. to support recursion. | ||
633 | * | ||
634 | */ | ||
635 | private static class LazyHolder { | ||
636 | private final static TerminatorAndInformation INSTANCE = new TerminatorAndInformation(); | ||
637 | |||
638 | /** | ||
639 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
640 | * This initialization order is required to support indirect recursion. | ||
641 | * | ||
642 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
643 | * | ||
644 | */ | ||
645 | private final static Object STATIC_INITIALIZER = ensureInitialized(); | ||
646 | |||
647 | public static Object ensureInitialized() { | ||
648 | INSTANCE.ensureInitializedInternal(); | ||
649 | return null; | ||
650 | } | ||
651 | } | ||
652 | |||
653 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
654 | private final static TerminatorAndInformation.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
655 | |||
656 | private final PParameter parameter_T = new PParameter("T", "ca.mcgill.ecse.dslreasoner.standalone.test.fam.FAMTerminator", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("FamMetamodel", "FAMTerminator")), PParameterDirection.INOUT); | ||
657 | |||
658 | private final PParameter parameter_I = new PParameter("I", "ca.mcgill.ecse.dslreasoner.standalone.test.fam.InformationLink", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("FamMetamodel", "InformationLink")), PParameterDirection.INOUT); | ||
659 | |||
660 | private final List<PParameter> parameters = Arrays.asList(parameter_T, parameter_I); | ||
661 | |||
662 | private GeneratedPQuery() { | ||
663 | super(PVisibility.PUBLIC); | ||
664 | } | ||
665 | |||
666 | @Override | ||
667 | public String getFullyQualifiedName() { | ||
668 | return "ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.terminatorAndInformation"; | ||
669 | } | ||
670 | |||
671 | @Override | ||
672 | public List<String> getParameterNames() { | ||
673 | return Arrays.asList("T","I"); | ||
674 | } | ||
675 | |||
676 | @Override | ||
677 | public List<PParameter> getParameters() { | ||
678 | return parameters; | ||
679 | } | ||
680 | |||
681 | @Override | ||
682 | public Set<PBody> doGetContainedBodies() { | ||
683 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
684 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
685 | { | ||
686 | PBody body = new PBody(this); | ||
687 | PVariable var_T = body.getOrCreateVariableByName("T"); | ||
688 | PVariable var_I = body.getOrCreateVariableByName("I"); | ||
689 | PVariable var_Out = body.getOrCreateVariableByName("Out"); | ||
690 | new TypeConstraint(body, Tuples.flatTupleOf(var_T), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FamMetamodel", "FAMTerminator"))); | ||
691 | new TypeConstraint(body, Tuples.flatTupleOf(var_I), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FamMetamodel", "InformationLink"))); | ||
692 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
693 | new ExportedParameter(body, var_T, parameter_T), | ||
694 | new ExportedParameter(body, var_I, parameter_I) | ||
695 | )); | ||
696 | // FunctionalOutput.outgoingLinks(Out,I) | ||
697 | new TypeConstraint(body, Tuples.flatTupleOf(var_Out), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FamMetamodel", "FunctionalOutput"))); | ||
698 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
699 | new TypeConstraint(body, Tuples.flatTupleOf(var_Out, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("FamMetamodel", "FunctionalOutput", "outgoingLinks"))); | ||
700 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FamMetamodel", "InformationLink"))); | ||
701 | new Equality(body, var__virtual_0_, var_I); | ||
702 | // FunctionalOutput.terminator(Out,T) | ||
703 | new TypeConstraint(body, Tuples.flatTupleOf(var_Out), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FamMetamodel", "FunctionalOutput"))); | ||
704 | PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}"); | ||
705 | new TypeConstraint(body, Tuples.flatTupleOf(var_Out, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("FamMetamodel", "FunctionalData", "terminator"))); | ||
706 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FamMetamodel", "FAMTerminator"))); | ||
707 | new Equality(body, var__virtual_1_, var_T); | ||
708 | bodies.add(body); | ||
709 | } | ||
710 | { | ||
711 | PBody body = new PBody(this); | ||
712 | PVariable var_T = body.getOrCreateVariableByName("T"); | ||
713 | PVariable var_I = body.getOrCreateVariableByName("I"); | ||
714 | PVariable var_In = body.getOrCreateVariableByName("In"); | ||
715 | new TypeConstraint(body, Tuples.flatTupleOf(var_T), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FamMetamodel", "FAMTerminator"))); | ||
716 | new TypeConstraint(body, Tuples.flatTupleOf(var_I), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FamMetamodel", "InformationLink"))); | ||
717 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
718 | new ExportedParameter(body, var_T, parameter_T), | ||
719 | new ExportedParameter(body, var_I, parameter_I) | ||
720 | )); | ||
721 | // InformationLink.to(I,In) | ||
722 | new TypeConstraint(body, Tuples.flatTupleOf(var_I), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FamMetamodel", "InformationLink"))); | ||
723 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
724 | new TypeConstraint(body, Tuples.flatTupleOf(var_I, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("FamMetamodel", "InformationLink", "to"))); | ||
725 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FamMetamodel", "FunctionalInput"))); | ||
726 | new Equality(body, var__virtual_0_, var_In); | ||
727 | // FunctionalInput.terminator(In,T) | ||
728 | new TypeConstraint(body, Tuples.flatTupleOf(var_In), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FamMetamodel", "FunctionalInput"))); | ||
729 | PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}"); | ||
730 | new TypeConstraint(body, Tuples.flatTupleOf(var_In, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("FamMetamodel", "FunctionalData", "terminator"))); | ||
731 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FamMetamodel", "FAMTerminator"))); | ||
732 | new Equality(body, var__virtual_1_, var_T); | ||
733 | bodies.add(body); | ||
734 | } | ||
735 | { | ||
736 | PAnnotation annotation = new PAnnotation("Constraint"); | ||
737 | annotation.addAttribute("message", "terminatorAndInformation"); | ||
738 | annotation.addAttribute("severity", "error"); | ||
739 | annotation.addAttribute("key", Arrays.asList(new Object[] { | ||
740 | new ParameterReference("T") | ||
741 | })); | ||
742 | addAnnotation(annotation); | ||
743 | } | ||
744 | return bodies; | ||
745 | } | ||
746 | } | ||
747 | } | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.classpath b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.classpath index 3f0838b6..f03a6d83 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.classpath +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.classpath | |||
@@ -5,5 +5,6 @@ | |||
5 | <classpathentry kind="src" path="src"/> | 5 | <classpathentry kind="src" path="src"/> |
6 | <classpathentry kind="src" path="src-gen"/> | 6 | <classpathentry kind="src" path="src-gen"/> |
7 | <classpathentry kind="src" path="xtend-gen"/> | 7 | <classpathentry kind="src" path="xtend-gen"/> |
8 | <classpathentry kind="src" path="queries"/> | ||
8 | <classpathentry kind="output" path="bin"/> | 9 | <classpathentry kind="output" path="bin"/> |
9 | </classpath> | 10 | </classpath> |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF index 2ea274a4..8b69d9a8 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF | |||
@@ -3,7 +3,11 @@ Bundle-ManifestVersion: 2 | |||
3 | Bundle-Name: Test | 3 | Bundle-Name: Test |
4 | Bundle-SymbolicName: ca.mcgill.ecse.dslreasoner.vampire.test;singleton:=true | 4 | Bundle-SymbolicName: ca.mcgill.ecse.dslreasoner.vampire.test;singleton:=true |
5 | Bundle-Version: 1.0.0.qualifier | 5 | Bundle-Version: 1.0.0.qualifier |
6 | Export-Package: ca.mcgill.ecse.dslreasoner.vampire.queries | 6 | Export-Package: ca.mcgill.ecse.dslreasoner.vampire.queries, |
7 | ca.mcgill.ecse.dslreasoner.vampire.test.queries.ecore, | ||
8 | ca.mcgill.ecse.dslreasoner.vampire.test.queries.fam, | ||
9 | ca.mcgill.ecse.dslreasoner.vampire.test.queries.filesystem, | ||
10 | ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu | ||
7 | Require-Bundle: org.eclipse.viatra.addon.querybasedfeatures.runtime, | 11 | Require-Bundle: org.eclipse.viatra.addon.querybasedfeatures.runtime, |
8 | org.eclipse.emf.ecore, | 12 | org.eclipse.emf.ecore, |
9 | org.eclipse.viatra.query.runtime.rete, | 13 | org.eclipse.viatra.query.runtime.rete, |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FaModel.xmi b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FAM/FaModel.xmi index cef17e1b..cef17e1b 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FaModel.xmi +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FAM/FaModel.xmi | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/Fam.logicproblem b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/Fam.logicproblem index 18e58ab0..4f0bbdb1 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/Fam.logicproblem +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/Fam.logicproblem | |||
@@ -1,7 +1,7 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | 1 | <?xml version="1.0" encoding="ASCII"?> |
2 | <language:LogicProblem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/ecore2logicannotation" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" xmlns:language_1="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language"> | 2 | <language:LogicProblem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/ecore2logicannotation" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" xmlns:language_1="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language"> |
3 | <types xsi:type="language_1:TypeDeclaration" name="FunctionalElement class" subtypes="//@types.2" isAbstract="true"/> | 3 | <types xsi:type="language_1:TypeDeclaration" name="FunctionalElement class" subtypes="//@types.2" isAbstract="true"/> |
4 | <types xsi:type="language_1:TypeDeclaration" name="FunctionalArchitectureModel class"/> | 4 | <types xsi:type="language_1:TypeDeclaration" name="FunctionalArchitectureModel class" subtypes="//@types.10 //@types.11" isAbstract="true"/> |
5 | <types xsi:type="language_1:TypeDeclaration" name="Function class" supertypes="//@types.0"/> | 5 | <types xsi:type="language_1:TypeDeclaration" name="Function class" supertypes="//@types.0"/> |
6 | <types xsi:type="language_1:TypeDeclaration" name="FAMTerminator class"/> | 6 | <types xsi:type="language_1:TypeDeclaration" name="FAMTerminator class"/> |
7 | <types xsi:type="language_1:TypeDeclaration" name="InformationLink class"/> | 7 | <types xsi:type="language_1:TypeDeclaration" name="InformationLink class"/> |
@@ -10,6 +10,8 @@ | |||
10 | <types xsi:type="language_1:TypeDeclaration" name="FunctionalOutput class" supertypes="//@types.8"/> | 10 | <types xsi:type="language_1:TypeDeclaration" name="FunctionalOutput class" supertypes="//@types.8"/> |
11 | <types xsi:type="language_1:TypeDeclaration" name="FunctionalData class" subtypes="//@types.6 //@types.7" isAbstract="true"/> | 11 | <types xsi:type="language_1:TypeDeclaration" name="FunctionalData class" subtypes="//@types.6 //@types.7" isAbstract="true"/> |
12 | <types xsi:type="language_1:TypeDefinition" name="FunctionType enum" elements="//@elements.0 //@elements.1 //@elements.2"/> | 12 | <types xsi:type="language_1:TypeDefinition" name="FunctionType enum" elements="//@elements.0 //@elements.1 //@elements.2"/> |
13 | <types xsi:type="language_1:TypeDefinition" name="FunctionalArchitectureModel class DefinedPart" supertypes="//@types.1" elements="//@elements.3"/> | ||
14 | <types xsi:type="language_1:TypeDeclaration" name="FunctionalArchitectureModel class UndefinedPart" supertypes="//@types.1"/> | ||
13 | <assertions name="upperMultiplicity interface FunctionalElement" annotations="//@annotations.0"> | 15 | <assertions name="upperMultiplicity interface FunctionalElement" annotations="//@annotations.0"> |
14 | <value xsi:type="language_1:Forall"> | 16 | <value xsi:type="language_1:Forall"> |
15 | <quantifiedVariables name="src"> | 17 | <quantifiedVariables name="src"> |
@@ -557,7 +559,8 @@ | |||
557 | <elements name="Root literal FunctionType" definedInType="//@types.9"/> | 559 | <elements name="Root literal FunctionType" definedInType="//@types.9"/> |
558 | <elements name="Intermediate literal FunctionType" definedInType="//@types.9"/> | 560 | <elements name="Intermediate literal FunctionType" definedInType="//@types.9"/> |
559 | <elements name="Leaf literal FunctionType" definedInType="//@types.9"/> | 561 | <elements name="Leaf literal FunctionType" definedInType="//@types.9"/> |
560 | <containmentHierarchies typesOrderedInHierarchy="//@types.8 //@types.5 //@types.4 //@types.6 //@types.1 //@types.7 //@types.3 //@types.2 //@types.0" containmentRelations="//@relations.0 //@relations.3 //@relations.4 //@relations.8 //@relations.11 //@relations.12"/> | 562 | <elements name="o 1" definedInType="//@types.10"/> |
563 | <containmentHierarchies typesOrderedInHierarchy="//@types.1 //@types.5 //@types.6 //@types.3 //@types.8 //@types.7 //@types.0 //@types.2 //@types.4 //@types.10 //@types.11" containmentRelations="//@relations.0 //@relations.3 //@relations.4 //@relations.8 //@relations.11 //@relations.12"/> | ||
561 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.0" relation="//@relations.0" upper="1"/> | 564 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.0" relation="//@relations.0" upper="1"/> |
562 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.1" relation="//@relations.1" lower="1"/> | 565 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.1" relation="//@relations.1" lower="1"/> |
563 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.2" relation="//@relations.1" upper="1"/> | 566 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.2" relation="//@relations.1" upper="1"/> |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/vampireProblem.tptp b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/vampireProblem.tptp deleted file mode 100644 index 3d49d42c..00000000 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/vampireProblem.tptp +++ /dev/null | |||
@@ -1,72 +0,0 @@ | |||
1 | % This is an initial Test Comment | ||
2 | fof ( typeDef_FunctionType , axiom , ! [ A ] : ( t_FunctionType ( A ) <=> ( object ( A ) & ( ( e_Root_FunctionType ( A ) & ( ~ e_Intermediate_FunctionType ( A ) & ~ e_Leaf_FunctionType ( A ) ) ) | ( ( ~ e_Root_FunctionType ( A ) & ( e_Intermediate_FunctionType ( A ) & ~ e_Leaf_FunctionType ( A ) ) ) | ( ~ e_Root_FunctionType ( A ) & ( ~ e_Intermediate_FunctionType ( A ) & e_Leaf_FunctionType ( A ) ) ) ) ) ) ) ) . | ||
3 | fof ( enumScope_FunctionType_Root , axiom , ! [ A ] : ( A = eo1 <=> e_Root_FunctionType ( A ) ) ) . | ||
4 | fof ( enumScope_FunctionType_Intermediate , axiom , ! [ A ] : ( A = eo2 <=> e_Intermediate_FunctionType ( A ) ) ) . | ||
5 | fof ( enumScope_FunctionType_Leaf , axiom , ! [ A ] : ( A = eo3 <=> e_Leaf_FunctionType ( A ) ) ) . | ||
6 | fof ( notObjectHandler , axiom , ! [ A ] : ( ~ object ( A ) <=> ( ~ t_FunctionalElement ( A ) & ( ~ t_FunctionalArchitectureModel ( A ) & ( ~ t_Function ( A ) & ( ~ t_FAMTerminator ( A ) & ( ~ t_InformationLink ( A ) & ( ~ t_FunctionalInterface ( A ) & ( ~ t_FunctionalInput ( A ) & ( ~ t_FunctionalOutput ( A ) & ( ~ t_FunctionalData ( A ) & ~ t_FunctionType ( A ) ) ) ) ) ) ) ) ) ) ) ) . | ||
7 | fof ( inheritanceHierarchyHandler , axiom , ! [ A ] : ( object ( A ) <=> ( ( t_FunctionalArchitectureModel ( A ) & ( ~ t_FunctionalInput ( A ) & ( ~ t_Function ( A ) & ( ~ t_FAMTerminator ( A ) & ( ~ t_FunctionType ( A ) & ( ~ t_FunctionalElement ( A ) & ( ~ t_FunctionalOutput ( A ) & ( ~ t_FunctionalData ( A ) & ( ~ t_InformationLink ( A ) & ~ t_FunctionalInterface ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ t_FunctionalArchitectureModel ( A ) & ( t_FunctionalInput ( A ) & ( ~ t_Function ( A ) & ( ~ t_FAMTerminator ( A ) & ( ~ t_FunctionType ( A ) & ( ~ t_FunctionalElement ( A ) & ( ~ t_FunctionalOutput ( A ) & ( t_FunctionalData ( A ) & ( ~ t_InformationLink ( A ) & ~ t_FunctionalInterface ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ t_FunctionalArchitectureModel ( A ) & ( ~ t_FunctionalInput ( A ) & ( t_Function ( A ) & ( ~ t_FAMTerminator ( A ) & ( ~ t_FunctionType ( A ) & ( t_FunctionalElement ( A ) & ( ~ t_FunctionalOutput ( A ) & ( ~ t_FunctionalData ( A ) & ( ~ t_InformationLink ( A ) & ~ t_FunctionalInterface ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ t_FunctionalArchitectureModel ( A ) & ( ~ t_FunctionalInput ( A ) & ( ~ t_Function ( A ) & ( t_FAMTerminator ( A ) & ( ~ t_FunctionType ( A ) & ( ~ t_FunctionalElement ( A ) & ( ~ t_FunctionalOutput ( A ) & ( ~ t_FunctionalData ( A ) & ( ~ t_InformationLink ( A ) & ~ t_FunctionalInterface ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ t_FunctionalArchitectureModel ( A ) & ( ~ t_FunctionalInput ( A ) & ( ~ t_Function ( A ) & ( ~ t_FAMTerminator ( A ) & ( t_FunctionType ( A ) & ( ~ t_FunctionalElement ( A ) & ( ~ t_FunctionalOutput ( A ) & ( ~ t_FunctionalData ( A ) & ( ~ t_InformationLink ( A ) & ~ t_FunctionalInterface ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ t_FunctionalArchitectureModel ( A ) & ( ~ t_FunctionalInput ( A ) & ( ~ t_Function ( A ) & ( ~ t_FAMTerminator ( A ) & ( ~ t_FunctionType ( A ) & ( ~ t_FunctionalElement ( A ) & ( t_FunctionalOutput ( A ) & ( t_FunctionalData ( A ) & ( ~ t_InformationLink ( A ) & ~ t_FunctionalInterface ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ t_FunctionalArchitectureModel ( A ) & ( ~ t_FunctionalInput ( A ) & ( ~ t_Function ( A ) & ( ~ t_FAMTerminator ( A ) & ( ~ t_FunctionType ( A ) & ( ~ t_FunctionalElement ( A ) & ( ~ t_FunctionalOutput ( A ) & ( ~ t_FunctionalData ( A ) & ( t_InformationLink ( A ) & ~ t_FunctionalInterface ( A ) ) ) ) ) ) ) ) ) ) | ( ~ t_FunctionalArchitectureModel ( A ) & ( ~ t_FunctionalInput ( A ) & ( ~ t_Function ( A ) & ( ~ t_FAMTerminator ( A ) & ( ~ t_FunctionType ( A ) & ( ~ t_FunctionalElement ( A ) & ( ~ t_FunctionalOutput ( A ) & ( ~ t_FunctionalData ( A ) & ( ~ t_InformationLink ( A ) & t_FunctionalInterface ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) . | ||
8 | fof ( typeScope_min_object , axiom , ! [ A ] : ( ( A = o1 | ( A = o2 | ( A = o3 | ( A = o4 | ( A = eo1 | ( A = eo2 | A = eo3 ) ) ) ) ) ) => object ( A ) ) ) . | ||
9 | fof ( typeScope_max_object , axiom , ! [ A ] : ( object ( A ) => ( A = eo1 | ( A = eo2 | ( A = eo3 | ( A = o1 | ( A = o2 | ( A = o3 | ( A = o4 | A = o5 ) ) ) ) ) ) ) ) ) . | ||
10 | fof ( typeScope_min_t_Function , axiom , ! [ A ] : ( A = o2 => ( t_Function ( A ) & object ( A ) ) ) ) . | ||
11 | fof ( typeScope_min_t_FunctionalOutput , axiom , ! [ A ] : ( ( A = o3 | ( A = o4 | A = o5 ) ) => ( t_FunctionalOutput ( A ) & object ( A ) ) ) ) . | ||
12 | fof ( typeScope_min_t_FunctionalInterface , axiom , ! [ A ] : ( ( A = o6 | A = o7 ) => ( t_FunctionalInterface ( A ) & object ( A ) ) ) ) . | ||
13 | fof ( typeScope_max_t_Function , axiom , ! [ A ] : ( ( t_Function ( A ) & object ( A ) ) => A = o2 ) ) . | ||
14 | fof ( typeScope_max_t_FunctionalOutput , axiom , ! [ A ] : ( ( t_FunctionalOutput ( A ) & object ( A ) ) => ( A = o3 | ( A = o4 | A = o5 ) ) ) ) . | ||
15 | fof ( t_uniqueness_eo1 , axiom , eo1 != eo2 & ( eo1 != eo3 & ( eo1 != o1 & ( eo1 != o2 & ( eo1 != o3 & ( eo1 != o4 & eo1 != o5 ) ) ) ) ) ) . | ||
16 | fof ( t_uniqueness_eo2 , axiom , eo2 != eo3 & ( eo2 != o1 & ( eo2 != o2 & ( eo2 != o3 & ( eo2 != o4 & eo2 != o5 ) ) ) ) ) . | ||
17 | fof ( t_uniqueness_eo3 , axiom , eo3 != o1 & ( eo3 != o2 & ( eo3 != o3 & ( eo3 != o4 & eo3 != o5 ) ) ) ) . | ||
18 | fof ( t_uniqueness_o1 , axiom , o1 != o2 & ( o1 != o3 & ( o1 != o4 & o1 != o5 ) ) ) . | ||
19 | fof ( t_uniqueness_o2 , axiom , o2 != o3 & ( o2 != o4 & o2 != o5 ) ) . | ||
20 | fof ( t_uniqueness_o3 , axiom , o3 != o4 & o3 != o5 ) . | ||
21 | fof ( t_uniqueness_o4 , axiom , o4 != o5 ) . | ||
22 | fof ( compliance_interface_FunctionalElement , axiom , ! [ V_0 , V_1 ] : ( r_interface_FunctionalElement ( V_0 , V_1 ) => ( t_FunctionalElement ( V_0 ) & t_FunctionalInterface ( V_1 ) ) ) ) . | ||
23 | fof ( compliance_model_FunctionalElement , axiom , ! [ V_0 , V_1 ] : ( r_model_FunctionalElement ( V_0 , V_1 ) => ( t_FunctionalElement ( V_0 ) & t_FunctionalArchitectureModel ( V_1 ) ) ) ) . | ||
24 | fof ( compliance_parent_FunctionalElement , axiom , ! [ V_0 , V_1 ] : ( r_parent_FunctionalElement ( V_0 , V_1 ) => ( t_FunctionalElement ( V_0 ) & t_Function ( V_1 ) ) ) ) . | ||
25 | fof ( compliance_rootElements_FunctionalArchitectureModel , axiom , ! [ V_0 , V_1 ] : ( r_rootElements_FunctionalArchitectureModel ( V_0 , V_1 ) => ( t_FunctionalArchitectureModel ( V_0 ) & t_FunctionalElement ( V_1 ) ) ) ) . | ||
26 | fof ( compliance_subElements_Function , axiom , ! [ V_0 , V_1 ] : ( r_subElements_Function ( V_0 , V_1 ) => ( t_Function ( V_0 ) & t_FunctionalElement ( V_1 ) ) ) ) . | ||
27 | fof ( compliance_data_FAMTerminator , axiom , ! [ V_0 , V_1 ] : ( r_data_FAMTerminator ( V_0 , V_1 ) => ( t_FAMTerminator ( V_0 ) & t_FunctionalData ( V_1 ) ) ) ) . | ||
28 | fof ( compliance_from_InformationLink , axiom , ! [ V_0 , V_1 ] : ( r_from_InformationLink ( V_0 , V_1 ) => ( t_InformationLink ( V_0 ) & t_FunctionalOutput ( V_1 ) ) ) ) . | ||
29 | fof ( compliance_to_InformationLink , axiom , ! [ V_0 , V_1 ] : ( r_to_InformationLink ( V_0 , V_1 ) => ( t_InformationLink ( V_0 ) & t_FunctionalInput ( V_1 ) ) ) ) . | ||
30 | fof ( compliance_data_FunctionalInterface , axiom , ! [ V_0 , V_1 ] : ( r_data_FunctionalInterface ( V_0 , V_1 ) => ( t_FunctionalInterface ( V_0 ) & t_FunctionalData ( V_1 ) ) ) ) . | ||
31 | fof ( compliance_element_FunctionalInterface , axiom , ! [ V_0 , V_1 ] : ( r_element_FunctionalInterface ( V_0 , V_1 ) => ( t_FunctionalInterface ( V_0 ) & t_FunctionalElement ( V_1 ) ) ) ) . | ||
32 | fof ( compliance_IncomingLinks_FunctionalInput , axiom , ! [ V_0 , V_1 ] : ( r_IncomingLinks_FunctionalInput ( V_0 , V_1 ) => ( t_FunctionalInput ( V_0 ) & t_InformationLink ( V_1 ) ) ) ) . | ||
33 | fof ( compliance_outgoingLinks_FunctionalOutput , axiom , ! [ V_0 , V_1 ] : ( r_outgoingLinks_FunctionalOutput ( V_0 , V_1 ) => ( t_FunctionalOutput ( V_0 ) & t_InformationLink ( V_1 ) ) ) ) . | ||
34 | fof ( compliance_terminator_FunctionalData , axiom , ! [ V_0 , V_1 ] : ( r_terminator_FunctionalData ( V_0 , V_1 ) => ( t_FunctionalData ( V_0 ) & t_FAMTerminator ( V_1 ) ) ) ) . | ||
35 | fof ( compliance_interface_FunctionalData , axiom , ! [ V_0 , V_1 ] : ( r_interface_FunctionalData ( V_0 , V_1 ) => ( t_FunctionalData ( V_0 ) & t_FunctionalInterface ( V_1 ) ) ) ) . | ||
36 | fof ( compliance_type_Function , axiom , ! [ V_0 , V_1 ] : ( r_type_Function ( V_0 , V_1 ) => ( t_Function ( V_0 ) & t_FunctionType ( V_1 ) ) ) ) . | ||
37 | fof ( containment_topLevel_t_FunctionalArchitectureModel , axiom , ! [ A ] : ( t_FunctionalArchitectureModel ( A ) <=> A = o1 ) ) . | ||
38 | fof ( containment_noDup_r_interface_FunctionalElement , axiom , ? [ A , B ] : ( r_interface_FunctionalElement ( A , B ) => ~ ? [ C , B ] : r_interface_FunctionalElement ( C , B ) ) ) . | ||
39 | fof ( containment_noDup_r_rootElements_FunctionalArchitectureModel , axiom , ? [ A , B ] : ( r_rootElements_FunctionalArchitectureModel ( A , B ) => ~ ? [ C , B ] : r_rootElements_FunctionalArchitectureModel ( C , B ) ) ) . | ||
40 | fof ( containment_noDup_r_subElements_Function , axiom , ? [ A , B ] : ( r_subElements_Function ( A , B ) => ~ ? [ C , B ] : r_subElements_Function ( C , B ) ) ) . | ||
41 | fof ( containment_noDup_r_data_FunctionalInterface , axiom , ? [ A , B ] : ( r_data_FunctionalInterface ( A , B ) => ~ ? [ C , B ] : r_data_FunctionalInterface ( C , B ) ) ) . | ||
42 | fof ( containment_noDup_r_outgoingLinks_FunctionalOutput , axiom , ? [ A , B ] : ( r_outgoingLinks_FunctionalOutput ( A , B ) => ~ ? [ C , B ] : r_outgoingLinks_FunctionalOutput ( C , B ) ) ) . | ||
43 | fof ( containment_noDup_r_terminator_FunctionalData , axiom , ? [ A , B ] : ( r_terminator_FunctionalData ( A , B ) => ~ ? [ C , B ] : r_terminator_FunctionalData ( C , B ) ) ) . | ||
44 | fof ( containment_t_FunctionalElement , axiom , ! [ A ] : ( t_FunctionalElement ( A ) => ? [ B ] : ( ( r_rootElements_FunctionalArchitectureModel ( B , A ) & ~ r_subElements_Function ( B , A ) ) | ( ~ r_rootElements_FunctionalArchitectureModel ( B , A ) & r_subElements_Function ( B , A ) ) ) ) ) . | ||
45 | fof ( containment_t_FunctionalData , axiom , ! [ A ] : ( t_FunctionalData ( A ) => ? [ B ] : r_data_FunctionalInterface ( B , A ) ) ) . | ||
46 | fof ( containment_t_InformationLink , axiom , ! [ A ] : ( t_InformationLink ( A ) => ? [ B ] : r_outgoingLinks_FunctionalOutput ( B , A ) ) ) . | ||
47 | fof ( containment_t_FunctionalInterface , axiom , ! [ A ] : ( t_FunctionalInterface ( A ) => ? [ B ] : r_interface_FunctionalElement ( B , A ) ) ) . | ||
48 | fof ( containment_t_FAMTerminator , axiom , ! [ A ] : ( t_FAMTerminator ( A ) => ? [ B ] : r_terminator_FunctionalData ( B , A ) ) ) . | ||
49 | fof ( containment_noCycle_1 , axiom , ~ ? [ V1 ] : ( r_interface_FunctionalElement ( V1 , V1 ) | ( r_rootElements_FunctionalArchitectureModel ( V1 , V1 ) | ( r_subElements_Function ( V1 , V1 ) | ( r_data_FunctionalInterface ( V1 , V1 ) | ( r_outgoingLinks_FunctionalOutput ( V1 , V1 ) | r_terminator_FunctionalData ( V1 , V1 ) ) ) ) ) ) ) . | ||
50 | fof ( containment_noCycle_2 , axiom , ~ ? [ V1 , V2 ] : ( ( r_interface_FunctionalElement ( V1 , V2 ) | ( r_rootElements_FunctionalArchitectureModel ( V1 , V2 ) | ( r_subElements_Function ( V1 , V2 ) | ( r_data_FunctionalInterface ( V1 , V2 ) | ( r_outgoingLinks_FunctionalOutput ( V1 , V2 ) | r_terminator_FunctionalData ( V1 , V2 ) ) ) ) ) ) & ( r_interface_FunctionalElement ( V2 , V1 ) | ( r_rootElements_FunctionalArchitectureModel ( V2 , V1 ) | ( r_subElements_Function ( V2 , V1 ) | ( r_data_FunctionalInterface ( V2 , V1 ) | ( r_outgoingLinks_FunctionalOutput ( V2 , V1 ) | r_terminator_FunctionalData ( V2 , V1 ) ) ) ) ) ) ) ) . | ||
51 | fof ( containment_noCycle_3 , axiom , ~ ? [ V1 , V2 , V3 ] : ( ( r_interface_FunctionalElement ( V1 , V2 ) | ( r_rootElements_FunctionalArchitectureModel ( V1 , V2 ) | ( r_subElements_Function ( V1 , V2 ) | ( r_data_FunctionalInterface ( V1 , V2 ) | ( r_outgoingLinks_FunctionalOutput ( V1 , V2 ) | r_terminator_FunctionalData ( V1 , V2 ) ) ) ) ) ) & ( ( r_interface_FunctionalElement ( V2 , V3 ) | ( r_rootElements_FunctionalArchitectureModel ( V2 , V3 ) | ( r_subElements_Function ( V2 , V3 ) | ( r_data_FunctionalInterface ( V2 , V3 ) | ( r_outgoingLinks_FunctionalOutput ( V2 , V3 ) | r_terminator_FunctionalData ( V2 , V3 ) ) ) ) ) ) & ( r_interface_FunctionalElement ( V3 , V1 ) | ( r_rootElements_FunctionalArchitectureModel ( V3 , V1 ) | ( r_subElements_Function ( V3 , V1 ) | ( r_data_FunctionalInterface ( V3 , V1 ) | ( r_outgoingLinks_FunctionalOutput ( V3 , V1 ) | r_terminator_FunctionalData ( V3 , V1 ) ) ) ) ) ) ) ) ) . | ||
52 | fof ( containment_noCycle_4 , axiom , ~ ? [ V1 , V2 , V3 , V4 ] : ( ( r_interface_FunctionalElement ( V1 , V2 ) | ( r_rootElements_FunctionalArchitectureModel ( V1 , V2 ) | ( r_subElements_Function ( V1 , V2 ) | ( r_data_FunctionalInterface ( V1 , V2 ) | ( r_outgoingLinks_FunctionalOutput ( V1 , V2 ) | r_terminator_FunctionalData ( V1 , V2 ) ) ) ) ) ) & ( ( r_interface_FunctionalElement ( V2 , V3 ) | ( r_rootElements_FunctionalArchitectureModel ( V2 , V3 ) | ( r_subElements_Function ( V2 , V3 ) | ( r_data_FunctionalInterface ( V2 , V3 ) | ( r_outgoingLinks_FunctionalOutput ( V2 , V3 ) | r_terminator_FunctionalData ( V2 , V3 ) ) ) ) ) ) & ( ( r_interface_FunctionalElement ( V3 , V4 ) | ( r_rootElements_FunctionalArchitectureModel ( V3 , V4 ) | ( r_subElements_Function ( V3 , V4 ) | ( r_data_FunctionalInterface ( V3 , V4 ) | ( r_outgoingLinks_FunctionalOutput ( V3 , V4 ) | r_terminator_FunctionalData ( V3 , V4 ) ) ) ) ) ) & ( r_interface_FunctionalElement ( V4 , V1 ) | ( r_rootElements_FunctionalArchitectureModel ( V4 , V1 ) | ( r_subElements_Function ( V4 , V1 ) | ( r_data_FunctionalInterface ( V4 , V1 ) | ( r_outgoingLinks_FunctionalOutput ( V4 , V1 ) | r_terminator_FunctionalData ( V4 , V1 ) ) ) ) ) ) ) ) ) ) . | ||
53 | fof ( containment_noCycle_5 , axiom , ~ ? [ V1 , V2 , V3 , V4 , V5 ] : ( ( r_interface_FunctionalElement ( V1 , V2 ) | ( r_rootElements_FunctionalArchitectureModel ( V1 , V2 ) | ( r_subElements_Function ( V1 , V2 ) | ( r_data_FunctionalInterface ( V1 , V2 ) | ( r_outgoingLinks_FunctionalOutput ( V1 , V2 ) | r_terminator_FunctionalData ( V1 , V2 ) ) ) ) ) ) & ( ( r_interface_FunctionalElement ( V2 , V3 ) | ( r_rootElements_FunctionalArchitectureModel ( V2 , V3 ) | ( r_subElements_Function ( V2 , V3 ) | ( r_data_FunctionalInterface ( V2 , V3 ) | ( r_outgoingLinks_FunctionalOutput ( V2 , V3 ) | r_terminator_FunctionalData ( V2 , V3 ) ) ) ) ) ) & ( ( r_interface_FunctionalElement ( V3 , V4 ) | ( r_rootElements_FunctionalArchitectureModel ( V3 , V4 ) | ( r_subElements_Function ( V3 , V4 ) | ( r_data_FunctionalInterface ( V3 , V4 ) | ( r_outgoingLinks_FunctionalOutput ( V3 , V4 ) | r_terminator_FunctionalData ( V3 , V4 ) ) ) ) ) ) & ( ( r_interface_FunctionalElement ( V4 , V5 ) | ( r_rootElements_FunctionalArchitectureModel ( V4 , V5 ) | ( r_subElements_Function ( V4 , V5 ) | ( r_data_FunctionalInterface ( V4 , V5 ) | ( r_outgoingLinks_FunctionalOutput ( V4 , V5 ) | r_terminator_FunctionalData ( V4 , V5 ) ) ) ) ) ) & ( r_interface_FunctionalElement ( V5 , V1 ) | ( r_rootElements_FunctionalArchitectureModel ( V5 , V1 ) | ( r_subElements_Function ( V5 , V1 ) | ( r_data_FunctionalInterface ( V5 , V1 ) | ( r_outgoingLinks_FunctionalOutput ( V5 , V1 ) | r_terminator_FunctionalData ( V5 , V1 ) ) ) ) ) ) ) ) ) ) ) . | ||
54 | fof ( upperMultiplicity_interface_FunctionalElement , axiom , ! [ V_src , V_trg_1 , V_trg_2 ] : ( ( t_FunctionalElement ( V_src ) & ( t_FunctionalInterface ( V_trg_1 ) & t_FunctionalInterface ( V_trg_2 ) ) ) => ( ( r_interface_FunctionalElement ( V_src , V_trg_1 ) & r_interface_FunctionalElement ( V_src , V_trg_2 ) ) => ~ V_trg_1 != V_trg_2 ) ) ) . | ||
55 | fof ( lowerMultiplicity_model_FunctionalElement , axiom , ! [ V_src ] : ( t_FunctionalElement ( V_src ) => ? [ V_trg_1 ] : ( t_FunctionalArchitectureModel ( V_trg_1 ) & r_model_FunctionalElement ( V_src , V_trg_1 ) ) ) ) . | ||
56 | fof ( upperMultiplicity_model_FunctionalElement , axiom , ! [ V_src , V_trg_1 , V_trg_2 ] : ( ( t_FunctionalElement ( V_src ) & ( t_FunctionalArchitectureModel ( V_trg_1 ) & t_FunctionalArchitectureModel ( V_trg_2 ) ) ) => ( ( r_model_FunctionalElement ( V_src , V_trg_1 ) & r_model_FunctionalElement ( V_src , V_trg_2 ) ) => ~ V_trg_1 != V_trg_2 ) ) ) . | ||
57 | fof ( upperMultiplicity_parent_FunctionalElement , axiom , ! [ V_src , V_trg_1 , V_trg_2 ] : ( ( t_FunctionalElement ( V_src ) & ( t_Function ( V_trg_1 ) & t_Function ( V_trg_2 ) ) ) => ( ( r_parent_FunctionalElement ( V_src , V_trg_1 ) & r_parent_FunctionalElement ( V_src , V_trg_2 ) ) => ~ V_trg_1 != V_trg_2 ) ) ) . | ||
58 | fof ( upperMultiplicity_data_FAMTerminator , axiom , ! [ V_src , V_trg_1 , V_trg_2 ] : ( ( t_FAMTerminator ( V_src ) & ( t_FunctionalData ( V_trg_1 ) & t_FunctionalData ( V_trg_2 ) ) ) => ( ( r_data_FAMTerminator ( V_src , V_trg_1 ) & r_data_FAMTerminator ( V_src , V_trg_2 ) ) => ~ V_trg_1 != V_trg_2 ) ) ) . | ||
59 | fof ( upperMultiplicity_from_InformationLink , axiom , ! [ V_src , V_trg_1 , V_trg_2 ] : ( ( t_InformationLink ( V_src ) & ( t_FunctionalOutput ( V_trg_1 ) & t_FunctionalOutput ( V_trg_2 ) ) ) => ( ( r_from_InformationLink ( V_src , V_trg_1 ) & r_from_InformationLink ( V_src , V_trg_2 ) ) => ~ V_trg_1 != V_trg_2 ) ) ) . | ||
60 | fof ( lowerMultiplicity_to_InformationLink , axiom , ! [ V_src ] : ( t_InformationLink ( V_src ) => ? [ V_trg_1 ] : ( t_FunctionalInput ( V_trg_1 ) & r_to_InformationLink ( V_src , V_trg_1 ) ) ) ) . | ||
61 | fof ( upperMultiplicity_to_InformationLink , axiom , ! [ V_src , V_trg_1 , V_trg_2 ] : ( ( t_InformationLink ( V_src ) & ( t_FunctionalInput ( V_trg_1 ) & t_FunctionalInput ( V_trg_2 ) ) ) => ( ( r_to_InformationLink ( V_src , V_trg_1 ) & r_to_InformationLink ( V_src , V_trg_2 ) ) => ~ V_trg_1 != V_trg_2 ) ) ) . | ||
62 | fof ( upperMultiplicity_element_FunctionalInterface , axiom , ! [ V_src , V_trg_1 , V_trg_2 ] : ( ( t_FunctionalInterface ( V_src ) & ( t_FunctionalElement ( V_trg_1 ) & t_FunctionalElement ( V_trg_2 ) ) ) => ( ( r_element_FunctionalInterface ( V_src , V_trg_1 ) & r_element_FunctionalInterface ( V_src , V_trg_2 ) ) => ~ V_trg_1 != V_trg_2 ) ) ) . | ||
63 | fof ( upperMultiplicity_terminator_FunctionalData , axiom , ! [ V_src , V_trg_1 , V_trg_2 ] : ( ( t_FunctionalData ( V_src ) & ( t_FAMTerminator ( V_trg_1 ) & t_FAMTerminator ( V_trg_2 ) ) ) => ( ( r_terminator_FunctionalData ( V_src , V_trg_1 ) & r_terminator_FunctionalData ( V_src , V_trg_2 ) ) => ~ V_trg_1 != V_trg_2 ) ) ) . | ||
64 | fof ( upperMultiplicity_interface_FunctionalData , axiom , ! [ V_src , V_trg_1 , V_trg_2 ] : ( ( t_FunctionalData ( V_src ) & ( t_FunctionalInterface ( V_trg_1 ) & t_FunctionalInterface ( V_trg_2 ) ) ) => ( ( r_interface_FunctionalData ( V_src , V_trg_1 ) & r_interface_FunctionalData ( V_src , V_trg_2 ) ) => ~ V_trg_1 != V_trg_2 ) ) ) . | ||
65 | fof ( oppositeReference_interface_FunctionalElement , axiom , ! [ V_src , V_trg ] : ( ( t_FunctionalElement ( V_src ) & t_FunctionalInterface ( V_trg ) ) => ( r_interface_FunctionalElement ( V_src , V_trg ) <=> r_element_FunctionalInterface ( V_trg , V_src ) ) ) ) . | ||
66 | fof ( oppositeReference_parent_FunctionalElement , axiom , ! [ V_src , V_trg ] : ( ( t_FunctionalElement ( V_src ) & t_Function ( V_trg ) ) => ( r_parent_FunctionalElement ( V_src , V_trg ) <=> r_subElements_Function ( V_trg , V_src ) ) ) ) . | ||
67 | fof ( oppositeReference_data_FAMTerminator , axiom , ! [ V_src , V_trg ] : ( ( t_FAMTerminator ( V_src ) & t_FunctionalData ( V_trg ) ) => ( r_data_FAMTerminator ( V_src , V_trg ) <=> r_terminator_FunctionalData ( V_trg , V_src ) ) ) ) . | ||
68 | fof ( oppositeReference_from_InformationLink , axiom , ! [ V_src , V_trg ] : ( ( t_InformationLink ( V_src ) & t_FunctionalOutput ( V_trg ) ) => ( r_from_InformationLink ( V_src , V_trg ) <=> r_outgoingLinks_FunctionalOutput ( V_trg , V_src ) ) ) ) . | ||
69 | fof ( oppositeReference_to_InformationLink , axiom , ! [ V_src , V_trg ] : ( ( t_InformationLink ( V_src ) & t_FunctionalInput ( V_trg ) ) => ( r_to_InformationLink ( V_src , V_trg ) <=> r_IncomingLinks_FunctionalInput ( V_trg , V_src ) ) ) ) . | ||
70 | fof ( oppositeReference_data_FunctionalInterface , axiom , ! [ V_src , V_trg ] : ( ( t_FunctionalInterface ( V_src ) & t_FunctionalData ( V_trg ) ) => ( r_data_FunctionalInterface ( V_src , V_trg ) <=> r_interface_FunctionalData ( V_trg , V_src ) ) ) ) . | ||
71 | fof ( lowerMultiplicity_type_Function , axiom , ! [ V_src ] : ( t_Function ( V_src ) => ? [ V_trg_1 ] : ( t_FunctionType ( V_trg_1 ) & r_type_Function ( V_src , V_trg_1 ) ) ) ) . | ||
72 | fof ( upperMultiplicity_type_Function , axiom , ! [ V_src , V_trg_1 , V_trg_2 ] : ( ( t_Function ( V_src ) & ( t_FunctionType ( V_trg_1 ) & t_FunctionType ( V_trg_2 ) ) ) => ( ( r_type_Function ( V_src , V_trg_1 ) & r_type_Function ( V_src , V_trg_2 ) ) => ~ V_trg_1 != V_trg_2 ) ) ) . | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml index 3770f0af..0d17c01b 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml | |||
@@ -1,7 +1,10 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?><plugin> | 1 | <?xml version="1.0" encoding="UTF-8"?><plugin> |
2 | <extension id="ca.mcgill.ecse.dslreasoner.vampire.queries.FamPatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> | 2 | <extension id="ca.mcgill.ecse.dslreasoner.vampire.queries.EcorePatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> |
3 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:ca.mcgill.ecse.dslreasoner.vampire.queries.FamPatterns" id="ca.mcgill.ecse.dslreasoner.vampire.queries.FamPatterns"> | 3 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:ca.mcgill.ecse.dslreasoner.vampire.queries.EcorePatterns" id="ca.mcgill.ecse.dslreasoner.vampire.queries.EcorePatterns"> |
4 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.terminatorAndInformation"/> | 4 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.directSupertype"/> |
5 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.loopInInheritence"/> | ||
6 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.opposite"/> | ||
7 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.nonSymmetricOpposite"/> | ||
5 | </group> | 8 | </group> |
6 | </extension> | 9 | </extension> |
7 | <extension id="ca.mcgill.ecse.dslreasoner.vampire.queries.FileSystemPatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> | 10 | <extension id="ca.mcgill.ecse.dslreasoner.vampire.queries.FileSystemPatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> |
@@ -11,7 +14,18 @@ | |||
11 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.contentInNotLive"/> | 14 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.contentInNotLive"/> |
12 | </group> | 15 | </group> |
13 | </extension> | 16 | </extension> |
17 | <extension id="ca.mcgill.ecse.dslreasoner.vampire.test.queries.ecore.EcorePatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> | ||
18 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:ca.mcgill.ecse.dslreasoner.vampire.test.queries.ecore.EcorePatterns" id="ca.mcgill.ecse.dslreasoner.vampire.test.queries.ecore.EcorePatterns"> | ||
19 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.ecore.directSupertype"/> | ||
20 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.ecore.loopInInheritence"/> | ||
21 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.ecore.opposite"/> | ||
22 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.ecore.nonSymmetricOpposite"/> | ||
23 | </group> | ||
24 | </extension> | ||
14 | <extension id="extension.derived.ca.mcgill.ecse.dslreasoner.vampire.queries.live" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features"> | 25 | <extension id="extension.derived.ca.mcgill.ecse.dslreasoner.vampire.queries.live" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features"> |
15 | <wellbehaving-derived-feature classifier-name="FileSystem" feature-name="live" package-nsUri="FileSystemMetamodel"/> | 26 | <wellbehaving-derived-feature classifier-name="FileSystem" feature-name="live" package-nsUri="FileSystemMetamodel"/> |
16 | </extension> | 27 | </extension> |
28 | <extension id="extension.derived.ca.mcgill.ecse.dslreasoner.vampire.test.queries.filesystem.live" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features"> | ||
29 | <wellbehaving-derived-feature classifier-name="FileSystem" feature-name="live" package-nsUri="FileSystemMetamodel"/> | ||
30 | </extension> | ||
17 | </plugin> | 31 | </plugin> |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/FamPatterns.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/FamPatterns.java deleted file mode 100644 index cf1378da..00000000 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/FamPatterns.java +++ /dev/null | |||
@@ -1,53 +0,0 @@ | |||
1 | /** | ||
2 | * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/queries/FamPatterns.vql | ||
3 | */ | ||
4 | package ca.mcgill.ecse.dslreasoner.vampire.queries; | ||
5 | |||
6 | import ca.mcgill.ecse.dslreasoner.vampire.queries.TerminatorAndInformation; | ||
7 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
8 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedPatternGroup; | ||
9 | |||
10 | /** | ||
11 | * A pattern group formed of all public patterns defined in FamPatterns.vql. | ||
12 | * | ||
13 | * <p>Use the static instance as any {@link interface org.eclipse.viatra.query.runtime.api.IQueryGroup}, to conveniently prepare | ||
14 | * a VIATRA Query engine for matching all patterns originally defined in file FamPatterns.vql, | ||
15 | * in order to achieve better performance than one-by-one on-demand matcher initialization. | ||
16 | * | ||
17 | * <p> From package ca.mcgill.ecse.dslreasoner.vampire.queries, the group contains the definition of the following patterns: <ul> | ||
18 | * <li>terminatorAndInformation</li> | ||
19 | * </ul> | ||
20 | * | ||
21 | * @see IQueryGroup | ||
22 | * | ||
23 | */ | ||
24 | @SuppressWarnings("all") | ||
25 | public final class FamPatterns extends BaseGeneratedPatternGroup { | ||
26 | /** | ||
27 | * Access the pattern group. | ||
28 | * | ||
29 | * @return the singleton instance of the group | ||
30 | * @throws ViatraQueryRuntimeException if there was an error loading the generated code of pattern specifications | ||
31 | * | ||
32 | */ | ||
33 | public static FamPatterns instance() { | ||
34 | if (INSTANCE == null) { | ||
35 | INSTANCE = new FamPatterns(); | ||
36 | } | ||
37 | return INSTANCE; | ||
38 | } | ||
39 | |||
40 | private static FamPatterns INSTANCE; | ||
41 | |||
42 | private FamPatterns() { | ||
43 | querySpecifications.add(TerminatorAndInformation.instance()); | ||
44 | } | ||
45 | |||
46 | public TerminatorAndInformation getTerminatorAndInformation() { | ||
47 | return TerminatorAndInformation.instance(); | ||
48 | } | ||
49 | |||
50 | public TerminatorAndInformation.Matcher getTerminatorAndInformation(final ViatraQueryEngine engine) { | ||
51 | return TerminatorAndInformation.Matcher.on(engine); | ||
52 | } | ||
53 | } | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/TerminatorAndInformation.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/TerminatorAndInformation.java deleted file mode 100644 index cb0708ad..00000000 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/TerminatorAndInformation.java +++ /dev/null | |||
@@ -1,747 +0,0 @@ | |||
1 | /** | ||
2 | * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/queries/FamPatterns.vql | ||
3 | */ | ||
4 | package ca.mcgill.ecse.dslreasoner.vampire.queries; | ||
5 | |||
6 | import functionalarchitecture.FAMTerminator; | ||
7 | import functionalarchitecture.InformationLink; | ||
8 | import java.util.Arrays; | ||
9 | import java.util.Collection; | ||
10 | import java.util.LinkedHashSet; | ||
11 | import java.util.List; | ||
12 | import java.util.Objects; | ||
13 | import java.util.Optional; | ||
14 | import java.util.Set; | ||
15 | import java.util.function.Consumer; | ||
16 | import java.util.stream.Collectors; | ||
17 | import java.util.stream.Stream; | ||
18 | import org.apache.log4j.Logger; | ||
19 | import org.eclipse.emf.ecore.EClass; | ||
20 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
21 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
22 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
25 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
26 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
27 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
28 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
39 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
40 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
41 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
42 | import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil; | ||
43 | |||
44 | /** | ||
45 | * A pattern-specific query specification that can instantiate Matcher in a type-safe way. | ||
46 | * | ||
47 | * <p>Original source: | ||
48 | * <code><pre> | ||
49 | * {@literal @}Constraint(message="terminatorAndInformation", severity="error", key={T}) | ||
50 | * pattern terminatorAndInformation(T : FAMTerminator, I : InformationLink) = { | ||
51 | * FunctionalOutput.outgoingLinks(Out,I); | ||
52 | * FunctionalOutput.terminator(Out,T); | ||
53 | * } or { | ||
54 | * InformationLink.to(I,In); | ||
55 | * FunctionalInput.terminator(In,T); | ||
56 | * } | ||
57 | * </pre></code> | ||
58 | * | ||
59 | * @see Matcher | ||
60 | * @see Match | ||
61 | * | ||
62 | */ | ||
63 | @SuppressWarnings("all") | ||
64 | public final class TerminatorAndInformation extends BaseGeneratedEMFQuerySpecification<TerminatorAndInformation.Matcher> { | ||
65 | /** | ||
66 | * Pattern-specific match representation of the ca.mcgill.ecse.dslreasoner.vampire.queries.terminatorAndInformation pattern, | ||
67 | * to be used in conjunction with {@link Matcher}. | ||
68 | * | ||
69 | * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. | ||
70 | * Each instance is a (possibly partial) substitution of pattern parameters, | ||
71 | * usable to represent a match of the pattern in the result of a query, | ||
72 | * or to specify the bound (fixed) input parameters when issuing a query. | ||
73 | * | ||
74 | * @see Matcher | ||
75 | * | ||
76 | */ | ||
77 | public static abstract class Match extends BasePatternMatch { | ||
78 | private FAMTerminator fT; | ||
79 | |||
80 | private InformationLink fI; | ||
81 | |||
82 | private static List<String> parameterNames = makeImmutableList("T", "I"); | ||
83 | |||
84 | private Match(final FAMTerminator pT, final InformationLink pI) { | ||
85 | this.fT = pT; | ||
86 | this.fI = pI; | ||
87 | } | ||
88 | |||
89 | @Override | ||
90 | public Object get(final String parameterName) { | ||
91 | if ("T".equals(parameterName)) return this.fT; | ||
92 | if ("I".equals(parameterName)) return this.fI; | ||
93 | return null; | ||
94 | } | ||
95 | |||
96 | public FAMTerminator getT() { | ||
97 | return this.fT; | ||
98 | } | ||
99 | |||
100 | public InformationLink getI() { | ||
101 | return this.fI; | ||
102 | } | ||
103 | |||
104 | @Override | ||
105 | public boolean set(final String parameterName, final Object newValue) { | ||
106 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
107 | if ("T".equals(parameterName) ) { | ||
108 | this.fT = (FAMTerminator) newValue; | ||
109 | return true; | ||
110 | } | ||
111 | if ("I".equals(parameterName) ) { | ||
112 | this.fI = (InformationLink) newValue; | ||
113 | return true; | ||
114 | } | ||
115 | return false; | ||
116 | } | ||
117 | |||
118 | public void setT(final FAMTerminator pT) { | ||
119 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
120 | this.fT = pT; | ||
121 | } | ||
122 | |||
123 | public void setI(final InformationLink pI) { | ||
124 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
125 | this.fI = pI; | ||
126 | } | ||
127 | |||
128 | @Override | ||
129 | public String patternName() { | ||
130 | return "ca.mcgill.ecse.dslreasoner.vampire.queries.terminatorAndInformation"; | ||
131 | } | ||
132 | |||
133 | @Override | ||
134 | public List<String> parameterNames() { | ||
135 | return TerminatorAndInformation.Match.parameterNames; | ||
136 | } | ||
137 | |||
138 | @Override | ||
139 | public Object[] toArray() { | ||
140 | return new Object[]{fT, fI}; | ||
141 | } | ||
142 | |||
143 | @Override | ||
144 | public TerminatorAndInformation.Match toImmutable() { | ||
145 | return isMutable() ? newMatch(fT, fI) : this; | ||
146 | } | ||
147 | |||
148 | @Override | ||
149 | public String prettyPrint() { | ||
150 | StringBuilder result = new StringBuilder(); | ||
151 | result.append("\"T\"=" + prettyPrintValue(fT) + ", "); | ||
152 | result.append("\"I\"=" + prettyPrintValue(fI)); | ||
153 | return result.toString(); | ||
154 | } | ||
155 | |||
156 | @Override | ||
157 | public int hashCode() { | ||
158 | return Objects.hash(fT, fI); | ||
159 | } | ||
160 | |||
161 | @Override | ||
162 | public boolean equals(final Object obj) { | ||
163 | if (this == obj) | ||
164 | return true; | ||
165 | if (obj == null) { | ||
166 | return false; | ||
167 | } | ||
168 | if ((obj instanceof TerminatorAndInformation.Match)) { | ||
169 | TerminatorAndInformation.Match other = (TerminatorAndInformation.Match) obj; | ||
170 | return Objects.equals(fT, other.fT) && Objects.equals(fI, other.fI); | ||
171 | } else { | ||
172 | // this should be infrequent | ||
173 | if (!(obj instanceof IPatternMatch)) { | ||
174 | return false; | ||
175 | } | ||
176 | IPatternMatch otherSig = (IPatternMatch) obj; | ||
177 | return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); | ||
178 | } | ||
179 | } | ||
180 | |||
181 | @Override | ||
182 | public TerminatorAndInformation specification() { | ||
183 | return TerminatorAndInformation.instance(); | ||
184 | } | ||
185 | |||
186 | /** | ||
187 | * Returns an empty, mutable match. | ||
188 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
189 | * | ||
190 | * @return the empty match. | ||
191 | * | ||
192 | */ | ||
193 | public static TerminatorAndInformation.Match newEmptyMatch() { | ||
194 | return new Mutable(null, null); | ||
195 | } | ||
196 | |||
197 | /** | ||
198 | * Returns a mutable (partial) match. | ||
199 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
200 | * | ||
201 | * @param pT the fixed value of pattern parameter T, or null if not bound. | ||
202 | * @param pI the fixed value of pattern parameter I, or null if not bound. | ||
203 | * @return the new, mutable (partial) match object. | ||
204 | * | ||
205 | */ | ||
206 | public static TerminatorAndInformation.Match newMutableMatch(final FAMTerminator pT, final InformationLink pI) { | ||
207 | return new Mutable(pT, pI); | ||
208 | } | ||
209 | |||
210 | /** | ||
211 | * Returns a new (partial) match. | ||
212 | * This can be used e.g. to call the matcher with a partial match. | ||
213 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
214 | * @param pT the fixed value of pattern parameter T, or null if not bound. | ||
215 | * @param pI the fixed value of pattern parameter I, or null if not bound. | ||
216 | * @return the (partial) match object. | ||
217 | * | ||
218 | */ | ||
219 | public static TerminatorAndInformation.Match newMatch(final FAMTerminator pT, final InformationLink pI) { | ||
220 | return new Immutable(pT, pI); | ||
221 | } | ||
222 | |||
223 | private static final class Mutable extends TerminatorAndInformation.Match { | ||
224 | Mutable(final FAMTerminator pT, final InformationLink pI) { | ||
225 | super(pT, pI); | ||
226 | } | ||
227 | |||
228 | @Override | ||
229 | public boolean isMutable() { | ||
230 | return true; | ||
231 | } | ||
232 | } | ||
233 | |||
234 | private static final class Immutable extends TerminatorAndInformation.Match { | ||
235 | Immutable(final FAMTerminator pT, final InformationLink pI) { | ||
236 | super(pT, pI); | ||
237 | } | ||
238 | |||
239 | @Override | ||
240 | public boolean isMutable() { | ||
241 | return false; | ||
242 | } | ||
243 | } | ||
244 | } | ||
245 | |||
246 | /** | ||
247 | * Generated pattern matcher API of the ca.mcgill.ecse.dslreasoner.vampire.queries.terminatorAndInformation pattern, | ||
248 | * providing pattern-specific query methods. | ||
249 | * | ||
250 | * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, | ||
251 | * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. | ||
252 | * | ||
253 | * <p>Matches of the pattern will be represented as {@link Match}. | ||
254 | * | ||
255 | * <p>Original source: | ||
256 | * <code><pre> | ||
257 | * {@literal @}Constraint(message="terminatorAndInformation", severity="error", key={T}) | ||
258 | * pattern terminatorAndInformation(T : FAMTerminator, I : InformationLink) = { | ||
259 | * FunctionalOutput.outgoingLinks(Out,I); | ||
260 | * FunctionalOutput.terminator(Out,T); | ||
261 | * } or { | ||
262 | * InformationLink.to(I,In); | ||
263 | * FunctionalInput.terminator(In,T); | ||
264 | * } | ||
265 | * </pre></code> | ||
266 | * | ||
267 | * @see Match | ||
268 | * @see TerminatorAndInformation | ||
269 | * | ||
270 | */ | ||
271 | public static class Matcher extends BaseMatcher<TerminatorAndInformation.Match> { | ||
272 | /** | ||
273 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
274 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
275 | * | ||
276 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
277 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
278 | * | ||
279 | */ | ||
280 | public static TerminatorAndInformation.Matcher on(final ViatraQueryEngine engine) { | ||
281 | // check if matcher already exists | ||
282 | Matcher matcher = engine.getExistingMatcher(querySpecification()); | ||
283 | if (matcher == null) { | ||
284 | matcher = (Matcher)engine.getMatcher(querySpecification()); | ||
285 | } | ||
286 | return matcher; | ||
287 | } | ||
288 | |||
289 | /** | ||
290 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
291 | * @return an initialized matcher | ||
292 | * @noreference This method is for internal matcher initialization by the framework, do not call it manually. | ||
293 | * | ||
294 | */ | ||
295 | public static TerminatorAndInformation.Matcher create() { | ||
296 | return new Matcher(); | ||
297 | } | ||
298 | |||
299 | private final static int POSITION_T = 0; | ||
300 | |||
301 | private final static int POSITION_I = 1; | ||
302 | |||
303 | private final static Logger LOGGER = ViatraQueryLoggingUtil.getLogger(TerminatorAndInformation.Matcher.class); | ||
304 | |||
305 | /** | ||
306 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
307 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
308 | * | ||
309 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
310 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
311 | * | ||
312 | */ | ||
313 | private Matcher() { | ||
314 | super(querySpecification()); | ||
315 | } | ||
316 | |||
317 | /** | ||
318 | * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. | ||
319 | * @param pT the fixed value of pattern parameter T, or null if not bound. | ||
320 | * @param pI the fixed value of pattern parameter I, or null if not bound. | ||
321 | * @return matches represented as a Match object. | ||
322 | * | ||
323 | */ | ||
324 | public Collection<TerminatorAndInformation.Match> getAllMatches(final FAMTerminator pT, final InformationLink pI) { | ||
325 | return rawStreamAllMatches(new Object[]{pT, pI}).collect(Collectors.toSet()); | ||
326 | } | ||
327 | |||
328 | /** | ||
329 | * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. | ||
330 | * </p> | ||
331 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
332 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
333 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
334 | * @param pT the fixed value of pattern parameter T, or null if not bound. | ||
335 | * @param pI the fixed value of pattern parameter I, or null if not bound. | ||
336 | * @return a stream of matches represented as a Match object. | ||
337 | * | ||
338 | */ | ||
339 | public Stream<TerminatorAndInformation.Match> streamAllMatches(final FAMTerminator pT, final InformationLink pI) { | ||
340 | return rawStreamAllMatches(new Object[]{pT, pI}); | ||
341 | } | ||
342 | |||
343 | /** | ||
344 | * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
345 | * Neither determinism nor randomness of selection is guaranteed. | ||
346 | * @param pT the fixed value of pattern parameter T, or null if not bound. | ||
347 | * @param pI the fixed value of pattern parameter I, or null if not bound. | ||
348 | * @return a match represented as a Match object, or null if no match is found. | ||
349 | * | ||
350 | */ | ||
351 | public Optional<TerminatorAndInformation.Match> getOneArbitraryMatch(final FAMTerminator pT, final InformationLink pI) { | ||
352 | return rawGetOneArbitraryMatch(new Object[]{pT, pI}); | ||
353 | } | ||
354 | |||
355 | /** | ||
356 | * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, | ||
357 | * under any possible substitution of the unspecified parameters (if any). | ||
358 | * @param pT the fixed value of pattern parameter T, or null if not bound. | ||
359 | * @param pI the fixed value of pattern parameter I, or null if not bound. | ||
360 | * @return true if the input is a valid (partial) match of the pattern. | ||
361 | * | ||
362 | */ | ||
363 | public boolean hasMatch(final FAMTerminator pT, final InformationLink pI) { | ||
364 | return rawHasMatch(new Object[]{pT, pI}); | ||
365 | } | ||
366 | |||
367 | /** | ||
368 | * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. | ||
369 | * @param pT the fixed value of pattern parameter T, or null if not bound. | ||
370 | * @param pI the fixed value of pattern parameter I, or null if not bound. | ||
371 | * @return the number of pattern matches found. | ||
372 | * | ||
373 | */ | ||
374 | public int countMatches(final FAMTerminator pT, final InformationLink pI) { | ||
375 | return rawCountMatches(new Object[]{pT, pI}); | ||
376 | } | ||
377 | |||
378 | /** | ||
379 | * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
380 | * Neither determinism nor randomness of selection is guaranteed. | ||
381 | * @param pT the fixed value of pattern parameter T, or null if not bound. | ||
382 | * @param pI the fixed value of pattern parameter I, or null if not bound. | ||
383 | * @param processor the action that will process the selected match. | ||
384 | * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked | ||
385 | * | ||
386 | */ | ||
387 | public boolean forOneArbitraryMatch(final FAMTerminator pT, final InformationLink pI, final Consumer<? super TerminatorAndInformation.Match> processor) { | ||
388 | return rawForOneArbitraryMatch(new Object[]{pT, pI}, processor); | ||
389 | } | ||
390 | |||
391 | /** | ||
392 | * Returns a new (partial) match. | ||
393 | * This can be used e.g. to call the matcher with a partial match. | ||
394 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
395 | * @param pT the fixed value of pattern parameter T, or null if not bound. | ||
396 | * @param pI the fixed value of pattern parameter I, or null if not bound. | ||
397 | * @return the (partial) match object. | ||
398 | * | ||
399 | */ | ||
400 | public TerminatorAndInformation.Match newMatch(final FAMTerminator pT, final InformationLink pI) { | ||
401 | return TerminatorAndInformation.Match.newMatch(pT, pI); | ||
402 | } | ||
403 | |||
404 | /** | ||
405 | * Retrieve the set of values that occur in matches for T. | ||
406 | * @return the Set of all values or empty set if there are no matches | ||
407 | * | ||
408 | */ | ||
409 | protected Stream<FAMTerminator> rawStreamAllValuesOfT(final Object[] parameters) { | ||
410 | return rawStreamAllValues(POSITION_T, parameters).map(FAMTerminator.class::cast); | ||
411 | } | ||
412 | |||
413 | /** | ||
414 | * Retrieve the set of values that occur in matches for T. | ||
415 | * @return the Set of all values or empty set if there are no matches | ||
416 | * | ||
417 | */ | ||
418 | public Set<FAMTerminator> getAllValuesOfT() { | ||
419 | return rawStreamAllValuesOfT(emptyArray()).collect(Collectors.toSet()); | ||
420 | } | ||
421 | |||
422 | /** | ||
423 | * Retrieve the set of values that occur in matches for T. | ||
424 | * @return the Set of all values or empty set if there are no matches | ||
425 | * | ||
426 | */ | ||
427 | public Stream<FAMTerminator> streamAllValuesOfT() { | ||
428 | return rawStreamAllValuesOfT(emptyArray()); | ||
429 | } | ||
430 | |||
431 | /** | ||
432 | * Retrieve the set of values that occur in matches for T. | ||
433 | * </p> | ||
434 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
435 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
436 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
437 | * | ||
438 | * @return the Stream of all values or empty set if there are no matches | ||
439 | * | ||
440 | */ | ||
441 | public Stream<FAMTerminator> streamAllValuesOfT(final TerminatorAndInformation.Match partialMatch) { | ||
442 | return rawStreamAllValuesOfT(partialMatch.toArray()); | ||
443 | } | ||
444 | |||
445 | /** | ||
446 | * Retrieve the set of values that occur in matches for T. | ||
447 | * </p> | ||
448 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
449 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
450 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
451 | * | ||
452 | * @return the Stream of all values or empty set if there are no matches | ||
453 | * | ||
454 | */ | ||
455 | public Stream<FAMTerminator> streamAllValuesOfT(final InformationLink pI) { | ||
456 | return rawStreamAllValuesOfT(new Object[]{null, pI}); | ||
457 | } | ||
458 | |||
459 | /** | ||
460 | * Retrieve the set of values that occur in matches for T. | ||
461 | * @return the Set of all values or empty set if there are no matches | ||
462 | * | ||
463 | */ | ||
464 | public Set<FAMTerminator> getAllValuesOfT(final TerminatorAndInformation.Match partialMatch) { | ||
465 | return rawStreamAllValuesOfT(partialMatch.toArray()).collect(Collectors.toSet()); | ||
466 | } | ||
467 | |||
468 | /** | ||
469 | * Retrieve the set of values that occur in matches for T. | ||
470 | * @return the Set of all values or empty set if there are no matches | ||
471 | * | ||
472 | */ | ||
473 | public Set<FAMTerminator> getAllValuesOfT(final InformationLink pI) { | ||
474 | return rawStreamAllValuesOfT(new Object[]{null, pI}).collect(Collectors.toSet()); | ||
475 | } | ||
476 | |||
477 | /** | ||
478 | * Retrieve the set of values that occur in matches for I. | ||
479 | * @return the Set of all values or empty set if there are no matches | ||
480 | * | ||
481 | */ | ||
482 | protected Stream<InformationLink> rawStreamAllValuesOfI(final Object[] parameters) { | ||
483 | return rawStreamAllValues(POSITION_I, parameters).map(InformationLink.class::cast); | ||
484 | } | ||
485 | |||
486 | /** | ||
487 | * Retrieve the set of values that occur in matches for I. | ||
488 | * @return the Set of all values or empty set if there are no matches | ||
489 | * | ||
490 | */ | ||
491 | public Set<InformationLink> getAllValuesOfI() { | ||
492 | return rawStreamAllValuesOfI(emptyArray()).collect(Collectors.toSet()); | ||
493 | } | ||
494 | |||
495 | /** | ||
496 | * Retrieve the set of values that occur in matches for I. | ||
497 | * @return the Set of all values or empty set if there are no matches | ||
498 | * | ||
499 | */ | ||
500 | public Stream<InformationLink> streamAllValuesOfI() { | ||
501 | return rawStreamAllValuesOfI(emptyArray()); | ||
502 | } | ||
503 | |||
504 | /** | ||
505 | * Retrieve the set of values that occur in matches for I. | ||
506 | * </p> | ||
507 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
508 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
509 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
510 | * | ||
511 | * @return the Stream of all values or empty set if there are no matches | ||
512 | * | ||
513 | */ | ||
514 | public Stream<InformationLink> streamAllValuesOfI(final TerminatorAndInformation.Match partialMatch) { | ||
515 | return rawStreamAllValuesOfI(partialMatch.toArray()); | ||
516 | } | ||
517 | |||
518 | /** | ||
519 | * Retrieve the set of values that occur in matches for I. | ||
520 | * </p> | ||
521 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
522 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
523 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
524 | * | ||
525 | * @return the Stream of all values or empty set if there are no matches | ||
526 | * | ||
527 | */ | ||
528 | public Stream<InformationLink> streamAllValuesOfI(final FAMTerminator pT) { | ||
529 | return rawStreamAllValuesOfI(new Object[]{pT, null}); | ||
530 | } | ||
531 | |||
532 | /** | ||
533 | * Retrieve the set of values that occur in matches for I. | ||
534 | * @return the Set of all values or empty set if there are no matches | ||
535 | * | ||
536 | */ | ||
537 | public Set<InformationLink> getAllValuesOfI(final TerminatorAndInformation.Match partialMatch) { | ||
538 | return rawStreamAllValuesOfI(partialMatch.toArray()).collect(Collectors.toSet()); | ||
539 | } | ||
540 | |||
541 | /** | ||
542 | * Retrieve the set of values that occur in matches for I. | ||
543 | * @return the Set of all values or empty set if there are no matches | ||
544 | * | ||
545 | */ | ||
546 | public Set<InformationLink> getAllValuesOfI(final FAMTerminator pT) { | ||
547 | return rawStreamAllValuesOfI(new Object[]{pT, null}).collect(Collectors.toSet()); | ||
548 | } | ||
549 | |||
550 | @Override | ||
551 | protected TerminatorAndInformation.Match tupleToMatch(final Tuple t) { | ||
552 | try { | ||
553 | return TerminatorAndInformation.Match.newMatch((FAMTerminator) t.get(POSITION_T), (InformationLink) t.get(POSITION_I)); | ||
554 | } catch(ClassCastException e) { | ||
555 | LOGGER.error("Element(s) in tuple not properly typed!",e); | ||
556 | return null; | ||
557 | } | ||
558 | } | ||
559 | |||
560 | @Override | ||
561 | protected TerminatorAndInformation.Match arrayToMatch(final Object[] match) { | ||
562 | try { | ||
563 | return TerminatorAndInformation.Match.newMatch((FAMTerminator) match[POSITION_T], (InformationLink) match[POSITION_I]); | ||
564 | } catch(ClassCastException e) { | ||
565 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
566 | return null; | ||
567 | } | ||
568 | } | ||
569 | |||
570 | @Override | ||
571 | protected TerminatorAndInformation.Match arrayToMatchMutable(final Object[] match) { | ||
572 | try { | ||
573 | return TerminatorAndInformation.Match.newMutableMatch((FAMTerminator) match[POSITION_T], (InformationLink) match[POSITION_I]); | ||
574 | } catch(ClassCastException e) { | ||
575 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
576 | return null; | ||
577 | } | ||
578 | } | ||
579 | |||
580 | /** | ||
581 | * @return the singleton instance of the query specification of this pattern | ||
582 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
583 | * | ||
584 | */ | ||
585 | public static IQuerySpecification<TerminatorAndInformation.Matcher> querySpecification() { | ||
586 | return TerminatorAndInformation.instance(); | ||
587 | } | ||
588 | } | ||
589 | |||
590 | private TerminatorAndInformation() { | ||
591 | super(GeneratedPQuery.INSTANCE); | ||
592 | } | ||
593 | |||
594 | /** | ||
595 | * @return the singleton instance of the query specification | ||
596 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
597 | * | ||
598 | */ | ||
599 | public static TerminatorAndInformation instance() { | ||
600 | try{ | ||
601 | return LazyHolder.INSTANCE; | ||
602 | } catch (ExceptionInInitializerError err) { | ||
603 | throw processInitializerError(err); | ||
604 | } | ||
605 | } | ||
606 | |||
607 | @Override | ||
608 | protected TerminatorAndInformation.Matcher instantiate(final ViatraQueryEngine engine) { | ||
609 | return TerminatorAndInformation.Matcher.on(engine); | ||
610 | } | ||
611 | |||
612 | @Override | ||
613 | public TerminatorAndInformation.Matcher instantiate() { | ||
614 | return TerminatorAndInformation.Matcher.create(); | ||
615 | } | ||
616 | |||
617 | @Override | ||
618 | public TerminatorAndInformation.Match newEmptyMatch() { | ||
619 | return TerminatorAndInformation.Match.newEmptyMatch(); | ||
620 | } | ||
621 | |||
622 | @Override | ||
623 | public TerminatorAndInformation.Match newMatch(final Object... parameters) { | ||
624 | return TerminatorAndInformation.Match.newMatch((functionalarchitecture.FAMTerminator) parameters[0], (functionalarchitecture.InformationLink) parameters[1]); | ||
625 | } | ||
626 | |||
627 | /** | ||
628 | * Inner class allowing the singleton instance of {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.TerminatorAndInformation (visibility: PUBLIC, simpleName: TerminatorAndInformation, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.TerminatorAndInformation, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
629 | * <b>not</b> at the class load time of the outer class, | ||
630 | * but rather at the first call to {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.TerminatorAndInformation (visibility: PUBLIC, simpleName: TerminatorAndInformation, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.TerminatorAndInformation, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
631 | * | ||
632 | * <p> This workaround is required e.g. to support recursion. | ||
633 | * | ||
634 | */ | ||
635 | private static class LazyHolder { | ||
636 | private final static TerminatorAndInformation INSTANCE = new TerminatorAndInformation(); | ||
637 | |||
638 | /** | ||
639 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
640 | * This initialization order is required to support indirect recursion. | ||
641 | * | ||
642 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
643 | * | ||
644 | */ | ||
645 | private final static Object STATIC_INITIALIZER = ensureInitialized(); | ||
646 | |||
647 | public static Object ensureInitialized() { | ||
648 | INSTANCE.ensureInitializedInternal(); | ||
649 | return null; | ||
650 | } | ||
651 | } | ||
652 | |||
653 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
654 | private final static TerminatorAndInformation.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
655 | |||
656 | private final PParameter parameter_T = new PParameter("T", "functionalarchitecture.FAMTerminator", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "FAMTerminator")), PParameterDirection.INOUT); | ||
657 | |||
658 | private final PParameter parameter_I = new PParameter("I", "functionalarchitecture.InformationLink", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "InformationLink")), PParameterDirection.INOUT); | ||
659 | |||
660 | private final List<PParameter> parameters = Arrays.asList(parameter_T, parameter_I); | ||
661 | |||
662 | private GeneratedPQuery() { | ||
663 | super(PVisibility.PUBLIC); | ||
664 | } | ||
665 | |||
666 | @Override | ||
667 | public String getFullyQualifiedName() { | ||
668 | return "ca.mcgill.ecse.dslreasoner.vampire.queries.terminatorAndInformation"; | ||
669 | } | ||
670 | |||
671 | @Override | ||
672 | public List<String> getParameterNames() { | ||
673 | return Arrays.asList("T","I"); | ||
674 | } | ||
675 | |||
676 | @Override | ||
677 | public List<PParameter> getParameters() { | ||
678 | return parameters; | ||
679 | } | ||
680 | |||
681 | @Override | ||
682 | public Set<PBody> doGetContainedBodies() { | ||
683 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
684 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
685 | { | ||
686 | PBody body = new PBody(this); | ||
687 | PVariable var_T = body.getOrCreateVariableByName("T"); | ||
688 | PVariable var_I = body.getOrCreateVariableByName("I"); | ||
689 | PVariable var_Out = body.getOrCreateVariableByName("Out"); | ||
690 | new TypeConstraint(body, Tuples.flatTupleOf(var_T), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "FAMTerminator"))); | ||
691 | new TypeConstraint(body, Tuples.flatTupleOf(var_I), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "InformationLink"))); | ||
692 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
693 | new ExportedParameter(body, var_T, parameter_T), | ||
694 | new ExportedParameter(body, var_I, parameter_I) | ||
695 | )); | ||
696 | // FunctionalOutput.outgoingLinks(Out,I) | ||
697 | new TypeConstraint(body, Tuples.flatTupleOf(var_Out), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "FunctionalOutput"))); | ||
698 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
699 | new TypeConstraint(body, Tuples.flatTupleOf(var_Out, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "FunctionalOutput", "outgoingLinks"))); | ||
700 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "InformationLink"))); | ||
701 | new Equality(body, var__virtual_0_, var_I); | ||
702 | // FunctionalOutput.terminator(Out,T) | ||
703 | new TypeConstraint(body, Tuples.flatTupleOf(var_Out), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "FunctionalOutput"))); | ||
704 | PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}"); | ||
705 | new TypeConstraint(body, Tuples.flatTupleOf(var_Out, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "FunctionalData", "terminator"))); | ||
706 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "FAMTerminator"))); | ||
707 | new Equality(body, var__virtual_1_, var_T); | ||
708 | bodies.add(body); | ||
709 | } | ||
710 | { | ||
711 | PBody body = new PBody(this); | ||
712 | PVariable var_T = body.getOrCreateVariableByName("T"); | ||
713 | PVariable var_I = body.getOrCreateVariableByName("I"); | ||
714 | PVariable var_In = body.getOrCreateVariableByName("In"); | ||
715 | new TypeConstraint(body, Tuples.flatTupleOf(var_T), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "FAMTerminator"))); | ||
716 | new TypeConstraint(body, Tuples.flatTupleOf(var_I), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "InformationLink"))); | ||
717 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
718 | new ExportedParameter(body, var_T, parameter_T), | ||
719 | new ExportedParameter(body, var_I, parameter_I) | ||
720 | )); | ||
721 | // InformationLink.to(I,In) | ||
722 | new TypeConstraint(body, Tuples.flatTupleOf(var_I), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "InformationLink"))); | ||
723 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
724 | new TypeConstraint(body, Tuples.flatTupleOf(var_I, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "InformationLink", "to"))); | ||
725 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "FunctionalInput"))); | ||
726 | new Equality(body, var__virtual_0_, var_In); | ||
727 | // FunctionalInput.terminator(In,T) | ||
728 | new TypeConstraint(body, Tuples.flatTupleOf(var_In), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "FunctionalInput"))); | ||
729 | PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}"); | ||
730 | new TypeConstraint(body, Tuples.flatTupleOf(var_In, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "FunctionalData", "terminator"))); | ||
731 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.inf.mit.bme.hu/viatrasolver/example/fam", "FAMTerminator"))); | ||
732 | new Equality(body, var__virtual_1_, var_T); | ||
733 | bodies.add(body); | ||
734 | } | ||
735 | { | ||
736 | PAnnotation annotation = new PAnnotation("Constraint"); | ||
737 | annotation.addAttribute("message", "terminatorAndInformation"); | ||
738 | annotation.addAttribute("severity", "error"); | ||
739 | annotation.addAttribute("key", Arrays.asList(new Object[] { | ||
740 | new ParameterReference("T") | ||
741 | })); | ||
742 | addAnnotation(annotation); | ||
743 | } | ||
744 | return bodies; | ||
745 | } | ||
746 | } | ||
747 | } | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.xtend index 18b3badd..35b76350 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.xtend +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.xtend | |||
@@ -1,11 +1,10 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.icse | 1 | package ca.mcgill.ecse.dslreasoner.vampire.icse |
2 | 2 | ||
3 | import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.filesystemPackage | ||
3 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver | 4 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver |
4 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration | 5 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration |
5 | import functionalarchitecture.FunctionalarchitecturePackage | ||
6 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic | 6 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic |
7 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration | 7 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration |
8 | import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor | ||
9 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel | 8 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel |
10 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner | 9 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner |
11 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult | 10 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult |
@@ -13,91 +12,48 @@ import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore | |||
13 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic | 12 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic |
14 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic | 13 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic |
15 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace | 14 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace |
16 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace | ||
17 | import java.util.List | ||
18 | import org.eclipse.emf.ecore.EAttribute | ||
19 | import org.eclipse.emf.ecore.EClass | ||
20 | import org.eclipse.emf.ecore.EEnum | ||
21 | import org.eclipse.emf.ecore.EEnumLiteral | ||
22 | import org.eclipse.emf.ecore.EObject | ||
23 | import org.eclipse.emf.ecore.EReference | ||
24 | import org.eclipse.emf.ecore.resource.Resource | ||
25 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl | ||
26 | 15 | ||
27 | class EcoreTest { | 16 | class EcoreTest { |
28 | def static void main(String[] args) { | 17 | def static void main(String[] args) { |
29 | val inputs = new FileSystemWorkspace('''initialModels/''', "") | 18 | val inputs = new FileSystemWorkspace('''initialModels/''', "") |
30 | val workspace = new FileSystemWorkspace('''output/FAMTest/''', "") | 19 | val workspace = new FileSystemWorkspace('''output/FEcoreTest/''', "") |
31 | workspace.initAndClear | 20 | workspace.initAndClear |
32 | 21 | ||
33 | println("Input and output workspaces are created") | 22 | println("Input and output workspaces are created") |
34 | 23 | ||
35 | val metamodel = loadMetamodel() | 24 | val metamodel = GeneralTest.loadMetamodel(filesystemPackage.eINSTANCE) |
36 | val partialModel = loadPartialModel(inputs) | 25 | val partialModel = GeneralTest.loadPartialModel(inputs, "fs/filesystemInstance.xmi") |
37 | // val queries = loadQueries(metamodel) | 26 | // val queries = GeneralTest.loadQueries(metamodel, ecorePatterns.instance) |
27 | val queries = null | ||
38 | 28 | ||
39 | println("DSL loaded") | 29 | println("DSL loaded") |
40 | 30 | ||
41 | val Ecore2Logic ecore2Logic = new Ecore2Logic | 31 | val Ecore2Logic ecore2Logic = new Ecore2Logic |
42 | val Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic) | 32 | val Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic) |
43 | val Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic) | 33 | val Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic) |
44 | val InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic | 34 | val InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic |
45 | 35 | ||
46 | val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel,new Ecore2LogicConfiguration()) | 36 | val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, new Ecore2LogicConfiguration()) |
47 | val modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem,partialModel) | 37 | val modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem, partialModel) |
48 | // val validModelExtensionProblem = viatra2Logic.transformQueries(queries,modelGenerationProblem,new Viatra2LogicConfiguration) | 38 | // val validModelExtensionProblem = viatra2Logic.transformQueries(queries,modelGenerationProblem,new Viatra2LogicConfiguration) |
49 | |||
50 | val logicProblem = modelGenerationProblem.output | 39 | val logicProblem = modelGenerationProblem.output |
51 | // val logicProblem = modelExtensionProblem.output | 40 | // val logicProblem = modelExtensionProblem.output |
52 | // val logicProblem = validModelExtensionProblem.output | 41 | // val logicProblem = validModelExtensionProblem.output |
53 | |||
54 | |||
55 | println("Problem created") | 42 | println("Problem created") |
56 | 43 | ||
57 | var LogicResult solution | 44 | var LogicResult solution |
58 | var LogicReasoner reasoner | 45 | var LogicReasoner reasoner |
59 | //* | 46 | // * |
60 | reasoner = new VampireSolver | 47 | reasoner = new VampireSolver |
61 | val vampireConfig = new VampireSolverConfiguration => [ | 48 | val vampireConfig = new VampireSolverConfiguration => [ |
62 | //add configuration things, in config file first | 49 | // add configuration things, in config file first |
63 | it.documentationLevel = DocumentationLevel::FULL | 50 | it.documentationLevel = DocumentationLevel::FULL |
64 | ] | 51 | ] |
65 | |||
66 | solution = reasoner.solve(logicProblem, vampireConfig, workspace) | ||
67 | |||
68 | println("Problem solved") | ||
69 | |||
70 | |||
71 | } | ||
72 | 52 | ||
73 | def private static loadMetamodel() { | 53 | solution = reasoner.solve(logicProblem, vampireConfig, workspace) |
74 | val pckg = FunctionalarchitecturePackage.eINSTANCE | ||
75 | val List<EClass> classes = pckg.getEClassifiers.filter(EClass).toList | ||
76 | val List<EEnum> enums = pckg.getEClassifiers.filter(EEnum).toList | ||
77 | val List<EEnumLiteral> literals = enums.map[getELiterals].flatten.toList | ||
78 | val List<EReference> references = classes.map[getEReferences].flatten.toList | ||
79 | val List<EAttribute> attributes = classes.map[getEAttributes].flatten.toList | ||
80 | return new EcoreMetamodelDescriptor(classes,#{},false,enums,literals,references,attributes) | ||
81 | } | ||
82 | 54 | ||
83 | def private static loadPartialModel(ReasonerWorkspace inputs) { | 55 | println("Problem solved") |
84 | Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl()); | ||
85 | // inputs.readModel(EObject,"FunctionalArchitectureModel.xmi").eResource.allContents.toList | ||
86 | inputs.readModel(EObject,"FamInstance.xmi").eResource.allContents.toList | ||
87 | } | ||
88 | 56 | ||
89 | def private static loadQueries(EcoreMetamodelDescriptor metamodel) { | ||
90 | // val i = Patterns.instance | ||
91 | // val patterns = i.specifications.toList | ||
92 | // val wfPatterns = patterns.filter[it.allAnnotations.exists[it.name== "Constraint"]].toSet | ||
93 | // val derivedFeatures = new LinkedHashMap | ||
94 | // derivedFeatures.put(i.type,metamodel.attributes.filter[it.name == "type"].head) | ||
95 | // derivedFeatures.put(i.model,metamodel.references.filter[it.name == "model"].head) | ||
96 | // val res = new ViatraQuerySetDescriptor( | ||
97 | // patterns, | ||
98 | // wfPatterns, | ||
99 | // derivedFeatures | ||
100 | // ) | ||
101 | // return res | ||
102 | } | 57 | } |
58 | |||
103 | } | 59 | } |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend index f66ad93c..3fc3d70f 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend | |||
@@ -1,6 +1,5 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.icse | 1 | package ca.mcgill.ecse.dslreasoner.vampire.icse |
2 | 2 | ||
3 | import ca.mcgill.ecse.dslreasoner.vampire.queries.FamPatterns | ||
4 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver | 3 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver |
5 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration | 4 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration |
6 | import functionalarchitecture.Function | 5 | import functionalarchitecture.Function |
@@ -39,14 +38,15 @@ class FAMTest { | |||
39 | 38 | ||
40 | // Load DSL | 39 | // Load DSL |
41 | val metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE) | 40 | val metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE) |
42 | val partialModel = GeneralTest.loadPartialModel(inputs, "FaModel.xmi") | 41 | val partialModel = GeneralTest.loadPartialModel(inputs, "FAM/FaModel.xmi") |
43 | val queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance) | 42 | // val queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance) |
43 | val queries = null | ||
44 | 44 | ||
45 | println("DSL loaded") | 45 | println("DSL loaded") |
46 | 46 | ||
47 | val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, new Ecore2LogicConfiguration()) | 47 | val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, new Ecore2LogicConfiguration()) |
48 | var problem = modelGenerationProblem.output | 48 | var problem = modelGenerationProblem.output |
49 | // problem = instanceModel2Logic.transform(modelGenerationProblem, partialModel).output | 49 | problem = instanceModel2Logic.transform(modelGenerationProblem, partialModel).output |
50 | // problem = viatra2Logic.transformQueries(queries, modelGenerationProblem, new Viatra2LogicConfiguration).output | 50 | // problem = viatra2Logic.transformQueries(queries, modelGenerationProblem, new Viatra2LogicConfiguration).output |
51 | workspace.writeModel(problem, "Fam.logicproblem") | 51 | workspace.writeModel(problem, "Fam.logicproblem") |
52 | 52 | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.xtend index 50639577..d4cbb299 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.xtend +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.xtend | |||
@@ -1,7 +1,7 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.icse | 1 | package ca.mcgill.ecse.dslreasoner.vampire.icse |
2 | 2 | ||
3 | import ca.mcgill.ecse.dslreasoner.vampire.queries | ||
4 | import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.filesystemPackage | 3 | import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.filesystemPackage |
4 | import ca.mcgill.ecse.dslreasoner.vampire.queries.FileSystemPatterns | ||
5 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver | 5 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver |
6 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration | 6 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration |
7 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic | 7 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic |
@@ -24,7 +24,7 @@ class FileSystemTest { | |||
24 | 24 | ||
25 | // Workspace setup | 25 | // Workspace setup |
26 | val inputs = new FileSystemWorkspace('''initialModels/''', "") | 26 | val inputs = new FileSystemWorkspace('''initialModels/''', "") |
27 | val workspace = new FileSystemWorkspace('''output/FAMTest/''', "") | 27 | val workspace = new FileSystemWorkspace('''output/FileSystemTest/''', "") |
28 | workspace.initAndClear | 28 | workspace.initAndClear |
29 | 29 | ||
30 | // Logicproblem writing setup | 30 | // Logicproblem writing setup |
@@ -34,9 +34,10 @@ class FileSystemTest { | |||
34 | 34 | ||
35 | println("Input and output workspaces are created") | 35 | println("Input and output workspaces are created") |
36 | 36 | ||
37 | |||
37 | val metamodel = GeneralTest.loadMetamodel(filesystemPackage.eINSTANCE) | 38 | val metamodel = GeneralTest.loadMetamodel(filesystemPackage.eINSTANCE) |
38 | val partialModel = GeneralTest.loadPartialModel(inputs, "fs/filesystemInstance.xmi") | 39 | val partialModel = GeneralTest.loadPartialModel(inputs, "fs/filesystemInstance.xmi") |
39 | //val queries = GeneralTest.loadQueries(metamodel, FileSystemPatterns.instance) | 40 | val queries = GeneralTest.loadQueries(metamodel, FileSystemPatterns.instance) |
40 | 41 | ||
41 | println("DSL loaded") | 42 | println("DSL loaded") |
42 | 43 | ||
@@ -44,7 +45,7 @@ class FileSystemTest { | |||
44 | var problem = modelGenerationProblem.output | 45 | var problem = modelGenerationProblem.output |
45 | // problem = instanceModel2Logic.transform(modelGenerationProblem, partialModel).output | 46 | // problem = instanceModel2Logic.transform(modelGenerationProblem, partialModel).output |
46 | // problem = viatra2Logic.transformQueries(queries, modelGenerationProblem, new Viatra2LogicConfiguration).output | 47 | // problem = viatra2Logic.transformQueries(queries, modelGenerationProblem, new Viatra2LogicConfiguration).output |
47 | workspace.writeModel(problem, "Fam.logicproblem") | 48 | workspace.writeModel(problem, "FileSystem.logicproblem") |
48 | 49 | ||
49 | println("Problem created") | 50 | println("Problem created") |
50 | 51 | ||
@@ -75,8 +76,8 @@ class FileSystemTest { | |||
75 | // add configuration things, in config file first | 76 | // add configuration things, in config file first |
76 | it.documentationLevel = DocumentationLevel::FULL | 77 | it.documentationLevel = DocumentationLevel::FULL |
77 | 78 | ||
78 | it.typeScopes.minNewElements = 4 | 79 | it.typeScopes.minNewElements = 40 |
79 | it.typeScopes.maxNewElements = 5 | 80 | it.typeScopes.maxNewElements = 59 |
80 | if(typeMapMin.size != 0) it.typeScopes.minNewElementsByType = typeMapMin | 81 | if(typeMapMin.size != 0) it.typeScopes.minNewElementsByType = typeMapMin |
81 | if(typeMapMin.size != 0) it.typeScopes.maxNewElementsByType = typeMapMax | 82 | if(typeMapMin.size != 0) it.typeScopes.maxNewElementsByType = typeMapMax |
82 | it.contCycleLevel = 5 | 83 | it.contCycleLevel = 5 |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.xtend index 1fac968b..f0d88b49 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.xtend +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.xtend | |||
@@ -35,7 +35,7 @@ class YakinduTest { | |||
35 | 35 | ||
36 | val metamodel = GeneralTest.loadMetamodel(yakinduPackage.eINSTANCE) | 36 | val metamodel = GeneralTest.loadMetamodel(yakinduPackage.eINSTANCE) |
37 | val partialModel = GeneralTest.loadPartialModel(inputs, "yakindu/yakinduinstance.xmi") | 37 | val partialModel = GeneralTest.loadPartialModel(inputs, "yakindu/yakinduinstance.xmi") |
38 | // val queries = GeneralTest.loadQueries(metamodel, FamPa | 38 | // val queries = GeneralTest.loadQueries(metamodel, yakinduPatterns.instance) |
39 | val queries = null | 39 | val queries = null |
40 | 40 | ||
41 | println("DSL loaded") | 41 | println("DSL loaded") |
@@ -75,8 +75,8 @@ class YakinduTest { | |||
75 | // add configuration things, in config file first | 75 | // add configuration things, in config file first |
76 | it.documentationLevel = DocumentationLevel::FULL | 76 | it.documentationLevel = DocumentationLevel::FULL |
77 | 77 | ||
78 | it.typeScopes.minNewElements = 20 | 78 | it.typeScopes.minNewElements = 53 |
79 | it.typeScopes.maxNewElements = 30 | 79 | it.typeScopes.maxNewElements = 53 |
80 | if(typeMapMin.size != 0) it.typeScopes.minNewElementsByType = typeMapMin | 80 | if(typeMapMin.size != 0) it.typeScopes.minNewElementsByType = typeMapMin |
81 | if(typeMapMin.size != 0) it.typeScopes.maxNewElementsByType = typeMapMax | 81 | if(typeMapMin.size != 0) it.typeScopes.maxNewElementsByType = typeMapMax |
82 | it.contCycleLevel = 5 | 82 | it.contCycleLevel = 5 |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbin index 55d90ac7..2cecdaac 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbin +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbin | |||
Binary files differ | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbin index 8eeb2d28..a34ab846 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbin +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbin | |||
Binary files differ | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbin index ab6aaf6e..a18fd1a5 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbin +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbin | |||
Binary files differ | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbin index cd75a66c..0969c84c 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbin +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbin | |||
Binary files differ | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbin index 1b920064..f0af3ba5 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbin +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbin | |||
Binary files differ | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.java index 820dd354..7019f162 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.java +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.java | |||
@@ -1,9 +1,9 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.icse; | 1 | package ca.mcgill.ecse.dslreasoner.vampire.icse; |
2 | 2 | ||
3 | import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.filesystemPackage; | ||
4 | import ca.mcgill.ecse.dslreasoner.vampire.icse.GeneralTest; | ||
3 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver; | 5 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver; |
4 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; | 6 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; |
5 | import com.google.common.collect.Iterables; | ||
6 | import functionalarchitecture.FunctionalarchitecturePackage; | ||
7 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic; | 7 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic; |
8 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration; | 8 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration; |
9 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace; | 9 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace; |
@@ -17,27 +17,11 @@ import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore; | |||
17 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic; | 17 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic; |
18 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic; | 18 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic; |
19 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; | 19 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; |
20 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace; | ||
21 | import java.util.Collections; | ||
22 | import java.util.List; | ||
23 | import java.util.Map; | ||
24 | import org.eclipse.emf.common.util.EList; | 20 | import org.eclipse.emf.common.util.EList; |
25 | import org.eclipse.emf.ecore.EAttribute; | ||
26 | import org.eclipse.emf.ecore.EClass; | ||
27 | import org.eclipse.emf.ecore.EEnum; | ||
28 | import org.eclipse.emf.ecore.EEnumLiteral; | ||
29 | import org.eclipse.emf.ecore.EObject; | 21 | import org.eclipse.emf.ecore.EObject; |
30 | import org.eclipse.emf.ecore.EReference; | ||
31 | import org.eclipse.emf.ecore.resource.Resource; | ||
32 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; | ||
33 | import org.eclipse.xtend2.lib.StringConcatenation; | 22 | import org.eclipse.xtend2.lib.StringConcatenation; |
34 | import org.eclipse.xtext.xbase.lib.CollectionLiterals; | ||
35 | import org.eclipse.xtext.xbase.lib.Exceptions; | 23 | import org.eclipse.xtext.xbase.lib.Exceptions; |
36 | import org.eclipse.xtext.xbase.lib.Functions.Function1; | ||
37 | import org.eclipse.xtext.xbase.lib.InputOutput; | 24 | import org.eclipse.xtext.xbase.lib.InputOutput; |
38 | import org.eclipse.xtext.xbase.lib.IterableExtensions; | ||
39 | import org.eclipse.xtext.xbase.lib.IteratorExtensions; | ||
40 | import org.eclipse.xtext.xbase.lib.ListExtensions; | ||
41 | import org.eclipse.xtext.xbase.lib.ObjectExtensions; | 25 | import org.eclipse.xtext.xbase.lib.ObjectExtensions; |
42 | import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; | 26 | import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; |
43 | 27 | ||
@@ -49,12 +33,13 @@ public class EcoreTest { | |||
49 | _builder.append("initialModels/"); | 33 | _builder.append("initialModels/"); |
50 | final FileSystemWorkspace inputs = new FileSystemWorkspace(_builder.toString(), ""); | 34 | final FileSystemWorkspace inputs = new FileSystemWorkspace(_builder.toString(), ""); |
51 | StringConcatenation _builder_1 = new StringConcatenation(); | 35 | StringConcatenation _builder_1 = new StringConcatenation(); |
52 | _builder_1.append("output/FAMTest/"); | 36 | _builder_1.append("output/FEcoreTest/"); |
53 | final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder_1.toString(), ""); | 37 | final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder_1.toString(), ""); |
54 | workspace.initAndClear(); | 38 | workspace.initAndClear(); |
55 | InputOutput.<String>println("Input and output workspaces are created"); | 39 | InputOutput.<String>println("Input and output workspaces are created"); |
56 | final EcoreMetamodelDescriptor metamodel = EcoreTest.loadMetamodel(); | 40 | final EcoreMetamodelDescriptor metamodel = GeneralTest.loadMetamodel(filesystemPackage.eINSTANCE); |
57 | final List<EObject> partialModel = EcoreTest.loadPartialModel(inputs); | 41 | final EList<EObject> partialModel = GeneralTest.loadPartialModel(inputs, "fs/filesystemInstance.xmi"); |
42 | final Object queries = null; | ||
58 | InputOutput.<String>println("DSL loaded"); | 43 | InputOutput.<String>println("DSL loaded"); |
59 | final Ecore2Logic ecore2Logic = new Ecore2Logic(); | 44 | final Ecore2Logic ecore2Logic = new Ecore2Logic(); |
60 | final Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic); | 45 | final Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic); |
@@ -80,38 +65,4 @@ public class EcoreTest { | |||
80 | throw Exceptions.sneakyThrow(_e); | 65 | throw Exceptions.sneakyThrow(_e); |
81 | } | 66 | } |
82 | } | 67 | } |
83 | |||
84 | private static EcoreMetamodelDescriptor loadMetamodel() { | ||
85 | final FunctionalarchitecturePackage pckg = FunctionalarchitecturePackage.eINSTANCE; | ||
86 | final List<EClass> classes = IterableExtensions.<EClass>toList(Iterables.<EClass>filter(pckg.getEClassifiers(), EClass.class)); | ||
87 | final List<EEnum> enums = IterableExtensions.<EEnum>toList(Iterables.<EEnum>filter(pckg.getEClassifiers(), EEnum.class)); | ||
88 | final Function1<EEnum, EList<EEnumLiteral>> _function = (EEnum it) -> { | ||
89 | return it.getELiterals(); | ||
90 | }; | ||
91 | final List<EEnumLiteral> literals = IterableExtensions.<EEnumLiteral>toList(Iterables.<EEnumLiteral>concat(ListExtensions.<EEnum, EList<EEnumLiteral>>map(enums, _function))); | ||
92 | final Function1<EClass, EList<EReference>> _function_1 = (EClass it) -> { | ||
93 | return it.getEReferences(); | ||
94 | }; | ||
95 | final List<EReference> references = IterableExtensions.<EReference>toList(Iterables.<EReference>concat(ListExtensions.<EClass, EList<EReference>>map(classes, _function_1))); | ||
96 | final Function1<EClass, EList<EAttribute>> _function_2 = (EClass it) -> { | ||
97 | return it.getEAttributes(); | ||
98 | }; | ||
99 | final List<EAttribute> attributes = IterableExtensions.<EAttribute>toList(Iterables.<EAttribute>concat(ListExtensions.<EClass, EList<EAttribute>>map(classes, _function_2))); | ||
100 | return new EcoreMetamodelDescriptor(classes, Collections.<EClass>unmodifiableSet(CollectionLiterals.<EClass>newHashSet()), false, enums, literals, references, attributes); | ||
101 | } | ||
102 | |||
103 | private static List<EObject> loadPartialModel(final ReasonerWorkspace inputs) { | ||
104 | List<EObject> _xblockexpression = null; | ||
105 | { | ||
106 | Map<String, Object> _extensionToFactoryMap = Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap(); | ||
107 | XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl(); | ||
108 | _extensionToFactoryMap.put("*", _xMIResourceFactoryImpl); | ||
109 | _xblockexpression = IteratorExtensions.<EObject>toList(inputs.<EObject>readModel(EObject.class, "FamInstance.xmi").eResource().getAllContents()); | ||
110 | } | ||
111 | return _xblockexpression; | ||
112 | } | ||
113 | |||
114 | private static Object loadQueries(final EcoreMetamodelDescriptor metamodel) { | ||
115 | return null; | ||
116 | } | ||
117 | } | 68 | } |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.java index 5fc2a391..08f1b4a7 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.java +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.java | |||
@@ -1,7 +1,6 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.icse; | 1 | package ca.mcgill.ecse.dslreasoner.vampire.icse; |
2 | 2 | ||
3 | import ca.mcgill.ecse.dslreasoner.vampire.icse.GeneralTest; | 3 | import ca.mcgill.ecse.dslreasoner.vampire.icse.GeneralTest; |
4 | import ca.mcgill.ecse.dslreasoner.vampire.queries.FamPatterns; | ||
5 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver; | 4 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver; |
6 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; | 5 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; |
7 | import functionalarchitecture.Function; | 6 | import functionalarchitecture.Function; |
@@ -18,7 +17,6 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type; | |||
18 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; | 17 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; |
19 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; | 18 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; |
20 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic; | 19 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic; |
21 | import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor; | ||
22 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic; | 20 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic; |
23 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; | 21 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; |
24 | import java.util.HashMap; | 22 | import java.util.HashMap; |
@@ -53,12 +51,13 @@ public class FAMTest { | |||
53 | map.put("logicproblem", _xMIResourceFactoryImpl); | 51 | map.put("logicproblem", _xMIResourceFactoryImpl); |
54 | InputOutput.<String>println("Input and output workspaces are created"); | 52 | InputOutput.<String>println("Input and output workspaces are created"); |
55 | final EcoreMetamodelDescriptor metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE); | 53 | final EcoreMetamodelDescriptor metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE); |
56 | final EList<EObject> partialModel = GeneralTest.loadPartialModel(inputs, "FaModel.xmi"); | 54 | final EList<EObject> partialModel = GeneralTest.loadPartialModel(inputs, "FAM/FaModel.xmi"); |
57 | final ViatraQuerySetDescriptor queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance()); | 55 | final Object queries = null; |
58 | InputOutput.<String>println("DSL loaded"); | 56 | InputOutput.<String>println("DSL loaded"); |
59 | Ecore2LogicConfiguration _ecore2LogicConfiguration = new Ecore2LogicConfiguration(); | 57 | Ecore2LogicConfiguration _ecore2LogicConfiguration = new Ecore2LogicConfiguration(); |
60 | final TracedOutput<LogicProblem, Ecore2Logic_Trace> modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, _ecore2LogicConfiguration); | 58 | final TracedOutput<LogicProblem, Ecore2Logic_Trace> modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, _ecore2LogicConfiguration); |
61 | LogicProblem problem = modelGenerationProblem.getOutput(); | 59 | LogicProblem problem = modelGenerationProblem.getOutput(); |
60 | problem = instanceModel2Logic.transform(modelGenerationProblem, partialModel).getOutput(); | ||
62 | workspace.writeModel(problem, "Fam.logicproblem"); | 61 | workspace.writeModel(problem, "Fam.logicproblem"); |
63 | InputOutput.<String>println("Problem created"); | 62 | InputOutput.<String>println("Problem created"); |
64 | long startTime = System.currentTimeMillis(); | 63 | long startTime = System.currentTimeMillis(); |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.java index eedec995..f7f8a5ee 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.java +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.java | |||
@@ -2,6 +2,7 @@ package ca.mcgill.ecse.dslreasoner.vampire.icse; | |||
2 | 2 | ||
3 | import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.filesystemPackage; | 3 | import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.filesystemPackage; |
4 | import ca.mcgill.ecse.dslreasoner.vampire.icse.GeneralTest; | 4 | import ca.mcgill.ecse.dslreasoner.vampire.icse.GeneralTest; |
5 | import ca.mcgill.ecse.dslreasoner.vampire.queries.FileSystemPatterns; | ||
5 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver; | 6 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver; |
6 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; | 7 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; |
7 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic; | 8 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic; |
@@ -15,6 +16,7 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type; | |||
15 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; | 16 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; |
16 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; | 17 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; |
17 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic; | 18 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic; |
19 | import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor; | ||
18 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic; | 20 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic; |
19 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; | 21 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; |
20 | import java.util.HashMap; | 22 | import java.util.HashMap; |
@@ -40,7 +42,7 @@ public class FileSystemTest { | |||
40 | _builder.append("initialModels/"); | 42 | _builder.append("initialModels/"); |
41 | final FileSystemWorkspace inputs = new FileSystemWorkspace(_builder.toString(), ""); | 43 | final FileSystemWorkspace inputs = new FileSystemWorkspace(_builder.toString(), ""); |
42 | StringConcatenation _builder_1 = new StringConcatenation(); | 44 | StringConcatenation _builder_1 = new StringConcatenation(); |
43 | _builder_1.append("output/FAMTest/"); | 45 | _builder_1.append("output/FileSystemTest/"); |
44 | final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder_1.toString(), ""); | 46 | final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder_1.toString(), ""); |
45 | workspace.initAndClear(); | 47 | workspace.initAndClear(); |
46 | final Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; | 48 | final Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; |
@@ -50,11 +52,12 @@ public class FileSystemTest { | |||
50 | InputOutput.<String>println("Input and output workspaces are created"); | 52 | InputOutput.<String>println("Input and output workspaces are created"); |
51 | final EcoreMetamodelDescriptor metamodel = GeneralTest.loadMetamodel(filesystemPackage.eINSTANCE); | 53 | final EcoreMetamodelDescriptor metamodel = GeneralTest.loadMetamodel(filesystemPackage.eINSTANCE); |
52 | final EList<EObject> partialModel = GeneralTest.loadPartialModel(inputs, "fs/filesystemInstance.xmi"); | 54 | final EList<EObject> partialModel = GeneralTest.loadPartialModel(inputs, "fs/filesystemInstance.xmi"); |
55 | final ViatraQuerySetDescriptor queries = GeneralTest.loadQueries(metamodel, FileSystemPatterns.instance()); | ||
53 | InputOutput.<String>println("DSL loaded"); | 56 | InputOutput.<String>println("DSL loaded"); |
54 | Ecore2LogicConfiguration _ecore2LogicConfiguration = new Ecore2LogicConfiguration(); | 57 | Ecore2LogicConfiguration _ecore2LogicConfiguration = new Ecore2LogicConfiguration(); |
55 | final TracedOutput<LogicProblem, Ecore2Logic_Trace> modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, _ecore2LogicConfiguration); | 58 | final TracedOutput<LogicProblem, Ecore2Logic_Trace> modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, _ecore2LogicConfiguration); |
56 | LogicProblem problem = modelGenerationProblem.getOutput(); | 59 | LogicProblem problem = modelGenerationProblem.getOutput(); |
57 | workspace.writeModel(problem, "Fam.logicproblem"); | 60 | workspace.writeModel(problem, "FileSystem.logicproblem"); |
58 | InputOutput.<String>println("Problem created"); | 61 | InputOutput.<String>println("Problem created"); |
59 | long startTime = System.currentTimeMillis(); | 62 | long startTime = System.currentTimeMillis(); |
60 | LogicReasoner reasoner = null; | 63 | LogicReasoner reasoner = null; |
@@ -67,8 +70,8 @@ public class FileSystemTest { | |||
67 | VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration(); | 70 | VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration(); |
68 | final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> { | 71 | final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> { |
69 | it.documentationLevel = DocumentationLevel.FULL; | 72 | it.documentationLevel = DocumentationLevel.FULL; |
70 | it.typeScopes.minNewElements = 4; | 73 | it.typeScopes.minNewElements = 40; |
71 | it.typeScopes.maxNewElements = 5; | 74 | it.typeScopes.maxNewElements = 59; |
72 | int _size = typeMapMin.size(); | 75 | int _size = typeMapMin.size(); |
73 | boolean _notEquals = (_size != 0); | 76 | boolean _notEquals = (_size != 0); |
74 | if (_notEquals) { | 77 | if (_notEquals) { |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.java index 81079764..3a322ee0 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.java +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.java | |||
@@ -68,8 +68,8 @@ public class YakinduTest { | |||
68 | VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration(); | 68 | VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration(); |
69 | final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> { | 69 | final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> { |
70 | it.documentationLevel = DocumentationLevel.FULL; | 70 | it.documentationLevel = DocumentationLevel.FULL; |
71 | it.typeScopes.minNewElements = 20; | 71 | it.typeScopes.minNewElements = 53; |
72 | it.typeScopes.maxNewElements = 30; | 72 | it.typeScopes.maxNewElements = 53; |
73 | int _size = typeMapMin.size(); | 73 | int _size = typeMapMin.size(); |
74 | boolean _notEquals = (_size != 0); | 74 | boolean _notEquals = (_size != 0); |
75 | if (_notEquals) { | 75 | if (_notEquals) { |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin index 29f8df00..c5ed4b90 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin | |||
Binary files differ | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin index 72d33e5d..21fdd9b7 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin | |||
Binary files differ | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin index e9c4c0a4..b1887ff2 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin | |||
Binary files differ | |||