aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-03-20 20:39:28 -0400
committerLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2020-06-07 19:33:22 -0400
commit513a5afe3a8663ad30112f7e3c0e66137938e635 (patch)
treee9ae81f529712a372bd203cb0ef2a19b9b224c95
parentImplement Containment mapping (partially) and revisit enum mapping (diff)
downloadVIATRA-Generator-513a5afe3a8663ad30112f7e3c0e66137938e635.tar.gz
VIATRA-Generator-513a5afe3a8663ad30112f7e3c0e66137938e635.tar.zst
VIATRA-Generator-513a5afe3a8663ad30112f7e3c0e66137938e635.zip
Add gitignore, commit everything
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application.ide/.gitignore2
-rw-r--r--Domains/Examples/ModelGenExampleFAM_standalone/inputs/FamPatterns.vql4
-rw-r--r--Domains/hu.bme.mit.inf.yakinduModelExtractor/src/hu/bme/mit/inf/yakinduModelExtractor/ModelManager.java74
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.logic.model/.classpath1
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.logic.model/META-INF/MANIFEST.MF16
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.logic.model/build.properties3
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CSERposterSample.java._tracebin0 -> 8683 bytes
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/.classpath1
-rw-r--r--Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/build.properties3
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/.classpath7
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/META-INF/MANIFEST.MF7
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/model/logic2vampire.aird30
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/model/logic2vampire.ecore4
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/model/logic2vampire.genmodel14
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeModule.xtendbinbin1685 -> 1685 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeSetup.xtendbinbin2500 -> 2500 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/.VampireLanguageUiModule.xtendbinbin2342 -> 2342 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/.VampireLanguageProposalProvider.xtendbinbin1792 -> 1792 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageDescriptionLabelProvider.xtendbinbin1965 -> 1965 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageLabelProvider.xtendbinbin2405 -> 2405 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/outline/.VampireLanguageOutlineTreeProvider.xtendbinbin1819 -> 1819 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/quickfix/.VampireLanguageQuickfixProvider.xtendbinbin1786 -> 1786 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSFiniteModel.java20
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSFunctionFof.java69
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSTrying.java52
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSFiniteModelImpl.java43
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSFunctionFofImpl.java240
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSTryingImpl.java178
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageRuntimeModule.xtendbinbin1706 -> 1706 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageStandaloneSetup.xtendbinbin1980 -> 1980 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/formatting2/.VampireLanguageFormatter.xtendbinbin4130 -> 4130 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/generator/.VampireLanguageGenerator.xtendbinbin2338 -> 2338 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/scoping/.VampireLanguageScopeProvider.xtendbinbin1751 -> 1751 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/validation/.VampireLanguageValidator.xtendbinbin1736 -> 1736 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/.gitignore1
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSAnd.java533
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSAnnotation.java533
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSComment.java533
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSEquivalent.java533
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSExistentialQuantifier.java533
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSFofFormula.java533
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSFunction.java533
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSFunctionFof.java533
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSInequality.java533
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSOr.java535
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSUnaryNegation.java533
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSUniversalQuantifier.java533
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VampireQueries.java174
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/.gitignore2
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ContainmentMapper.xtend14
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.xtend18
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbinbin2399 -> 2399 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbinbin5892 -> 5892 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbinbin18129 -> 18128 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapperTrace.xtendbinbin4215 -> 4215 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbinbin3164 -> 3164 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ContainmentMapper.xtendbinbin7649 -> 7604 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbinbin8210 -> 8210 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ScopeMapper.xtendbinbin9263 -> 9263 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbinbin12311 -> 12311 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbinbin10377 -> 10377 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.xtendbinbin2643 -> 0 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtendbinbin8564 -> 0 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Vampire2LogicMapper.xtendbinbin1720 -> 1720 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireHandler.xtendbinbin4908 -> 4908 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation.xtendbinbin1491 -> 1491 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtendbinbin1688 -> 1688 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ContainmentMapper.java11
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.java20
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/metamodels/fam.aird633
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/plugin.xml2
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/queries/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/famPatterns.vql4
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/queries/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/famSPatterns.vql13
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.gitignore3
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/yakindu/yakinduPatterns.vql_227
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/yakindu/yakindu_simplified.aird704
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/yakindu/yakindu_simplified.ecore39
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/yakindu/yakindu_simplified.genmodel40
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/vampireProblem.tptp22
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/VampireTest/vampireProblem.tptp7
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.xtend13
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTestAlloy.xtend190
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTestViatra.xtend182
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/tester.xtend35
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icseTests/FAMTest.xtend103
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/queries/YakinduPatterns.txt227
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Choice.java17
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/CompositeElement.java42
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Entry.java52
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/EntryType.java239
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Exit.java17
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/FinalState.java17
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Pseudostate.java17
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Region.java42
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/RegularState.java17
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/State.java17
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Statechart.java17
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Transition.java81
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Vertex.java63
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/YakindummFactory.java105
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/YakindummPackage.java1032
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/ChoiceImpl.java37
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/CompositeElementImpl.java152
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/EntryImpl.java163
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/ExitImpl.java37
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/FinalStateImpl.java37
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/PseudostateImpl.java37
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/RegionImpl.java152
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/RegularStateImpl.java37
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/StateImpl.java183
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/StatechartImpl.java37
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/TransitionImpl.java284
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/VertexImpl.java206
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/YakindummFactoryImpl.java223
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/YakindummPackageImpl.java511
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/util/YakindummAdapterFactory.java318
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/util/YakindummSwitch.java355
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbinbin6358 -> 6358 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbinbin4068 -> 4068 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbinbin4115 -> 4115 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbinbin8486 -> 8212 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbinbin4054 -> 4054 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.java2
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icseTest/.gitignore1
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.DslTest.xtendbinbin5966 -> 0 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbinbin4997 -> 4997 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbinbin687 -> 687 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbinbin6500 -> 6500 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/FAMTest.java111
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/hu/bme/mit/inf/dslreasoner/run/.gitignore2
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.yakindu.test/.project (renamed from Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/.project)69
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.yakindu.test/bin/ca/mcgill/ecse/dslreasoner/yakindu/test/.YakinduTest.xtendbinbin0 -> 8569 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.yakindu.test/bin/ca/mcgill/ecse/dslreasoner/yakindu/test/.gitignore1
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.yakindu.test/bin/ca/mcgill/ecse/dslreasoner/yakindu/test/YakinduTest.xtend178
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.yakindu.test/xtend-gen/ca/mcgill/ecse/dslreasoner/yakindu/test/.YakinduTest.java._tracebin0 -> 11324 bytes
-rw-r--r--Tests/hu.bme.mit.inf.dslreasoner.application.FAMTest/.classpath1
-rw-r--r--Tests/hu.bme.mit.inf.dslreasoner.application.FAMTest/META-INF/MANIFEST.MF29
-rw-r--r--Tests/hu.bme.mit.inf.dslreasoner.application.FAMTest/build.properties5
138 files changed, 7160 insertions, 7633 deletions
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application.ide/.gitignore b/Application/hu.bme.mit.inf.dslreasoner.application.ide/.gitignore
index ae3c1726..d95727ab 100644
--- a/Application/hu.bme.mit.inf.dslreasoner.application.ide/.gitignore
+++ b/Application/hu.bme.mit.inf.dslreasoner.application.ide/.gitignore
@@ -1 +1,3 @@
1/bin/ 1/bin/
2/xtend-gen/
3/src-gen/ \ No newline at end of file
diff --git a/Domains/Examples/ModelGenExampleFAM_standalone/inputs/FamPatterns.vql b/Domains/Examples/ModelGenExampleFAM_standalone/inputs/FamPatterns.vql
index 34394ef6..3966d0af 100644
--- a/Domains/Examples/ModelGenExampleFAM_standalone/inputs/FamPatterns.vql
+++ b/Domains/Examples/ModelGenExampleFAM_standalone/inputs/FamPatterns.vql
@@ -1,7 +1,7 @@
1package hu.bme.mit.inf.dslreasoner.domains.fam 1package hu.bme.mit.inf.dslreasoner.domains.fam
2 2
3import epackage "http://www.inf.mit.bme.hu/viatrasolver/example/fam" 3//import epackage "http://www.inf.mit.bme.hu/viatrasolver/example/fam"
4//import epackage "platform:/resource/ModelGenExampleFAM/inputs/FamMetamodel.ecore"; 4import epackage "platform:/resource/ModelGenExampleFAM/inputs/FamMetamodel.ecore";
5 5
6@Constraint(message="terminatorAndInformation", severity="error", key={T}) 6@Constraint(message="terminatorAndInformation", severity="error", key={T})
7pattern terminatorAndInformation(T : FAMTerminator, I : InformationLink) = { 7pattern terminatorAndInformation(T : FAMTerminator, I : InformationLink) = {
diff --git a/Domains/hu.bme.mit.inf.yakinduModelExtractor/src/hu/bme/mit/inf/yakinduModelExtractor/ModelManager.java b/Domains/hu.bme.mit.inf.yakinduModelExtractor/src/hu/bme/mit/inf/yakinduModelExtractor/ModelManager.java
index 85fd208c..951e44a3 100644
--- a/Domains/hu.bme.mit.inf.yakinduModelExtractor/src/hu/bme/mit/inf/yakinduModelExtractor/ModelManager.java
+++ b/Domains/hu.bme.mit.inf.yakinduModelExtractor/src/hu/bme/mit/inf/yakinduModelExtractor/ModelManager.java
@@ -1,21 +1,21 @@
1package hu.bme.mit.inf.yakinduModelExtractor; 1package hu.bme.mit.inf.yakinduModelExtractor;
2 2
3import java.io.BufferedWriter; 3import java.io.BufferedWriter;
4import java.io.File; 4import java.io.File;
5import java.io.FileOutputStream; 5import java.io.FileOutputStream;
6import java.io.IOException; 6import java.io.IOException;
7import java.io.OutputStreamWriter; 7import java.io.OutputStreamWriter;
8import java.io.Writer; 8import java.io.Writer;
9import java.util.LinkedList; 9import java.util.LinkedList;
10import java.util.List; 10import java.util.List;
11 11
12import org.eclipse.emf.common.util.URI; 12import org.eclipse.emf.common.util.URI;
13import org.eclipse.emf.ecore.EObject; 13import org.eclipse.emf.ecore.EObject;
14import org.eclipse.emf.ecore.resource.Resource; 14import org.eclipse.emf.ecore.resource.Resource;
15import org.eclipse.emf.ecore.resource.ResourceSet; 15import org.eclipse.emf.ecore.resource.ResourceSet;
16import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; 16import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
17import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; 17import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
18import org.eclipse.gmf.runtime.notation.NotationPackage; 18import org.eclipse.gmf.runtime.notation.NotationPackage;
19import org.yakindu.sct.model.sgraph.SGraphPackage; 19import org.yakindu.sct.model.sgraph.SGraphPackage;
20 20
21public class ModelManager { 21public class ModelManager {
@@ -28,27 +28,27 @@ public class ModelManager {
28 public void init() { 28 public void init() {
29 SGraphPackage.eINSTANCE.eClass(); 29 SGraphPackage.eINSTANCE.eClass();
30 NotationPackage.eINSTANCE.eClass(); 30 NotationPackage.eINSTANCE.eClass();
31 resourceSet = new ResourceSetImpl(); 31 resourceSet = new ResourceSetImpl();
32 Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl()); 32 Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl());
33 } 33 }
34 34
35 public List<String> loadAllModelPathsInDirectory(String path) { 35 public List<String> loadAllModelPathsInDirectory(String path) {
36 File directory = new File(path); 36 File directory = new File(path);
37 if(directory.exists() && directory.isDirectory()) { 37 if(directory.exists() && directory.isDirectory()) {
38 List<String> filePaths = new LinkedList<>(); 38 List<String> filePaths = new LinkedList<>();
39 for(File f : directory.listFiles()) { 39 for(File f : directory.listFiles()) {
40 if(f.isFile()) { 40 if(f.isFile()) {
41 String filePath = f.getPath(); 41 String filePath = f.getPath();
42 if(filePath.endsWith("sct")) { 42 if(filePath.endsWith("sct")) {
43 filePaths.add(filePath); 43 filePaths.add(filePath);
44 } 44 }
45 } 45 }
46 } 46 }
47 return filePaths; 47 return filePaths;
48 } else { 48 } else {
49 throw new IllegalArgumentException("invalid path"); 49 throw new IllegalArgumentException("invalid path");
50 } 50 }
51 } 51 }
52 52
53 public EObject loadModel(String path) { 53 public EObject loadModel(String path) {
54 Resource resource = this.resourceSet.getResource(URI.createFileURI(path), true); 54 Resource resource = this.resourceSet.getResource(URI.createFileURI(path), true);
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/.classpath b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/.classpath
index e84a3295..a9e661c7 100644
--- a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/.classpath
+++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/.classpath
@@ -7,5 +7,6 @@
7 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/> 7 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
8 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> 8 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
9 <classpathentry kind="src" path="src"/> 9 <classpathentry kind="src" path="src"/>
10 <classpathentry kind="src" path="src-gen/"/>
10 <classpathentry kind="output" path="bin"/> 11 <classpathentry kind="output" path="bin"/>
11</classpath> 12</classpath>
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/META-INF/MANIFEST.MF b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/META-INF/MANIFEST.MF
index 338e8c09..878247b1 100644
--- a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/META-INF/MANIFEST.MF
+++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/META-INF/MANIFEST.MF
@@ -3,7 +3,6 @@ Bundle-ManifestVersion: 2
3Bundle-Name: %pluginName 3Bundle-Name: %pluginName
4Bundle-SymbolicName: hu.bme.mit.inf.dslreasoner.logic.model;singleton:=true 4Bundle-SymbolicName: hu.bme.mit.inf.dslreasoner.logic.model;singleton:=true
5Bundle-Version: 1.0.0.qualifier 5Bundle-Version: 1.0.0.qualifier
6Bundle-ClassPath: .
7Bundle-Vendor: %providerName 6Bundle-Vendor: %providerName
8Bundle-Localization: plugin 7Bundle-Localization: plugin
9Export-Package: hu.bme.mit.inf.dslreasoner.logic.model.builder, 8Export-Package: hu.bme.mit.inf.dslreasoner.logic.model.builder,
@@ -22,6 +21,7 @@ Export-Package: hu.bme.mit.inf.dslreasoner.logic.model.builder,
22 hu.bme.mit.inf.dslreasoner.util, 21 hu.bme.mit.inf.dslreasoner.util,
23 hu.bme.mit.inf.dslreasoner.workspace 22 hu.bme.mit.inf.dslreasoner.workspace
24Require-Bundle: org.eclipse.core.runtime, 23Require-Bundle: org.eclipse.core.runtime,
24<<<<<<< HEAD
25 org.eclipse.emf.ecore;visibility:=reexport, 25 org.eclipse.emf.ecore;visibility:=reexport,
26 com.google.guava, 26 com.google.guava,
27 org.eclipse.xtend.lib, 27 org.eclipse.xtend.lib,
@@ -30,7 +30,17 @@ Require-Bundle: org.eclipse.core.runtime,
30 org.eclipse.viatra.query.runtime;bundle-version="1.3.0", 30 org.eclipse.viatra.query.runtime;bundle-version="1.3.0",
31 org.apache.commons.lang;bundle-version="2.6.0", 31 org.apache.commons.lang;bundle-version="2.6.0",
32 org.eclipse.emf.ecore.xmi;bundle-version="2.13.0" 32 org.eclipse.emf.ecore.xmi;bundle-version="2.13.0"
33=======
34 org.eclipse.emf.ecore;visibility:=reexport,
35 com.google.guava,
36 org.eclipse.xtend.lib,
37 org.eclipse.xtext.xbase.lib,
38 org.eclipse.core.resources;bundle-version="3.8.101",
39 org.eclipse.viatra.query.runtime;bundle-version="1.3.0",
40 org.apache.commons.lang;bundle-version="2.6.0",
41 org.eclipse.emf.ecore.xmi;bundle-version="2.13.0"
42Bundle-RequiredExecutionEnvironment: JavaSE-1.8
43Bundle-ActivationPolicy: lazy
44>>>>>>> b42fb751... Add gitignore, commit everything
33Import-Package: org.apache.log4j 45Import-Package: org.apache.log4j
34Automatic-Module-Name: hu.bme.mit.inf.dslreasoner.logic.model 46Automatic-Module-Name: hu.bme.mit.inf.dslreasoner.logic.model
35Bundle-ActivationPolicy: lazy
36Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/build.properties b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/build.properties
index 9403fc5f..c18a0403 100644
--- a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/build.properties
+++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/build.properties
@@ -8,5 +8,6 @@ source.. = ecore-gen/,\
8 src/,\ 8 src/,\
9 xtend-gen/,\ 9 xtend-gen/,\
10 patterns/,\ 10 patterns/,\
11 vql-gen/ 11 vql-gen/,\
12 src-gen/
12output.. = bin/ 13output.. = bin/
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CSERposterSample.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CSERposterSample.java._trace
new file mode 100644
index 00000000..32fa550b
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CSERposterSample.java._trace
Binary files differ
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/.classpath b/Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/.classpath
index de68b5f7..a29b9deb 100644
--- a/Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/.classpath
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/.classpath
@@ -7,5 +7,6 @@
7 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/> 7 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
8 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> 8 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
9 <classpathentry kind="src" path="src"/> 9 <classpathentry kind="src" path="src"/>
10 <classpathentry kind="src" path="src-gen/"/>
10 <classpathentry kind="output" path="bin"/> 11 <classpathentry kind="output" path="bin"/>
11</classpath> 12</classpath>
diff --git a/Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/build.properties b/Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/build.properties
index 685c072b..1eb934ae 100644
--- a/Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/build.properties
+++ b/Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/build.properties
@@ -6,5 +6,6 @@ jars.compile.order = .
6source.. = src/,\ 6source.. = src/,\
7 queries/,\ 7 queries/,\
8 xtend-gen/,\ 8 xtend-gen/,\
9 vql-gen/ 9 vql-gen/,\
10 src-gen/
10output.. = bin/ 11output.. = bin/
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/.classpath b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/.classpath
deleted file mode 100644
index a0c6dd9c..00000000
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<classpath>
3 <classpathentry kind="src" path="src"/>
4 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
5 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
6 <classpathentry kind="output" path="bin"/>
7</classpath>
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/META-INF/MANIFEST.MF b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/META-INF/MANIFEST.MF
deleted file mode 100644
index f4f91de8..00000000
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,7 +0,0 @@
1Manifest-Version: 1.0
2Bundle-ManifestVersion: 2
3Bundle-Name: ca.mcgill.ecse.dslreasoner.trace.logic2vampire
4Bundle-SymbolicName: ca.mcgill.ecse.dslreasoner.trace.logic2vampire; singleton:=true
5Bundle-Version: 0.1.0.qualifier
6Require-Bundle: org.eclipse.emf.ecore;visibility:=reexport,
7 org.eclipse.core.runtime
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/model/logic2vampire.aird b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/model/logic2vampire.aird
deleted file mode 100644
index 4fda4ff6..00000000
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/model/logic2vampire.aird
+++ /dev/null
@@ -1,30 +0,0 @@
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: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">
3 <viewpoint:DAnalysis xmi:id="_c5vPUBjhEemoVuGVD8l-rg" selectedViews="_c-elYBjhEemoVuGVD8l-rg" version="12.0.0.201704271200">
4 <semanticResources>logic2vampire.ecore</semanticResources>
5 <semanticResources>logic2vampire.genmodel</semanticResources>
6 <ownedViews xmi:type="viewpoint:DView" xmi:id="_c-elYBjhEemoVuGVD8l-rg">
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" xmi:id="_dEOBABjhEemoVuGVD8l-rg" name="logic2vampire" repPath="#_dEIhcBjhEemoVuGVD8l-rg">
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="logic2vampire.ecore#/"/>
11 </ownedRepresentationDescriptors>
12 </ownedViews>
13 </viewpoint:DAnalysis>
14 <diagram:DSemanticDiagram xmi:id="_dEIhcBjhEemoVuGVD8l-rg" name="logic2vampire">
15 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_dEIhcRjhEemoVuGVD8l-rg" source="DANNOTATION_CUSTOMIZATION_KEY">
16 <data xmi:type="diagram:ComputedStyleDescriptionRegistry" xmi:id="_dEIhchjhEemoVuGVD8l-rg"/>
17 </ownedAnnotationEntries>
18 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_dFEVkBjhEemoVuGVD8l-rg" source="GMF_DIAGRAMS">
19 <data xmi:type="notation:Diagram" xmi:id="_dFEVkRjhEemoVuGVD8l-rg" type="Sirius" element="_dEIhcBjhEemoVuGVD8l-rg" measurementUnit="Pixel">
20 <styles xmi:type="notation:DiagramStyle" xmi:id="_dFEVkhjhEemoVuGVD8l-rg"/>
21 </data>
22 </ownedAnnotationEntries>
23 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
24 <filterVariableHistory xmi:type="diagram:FilterVariableHistory" xmi:id="_dEIhdBjhEemoVuGVD8l-rg"/>
25 <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
26 <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']"/>
27 <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']"/>
28 <target xmi:type="ecore:EPackage" href="logic2vampire.ecore#/"/>
29 </diagram:DSemanticDiagram>
30</xmi:XMI>
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/model/logic2vampire.ecore b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/model/logic2vampire.ecore
deleted file mode 100644
index 0cdf6d7f..00000000
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/model/logic2vampire.ecore
+++ /dev/null
@@ -1,4 +0,0 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
3 name="logic2vampire" nsURI="http://www.example.org/logic2vampire"
4 nsPrefix="logic2vampire"/>
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/model/logic2vampire.genmodel b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/model/logic2vampire.genmodel
deleted file mode 100644
index 32de743d..00000000
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/model/logic2vampire.genmodel
+++ /dev/null
@@ -1,14 +0,0 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/src-gen"
4 creationIcons="false" editDirectory="/ca.mcgill.ecse.dslreasoner.trace.logic2vampire.edit/src-gen"
5 editorDirectory="/ca.mcgill.ecse.dslreasoner.trace.logic2vampire.editor/src-gen"
6 modelPluginID="ca.mcgill.ecse.dslreasoner.trace.logic2vampire" modelName="Logic2vampire"
7 rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" codeFormatting="true"
8 importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" copyrightFields="false"
9 operationReflection="true" importOrganizing="true">
10 <foreignModel>logic2vampire.ecore</foreignModel>
11 <testsDirectory xsi:nil="true"/>
12 <genPackages prefix="Logic2vampire" basePackage="ca.mcgill.ecse.dslreasoner.trace"
13 disposableProviderFactory="true" ecorePackage="logic2vampire.ecore#/"/>
14</genmodel:GenModel>
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 035b992e..416a4ced 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 3a2b0f09..4c3a5366 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 b8a39035..b9e07a68 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 c462e145..f51dce03 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 2d3b2709..23bdd607 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 8640966e..438765b1 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 183e5e40..fb05770c 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 7c2fb4bf..1626ed6c 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/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSFiniteModel.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSFiniteModel.java
deleted file mode 100644
index bfd23d8d..00000000
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSFiniteModel.java
+++ /dev/null
@@ -1,20 +0,0 @@
1/**
2 * generated by Xtext 2.12.0
3 */
4package ca.mcgill.ecse.dslreasoner.vampireLanguage;
5
6import org.eclipse.emf.ecore.EObject;
7
8/**
9 * <!-- begin-user-doc -->
10 * A representation of the model object '<em><b>VLS Finite Model</b></em>'.
11 * <!-- end-user-doc -->
12 *
13 *
14 * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSFiniteModel()
15 * @model
16 * @generated
17 */
18public interface VLSFiniteModel extends EObject
19{
20} // VLSFiniteModel
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSFunctionFof.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSFunctionFof.java
deleted file mode 100644
index d151685f..00000000
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSFunctionFof.java
+++ /dev/null
@@ -1,69 +0,0 @@
1/**
2 * generated by Xtext 2.12.0
3 */
4package ca.mcgill.ecse.dslreasoner.vampireLanguage;
5
6import org.eclipse.emf.common.util.EList;
7
8/**
9 * <!-- begin-user-doc -->
10 * A representation of the model object '<em><b>VLS Function Fof</b></em>'.
11 * <!-- end-user-doc -->
12 *
13 * <p>
14 * The following features are supported:
15 * </p>
16 * <ul>
17 * <li>{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof#getFunctor <em>Functor</em>}</li>
18 * <li>{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof#getTerms <em>Terms</em>}</li>
19 * </ul>
20 *
21 * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSFunctionFof()
22 * @model
23 * @generated
24 */
25public interface VLSFunctionFof extends VLSTerm
26{
27 /**
28 * Returns the value of the '<em><b>Functor</b></em>' attribute.
29 * <!-- begin-user-doc -->
30 * <p>
31 * If the meaning of the '<em>Functor</em>' attribute isn't clear,
32 * there really should be more of a description here...
33 * </p>
34 * <!-- end-user-doc -->
35 * @return the value of the '<em>Functor</em>' attribute.
36 * @see #setFunctor(String)
37 * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSFunctionFof_Functor()
38 * @model
39 * @generated
40 */
41 String getFunctor();
42
43 /**
44 * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof#getFunctor <em>Functor</em>}' attribute.
45 * <!-- begin-user-doc -->
46 * <!-- end-user-doc -->
47 * @param value the new value of the '<em>Functor</em>' attribute.
48 * @see #getFunctor()
49 * @generated
50 */
51 void setFunctor(String value);
52
53 /**
54 * Returns the value of the '<em><b>Terms</b></em>' containment reference list.
55 * The list contents are of type {@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm}.
56 * <!-- begin-user-doc -->
57 * <p>
58 * If the meaning of the '<em>Terms</em>' containment reference list isn't clear,
59 * there really should be more of a description here...
60 * </p>
61 * <!-- end-user-doc -->
62 * @return the value of the '<em>Terms</em>' containment reference list.
63 * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSFunctionFof_Terms()
64 * @model containment="true"
65 * @generated
66 */
67 EList<VLSTerm> getTerms();
68
69} // VLSFunctionFof
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSTrying.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSTrying.java
deleted file mode 100644
index c2080a9c..00000000
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/VLSTrying.java
+++ /dev/null
@@ -1,52 +0,0 @@
1/**
2 * generated by Xtext 2.12.0
3 */
4package ca.mcgill.ecse.dslreasoner.vampireLanguage;
5
6import org.eclipse.emf.ecore.EObject;
7
8/**
9 * <!-- begin-user-doc -->
10 * A representation of the model object '<em><b>VLS Trying</b></em>'.
11 * <!-- end-user-doc -->
12 *
13 * <p>
14 * The following features are supported:
15 * </p>
16 * <ul>
17 * <li>{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTrying#getName <em>Name</em>}</li>
18 * </ul>
19 *
20 * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSTrying()
21 * @model
22 * @generated
23 */
24public interface VLSTrying extends EObject
25{
26 /**
27 * Returns the value of the '<em><b>Name</b></em>' attribute.
28 * <!-- begin-user-doc -->
29 * <p>
30 * If the meaning of the '<em>Name</em>' attribute isn't clear,
31 * there really should be more of a description here...
32 * </p>
33 * <!-- end-user-doc -->
34 * @return the value of the '<em>Name</em>' attribute.
35 * @see #setName(String)
36 * @see ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage#getVLSTrying_Name()
37 * @model
38 * @generated
39 */
40 String getName();
41
42 /**
43 * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTrying#getName <em>Name</em>}' attribute.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @param value the new value of the '<em>Name</em>' attribute.
47 * @see #getName()
48 * @generated
49 */
50 void setName(String value);
51
52} // VLSTrying
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSFiniteModelImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSFiniteModelImpl.java
deleted file mode 100644
index dfbbf6ed..00000000
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSFiniteModelImpl.java
+++ /dev/null
@@ -1,43 +0,0 @@
1/**
2 * generated by Xtext 2.12.0
3 */
4package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl;
5
6import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFiniteModel;
7import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage;
8
9import org.eclipse.emf.ecore.EClass;
10
11import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
12
13/**
14 * <!-- begin-user-doc -->
15 * An implementation of the model object '<em><b>VLS Finite Model</b></em>'.
16 * <!-- end-user-doc -->
17 *
18 * @generated
19 */
20public class VLSFiniteModelImpl extends MinimalEObjectImpl.Container implements VLSFiniteModel
21{
22 /**
23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc -->
25 * @generated
26 */
27 protected VLSFiniteModelImpl()
28 {
29 super();
30 }
31
32 /**
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @generated
36 */
37 @Override
38 protected EClass eStaticClass()
39 {
40 return VampireLanguagePackage.Literals.VLS_FINITE_MODEL;
41 }
42
43} //VLSFiniteModelImpl
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSFunctionFofImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSFunctionFofImpl.java
deleted file mode 100644
index 6d1c538b..00000000
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSFunctionFofImpl.java
+++ /dev/null
@@ -1,240 +0,0 @@
1/**
2 * generated by Xtext 2.12.0
3 */
4package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl;
5
6import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof;
7import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm;
8import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage;
9
10import java.util.Collection;
11
12import org.eclipse.emf.common.notify.Notification;
13import org.eclipse.emf.common.notify.NotificationChain;
14
15import org.eclipse.emf.common.util.EList;
16
17import org.eclipse.emf.ecore.EClass;
18import org.eclipse.emf.ecore.InternalEObject;
19
20import org.eclipse.emf.ecore.impl.ENotificationImpl;
21
22import org.eclipse.emf.ecore.util.EObjectContainmentEList;
23import org.eclipse.emf.ecore.util.InternalEList;
24
25/**
26 * <!-- begin-user-doc -->
27 * An implementation of the model object '<em><b>VLS Function Fof</b></em>'.
28 * <!-- end-user-doc -->
29 * <p>
30 * The following features are implemented:
31 * </p>
32 * <ul>
33 * <li>{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSFunctionFofImpl#getFunctor <em>Functor</em>}</li>
34 * <li>{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSFunctionFofImpl#getTerms <em>Terms</em>}</li>
35 * </ul>
36 *
37 * @generated
38 */
39public class VLSFunctionFofImpl extends VLSTermImpl implements VLSFunctionFof
40{
41 /**
42 * The default value of the '{@link #getFunctor() <em>Functor</em>}' attribute.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #getFunctor()
46 * @generated
47 * @ordered
48 */
49 protected static final String FUNCTOR_EDEFAULT = null;
50
51 /**
52 * The cached value of the '{@link #getFunctor() <em>Functor</em>}' attribute.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #getFunctor()
56 * @generated
57 * @ordered
58 */
59 protected String functor = FUNCTOR_EDEFAULT;
60
61 /**
62 * The cached value of the '{@link #getTerms() <em>Terms</em>}' containment reference list.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @see #getTerms()
66 * @generated
67 * @ordered
68 */
69 protected EList<VLSTerm> terms;
70
71 /**
72 * <!-- begin-user-doc -->
73 * <!-- end-user-doc -->
74 * @generated
75 */
76 protected VLSFunctionFofImpl()
77 {
78 super();
79 }
80
81 /**
82 * <!-- begin-user-doc -->
83 * <!-- end-user-doc -->
84 * @generated
85 */
86 @Override
87 protected EClass eStaticClass()
88 {
89 return VampireLanguagePackage.Literals.VLS_FUNCTION_FOF;
90 }
91
92 /**
93 * <!-- begin-user-doc -->
94 * <!-- end-user-doc -->
95 * @generated
96 */
97 public String getFunctor()
98 {
99 return functor;
100 }
101
102 /**
103 * <!-- begin-user-doc -->
104 * <!-- end-user-doc -->
105 * @generated
106 */
107 public void setFunctor(String newFunctor)
108 {
109 String oldFunctor = functor;
110 functor = newFunctor;
111 if (eNotificationRequired())
112 eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_FUNCTION_FOF__FUNCTOR, oldFunctor, functor));
113 }
114
115 /**
116 * <!-- begin-user-doc -->
117 * <!-- end-user-doc -->
118 * @generated
119 */
120 public EList<VLSTerm> getTerms()
121 {
122 if (terms == null)
123 {
124 terms = new EObjectContainmentEList<VLSTerm>(VLSTerm.class, this, VampireLanguagePackage.VLS_FUNCTION_FOF__TERMS);
125 }
126 return terms;
127 }
128
129 /**
130 * <!-- begin-user-doc -->
131 * <!-- end-user-doc -->
132 * @generated
133 */
134 @Override
135 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
136 {
137 switch (featureID)
138 {
139 case VampireLanguagePackage.VLS_FUNCTION_FOF__TERMS:
140 return ((InternalEList<?>)getTerms()).basicRemove(otherEnd, msgs);
141 }
142 return super.eInverseRemove(otherEnd, featureID, msgs);
143 }
144
145 /**
146 * <!-- begin-user-doc -->
147 * <!-- end-user-doc -->
148 * @generated
149 */
150 @Override
151 public Object eGet(int featureID, boolean resolve, boolean coreType)
152 {
153 switch (featureID)
154 {
155 case VampireLanguagePackage.VLS_FUNCTION_FOF__FUNCTOR:
156 return getFunctor();
157 case VampireLanguagePackage.VLS_FUNCTION_FOF__TERMS:
158 return getTerms();
159 }
160 return super.eGet(featureID, resolve, coreType);
161 }
162
163 /**
164 * <!-- begin-user-doc -->
165 * <!-- end-user-doc -->
166 * @generated
167 */
168 @SuppressWarnings("unchecked")
169 @Override
170 public void eSet(int featureID, Object newValue)
171 {
172 switch (featureID)
173 {
174 case VampireLanguagePackage.VLS_FUNCTION_FOF__FUNCTOR:
175 setFunctor((String)newValue);
176 return;
177 case VampireLanguagePackage.VLS_FUNCTION_FOF__TERMS:
178 getTerms().clear();
179 getTerms().addAll((Collection<? extends VLSTerm>)newValue);
180 return;
181 }
182 super.eSet(featureID, newValue);
183 }
184
185 /**
186 * <!-- begin-user-doc -->
187 * <!-- end-user-doc -->
188 * @generated
189 */
190 @Override
191 public void eUnset(int featureID)
192 {
193 switch (featureID)
194 {
195 case VampireLanguagePackage.VLS_FUNCTION_FOF__FUNCTOR:
196 setFunctor(FUNCTOR_EDEFAULT);
197 return;
198 case VampireLanguagePackage.VLS_FUNCTION_FOF__TERMS:
199 getTerms().clear();
200 return;
201 }
202 super.eUnset(featureID);
203 }
204
205 /**
206 * <!-- begin-user-doc -->
207 * <!-- end-user-doc -->
208 * @generated
209 */
210 @Override
211 public boolean eIsSet(int featureID)
212 {
213 switch (featureID)
214 {
215 case VampireLanguagePackage.VLS_FUNCTION_FOF__FUNCTOR:
216 return FUNCTOR_EDEFAULT == null ? functor != null : !FUNCTOR_EDEFAULT.equals(functor);
217 case VampireLanguagePackage.VLS_FUNCTION_FOF__TERMS:
218 return terms != null && !terms.isEmpty();
219 }
220 return super.eIsSet(featureID);
221 }
222
223 /**
224 * <!-- begin-user-doc -->
225 * <!-- end-user-doc -->
226 * @generated
227 */
228 @Override
229 public String toString()
230 {
231 if (eIsProxy()) return super.toString();
232
233 StringBuffer result = new StringBuffer(super.toString());
234 result.append(" (functor: ");
235 result.append(functor);
236 result.append(')');
237 return result.toString();
238 }
239
240} //VLSFunctionFofImpl
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSTryingImpl.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSTryingImpl.java
deleted file mode 100644
index 40e62d9e..00000000
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/src-gen/ca/mcgill/ecse/dslreasoner/vampireLanguage/impl/VLSTryingImpl.java
+++ /dev/null
@@ -1,178 +0,0 @@
1/**
2 * generated by Xtext 2.12.0
3 */
4package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl;
5
6import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTrying;
7import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage;
8
9import org.eclipse.emf.common.notify.Notification;
10
11import org.eclipse.emf.ecore.EClass;
12
13import org.eclipse.emf.ecore.impl.ENotificationImpl;
14import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
15
16/**
17 * <!-- begin-user-doc -->
18 * An implementation of the model object '<em><b>VLS Trying</b></em>'.
19 * <!-- end-user-doc -->
20 * <p>
21 * The following features are implemented:
22 * </p>
23 * <ul>
24 * <li>{@link ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VLSTryingImpl#getName <em>Name</em>}</li>
25 * </ul>
26 *
27 * @generated
28 */
29public class VLSTryingImpl extends MinimalEObjectImpl.Container implements VLSTrying
30{
31 /**
32 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @see #getName()
36 * @generated
37 * @ordered
38 */
39 protected static final String NAME_EDEFAULT = null;
40
41 /**
42 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #getName()
46 * @generated
47 * @ordered
48 */
49 protected String name = NAME_EDEFAULT;
50
51 /**
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @generated
55 */
56 protected VLSTryingImpl()
57 {
58 super();
59 }
60
61 /**
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @generated
65 */
66 @Override
67 protected EClass eStaticClass()
68 {
69 return VampireLanguagePackage.Literals.VLS_TRYING;
70 }
71
72 /**
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @generated
76 */
77 public String getName()
78 {
79 return name;
80 }
81
82 /**
83 * <!-- begin-user-doc -->
84 * <!-- end-user-doc -->
85 * @generated
86 */
87 public void setName(String newName)
88 {
89 String oldName = name;
90 name = newName;
91 if (eNotificationRequired())
92 eNotify(new ENotificationImpl(this, Notification.SET, VampireLanguagePackage.VLS_TRYING__NAME, oldName, name));
93 }
94
95 /**
96 * <!-- begin-user-doc -->
97 * <!-- end-user-doc -->
98 * @generated
99 */
100 @Override
101 public Object eGet(int featureID, boolean resolve, boolean coreType)
102 {
103 switch (featureID)
104 {
105 case VampireLanguagePackage.VLS_TRYING__NAME:
106 return getName();
107 }
108 return super.eGet(featureID, resolve, coreType);
109 }
110
111 /**
112 * <!-- begin-user-doc -->
113 * <!-- end-user-doc -->
114 * @generated
115 */
116 @Override
117 public void eSet(int featureID, Object newValue)
118 {
119 switch (featureID)
120 {
121 case VampireLanguagePackage.VLS_TRYING__NAME:
122 setName((String)newValue);
123 return;
124 }
125 super.eSet(featureID, newValue);
126 }
127
128 /**
129 * <!-- begin-user-doc -->
130 * <!-- end-user-doc -->
131 * @generated
132 */
133 @Override
134 public void eUnset(int featureID)
135 {
136 switch (featureID)
137 {
138 case VampireLanguagePackage.VLS_TRYING__NAME:
139 setName(NAME_EDEFAULT);
140 return;
141 }
142 super.eUnset(featureID);
143 }
144
145 /**
146 * <!-- begin-user-doc -->
147 * <!-- end-user-doc -->
148 * @generated
149 */
150 @Override
151 public boolean eIsSet(int featureID)
152 {
153 switch (featureID)
154 {
155 case VampireLanguagePackage.VLS_TRYING__NAME:
156 return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
157 }
158 return super.eIsSet(featureID);
159 }
160
161 /**
162 * <!-- begin-user-doc -->
163 * <!-- end-user-doc -->
164 * @generated
165 */
166 @Override
167 public String toString()
168 {
169 if (eIsProxy()) return super.toString();
170
171 StringBuffer result = new StringBuffer(super.toString());
172 result.append(" (name: ");
173 result.append(name);
174 result.append(')');
175 return result.toString();
176 }
177
178} //VLSTryingImpl
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 415d0cc9..c38505ea 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 9d43d4a1..3ab52ff6 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 d3a5a764..e845ff1e 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 dd4b1eaa..d45af918 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 a3a95c68..cc9d50ce 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 88c7412c..0418e131 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.queries/.gitignore b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/.gitignore
index ae3c1726..39fc9cc5 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/.gitignore
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/.gitignore
@@ -1 +1,2 @@
1/bin/ 1/bin/
2/src-gen/ \ No newline at end of file
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSAnd.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSAnd.java
deleted file mode 100644
index 23d9293f..00000000
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSAnd.java
+++ /dev/null
@@ -1,533 +0,0 @@
1/**
2 * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql
3 */
4package ca.mcgill.ecse.dslreasoner.vampire.queries;
5
6import java.util.Arrays;
7import java.util.Collection;
8import java.util.LinkedHashSet;
9import java.util.List;
10import java.util.Objects;
11import java.util.Optional;
12import java.util.Set;
13import java.util.function.Consumer;
14import java.util.stream.Collectors;
15import java.util.stream.Stream;
16import org.apache.log4j.Logger;
17import org.eclipse.emf.ecore.EClass;
18import org.eclipse.viatra.query.runtime.api.IPatternMatch;
19import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
20import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
21import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
22import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
23import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
24import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
25import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
26import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
27import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
28import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
29import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
30import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
31import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
32import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
33import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
34import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
35import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
36import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
37
38/**
39 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
40 *
41 * <p>Original source:
42 * <code><pre>
43 * pattern VLSAnd(term: VLSAnd){
44 * VLSAnd(term);
45 * }
46 * </pre></code>
47 *
48 * @see Matcher
49 * @see Match
50 *
51 */
52@SuppressWarnings("all")
53public final class VLSAnd extends BaseGeneratedEMFQuerySpecification<VLSAnd.Matcher> {
54 /**
55 * Pattern-specific match representation of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnd pattern,
56 * to be used in conjunction with {@link Matcher}.
57 *
58 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
59 * Each instance is a (possibly partial) substitution of pattern parameters,
60 * usable to represent a match of the pattern in the result of a query,
61 * or to specify the bound (fixed) input parameters when issuing a query.
62 *
63 * @see Matcher
64 *
65 */
66 public static abstract class Match extends BasePatternMatch {
67 private ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd fTerm;
68
69 private static List<String> parameterNames = makeImmutableList("term");
70
71 private Match(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd pTerm) {
72 this.fTerm = pTerm;
73 }
74
75 @Override
76 public Object get(final String parameterName) {
77 if ("term".equals(parameterName)) return this.fTerm;
78 return null;
79 }
80
81 public ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd getTerm() {
82 return this.fTerm;
83 }
84
85 @Override
86 public boolean set(final String parameterName, final Object newValue) {
87 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
88 if ("term".equals(parameterName) ) {
89 this.fTerm = (ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd) newValue;
90 return true;
91 }
92 return false;
93 }
94
95 public void setTerm(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd pTerm) {
96 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
97 this.fTerm = pTerm;
98 }
99
100 @Override
101 public String patternName() {
102 return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnd";
103 }
104
105 @Override
106 public List<String> parameterNames() {
107 return VLSAnd.Match.parameterNames;
108 }
109
110 @Override
111 public Object[] toArray() {
112 return new Object[]{fTerm};
113 }
114
115 @Override
116 public VLSAnd.Match toImmutable() {
117 return isMutable() ? newMatch(fTerm) : this;
118 }
119
120 @Override
121 public String prettyPrint() {
122 StringBuilder result = new StringBuilder();
123 result.append("\"term\"=" + prettyPrintValue(fTerm));
124 return result.toString();
125 }
126
127 @Override
128 public int hashCode() {
129 return Objects.hash(fTerm);
130 }
131
132 @Override
133 public boolean equals(final Object obj) {
134 if (this == obj)
135 return true;
136 if (obj == null) {
137 return false;
138 }
139 if ((obj instanceof VLSAnd.Match)) {
140 VLSAnd.Match other = (VLSAnd.Match) obj;
141 return Objects.equals(fTerm, other.fTerm);
142 } else {
143 // this should be infrequent
144 if (!(obj instanceof IPatternMatch)) {
145 return false;
146 }
147 IPatternMatch otherSig = (IPatternMatch) obj;
148 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
149 }
150 }
151
152 @Override
153 public VLSAnd specification() {
154 return VLSAnd.instance();
155 }
156
157 /**
158 * Returns an empty, mutable match.
159 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
160 *
161 * @return the empty match.
162 *
163 */
164 public static VLSAnd.Match newEmptyMatch() {
165 return new Mutable(null);
166 }
167
168 /**
169 * Returns a mutable (partial) match.
170 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
171 *
172 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
173 * @return the new, mutable (partial) match object.
174 *
175 */
176 public static VLSAnd.Match newMutableMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd pTerm) {
177 return new Mutable(pTerm);
178 }
179
180 /**
181 * Returns a new (partial) match.
182 * This can be used e.g. to call the matcher with a partial match.
183 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
184 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
185 * @return the (partial) match object.
186 *
187 */
188 public static VLSAnd.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd pTerm) {
189 return new Immutable(pTerm);
190 }
191
192 private static final class Mutable extends VLSAnd.Match {
193 Mutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd pTerm) {
194 super(pTerm);
195 }
196
197 @Override
198 public boolean isMutable() {
199 return true;
200 }
201 }
202
203 private static final class Immutable extends VLSAnd.Match {
204 Immutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd pTerm) {
205 super(pTerm);
206 }
207
208 @Override
209 public boolean isMutable() {
210 return false;
211 }
212 }
213 }
214
215 /**
216 * Generated pattern matcher API of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnd pattern,
217 * providing pattern-specific query methods.
218 *
219 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
220 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
221 *
222 * <p>Matches of the pattern will be represented as {@link Match}.
223 *
224 * <p>Original source:
225 * <code><pre>
226 * pattern VLSAnd(term: VLSAnd){
227 * VLSAnd(term);
228 * }
229 * </pre></code>
230 *
231 * @see Match
232 * @see VLSAnd
233 *
234 */
235 public static class Matcher extends BaseMatcher<VLSAnd.Match> {
236 /**
237 * Initializes the pattern matcher within an existing VIATRA Query engine.
238 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
239 *
240 * @param engine the existing VIATRA Query engine in which this matcher will be created.
241 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
242 *
243 */
244 public static VLSAnd.Matcher on(final ViatraQueryEngine engine) {
245 // check if matcher already exists
246 Matcher matcher = engine.getExistingMatcher(querySpecification());
247 if (matcher == null) {
248 matcher = (Matcher)engine.getMatcher(querySpecification());
249 }
250 return matcher;
251 }
252
253 /**
254 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
255 * @return an initialized matcher
256 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
257 *
258 */
259 public static VLSAnd.Matcher create() {
260 return new Matcher();
261 }
262
263 private final static int POSITION_TERM = 0;
264
265 private final static Logger LOGGER = ViatraQueryLoggingUtil.getLogger(VLSAnd.Matcher.class);
266
267 /**
268 * Initializes the pattern matcher within an existing VIATRA Query engine.
269 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
270 *
271 * @param engine the existing VIATRA Query engine in which this matcher will be created.
272 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
273 *
274 */
275 private Matcher() {
276 super(querySpecification());
277 }
278
279 /**
280 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
281 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
282 * @return matches represented as a Match object.
283 *
284 */
285 public Collection<VLSAnd.Match> getAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd pTerm) {
286 return rawStreamAllMatches(new Object[]{pTerm}).collect(Collectors.toSet());
287 }
288
289 /**
290 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
291 * </p>
292 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
293 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
294 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
295 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
296 * @return a stream of matches represented as a Match object.
297 *
298 */
299 public Stream<VLSAnd.Match> streamAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd pTerm) {
300 return rawStreamAllMatches(new Object[]{pTerm});
301 }
302
303 /**
304 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
305 * Neither determinism nor randomness of selection is guaranteed.
306 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
307 * @return a match represented as a Match object, or null if no match is found.
308 *
309 */
310 public Optional<VLSAnd.Match> getOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd pTerm) {
311 return rawGetOneArbitraryMatch(new Object[]{pTerm});
312 }
313
314 /**
315 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
316 * under any possible substitution of the unspecified parameters (if any).
317 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
318 * @return true if the input is a valid (partial) match of the pattern.
319 *
320 */
321 public boolean hasMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd pTerm) {
322 return rawHasMatch(new Object[]{pTerm});
323 }
324
325 /**
326 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
327 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
328 * @return the number of pattern matches found.
329 *
330 */
331 public int countMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd pTerm) {
332 return rawCountMatches(new Object[]{pTerm});
333 }
334
335 /**
336 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
337 * Neither determinism nor randomness of selection is guaranteed.
338 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
339 * @param processor the action that will process the selected match.
340 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
341 *
342 */
343 public boolean forOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd pTerm, final Consumer<? super VLSAnd.Match> processor) {
344 return rawForOneArbitraryMatch(new Object[]{pTerm}, processor);
345 }
346
347 /**
348 * Returns a new (partial) match.
349 * This can be used e.g. to call the matcher with a partial match.
350 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
351 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
352 * @return the (partial) match object.
353 *
354 */
355 public VLSAnd.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd pTerm) {
356 return VLSAnd.Match.newMatch(pTerm);
357 }
358
359 /**
360 * Retrieve the set of values that occur in matches for term.
361 * @return the Set of all values or empty set if there are no matches
362 *
363 */
364 protected Stream<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd> rawStreamAllValuesOfterm(final Object[] parameters) {
365 return rawStreamAllValues(POSITION_TERM, parameters).map(ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd.class::cast);
366 }
367
368 /**
369 * Retrieve the set of values that occur in matches for term.
370 * @return the Set of all values or empty set if there are no matches
371 *
372 */
373 public Set<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd> getAllValuesOfterm() {
374 return rawStreamAllValuesOfterm(emptyArray()).collect(Collectors.toSet());
375 }
376
377 /**
378 * Retrieve the set of values that occur in matches for term.
379 * @return the Set of all values or empty set if there are no matches
380 *
381 */
382 public Stream<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd> streamAllValuesOfterm() {
383 return rawStreamAllValuesOfterm(emptyArray());
384 }
385
386 @Override
387 protected VLSAnd.Match tupleToMatch(final Tuple t) {
388 try {
389 return VLSAnd.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd) t.get(POSITION_TERM));
390 } catch(ClassCastException e) {
391 LOGGER.error("Element(s) in tuple not properly typed!",e);
392 return null;
393 }
394 }
395
396 @Override
397 protected VLSAnd.Match arrayToMatch(final Object[] match) {
398 try {
399 return VLSAnd.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd) match[POSITION_TERM]);
400 } catch(ClassCastException e) {
401 LOGGER.error("Element(s) in array not properly typed!",e);
402 return null;
403 }
404 }
405
406 @Override
407 protected VLSAnd.Match arrayToMatchMutable(final Object[] match) {
408 try {
409 return VLSAnd.Match.newMutableMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd) match[POSITION_TERM]);
410 } catch(ClassCastException e) {
411 LOGGER.error("Element(s) in array not properly typed!",e);
412 return null;
413 }
414 }
415
416 /**
417 * @return the singleton instance of the query specification of this pattern
418 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
419 *
420 */
421 public static IQuerySpecification<VLSAnd.Matcher> querySpecification() {
422 return VLSAnd.instance();
423 }
424 }
425
426 private VLSAnd() {
427 super(GeneratedPQuery.INSTANCE);
428 }
429
430 /**
431 * @return the singleton instance of the query specification
432 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
433 *
434 */
435 public static VLSAnd instance() {
436 try{
437 return LazyHolder.INSTANCE;
438 } catch (ExceptionInInitializerError err) {
439 throw processInitializerError(err);
440 }
441 }
442
443 @Override
444 protected VLSAnd.Matcher instantiate(final ViatraQueryEngine engine) {
445 return VLSAnd.Matcher.on(engine);
446 }
447
448 @Override
449 public VLSAnd.Matcher instantiate() {
450 return VLSAnd.Matcher.create();
451 }
452
453 @Override
454 public VLSAnd.Match newEmptyMatch() {
455 return VLSAnd.Match.newEmptyMatch();
456 }
457
458 @Override
459 public VLSAnd.Match newMatch(final Object... parameters) {
460 return VLSAnd.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd) parameters[0]);
461 }
462
463 /**
464 * Inner class allowing the singleton instance of {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnd (visibility: PUBLIC, simpleName: VLSAnd, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnd, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
465 * <b>not</b> at the class load time of the outer class,
466 * but rather at the first call to {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnd (visibility: PUBLIC, simpleName: VLSAnd, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnd, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
467 *
468 * <p> This workaround is required e.g. to support recursion.
469 *
470 */
471 private static class LazyHolder {
472 private final static VLSAnd INSTANCE = new VLSAnd();
473
474 /**
475 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
476 * This initialization order is required to support indirect recursion.
477 *
478 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
479 *
480 */
481 private final static Object STATIC_INITIALIZER = ensureInitialized();
482
483 public static Object ensureInitialized() {
484 INSTANCE.ensureInitializedInternal();
485 return null;
486 }
487 }
488
489 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
490 private final static VLSAnd.GeneratedPQuery INSTANCE = new GeneratedPQuery();
491
492 private final PParameter parameter_term = new PParameter("term", "ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSAnd")), PParameterDirection.INOUT);
493
494 private final List<PParameter> parameters = Arrays.asList(parameter_term);
495
496 private GeneratedPQuery() {
497 super(PVisibility.PUBLIC);
498 }
499
500 @Override
501 public String getFullyQualifiedName() {
502 return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnd";
503 }
504
505 @Override
506 public List<String> getParameterNames() {
507 return Arrays.asList("term");
508 }
509
510 @Override
511 public List<PParameter> getParameters() {
512 return parameters;
513 }
514
515 @Override
516 public Set<PBody> doGetContainedBodies() {
517 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
518 Set<PBody> bodies = new LinkedHashSet<>();
519 {
520 PBody body = new PBody(this);
521 PVariable var_term = body.getOrCreateVariableByName("term");
522 new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSAnd")));
523 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
524 new ExportedParameter(body, var_term, parameter_term)
525 ));
526 // VLSAnd(term)
527 new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSAnd")));
528 bodies.add(body);
529 }
530 return bodies;
531 }
532 }
533}
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSAnnotation.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSAnnotation.java
deleted file mode 100644
index 282d813f..00000000
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSAnnotation.java
+++ /dev/null
@@ -1,533 +0,0 @@
1/**
2 * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql
3 */
4package ca.mcgill.ecse.dslreasoner.vampire.queries;
5
6import java.util.Arrays;
7import java.util.Collection;
8import java.util.LinkedHashSet;
9import java.util.List;
10import java.util.Objects;
11import java.util.Optional;
12import java.util.Set;
13import java.util.function.Consumer;
14import java.util.stream.Collectors;
15import java.util.stream.Stream;
16import org.apache.log4j.Logger;
17import org.eclipse.emf.ecore.EClass;
18import org.eclipse.viatra.query.runtime.api.IPatternMatch;
19import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
20import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
21import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
22import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
23import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
24import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
25import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
26import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
27import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
28import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
29import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
30import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
31import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
32import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
33import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
34import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
35import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
36import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
37
38/**
39 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
40 *
41 * <p>Original source:
42 * <code><pre>
43 * pattern VLSAnnotation(term: VLSAnnotation){
44 * VLSAnnotation(term);
45 * }
46 * </pre></code>
47 *
48 * @see Matcher
49 * @see Match
50 *
51 */
52@SuppressWarnings("all")
53public final class VLSAnnotation extends BaseGeneratedEMFQuerySpecification<VLSAnnotation.Matcher> {
54 /**
55 * Pattern-specific match representation of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnnotation pattern,
56 * to be used in conjunction with {@link Matcher}.
57 *
58 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
59 * Each instance is a (possibly partial) substitution of pattern parameters,
60 * usable to represent a match of the pattern in the result of a query,
61 * or to specify the bound (fixed) input parameters when issuing a query.
62 *
63 * @see Matcher
64 *
65 */
66 public static abstract class Match extends BasePatternMatch {
67 private ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation fTerm;
68
69 private static List<String> parameterNames = makeImmutableList("term");
70
71 private Match(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation pTerm) {
72 this.fTerm = pTerm;
73 }
74
75 @Override
76 public Object get(final String parameterName) {
77 if ("term".equals(parameterName)) return this.fTerm;
78 return null;
79 }
80
81 public ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation getTerm() {
82 return this.fTerm;
83 }
84
85 @Override
86 public boolean set(final String parameterName, final Object newValue) {
87 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
88 if ("term".equals(parameterName) ) {
89 this.fTerm = (ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation) newValue;
90 return true;
91 }
92 return false;
93 }
94
95 public void setTerm(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation pTerm) {
96 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
97 this.fTerm = pTerm;
98 }
99
100 @Override
101 public String patternName() {
102 return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnnotation";
103 }
104
105 @Override
106 public List<String> parameterNames() {
107 return VLSAnnotation.Match.parameterNames;
108 }
109
110 @Override
111 public Object[] toArray() {
112 return new Object[]{fTerm};
113 }
114
115 @Override
116 public VLSAnnotation.Match toImmutable() {
117 return isMutable() ? newMatch(fTerm) : this;
118 }
119
120 @Override
121 public String prettyPrint() {
122 StringBuilder result = new StringBuilder();
123 result.append("\"term\"=" + prettyPrintValue(fTerm));
124 return result.toString();
125 }
126
127 @Override
128 public int hashCode() {
129 return Objects.hash(fTerm);
130 }
131
132 @Override
133 public boolean equals(final Object obj) {
134 if (this == obj)
135 return true;
136 if (obj == null) {
137 return false;
138 }
139 if ((obj instanceof VLSAnnotation.Match)) {
140 VLSAnnotation.Match other = (VLSAnnotation.Match) obj;
141 return Objects.equals(fTerm, other.fTerm);
142 } else {
143 // this should be infrequent
144 if (!(obj instanceof IPatternMatch)) {
145 return false;
146 }
147 IPatternMatch otherSig = (IPatternMatch) obj;
148 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
149 }
150 }
151
152 @Override
153 public VLSAnnotation specification() {
154 return VLSAnnotation.instance();
155 }
156
157 /**
158 * Returns an empty, mutable match.
159 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
160 *
161 * @return the empty match.
162 *
163 */
164 public static VLSAnnotation.Match newEmptyMatch() {
165 return new Mutable(null);
166 }
167
168 /**
169 * Returns a mutable (partial) match.
170 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
171 *
172 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
173 * @return the new, mutable (partial) match object.
174 *
175 */
176 public static VLSAnnotation.Match newMutableMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation pTerm) {
177 return new Mutable(pTerm);
178 }
179
180 /**
181 * Returns a new (partial) match.
182 * This can be used e.g. to call the matcher with a partial match.
183 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
184 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
185 * @return the (partial) match object.
186 *
187 */
188 public static VLSAnnotation.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation pTerm) {
189 return new Immutable(pTerm);
190 }
191
192 private static final class Mutable extends VLSAnnotation.Match {
193 Mutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation pTerm) {
194 super(pTerm);
195 }
196
197 @Override
198 public boolean isMutable() {
199 return true;
200 }
201 }
202
203 private static final class Immutable extends VLSAnnotation.Match {
204 Immutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation pTerm) {
205 super(pTerm);
206 }
207
208 @Override
209 public boolean isMutable() {
210 return false;
211 }
212 }
213 }
214
215 /**
216 * Generated pattern matcher API of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnnotation pattern,
217 * providing pattern-specific query methods.
218 *
219 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
220 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
221 *
222 * <p>Matches of the pattern will be represented as {@link Match}.
223 *
224 * <p>Original source:
225 * <code><pre>
226 * pattern VLSAnnotation(term: VLSAnnotation){
227 * VLSAnnotation(term);
228 * }
229 * </pre></code>
230 *
231 * @see Match
232 * @see VLSAnnotation
233 *
234 */
235 public static class Matcher extends BaseMatcher<VLSAnnotation.Match> {
236 /**
237 * Initializes the pattern matcher within an existing VIATRA Query engine.
238 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
239 *
240 * @param engine the existing VIATRA Query engine in which this matcher will be created.
241 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
242 *
243 */
244 public static VLSAnnotation.Matcher on(final ViatraQueryEngine engine) {
245 // check if matcher already exists
246 Matcher matcher = engine.getExistingMatcher(querySpecification());
247 if (matcher == null) {
248 matcher = (Matcher)engine.getMatcher(querySpecification());
249 }
250 return matcher;
251 }
252
253 /**
254 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
255 * @return an initialized matcher
256 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
257 *
258 */
259 public static VLSAnnotation.Matcher create() {
260 return new Matcher();
261 }
262
263 private final static int POSITION_TERM = 0;
264
265 private final static Logger LOGGER = ViatraQueryLoggingUtil.getLogger(VLSAnnotation.Matcher.class);
266
267 /**
268 * Initializes the pattern matcher within an existing VIATRA Query engine.
269 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
270 *
271 * @param engine the existing VIATRA Query engine in which this matcher will be created.
272 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
273 *
274 */
275 private Matcher() {
276 super(querySpecification());
277 }
278
279 /**
280 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
281 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
282 * @return matches represented as a Match object.
283 *
284 */
285 public Collection<VLSAnnotation.Match> getAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation pTerm) {
286 return rawStreamAllMatches(new Object[]{pTerm}).collect(Collectors.toSet());
287 }
288
289 /**
290 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
291 * </p>
292 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
293 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
294 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
295 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
296 * @return a stream of matches represented as a Match object.
297 *
298 */
299 public Stream<VLSAnnotation.Match> streamAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation pTerm) {
300 return rawStreamAllMatches(new Object[]{pTerm});
301 }
302
303 /**
304 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
305 * Neither determinism nor randomness of selection is guaranteed.
306 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
307 * @return a match represented as a Match object, or null if no match is found.
308 *
309 */
310 public Optional<VLSAnnotation.Match> getOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation pTerm) {
311 return rawGetOneArbitraryMatch(new Object[]{pTerm});
312 }
313
314 /**
315 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
316 * under any possible substitution of the unspecified parameters (if any).
317 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
318 * @return true if the input is a valid (partial) match of the pattern.
319 *
320 */
321 public boolean hasMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation pTerm) {
322 return rawHasMatch(new Object[]{pTerm});
323 }
324
325 /**
326 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
327 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
328 * @return the number of pattern matches found.
329 *
330 */
331 public int countMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation pTerm) {
332 return rawCountMatches(new Object[]{pTerm});
333 }
334
335 /**
336 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
337 * Neither determinism nor randomness of selection is guaranteed.
338 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
339 * @param processor the action that will process the selected match.
340 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
341 *
342 */
343 public boolean forOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation pTerm, final Consumer<? super VLSAnnotation.Match> processor) {
344 return rawForOneArbitraryMatch(new Object[]{pTerm}, processor);
345 }
346
347 /**
348 * Returns a new (partial) match.
349 * This can be used e.g. to call the matcher with a partial match.
350 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
351 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
352 * @return the (partial) match object.
353 *
354 */
355 public VLSAnnotation.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation pTerm) {
356 return VLSAnnotation.Match.newMatch(pTerm);
357 }
358
359 /**
360 * Retrieve the set of values that occur in matches for term.
361 * @return the Set of all values or empty set if there are no matches
362 *
363 */
364 protected Stream<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation> rawStreamAllValuesOfterm(final Object[] parameters) {
365 return rawStreamAllValues(POSITION_TERM, parameters).map(ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation.class::cast);
366 }
367
368 /**
369 * Retrieve the set of values that occur in matches for term.
370 * @return the Set of all values or empty set if there are no matches
371 *
372 */
373 public Set<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation> getAllValuesOfterm() {
374 return rawStreamAllValuesOfterm(emptyArray()).collect(Collectors.toSet());
375 }
376
377 /**
378 * Retrieve the set of values that occur in matches for term.
379 * @return the Set of all values or empty set if there are no matches
380 *
381 */
382 public Stream<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation> streamAllValuesOfterm() {
383 return rawStreamAllValuesOfterm(emptyArray());
384 }
385
386 @Override
387 protected VLSAnnotation.Match tupleToMatch(final Tuple t) {
388 try {
389 return VLSAnnotation.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation) t.get(POSITION_TERM));
390 } catch(ClassCastException e) {
391 LOGGER.error("Element(s) in tuple not properly typed!",e);
392 return null;
393 }
394 }
395
396 @Override
397 protected VLSAnnotation.Match arrayToMatch(final Object[] match) {
398 try {
399 return VLSAnnotation.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation) match[POSITION_TERM]);
400 } catch(ClassCastException e) {
401 LOGGER.error("Element(s) in array not properly typed!",e);
402 return null;
403 }
404 }
405
406 @Override
407 protected VLSAnnotation.Match arrayToMatchMutable(final Object[] match) {
408 try {
409 return VLSAnnotation.Match.newMutableMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation) match[POSITION_TERM]);
410 } catch(ClassCastException e) {
411 LOGGER.error("Element(s) in array not properly typed!",e);
412 return null;
413 }
414 }
415
416 /**
417 * @return the singleton instance of the query specification of this pattern
418 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
419 *
420 */
421 public static IQuerySpecification<VLSAnnotation.Matcher> querySpecification() {
422 return VLSAnnotation.instance();
423 }
424 }
425
426 private VLSAnnotation() {
427 super(GeneratedPQuery.INSTANCE);
428 }
429
430 /**
431 * @return the singleton instance of the query specification
432 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
433 *
434 */
435 public static VLSAnnotation instance() {
436 try{
437 return LazyHolder.INSTANCE;
438 } catch (ExceptionInInitializerError err) {
439 throw processInitializerError(err);
440 }
441 }
442
443 @Override
444 protected VLSAnnotation.Matcher instantiate(final ViatraQueryEngine engine) {
445 return VLSAnnotation.Matcher.on(engine);
446 }
447
448 @Override
449 public VLSAnnotation.Matcher instantiate() {
450 return VLSAnnotation.Matcher.create();
451 }
452
453 @Override
454 public VLSAnnotation.Match newEmptyMatch() {
455 return VLSAnnotation.Match.newEmptyMatch();
456 }
457
458 @Override
459 public VLSAnnotation.Match newMatch(final Object... parameters) {
460 return VLSAnnotation.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation) parameters[0]);
461 }
462
463 /**
464 * Inner class allowing the singleton instance of {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnnotation (visibility: PUBLIC, simpleName: VLSAnnotation, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnnotation, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
465 * <b>not</b> at the class load time of the outer class,
466 * but rather at the first call to {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnnotation (visibility: PUBLIC, simpleName: VLSAnnotation, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnnotation, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
467 *
468 * <p> This workaround is required e.g. to support recursion.
469 *
470 */
471 private static class LazyHolder {
472 private final static VLSAnnotation INSTANCE = new VLSAnnotation();
473
474 /**
475 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
476 * This initialization order is required to support indirect recursion.
477 *
478 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
479 *
480 */
481 private final static Object STATIC_INITIALIZER = ensureInitialized();
482
483 public static Object ensureInitialized() {
484 INSTANCE.ensureInitializedInternal();
485 return null;
486 }
487 }
488
489 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
490 private final static VLSAnnotation.GeneratedPQuery INSTANCE = new GeneratedPQuery();
491
492 private final PParameter parameter_term = new PParameter("term", "ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnnotation", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSAnnotation")), PParameterDirection.INOUT);
493
494 private final List<PParameter> parameters = Arrays.asList(parameter_term);
495
496 private GeneratedPQuery() {
497 super(PVisibility.PUBLIC);
498 }
499
500 @Override
501 public String getFullyQualifiedName() {
502 return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnnotation";
503 }
504
505 @Override
506 public List<String> getParameterNames() {
507 return Arrays.asList("term");
508 }
509
510 @Override
511 public List<PParameter> getParameters() {
512 return parameters;
513 }
514
515 @Override
516 public Set<PBody> doGetContainedBodies() {
517 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
518 Set<PBody> bodies = new LinkedHashSet<>();
519 {
520 PBody body = new PBody(this);
521 PVariable var_term = body.getOrCreateVariableByName("term");
522 new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSAnnotation")));
523 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
524 new ExportedParameter(body, var_term, parameter_term)
525 ));
526 // VLSAnnotation(term)
527 new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSAnnotation")));
528 bodies.add(body);
529 }
530 return bodies;
531 }
532 }
533}
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSComment.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSComment.java
deleted file mode 100644
index ec2bfef3..00000000
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSComment.java
+++ /dev/null
@@ -1,533 +0,0 @@
1/**
2 * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql
3 */
4package ca.mcgill.ecse.dslreasoner.vampire.queries;
5
6import java.util.Arrays;
7import java.util.Collection;
8import java.util.LinkedHashSet;
9import java.util.List;
10import java.util.Objects;
11import java.util.Optional;
12import java.util.Set;
13import java.util.function.Consumer;
14import java.util.stream.Collectors;
15import java.util.stream.Stream;
16import org.apache.log4j.Logger;
17import org.eclipse.emf.ecore.EClass;
18import org.eclipse.viatra.query.runtime.api.IPatternMatch;
19import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
20import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
21import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
22import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
23import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
24import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
25import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
26import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
27import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
28import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
29import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
30import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
31import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
32import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
33import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
34import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
35import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
36import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
37
38/**
39 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
40 *
41 * <p>Original source:
42 * <code><pre>
43 * pattern VLSComment(term: VLSComment){
44 * VLSComment(term);
45 * }
46 * </pre></code>
47 *
48 * @see Matcher
49 * @see Match
50 *
51 */
52@SuppressWarnings("all")
53public final class VLSComment extends BaseGeneratedEMFQuerySpecification<VLSComment.Matcher> {
54 /**
55 * Pattern-specific match representation of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSComment pattern,
56 * to be used in conjunction with {@link Matcher}.
57 *
58 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
59 * Each instance is a (possibly partial) substitution of pattern parameters,
60 * usable to represent a match of the pattern in the result of a query,
61 * or to specify the bound (fixed) input parameters when issuing a query.
62 *
63 * @see Matcher
64 *
65 */
66 public static abstract class Match extends BasePatternMatch {
67 private ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment fTerm;
68
69 private static List<String> parameterNames = makeImmutableList("term");
70
71 private Match(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment pTerm) {
72 this.fTerm = pTerm;
73 }
74
75 @Override
76 public Object get(final String parameterName) {
77 if ("term".equals(parameterName)) return this.fTerm;
78 return null;
79 }
80
81 public ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment getTerm() {
82 return this.fTerm;
83 }
84
85 @Override
86 public boolean set(final String parameterName, final Object newValue) {
87 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
88 if ("term".equals(parameterName) ) {
89 this.fTerm = (ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment) newValue;
90 return true;
91 }
92 return false;
93 }
94
95 public void setTerm(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment pTerm) {
96 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
97 this.fTerm = pTerm;
98 }
99
100 @Override
101 public String patternName() {
102 return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSComment";
103 }
104
105 @Override
106 public List<String> parameterNames() {
107 return VLSComment.Match.parameterNames;
108 }
109
110 @Override
111 public Object[] toArray() {
112 return new Object[]{fTerm};
113 }
114
115 @Override
116 public VLSComment.Match toImmutable() {
117 return isMutable() ? newMatch(fTerm) : this;
118 }
119
120 @Override
121 public String prettyPrint() {
122 StringBuilder result = new StringBuilder();
123 result.append("\"term\"=" + prettyPrintValue(fTerm));
124 return result.toString();
125 }
126
127 @Override
128 public int hashCode() {
129 return Objects.hash(fTerm);
130 }
131
132 @Override
133 public boolean equals(final Object obj) {
134 if (this == obj)
135 return true;
136 if (obj == null) {
137 return false;
138 }
139 if ((obj instanceof VLSComment.Match)) {
140 VLSComment.Match other = (VLSComment.Match) obj;
141 return Objects.equals(fTerm, other.fTerm);
142 } else {
143 // this should be infrequent
144 if (!(obj instanceof IPatternMatch)) {
145 return false;
146 }
147 IPatternMatch otherSig = (IPatternMatch) obj;
148 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
149 }
150 }
151
152 @Override
153 public VLSComment specification() {
154 return VLSComment.instance();
155 }
156
157 /**
158 * Returns an empty, mutable match.
159 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
160 *
161 * @return the empty match.
162 *
163 */
164 public static VLSComment.Match newEmptyMatch() {
165 return new Mutable(null);
166 }
167
168 /**
169 * Returns a mutable (partial) match.
170 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
171 *
172 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
173 * @return the new, mutable (partial) match object.
174 *
175 */
176 public static VLSComment.Match newMutableMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment pTerm) {
177 return new Mutable(pTerm);
178 }
179
180 /**
181 * Returns a new (partial) match.
182 * This can be used e.g. to call the matcher with a partial match.
183 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
184 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
185 * @return the (partial) match object.
186 *
187 */
188 public static VLSComment.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment pTerm) {
189 return new Immutable(pTerm);
190 }
191
192 private static final class Mutable extends VLSComment.Match {
193 Mutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment pTerm) {
194 super(pTerm);
195 }
196
197 @Override
198 public boolean isMutable() {
199 return true;
200 }
201 }
202
203 private static final class Immutable extends VLSComment.Match {
204 Immutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment pTerm) {
205 super(pTerm);
206 }
207
208 @Override
209 public boolean isMutable() {
210 return false;
211 }
212 }
213 }
214
215 /**
216 * Generated pattern matcher API of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSComment pattern,
217 * providing pattern-specific query methods.
218 *
219 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
220 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
221 *
222 * <p>Matches of the pattern will be represented as {@link Match}.
223 *
224 * <p>Original source:
225 * <code><pre>
226 * pattern VLSComment(term: VLSComment){
227 * VLSComment(term);
228 * }
229 * </pre></code>
230 *
231 * @see Match
232 * @see VLSComment
233 *
234 */
235 public static class Matcher extends BaseMatcher<VLSComment.Match> {
236 /**
237 * Initializes the pattern matcher within an existing VIATRA Query engine.
238 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
239 *
240 * @param engine the existing VIATRA Query engine in which this matcher will be created.
241 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
242 *
243 */
244 public static VLSComment.Matcher on(final ViatraQueryEngine engine) {
245 // check if matcher already exists
246 Matcher matcher = engine.getExistingMatcher(querySpecification());
247 if (matcher == null) {
248 matcher = (Matcher)engine.getMatcher(querySpecification());
249 }
250 return matcher;
251 }
252
253 /**
254 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
255 * @return an initialized matcher
256 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
257 *
258 */
259 public static VLSComment.Matcher create() {
260 return new Matcher();
261 }
262
263 private final static int POSITION_TERM = 0;
264
265 private final static Logger LOGGER = ViatraQueryLoggingUtil.getLogger(VLSComment.Matcher.class);
266
267 /**
268 * Initializes the pattern matcher within an existing VIATRA Query engine.
269 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
270 *
271 * @param engine the existing VIATRA Query engine in which this matcher will be created.
272 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
273 *
274 */
275 private Matcher() {
276 super(querySpecification());
277 }
278
279 /**
280 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
281 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
282 * @return matches represented as a Match object.
283 *
284 */
285 public Collection<VLSComment.Match> getAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment pTerm) {
286 return rawStreamAllMatches(new Object[]{pTerm}).collect(Collectors.toSet());
287 }
288
289 /**
290 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
291 * </p>
292 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
293 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
294 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
295 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
296 * @return a stream of matches represented as a Match object.
297 *
298 */
299 public Stream<VLSComment.Match> streamAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment pTerm) {
300 return rawStreamAllMatches(new Object[]{pTerm});
301 }
302
303 /**
304 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
305 * Neither determinism nor randomness of selection is guaranteed.
306 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
307 * @return a match represented as a Match object, or null if no match is found.
308 *
309 */
310 public Optional<VLSComment.Match> getOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment pTerm) {
311 return rawGetOneArbitraryMatch(new Object[]{pTerm});
312 }
313
314 /**
315 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
316 * under any possible substitution of the unspecified parameters (if any).
317 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
318 * @return true if the input is a valid (partial) match of the pattern.
319 *
320 */
321 public boolean hasMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment pTerm) {
322 return rawHasMatch(new Object[]{pTerm});
323 }
324
325 /**
326 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
327 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
328 * @return the number of pattern matches found.
329 *
330 */
331 public int countMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment pTerm) {
332 return rawCountMatches(new Object[]{pTerm});
333 }
334
335 /**
336 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
337 * Neither determinism nor randomness of selection is guaranteed.
338 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
339 * @param processor the action that will process the selected match.
340 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
341 *
342 */
343 public boolean forOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment pTerm, final Consumer<? super VLSComment.Match> processor) {
344 return rawForOneArbitraryMatch(new Object[]{pTerm}, processor);
345 }
346
347 /**
348 * Returns a new (partial) match.
349 * This can be used e.g. to call the matcher with a partial match.
350 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
351 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
352 * @return the (partial) match object.
353 *
354 */
355 public VLSComment.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment pTerm) {
356 return VLSComment.Match.newMatch(pTerm);
357 }
358
359 /**
360 * Retrieve the set of values that occur in matches for term.
361 * @return the Set of all values or empty set if there are no matches
362 *
363 */
364 protected Stream<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment> rawStreamAllValuesOfterm(final Object[] parameters) {
365 return rawStreamAllValues(POSITION_TERM, parameters).map(ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment.class::cast);
366 }
367
368 /**
369 * Retrieve the set of values that occur in matches for term.
370 * @return the Set of all values or empty set if there are no matches
371 *
372 */
373 public Set<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment> getAllValuesOfterm() {
374 return rawStreamAllValuesOfterm(emptyArray()).collect(Collectors.toSet());
375 }
376
377 /**
378 * Retrieve the set of values that occur in matches for term.
379 * @return the Set of all values or empty set if there are no matches
380 *
381 */
382 public Stream<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment> streamAllValuesOfterm() {
383 return rawStreamAllValuesOfterm(emptyArray());
384 }
385
386 @Override
387 protected VLSComment.Match tupleToMatch(final Tuple t) {
388 try {
389 return VLSComment.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment) t.get(POSITION_TERM));
390 } catch(ClassCastException e) {
391 LOGGER.error("Element(s) in tuple not properly typed!",e);
392 return null;
393 }
394 }
395
396 @Override
397 protected VLSComment.Match arrayToMatch(final Object[] match) {
398 try {
399 return VLSComment.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment) match[POSITION_TERM]);
400 } catch(ClassCastException e) {
401 LOGGER.error("Element(s) in array not properly typed!",e);
402 return null;
403 }
404 }
405
406 @Override
407 protected VLSComment.Match arrayToMatchMutable(final Object[] match) {
408 try {
409 return VLSComment.Match.newMutableMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment) match[POSITION_TERM]);
410 } catch(ClassCastException e) {
411 LOGGER.error("Element(s) in array not properly typed!",e);
412 return null;
413 }
414 }
415
416 /**
417 * @return the singleton instance of the query specification of this pattern
418 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
419 *
420 */
421 public static IQuerySpecification<VLSComment.Matcher> querySpecification() {
422 return VLSComment.instance();
423 }
424 }
425
426 private VLSComment() {
427 super(GeneratedPQuery.INSTANCE);
428 }
429
430 /**
431 * @return the singleton instance of the query specification
432 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
433 *
434 */
435 public static VLSComment instance() {
436 try{
437 return LazyHolder.INSTANCE;
438 } catch (ExceptionInInitializerError err) {
439 throw processInitializerError(err);
440 }
441 }
442
443 @Override
444 protected VLSComment.Matcher instantiate(final ViatraQueryEngine engine) {
445 return VLSComment.Matcher.on(engine);
446 }
447
448 @Override
449 public VLSComment.Matcher instantiate() {
450 return VLSComment.Matcher.create();
451 }
452
453 @Override
454 public VLSComment.Match newEmptyMatch() {
455 return VLSComment.Match.newEmptyMatch();
456 }
457
458 @Override
459 public VLSComment.Match newMatch(final Object... parameters) {
460 return VLSComment.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment) parameters[0]);
461 }
462
463 /**
464 * Inner class allowing the singleton instance of {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSComment (visibility: PUBLIC, simpleName: VLSComment, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSComment, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
465 * <b>not</b> at the class load time of the outer class,
466 * but rather at the first call to {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSComment (visibility: PUBLIC, simpleName: VLSComment, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSComment, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
467 *
468 * <p> This workaround is required e.g. to support recursion.
469 *
470 */
471 private static class LazyHolder {
472 private final static VLSComment INSTANCE = new VLSComment();
473
474 /**
475 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
476 * This initialization order is required to support indirect recursion.
477 *
478 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
479 *
480 */
481 private final static Object STATIC_INITIALIZER = ensureInitialized();
482
483 public static Object ensureInitialized() {
484 INSTANCE.ensureInitializedInternal();
485 return null;
486 }
487 }
488
489 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
490 private final static VLSComment.GeneratedPQuery INSTANCE = new GeneratedPQuery();
491
492 private final PParameter parameter_term = new PParameter("term", "ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSComment")), PParameterDirection.INOUT);
493
494 private final List<PParameter> parameters = Arrays.asList(parameter_term);
495
496 private GeneratedPQuery() {
497 super(PVisibility.PUBLIC);
498 }
499
500 @Override
501 public String getFullyQualifiedName() {
502 return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSComment";
503 }
504
505 @Override
506 public List<String> getParameterNames() {
507 return Arrays.asList("term");
508 }
509
510 @Override
511 public List<PParameter> getParameters() {
512 return parameters;
513 }
514
515 @Override
516 public Set<PBody> doGetContainedBodies() {
517 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
518 Set<PBody> bodies = new LinkedHashSet<>();
519 {
520 PBody body = new PBody(this);
521 PVariable var_term = body.getOrCreateVariableByName("term");
522 new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSComment")));
523 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
524 new ExportedParameter(body, var_term, parameter_term)
525 ));
526 // VLSComment(term)
527 new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSComment")));
528 bodies.add(body);
529 }
530 return bodies;
531 }
532 }
533}
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSEquivalent.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSEquivalent.java
deleted file mode 100644
index 5a174fed..00000000
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSEquivalent.java
+++ /dev/null
@@ -1,533 +0,0 @@
1/**
2 * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql
3 */
4package ca.mcgill.ecse.dslreasoner.vampire.queries;
5
6import java.util.Arrays;
7import java.util.Collection;
8import java.util.LinkedHashSet;
9import java.util.List;
10import java.util.Objects;
11import java.util.Optional;
12import java.util.Set;
13import java.util.function.Consumer;
14import java.util.stream.Collectors;
15import java.util.stream.Stream;
16import org.apache.log4j.Logger;
17import org.eclipse.emf.ecore.EClass;
18import org.eclipse.viatra.query.runtime.api.IPatternMatch;
19import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
20import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
21import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
22import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
23import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
24import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
25import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
26import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
27import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
28import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
29import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
30import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
31import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
32import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
33import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
34import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
35import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
36import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
37
38/**
39 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
40 *
41 * <p>Original source:
42 * <code><pre>
43 * pattern VLSEquivalent(term: VLSEquivalent){
44 * VLSEquivalent(term);
45 * }
46 * </pre></code>
47 *
48 * @see Matcher
49 * @see Match
50 *
51 */
52@SuppressWarnings("all")
53public final class VLSEquivalent extends BaseGeneratedEMFQuerySpecification<VLSEquivalent.Matcher> {
54 /**
55 * Pattern-specific match representation of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSEquivalent pattern,
56 * to be used in conjunction with {@link Matcher}.
57 *
58 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
59 * Each instance is a (possibly partial) substitution of pattern parameters,
60 * usable to represent a match of the pattern in the result of a query,
61 * or to specify the bound (fixed) input parameters when issuing a query.
62 *
63 * @see Matcher
64 *
65 */
66 public static abstract class Match extends BasePatternMatch {
67 private ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent fTerm;
68
69 private static List<String> parameterNames = makeImmutableList("term");
70
71 private Match(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent pTerm) {
72 this.fTerm = pTerm;
73 }
74
75 @Override
76 public Object get(final String parameterName) {
77 if ("term".equals(parameterName)) return this.fTerm;
78 return null;
79 }
80
81 public ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent getTerm() {
82 return this.fTerm;
83 }
84
85 @Override
86 public boolean set(final String parameterName, final Object newValue) {
87 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
88 if ("term".equals(parameterName) ) {
89 this.fTerm = (ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent) newValue;
90 return true;
91 }
92 return false;
93 }
94
95 public void setTerm(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent pTerm) {
96 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
97 this.fTerm = pTerm;
98 }
99
100 @Override
101 public String patternName() {
102 return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSEquivalent";
103 }
104
105 @Override
106 public List<String> parameterNames() {
107 return VLSEquivalent.Match.parameterNames;
108 }
109
110 @Override
111 public Object[] toArray() {
112 return new Object[]{fTerm};
113 }
114
115 @Override
116 public VLSEquivalent.Match toImmutable() {
117 return isMutable() ? newMatch(fTerm) : this;
118 }
119
120 @Override
121 public String prettyPrint() {
122 StringBuilder result = new StringBuilder();
123 result.append("\"term\"=" + prettyPrintValue(fTerm));
124 return result.toString();
125 }
126
127 @Override
128 public int hashCode() {
129 return Objects.hash(fTerm);
130 }
131
132 @Override
133 public boolean equals(final Object obj) {
134 if (this == obj)
135 return true;
136 if (obj == null) {
137 return false;
138 }
139 if ((obj instanceof VLSEquivalent.Match)) {
140 VLSEquivalent.Match other = (VLSEquivalent.Match) obj;
141 return Objects.equals(fTerm, other.fTerm);
142 } else {
143 // this should be infrequent
144 if (!(obj instanceof IPatternMatch)) {
145 return false;
146 }
147 IPatternMatch otherSig = (IPatternMatch) obj;
148 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
149 }
150 }
151
152 @Override
153 public VLSEquivalent specification() {
154 return VLSEquivalent.instance();
155 }
156
157 /**
158 * Returns an empty, mutable match.
159 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
160 *
161 * @return the empty match.
162 *
163 */
164 public static VLSEquivalent.Match newEmptyMatch() {
165 return new Mutable(null);
166 }
167
168 /**
169 * Returns a mutable (partial) match.
170 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
171 *
172 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
173 * @return the new, mutable (partial) match object.
174 *
175 */
176 public static VLSEquivalent.Match newMutableMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent pTerm) {
177 return new Mutable(pTerm);
178 }
179
180 /**
181 * Returns a new (partial) match.
182 * This can be used e.g. to call the matcher with a partial match.
183 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
184 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
185 * @return the (partial) match object.
186 *
187 */
188 public static VLSEquivalent.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent pTerm) {
189 return new Immutable(pTerm);
190 }
191
192 private static final class Mutable extends VLSEquivalent.Match {
193 Mutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent pTerm) {
194 super(pTerm);
195 }
196
197 @Override
198 public boolean isMutable() {
199 return true;
200 }
201 }
202
203 private static final class Immutable extends VLSEquivalent.Match {
204 Immutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent pTerm) {
205 super(pTerm);
206 }
207
208 @Override
209 public boolean isMutable() {
210 return false;
211 }
212 }
213 }
214
215 /**
216 * Generated pattern matcher API of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSEquivalent pattern,
217 * providing pattern-specific query methods.
218 *
219 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
220 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
221 *
222 * <p>Matches of the pattern will be represented as {@link Match}.
223 *
224 * <p>Original source:
225 * <code><pre>
226 * pattern VLSEquivalent(term: VLSEquivalent){
227 * VLSEquivalent(term);
228 * }
229 * </pre></code>
230 *
231 * @see Match
232 * @see VLSEquivalent
233 *
234 */
235 public static class Matcher extends BaseMatcher<VLSEquivalent.Match> {
236 /**
237 * Initializes the pattern matcher within an existing VIATRA Query engine.
238 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
239 *
240 * @param engine the existing VIATRA Query engine in which this matcher will be created.
241 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
242 *
243 */
244 public static VLSEquivalent.Matcher on(final ViatraQueryEngine engine) {
245 // check if matcher already exists
246 Matcher matcher = engine.getExistingMatcher(querySpecification());
247 if (matcher == null) {
248 matcher = (Matcher)engine.getMatcher(querySpecification());
249 }
250 return matcher;
251 }
252
253 /**
254 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
255 * @return an initialized matcher
256 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
257 *
258 */
259 public static VLSEquivalent.Matcher create() {
260 return new Matcher();
261 }
262
263 private final static int POSITION_TERM = 0;
264
265 private final static Logger LOGGER = ViatraQueryLoggingUtil.getLogger(VLSEquivalent.Matcher.class);
266
267 /**
268 * Initializes the pattern matcher within an existing VIATRA Query engine.
269 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
270 *
271 * @param engine the existing VIATRA Query engine in which this matcher will be created.
272 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
273 *
274 */
275 private Matcher() {
276 super(querySpecification());
277 }
278
279 /**
280 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
281 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
282 * @return matches represented as a Match object.
283 *
284 */
285 public Collection<VLSEquivalent.Match> getAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent pTerm) {
286 return rawStreamAllMatches(new Object[]{pTerm}).collect(Collectors.toSet());
287 }
288
289 /**
290 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
291 * </p>
292 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
293 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
294 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
295 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
296 * @return a stream of matches represented as a Match object.
297 *
298 */
299 public Stream<VLSEquivalent.Match> streamAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent pTerm) {
300 return rawStreamAllMatches(new Object[]{pTerm});
301 }
302
303 /**
304 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
305 * Neither determinism nor randomness of selection is guaranteed.
306 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
307 * @return a match represented as a Match object, or null if no match is found.
308 *
309 */
310 public Optional<VLSEquivalent.Match> getOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent pTerm) {
311 return rawGetOneArbitraryMatch(new Object[]{pTerm});
312 }
313
314 /**
315 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
316 * under any possible substitution of the unspecified parameters (if any).
317 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
318 * @return true if the input is a valid (partial) match of the pattern.
319 *
320 */
321 public boolean hasMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent pTerm) {
322 return rawHasMatch(new Object[]{pTerm});
323 }
324
325 /**
326 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
327 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
328 * @return the number of pattern matches found.
329 *
330 */
331 public int countMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent pTerm) {
332 return rawCountMatches(new Object[]{pTerm});
333 }
334
335 /**
336 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
337 * Neither determinism nor randomness of selection is guaranteed.
338 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
339 * @param processor the action that will process the selected match.
340 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
341 *
342 */
343 public boolean forOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent pTerm, final Consumer<? super VLSEquivalent.Match> processor) {
344 return rawForOneArbitraryMatch(new Object[]{pTerm}, processor);
345 }
346
347 /**
348 * Returns a new (partial) match.
349 * This can be used e.g. to call the matcher with a partial match.
350 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
351 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
352 * @return the (partial) match object.
353 *
354 */
355 public VLSEquivalent.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent pTerm) {
356 return VLSEquivalent.Match.newMatch(pTerm);
357 }
358
359 /**
360 * Retrieve the set of values that occur in matches for term.
361 * @return the Set of all values or empty set if there are no matches
362 *
363 */
364 protected Stream<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent> rawStreamAllValuesOfterm(final Object[] parameters) {
365 return rawStreamAllValues(POSITION_TERM, parameters).map(ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent.class::cast);
366 }
367
368 /**
369 * Retrieve the set of values that occur in matches for term.
370 * @return the Set of all values or empty set if there are no matches
371 *
372 */
373 public Set<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent> getAllValuesOfterm() {
374 return rawStreamAllValuesOfterm(emptyArray()).collect(Collectors.toSet());
375 }
376
377 /**
378 * Retrieve the set of values that occur in matches for term.
379 * @return the Set of all values or empty set if there are no matches
380 *
381 */
382 public Stream<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent> streamAllValuesOfterm() {
383 return rawStreamAllValuesOfterm(emptyArray());
384 }
385
386 @Override
387 protected VLSEquivalent.Match tupleToMatch(final Tuple t) {
388 try {
389 return VLSEquivalent.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent) t.get(POSITION_TERM));
390 } catch(ClassCastException e) {
391 LOGGER.error("Element(s) in tuple not properly typed!",e);
392 return null;
393 }
394 }
395
396 @Override
397 protected VLSEquivalent.Match arrayToMatch(final Object[] match) {
398 try {
399 return VLSEquivalent.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent) match[POSITION_TERM]);
400 } catch(ClassCastException e) {
401 LOGGER.error("Element(s) in array not properly typed!",e);
402 return null;
403 }
404 }
405
406 @Override
407 protected VLSEquivalent.Match arrayToMatchMutable(final Object[] match) {
408 try {
409 return VLSEquivalent.Match.newMutableMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent) match[POSITION_TERM]);
410 } catch(ClassCastException e) {
411 LOGGER.error("Element(s) in array not properly typed!",e);
412 return null;
413 }
414 }
415
416 /**
417 * @return the singleton instance of the query specification of this pattern
418 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
419 *
420 */
421 public static IQuerySpecification<VLSEquivalent.Matcher> querySpecification() {
422 return VLSEquivalent.instance();
423 }
424 }
425
426 private VLSEquivalent() {
427 super(GeneratedPQuery.INSTANCE);
428 }
429
430 /**
431 * @return the singleton instance of the query specification
432 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
433 *
434 */
435 public static VLSEquivalent instance() {
436 try{
437 return LazyHolder.INSTANCE;
438 } catch (ExceptionInInitializerError err) {
439 throw processInitializerError(err);
440 }
441 }
442
443 @Override
444 protected VLSEquivalent.Matcher instantiate(final ViatraQueryEngine engine) {
445 return VLSEquivalent.Matcher.on(engine);
446 }
447
448 @Override
449 public VLSEquivalent.Matcher instantiate() {
450 return VLSEquivalent.Matcher.create();
451 }
452
453 @Override
454 public VLSEquivalent.Match newEmptyMatch() {
455 return VLSEquivalent.Match.newEmptyMatch();
456 }
457
458 @Override
459 public VLSEquivalent.Match newMatch(final Object... parameters) {
460 return VLSEquivalent.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent) parameters[0]);
461 }
462
463 /**
464 * Inner class allowing the singleton instance of {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSEquivalent (visibility: PUBLIC, simpleName: VLSEquivalent, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSEquivalent, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
465 * <b>not</b> at the class load time of the outer class,
466 * but rather at the first call to {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSEquivalent (visibility: PUBLIC, simpleName: VLSEquivalent, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSEquivalent, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
467 *
468 * <p> This workaround is required e.g. to support recursion.
469 *
470 */
471 private static class LazyHolder {
472 private final static VLSEquivalent INSTANCE = new VLSEquivalent();
473
474 /**
475 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
476 * This initialization order is required to support indirect recursion.
477 *
478 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
479 *
480 */
481 private final static Object STATIC_INITIALIZER = ensureInitialized();
482
483 public static Object ensureInitialized() {
484 INSTANCE.ensureInitializedInternal();
485 return null;
486 }
487 }
488
489 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
490 private final static VLSEquivalent.GeneratedPQuery INSTANCE = new GeneratedPQuery();
491
492 private final PParameter parameter_term = new PParameter("term", "ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSEquivalent")), PParameterDirection.INOUT);
493
494 private final List<PParameter> parameters = Arrays.asList(parameter_term);
495
496 private GeneratedPQuery() {
497 super(PVisibility.PUBLIC);
498 }
499
500 @Override
501 public String getFullyQualifiedName() {
502 return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSEquivalent";
503 }
504
505 @Override
506 public List<String> getParameterNames() {
507 return Arrays.asList("term");
508 }
509
510 @Override
511 public List<PParameter> getParameters() {
512 return parameters;
513 }
514
515 @Override
516 public Set<PBody> doGetContainedBodies() {
517 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
518 Set<PBody> bodies = new LinkedHashSet<>();
519 {
520 PBody body = new PBody(this);
521 PVariable var_term = body.getOrCreateVariableByName("term");
522 new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSEquivalent")));
523 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
524 new ExportedParameter(body, var_term, parameter_term)
525 ));
526 // VLSEquivalent(term)
527 new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSEquivalent")));
528 bodies.add(body);
529 }
530 return bodies;
531 }
532 }
533}
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSExistentialQuantifier.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSExistentialQuantifier.java
deleted file mode 100644
index 137e4ca0..00000000
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSExistentialQuantifier.java
+++ /dev/null
@@ -1,533 +0,0 @@
1/**
2 * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql
3 */
4package ca.mcgill.ecse.dslreasoner.vampire.queries;
5
6import java.util.Arrays;
7import java.util.Collection;
8import java.util.LinkedHashSet;
9import java.util.List;
10import java.util.Objects;
11import java.util.Optional;
12import java.util.Set;
13import java.util.function.Consumer;
14import java.util.stream.Collectors;
15import java.util.stream.Stream;
16import org.apache.log4j.Logger;
17import org.eclipse.emf.ecore.EClass;
18import org.eclipse.viatra.query.runtime.api.IPatternMatch;
19import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
20import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
21import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
22import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
23import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
24import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
25import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
26import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
27import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
28import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
29import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
30import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
31import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
32import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
33import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
34import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
35import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
36import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
37
38/**
39 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
40 *
41 * <p>Original source:
42 * <code><pre>
43 * pattern VLSExistentialQuantifier(term: VLSExistentialQuantifier){
44 * VLSExistentialQuantifier(term);
45 * }
46 * </pre></code>
47 *
48 * @see Matcher
49 * @see Match
50 *
51 */
52@SuppressWarnings("all")
53public final class VLSExistentialQuantifier extends BaseGeneratedEMFQuerySpecification<VLSExistentialQuantifier.Matcher> {
54 /**
55 * Pattern-specific match representation of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSExistentialQuantifier pattern,
56 * to be used in conjunction with {@link Matcher}.
57 *
58 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
59 * Each instance is a (possibly partial) substitution of pattern parameters,
60 * usable to represent a match of the pattern in the result of a query,
61 * or to specify the bound (fixed) input parameters when issuing a query.
62 *
63 * @see Matcher
64 *
65 */
66 public static abstract class Match extends BasePatternMatch {
67 private ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier fTerm;
68
69 private static List<String> parameterNames = makeImmutableList("term");
70
71 private Match(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier pTerm) {
72 this.fTerm = pTerm;
73 }
74
75 @Override
76 public Object get(final String parameterName) {
77 if ("term".equals(parameterName)) return this.fTerm;
78 return null;
79 }
80
81 public ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier getTerm() {
82 return this.fTerm;
83 }
84
85 @Override
86 public boolean set(final String parameterName, final Object newValue) {
87 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
88 if ("term".equals(parameterName) ) {
89 this.fTerm = (ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier) newValue;
90 return true;
91 }
92 return false;
93 }
94
95 public void setTerm(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier pTerm) {
96 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
97 this.fTerm = pTerm;
98 }
99
100 @Override
101 public String patternName() {
102 return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSExistentialQuantifier";
103 }
104
105 @Override
106 public List<String> parameterNames() {
107 return VLSExistentialQuantifier.Match.parameterNames;
108 }
109
110 @Override
111 public Object[] toArray() {
112 return new Object[]{fTerm};
113 }
114
115 @Override
116 public VLSExistentialQuantifier.Match toImmutable() {
117 return isMutable() ? newMatch(fTerm) : this;
118 }
119
120 @Override
121 public String prettyPrint() {
122 StringBuilder result = new StringBuilder();
123 result.append("\"term\"=" + prettyPrintValue(fTerm));
124 return result.toString();
125 }
126
127 @Override
128 public int hashCode() {
129 return Objects.hash(fTerm);
130 }
131
132 @Override
133 public boolean equals(final Object obj) {
134 if (this == obj)
135 return true;
136 if (obj == null) {
137 return false;
138 }
139 if ((obj instanceof VLSExistentialQuantifier.Match)) {
140 VLSExistentialQuantifier.Match other = (VLSExistentialQuantifier.Match) obj;
141 return Objects.equals(fTerm, other.fTerm);
142 } else {
143 // this should be infrequent
144 if (!(obj instanceof IPatternMatch)) {
145 return false;
146 }
147 IPatternMatch otherSig = (IPatternMatch) obj;
148 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
149 }
150 }
151
152 @Override
153 public VLSExistentialQuantifier specification() {
154 return VLSExistentialQuantifier.instance();
155 }
156
157 /**
158 * Returns an empty, mutable match.
159 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
160 *
161 * @return the empty match.
162 *
163 */
164 public static VLSExistentialQuantifier.Match newEmptyMatch() {
165 return new Mutable(null);
166 }
167
168 /**
169 * Returns a mutable (partial) match.
170 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
171 *
172 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
173 * @return the new, mutable (partial) match object.
174 *
175 */
176 public static VLSExistentialQuantifier.Match newMutableMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier pTerm) {
177 return new Mutable(pTerm);
178 }
179
180 /**
181 * Returns a new (partial) match.
182 * This can be used e.g. to call the matcher with a partial match.
183 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
184 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
185 * @return the (partial) match object.
186 *
187 */
188 public static VLSExistentialQuantifier.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier pTerm) {
189 return new Immutable(pTerm);
190 }
191
192 private static final class Mutable extends VLSExistentialQuantifier.Match {
193 Mutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier pTerm) {
194 super(pTerm);
195 }
196
197 @Override
198 public boolean isMutable() {
199 return true;
200 }
201 }
202
203 private static final class Immutable extends VLSExistentialQuantifier.Match {
204 Immutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier pTerm) {
205 super(pTerm);
206 }
207
208 @Override
209 public boolean isMutable() {
210 return false;
211 }
212 }
213 }
214
215 /**
216 * Generated pattern matcher API of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSExistentialQuantifier pattern,
217 * providing pattern-specific query methods.
218 *
219 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
220 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
221 *
222 * <p>Matches of the pattern will be represented as {@link Match}.
223 *
224 * <p>Original source:
225 * <code><pre>
226 * pattern VLSExistentialQuantifier(term: VLSExistentialQuantifier){
227 * VLSExistentialQuantifier(term);
228 * }
229 * </pre></code>
230 *
231 * @see Match
232 * @see VLSExistentialQuantifier
233 *
234 */
235 public static class Matcher extends BaseMatcher<VLSExistentialQuantifier.Match> {
236 /**
237 * Initializes the pattern matcher within an existing VIATRA Query engine.
238 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
239 *
240 * @param engine the existing VIATRA Query engine in which this matcher will be created.
241 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
242 *
243 */
244 public static VLSExistentialQuantifier.Matcher on(final ViatraQueryEngine engine) {
245 // check if matcher already exists
246 Matcher matcher = engine.getExistingMatcher(querySpecification());
247 if (matcher == null) {
248 matcher = (Matcher)engine.getMatcher(querySpecification());
249 }
250 return matcher;
251 }
252
253 /**
254 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
255 * @return an initialized matcher
256 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
257 *
258 */
259 public static VLSExistentialQuantifier.Matcher create() {
260 return new Matcher();
261 }
262
263 private final static int POSITION_TERM = 0;
264
265 private final static Logger LOGGER = ViatraQueryLoggingUtil.getLogger(VLSExistentialQuantifier.Matcher.class);
266
267 /**
268 * Initializes the pattern matcher within an existing VIATRA Query engine.
269 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
270 *
271 * @param engine the existing VIATRA Query engine in which this matcher will be created.
272 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
273 *
274 */
275 private Matcher() {
276 super(querySpecification());
277 }
278
279 /**
280 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
281 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
282 * @return matches represented as a Match object.
283 *
284 */
285 public Collection<VLSExistentialQuantifier.Match> getAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier pTerm) {
286 return rawStreamAllMatches(new Object[]{pTerm}).collect(Collectors.toSet());
287 }
288
289 /**
290 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
291 * </p>
292 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
293 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
294 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
295 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
296 * @return a stream of matches represented as a Match object.
297 *
298 */
299 public Stream<VLSExistentialQuantifier.Match> streamAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier pTerm) {
300 return rawStreamAllMatches(new Object[]{pTerm});
301 }
302
303 /**
304 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
305 * Neither determinism nor randomness of selection is guaranteed.
306 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
307 * @return a match represented as a Match object, or null if no match is found.
308 *
309 */
310 public Optional<VLSExistentialQuantifier.Match> getOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier pTerm) {
311 return rawGetOneArbitraryMatch(new Object[]{pTerm});
312 }
313
314 /**
315 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
316 * under any possible substitution of the unspecified parameters (if any).
317 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
318 * @return true if the input is a valid (partial) match of the pattern.
319 *
320 */
321 public boolean hasMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier pTerm) {
322 return rawHasMatch(new Object[]{pTerm});
323 }
324
325 /**
326 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
327 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
328 * @return the number of pattern matches found.
329 *
330 */
331 public int countMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier pTerm) {
332 return rawCountMatches(new Object[]{pTerm});
333 }
334
335 /**
336 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
337 * Neither determinism nor randomness of selection is guaranteed.
338 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
339 * @param processor the action that will process the selected match.
340 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
341 *
342 */
343 public boolean forOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier pTerm, final Consumer<? super VLSExistentialQuantifier.Match> processor) {
344 return rawForOneArbitraryMatch(new Object[]{pTerm}, processor);
345 }
346
347 /**
348 * Returns a new (partial) match.
349 * This can be used e.g. to call the matcher with a partial match.
350 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
351 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
352 * @return the (partial) match object.
353 *
354 */
355 public VLSExistentialQuantifier.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier pTerm) {
356 return VLSExistentialQuantifier.Match.newMatch(pTerm);
357 }
358
359 /**
360 * Retrieve the set of values that occur in matches for term.
361 * @return the Set of all values or empty set if there are no matches
362 *
363 */
364 protected Stream<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier> rawStreamAllValuesOfterm(final Object[] parameters) {
365 return rawStreamAllValues(POSITION_TERM, parameters).map(ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier.class::cast);
366 }
367
368 /**
369 * Retrieve the set of values that occur in matches for term.
370 * @return the Set of all values or empty set if there are no matches
371 *
372 */
373 public Set<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier> getAllValuesOfterm() {
374 return rawStreamAllValuesOfterm(emptyArray()).collect(Collectors.toSet());
375 }
376
377 /**
378 * Retrieve the set of values that occur in matches for term.
379 * @return the Set of all values or empty set if there are no matches
380 *
381 */
382 public Stream<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier> streamAllValuesOfterm() {
383 return rawStreamAllValuesOfterm(emptyArray());
384 }
385
386 @Override
387 protected VLSExistentialQuantifier.Match tupleToMatch(final Tuple t) {
388 try {
389 return VLSExistentialQuantifier.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier) t.get(POSITION_TERM));
390 } catch(ClassCastException e) {
391 LOGGER.error("Element(s) in tuple not properly typed!",e);
392 return null;
393 }
394 }
395
396 @Override
397 protected VLSExistentialQuantifier.Match arrayToMatch(final Object[] match) {
398 try {
399 return VLSExistentialQuantifier.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier) match[POSITION_TERM]);
400 } catch(ClassCastException e) {
401 LOGGER.error("Element(s) in array not properly typed!",e);
402 return null;
403 }
404 }
405
406 @Override
407 protected VLSExistentialQuantifier.Match arrayToMatchMutable(final Object[] match) {
408 try {
409 return VLSExistentialQuantifier.Match.newMutableMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier) match[POSITION_TERM]);
410 } catch(ClassCastException e) {
411 LOGGER.error("Element(s) in array not properly typed!",e);
412 return null;
413 }
414 }
415
416 /**
417 * @return the singleton instance of the query specification of this pattern
418 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
419 *
420 */
421 public static IQuerySpecification<VLSExistentialQuantifier.Matcher> querySpecification() {
422 return VLSExistentialQuantifier.instance();
423 }
424 }
425
426 private VLSExistentialQuantifier() {
427 super(GeneratedPQuery.INSTANCE);
428 }
429
430 /**
431 * @return the singleton instance of the query specification
432 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
433 *
434 */
435 public static VLSExistentialQuantifier instance() {
436 try{
437 return LazyHolder.INSTANCE;
438 } catch (ExceptionInInitializerError err) {
439 throw processInitializerError(err);
440 }
441 }
442
443 @Override
444 protected VLSExistentialQuantifier.Matcher instantiate(final ViatraQueryEngine engine) {
445 return VLSExistentialQuantifier.Matcher.on(engine);
446 }
447
448 @Override
449 public VLSExistentialQuantifier.Matcher instantiate() {
450 return VLSExistentialQuantifier.Matcher.create();
451 }
452
453 @Override
454 public VLSExistentialQuantifier.Match newEmptyMatch() {
455 return VLSExistentialQuantifier.Match.newEmptyMatch();
456 }
457
458 @Override
459 public VLSExistentialQuantifier.Match newMatch(final Object... parameters) {
460 return VLSExistentialQuantifier.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier) parameters[0]);
461 }
462
463 /**
464 * Inner class allowing the singleton instance of {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSExistentialQuantifier (visibility: PUBLIC, simpleName: VLSExistentialQuantifier, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSExistentialQuantifier, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
465 * <b>not</b> at the class load time of the outer class,
466 * but rather at the first call to {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSExistentialQuantifier (visibility: PUBLIC, simpleName: VLSExistentialQuantifier, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSExistentialQuantifier, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
467 *
468 * <p> This workaround is required e.g. to support recursion.
469 *
470 */
471 private static class LazyHolder {
472 private final static VLSExistentialQuantifier INSTANCE = new VLSExistentialQuantifier();
473
474 /**
475 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
476 * This initialization order is required to support indirect recursion.
477 *
478 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
479 *
480 */
481 private final static Object STATIC_INITIALIZER = ensureInitialized();
482
483 public static Object ensureInitialized() {
484 INSTANCE.ensureInitializedInternal();
485 return null;
486 }
487 }
488
489 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
490 private final static VLSExistentialQuantifier.GeneratedPQuery INSTANCE = new GeneratedPQuery();
491
492 private final PParameter parameter_term = new PParameter("term", "ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSExistentialQuantifier")), PParameterDirection.INOUT);
493
494 private final List<PParameter> parameters = Arrays.asList(parameter_term);
495
496 private GeneratedPQuery() {
497 super(PVisibility.PUBLIC);
498 }
499
500 @Override
501 public String getFullyQualifiedName() {
502 return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSExistentialQuantifier";
503 }
504
505 @Override
506 public List<String> getParameterNames() {
507 return Arrays.asList("term");
508 }
509
510 @Override
511 public List<PParameter> getParameters() {
512 return parameters;
513 }
514
515 @Override
516 public Set<PBody> doGetContainedBodies() {
517 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
518 Set<PBody> bodies = new LinkedHashSet<>();
519 {
520 PBody body = new PBody(this);
521 PVariable var_term = body.getOrCreateVariableByName("term");
522 new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSExistentialQuantifier")));
523 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
524 new ExportedParameter(body, var_term, parameter_term)
525 ));
526 // VLSExistentialQuantifier(term)
527 new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSExistentialQuantifier")));
528 bodies.add(body);
529 }
530 return bodies;
531 }
532 }
533}
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSFofFormula.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSFofFormula.java
deleted file mode 100644
index f55f408a..00000000
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSFofFormula.java
+++ /dev/null
@@ -1,533 +0,0 @@
1/**
2 * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql
3 */
4package ca.mcgill.ecse.dslreasoner.vampire.queries;
5
6import java.util.Arrays;
7import java.util.Collection;
8import java.util.LinkedHashSet;
9import java.util.List;
10import java.util.Objects;
11import java.util.Optional;
12import java.util.Set;
13import java.util.function.Consumer;
14import java.util.stream.Collectors;
15import java.util.stream.Stream;
16import org.apache.log4j.Logger;
17import org.eclipse.emf.ecore.EClass;
18import org.eclipse.viatra.query.runtime.api.IPatternMatch;
19import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
20import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
21import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
22import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
23import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
24import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
25import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
26import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
27import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
28import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
29import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
30import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
31import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
32import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
33import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
34import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
35import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
36import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
37
38/**
39 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
40 *
41 * <p>Original source:
42 * <code><pre>
43 * pattern VLSFofFormula(term: VLSFofFormula){
44 * VLSFofFormula(term);
45 * }
46 * </pre></code>
47 *
48 * @see Matcher
49 * @see Match
50 *
51 */
52@SuppressWarnings("all")
53public final class VLSFofFormula extends BaseGeneratedEMFQuerySpecification<VLSFofFormula.Matcher> {
54 /**
55 * Pattern-specific match representation of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFofFormula pattern,
56 * to be used in conjunction with {@link Matcher}.
57 *
58 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
59 * Each instance is a (possibly partial) substitution of pattern parameters,
60 * usable to represent a match of the pattern in the result of a query,
61 * or to specify the bound (fixed) input parameters when issuing a query.
62 *
63 * @see Matcher
64 *
65 */
66 public static abstract class Match extends BasePatternMatch {
67 private ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula fTerm;
68
69 private static List<String> parameterNames = makeImmutableList("term");
70
71 private Match(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula pTerm) {
72 this.fTerm = pTerm;
73 }
74
75 @Override
76 public Object get(final String parameterName) {
77 if ("term".equals(parameterName)) return this.fTerm;
78 return null;
79 }
80
81 public ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula getTerm() {
82 return this.fTerm;
83 }
84
85 @Override
86 public boolean set(final String parameterName, final Object newValue) {
87 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
88 if ("term".equals(parameterName) ) {
89 this.fTerm = (ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula) newValue;
90 return true;
91 }
92 return false;
93 }
94
95 public void setTerm(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula pTerm) {
96 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
97 this.fTerm = pTerm;
98 }
99
100 @Override
101 public String patternName() {
102 return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFofFormula";
103 }
104
105 @Override
106 public List<String> parameterNames() {
107 return VLSFofFormula.Match.parameterNames;
108 }
109
110 @Override
111 public Object[] toArray() {
112 return new Object[]{fTerm};
113 }
114
115 @Override
116 public VLSFofFormula.Match toImmutable() {
117 return isMutable() ? newMatch(fTerm) : this;
118 }
119
120 @Override
121 public String prettyPrint() {
122 StringBuilder result = new StringBuilder();
123 result.append("\"term\"=" + prettyPrintValue(fTerm));
124 return result.toString();
125 }
126
127 @Override
128 public int hashCode() {
129 return Objects.hash(fTerm);
130 }
131
132 @Override
133 public boolean equals(final Object obj) {
134 if (this == obj)
135 return true;
136 if (obj == null) {
137 return false;
138 }
139 if ((obj instanceof VLSFofFormula.Match)) {
140 VLSFofFormula.Match other = (VLSFofFormula.Match) obj;
141 return Objects.equals(fTerm, other.fTerm);
142 } else {
143 // this should be infrequent
144 if (!(obj instanceof IPatternMatch)) {
145 return false;
146 }
147 IPatternMatch otherSig = (IPatternMatch) obj;
148 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
149 }
150 }
151
152 @Override
153 public VLSFofFormula specification() {
154 return VLSFofFormula.instance();
155 }
156
157 /**
158 * Returns an empty, mutable match.
159 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
160 *
161 * @return the empty match.
162 *
163 */
164 public static VLSFofFormula.Match newEmptyMatch() {
165 return new Mutable(null);
166 }
167
168 /**
169 * Returns a mutable (partial) match.
170 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
171 *
172 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
173 * @return the new, mutable (partial) match object.
174 *
175 */
176 public static VLSFofFormula.Match newMutableMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula pTerm) {
177 return new Mutable(pTerm);
178 }
179
180 /**
181 * Returns a new (partial) match.
182 * This can be used e.g. to call the matcher with a partial match.
183 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
184 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
185 * @return the (partial) match object.
186 *
187 */
188 public static VLSFofFormula.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula pTerm) {
189 return new Immutable(pTerm);
190 }
191
192 private static final class Mutable extends VLSFofFormula.Match {
193 Mutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula pTerm) {
194 super(pTerm);
195 }
196
197 @Override
198 public boolean isMutable() {
199 return true;
200 }
201 }
202
203 private static final class Immutable extends VLSFofFormula.Match {
204 Immutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula pTerm) {
205 super(pTerm);
206 }
207
208 @Override
209 public boolean isMutable() {
210 return false;
211 }
212 }
213 }
214
215 /**
216 * Generated pattern matcher API of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFofFormula pattern,
217 * providing pattern-specific query methods.
218 *
219 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
220 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
221 *
222 * <p>Matches of the pattern will be represented as {@link Match}.
223 *
224 * <p>Original source:
225 * <code><pre>
226 * pattern VLSFofFormula(term: VLSFofFormula){
227 * VLSFofFormula(term);
228 * }
229 * </pre></code>
230 *
231 * @see Match
232 * @see VLSFofFormula
233 *
234 */
235 public static class Matcher extends BaseMatcher<VLSFofFormula.Match> {
236 /**
237 * Initializes the pattern matcher within an existing VIATRA Query engine.
238 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
239 *
240 * @param engine the existing VIATRA Query engine in which this matcher will be created.
241 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
242 *
243 */
244 public static VLSFofFormula.Matcher on(final ViatraQueryEngine engine) {
245 // check if matcher already exists
246 Matcher matcher = engine.getExistingMatcher(querySpecification());
247 if (matcher == null) {
248 matcher = (Matcher)engine.getMatcher(querySpecification());
249 }
250 return matcher;
251 }
252
253 /**
254 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
255 * @return an initialized matcher
256 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
257 *
258 */
259 public static VLSFofFormula.Matcher create() {
260 return new Matcher();
261 }
262
263 private final static int POSITION_TERM = 0;
264
265 private final static Logger LOGGER = ViatraQueryLoggingUtil.getLogger(VLSFofFormula.Matcher.class);
266
267 /**
268 * Initializes the pattern matcher within an existing VIATRA Query engine.
269 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
270 *
271 * @param engine the existing VIATRA Query engine in which this matcher will be created.
272 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
273 *
274 */
275 private Matcher() {
276 super(querySpecification());
277 }
278
279 /**
280 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
281 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
282 * @return matches represented as a Match object.
283 *
284 */
285 public Collection<VLSFofFormula.Match> getAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula pTerm) {
286 return rawStreamAllMatches(new Object[]{pTerm}).collect(Collectors.toSet());
287 }
288
289 /**
290 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
291 * </p>
292 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
293 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
294 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
295 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
296 * @return a stream of matches represented as a Match object.
297 *
298 */
299 public Stream<VLSFofFormula.Match> streamAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula pTerm) {
300 return rawStreamAllMatches(new Object[]{pTerm});
301 }
302
303 /**
304 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
305 * Neither determinism nor randomness of selection is guaranteed.
306 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
307 * @return a match represented as a Match object, or null if no match is found.
308 *
309 */
310 public Optional<VLSFofFormula.Match> getOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula pTerm) {
311 return rawGetOneArbitraryMatch(new Object[]{pTerm});
312 }
313
314 /**
315 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
316 * under any possible substitution of the unspecified parameters (if any).
317 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
318 * @return true if the input is a valid (partial) match of the pattern.
319 *
320 */
321 public boolean hasMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula pTerm) {
322 return rawHasMatch(new Object[]{pTerm});
323 }
324
325 /**
326 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
327 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
328 * @return the number of pattern matches found.
329 *
330 */
331 public int countMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula pTerm) {
332 return rawCountMatches(new Object[]{pTerm});
333 }
334
335 /**
336 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
337 * Neither determinism nor randomness of selection is guaranteed.
338 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
339 * @param processor the action that will process the selected match.
340 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
341 *
342 */
343 public boolean forOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula pTerm, final Consumer<? super VLSFofFormula.Match> processor) {
344 return rawForOneArbitraryMatch(new Object[]{pTerm}, processor);
345 }
346
347 /**
348 * Returns a new (partial) match.
349 * This can be used e.g. to call the matcher with a partial match.
350 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
351 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
352 * @return the (partial) match object.
353 *
354 */
355 public VLSFofFormula.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula pTerm) {
356 return VLSFofFormula.Match.newMatch(pTerm);
357 }
358
359 /**
360 * Retrieve the set of values that occur in matches for term.
361 * @return the Set of all values or empty set if there are no matches
362 *
363 */
364 protected Stream<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula> rawStreamAllValuesOfterm(final Object[] parameters) {
365 return rawStreamAllValues(POSITION_TERM, parameters).map(ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula.class::cast);
366 }
367
368 /**
369 * Retrieve the set of values that occur in matches for term.
370 * @return the Set of all values or empty set if there are no matches
371 *
372 */
373 public Set<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula> getAllValuesOfterm() {
374 return rawStreamAllValuesOfterm(emptyArray()).collect(Collectors.toSet());
375 }
376
377 /**
378 * Retrieve the set of values that occur in matches for term.
379 * @return the Set of all values or empty set if there are no matches
380 *
381 */
382 public Stream<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula> streamAllValuesOfterm() {
383 return rawStreamAllValuesOfterm(emptyArray());
384 }
385
386 @Override
387 protected VLSFofFormula.Match tupleToMatch(final Tuple t) {
388 try {
389 return VLSFofFormula.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula) t.get(POSITION_TERM));
390 } catch(ClassCastException e) {
391 LOGGER.error("Element(s) in tuple not properly typed!",e);
392 return null;
393 }
394 }
395
396 @Override
397 protected VLSFofFormula.Match arrayToMatch(final Object[] match) {
398 try {
399 return VLSFofFormula.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula) match[POSITION_TERM]);
400 } catch(ClassCastException e) {
401 LOGGER.error("Element(s) in array not properly typed!",e);
402 return null;
403 }
404 }
405
406 @Override
407 protected VLSFofFormula.Match arrayToMatchMutable(final Object[] match) {
408 try {
409 return VLSFofFormula.Match.newMutableMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula) match[POSITION_TERM]);
410 } catch(ClassCastException e) {
411 LOGGER.error("Element(s) in array not properly typed!",e);
412 return null;
413 }
414 }
415
416 /**
417 * @return the singleton instance of the query specification of this pattern
418 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
419 *
420 */
421 public static IQuerySpecification<VLSFofFormula.Matcher> querySpecification() {
422 return VLSFofFormula.instance();
423 }
424 }
425
426 private VLSFofFormula() {
427 super(GeneratedPQuery.INSTANCE);
428 }
429
430 /**
431 * @return the singleton instance of the query specification
432 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
433 *
434 */
435 public static VLSFofFormula instance() {
436 try{
437 return LazyHolder.INSTANCE;
438 } catch (ExceptionInInitializerError err) {
439 throw processInitializerError(err);
440 }
441 }
442
443 @Override
444 protected VLSFofFormula.Matcher instantiate(final ViatraQueryEngine engine) {
445 return VLSFofFormula.Matcher.on(engine);
446 }
447
448 @Override
449 public VLSFofFormula.Matcher instantiate() {
450 return VLSFofFormula.Matcher.create();
451 }
452
453 @Override
454 public VLSFofFormula.Match newEmptyMatch() {
455 return VLSFofFormula.Match.newEmptyMatch();
456 }
457
458 @Override
459 public VLSFofFormula.Match newMatch(final Object... parameters) {
460 return VLSFofFormula.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula) parameters[0]);
461 }
462
463 /**
464 * Inner class allowing the singleton instance of {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFofFormula (visibility: PUBLIC, simpleName: VLSFofFormula, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFofFormula, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
465 * <b>not</b> at the class load time of the outer class,
466 * but rather at the first call to {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFofFormula (visibility: PUBLIC, simpleName: VLSFofFormula, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFofFormula, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
467 *
468 * <p> This workaround is required e.g. to support recursion.
469 *
470 */
471 private static class LazyHolder {
472 private final static VLSFofFormula INSTANCE = new VLSFofFormula();
473
474 /**
475 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
476 * This initialization order is required to support indirect recursion.
477 *
478 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
479 *
480 */
481 private final static Object STATIC_INITIALIZER = ensureInitialized();
482
483 public static Object ensureInitialized() {
484 INSTANCE.ensureInitializedInternal();
485 return null;
486 }
487 }
488
489 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
490 private final static VLSFofFormula.GeneratedPQuery INSTANCE = new GeneratedPQuery();
491
492 private final PParameter parameter_term = new PParameter("term", "ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSFofFormula")), PParameterDirection.INOUT);
493
494 private final List<PParameter> parameters = Arrays.asList(parameter_term);
495
496 private GeneratedPQuery() {
497 super(PVisibility.PUBLIC);
498 }
499
500 @Override
501 public String getFullyQualifiedName() {
502 return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFofFormula";
503 }
504
505 @Override
506 public List<String> getParameterNames() {
507 return Arrays.asList("term");
508 }
509
510 @Override
511 public List<PParameter> getParameters() {
512 return parameters;
513 }
514
515 @Override
516 public Set<PBody> doGetContainedBodies() {
517 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
518 Set<PBody> bodies = new LinkedHashSet<>();
519 {
520 PBody body = new PBody(this);
521 PVariable var_term = body.getOrCreateVariableByName("term");
522 new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSFofFormula")));
523 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
524 new ExportedParameter(body, var_term, parameter_term)
525 ));
526 // VLSFofFormula(term)
527 new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSFofFormula")));
528 bodies.add(body);
529 }
530 return bodies;
531 }
532 }
533}
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSFunction.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSFunction.java
deleted file mode 100644
index f81a6e1a..00000000
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSFunction.java
+++ /dev/null
@@ -1,533 +0,0 @@
1/**
2 * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql
3 */
4package ca.mcgill.ecse.dslreasoner.vampire.queries;
5
6import java.util.Arrays;
7import java.util.Collection;
8import java.util.LinkedHashSet;
9import java.util.List;
10import java.util.Objects;
11import java.util.Optional;
12import java.util.Set;
13import java.util.function.Consumer;
14import java.util.stream.Collectors;
15import java.util.stream.Stream;
16import org.apache.log4j.Logger;
17import org.eclipse.emf.ecore.EClass;
18import org.eclipse.viatra.query.runtime.api.IPatternMatch;
19import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
20import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
21import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
22import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
23import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
24import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
25import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
26import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
27import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
28import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
29import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
30import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
31import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
32import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
33import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
34import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
35import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
36import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
37
38/**
39 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
40 *
41 * <p>Original source:
42 * <code><pre>
43 * pattern VLSFunction(term: VLSFunction){
44 * VLSFunction(term);
45 * }
46 * </pre></code>
47 *
48 * @see Matcher
49 * @see Match
50 *
51 */
52@SuppressWarnings("all")
53public final class VLSFunction extends BaseGeneratedEMFQuerySpecification<VLSFunction.Matcher> {
54 /**
55 * Pattern-specific match representation of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunction pattern,
56 * to be used in conjunction with {@link Matcher}.
57 *
58 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
59 * Each instance is a (possibly partial) substitution of pattern parameters,
60 * usable to represent a match of the pattern in the result of a query,
61 * or to specify the bound (fixed) input parameters when issuing a query.
62 *
63 * @see Matcher
64 *
65 */
66 public static abstract class Match extends BasePatternMatch {
67 private ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction fTerm;
68
69 private static List<String> parameterNames = makeImmutableList("term");
70
71 private Match(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction pTerm) {
72 this.fTerm = pTerm;
73 }
74
75 @Override
76 public Object get(final String parameterName) {
77 if ("term".equals(parameterName)) return this.fTerm;
78 return null;
79 }
80
81 public ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction getTerm() {
82 return this.fTerm;
83 }
84
85 @Override
86 public boolean set(final String parameterName, final Object newValue) {
87 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
88 if ("term".equals(parameterName) ) {
89 this.fTerm = (ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction) newValue;
90 return true;
91 }
92 return false;
93 }
94
95 public void setTerm(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction pTerm) {
96 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
97 this.fTerm = pTerm;
98 }
99
100 @Override
101 public String patternName() {
102 return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunction";
103 }
104
105 @Override
106 public List<String> parameterNames() {
107 return VLSFunction.Match.parameterNames;
108 }
109
110 @Override
111 public Object[] toArray() {
112 return new Object[]{fTerm};
113 }
114
115 @Override
116 public VLSFunction.Match toImmutable() {
117 return isMutable() ? newMatch(fTerm) : this;
118 }
119
120 @Override
121 public String prettyPrint() {
122 StringBuilder result = new StringBuilder();
123 result.append("\"term\"=" + prettyPrintValue(fTerm));
124 return result.toString();
125 }
126
127 @Override
128 public int hashCode() {
129 return Objects.hash(fTerm);
130 }
131
132 @Override
133 public boolean equals(final Object obj) {
134 if (this == obj)
135 return true;
136 if (obj == null) {
137 return false;
138 }
139 if ((obj instanceof VLSFunction.Match)) {
140 VLSFunction.Match other = (VLSFunction.Match) obj;
141 return Objects.equals(fTerm, other.fTerm);
142 } else {
143 // this should be infrequent
144 if (!(obj instanceof IPatternMatch)) {
145 return false;
146 }
147 IPatternMatch otherSig = (IPatternMatch) obj;
148 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
149 }
150 }
151
152 @Override
153 public VLSFunction specification() {
154 return VLSFunction.instance();
155 }
156
157 /**
158 * Returns an empty, mutable match.
159 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
160 *
161 * @return the empty match.
162 *
163 */
164 public static VLSFunction.Match newEmptyMatch() {
165 return new Mutable(null);
166 }
167
168 /**
169 * Returns a mutable (partial) match.
170 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
171 *
172 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
173 * @return the new, mutable (partial) match object.
174 *
175 */
176 public static VLSFunction.Match newMutableMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction pTerm) {
177 return new Mutable(pTerm);
178 }
179
180 /**
181 * Returns a new (partial) match.
182 * This can be used e.g. to call the matcher with a partial match.
183 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
184 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
185 * @return the (partial) match object.
186 *
187 */
188 public static VLSFunction.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction pTerm) {
189 return new Immutable(pTerm);
190 }
191
192 private static final class Mutable extends VLSFunction.Match {
193 Mutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction pTerm) {
194 super(pTerm);
195 }
196
197 @Override
198 public boolean isMutable() {
199 return true;
200 }
201 }
202
203 private static final class Immutable extends VLSFunction.Match {
204 Immutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction pTerm) {
205 super(pTerm);
206 }
207
208 @Override
209 public boolean isMutable() {
210 return false;
211 }
212 }
213 }
214
215 /**
216 * Generated pattern matcher API of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunction pattern,
217 * providing pattern-specific query methods.
218 *
219 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
220 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
221 *
222 * <p>Matches of the pattern will be represented as {@link Match}.
223 *
224 * <p>Original source:
225 * <code><pre>
226 * pattern VLSFunction(term: VLSFunction){
227 * VLSFunction(term);
228 * }
229 * </pre></code>
230 *
231 * @see Match
232 * @see VLSFunction
233 *
234 */
235 public static class Matcher extends BaseMatcher<VLSFunction.Match> {
236 /**
237 * Initializes the pattern matcher within an existing VIATRA Query engine.
238 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
239 *
240 * @param engine the existing VIATRA Query engine in which this matcher will be created.
241 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
242 *
243 */
244 public static VLSFunction.Matcher on(final ViatraQueryEngine engine) {
245 // check if matcher already exists
246 Matcher matcher = engine.getExistingMatcher(querySpecification());
247 if (matcher == null) {
248 matcher = (Matcher)engine.getMatcher(querySpecification());
249 }
250 return matcher;
251 }
252
253 /**
254 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
255 * @return an initialized matcher
256 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
257 *
258 */
259 public static VLSFunction.Matcher create() {
260 return new Matcher();
261 }
262
263 private final static int POSITION_TERM = 0;
264
265 private final static Logger LOGGER = ViatraQueryLoggingUtil.getLogger(VLSFunction.Matcher.class);
266
267 /**
268 * Initializes the pattern matcher within an existing VIATRA Query engine.
269 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
270 *
271 * @param engine the existing VIATRA Query engine in which this matcher will be created.
272 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
273 *
274 */
275 private Matcher() {
276 super(querySpecification());
277 }
278
279 /**
280 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
281 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
282 * @return matches represented as a Match object.
283 *
284 */
285 public Collection<VLSFunction.Match> getAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction pTerm) {
286 return rawStreamAllMatches(new Object[]{pTerm}).collect(Collectors.toSet());
287 }
288
289 /**
290 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
291 * </p>
292 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
293 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
294 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
295 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
296 * @return a stream of matches represented as a Match object.
297 *
298 */
299 public Stream<VLSFunction.Match> streamAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction pTerm) {
300 return rawStreamAllMatches(new Object[]{pTerm});
301 }
302
303 /**
304 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
305 * Neither determinism nor randomness of selection is guaranteed.
306 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
307 * @return a match represented as a Match object, or null if no match is found.
308 *
309 */
310 public Optional<VLSFunction.Match> getOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction pTerm) {
311 return rawGetOneArbitraryMatch(new Object[]{pTerm});
312 }
313
314 /**
315 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
316 * under any possible substitution of the unspecified parameters (if any).
317 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
318 * @return true if the input is a valid (partial) match of the pattern.
319 *
320 */
321 public boolean hasMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction pTerm) {
322 return rawHasMatch(new Object[]{pTerm});
323 }
324
325 /**
326 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
327 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
328 * @return the number of pattern matches found.
329 *
330 */
331 public int countMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction pTerm) {
332 return rawCountMatches(new Object[]{pTerm});
333 }
334
335 /**
336 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
337 * Neither determinism nor randomness of selection is guaranteed.
338 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
339 * @param processor the action that will process the selected match.
340 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
341 *
342 */
343 public boolean forOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction pTerm, final Consumer<? super VLSFunction.Match> processor) {
344 return rawForOneArbitraryMatch(new Object[]{pTerm}, processor);
345 }
346
347 /**
348 * Returns a new (partial) match.
349 * This can be used e.g. to call the matcher with a partial match.
350 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
351 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
352 * @return the (partial) match object.
353 *
354 */
355 public VLSFunction.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction pTerm) {
356 return VLSFunction.Match.newMatch(pTerm);
357 }
358
359 /**
360 * Retrieve the set of values that occur in matches for term.
361 * @return the Set of all values or empty set if there are no matches
362 *
363 */
364 protected Stream<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction> rawStreamAllValuesOfterm(final Object[] parameters) {
365 return rawStreamAllValues(POSITION_TERM, parameters).map(ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction.class::cast);
366 }
367
368 /**
369 * Retrieve the set of values that occur in matches for term.
370 * @return the Set of all values or empty set if there are no matches
371 *
372 */
373 public Set<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction> getAllValuesOfterm() {
374 return rawStreamAllValuesOfterm(emptyArray()).collect(Collectors.toSet());
375 }
376
377 /**
378 * Retrieve the set of values that occur in matches for term.
379 * @return the Set of all values or empty set if there are no matches
380 *
381 */
382 public Stream<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction> streamAllValuesOfterm() {
383 return rawStreamAllValuesOfterm(emptyArray());
384 }
385
386 @Override
387 protected VLSFunction.Match tupleToMatch(final Tuple t) {
388 try {
389 return VLSFunction.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction) t.get(POSITION_TERM));
390 } catch(ClassCastException e) {
391 LOGGER.error("Element(s) in tuple not properly typed!",e);
392 return null;
393 }
394 }
395
396 @Override
397 protected VLSFunction.Match arrayToMatch(final Object[] match) {
398 try {
399 return VLSFunction.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction) match[POSITION_TERM]);
400 } catch(ClassCastException e) {
401 LOGGER.error("Element(s) in array not properly typed!",e);
402 return null;
403 }
404 }
405
406 @Override
407 protected VLSFunction.Match arrayToMatchMutable(final Object[] match) {
408 try {
409 return VLSFunction.Match.newMutableMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction) match[POSITION_TERM]);
410 } catch(ClassCastException e) {
411 LOGGER.error("Element(s) in array not properly typed!",e);
412 return null;
413 }
414 }
415
416 /**
417 * @return the singleton instance of the query specification of this pattern
418 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
419 *
420 */
421 public static IQuerySpecification<VLSFunction.Matcher> querySpecification() {
422 return VLSFunction.instance();
423 }
424 }
425
426 private VLSFunction() {
427 super(GeneratedPQuery.INSTANCE);
428 }
429
430 /**
431 * @return the singleton instance of the query specification
432 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
433 *
434 */
435 public static VLSFunction instance() {
436 try{
437 return LazyHolder.INSTANCE;
438 } catch (ExceptionInInitializerError err) {
439 throw processInitializerError(err);
440 }
441 }
442
443 @Override
444 protected VLSFunction.Matcher instantiate(final ViatraQueryEngine engine) {
445 return VLSFunction.Matcher.on(engine);
446 }
447
448 @Override
449 public VLSFunction.Matcher instantiate() {
450 return VLSFunction.Matcher.create();
451 }
452
453 @Override
454 public VLSFunction.Match newEmptyMatch() {
455 return VLSFunction.Match.newEmptyMatch();
456 }
457
458 @Override
459 public VLSFunction.Match newMatch(final Object... parameters) {
460 return VLSFunction.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction) parameters[0]);
461 }
462
463 /**
464 * Inner class allowing the singleton instance of {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunction (visibility: PUBLIC, simpleName: VLSFunction, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunction, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
465 * <b>not</b> at the class load time of the outer class,
466 * but rather at the first call to {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunction (visibility: PUBLIC, simpleName: VLSFunction, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunction, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
467 *
468 * <p> This workaround is required e.g. to support recursion.
469 *
470 */
471 private static class LazyHolder {
472 private final static VLSFunction INSTANCE = new VLSFunction();
473
474 /**
475 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
476 * This initialization order is required to support indirect recursion.
477 *
478 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
479 *
480 */
481 private final static Object STATIC_INITIALIZER = ensureInitialized();
482
483 public static Object ensureInitialized() {
484 INSTANCE.ensureInitializedInternal();
485 return null;
486 }
487 }
488
489 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
490 private final static VLSFunction.GeneratedPQuery INSTANCE = new GeneratedPQuery();
491
492 private final PParameter parameter_term = new PParameter("term", "ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSFunction")), PParameterDirection.INOUT);
493
494 private final List<PParameter> parameters = Arrays.asList(parameter_term);
495
496 private GeneratedPQuery() {
497 super(PVisibility.PUBLIC);
498 }
499
500 @Override
501 public String getFullyQualifiedName() {
502 return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunction";
503 }
504
505 @Override
506 public List<String> getParameterNames() {
507 return Arrays.asList("term");
508 }
509
510 @Override
511 public List<PParameter> getParameters() {
512 return parameters;
513 }
514
515 @Override
516 public Set<PBody> doGetContainedBodies() {
517 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
518 Set<PBody> bodies = new LinkedHashSet<>();
519 {
520 PBody body = new PBody(this);
521 PVariable var_term = body.getOrCreateVariableByName("term");
522 new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSFunction")));
523 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
524 new ExportedParameter(body, var_term, parameter_term)
525 ));
526 // VLSFunction(term)
527 new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSFunction")));
528 bodies.add(body);
529 }
530 return bodies;
531 }
532 }
533}
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSFunctionFof.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSFunctionFof.java
deleted file mode 100644
index 86a3b95c..00000000
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSFunctionFof.java
+++ /dev/null
@@ -1,533 +0,0 @@
1/**
2 * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql
3 */
4package ca.mcgill.ecse.dslreasoner.vampire.queries;
5
6import java.util.Arrays;
7import java.util.Collection;
8import java.util.LinkedHashSet;
9import java.util.List;
10import java.util.Objects;
11import java.util.Optional;
12import java.util.Set;
13import java.util.function.Consumer;
14import java.util.stream.Collectors;
15import java.util.stream.Stream;
16import org.apache.log4j.Logger;
17import org.eclipse.emf.ecore.EClass;
18import org.eclipse.viatra.query.runtime.api.IPatternMatch;
19import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
20import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
21import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
22import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
23import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
24import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
25import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
26import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
27import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
28import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
29import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
30import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
31import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
32import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
33import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
34import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
35import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
36import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
37
38/**
39 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
40 *
41 * <p>Original source:
42 * <code><pre>
43 * pattern VLSFunctionFof(term: VLSFunctionFof){
44 * VLSFunctionFof(term);
45 * }
46 * </pre></code>
47 *
48 * @see Matcher
49 * @see Match
50 *
51 */
52@SuppressWarnings("all")
53public final class VLSFunctionFof extends BaseGeneratedEMFQuerySpecification<VLSFunctionFof.Matcher> {
54 /**
55 * Pattern-specific match representation of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunctionFof pattern,
56 * to be used in conjunction with {@link Matcher}.
57 *
58 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
59 * Each instance is a (possibly partial) substitution of pattern parameters,
60 * usable to represent a match of the pattern in the result of a query,
61 * or to specify the bound (fixed) input parameters when issuing a query.
62 *
63 * @see Matcher
64 *
65 */
66 public static abstract class Match extends BasePatternMatch {
67 private ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof fTerm;
68
69 private static List<String> parameterNames = makeImmutableList("term");
70
71 private Match(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof pTerm) {
72 this.fTerm = pTerm;
73 }
74
75 @Override
76 public Object get(final String parameterName) {
77 if ("term".equals(parameterName)) return this.fTerm;
78 return null;
79 }
80
81 public ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof getTerm() {
82 return this.fTerm;
83 }
84
85 @Override
86 public boolean set(final String parameterName, final Object newValue) {
87 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
88 if ("term".equals(parameterName) ) {
89 this.fTerm = (ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof) newValue;
90 return true;
91 }
92 return false;
93 }
94
95 public void setTerm(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof pTerm) {
96 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
97 this.fTerm = pTerm;
98 }
99
100 @Override
101 public String patternName() {
102 return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunctionFof";
103 }
104
105 @Override
106 public List<String> parameterNames() {
107 return VLSFunctionFof.Match.parameterNames;
108 }
109
110 @Override
111 public Object[] toArray() {
112 return new Object[]{fTerm};
113 }
114
115 @Override
116 public VLSFunctionFof.Match toImmutable() {
117 return isMutable() ? newMatch(fTerm) : this;
118 }
119
120 @Override
121 public String prettyPrint() {
122 StringBuilder result = new StringBuilder();
123 result.append("\"term\"=" + prettyPrintValue(fTerm));
124 return result.toString();
125 }
126
127 @Override
128 public int hashCode() {
129 return Objects.hash(fTerm);
130 }
131
132 @Override
133 public boolean equals(final Object obj) {
134 if (this == obj)
135 return true;
136 if (obj == null) {
137 return false;
138 }
139 if ((obj instanceof VLSFunctionFof.Match)) {
140 VLSFunctionFof.Match other = (VLSFunctionFof.Match) obj;
141 return Objects.equals(fTerm, other.fTerm);
142 } else {
143 // this should be infrequent
144 if (!(obj instanceof IPatternMatch)) {
145 return false;
146 }
147 IPatternMatch otherSig = (IPatternMatch) obj;
148 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
149 }
150 }
151
152 @Override
153 public VLSFunctionFof specification() {
154 return VLSFunctionFof.instance();
155 }
156
157 /**
158 * Returns an empty, mutable match.
159 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
160 *
161 * @return the empty match.
162 *
163 */
164 public static VLSFunctionFof.Match newEmptyMatch() {
165 return new Mutable(null);
166 }
167
168 /**
169 * Returns a mutable (partial) match.
170 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
171 *
172 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
173 * @return the new, mutable (partial) match object.
174 *
175 */
176 public static VLSFunctionFof.Match newMutableMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof pTerm) {
177 return new Mutable(pTerm);
178 }
179
180 /**
181 * Returns a new (partial) match.
182 * This can be used e.g. to call the matcher with a partial match.
183 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
184 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
185 * @return the (partial) match object.
186 *
187 */
188 public static VLSFunctionFof.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof pTerm) {
189 return new Immutable(pTerm);
190 }
191
192 private static final class Mutable extends VLSFunctionFof.Match {
193 Mutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof pTerm) {
194 super(pTerm);
195 }
196
197 @Override
198 public boolean isMutable() {
199 return true;
200 }
201 }
202
203 private static final class Immutable extends VLSFunctionFof.Match {
204 Immutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof pTerm) {
205 super(pTerm);
206 }
207
208 @Override
209 public boolean isMutable() {
210 return false;
211 }
212 }
213 }
214
215 /**
216 * Generated pattern matcher API of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunctionFof pattern,
217 * providing pattern-specific query methods.
218 *
219 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
220 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
221 *
222 * <p>Matches of the pattern will be represented as {@link Match}.
223 *
224 * <p>Original source:
225 * <code><pre>
226 * pattern VLSFunctionFof(term: VLSFunctionFof){
227 * VLSFunctionFof(term);
228 * }
229 * </pre></code>
230 *
231 * @see Match
232 * @see VLSFunctionFof
233 *
234 */
235 public static class Matcher extends BaseMatcher<VLSFunctionFof.Match> {
236 /**
237 * Initializes the pattern matcher within an existing VIATRA Query engine.
238 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
239 *
240 * @param engine the existing VIATRA Query engine in which this matcher will be created.
241 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
242 *
243 */
244 public static VLSFunctionFof.Matcher on(final ViatraQueryEngine engine) {
245 // check if matcher already exists
246 Matcher matcher = engine.getExistingMatcher(querySpecification());
247 if (matcher == null) {
248 matcher = (Matcher)engine.getMatcher(querySpecification());
249 }
250 return matcher;
251 }
252
253 /**
254 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
255 * @return an initialized matcher
256 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
257 *
258 */
259 public static VLSFunctionFof.Matcher create() {
260 return new Matcher();
261 }
262
263 private final static int POSITION_TERM = 0;
264
265 private final static Logger LOGGER = ViatraQueryLoggingUtil.getLogger(VLSFunctionFof.Matcher.class);
266
267 /**
268 * Initializes the pattern matcher within an existing VIATRA Query engine.
269 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
270 *
271 * @param engine the existing VIATRA Query engine in which this matcher will be created.
272 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
273 *
274 */
275 private Matcher() {
276 super(querySpecification());
277 }
278
279 /**
280 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
281 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
282 * @return matches represented as a Match object.
283 *
284 */
285 public Collection<VLSFunctionFof.Match> getAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof pTerm) {
286 return rawStreamAllMatches(new Object[]{pTerm}).collect(Collectors.toSet());
287 }
288
289 /**
290 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
291 * </p>
292 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
293 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
294 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
295 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
296 * @return a stream of matches represented as a Match object.
297 *
298 */
299 public Stream<VLSFunctionFof.Match> streamAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof pTerm) {
300 return rawStreamAllMatches(new Object[]{pTerm});
301 }
302
303 /**
304 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
305 * Neither determinism nor randomness of selection is guaranteed.
306 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
307 * @return a match represented as a Match object, or null if no match is found.
308 *
309 */
310 public Optional<VLSFunctionFof.Match> getOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof pTerm) {
311 return rawGetOneArbitraryMatch(new Object[]{pTerm});
312 }
313
314 /**
315 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
316 * under any possible substitution of the unspecified parameters (if any).
317 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
318 * @return true if the input is a valid (partial) match of the pattern.
319 *
320 */
321 public boolean hasMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof pTerm) {
322 return rawHasMatch(new Object[]{pTerm});
323 }
324
325 /**
326 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
327 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
328 * @return the number of pattern matches found.
329 *
330 */
331 public int countMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof pTerm) {
332 return rawCountMatches(new Object[]{pTerm});
333 }
334
335 /**
336 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
337 * Neither determinism nor randomness of selection is guaranteed.
338 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
339 * @param processor the action that will process the selected match.
340 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
341 *
342 */
343 public boolean forOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof pTerm, final Consumer<? super VLSFunctionFof.Match> processor) {
344 return rawForOneArbitraryMatch(new Object[]{pTerm}, processor);
345 }
346
347 /**
348 * Returns a new (partial) match.
349 * This can be used e.g. to call the matcher with a partial match.
350 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
351 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
352 * @return the (partial) match object.
353 *
354 */
355 public VLSFunctionFof.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof pTerm) {
356 return VLSFunctionFof.Match.newMatch(pTerm);
357 }
358
359 /**
360 * Retrieve the set of values that occur in matches for term.
361 * @return the Set of all values or empty set if there are no matches
362 *
363 */
364 protected Stream<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof> rawStreamAllValuesOfterm(final Object[] parameters) {
365 return rawStreamAllValues(POSITION_TERM, parameters).map(ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof.class::cast);
366 }
367
368 /**
369 * Retrieve the set of values that occur in matches for term.
370 * @return the Set of all values or empty set if there are no matches
371 *
372 */
373 public Set<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof> getAllValuesOfterm() {
374 return rawStreamAllValuesOfterm(emptyArray()).collect(Collectors.toSet());
375 }
376
377 /**
378 * Retrieve the set of values that occur in matches for term.
379 * @return the Set of all values or empty set if there are no matches
380 *
381 */
382 public Stream<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof> streamAllValuesOfterm() {
383 return rawStreamAllValuesOfterm(emptyArray());
384 }
385
386 @Override
387 protected VLSFunctionFof.Match tupleToMatch(final Tuple t) {
388 try {
389 return VLSFunctionFof.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof) t.get(POSITION_TERM));
390 } catch(ClassCastException e) {
391 LOGGER.error("Element(s) in tuple not properly typed!",e);
392 return null;
393 }
394 }
395
396 @Override
397 protected VLSFunctionFof.Match arrayToMatch(final Object[] match) {
398 try {
399 return VLSFunctionFof.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof) match[POSITION_TERM]);
400 } catch(ClassCastException e) {
401 LOGGER.error("Element(s) in array not properly typed!",e);
402 return null;
403 }
404 }
405
406 @Override
407 protected VLSFunctionFof.Match arrayToMatchMutable(final Object[] match) {
408 try {
409 return VLSFunctionFof.Match.newMutableMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof) match[POSITION_TERM]);
410 } catch(ClassCastException e) {
411 LOGGER.error("Element(s) in array not properly typed!",e);
412 return null;
413 }
414 }
415
416 /**
417 * @return the singleton instance of the query specification of this pattern
418 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
419 *
420 */
421 public static IQuerySpecification<VLSFunctionFof.Matcher> querySpecification() {
422 return VLSFunctionFof.instance();
423 }
424 }
425
426 private VLSFunctionFof() {
427 super(GeneratedPQuery.INSTANCE);
428 }
429
430 /**
431 * @return the singleton instance of the query specification
432 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
433 *
434 */
435 public static VLSFunctionFof instance() {
436 try{
437 return LazyHolder.INSTANCE;
438 } catch (ExceptionInInitializerError err) {
439 throw processInitializerError(err);
440 }
441 }
442
443 @Override
444 protected VLSFunctionFof.Matcher instantiate(final ViatraQueryEngine engine) {
445 return VLSFunctionFof.Matcher.on(engine);
446 }
447
448 @Override
449 public VLSFunctionFof.Matcher instantiate() {
450 return VLSFunctionFof.Matcher.create();
451 }
452
453 @Override
454 public VLSFunctionFof.Match newEmptyMatch() {
455 return VLSFunctionFof.Match.newEmptyMatch();
456 }
457
458 @Override
459 public VLSFunctionFof.Match newMatch(final Object... parameters) {
460 return VLSFunctionFof.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof) parameters[0]);
461 }
462
463 /**
464 * Inner class allowing the singleton instance of {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunctionFof (visibility: PUBLIC, simpleName: VLSFunctionFof, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunctionFof, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
465 * <b>not</b> at the class load time of the outer class,
466 * but rather at the first call to {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunctionFof (visibility: PUBLIC, simpleName: VLSFunctionFof, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunctionFof, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
467 *
468 * <p> This workaround is required e.g. to support recursion.
469 *
470 */
471 private static class LazyHolder {
472 private final static VLSFunctionFof INSTANCE = new VLSFunctionFof();
473
474 /**
475 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
476 * This initialization order is required to support indirect recursion.
477 *
478 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
479 *
480 */
481 private final static Object STATIC_INITIALIZER = ensureInitialized();
482
483 public static Object ensureInitialized() {
484 INSTANCE.ensureInitializedInternal();
485 return null;
486 }
487 }
488
489 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
490 private final static VLSFunctionFof.GeneratedPQuery INSTANCE = new GeneratedPQuery();
491
492 private final PParameter parameter_term = new PParameter("term", "ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSFunctionFof")), PParameterDirection.INOUT);
493
494 private final List<PParameter> parameters = Arrays.asList(parameter_term);
495
496 private GeneratedPQuery() {
497 super(PVisibility.PUBLIC);
498 }
499
500 @Override
501 public String getFullyQualifiedName() {
502 return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunctionFof";
503 }
504
505 @Override
506 public List<String> getParameterNames() {
507 return Arrays.asList("term");
508 }
509
510 @Override
511 public List<PParameter> getParameters() {
512 return parameters;
513 }
514
515 @Override
516 public Set<PBody> doGetContainedBodies() {
517 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
518 Set<PBody> bodies = new LinkedHashSet<>();
519 {
520 PBody body = new PBody(this);
521 PVariable var_term = body.getOrCreateVariableByName("term");
522 new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSFunctionFof")));
523 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
524 new ExportedParameter(body, var_term, parameter_term)
525 ));
526 // VLSFunctionFof(term)
527 new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSFunctionFof")));
528 bodies.add(body);
529 }
530 return bodies;
531 }
532 }
533}
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSInequality.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSInequality.java
deleted file mode 100644
index 0dd35ed9..00000000
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSInequality.java
+++ /dev/null
@@ -1,533 +0,0 @@
1/**
2 * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql
3 */
4package ca.mcgill.ecse.dslreasoner.vampire.queries;
5
6import java.util.Arrays;
7import java.util.Collection;
8import java.util.LinkedHashSet;
9import java.util.List;
10import java.util.Objects;
11import java.util.Optional;
12import java.util.Set;
13import java.util.function.Consumer;
14import java.util.stream.Collectors;
15import java.util.stream.Stream;
16import org.apache.log4j.Logger;
17import org.eclipse.emf.ecore.EClass;
18import org.eclipse.viatra.query.runtime.api.IPatternMatch;
19import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
20import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
21import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
22import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
23import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
24import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
25import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
26import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
27import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
28import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
29import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
30import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
31import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
32import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
33import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
34import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
35import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
36import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
37
38/**
39 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
40 *
41 * <p>Original source:
42 * <code><pre>
43 * pattern VLSInequality(term: VLSInequality){
44 * VLSInequality(term);
45 * }
46 * </pre></code>
47 *
48 * @see Matcher
49 * @see Match
50 *
51 */
52@SuppressWarnings("all")
53public final class VLSInequality extends BaseGeneratedEMFQuerySpecification<VLSInequality.Matcher> {
54 /**
55 * Pattern-specific match representation of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSInequality pattern,
56 * to be used in conjunction with {@link Matcher}.
57 *
58 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
59 * Each instance is a (possibly partial) substitution of pattern parameters,
60 * usable to represent a match of the pattern in the result of a query,
61 * or to specify the bound (fixed) input parameters when issuing a query.
62 *
63 * @see Matcher
64 *
65 */
66 public static abstract class Match extends BasePatternMatch {
67 private ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality fTerm;
68
69 private static List<String> parameterNames = makeImmutableList("term");
70
71 private Match(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality pTerm) {
72 this.fTerm = pTerm;
73 }
74
75 @Override
76 public Object get(final String parameterName) {
77 if ("term".equals(parameterName)) return this.fTerm;
78 return null;
79 }
80
81 public ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality getTerm() {
82 return this.fTerm;
83 }
84
85 @Override
86 public boolean set(final String parameterName, final Object newValue) {
87 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
88 if ("term".equals(parameterName) ) {
89 this.fTerm = (ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality) newValue;
90 return true;
91 }
92 return false;
93 }
94
95 public void setTerm(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality pTerm) {
96 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
97 this.fTerm = pTerm;
98 }
99
100 @Override
101 public String patternName() {
102 return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSInequality";
103 }
104
105 @Override
106 public List<String> parameterNames() {
107 return VLSInequality.Match.parameterNames;
108 }
109
110 @Override
111 public Object[] toArray() {
112 return new Object[]{fTerm};
113 }
114
115 @Override
116 public VLSInequality.Match toImmutable() {
117 return isMutable() ? newMatch(fTerm) : this;
118 }
119
120 @Override
121 public String prettyPrint() {
122 StringBuilder result = new StringBuilder();
123 result.append("\"term\"=" + prettyPrintValue(fTerm));
124 return result.toString();
125 }
126
127 @Override
128 public int hashCode() {
129 return Objects.hash(fTerm);
130 }
131
132 @Override
133 public boolean equals(final Object obj) {
134 if (this == obj)
135 return true;
136 if (obj == null) {
137 return false;
138 }
139 if ((obj instanceof VLSInequality.Match)) {
140 VLSInequality.Match other = (VLSInequality.Match) obj;
141 return Objects.equals(fTerm, other.fTerm);
142 } else {
143 // this should be infrequent
144 if (!(obj instanceof IPatternMatch)) {
145 return false;
146 }
147 IPatternMatch otherSig = (IPatternMatch) obj;
148 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
149 }
150 }
151
152 @Override
153 public VLSInequality specification() {
154 return VLSInequality.instance();
155 }
156
157 /**
158 * Returns an empty, mutable match.
159 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
160 *
161 * @return the empty match.
162 *
163 */
164 public static VLSInequality.Match newEmptyMatch() {
165 return new Mutable(null);
166 }
167
168 /**
169 * Returns a mutable (partial) match.
170 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
171 *
172 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
173 * @return the new, mutable (partial) match object.
174 *
175 */
176 public static VLSInequality.Match newMutableMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality pTerm) {
177 return new Mutable(pTerm);
178 }
179
180 /**
181 * Returns a new (partial) match.
182 * This can be used e.g. to call the matcher with a partial match.
183 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
184 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
185 * @return the (partial) match object.
186 *
187 */
188 public static VLSInequality.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality pTerm) {
189 return new Immutable(pTerm);
190 }
191
192 private static final class Mutable extends VLSInequality.Match {
193 Mutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality pTerm) {
194 super(pTerm);
195 }
196
197 @Override
198 public boolean isMutable() {
199 return true;
200 }
201 }
202
203 private static final class Immutable extends VLSInequality.Match {
204 Immutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality pTerm) {
205 super(pTerm);
206 }
207
208 @Override
209 public boolean isMutable() {
210 return false;
211 }
212 }
213 }
214
215 /**
216 * Generated pattern matcher API of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSInequality pattern,
217 * providing pattern-specific query methods.
218 *
219 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
220 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
221 *
222 * <p>Matches of the pattern will be represented as {@link Match}.
223 *
224 * <p>Original source:
225 * <code><pre>
226 * pattern VLSInequality(term: VLSInequality){
227 * VLSInequality(term);
228 * }
229 * </pre></code>
230 *
231 * @see Match
232 * @see VLSInequality
233 *
234 */
235 public static class Matcher extends BaseMatcher<VLSInequality.Match> {
236 /**
237 * Initializes the pattern matcher within an existing VIATRA Query engine.
238 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
239 *
240 * @param engine the existing VIATRA Query engine in which this matcher will be created.
241 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
242 *
243 */
244 public static VLSInequality.Matcher on(final ViatraQueryEngine engine) {
245 // check if matcher already exists
246 Matcher matcher = engine.getExistingMatcher(querySpecification());
247 if (matcher == null) {
248 matcher = (Matcher)engine.getMatcher(querySpecification());
249 }
250 return matcher;
251 }
252
253 /**
254 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
255 * @return an initialized matcher
256 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
257 *
258 */
259 public static VLSInequality.Matcher create() {
260 return new Matcher();
261 }
262
263 private final static int POSITION_TERM = 0;
264
265 private final static Logger LOGGER = ViatraQueryLoggingUtil.getLogger(VLSInequality.Matcher.class);
266
267 /**
268 * Initializes the pattern matcher within an existing VIATRA Query engine.
269 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
270 *
271 * @param engine the existing VIATRA Query engine in which this matcher will be created.
272 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
273 *
274 */
275 private Matcher() {
276 super(querySpecification());
277 }
278
279 /**
280 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
281 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
282 * @return matches represented as a Match object.
283 *
284 */
285 public Collection<VLSInequality.Match> getAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality pTerm) {
286 return rawStreamAllMatches(new Object[]{pTerm}).collect(Collectors.toSet());
287 }
288
289 /**
290 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
291 * </p>
292 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
293 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
294 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
295 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
296 * @return a stream of matches represented as a Match object.
297 *
298 */
299 public Stream<VLSInequality.Match> streamAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality pTerm) {
300 return rawStreamAllMatches(new Object[]{pTerm});
301 }
302
303 /**
304 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
305 * Neither determinism nor randomness of selection is guaranteed.
306 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
307 * @return a match represented as a Match object, or null if no match is found.
308 *
309 */
310 public Optional<VLSInequality.Match> getOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality pTerm) {
311 return rawGetOneArbitraryMatch(new Object[]{pTerm});
312 }
313
314 /**
315 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
316 * under any possible substitution of the unspecified parameters (if any).
317 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
318 * @return true if the input is a valid (partial) match of the pattern.
319 *
320 */
321 public boolean hasMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality pTerm) {
322 return rawHasMatch(new Object[]{pTerm});
323 }
324
325 /**
326 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
327 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
328 * @return the number of pattern matches found.
329 *
330 */
331 public int countMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality pTerm) {
332 return rawCountMatches(new Object[]{pTerm});
333 }
334
335 /**
336 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
337 * Neither determinism nor randomness of selection is guaranteed.
338 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
339 * @param processor the action that will process the selected match.
340 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
341 *
342 */
343 public boolean forOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality pTerm, final Consumer<? super VLSInequality.Match> processor) {
344 return rawForOneArbitraryMatch(new Object[]{pTerm}, processor);
345 }
346
347 /**
348 * Returns a new (partial) match.
349 * This can be used e.g. to call the matcher with a partial match.
350 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
351 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
352 * @return the (partial) match object.
353 *
354 */
355 public VLSInequality.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality pTerm) {
356 return VLSInequality.Match.newMatch(pTerm);
357 }
358
359 /**
360 * Retrieve the set of values that occur in matches for term.
361 * @return the Set of all values or empty set if there are no matches
362 *
363 */
364 protected Stream<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality> rawStreamAllValuesOfterm(final Object[] parameters) {
365 return rawStreamAllValues(POSITION_TERM, parameters).map(ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality.class::cast);
366 }
367
368 /**
369 * Retrieve the set of values that occur in matches for term.
370 * @return the Set of all values or empty set if there are no matches
371 *
372 */
373 public Set<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality> getAllValuesOfterm() {
374 return rawStreamAllValuesOfterm(emptyArray()).collect(Collectors.toSet());
375 }
376
377 /**
378 * Retrieve the set of values that occur in matches for term.
379 * @return the Set of all values or empty set if there are no matches
380 *
381 */
382 public Stream<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality> streamAllValuesOfterm() {
383 return rawStreamAllValuesOfterm(emptyArray());
384 }
385
386 @Override
387 protected VLSInequality.Match tupleToMatch(final Tuple t) {
388 try {
389 return VLSInequality.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality) t.get(POSITION_TERM));
390 } catch(ClassCastException e) {
391 LOGGER.error("Element(s) in tuple not properly typed!",e);
392 return null;
393 }
394 }
395
396 @Override
397 protected VLSInequality.Match arrayToMatch(final Object[] match) {
398 try {
399 return VLSInequality.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality) match[POSITION_TERM]);
400 } catch(ClassCastException e) {
401 LOGGER.error("Element(s) in array not properly typed!",e);
402 return null;
403 }
404 }
405
406 @Override
407 protected VLSInequality.Match arrayToMatchMutable(final Object[] match) {
408 try {
409 return VLSInequality.Match.newMutableMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality) match[POSITION_TERM]);
410 } catch(ClassCastException e) {
411 LOGGER.error("Element(s) in array not properly typed!",e);
412 return null;
413 }
414 }
415
416 /**
417 * @return the singleton instance of the query specification of this pattern
418 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
419 *
420 */
421 public static IQuerySpecification<VLSInequality.Matcher> querySpecification() {
422 return VLSInequality.instance();
423 }
424 }
425
426 private VLSInequality() {
427 super(GeneratedPQuery.INSTANCE);
428 }
429
430 /**
431 * @return the singleton instance of the query specification
432 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
433 *
434 */
435 public static VLSInequality instance() {
436 try{
437 return LazyHolder.INSTANCE;
438 } catch (ExceptionInInitializerError err) {
439 throw processInitializerError(err);
440 }
441 }
442
443 @Override
444 protected VLSInequality.Matcher instantiate(final ViatraQueryEngine engine) {
445 return VLSInequality.Matcher.on(engine);
446 }
447
448 @Override
449 public VLSInequality.Matcher instantiate() {
450 return VLSInequality.Matcher.create();
451 }
452
453 @Override
454 public VLSInequality.Match newEmptyMatch() {
455 return VLSInequality.Match.newEmptyMatch();
456 }
457
458 @Override
459 public VLSInequality.Match newMatch(final Object... parameters) {
460 return VLSInequality.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality) parameters[0]);
461 }
462
463 /**
464 * Inner class allowing the singleton instance of {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSInequality (visibility: PUBLIC, simpleName: VLSInequality, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSInequality, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
465 * <b>not</b> at the class load time of the outer class,
466 * but rather at the first call to {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSInequality (visibility: PUBLIC, simpleName: VLSInequality, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSInequality, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
467 *
468 * <p> This workaround is required e.g. to support recursion.
469 *
470 */
471 private static class LazyHolder {
472 private final static VLSInequality INSTANCE = new VLSInequality();
473
474 /**
475 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
476 * This initialization order is required to support indirect recursion.
477 *
478 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
479 *
480 */
481 private final static Object STATIC_INITIALIZER = ensureInitialized();
482
483 public static Object ensureInitialized() {
484 INSTANCE.ensureInitializedInternal();
485 return null;
486 }
487 }
488
489 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
490 private final static VLSInequality.GeneratedPQuery INSTANCE = new GeneratedPQuery();
491
492 private final PParameter parameter_term = new PParameter("term", "ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSInequality")), PParameterDirection.INOUT);
493
494 private final List<PParameter> parameters = Arrays.asList(parameter_term);
495
496 private GeneratedPQuery() {
497 super(PVisibility.PUBLIC);
498 }
499
500 @Override
501 public String getFullyQualifiedName() {
502 return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSInequality";
503 }
504
505 @Override
506 public List<String> getParameterNames() {
507 return Arrays.asList("term");
508 }
509
510 @Override
511 public List<PParameter> getParameters() {
512 return parameters;
513 }
514
515 @Override
516 public Set<PBody> doGetContainedBodies() {
517 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
518 Set<PBody> bodies = new LinkedHashSet<>();
519 {
520 PBody body = new PBody(this);
521 PVariable var_term = body.getOrCreateVariableByName("term");
522 new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSInequality")));
523 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
524 new ExportedParameter(body, var_term, parameter_term)
525 ));
526 // VLSInequality(term)
527 new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSInequality")));
528 bodies.add(body);
529 }
530 return bodies;
531 }
532 }
533}
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSOr.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSOr.java
deleted file mode 100644
index 0d8e0648..00000000
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSOr.java
+++ /dev/null
@@ -1,535 +0,0 @@
1/**
2 * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql
3 */
4package ca.mcgill.ecse.dslreasoner.vampire.queries;
5
6import java.util.Arrays;
7import java.util.Collection;
8import java.util.LinkedHashSet;
9import java.util.List;
10import java.util.Objects;
11import java.util.Optional;
12import java.util.Set;
13import java.util.function.Consumer;
14import java.util.stream.Collectors;
15import java.util.stream.Stream;
16import org.apache.log4j.Logger;
17import org.eclipse.emf.ecore.EClass;
18import org.eclipse.viatra.query.runtime.api.IPatternMatch;
19import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
20import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
21import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
22import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
23import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
24import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
25import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
26import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
27import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
28import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
29import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
30import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
31import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
32import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
33import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
34import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
35import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
36import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
37
38/**
39 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
40 *
41 * <p>Original source:
42 * <code><pre>
43 * //VLSFormula
44 * pattern VLSOr(term: VLSOr){
45 * VLSOr(term);
46 * }
47 * </pre></code>
48 *
49 * @see Matcher
50 * @see Match
51 *
52 */
53@SuppressWarnings("all")
54public final class VLSOr extends BaseGeneratedEMFQuerySpecification<VLSOr.Matcher> {
55 /**
56 * Pattern-specific match representation of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSOr pattern,
57 * to be used in conjunction with {@link Matcher}.
58 *
59 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
60 * Each instance is a (possibly partial) substitution of pattern parameters,
61 * usable to represent a match of the pattern in the result of a query,
62 * or to specify the bound (fixed) input parameters when issuing a query.
63 *
64 * @see Matcher
65 *
66 */
67 public static abstract class Match extends BasePatternMatch {
68 private ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr fTerm;
69
70 private static List<String> parameterNames = makeImmutableList("term");
71
72 private Match(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr pTerm) {
73 this.fTerm = pTerm;
74 }
75
76 @Override
77 public Object get(final String parameterName) {
78 if ("term".equals(parameterName)) return this.fTerm;
79 return null;
80 }
81
82 public ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr getTerm() {
83 return this.fTerm;
84 }
85
86 @Override
87 public boolean set(final String parameterName, final Object newValue) {
88 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
89 if ("term".equals(parameterName) ) {
90 this.fTerm = (ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr) newValue;
91 return true;
92 }
93 return false;
94 }
95
96 public void setTerm(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr pTerm) {
97 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
98 this.fTerm = pTerm;
99 }
100
101 @Override
102 public String patternName() {
103 return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSOr";
104 }
105
106 @Override
107 public List<String> parameterNames() {
108 return VLSOr.Match.parameterNames;
109 }
110
111 @Override
112 public Object[] toArray() {
113 return new Object[]{fTerm};
114 }
115
116 @Override
117 public VLSOr.Match toImmutable() {
118 return isMutable() ? newMatch(fTerm) : this;
119 }
120
121 @Override
122 public String prettyPrint() {
123 StringBuilder result = new StringBuilder();
124 result.append("\"term\"=" + prettyPrintValue(fTerm));
125 return result.toString();
126 }
127
128 @Override
129 public int hashCode() {
130 return Objects.hash(fTerm);
131 }
132
133 @Override
134 public boolean equals(final Object obj) {
135 if (this == obj)
136 return true;
137 if (obj == null) {
138 return false;
139 }
140 if ((obj instanceof VLSOr.Match)) {
141 VLSOr.Match other = (VLSOr.Match) obj;
142 return Objects.equals(fTerm, other.fTerm);
143 } else {
144 // this should be infrequent
145 if (!(obj instanceof IPatternMatch)) {
146 return false;
147 }
148 IPatternMatch otherSig = (IPatternMatch) obj;
149 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
150 }
151 }
152
153 @Override
154 public VLSOr specification() {
155 return VLSOr.instance();
156 }
157
158 /**
159 * Returns an empty, mutable match.
160 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
161 *
162 * @return the empty match.
163 *
164 */
165 public static VLSOr.Match newEmptyMatch() {
166 return new Mutable(null);
167 }
168
169 /**
170 * Returns a mutable (partial) match.
171 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
172 *
173 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
174 * @return the new, mutable (partial) match object.
175 *
176 */
177 public static VLSOr.Match newMutableMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr pTerm) {
178 return new Mutable(pTerm);
179 }
180
181 /**
182 * Returns a new (partial) match.
183 * This can be used e.g. to call the matcher with a partial match.
184 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
185 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
186 * @return the (partial) match object.
187 *
188 */
189 public static VLSOr.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr pTerm) {
190 return new Immutable(pTerm);
191 }
192
193 private static final class Mutable extends VLSOr.Match {
194 Mutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr pTerm) {
195 super(pTerm);
196 }
197
198 @Override
199 public boolean isMutable() {
200 return true;
201 }
202 }
203
204 private static final class Immutable extends VLSOr.Match {
205 Immutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr pTerm) {
206 super(pTerm);
207 }
208
209 @Override
210 public boolean isMutable() {
211 return false;
212 }
213 }
214 }
215
216 /**
217 * Generated pattern matcher API of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSOr pattern,
218 * providing pattern-specific query methods.
219 *
220 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
221 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
222 *
223 * <p>Matches of the pattern will be represented as {@link Match}.
224 *
225 * <p>Original source:
226 * <code><pre>
227 * //VLSFormula
228 * pattern VLSOr(term: VLSOr){
229 * VLSOr(term);
230 * }
231 * </pre></code>
232 *
233 * @see Match
234 * @see VLSOr
235 *
236 */
237 public static class Matcher extends BaseMatcher<VLSOr.Match> {
238 /**
239 * Initializes the pattern matcher within an existing VIATRA Query engine.
240 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
241 *
242 * @param engine the existing VIATRA Query engine in which this matcher will be created.
243 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
244 *
245 */
246 public static VLSOr.Matcher on(final ViatraQueryEngine engine) {
247 // check if matcher already exists
248 Matcher matcher = engine.getExistingMatcher(querySpecification());
249 if (matcher == null) {
250 matcher = (Matcher)engine.getMatcher(querySpecification());
251 }
252 return matcher;
253 }
254
255 /**
256 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
257 * @return an initialized matcher
258 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
259 *
260 */
261 public static VLSOr.Matcher create() {
262 return new Matcher();
263 }
264
265 private final static int POSITION_TERM = 0;
266
267 private final static Logger LOGGER = ViatraQueryLoggingUtil.getLogger(VLSOr.Matcher.class);
268
269 /**
270 * Initializes the pattern matcher within an existing VIATRA Query engine.
271 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
272 *
273 * @param engine the existing VIATRA Query engine in which this matcher will be created.
274 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
275 *
276 */
277 private Matcher() {
278 super(querySpecification());
279 }
280
281 /**
282 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
283 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
284 * @return matches represented as a Match object.
285 *
286 */
287 public Collection<VLSOr.Match> getAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr pTerm) {
288 return rawStreamAllMatches(new Object[]{pTerm}).collect(Collectors.toSet());
289 }
290
291 /**
292 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
293 * </p>
294 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
295 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
296 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
297 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
298 * @return a stream of matches represented as a Match object.
299 *
300 */
301 public Stream<VLSOr.Match> streamAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr pTerm) {
302 return rawStreamAllMatches(new Object[]{pTerm});
303 }
304
305 /**
306 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
307 * Neither determinism nor randomness of selection is guaranteed.
308 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
309 * @return a match represented as a Match object, or null if no match is found.
310 *
311 */
312 public Optional<VLSOr.Match> getOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr pTerm) {
313 return rawGetOneArbitraryMatch(new Object[]{pTerm});
314 }
315
316 /**
317 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
318 * under any possible substitution of the unspecified parameters (if any).
319 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
320 * @return true if the input is a valid (partial) match of the pattern.
321 *
322 */
323 public boolean hasMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr pTerm) {
324 return rawHasMatch(new Object[]{pTerm});
325 }
326
327 /**
328 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
329 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
330 * @return the number of pattern matches found.
331 *
332 */
333 public int countMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr pTerm) {
334 return rawCountMatches(new Object[]{pTerm});
335 }
336
337 /**
338 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
339 * Neither determinism nor randomness of selection is guaranteed.
340 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
341 * @param processor the action that will process the selected match.
342 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
343 *
344 */
345 public boolean forOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr pTerm, final Consumer<? super VLSOr.Match> processor) {
346 return rawForOneArbitraryMatch(new Object[]{pTerm}, processor);
347 }
348
349 /**
350 * Returns a new (partial) match.
351 * This can be used e.g. to call the matcher with a partial match.
352 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
353 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
354 * @return the (partial) match object.
355 *
356 */
357 public VLSOr.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr pTerm) {
358 return VLSOr.Match.newMatch(pTerm);
359 }
360
361 /**
362 * Retrieve the set of values that occur in matches for term.
363 * @return the Set of all values or empty set if there are no matches
364 *
365 */
366 protected Stream<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr> rawStreamAllValuesOfterm(final Object[] parameters) {
367 return rawStreamAllValues(POSITION_TERM, parameters).map(ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr.class::cast);
368 }
369
370 /**
371 * Retrieve the set of values that occur in matches for term.
372 * @return the Set of all values or empty set if there are no matches
373 *
374 */
375 public Set<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr> getAllValuesOfterm() {
376 return rawStreamAllValuesOfterm(emptyArray()).collect(Collectors.toSet());
377 }
378
379 /**
380 * Retrieve the set of values that occur in matches for term.
381 * @return the Set of all values or empty set if there are no matches
382 *
383 */
384 public Stream<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr> streamAllValuesOfterm() {
385 return rawStreamAllValuesOfterm(emptyArray());
386 }
387
388 @Override
389 protected VLSOr.Match tupleToMatch(final Tuple t) {
390 try {
391 return VLSOr.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr) t.get(POSITION_TERM));
392 } catch(ClassCastException e) {
393 LOGGER.error("Element(s) in tuple not properly typed!",e);
394 return null;
395 }
396 }
397
398 @Override
399 protected VLSOr.Match arrayToMatch(final Object[] match) {
400 try {
401 return VLSOr.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr) match[POSITION_TERM]);
402 } catch(ClassCastException e) {
403 LOGGER.error("Element(s) in array not properly typed!",e);
404 return null;
405 }
406 }
407
408 @Override
409 protected VLSOr.Match arrayToMatchMutable(final Object[] match) {
410 try {
411 return VLSOr.Match.newMutableMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr) match[POSITION_TERM]);
412 } catch(ClassCastException e) {
413 LOGGER.error("Element(s) in array not properly typed!",e);
414 return null;
415 }
416 }
417
418 /**
419 * @return the singleton instance of the query specification of this pattern
420 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
421 *
422 */
423 public static IQuerySpecification<VLSOr.Matcher> querySpecification() {
424 return VLSOr.instance();
425 }
426 }
427
428 private VLSOr() {
429 super(GeneratedPQuery.INSTANCE);
430 }
431
432 /**
433 * @return the singleton instance of the query specification
434 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
435 *
436 */
437 public static VLSOr instance() {
438 try{
439 return LazyHolder.INSTANCE;
440 } catch (ExceptionInInitializerError err) {
441 throw processInitializerError(err);
442 }
443 }
444
445 @Override
446 protected VLSOr.Matcher instantiate(final ViatraQueryEngine engine) {
447 return VLSOr.Matcher.on(engine);
448 }
449
450 @Override
451 public VLSOr.Matcher instantiate() {
452 return VLSOr.Matcher.create();
453 }
454
455 @Override
456 public VLSOr.Match newEmptyMatch() {
457 return VLSOr.Match.newEmptyMatch();
458 }
459
460 @Override
461 public VLSOr.Match newMatch(final Object... parameters) {
462 return VLSOr.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr) parameters[0]);
463 }
464
465 /**
466 * Inner class allowing the singleton instance of {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSOr (visibility: PUBLIC, simpleName: VLSOr, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSOr, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
467 * <b>not</b> at the class load time of the outer class,
468 * but rather at the first call to {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSOr (visibility: PUBLIC, simpleName: VLSOr, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSOr, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
469 *
470 * <p> This workaround is required e.g. to support recursion.
471 *
472 */
473 private static class LazyHolder {
474 private final static VLSOr INSTANCE = new VLSOr();
475
476 /**
477 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
478 * This initialization order is required to support indirect recursion.
479 *
480 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
481 *
482 */
483 private final static Object STATIC_INITIALIZER = ensureInitialized();
484
485 public static Object ensureInitialized() {
486 INSTANCE.ensureInitializedInternal();
487 return null;
488 }
489 }
490
491 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
492 private final static VLSOr.GeneratedPQuery INSTANCE = new GeneratedPQuery();
493
494 private final PParameter parameter_term = new PParameter("term", "ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSOr")), PParameterDirection.INOUT);
495
496 private final List<PParameter> parameters = Arrays.asList(parameter_term);
497
498 private GeneratedPQuery() {
499 super(PVisibility.PUBLIC);
500 }
501
502 @Override
503 public String getFullyQualifiedName() {
504 return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSOr";
505 }
506
507 @Override
508 public List<String> getParameterNames() {
509 return Arrays.asList("term");
510 }
511
512 @Override
513 public List<PParameter> getParameters() {
514 return parameters;
515 }
516
517 @Override
518 public Set<PBody> doGetContainedBodies() {
519 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
520 Set<PBody> bodies = new LinkedHashSet<>();
521 {
522 PBody body = new PBody(this);
523 PVariable var_term = body.getOrCreateVariableByName("term");
524 new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSOr")));
525 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
526 new ExportedParameter(body, var_term, parameter_term)
527 ));
528 // VLSOr(term)
529 new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSOr")));
530 bodies.add(body);
531 }
532 return bodies;
533 }
534 }
535}
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSUnaryNegation.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSUnaryNegation.java
deleted file mode 100644
index b6290aab..00000000
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSUnaryNegation.java
+++ /dev/null
@@ -1,533 +0,0 @@
1/**
2 * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql
3 */
4package ca.mcgill.ecse.dslreasoner.vampire.queries;
5
6import java.util.Arrays;
7import java.util.Collection;
8import java.util.LinkedHashSet;
9import java.util.List;
10import java.util.Objects;
11import java.util.Optional;
12import java.util.Set;
13import java.util.function.Consumer;
14import java.util.stream.Collectors;
15import java.util.stream.Stream;
16import org.apache.log4j.Logger;
17import org.eclipse.emf.ecore.EClass;
18import org.eclipse.viatra.query.runtime.api.IPatternMatch;
19import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
20import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
21import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
22import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
23import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
24import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
25import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
26import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
27import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
28import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
29import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
30import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
31import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
32import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
33import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
34import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
35import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
36import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
37
38/**
39 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
40 *
41 * <p>Original source:
42 * <code><pre>
43 * pattern VLSUnaryNegation(term: VLSUnaryNegation){
44 * VLSUnaryNegation(term);
45 * }
46 * </pre></code>
47 *
48 * @see Matcher
49 * @see Match
50 *
51 */
52@SuppressWarnings("all")
53public final class VLSUnaryNegation extends BaseGeneratedEMFQuerySpecification<VLSUnaryNegation.Matcher> {
54 /**
55 * Pattern-specific match representation of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUnaryNegation pattern,
56 * to be used in conjunction with {@link Matcher}.
57 *
58 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
59 * Each instance is a (possibly partial) substitution of pattern parameters,
60 * usable to represent a match of the pattern in the result of a query,
61 * or to specify the bound (fixed) input parameters when issuing a query.
62 *
63 * @see Matcher
64 *
65 */
66 public static abstract class Match extends BasePatternMatch {
67 private ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation fTerm;
68
69 private static List<String> parameterNames = makeImmutableList("term");
70
71 private Match(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation pTerm) {
72 this.fTerm = pTerm;
73 }
74
75 @Override
76 public Object get(final String parameterName) {
77 if ("term".equals(parameterName)) return this.fTerm;
78 return null;
79 }
80
81 public ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation getTerm() {
82 return this.fTerm;
83 }
84
85 @Override
86 public boolean set(final String parameterName, final Object newValue) {
87 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
88 if ("term".equals(parameterName) ) {
89 this.fTerm = (ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation) newValue;
90 return true;
91 }
92 return false;
93 }
94
95 public void setTerm(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation pTerm) {
96 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
97 this.fTerm = pTerm;
98 }
99
100 @Override
101 public String patternName() {
102 return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUnaryNegation";
103 }
104
105 @Override
106 public List<String> parameterNames() {
107 return VLSUnaryNegation.Match.parameterNames;
108 }
109
110 @Override
111 public Object[] toArray() {
112 return new Object[]{fTerm};
113 }
114
115 @Override
116 public VLSUnaryNegation.Match toImmutable() {
117 return isMutable() ? newMatch(fTerm) : this;
118 }
119
120 @Override
121 public String prettyPrint() {
122 StringBuilder result = new StringBuilder();
123 result.append("\"term\"=" + prettyPrintValue(fTerm));
124 return result.toString();
125 }
126
127 @Override
128 public int hashCode() {
129 return Objects.hash(fTerm);
130 }
131
132 @Override
133 public boolean equals(final Object obj) {
134 if (this == obj)
135 return true;
136 if (obj == null) {
137 return false;
138 }
139 if ((obj instanceof VLSUnaryNegation.Match)) {
140 VLSUnaryNegation.Match other = (VLSUnaryNegation.Match) obj;
141 return Objects.equals(fTerm, other.fTerm);
142 } else {
143 // this should be infrequent
144 if (!(obj instanceof IPatternMatch)) {
145 return false;
146 }
147 IPatternMatch otherSig = (IPatternMatch) obj;
148 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
149 }
150 }
151
152 @Override
153 public VLSUnaryNegation specification() {
154 return VLSUnaryNegation.instance();
155 }
156
157 /**
158 * Returns an empty, mutable match.
159 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
160 *
161 * @return the empty match.
162 *
163 */
164 public static VLSUnaryNegation.Match newEmptyMatch() {
165 return new Mutable(null);
166 }
167
168 /**
169 * Returns a mutable (partial) match.
170 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
171 *
172 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
173 * @return the new, mutable (partial) match object.
174 *
175 */
176 public static VLSUnaryNegation.Match newMutableMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation pTerm) {
177 return new Mutable(pTerm);
178 }
179
180 /**
181 * Returns a new (partial) match.
182 * This can be used e.g. to call the matcher with a partial match.
183 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
184 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
185 * @return the (partial) match object.
186 *
187 */
188 public static VLSUnaryNegation.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation pTerm) {
189 return new Immutable(pTerm);
190 }
191
192 private static final class Mutable extends VLSUnaryNegation.Match {
193 Mutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation pTerm) {
194 super(pTerm);
195 }
196
197 @Override
198 public boolean isMutable() {
199 return true;
200 }
201 }
202
203 private static final class Immutable extends VLSUnaryNegation.Match {
204 Immutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation pTerm) {
205 super(pTerm);
206 }
207
208 @Override
209 public boolean isMutable() {
210 return false;
211 }
212 }
213 }
214
215 /**
216 * Generated pattern matcher API of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUnaryNegation pattern,
217 * providing pattern-specific query methods.
218 *
219 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
220 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
221 *
222 * <p>Matches of the pattern will be represented as {@link Match}.
223 *
224 * <p>Original source:
225 * <code><pre>
226 * pattern VLSUnaryNegation(term: VLSUnaryNegation){
227 * VLSUnaryNegation(term);
228 * }
229 * </pre></code>
230 *
231 * @see Match
232 * @see VLSUnaryNegation
233 *
234 */
235 public static class Matcher extends BaseMatcher<VLSUnaryNegation.Match> {
236 /**
237 * Initializes the pattern matcher within an existing VIATRA Query engine.
238 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
239 *
240 * @param engine the existing VIATRA Query engine in which this matcher will be created.
241 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
242 *
243 */
244 public static VLSUnaryNegation.Matcher on(final ViatraQueryEngine engine) {
245 // check if matcher already exists
246 Matcher matcher = engine.getExistingMatcher(querySpecification());
247 if (matcher == null) {
248 matcher = (Matcher)engine.getMatcher(querySpecification());
249 }
250 return matcher;
251 }
252
253 /**
254 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
255 * @return an initialized matcher
256 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
257 *
258 */
259 public static VLSUnaryNegation.Matcher create() {
260 return new Matcher();
261 }
262
263 private final static int POSITION_TERM = 0;
264
265 private final static Logger LOGGER = ViatraQueryLoggingUtil.getLogger(VLSUnaryNegation.Matcher.class);
266
267 /**
268 * Initializes the pattern matcher within an existing VIATRA Query engine.
269 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
270 *
271 * @param engine the existing VIATRA Query engine in which this matcher will be created.
272 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
273 *
274 */
275 private Matcher() {
276 super(querySpecification());
277 }
278
279 /**
280 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
281 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
282 * @return matches represented as a Match object.
283 *
284 */
285 public Collection<VLSUnaryNegation.Match> getAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation pTerm) {
286 return rawStreamAllMatches(new Object[]{pTerm}).collect(Collectors.toSet());
287 }
288
289 /**
290 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
291 * </p>
292 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
293 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
294 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
295 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
296 * @return a stream of matches represented as a Match object.
297 *
298 */
299 public Stream<VLSUnaryNegation.Match> streamAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation pTerm) {
300 return rawStreamAllMatches(new Object[]{pTerm});
301 }
302
303 /**
304 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
305 * Neither determinism nor randomness of selection is guaranteed.
306 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
307 * @return a match represented as a Match object, or null if no match is found.
308 *
309 */
310 public Optional<VLSUnaryNegation.Match> getOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation pTerm) {
311 return rawGetOneArbitraryMatch(new Object[]{pTerm});
312 }
313
314 /**
315 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
316 * under any possible substitution of the unspecified parameters (if any).
317 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
318 * @return true if the input is a valid (partial) match of the pattern.
319 *
320 */
321 public boolean hasMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation pTerm) {
322 return rawHasMatch(new Object[]{pTerm});
323 }
324
325 /**
326 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
327 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
328 * @return the number of pattern matches found.
329 *
330 */
331 public int countMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation pTerm) {
332 return rawCountMatches(new Object[]{pTerm});
333 }
334
335 /**
336 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
337 * Neither determinism nor randomness of selection is guaranteed.
338 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
339 * @param processor the action that will process the selected match.
340 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
341 *
342 */
343 public boolean forOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation pTerm, final Consumer<? super VLSUnaryNegation.Match> processor) {
344 return rawForOneArbitraryMatch(new Object[]{pTerm}, processor);
345 }
346
347 /**
348 * Returns a new (partial) match.
349 * This can be used e.g. to call the matcher with a partial match.
350 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
351 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
352 * @return the (partial) match object.
353 *
354 */
355 public VLSUnaryNegation.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation pTerm) {
356 return VLSUnaryNegation.Match.newMatch(pTerm);
357 }
358
359 /**
360 * Retrieve the set of values that occur in matches for term.
361 * @return the Set of all values or empty set if there are no matches
362 *
363 */
364 protected Stream<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation> rawStreamAllValuesOfterm(final Object[] parameters) {
365 return rawStreamAllValues(POSITION_TERM, parameters).map(ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation.class::cast);
366 }
367
368 /**
369 * Retrieve the set of values that occur in matches for term.
370 * @return the Set of all values or empty set if there are no matches
371 *
372 */
373 public Set<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation> getAllValuesOfterm() {
374 return rawStreamAllValuesOfterm(emptyArray()).collect(Collectors.toSet());
375 }
376
377 /**
378 * Retrieve the set of values that occur in matches for term.
379 * @return the Set of all values or empty set if there are no matches
380 *
381 */
382 public Stream<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation> streamAllValuesOfterm() {
383 return rawStreamAllValuesOfterm(emptyArray());
384 }
385
386 @Override
387 protected VLSUnaryNegation.Match tupleToMatch(final Tuple t) {
388 try {
389 return VLSUnaryNegation.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation) t.get(POSITION_TERM));
390 } catch(ClassCastException e) {
391 LOGGER.error("Element(s) in tuple not properly typed!",e);
392 return null;
393 }
394 }
395
396 @Override
397 protected VLSUnaryNegation.Match arrayToMatch(final Object[] match) {
398 try {
399 return VLSUnaryNegation.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation) match[POSITION_TERM]);
400 } catch(ClassCastException e) {
401 LOGGER.error("Element(s) in array not properly typed!",e);
402 return null;
403 }
404 }
405
406 @Override
407 protected VLSUnaryNegation.Match arrayToMatchMutable(final Object[] match) {
408 try {
409 return VLSUnaryNegation.Match.newMutableMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation) match[POSITION_TERM]);
410 } catch(ClassCastException e) {
411 LOGGER.error("Element(s) in array not properly typed!",e);
412 return null;
413 }
414 }
415
416 /**
417 * @return the singleton instance of the query specification of this pattern
418 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
419 *
420 */
421 public static IQuerySpecification<VLSUnaryNegation.Matcher> querySpecification() {
422 return VLSUnaryNegation.instance();
423 }
424 }
425
426 private VLSUnaryNegation() {
427 super(GeneratedPQuery.INSTANCE);
428 }
429
430 /**
431 * @return the singleton instance of the query specification
432 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
433 *
434 */
435 public static VLSUnaryNegation instance() {
436 try{
437 return LazyHolder.INSTANCE;
438 } catch (ExceptionInInitializerError err) {
439 throw processInitializerError(err);
440 }
441 }
442
443 @Override
444 protected VLSUnaryNegation.Matcher instantiate(final ViatraQueryEngine engine) {
445 return VLSUnaryNegation.Matcher.on(engine);
446 }
447
448 @Override
449 public VLSUnaryNegation.Matcher instantiate() {
450 return VLSUnaryNegation.Matcher.create();
451 }
452
453 @Override
454 public VLSUnaryNegation.Match newEmptyMatch() {
455 return VLSUnaryNegation.Match.newEmptyMatch();
456 }
457
458 @Override
459 public VLSUnaryNegation.Match newMatch(final Object... parameters) {
460 return VLSUnaryNegation.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation) parameters[0]);
461 }
462
463 /**
464 * Inner class allowing the singleton instance of {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUnaryNegation (visibility: PUBLIC, simpleName: VLSUnaryNegation, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUnaryNegation, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
465 * <b>not</b> at the class load time of the outer class,
466 * but rather at the first call to {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUnaryNegation (visibility: PUBLIC, simpleName: VLSUnaryNegation, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUnaryNegation, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
467 *
468 * <p> This workaround is required e.g. to support recursion.
469 *
470 */
471 private static class LazyHolder {
472 private final static VLSUnaryNegation INSTANCE = new VLSUnaryNegation();
473
474 /**
475 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
476 * This initialization order is required to support indirect recursion.
477 *
478 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
479 *
480 */
481 private final static Object STATIC_INITIALIZER = ensureInitialized();
482
483 public static Object ensureInitialized() {
484 INSTANCE.ensureInitializedInternal();
485 return null;
486 }
487 }
488
489 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
490 private final static VLSUnaryNegation.GeneratedPQuery INSTANCE = new GeneratedPQuery();
491
492 private final PParameter parameter_term = new PParameter("term", "ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSUnaryNegation")), PParameterDirection.INOUT);
493
494 private final List<PParameter> parameters = Arrays.asList(parameter_term);
495
496 private GeneratedPQuery() {
497 super(PVisibility.PUBLIC);
498 }
499
500 @Override
501 public String getFullyQualifiedName() {
502 return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUnaryNegation";
503 }
504
505 @Override
506 public List<String> getParameterNames() {
507 return Arrays.asList("term");
508 }
509
510 @Override
511 public List<PParameter> getParameters() {
512 return parameters;
513 }
514
515 @Override
516 public Set<PBody> doGetContainedBodies() {
517 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
518 Set<PBody> bodies = new LinkedHashSet<>();
519 {
520 PBody body = new PBody(this);
521 PVariable var_term = body.getOrCreateVariableByName("term");
522 new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSUnaryNegation")));
523 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
524 new ExportedParameter(body, var_term, parameter_term)
525 ));
526 // VLSUnaryNegation(term)
527 new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSUnaryNegation")));
528 bodies.add(body);
529 }
530 return bodies;
531 }
532 }
533}
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSUniversalQuantifier.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSUniversalQuantifier.java
deleted file mode 100644
index 0dab9771..00000000
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VLSUniversalQuantifier.java
+++ /dev/null
@@ -1,533 +0,0 @@
1/**
2 * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql
3 */
4package ca.mcgill.ecse.dslreasoner.vampire.queries;
5
6import java.util.Arrays;
7import java.util.Collection;
8import java.util.LinkedHashSet;
9import java.util.List;
10import java.util.Objects;
11import java.util.Optional;
12import java.util.Set;
13import java.util.function.Consumer;
14import java.util.stream.Collectors;
15import java.util.stream.Stream;
16import org.apache.log4j.Logger;
17import org.eclipse.emf.ecore.EClass;
18import org.eclipse.viatra.query.runtime.api.IPatternMatch;
19import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
20import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
21import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
22import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
23import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
24import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
25import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
26import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
27import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
28import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
29import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
30import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
31import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
32import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
33import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
34import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
35import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
36import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
37
38/**
39 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
40 *
41 * <p>Original source:
42 * <code><pre>
43 * pattern VLSUniversalQuantifier(term: VLSUniversalQuantifier){
44 * VLSUniversalQuantifier(term);
45 * }
46 * </pre></code>
47 *
48 * @see Matcher
49 * @see Match
50 *
51 */
52@SuppressWarnings("all")
53public final class VLSUniversalQuantifier extends BaseGeneratedEMFQuerySpecification<VLSUniversalQuantifier.Matcher> {
54 /**
55 * Pattern-specific match representation of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUniversalQuantifier pattern,
56 * to be used in conjunction with {@link Matcher}.
57 *
58 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
59 * Each instance is a (possibly partial) substitution of pattern parameters,
60 * usable to represent a match of the pattern in the result of a query,
61 * or to specify the bound (fixed) input parameters when issuing a query.
62 *
63 * @see Matcher
64 *
65 */
66 public static abstract class Match extends BasePatternMatch {
67 private ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier fTerm;
68
69 private static List<String> parameterNames = makeImmutableList("term");
70
71 private Match(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier pTerm) {
72 this.fTerm = pTerm;
73 }
74
75 @Override
76 public Object get(final String parameterName) {
77 if ("term".equals(parameterName)) return this.fTerm;
78 return null;
79 }
80
81 public ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier getTerm() {
82 return this.fTerm;
83 }
84
85 @Override
86 public boolean set(final String parameterName, final Object newValue) {
87 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
88 if ("term".equals(parameterName) ) {
89 this.fTerm = (ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier) newValue;
90 return true;
91 }
92 return false;
93 }
94
95 public void setTerm(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier pTerm) {
96 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
97 this.fTerm = pTerm;
98 }
99
100 @Override
101 public String patternName() {
102 return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUniversalQuantifier";
103 }
104
105 @Override
106 public List<String> parameterNames() {
107 return VLSUniversalQuantifier.Match.parameterNames;
108 }
109
110 @Override
111 public Object[] toArray() {
112 return new Object[]{fTerm};
113 }
114
115 @Override
116 public VLSUniversalQuantifier.Match toImmutable() {
117 return isMutable() ? newMatch(fTerm) : this;
118 }
119
120 @Override
121 public String prettyPrint() {
122 StringBuilder result = new StringBuilder();
123 result.append("\"term\"=" + prettyPrintValue(fTerm));
124 return result.toString();
125 }
126
127 @Override
128 public int hashCode() {
129 return Objects.hash(fTerm);
130 }
131
132 @Override
133 public boolean equals(final Object obj) {
134 if (this == obj)
135 return true;
136 if (obj == null) {
137 return false;
138 }
139 if ((obj instanceof VLSUniversalQuantifier.Match)) {
140 VLSUniversalQuantifier.Match other = (VLSUniversalQuantifier.Match) obj;
141 return Objects.equals(fTerm, other.fTerm);
142 } else {
143 // this should be infrequent
144 if (!(obj instanceof IPatternMatch)) {
145 return false;
146 }
147 IPatternMatch otherSig = (IPatternMatch) obj;
148 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
149 }
150 }
151
152 @Override
153 public VLSUniversalQuantifier specification() {
154 return VLSUniversalQuantifier.instance();
155 }
156
157 /**
158 * Returns an empty, mutable match.
159 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
160 *
161 * @return the empty match.
162 *
163 */
164 public static VLSUniversalQuantifier.Match newEmptyMatch() {
165 return new Mutable(null);
166 }
167
168 /**
169 * Returns a mutable (partial) match.
170 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
171 *
172 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
173 * @return the new, mutable (partial) match object.
174 *
175 */
176 public static VLSUniversalQuantifier.Match newMutableMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier pTerm) {
177 return new Mutable(pTerm);
178 }
179
180 /**
181 * Returns a new (partial) match.
182 * This can be used e.g. to call the matcher with a partial match.
183 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
184 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
185 * @return the (partial) match object.
186 *
187 */
188 public static VLSUniversalQuantifier.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier pTerm) {
189 return new Immutable(pTerm);
190 }
191
192 private static final class Mutable extends VLSUniversalQuantifier.Match {
193 Mutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier pTerm) {
194 super(pTerm);
195 }
196
197 @Override
198 public boolean isMutable() {
199 return true;
200 }
201 }
202
203 private static final class Immutable extends VLSUniversalQuantifier.Match {
204 Immutable(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier pTerm) {
205 super(pTerm);
206 }
207
208 @Override
209 public boolean isMutable() {
210 return false;
211 }
212 }
213 }
214
215 /**
216 * Generated pattern matcher API of the ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUniversalQuantifier pattern,
217 * providing pattern-specific query methods.
218 *
219 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
220 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
221 *
222 * <p>Matches of the pattern will be represented as {@link Match}.
223 *
224 * <p>Original source:
225 * <code><pre>
226 * pattern VLSUniversalQuantifier(term: VLSUniversalQuantifier){
227 * VLSUniversalQuantifier(term);
228 * }
229 * </pre></code>
230 *
231 * @see Match
232 * @see VLSUniversalQuantifier
233 *
234 */
235 public static class Matcher extends BaseMatcher<VLSUniversalQuantifier.Match> {
236 /**
237 * Initializes the pattern matcher within an existing VIATRA Query engine.
238 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
239 *
240 * @param engine the existing VIATRA Query engine in which this matcher will be created.
241 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
242 *
243 */
244 public static VLSUniversalQuantifier.Matcher on(final ViatraQueryEngine engine) {
245 // check if matcher already exists
246 Matcher matcher = engine.getExistingMatcher(querySpecification());
247 if (matcher == null) {
248 matcher = (Matcher)engine.getMatcher(querySpecification());
249 }
250 return matcher;
251 }
252
253 /**
254 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
255 * @return an initialized matcher
256 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
257 *
258 */
259 public static VLSUniversalQuantifier.Matcher create() {
260 return new Matcher();
261 }
262
263 private final static int POSITION_TERM = 0;
264
265 private final static Logger LOGGER = ViatraQueryLoggingUtil.getLogger(VLSUniversalQuantifier.Matcher.class);
266
267 /**
268 * Initializes the pattern matcher within an existing VIATRA Query engine.
269 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
270 *
271 * @param engine the existing VIATRA Query engine in which this matcher will be created.
272 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
273 *
274 */
275 private Matcher() {
276 super(querySpecification());
277 }
278
279 /**
280 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
281 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
282 * @return matches represented as a Match object.
283 *
284 */
285 public Collection<VLSUniversalQuantifier.Match> getAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier pTerm) {
286 return rawStreamAllMatches(new Object[]{pTerm}).collect(Collectors.toSet());
287 }
288
289 /**
290 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
291 * </p>
292 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
293 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
294 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
295 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
296 * @return a stream of matches represented as a Match object.
297 *
298 */
299 public Stream<VLSUniversalQuantifier.Match> streamAllMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier pTerm) {
300 return rawStreamAllMatches(new Object[]{pTerm});
301 }
302
303 /**
304 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
305 * Neither determinism nor randomness of selection is guaranteed.
306 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
307 * @return a match represented as a Match object, or null if no match is found.
308 *
309 */
310 public Optional<VLSUniversalQuantifier.Match> getOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier pTerm) {
311 return rawGetOneArbitraryMatch(new Object[]{pTerm});
312 }
313
314 /**
315 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
316 * under any possible substitution of the unspecified parameters (if any).
317 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
318 * @return true if the input is a valid (partial) match of the pattern.
319 *
320 */
321 public boolean hasMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier pTerm) {
322 return rawHasMatch(new Object[]{pTerm});
323 }
324
325 /**
326 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
327 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
328 * @return the number of pattern matches found.
329 *
330 */
331 public int countMatches(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier pTerm) {
332 return rawCountMatches(new Object[]{pTerm});
333 }
334
335 /**
336 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
337 * Neither determinism nor randomness of selection is guaranteed.
338 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
339 * @param processor the action that will process the selected match.
340 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
341 *
342 */
343 public boolean forOneArbitraryMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier pTerm, final Consumer<? super VLSUniversalQuantifier.Match> processor) {
344 return rawForOneArbitraryMatch(new Object[]{pTerm}, processor);
345 }
346
347 /**
348 * Returns a new (partial) match.
349 * This can be used e.g. to call the matcher with a partial match.
350 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
351 * @param pTerm the fixed value of pattern parameter term, or null if not bound.
352 * @return the (partial) match object.
353 *
354 */
355 public VLSUniversalQuantifier.Match newMatch(final ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier pTerm) {
356 return VLSUniversalQuantifier.Match.newMatch(pTerm);
357 }
358
359 /**
360 * Retrieve the set of values that occur in matches for term.
361 * @return the Set of all values or empty set if there are no matches
362 *
363 */
364 protected Stream<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier> rawStreamAllValuesOfterm(final Object[] parameters) {
365 return rawStreamAllValues(POSITION_TERM, parameters).map(ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier.class::cast);
366 }
367
368 /**
369 * Retrieve the set of values that occur in matches for term.
370 * @return the Set of all values or empty set if there are no matches
371 *
372 */
373 public Set<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier> getAllValuesOfterm() {
374 return rawStreamAllValuesOfterm(emptyArray()).collect(Collectors.toSet());
375 }
376
377 /**
378 * Retrieve the set of values that occur in matches for term.
379 * @return the Set of all values or empty set if there are no matches
380 *
381 */
382 public Stream<ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier> streamAllValuesOfterm() {
383 return rawStreamAllValuesOfterm(emptyArray());
384 }
385
386 @Override
387 protected VLSUniversalQuantifier.Match tupleToMatch(final Tuple t) {
388 try {
389 return VLSUniversalQuantifier.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier) t.get(POSITION_TERM));
390 } catch(ClassCastException e) {
391 LOGGER.error("Element(s) in tuple not properly typed!",e);
392 return null;
393 }
394 }
395
396 @Override
397 protected VLSUniversalQuantifier.Match arrayToMatch(final Object[] match) {
398 try {
399 return VLSUniversalQuantifier.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier) match[POSITION_TERM]);
400 } catch(ClassCastException e) {
401 LOGGER.error("Element(s) in array not properly typed!",e);
402 return null;
403 }
404 }
405
406 @Override
407 protected VLSUniversalQuantifier.Match arrayToMatchMutable(final Object[] match) {
408 try {
409 return VLSUniversalQuantifier.Match.newMutableMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier) match[POSITION_TERM]);
410 } catch(ClassCastException e) {
411 LOGGER.error("Element(s) in array not properly typed!",e);
412 return null;
413 }
414 }
415
416 /**
417 * @return the singleton instance of the query specification of this pattern
418 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
419 *
420 */
421 public static IQuerySpecification<VLSUniversalQuantifier.Matcher> querySpecification() {
422 return VLSUniversalQuantifier.instance();
423 }
424 }
425
426 private VLSUniversalQuantifier() {
427 super(GeneratedPQuery.INSTANCE);
428 }
429
430 /**
431 * @return the singleton instance of the query specification
432 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
433 *
434 */
435 public static VLSUniversalQuantifier instance() {
436 try{
437 return LazyHolder.INSTANCE;
438 } catch (ExceptionInInitializerError err) {
439 throw processInitializerError(err);
440 }
441 }
442
443 @Override
444 protected VLSUniversalQuantifier.Matcher instantiate(final ViatraQueryEngine engine) {
445 return VLSUniversalQuantifier.Matcher.on(engine);
446 }
447
448 @Override
449 public VLSUniversalQuantifier.Matcher instantiate() {
450 return VLSUniversalQuantifier.Matcher.create();
451 }
452
453 @Override
454 public VLSUniversalQuantifier.Match newEmptyMatch() {
455 return VLSUniversalQuantifier.Match.newEmptyMatch();
456 }
457
458 @Override
459 public VLSUniversalQuantifier.Match newMatch(final Object... parameters) {
460 return VLSUniversalQuantifier.Match.newMatch((ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier) parameters[0]);
461 }
462
463 /**
464 * Inner class allowing the singleton instance of {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUniversalQuantifier (visibility: PUBLIC, simpleName: VLSUniversalQuantifier, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUniversalQuantifier, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
465 * <b>not</b> at the class load time of the outer class,
466 * but rather at the first call to {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUniversalQuantifier (visibility: PUBLIC, simpleName: VLSUniversalQuantifier, identifier: ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUniversalQuantifier, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.vampire.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
467 *
468 * <p> This workaround is required e.g. to support recursion.
469 *
470 */
471 private static class LazyHolder {
472 private final static VLSUniversalQuantifier INSTANCE = new VLSUniversalQuantifier();
473
474 /**
475 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
476 * This initialization order is required to support indirect recursion.
477 *
478 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
479 *
480 */
481 private final static Object STATIC_INITIALIZER = ensureInitialized();
482
483 public static Object ensureInitialized() {
484 INSTANCE.ensureInitializedInternal();
485 return null;
486 }
487 }
488
489 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
490 private final static VLSUniversalQuantifier.GeneratedPQuery INSTANCE = new GeneratedPQuery();
491
492 private final PParameter parameter_term = new PParameter("term", "ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSUniversalQuantifier")), PParameterDirection.INOUT);
493
494 private final List<PParameter> parameters = Arrays.asList(parameter_term);
495
496 private GeneratedPQuery() {
497 super(PVisibility.PUBLIC);
498 }
499
500 @Override
501 public String getFullyQualifiedName() {
502 return "ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUniversalQuantifier";
503 }
504
505 @Override
506 public List<String> getParameterNames() {
507 return Arrays.asList("term");
508 }
509
510 @Override
511 public List<PParameter> getParameters() {
512 return parameters;
513 }
514
515 @Override
516 public Set<PBody> doGetContainedBodies() {
517 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
518 Set<PBody> bodies = new LinkedHashSet<>();
519 {
520 PBody body = new PBody(this);
521 PVariable var_term = body.getOrCreateVariableByName("term");
522 new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSUniversalQuantifier")));
523 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
524 new ExportedParameter(body, var_term, parameter_term)
525 ));
526 // VLSUniversalQuantifier(term)
527 new TypeConstraint(body, Tuples.flatTupleOf(var_term), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.mcgill.ca/ecse/dslreasoner/VampireLanguage", "VLSUniversalQuantifier")));
528 bodies.add(body);
529 }
530 return bodies;
531 }
532 }
533}
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VampireQueries.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VampireQueries.java
deleted file mode 100644
index e3518cd6..00000000
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.queries/src-gen/ca/mcgill/ecse/dslreasoner/vampire/queries/VampireQueries.java
+++ /dev/null
@@ -1,174 +0,0 @@
1/**
2 * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.vampire.queries/src/ca/mcgill/ecse/dslreasoner/vampire/queries/vampireQueries.vql
3 */
4package ca.mcgill.ecse.dslreasoner.vampire.queries;
5
6import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnd;
7import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnnotation;
8import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSComment;
9import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSEquivalent;
10import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSExistentialQuantifier;
11import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFofFormula;
12import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunction;
13import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunctionFof;
14import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSInequality;
15import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSOr;
16import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUnaryNegation;
17import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUniversalQuantifier;
18import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
19import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedPatternGroup;
20
21/**
22 * A pattern group formed of all public patterns defined in vampireQueries.vql.
23 *
24 * <p>Use the static instance as any {@link interface org.eclipse.viatra.query.runtime.api.IQueryGroup}, to conveniently prepare
25 * a VIATRA Query engine for matching all patterns originally defined in file vampireQueries.vql,
26 * in order to achieve better performance than one-by-one on-demand matcher initialization.
27 *
28 * <p> From package ca.mcgill.ecse.dslreasoner.vampire.queries, the group contains the definition of the following patterns: <ul>
29 * <li>VLSComment</li>
30 * <li>VLSFofFormula</li>
31 * <li>VLSAnnotation</li>
32 * <li>VLSOr</li>
33 * <li>VLSAnd</li>
34 * <li>VLSEquivalent</li>
35 * <li>VLSFunction</li>
36 * <li>VLSExistentialQuantifier</li>
37 * <li>VLSUniversalQuantifier</li>
38 * <li>VLSUnaryNegation</li>
39 * <li>VLSInequality</li>
40 * <li>VLSFunctionFof</li>
41 * </ul>
42 *
43 * @see IQueryGroup
44 *
45 */
46@SuppressWarnings("all")
47public final class VampireQueries extends BaseGeneratedPatternGroup {
48 /**
49 * Access the pattern group.
50 *
51 * @return the singleton instance of the group
52 * @throws ViatraQueryRuntimeException if there was an error loading the generated code of pattern specifications
53 *
54 */
55 public static VampireQueries instance() {
56 if (INSTANCE == null) {
57 INSTANCE = new VampireQueries();
58 }
59 return INSTANCE;
60 }
61
62 private static VampireQueries INSTANCE;
63
64 private VampireQueries() {
65 querySpecifications.add(VLSComment.instance());
66 querySpecifications.add(VLSFofFormula.instance());
67 querySpecifications.add(VLSAnnotation.instance());
68 querySpecifications.add(VLSOr.instance());
69 querySpecifications.add(VLSAnd.instance());
70 querySpecifications.add(VLSEquivalent.instance());
71 querySpecifications.add(VLSFunction.instance());
72 querySpecifications.add(VLSExistentialQuantifier.instance());
73 querySpecifications.add(VLSUniversalQuantifier.instance());
74 querySpecifications.add(VLSUnaryNegation.instance());
75 querySpecifications.add(VLSInequality.instance());
76 querySpecifications.add(VLSFunctionFof.instance());
77 }
78
79 public VLSComment getVLSComment() {
80 return VLSComment.instance();
81 }
82
83 public VLSComment.Matcher getVLSComment(final ViatraQueryEngine engine) {
84 return VLSComment.Matcher.on(engine);
85 }
86
87 public VLSFofFormula getVLSFofFormula() {
88 return VLSFofFormula.instance();
89 }
90
91 public VLSFofFormula.Matcher getVLSFofFormula(final ViatraQueryEngine engine) {
92 return VLSFofFormula.Matcher.on(engine);
93 }
94
95 public VLSAnnotation getVLSAnnotation() {
96 return VLSAnnotation.instance();
97 }
98
99 public VLSAnnotation.Matcher getVLSAnnotation(final ViatraQueryEngine engine) {
100 return VLSAnnotation.Matcher.on(engine);
101 }
102
103 public VLSOr getVLSOr() {
104 return VLSOr.instance();
105 }
106
107 public VLSOr.Matcher getVLSOr(final ViatraQueryEngine engine) {
108 return VLSOr.Matcher.on(engine);
109 }
110
111 public VLSAnd getVLSAnd() {
112 return VLSAnd.instance();
113 }
114
115 public VLSAnd.Matcher getVLSAnd(final ViatraQueryEngine engine) {
116 return VLSAnd.Matcher.on(engine);
117 }
118
119 public VLSEquivalent getVLSEquivalent() {
120 return VLSEquivalent.instance();
121 }
122
123 public VLSEquivalent.Matcher getVLSEquivalent(final ViatraQueryEngine engine) {
124 return VLSEquivalent.Matcher.on(engine);
125 }
126
127 public VLSFunction getVLSFunction() {
128 return VLSFunction.instance();
129 }
130
131 public VLSFunction.Matcher getVLSFunction(final ViatraQueryEngine engine) {
132 return VLSFunction.Matcher.on(engine);
133 }
134
135 public VLSExistentialQuantifier getVLSExistentialQuantifier() {
136 return VLSExistentialQuantifier.instance();
137 }
138
139 public VLSExistentialQuantifier.Matcher getVLSExistentialQuantifier(final ViatraQueryEngine engine) {
140 return VLSExistentialQuantifier.Matcher.on(engine);
141 }
142
143 public VLSUniversalQuantifier getVLSUniversalQuantifier() {
144 return VLSUniversalQuantifier.instance();
145 }
146
147 public VLSUniversalQuantifier.Matcher getVLSUniversalQuantifier(final ViatraQueryEngine engine) {
148 return VLSUniversalQuantifier.Matcher.on(engine);
149 }
150
151 public VLSUnaryNegation getVLSUnaryNegation() {
152 return VLSUnaryNegation.instance();
153 }
154
155 public VLSUnaryNegation.Matcher getVLSUnaryNegation(final ViatraQueryEngine engine) {
156 return VLSUnaryNegation.Matcher.on(engine);
157 }
158
159 public VLSInequality getVLSInequality() {
160 return VLSInequality.instance();
161 }
162
163 public VLSInequality.Matcher getVLSInequality(final ViatraQueryEngine engine) {
164 return VLSInequality.Matcher.on(engine);
165 }
166
167 public VLSFunctionFof getVLSFunctionFof() {
168 return VLSFunctionFof.instance();
169 }
170
171 public VLSFunctionFof.Matcher getVLSFunctionFof(final ViatraQueryEngine engine) {
172 return VLSFunctionFof.Matcher.on(engine);
173 }
174}
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/.gitignore b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/.gitignore
index ae3c1726..8d2cfe73 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/.gitignore
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/.gitignore
@@ -1 +1,3 @@
1/bin/ 1/bin/
2/src-gen/
3/xtend-gen/
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 0820f47d..ff5a192e 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
@@ -81,6 +81,14 @@ class Logic2VampireLanguageMapper_ContainmentMapper {
81 val fromType = (l.parameters.get(0) as ComplexTypeReference).referred as Type 81 val fromType = (l.parameters.get(0) as ComplexTypeReference).referred as Type
82 val toType = (l.parameters.get(1) as ComplexTypeReference).referred as Type 82 val toType = (l.parameters.get(1) as ComplexTypeReference).referred as Type
83 83
84 val listForAnd = newArrayList
85// listForAnd.add(support.duplicate(fromType.lookup(trace.type2Predicate), varB))
86 listForAnd.add(support.duplicate((l as RelationDeclaration).lookup(trace.rel2Predicate), varList))
87// listForAnd.add(createVLSInequality => [
88// it.left = support.duplicate(varA)
89// it.right = support.duplicate(varB)
90// ])
91
84 val relFormula = createVLSFofFormula => [ 92 val relFormula = createVLSFofFormula => [
85 it.name = support.toIDMultiple("containment", relName) 93 it.name = support.toIDMultiple("containment", relName)
86 it.fofRole = "axiom" 94 it.fofRole = "axiom"
@@ -91,11 +99,7 @@ class Logic2VampireLanguageMapper_ContainmentMapper {
91 it.left = support.duplicate(toType.lookup(trace.type2Predicate), varA) 99 it.left = support.duplicate(toType.lookup(trace.type2Predicate), varA)
92 it.right = createVLSExistentialQuantifier => [ 100 it.right = createVLSExistentialQuantifier => [
93 it.variables += support.duplicate(varB) 101 it.variables += support.duplicate(varB)
94 it.operand = createVLSAnd => [ 102 it.operand = support.unfoldAnd(listForAnd)
95 it.left = support.duplicate(fromType.lookup(trace.type2Predicate), varB)
96 it.right = support.duplicate((l as RelationDeclaration).lookup(trace.rel2Predicate),
97 varList)
98 ]
99 ] 103 ]
100 104
101 createVLSEquality => [ 105 createVLSEquality => [
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.xtend
deleted file mode 100644
index aba47edb..00000000
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.xtend
+++ /dev/null
@@ -1,18 +0,0 @@
1package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder
2
3import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction
4import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm
5import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement
6import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type
7import java.util.HashMap
8import java.util.Map
9
10class Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes implements Logic2VampireLanguageMapper_TypeMapperTrace{
11
12// public var VLSFofFormula objectSuperClass
13 public val Map<Type, VLSFunction> type2Predicate = new HashMap;
14 public val Map<DefinedElement, VLSFunction> element2Predicate = new HashMap
15 public val Map<Type, VLSTerm> type2PossibleNot = new HashMap
16 public val Map<Type, VLSTerm> type2And = new HashMap
17
18} \ No newline at end of file
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 b86e8068..be554f99 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 8e50f399..0ee9b884 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 99ba52b8..8e96ba14 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 0210a300..ee720e29 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 7b01a284..528da797 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 9f455fdd..a1204329 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 0b91349d..3413fc3f 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 07e249ce..a53a998a 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 115249ba..f265f6a3 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 2e86d0c7..efde8350 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/.Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.xtendbin
deleted file mode 100644
index e870dabc..00000000
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.xtendbin
+++ /dev/null
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_FilteredTypes.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtendbin
deleted file mode 100644
index ed198ef6..00000000
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtendbin
+++ /dev/null
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 cf8e4acd..2cabecc8 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 07d5b7b4..57844580 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 983108a2..24898f59 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 4442cdea..a9589e7e 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 da0e5615..8c0ae38d 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
@@ -3,7 +3,6 @@ package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder;
3import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper; 3import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper;
4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapperTrace; 4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapperTrace;
5import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper_Support; 5import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper_Support;
6import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd;
7import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSConstant; 6import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSConstant;
8import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquality; 7import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquality;
9import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent; 8import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent;
@@ -118,6 +117,8 @@ public class Logic2VampireLanguageMapper_ContainmentMapper {
118 TypeReference _get_1 = l_1.getParameters().get(1); 117 TypeReference _get_1 = l_1.getParameters().get(1);
119 Type _referred_1 = ((ComplexTypeReference) _get_1).getReferred(); 118 Type _referred_1 = ((ComplexTypeReference) _get_1).getReferred();
120 final Type toType = ((Type) _referred_1); 119 final Type toType = ((Type) _referred_1);
120 final ArrayList<VLSFunction> listForAnd = CollectionLiterals.<VLSFunction>newArrayList();
121 listForAnd.add(this.support.duplicate(CollectionsUtil.<RelationDeclaration, VLSFunction>lookup(((RelationDeclaration) l_1), trace.rel2Predicate), varList));
121 VLSFofFormula _createVLSFofFormula_1 = this.factory.createVLSFofFormula(); 122 VLSFofFormula _createVLSFofFormula_1 = this.factory.createVLSFofFormula();
122 final Procedure1<VLSFofFormula> _function_3 = (VLSFofFormula it) -> { 123 final Procedure1<VLSFofFormula> _function_3 = (VLSFofFormula it) -> {
123 it.setName(this.support.toIDMultiple("containment", relName)); 124 it.setName(this.support.toIDMultiple("containment", relName));
@@ -135,13 +136,7 @@ public class Logic2VampireLanguageMapper_ContainmentMapper {
135 EList<VLSVariable> _variables_1 = it_3.getVariables(); 136 EList<VLSVariable> _variables_1 = it_3.getVariables();
136 VLSVariable _duplicate_1 = this.support.duplicate(varB); 137 VLSVariable _duplicate_1 = this.support.duplicate(varB);
137 _variables_1.add(_duplicate_1); 138 _variables_1.add(_duplicate_1);
138 VLSAnd _createVLSAnd = this.factory.createVLSAnd(); 139 it_3.setOperand(this.support.unfoldAnd(listForAnd));
139 final Procedure1<VLSAnd> _function_7 = (VLSAnd it_4) -> {
140 it_4.setLeft(this.support.duplicate(CollectionsUtil.<Type, VLSFunction>lookup(fromType, trace.type2Predicate), varB));
141 it_4.setRight(this.support.duplicate(CollectionsUtil.<RelationDeclaration, VLSFunction>lookup(((RelationDeclaration) l_1), trace.rel2Predicate), varList));
142 };
143 VLSAnd _doubleArrow = ObjectExtensions.<VLSAnd>operator_doubleArrow(_createVLSAnd, _function_7);
144 it_3.setOperand(_doubleArrow);
145 }; 140 };
146 VLSExistentialQuantifier _doubleArrow = ObjectExtensions.<VLSExistentialQuantifier>operator_doubleArrow(_createVLSExistentialQuantifier, _function_6); 141 VLSExistentialQuantifier _doubleArrow = ObjectExtensions.<VLSExistentialQuantifier>operator_doubleArrow(_createVLSExistentialQuantifier, _function_6);
147 it_2.setRight(_doubleArrow); 142 it_2.setRight(_doubleArrow);
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.java
deleted file mode 100644
index f7c6cb70..00000000
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.java
+++ /dev/null
@@ -1,20 +0,0 @@
1package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder;
2
3import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper_TypeMapperTrace;
4import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction;
5import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm;
6import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement;
7import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type;
8import java.util.HashMap;
9import java.util.Map;
10
11@SuppressWarnings("all")
12public class Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes implements Logic2VampireLanguageMapper_TypeMapperTrace {
13 public final Map<Type, VLSFunction> type2Predicate = new HashMap<Type, VLSFunction>();
14
15 public final Map<DefinedElement, VLSFunction> element2Predicate = new HashMap<DefinedElement, VLSFunction>();
16
17 public final Map<Type, VLSTerm> type2PossibleNot = new HashMap<Type, VLSTerm>();
18
19 public final Map<Type, VLSTerm> type2And = new HashMap<Type, VLSTerm>();
20}
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/metamodels/fam.aird b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/metamodels/fam.aird
new file mode 100644
index 00000000..75ed2fbb
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/metamodels/fam.aird
@@ -0,0 +1,633 @@
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="_WMDXMD6wEemlzLOTmNfcSQ" selectedViews="_W6M2oD6wEemlzLOTmNfcSQ _W6fKgD6wEemlzLOTmNfcSQ _W6kqED6wEemlzLOTmNfcSQ _W6l4MD6wEemlzLOTmNfcSQ" version="14.1.0.201810161215">
4 <semanticResources>fam.ecore</semanticResources>
5 <semanticResources>fam.genmodel</semanticResources>
6 <ownedViews xmi:type="viewpoint:DView" uid="_W6M2oD6wEemlzLOTmNfcSQ">
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="_Xa8zQT6wEemlzLOTmNfcSQ" name="fam class diagram" repPath="#_XZL4sD6wEemlzLOTmNfcSQ">
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="fam.ecore#/"/>
11 </ownedRepresentationDescriptors>
12 </ownedViews>
13 <ownedViews xmi:type="viewpoint:DView" uid="_W6fKgD6wEemlzLOTmNfcSQ">
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="_W6kqED6wEemlzLOTmNfcSQ">
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="_W6l4MD6wEemlzLOTmNfcSQ">
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="_XZL4sD6wEemlzLOTmNfcSQ" name="fam class diagram">
24 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_XazCQD6wEemlzLOTmNfcSQ" source="DANNOTATION_CUSTOMIZATION_KEY">
25 <data xmi:type="diagram:ComputedStyleDescriptionRegistry" uid="_XazCQT6wEemlzLOTmNfcSQ">
26 <computedStyleDescriptions xmi:type="style:BundledImageDescription" xmi:id="_YLs6yT6wEemlzLOTmNfcSQ" labelExpression="service:render" labelAlignment="LEFT" tooltipExpression="service:renderTooltip" sizeComputationExpression="1">
27 <borderColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
28 <labelFormat>bold</labelFormat>
29 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
30 <color xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
31 </computedStyleDescriptions>
32 <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_YL_1sT6wEemlzLOTmNfcSQ" routingStyle="manhattan">
33 <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/>
34 <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_YL_1sj6wEemlzLOTmNfcSQ" showIcon="false" labelExpression="service:render">
35 <labelFormat>bold</labelFormat>
36 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
37 </centerLabelStyleDescription>
38 <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_YL_1sz6wEemlzLOTmNfcSQ" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
39 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
40 </endLabelStyleDescription>
41 </computedStyleDescriptions>
42 <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_YMDgFz6wEemlzLOTmNfcSQ" sourceArrow="FillDiamond" routingStyle="manhattan">
43 <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
44 <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_YMDgGD6wEemlzLOTmNfcSQ" showIcon="false" labelExpression="service:render">
45 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
46 </centerLabelStyleDescription>
47 <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_YMDgGT6wEemlzLOTmNfcSQ" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
48 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
49 </endLabelStyleDescription>
50 </computedStyleDescriptions>
51 <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_YMNRJD6wEemlzLOTmNfcSQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan">
52 <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
53 <beginLabelStyleDescription xmi:type="style:BeginLabelStyleDescription" xmi:id="_YMNRJT6wEemlzLOTmNfcSQ" showIcon="false" labelExpression="service:renderEOpposite">
54 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
55 </beginLabelStyleDescription>
56 <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_YMNRJj6wEemlzLOTmNfcSQ" showIcon="false" labelExpression="service:render">
57 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
58 </endLabelStyleDescription>
59 </computedStyleDescriptions>
60 <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_YMNRNT6wEemlzLOTmNfcSQ" sourceArrow="FillDiamond" routingStyle="manhattan">
61 <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
62 <beginLabelStyleDescription xmi:type="style:BeginLabelStyleDescription" xmi:id="_YMNRNj6wEemlzLOTmNfcSQ" showIcon="false" labelExpression="service:renderEOpposite">
63 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
64 </beginLabelStyleDescription>
65 <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_YMNRNz6wEemlzLOTmNfcSQ" showIcon="false" labelExpression="service:render">
66 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
67 </endLabelStyleDescription>
68 </computedStyleDescriptions>
69 <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_YMNRTT6wEemlzLOTmNfcSQ" sourceArrow="InputArrow" routingStyle="manhattan">
70 <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
71 <beginLabelStyleDescription xmi:type="style:BeginLabelStyleDescription" xmi:id="_YMNRTj6wEemlzLOTmNfcSQ" showIcon="false" labelExpression="service:renderEOpposite">
72 <labelFormat>bold</labelFormat>
73 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
74 </beginLabelStyleDescription>
75 <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_YMNRTz6wEemlzLOTmNfcSQ" showIcon="false" labelExpression="service:render">
76 <labelFormat>bold</labelFormat>
77 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
78 </endLabelStyleDescription>
79 </computedStyleDescriptions>
80 </data>
81 </ownedAnnotationEntries>
82 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_XcDmgD6wEemlzLOTmNfcSQ" source="GMF_DIAGRAMS">
83 <data xmi:type="notation:Diagram" xmi:id="_XcDmgT6wEemlzLOTmNfcSQ" type="Sirius" element="_XZL4sD6wEemlzLOTmNfcSQ" measurementUnit="Pixel">
84 <children xmi:type="notation:Node" xmi:id="_YMXCEz6wEemlzLOTmNfcSQ" type="2003" element="_YLGd0D6wEemlzLOTmNfcSQ">
85 <children xmi:type="notation:Node" xmi:id="_YMXCFj6wEemlzLOTmNfcSQ" type="5007"/>
86 <children xmi:type="notation:Node" xmi:id="_YMgMAD6wEemlzLOTmNfcSQ" type="7004">
87 <styles xmi:type="notation:SortingStyle" xmi:id="_YMgMAT6wEemlzLOTmNfcSQ"/>
88 <styles xmi:type="notation:FilteringStyle" xmi:id="_YMgMAj6wEemlzLOTmNfcSQ"/>
89 </children>
90 <styles xmi:type="notation:ShapeStyle" xmi:id="_YMXCFD6wEemlzLOTmNfcSQ" fontName="Segoe UI" fontHeight="8" italic="true"/>
91 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YMXCFT6wEemlzLOTmNfcSQ" x="444" y="324"/>
92 </children>
93 <children xmi:type="notation:Node" xmi:id="_YMgMAz6wEemlzLOTmNfcSQ" type="2003" element="_YLQO0j6wEemlzLOTmNfcSQ">
94 <children xmi:type="notation:Node" xmi:id="_YMgMBj6wEemlzLOTmNfcSQ" type="5007"/>
95 <children xmi:type="notation:Node" xmi:id="_YMgMBz6wEemlzLOTmNfcSQ" type="7004">
96 <styles xmi:type="notation:SortingStyle" xmi:id="_YMgMCD6wEemlzLOTmNfcSQ"/>
97 <styles xmi:type="notation:FilteringStyle" xmi:id="_YMgMCT6wEemlzLOTmNfcSQ"/>
98 </children>
99 <styles xmi:type="notation:ShapeStyle" xmi:id="_YMgMBD6wEemlzLOTmNfcSQ" fontName="Segoe UI" fontHeight="8"/>
100 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YMgMBT6wEemlzLOTmNfcSQ" x="264" y="156"/>
101 </children>
102 <children xmi:type="notation:Node" xmi:id="_YMgMCj6wEemlzLOTmNfcSQ" type="2003" element="_YLQO1T6wEemlzLOTmNfcSQ">
103 <children xmi:type="notation:Node" xmi:id="_YMgMDT6wEemlzLOTmNfcSQ" type="5007"/>
104 <children xmi:type="notation:Node" xmi:id="_YMgMDj6wEemlzLOTmNfcSQ" type="7004">
105 <children xmi:type="notation:Node" xmi:id="_YMp9Dj6wEemlzLOTmNfcSQ" type="3010" element="_YLs6yD6wEemlzLOTmNfcSQ">
106 <styles xmi:type="notation:FontStyle" xmi:id="_YMp9Dz6wEemlzLOTmNfcSQ" fontColor="7490599" fontName="Segoe UI" fontHeight="8" bold="true"/>
107 <layoutConstraint xmi:type="notation:Location" xmi:id="_YMp9ED6wEemlzLOTmNfcSQ"/>
108 </children>
109 <styles xmi:type="notation:SortingStyle" xmi:id="_YMgMDz6wEemlzLOTmNfcSQ"/>
110 <styles xmi:type="notation:FilteringStyle" xmi:id="_YMgMED6wEemlzLOTmNfcSQ"/>
111 </children>
112 <styles xmi:type="notation:ShapeStyle" xmi:id="_YMgMCz6wEemlzLOTmNfcSQ" fontName="Segoe UI" fontHeight="8"/>
113 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YMgMDD6wEemlzLOTmNfcSQ" x="456" y="456"/>
114 </children>
115 <children xmi:type="notation:Node" xmi:id="_YMgMET6wEemlzLOTmNfcSQ" type="2003" element="_YLQO2D6wEemlzLOTmNfcSQ">
116 <children xmi:type="notation:Node" xmi:id="_YMgMFD6wEemlzLOTmNfcSQ" type="5007"/>
117 <children xmi:type="notation:Node" xmi:id="_YMgMFT6wEemlzLOTmNfcSQ" type="7004">
118 <styles xmi:type="notation:SortingStyle" xmi:id="_YMgMFj6wEemlzLOTmNfcSQ"/>
119 <styles xmi:type="notation:FilteringStyle" xmi:id="_YMgMFz6wEemlzLOTmNfcSQ"/>
120 </children>
121 <styles xmi:type="notation:ShapeStyle" xmi:id="_YMgMEj6wEemlzLOTmNfcSQ" fontName="Segoe UI" fontHeight="8"/>
122 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YMgMEz6wEemlzLOTmNfcSQ" x="684" y="72"/>
123 </children>
124 <children xmi:type="notation:Node" xmi:id="_YMgMGD6wEemlzLOTmNfcSQ" type="2003" element="_YLQO2z6wEemlzLOTmNfcSQ">
125 <children xmi:type="notation:Node" xmi:id="_YMgMGz6wEemlzLOTmNfcSQ" type="5007"/>
126 <children xmi:type="notation:Node" xmi:id="_YMgMHD6wEemlzLOTmNfcSQ" type="7004">
127 <styles xmi:type="notation:SortingStyle" xmi:id="_YMgMHT6wEemlzLOTmNfcSQ"/>
128 <styles xmi:type="notation:FilteringStyle" xmi:id="_YMgMHj6wEemlzLOTmNfcSQ"/>
129 </children>
130 <styles xmi:type="notation:ShapeStyle" xmi:id="_YMgMGT6wEemlzLOTmNfcSQ" fontName="Segoe UI" fontHeight="8"/>
131 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YMgMGj6wEemlzLOTmNfcSQ" x="1104" y="324"/>
132 </children>
133 <children xmi:type="notation:Node" xmi:id="_YMgMHz6wEemlzLOTmNfcSQ" type="2003" element="_YLZYwT6wEemlzLOTmNfcSQ">
134 <children xmi:type="notation:Node" xmi:id="_YMgMIj6wEemlzLOTmNfcSQ" type="5007"/>
135 <children xmi:type="notation:Node" xmi:id="_YMgMIz6wEemlzLOTmNfcSQ" type="7004">
136 <styles xmi:type="notation:SortingStyle" xmi:id="_YMgMJD6wEemlzLOTmNfcSQ"/>
137 <styles xmi:type="notation:FilteringStyle" xmi:id="_YMgMJT6wEemlzLOTmNfcSQ"/>
138 </children>
139 <styles xmi:type="notation:ShapeStyle" xmi:id="_YMgMID6wEemlzLOTmNfcSQ" fontName="Segoe UI" fontHeight="8"/>
140 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YMgMIT6wEemlzLOTmNfcSQ" x="828" y="156"/>
141 </children>
142 <children xmi:type="notation:Node" xmi:id="_YMgMJj6wEemlzLOTmNfcSQ" type="2003" element="_YLZYxD6wEemlzLOTmNfcSQ">
143 <children xmi:type="notation:Node" xmi:id="_YMgMKT6wEemlzLOTmNfcSQ" type="5007"/>
144 <children xmi:type="notation:Node" xmi:id="_YMgMKj6wEemlzLOTmNfcSQ" type="7004">
145 <styles xmi:type="notation:SortingStyle" xmi:id="_YMgMKz6wEemlzLOTmNfcSQ"/>
146 <styles xmi:type="notation:FilteringStyle" xmi:id="_YMgMLD6wEemlzLOTmNfcSQ"/>
147 </children>
148 <styles xmi:type="notation:ShapeStyle" xmi:id="_YMgMJz6wEemlzLOTmNfcSQ" fontName="Segoe UI" fontHeight="8"/>
149 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YMgMKD6wEemlzLOTmNfcSQ" x="1200" y="156"/>
150 </children>
151 <children xmi:type="notation:Node" xmi:id="_YMgMLT6wEemlzLOTmNfcSQ" type="2003" element="_YLZYxz6wEemlzLOTmNfcSQ">
152 <children xmi:type="notation:Node" xmi:id="_YMgMMD6wEemlzLOTmNfcSQ" type="5007"/>
153 <children xmi:type="notation:Node" xmi:id="_YMgMMT6wEemlzLOTmNfcSQ" type="7004">
154 <styles xmi:type="notation:SortingStyle" xmi:id="_YMgMMj6wEemlzLOTmNfcSQ"/>
155 <styles xmi:type="notation:FilteringStyle" xmi:id="_YMgMMz6wEemlzLOTmNfcSQ"/>
156 </children>
157 <styles xmi:type="notation:ShapeStyle" xmi:id="_YMgMLj6wEemlzLOTmNfcSQ" fontName="Segoe UI" fontHeight="8"/>
158 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YMgMLz6wEemlzLOTmNfcSQ" x="1008" y="156"/>
159 </children>
160 <children xmi:type="notation:Node" xmi:id="_YMp9AD6wEemlzLOTmNfcSQ" type="2003" element="_YLZYyj6wEemlzLOTmNfcSQ">
161 <children xmi:type="notation:Node" xmi:id="_YMp9Az6wEemlzLOTmNfcSQ" type="5007"/>
162 <children xmi:type="notation:Node" xmi:id="_YMp9BD6wEemlzLOTmNfcSQ" type="7004">
163 <styles xmi:type="notation:SortingStyle" xmi:id="_YMp9BT6wEemlzLOTmNfcSQ"/>
164 <styles xmi:type="notation:FilteringStyle" xmi:id="_YMp9Bj6wEemlzLOTmNfcSQ"/>
165 </children>
166 <styles xmi:type="notation:ShapeStyle" xmi:id="_YMp9AT6wEemlzLOTmNfcSQ" fontName="Segoe UI" fontHeight="8" italic="true"/>
167 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YMp9Aj6wEemlzLOTmNfcSQ" x="1068" y="-36"/>
168 </children>
169 <children xmi:type="notation:Node" xmi:id="_YMp9Bz6wEemlzLOTmNfcSQ" type="2003" element="_YLZYzT6wEemlzLOTmNfcSQ">
170 <children xmi:type="notation:Node" xmi:id="_YMp9Cj6wEemlzLOTmNfcSQ" type="5007"/>
171 <children xmi:type="notation:Node" xmi:id="_YMp9Cz6wEemlzLOTmNfcSQ" type="7004">
172 <children xmi:type="notation:Node" xmi:id="_YMp9ET6wEemlzLOTmNfcSQ" type="3010" element="_YL2Esj6wEemlzLOTmNfcSQ">
173 <styles xmi:type="notation:FontStyle" xmi:id="_YMp9Ej6wEemlzLOTmNfcSQ" fontName="Segoe UI" fontHeight="8"/>
174 <layoutConstraint xmi:type="notation:Location" xmi:id="_YMp9Ez6wEemlzLOTmNfcSQ"/>
175 </children>
176 <children xmi:type="notation:Node" xmi:id="_YMp9FD6wEemlzLOTmNfcSQ" type="3010" element="_YL2EtD6wEemlzLOTmNfcSQ">
177 <styles xmi:type="notation:FontStyle" xmi:id="_YMp9FT6wEemlzLOTmNfcSQ" fontName="Segoe UI" fontHeight="8"/>
178 <layoutConstraint xmi:type="notation:Location" xmi:id="_YMp9Fj6wEemlzLOTmNfcSQ"/>
179 </children>
180 <children xmi:type="notation:Node" xmi:id="_YMp9Fz6wEemlzLOTmNfcSQ" type="3010" element="_YL2Etj6wEemlzLOTmNfcSQ">
181 <styles xmi:type="notation:FontStyle" xmi:id="_YMp9GD6wEemlzLOTmNfcSQ" fontName="Segoe UI" fontHeight="8"/>
182 <layoutConstraint xmi:type="notation:Location" xmi:id="_YMp9GT6wEemlzLOTmNfcSQ"/>
183 </children>
184 <styles xmi:type="notation:SortingStyle" xmi:id="_YMp9DD6wEemlzLOTmNfcSQ"/>
185 <styles xmi:type="notation:FilteringStyle" xmi:id="_YMp9DT6wEemlzLOTmNfcSQ"/>
186 </children>
187 <styles xmi:type="notation:ShapeStyle" xmi:id="_YMp9CD6wEemlzLOTmNfcSQ" fontName="Segoe UI" fontHeight="8"/>
188 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YMp9CT6wEemlzLOTmNfcSQ" x="252"/>
189 </children>
190 <styles xmi:type="notation:DiagramStyle" xmi:id="_XcDmgj6wEemlzLOTmNfcSQ"/>
191 <edges xmi:type="notation:Edge" xmi:id="_YNBJYD6wEemlzLOTmNfcSQ" type="4001" element="_YL_1sD6wEemlzLOTmNfcSQ" source="_YMXCEz6wEemlzLOTmNfcSQ" target="_YMgMAz6wEemlzLOTmNfcSQ">
192 <children xmi:type="notation:Node" xmi:id="_YNBJZD6wEemlzLOTmNfcSQ" type="6001">
193 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNBJZT6wEemlzLOTmNfcSQ" x="32" y="48"/>
194 </children>
195 <children xmi:type="notation:Node" xmi:id="_YNBJZj6wEemlzLOTmNfcSQ" type="6002">
196 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNBJZz6wEemlzLOTmNfcSQ" x="-11" y="10"/>
197 </children>
198 <children xmi:type="notation:Node" xmi:id="_YNKTUD6wEemlzLOTmNfcSQ" type="6003">
199 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNKTUT6wEemlzLOTmNfcSQ" x="-18" y="10"/>
200 </children>
201 <styles xmi:type="notation:ConnectorStyle" xmi:id="_YNBJYT6wEemlzLOTmNfcSQ" routing="Rectilinear"/>
202 <styles xmi:type="notation:FontStyle" xmi:id="_YNBJYj6wEemlzLOTmNfcSQ" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
203 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YNBJYz6wEemlzLOTmNfcSQ" points="[-59, -37, 95, 131]$[-74, -37, 80, 131]$[-74, -119, 80, 49]"/>
204 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YNUEUD6wEemlzLOTmNfcSQ" id="(0.5,0.5)"/>
205 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YNUEUT6wEemlzLOTmNfcSQ" id="(0.5,0.5)"/>
206 </edges>
207 <edges xmi:type="notation:Edge" xmi:id="_YNUEUj6wEemlzLOTmNfcSQ" type="4001" element="_YMDgFj6wEemlzLOTmNfcSQ" source="_YMgMAz6wEemlzLOTmNfcSQ" target="_YMXCEz6wEemlzLOTmNfcSQ">
208 <children xmi:type="notation:Node" xmi:id="_YNUEVj6wEemlzLOTmNfcSQ" type="6001">
209 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNUEVz6wEemlzLOTmNfcSQ" x="27" y="46"/>
210 </children>
211 <children xmi:type="notation:Node" xmi:id="_YNUEWD6wEemlzLOTmNfcSQ" type="6002">
212 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNUEWT6wEemlzLOTmNfcSQ" x="18" y="10"/>
213 </children>
214 <children xmi:type="notation:Node" xmi:id="_YNUEWj6wEemlzLOTmNfcSQ" type="6003">
215 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNUEWz6wEemlzLOTmNfcSQ" x="10" y="-11"/>
216 </children>
217 <styles xmi:type="notation:ConnectorStyle" xmi:id="_YNUEUz6wEemlzLOTmNfcSQ" routing="Rectilinear"/>
218 <styles xmi:type="notation:FontStyle" xmi:id="_YNUEVD6wEemlzLOTmNfcSQ" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
219 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YNUEVT6wEemlzLOTmNfcSQ" points="[80, 49, -74, -119]$[80, 131, -74, -37]$[95, 131, -59, -37]"/>
220 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YNUEXD6wEemlzLOTmNfcSQ" id="(0.5,0.5)"/>
221 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YNUEXT6wEemlzLOTmNfcSQ" id="(0.5,0.5)"/>
222 </edges>
223 <edges xmi:type="notation:Edge" xmi:id="_YNUEXj6wEemlzLOTmNfcSQ" type="4001" element="_YMDgID6wEemlzLOTmNfcSQ" source="_YMgMCj6wEemlzLOTmNfcSQ" target="_YMXCEz6wEemlzLOTmNfcSQ">
224 <children xmi:type="notation:Node" xmi:id="_YNUEYj6wEemlzLOTmNfcSQ" type="6001">
225 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNUEYz6wEemlzLOTmNfcSQ" y="-10"/>
226 </children>
227 <children xmi:type="notation:Node" xmi:id="_YNUEZD6wEemlzLOTmNfcSQ" type="6002">
228 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNUEZT6wEemlzLOTmNfcSQ" y="10"/>
229 </children>
230 <children xmi:type="notation:Node" xmi:id="_YNUEZj6wEemlzLOTmNfcSQ" type="6003">
231 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNUEZz6wEemlzLOTmNfcSQ" y="10"/>
232 </children>
233 <styles xmi:type="notation:ConnectorStyle" xmi:id="_YNUEXz6wEemlzLOTmNfcSQ" routing="Tree"/>
234 <styles xmi:type="notation:FontStyle" xmi:id="_YNUEYD6wEemlzLOTmNfcSQ" fontName="Segoe UI" fontHeight="8"/>
235 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YNUEYT6wEemlzLOTmNfcSQ" points="[0, -98, 0, 144]$[0, -122, 0, 120]$[58, -122, 58, 120]$[58, -144, 58, 98]"/>
236 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YNd1UD6wEemlzLOTmNfcSQ" id="(0.5,1.0)"/>
237 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YNd1UT6wEemlzLOTmNfcSQ" id="(0.5,0.0)"/>
238 </edges>
239 <edges xmi:type="notation:Edge" xmi:id="_YNd1Uj6wEemlzLOTmNfcSQ" type="4001" element="_YMNRFT6wEemlzLOTmNfcSQ" source="_YMgMLT6wEemlzLOTmNfcSQ" target="_YMp9AD6wEemlzLOTmNfcSQ">
240 <children xmi:type="notation:Node" xmi:id="_YNd1Vj6wEemlzLOTmNfcSQ" type="6001">
241 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNd1Vz6wEemlzLOTmNfcSQ" y="-10"/>
242 </children>
243 <children xmi:type="notation:Node" xmi:id="_YNd1WD6wEemlzLOTmNfcSQ" type="6002">
244 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNd1WT6wEemlzLOTmNfcSQ" y="10"/>
245 </children>
246 <children xmi:type="notation:Node" xmi:id="_YNd1Wj6wEemlzLOTmNfcSQ" type="6003">
247 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNd1Wz6wEemlzLOTmNfcSQ" y="10"/>
248 </children>
249 <styles xmi:type="notation:ConnectorStyle" xmi:id="_YNd1Uz6wEemlzLOTmNfcSQ" routing="Tree"/>
250 <styles xmi:type="notation:FontStyle" xmi:id="_YNd1VD6wEemlzLOTmNfcSQ" fontName="Segoe UI" fontHeight="8"/>
251 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YNd1VT6wEemlzLOTmNfcSQ" points="[0, 0, -60, 94]$[0, 10, -60, 104]$[49, 10, -11, 104]$[49, -94, -11, 0]"/>
252 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YNd1XD6wEemlzLOTmNfcSQ" id="(0.5,0.0)"/>
253 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YNd1XT6wEemlzLOTmNfcSQ" id="(0.5,1.0)"/>
254 </edges>
255 <edges xmi:type="notation:Edge" xmi:id="_YNd1Xj6wEemlzLOTmNfcSQ" type="4001" element="_YMNRHD6wEemlzLOTmNfcSQ" source="_YMgMJj6wEemlzLOTmNfcSQ" target="_YMp9AD6wEemlzLOTmNfcSQ">
256 <children xmi:type="notation:Node" xmi:id="_YNd1Yj6wEemlzLOTmNfcSQ" type="6001">
257 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNd1Yz6wEemlzLOTmNfcSQ" y="-10"/>
258 </children>
259 <children xmi:type="notation:Node" xmi:id="_YNd1ZD6wEemlzLOTmNfcSQ" type="6002">
260 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNd1ZT6wEemlzLOTmNfcSQ" y="10"/>
261 </children>
262 <children xmi:type="notation:Node" xmi:id="_YNd1Zj6wEemlzLOTmNfcSQ" type="6003">
263 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNd1Zz6wEemlzLOTmNfcSQ" y="10"/>
264 </children>
265 <styles xmi:type="notation:ConnectorStyle" xmi:id="_YNd1Xz6wEemlzLOTmNfcSQ" routing="Tree"/>
266 <styles xmi:type="notation:FontStyle" xmi:id="_YNd1YD6wEemlzLOTmNfcSQ" fontName="Segoe UI" fontHeight="8"/>
267 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YNd1YT6wEemlzLOTmNfcSQ" points="[0, 0, 132, 94]$[0, 10, 132, 104]$[-143, 10, -11, 104]$[-143, -94, -11, 0]"/>
268 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YNd1aD6wEemlzLOTmNfcSQ" id="(0.5,0.0)"/>
269 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YNd1aT6wEemlzLOTmNfcSQ" id="(0.5,1.0)"/>
270 </edges>
271 <edges xmi:type="notation:Edge" xmi:id="_YNd1aj6wEemlzLOTmNfcSQ" type="4001" element="_YMNRIz6wEemlzLOTmNfcSQ" source="_YMXCEz6wEemlzLOTmNfcSQ" target="_YMgMCj6wEemlzLOTmNfcSQ">
272 <children xmi:type="notation:Node" xmi:id="_YNd1bj6wEemlzLOTmNfcSQ" type="6001">
273 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNd1bz6wEemlzLOTmNfcSQ" x="-1" y="10"/>
274 </children>
275 <children xmi:type="notation:Node" xmi:id="_YNd1cD6wEemlzLOTmNfcSQ" type="6002">
276 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNd1cT6wEemlzLOTmNfcSQ" x="-4" y="-10"/>
277 </children>
278 <children xmi:type="notation:Node" xmi:id="_YNd1cj6wEemlzLOTmNfcSQ" type="6003">
279 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNd1cz6wEemlzLOTmNfcSQ" x="-14" y="-44"/>
280 </children>
281 <styles xmi:type="notation:ConnectorStyle" xmi:id="_YNd1az6wEemlzLOTmNfcSQ" routing="Rectilinear"/>
282 <styles xmi:type="notation:FontStyle" xmi:id="_YNd1bD6wEemlzLOTmNfcSQ" fontName="Segoe UI" fontHeight="8"/>
283 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YNd1bT6wEemlzLOTmNfcSQ" points="[-59, 1, -100, -131]$[-107, 1, -148, -131]$[-107, 133, -148, 1]$[-47, 133, -88, 1]"/>
284 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YNd1dD6wEemlzLOTmNfcSQ" id="(0.5,0.5)"/>
285 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YNd1dT6wEemlzLOTmNfcSQ" id="(0.5,0.5)"/>
286 </edges>
287 <edges xmi:type="notation:Edge" xmi:id="_YNd1dj6wEemlzLOTmNfcSQ" type="4001" element="_YMNRLT6wEemlzLOTmNfcSQ" source="_YMgMGD6wEemlzLOTmNfcSQ" target="_YMgMLT6wEemlzLOTmNfcSQ">
288 <children xmi:type="notation:Node" xmi:id="_YNd1ej6wEemlzLOTmNfcSQ" type="6001">
289 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNd1ez6wEemlzLOTmNfcSQ" x="10"/>
290 </children>
291 <children xmi:type="notation:Node" xmi:id="_YNd1fD6wEemlzLOTmNfcSQ" type="6002">
292 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNd1fT6wEemlzLOTmNfcSQ" x="27" y="-18"/>
293 </children>
294 <children xmi:type="notation:Node" xmi:id="_YNd1fj6wEemlzLOTmNfcSQ" type="6003">
295 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNd1fz6wEemlzLOTmNfcSQ" x="-10"/>
296 </children>
297 <styles xmi:type="notation:ConnectorStyle" xmi:id="_YNd1dz6wEemlzLOTmNfcSQ" routing="Rectilinear"/>
298 <styles xmi:type="notation:FontStyle" xmi:id="_YNd1eD6wEemlzLOTmNfcSQ" fontName="Segoe UI" fontHeight="8"/>
299 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YNd1eT6wEemlzLOTmNfcSQ" points="[-59, 48, 37, 118]$[-96, 48, 0, 118]$[-96, -70, 0, 0]"/>
300 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YNd1gD6wEemlzLOTmNfcSQ" id="(0.5,0.0)"/>
301 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YNd1gT6wEemlzLOTmNfcSQ" id="(0.5,1.0)"/>
302 </edges>
303 <edges xmi:type="notation:Edge" xmi:id="_YNd1gj6wEemlzLOTmNfcSQ" type="4001" element="_YMNRND6wEemlzLOTmNfcSQ" source="_YMgMHz6wEemlzLOTmNfcSQ" target="_YMp9AD6wEemlzLOTmNfcSQ">
304 <children xmi:type="notation:Node" xmi:id="_YNd1hj6wEemlzLOTmNfcSQ" type="6001">
305 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNd1hz6wEemlzLOTmNfcSQ" x="13" y="18"/>
306 </children>
307 <children xmi:type="notation:Node" xmi:id="_YNd1iD6wEemlzLOTmNfcSQ" type="6002">
308 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNd1iT6wEemlzLOTmNfcSQ" x="-32" y="10"/>
309 </children>
310 <children xmi:type="notation:Node" xmi:id="_YNd1ij6wEemlzLOTmNfcSQ" type="6003">
311 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNd1iz6wEemlzLOTmNfcSQ" y="10"/>
312 </children>
313 <styles xmi:type="notation:ConnectorStyle" xmi:id="_YNd1gz6wEemlzLOTmNfcSQ" routing="Rectilinear"/>
314 <styles xmi:type="notation:FontStyle" xmi:id="_YNd1hD6wEemlzLOTmNfcSQ" fontName="Segoe UI" fontHeight="8"/>
315 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YNd1hT6wEemlzLOTmNfcSQ" points="[30, -49, -209, 143]$[30, -205, -209, -13]$[180, -205, -59, -13]"/>
316 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YNd1jD6wEemlzLOTmNfcSQ" id="(0.5,0.5)"/>
317 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YNd1jT6wEemlzLOTmNfcSQ" id="(0.5,0.5)"/>
318 </edges>
319 <edges xmi:type="notation:Edge" xmi:id="_YNd1jj6wEemlzLOTmNfcSQ" type="4001" element="_YMNRPj6wEemlzLOTmNfcSQ" source="_YMgMET6wEemlzLOTmNfcSQ" target="_YMp9AD6wEemlzLOTmNfcSQ">
320 <children xmi:type="notation:Node" xmi:id="_YNd1kj6wEemlzLOTmNfcSQ" type="6001">
321 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNd1kz6wEemlzLOTmNfcSQ" x="-43" y="-10"/>
322 </children>
323 <children xmi:type="notation:Node" xmi:id="_YNd1lD6wEemlzLOTmNfcSQ" type="6002">
324 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNd1lT6wEemlzLOTmNfcSQ" x="-18" y="17"/>
325 </children>
326 <children xmi:type="notation:Node" xmi:id="_YNd1lj6wEemlzLOTmNfcSQ" type="6003">
327 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNd1lz6wEemlzLOTmNfcSQ" x="-18" y="10"/>
328 </children>
329 <styles xmi:type="notation:ConnectorStyle" xmi:id="_YNd1jz6wEemlzLOTmNfcSQ" routing="Rectilinear"/>
330 <styles xmi:type="notation:FontStyle" xmi:id="_YNd1kD6wEemlzLOTmNfcSQ" fontName="Segoe UI" fontHeight="8"/>
331 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YNd1kT6wEemlzLOTmNfcSQ" points="[0, 0, -384, 10]$[0, -36, -384, -26]$[325, -36, -59, -26]"/>
332 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YNd1mD6wEemlzLOTmNfcSQ" id="(0.5,0.0)"/>
333 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YNd1mT6wEemlzLOTmNfcSQ" id="(0.5,1.0)"/>
334 </edges>
335 <edges xmi:type="notation:Edge" xmi:id="_YNd1mj6wEemlzLOTmNfcSQ" type="4001" element="_YMNRRT6wEemlzLOTmNfcSQ" source="_YMXCEz6wEemlzLOTmNfcSQ" target="_YMgMHz6wEemlzLOTmNfcSQ">
336 <children xmi:type="notation:Node" xmi:id="_YNd1nj6wEemlzLOTmNfcSQ" type="6001">
337 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNd1nz6wEemlzLOTmNfcSQ" y="-10"/>
338 </children>
339 <children xmi:type="notation:Node" xmi:id="_YNd1oD6wEemlzLOTmNfcSQ" type="6002">
340 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNd1oT6wEemlzLOTmNfcSQ" y="10"/>
341 </children>
342 <children xmi:type="notation:Node" xmi:id="_YNd1oj6wEemlzLOTmNfcSQ" type="6003">
343 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNd1oz6wEemlzLOTmNfcSQ" y="10"/>
344 </children>
345 <styles xmi:type="notation:ConnectorStyle" xmi:id="_YNd1mz6wEemlzLOTmNfcSQ" routing="Rectilinear"/>
346 <styles xmi:type="notation:FontStyle" xmi:id="_YNd1nD6wEemlzLOTmNfcSQ" fontName="Segoe UI" fontHeight="8"/>
347 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YNd1nT6wEemlzLOTmNfcSQ" points="[0, -50, -390, 110]$[390, -110, 0, 50]"/>
348 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YNd1pD6wEemlzLOTmNfcSQ" id="(0.5,0.5)"/>
349 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YNd1pT6wEemlzLOTmNfcSQ" id="(0.5,0.5)"/>
350 </edges>
351 <edges xmi:type="notation:Edge" xmi:id="_YNm_QD6wEemlzLOTmNfcSQ" type="4001" element="_YMNRTD6wEemlzLOTmNfcSQ" source="_YMgMGD6wEemlzLOTmNfcSQ" target="_YMgMJj6wEemlzLOTmNfcSQ">
352 <children xmi:type="notation:Node" xmi:id="_YNm_RD6wEemlzLOTmNfcSQ" type="6001">
353 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNm_RT6wEemlzLOTmNfcSQ" x="10"/>
354 </children>
355 <children xmi:type="notation:Node" xmi:id="_YNm_Rj6wEemlzLOTmNfcSQ" type="6002">
356 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNm_Rz6wEemlzLOTmNfcSQ" y="10"/>
357 </children>
358 <children xmi:type="notation:Node" xmi:id="_YNm_SD6wEemlzLOTmNfcSQ" type="6003">
359 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNm_ST6wEemlzLOTmNfcSQ" y="10"/>
360 </children>
361 <styles xmi:type="notation:ConnectorStyle" xmi:id="_YNm_QT6wEemlzLOTmNfcSQ" routing="Rectilinear"/>
362 <styles xmi:type="notation:FontStyle" xmi:id="_YNm_Qj6wEemlzLOTmNfcSQ" fontName="Segoe UI" fontHeight="8" bold="true"/>
363 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YNm_Qz6wEemlzLOTmNfcSQ" points="[59, 60, -37, 130]$[96, 60, 0, 130]$[96, -70, 0, 0]"/>
364 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YNm_Sj6wEemlzLOTmNfcSQ" id="(0.5,0.0)"/>
365 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YNm_Sz6wEemlzLOTmNfcSQ" id="(0.5,1.0)"/>
366 </edges>
367 </data>
368 </ownedAnnotationEntries>
369 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_YLGd0D6wEemlzLOTmNfcSQ" name="FunctionalElement" tooltipText="" outgoingEdges="_YL_1sD6wEemlzLOTmNfcSQ _YMNRIz6wEemlzLOTmNfcSQ _YMNRRT6wEemlzLOTmNfcSQ" incomingEdges="_YMDgFj6wEemlzLOTmNfcSQ _YMDgID6wEemlzLOTmNfcSQ" width="12" height="10">
370 <target xmi:type="ecore:EClass" href="fam.ecore#//FunctionalElement"/>
371 <semanticElements xmi:type="ecore:EClass" href="fam.ecore#//FunctionalElement"/>
372 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_YLQO0D6wEemlzLOTmNfcSQ" 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">
373 <labelFormat>italic</labelFormat>
374 <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"/>
375 </ownedStyle>
376 <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']"/>
377 </ownedDiagramElements>
378 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_YLQO0j6wEemlzLOTmNfcSQ" name="FunctionalArchitectureModel" tooltipText="" outgoingEdges="_YMDgFj6wEemlzLOTmNfcSQ" incomingEdges="_YL_1sD6wEemlzLOTmNfcSQ" width="12" height="10">
379 <target xmi:type="ecore:EClass" href="fam.ecore#//FunctionalArchitectureModel"/>
380 <semanticElements xmi:type="ecore:EClass" href="fam.ecore#//FunctionalArchitectureModel"/>
381 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
382 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
383 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
384 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_YLQO0z6wEemlzLOTmNfcSQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
385 <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"/>
386 </ownedStyle>
387 <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']"/>
388 </ownedDiagramElements>
389 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_YLQO1T6wEemlzLOTmNfcSQ" name="Function" tooltipText="" outgoingEdges="_YMDgID6wEemlzLOTmNfcSQ" incomingEdges="_YMNRIz6wEemlzLOTmNfcSQ" width="12" height="10">
390 <target xmi:type="ecore:EClass" href="fam.ecore#//Function"/>
391 <semanticElements xmi:type="ecore:EClass" href="fam.ecore#//Function"/>
392 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
393 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
394 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
395 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_YLQO1j6wEemlzLOTmNfcSQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
396 <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"/>
397 </ownedStyle>
398 <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']"/>
399 <ownedElements xmi:type="diagram:DNodeListElement" uid="_YLs6yD6wEemlzLOTmNfcSQ" name="/type : FunctionType = Root" tooltipText="">
400 <target xmi:type="ecore:EAttribute" href="fam.ecore#//Function/type"/>
401 <semanticElements xmi:type="ecore:EAttribute" href="fam.ecore#//Function/type"/>
402 <ownedStyle xmi:type="diagram:BundledImage" uid="_YLs6yj6wEemlzLOTmNfcSQ" labelColor="39,76,114" labelAlignment="LEFT" description="_YLs6yT6wEemlzLOTmNfcSQ">
403 <labelFormat>bold</labelFormat>
404 </ownedStyle>
405 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
406 </ownedElements>
407 </ownedDiagramElements>
408 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_YLQO2D6wEemlzLOTmNfcSQ" name="FAMTerminator" tooltipText="" outgoingEdges="_YMNRPj6wEemlzLOTmNfcSQ" width="12" height="10">
409 <target xmi:type="ecore:EClass" href="fam.ecore#//FAMTerminator"/>
410 <semanticElements xmi:type="ecore:EClass" href="fam.ecore#//FAMTerminator"/>
411 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
412 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
413 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
414 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_YLQO2T6wEemlzLOTmNfcSQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
415 <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"/>
416 </ownedStyle>
417 <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']"/>
418 </ownedDiagramElements>
419 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_YLQO2z6wEemlzLOTmNfcSQ" name="InformationLink" tooltipText="" outgoingEdges="_YMNRLT6wEemlzLOTmNfcSQ _YMNRTD6wEemlzLOTmNfcSQ" width="12" height="10">
420 <target xmi:type="ecore:EClass" href="fam.ecore#//InformationLink"/>
421 <semanticElements xmi:type="ecore:EClass" href="fam.ecore#//InformationLink"/>
422 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_YLQO3D6wEemlzLOTmNfcSQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
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"/>
424 </ownedStyle>
425 <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']"/>
426 </ownedDiagramElements>
427 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_YLZYwT6wEemlzLOTmNfcSQ" name="FunctionalInterface" tooltipText="" outgoingEdges="_YMNRND6wEemlzLOTmNfcSQ" incomingEdges="_YMNRRT6wEemlzLOTmNfcSQ" width="12" height="10">
428 <target xmi:type="ecore:EClass" href="fam.ecore#//FunctionalInterface"/>
429 <semanticElements xmi:type="ecore:EClass" href="fam.ecore#//FunctionalInterface"/>
430 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_YLZYwj6wEemlzLOTmNfcSQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
431 <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"/>
432 </ownedStyle>
433 <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']"/>
434 </ownedDiagramElements>
435 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_YLZYxD6wEemlzLOTmNfcSQ" name="FunctionalInput" tooltipText="" outgoingEdges="_YMNRHD6wEemlzLOTmNfcSQ" incomingEdges="_YMNRTD6wEemlzLOTmNfcSQ" width="12" height="10">
436 <target xmi:type="ecore:EClass" href="fam.ecore#//FunctionalInput"/>
437 <semanticElements xmi:type="ecore:EClass" href="fam.ecore#//FunctionalInput"/>
438 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_YLZYxT6wEemlzLOTmNfcSQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
439 <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"/>
440 </ownedStyle>
441 <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']"/>
442 </ownedDiagramElements>
443 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_YLZYxz6wEemlzLOTmNfcSQ" name="FunctionalOutput" tooltipText="" outgoingEdges="_YMNRFT6wEemlzLOTmNfcSQ" incomingEdges="_YMNRLT6wEemlzLOTmNfcSQ" width="12" height="10">
444 <target xmi:type="ecore:EClass" href="fam.ecore#//FunctionalOutput"/>
445 <semanticElements xmi:type="ecore:EClass" href="fam.ecore#//FunctionalOutput"/>
446 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_YLZYyD6wEemlzLOTmNfcSQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
447 <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"/>
448 </ownedStyle>
449 <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']"/>
450 </ownedDiagramElements>
451 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_YLZYyj6wEemlzLOTmNfcSQ" name="FunctionalData" tooltipText="" incomingEdges="_YMNRFT6wEemlzLOTmNfcSQ _YMNRHD6wEemlzLOTmNfcSQ _YMNRND6wEemlzLOTmNfcSQ _YMNRPj6wEemlzLOTmNfcSQ" width="12" height="10">
452 <target xmi:type="ecore:EClass" href="fam.ecore#//FunctionalData"/>
453 <semanticElements xmi:type="ecore:EClass" href="fam.ecore#//FunctionalData"/>
454 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
455 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
456 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
457 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_YLZYyz6wEemlzLOTmNfcSQ" 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">
458 <labelFormat>italic</labelFormat>
459 <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"/>
460 </ownedStyle>
461 <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']"/>
462 </ownedDiagramElements>
463 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_YLZYzT6wEemlzLOTmNfcSQ" name="FunctionType" tooltipText="" width="12" height="10">
464 <target xmi:type="ecore:EEnum" href="fam.ecore#//FunctionType"/>
465 <semanticElements xmi:type="ecore:EEnum" href="fam.ecore#//FunctionType"/>
466 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
467 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
468 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
469 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_YLZYzj6wEemlzLOTmNfcSQ" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="221,236,202">
470 <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%20EEnum']/@style"/>
471 </ownedStyle>
472 <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%20EEnum']"/>
473 <ownedElements xmi:type="diagram:DNodeListElement" uid="_YL2Esj6wEemlzLOTmNfcSQ" name="Root" tooltipText="">
474 <target xmi:type="ecore:EEnumLiteral" href="fam.ecore#//FunctionType/Root"/>
475 <semanticElements xmi:type="ecore:EEnumLiteral" href="fam.ecore#//FunctionType/Root"/>
476 <ownedStyle xmi:type="diagram:BundledImage" uid="_YL2Esz6wEemlzLOTmNfcSQ" labelAlignment="LEFT">
477 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
478 </ownedStyle>
479 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
480 </ownedElements>
481 <ownedElements xmi:type="diagram:DNodeListElement" uid="_YL2EtD6wEemlzLOTmNfcSQ" name="Intermediate" tooltipText="">
482 <target xmi:type="ecore:EEnumLiteral" href="fam.ecore#//FunctionType/Intermediate"/>
483 <semanticElements xmi:type="ecore:EEnumLiteral" href="fam.ecore#//FunctionType/Intermediate"/>
484 <ownedStyle xmi:type="diagram:BundledImage" uid="_YL2EtT6wEemlzLOTmNfcSQ" labelAlignment="LEFT">
485 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
486 </ownedStyle>
487 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
488 </ownedElements>
489 <ownedElements xmi:type="diagram:DNodeListElement" uid="_YL2Etj6wEemlzLOTmNfcSQ" name="Leaf" tooltipText="">
490 <target xmi:type="ecore:EEnumLiteral" href="fam.ecore#//FunctionType/Leaf"/>
491 <semanticElements xmi:type="ecore:EEnumLiteral" href="fam.ecore#//FunctionType/Leaf"/>
492 <ownedStyle xmi:type="diagram:BundledImage" uid="_YL2Etz6wEemlzLOTmNfcSQ" labelAlignment="LEFT">
493 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
494 </ownedStyle>
495 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
496 </ownedElements>
497 </ownedDiagramElements>
498 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_YL_1sD6wEemlzLOTmNfcSQ" name="[1..1] /model" sourceNode="_YLGd0D6wEemlzLOTmNfcSQ" targetNode="_YLQO0j6wEemlzLOTmNfcSQ">
499 <target xmi:type="ecore:EReference" href="fam.ecore#//FunctionalElement/model"/>
500 <semanticElements xmi:type="ecore:EReference" href="fam.ecore#//FunctionalElement/model"/>
501 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_YMDgED6wEemlzLOTmNfcSQ" description="_YL_1sT6wEemlzLOTmNfcSQ" routingStyle="manhattan" strokeColor="114,159,207">
502 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_YMDgEj6wEemlzLOTmNfcSQ" showIcon="false" labelColor="39,76,114">
503 <customFeatures>labelSize</customFeatures>
504 <labelFormat>bold</labelFormat>
505 </centerLabelStyle>
506 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_YMDgET6wEemlzLOTmNfcSQ" showIcon="false" labelColor="39,76,114">
507 <customFeatures>labelSize</customFeatures>
508 </endLabelStyle>
509 </ownedStyle>
510 <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']"/>
511 </ownedDiagramElements>
512 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_YMDgFj6wEemlzLOTmNfcSQ" name="[0..*] rootElements" sourceNode="_YLQO0j6wEemlzLOTmNfcSQ" targetNode="_YLGd0D6wEemlzLOTmNfcSQ">
513 <target xmi:type="ecore:EReference" href="fam.ecore#//FunctionalArchitectureModel/rootElements"/>
514 <semanticElements xmi:type="ecore:EReference" href="fam.ecore#//FunctionalArchitectureModel/rootElements"/>
515 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_YMDgGj6wEemlzLOTmNfcSQ" description="_YMDgFz6wEemlzLOTmNfcSQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
516 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_YMDgHD6wEemlzLOTmNfcSQ" showIcon="false">
517 <customFeatures>labelSize</customFeatures>
518 </centerLabelStyle>
519 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_YMDgGz6wEemlzLOTmNfcSQ" showIcon="false" labelColor="39,76,114">
520 <customFeatures>labelSize</customFeatures>
521 </endLabelStyle>
522 </ownedStyle>
523 <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']"/>
524 </ownedDiagramElements>
525 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_YMDgID6wEemlzLOTmNfcSQ" sourceNode="_YLQO1T6wEemlzLOTmNfcSQ" targetNode="_YLGd0D6wEemlzLOTmNfcSQ">
526 <target xmi:type="ecore:EClass" href="fam.ecore#//Function"/>
527 <semanticElements xmi:type="ecore:EClass" href="fam.ecore#//Function"/>
528 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_YMDgIT6wEemlzLOTmNfcSQ" targetArrow="InputClosedArrow" routingStyle="tree">
529 <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"/>
530 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_YMNRED6wEemlzLOTmNfcSQ" showIcon="false">
531 <labelFormat>italic</labelFormat>
532 </beginLabelStyle>
533 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_YMNRET6wEemlzLOTmNfcSQ" showIcon="false"/>
534 </ownedStyle>
535 <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']"/>
536 </ownedDiagramElements>
537 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_YMNRFT6wEemlzLOTmNfcSQ" sourceNode="_YLZYxz6wEemlzLOTmNfcSQ" targetNode="_YLZYyj6wEemlzLOTmNfcSQ">
538 <target xmi:type="ecore:EClass" href="fam.ecore#//FunctionalOutput"/>
539 <semanticElements xmi:type="ecore:EClass" href="fam.ecore#//FunctionalOutput"/>
540 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_YMNRFj6wEemlzLOTmNfcSQ" targetArrow="InputClosedArrow" routingStyle="tree">
541 <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"/>
542 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_YMNRFz6wEemlzLOTmNfcSQ" showIcon="false">
543 <labelFormat>italic</labelFormat>
544 </beginLabelStyle>
545 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_YMNRGD6wEemlzLOTmNfcSQ" showIcon="false"/>
546 </ownedStyle>
547 <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']"/>
548 </ownedDiagramElements>
549 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_YMNRHD6wEemlzLOTmNfcSQ" sourceNode="_YLZYxD6wEemlzLOTmNfcSQ" targetNode="_YLZYyj6wEemlzLOTmNfcSQ">
550 <target xmi:type="ecore:EClass" href="fam.ecore#//FunctionalInput"/>
551 <semanticElements xmi:type="ecore:EClass" href="fam.ecore#//FunctionalInput"/>
552 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_YMNRHT6wEemlzLOTmNfcSQ" targetArrow="InputClosedArrow" routingStyle="tree">
553 <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"/>
554 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_YMNRHj6wEemlzLOTmNfcSQ" showIcon="false">
555 <labelFormat>italic</labelFormat>
556 </beginLabelStyle>
557 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_YMNRHz6wEemlzLOTmNfcSQ" showIcon="false"/>
558 </ownedStyle>
559 <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']"/>
560 </ownedDiagramElements>
561 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_YMNRIz6wEemlzLOTmNfcSQ" sourceNode="_YLGd0D6wEemlzLOTmNfcSQ" targetNode="_YLQO1T6wEemlzLOTmNfcSQ" beginLabel="[0..*] subElements" endLabel="[0..1] parent">
562 <target xmi:type="ecore:EReference" href="fam.ecore#//FunctionalElement/parent"/>
563 <semanticElements xmi:type="ecore:EReference" href="fam.ecore#//FunctionalElement/parent"/>
564 <semanticElements xmi:type="ecore:EReference" href="fam.ecore#//Function/subElements"/>
565 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_YMNRJz6wEemlzLOTmNfcSQ" description="_YMNRJD6wEemlzLOTmNfcSQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
566 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_YMNRKD6wEemlzLOTmNfcSQ" showIcon="false"/>
567 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_YMNRKT6wEemlzLOTmNfcSQ" showIcon="false"/>
568 </ownedStyle>
569 <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']"/>
570 </ownedDiagramElements>
571 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_YMNRLT6wEemlzLOTmNfcSQ" sourceNode="_YLQO2z6wEemlzLOTmNfcSQ" targetNode="_YLZYxz6wEemlzLOTmNfcSQ" beginLabel="[0..*] outgoingLinks" endLabel="[0..1] from">
572 <target xmi:type="ecore:EReference" href="fam.ecore#//InformationLink/from"/>
573 <semanticElements xmi:type="ecore:EReference" href="fam.ecore#//InformationLink/from"/>
574 <semanticElements xmi:type="ecore:EReference" href="fam.ecore#//FunctionalOutput/outgoingLinks"/>
575 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_YMNRLj6wEemlzLOTmNfcSQ" description="_YMNRJD6wEemlzLOTmNfcSQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
576 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_YMNRLz6wEemlzLOTmNfcSQ" showIcon="false"/>
577 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_YMNRMD6wEemlzLOTmNfcSQ" showIcon="false"/>
578 </ownedStyle>
579 <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']"/>
580 </ownedDiagramElements>
581 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_YMNRND6wEemlzLOTmNfcSQ" sourceNode="_YLZYwT6wEemlzLOTmNfcSQ" targetNode="_YLZYyj6wEemlzLOTmNfcSQ" beginLabel="[0..1] interface" endLabel="[0..*] data">
582 <target xmi:type="ecore:EReference" href="fam.ecore#//FunctionalInterface/data"/>
583 <semanticElements xmi:type="ecore:EReference" href="fam.ecore#//FunctionalInterface/data"/>
584 <semanticElements xmi:type="ecore:EReference" href="fam.ecore#//FunctionalData/interface"/>
585 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_YMNROD6wEemlzLOTmNfcSQ" description="_YMNRNT6wEemlzLOTmNfcSQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
586 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_YMNROT6wEemlzLOTmNfcSQ" showIcon="false"/>
587 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_YMNROj6wEemlzLOTmNfcSQ" showIcon="false"/>
588 </ownedStyle>
589 <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']"/>
590 </ownedDiagramElements>
591 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_YMNRPj6wEemlzLOTmNfcSQ" sourceNode="_YLQO2D6wEemlzLOTmNfcSQ" targetNode="_YLZYyj6wEemlzLOTmNfcSQ" beginLabel="[0..1] terminator" endLabel="[0..1] data">
592 <target xmi:type="ecore:EReference" href="fam.ecore#//FAMTerminator/data"/>
593 <semanticElements xmi:type="ecore:EReference" href="fam.ecore#//FAMTerminator/data"/>
594 <semanticElements xmi:type="ecore:EReference" href="fam.ecore#//FunctionalData/terminator"/>
595 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_YMNRPz6wEemlzLOTmNfcSQ" description="_YMNRJD6wEemlzLOTmNfcSQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
596 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_YMNRQD6wEemlzLOTmNfcSQ" showIcon="false"/>
597 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_YMNRQT6wEemlzLOTmNfcSQ" showIcon="false"/>
598 </ownedStyle>
599 <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']"/>
600 </ownedDiagramElements>
601 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_YMNRRT6wEemlzLOTmNfcSQ" sourceNode="_YLGd0D6wEemlzLOTmNfcSQ" targetNode="_YLZYwT6wEemlzLOTmNfcSQ" beginLabel="[0..1] element" endLabel="[0..1] interface">
602 <target xmi:type="ecore:EReference" href="fam.ecore#//FunctionalElement/interface"/>
603 <semanticElements xmi:type="ecore:EReference" href="fam.ecore#//FunctionalInterface/element"/>
604 <semanticElements xmi:type="ecore:EReference" href="fam.ecore#//FunctionalElement/interface"/>
605 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_YMNRRj6wEemlzLOTmNfcSQ" description="_YMNRNT6wEemlzLOTmNfcSQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
606 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_YMNRRz6wEemlzLOTmNfcSQ" showIcon="false"/>
607 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_YMNRSD6wEemlzLOTmNfcSQ" showIcon="false"/>
608 </ownedStyle>
609 <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']"/>
610 </ownedDiagramElements>
611 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_YMNRTD6wEemlzLOTmNfcSQ" sourceNode="_YLQO2z6wEemlzLOTmNfcSQ" targetNode="_YLZYxD6wEemlzLOTmNfcSQ" beginLabel="[0..*] IncomingLinks" endLabel="[1..1] to">
612 <target xmi:type="ecore:EReference" href="fam.ecore#//InformationLink/to"/>
613 <semanticElements xmi:type="ecore:EReference" href="fam.ecore#//FunctionalInput/IncomingLinks"/>
614 <semanticElements xmi:type="ecore:EReference" href="fam.ecore#//InformationLink/to"/>
615 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_YMNRUD6wEemlzLOTmNfcSQ" description="_YMNRTT6wEemlzLOTmNfcSQ" sourceArrow="InputArrow" routingStyle="manhattan" strokeColor="0,0,0">
616 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_YMNRUT6wEemlzLOTmNfcSQ" showIcon="false">
617 <labelFormat>bold</labelFormat>
618 </beginLabelStyle>
619 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_YMNRUj6wEemlzLOTmNfcSQ" showIcon="false">
620 <labelFormat>bold</labelFormat>
621 </endLabelStyle>
622 </ownedStyle>
623 <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']"/>
624 </ownedDiagramElements>
625 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
626 <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_XZsPAD6wEemlzLOTmNfcSQ"/>
627 <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
628 <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']"/>
629 <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']"/>
630 <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']"/>
631 <target xmi:type="ecore:EPackage" href="fam.ecore#/"/>
632 </diagram:DSemanticDiagram>
633</xmi:XMI>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/plugin.xml b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/plugin.xml
index 28ea4798..a2a573fc 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/plugin.xml
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/plugin.xml
@@ -23,6 +23,8 @@
23 <extension id="ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.FamPatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> 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"> 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"/> 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"/>
26 </group> 28 </group>
27 </extension> 29 </extension>
28 <extension id="ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.queries.FileSystemPatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> 30 <extension id="ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.queries.FileSystemPatterns" point="org.eclipse.viatra.query.runtime.queryspecification">
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/queries/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/famPatterns.vql b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/queries/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/famPatterns.vql
index 1c6a545e..7e0db222 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/queries/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/famPatterns.vql
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/queries/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/famPatterns.vql
@@ -25,7 +25,7 @@ pattern type(This : Function, Target : FunctionType) = {
25 find parent(_Child, This); 25 find parent(_Child, This);
26 Target == FunctionType::Intermediate; 26 Target == FunctionType::Intermediate;
27} 27}
28 28*/
29pattern rootElements(Model: FunctionalArchitectureModel, Root : Function) = { 29pattern rootElements(Model: FunctionalArchitectureModel, Root : Function) = {
30 FunctionalArchitectureModel.rootElements(Model, Root); 30 FunctionalArchitectureModel.rootElements(Model, Root);
31} 31}
@@ -33,7 +33,7 @@ pattern rootElements(Model: FunctionalArchitectureModel, Root : Function) = {
33pattern parent(Func : Function, Par : Function) = { 33pattern parent(Func : Function, Par : Function) = {
34 Function.parent(Func, Par); 34 Function.parent(Func, Par);
35} 35}
36 36/*
37@QueryBasedFeature 37@QueryBasedFeature
38pattern model(This:FunctionalElement, Target: FunctionalArchitectureModel) { 38pattern model(This:FunctionalElement, Target: FunctionalArchitectureModel) {
39 FunctionalElement(This); 39 FunctionalElement(This);
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/queries/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/famSPatterns.vql b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/queries/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/famSPatterns.vql
deleted file mode 100644
index 307b0f9c..00000000
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/queries/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/famSPatterns.vql
+++ /dev/null
@@ -1,13 +0,0 @@
1package ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries
2
3//import epackage "http://www.inf.mit.bme.hu/viatrasolver/example/fam"
4import epackage "FamMetamodel"
5
6@Constraint(message="terminatorAndInformation", severity="error", key={T})
7pattern terminatorAndInformation(T : FAMTerminator, I : InformationLink) = {
8 FunctionalOutput.outgoingLinks(Out,I);
9 FunctionalOutput.terminator(Out,T);
10} or {
11 InformationLink.to(I,In);
12 FunctionalInput.terminator(In,T);
13} \ No newline at end of file
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.gitignore b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.gitignore
index ae3c1726..7d818ce2 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.gitignore
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.gitignore
@@ -1 +1,4 @@
1/bin/ 1/bin/
2/xtend-gen/
3/src-gen/
4/output/*
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/yakindu/yakinduPatterns.vql_ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/yakindu/yakinduPatterns.vql_
new file mode 100644
index 00000000..f52113ca
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/yakindu/yakinduPatterns.vql_
@@ -0,0 +1,227 @@
1package ca.mcgill.ecse.dslreasoner.yakindu.queries
2
3import epackage "hu.bme.mit.inf.yakindumm"
4
5/////////
6// Entry
7/////////
8
9pattern entryInRegion(r1 : Region, e1 : Entry) {
10 Region.vertices(r1, e1);
11}
12
13@Constraint(severity="error", message="error", key = {r1})
14pattern noEntryInRegion(r1 : Region) {
15 neg find entryInRegion(r1, _);
16}
17
18@Constraint(severity="error", message="error", key = {r})
19pattern multipleEntryInRegion(r : Region) {
20 find entryInRegion(r, e1);
21 find entryInRegion(r, e2);
22 e1 != e2;
23}
24
25pattern transition(t : Transition, src : Vertex, trg : Vertex) {
26 Transition.source(t, src);
27 Transition.target(t, trg);
28}
29
30@Constraint(severity="error", message="error", key = {e})
31pattern incomingToEntry(t : Transition, e : Entry) {
32 find transition(t, _, e);
33}
34
35@Constraint(severity="error", message="error", key = {e})
36pattern noOutgoingTransitionFromEntry(e : Entry) {
37 neg find transition(_, e, _);
38}
39
40@Constraint(severity="error", message="error", key = {e})
41pattern multipleTransitionFromEntry(e : Entry, t1 : Transition, t2: Transition) {
42 Entry.outgoingTransitions(e,t1);
43 Entry.outgoingTransitions(e,t2);
44 t1!=t2;
45}
46
47/////////
48// Exit
49/////////
50
51@Constraint(severity="error", message="error", key = {e})
52pattern outgoingFromExit(t : Transition, e : Exit) {
53 Exit.outgoingTransitions(e,t);
54}
55
56/////////
57// Final
58/////////
59
60@Constraint(severity="error", message="error", key = {f})
61pattern outgoingFromFinal(t : Transition, f : FinalState) {
62 FinalState.outgoingTransitions(f,t);
63}
64
65/////////
66// State vs Region
67/////////
68
69@Constraint(severity="error", message="error", key = {region})
70pattern noStateInRegion(region: Region) {
71 neg find StateInRegion(region,_);
72}
73pattern StateInRegion(region: Region, state: State) {
74 Region.vertices(region,state);
75}
76
77/////////
78// Choice
79/////////
80
81@Constraint(severity="error", message="error", key = {c})
82pattern choiceHasNoOutgoing(c : Choice) {
83 neg find transition(_, c, _);
84}
85
86@Constraint(severity="error", message="error", key = {c})
87pattern choiceHasNoIncoming(c: Choice) {
88 neg find transition(_, _, c);
89}
90
91/////////
92// Synchronization
93/////////
94
95@Constraint(severity="error", message="error", key = {s})
96pattern synchHasNoOutgoing(s : Synchronization) {
97 neg find transition(_, s, _);
98}
99
100@Constraint(severity="error", message="error", key = {s})
101pattern synchHasNoIncoming(s : Synchronization) {
102 neg find transition(_, _, s);
103}
104
105@Constraint(severity="error", message="error", key = {s})
106pattern SynchronizedIncomingInSameRegion(s : Synchronization, v1 : Vertex, v2 : Vertex) {
107 find transition(t1, v1, s);
108 find transition(t2, v2, s);
109 t1!=t2;
110 Region.vertices(r, v1);
111 Region.vertices(r, v2);
112} or {
113 find transition(t1, s, v1);
114 find transition(t2, s, v2);
115 t1!=t2;
116 Region.vertices(r, v1);
117 Region.vertices(r, v2);
118}
119
120@Constraint(severity="error", message="error", key = {s})
121pattern notSynchronizingStates(s : Synchronization) {
122 neg find hasMultipleOutgoingTrainsition(s);
123 neg find hasMultipleIncomingTrainsition(s);
124}
125
126pattern hasMultipleOutgoingTrainsition(v : Synchronization) {
127 find transition(_, v, trg1);
128 find transition(_, v, trg2);
129 trg1 != trg2;
130}
131
132pattern hasMultipleIncomingTrainsition(v : Synchronization) {
133 find transition(_, src1, v);
134 find transition(_, src2, v);
135 src1 != src2;
136}
137
138@Constraint(severity="error", message="error", key = {s})
139pattern SynchronizedRegionsAreNotSiblings(s : Synchronization, v1 : Vertex, v2 : Vertex) {
140 find transition(_, v1, s);
141 find transition(_, v2, s);
142 CompositeElement.regions.vertices(r1, v1);
143 CompositeElement.regions.vertices(r2, v2);
144 r1 != r2;
145} or {
146 find transition(_, s, v1);
147 find transition(_, s, v2);
148 CompositeElement.regions.vertices(r1, v1);
149 CompositeElement.regions.vertices(r2, v2);
150 r1 != r2;
151}
152
153///////////////////////////////
154// Extra
155//
156//@Constraint(severity="error", message="error", key = {s})
157//pattern SynchronizedRegionDoesNotHaveParent(s : Synchronization, v : Vertex) {
158// find transition(_, v, s);
159// neg find child(_,v);
160//} or {
161// find transition(_, s, v);
162// neg find child(_,v);
163//}
164
165pattern child(parent: CompositeElement, child: Vertex) {
166 CompositeElement.regions.vertices(parent, child);
167}
168
169@Constraint(severity="error", message="error", key = {s})
170pattern SynchronizedRegionDoesNotHaveMultipleRegions(s : Synchronization, v : Vertex) {
171 find transition(_, v, s);
172 find child(c,v);
173 neg find hasMultipleRegions(c);
174} or {
175 find transition(_, s, v);
176 find child(c,v);
177 neg find hasMultipleRegions(c);
178}
179
180
181pattern hasMultipleRegions(composite: CompositeElement) {
182 CompositeElement.regions(composite,region1);
183 CompositeElement.regions(composite,region2);
184 region1 != region2;
185}
186
187/**
188 * Simplifying model generation
189 */
190@Constraint(severity="error", message="error", key = {s})
191pattern synchThree(s: Synchronization) {
192 Transition.target(t1,s);
193 Transition.target(t2,s);
194 Transition.target(t3,s);
195 t1!=t2;
196 t2!=t3;
197 t1!=t3;
198} or {
199 Transition.source(t1,s);
200 Transition.source(t2,s);
201 Transition.source(t3,s);
202 t1!=t2;
203 t2!=t3;
204 t1!=t3;
205}
206
207/**
208 * Simplifying model generation
209 */
210@Constraint(severity="error", message="error", key = {s1,s2})
211pattern twoSynch(s1 : Synchronization, s2 : Synchronization) {
212 Synchronization(s1);
213 Synchronization(s2);
214 s1 != s2;
215}
216
217/**
218 * Model generation task: at least one synch
219 */
220@Constraint(severity="error", message="error", key = {s})
221pattern noSynch(s:Statechart) {
222 Statechart(s);
223 neg find synch(_);
224}
225pattern synch(s:Synchronization) {
226 Synchronization(s);
227} \ No newline at end of file
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/yakindu/yakindu_simplified.aird b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/yakindu/yakindu_simplified.aird
new file mode 100644
index 00000000..38b2b410
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/yakindu/yakindu_simplified.aird
@@ -0,0 +1,704 @@
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="_HYD4oOn9EemFBtgp5W26GA" selectedViews="_IBOxcOn9EemFBtgp5W26GA _IBa-sOn9EemFBtgp5W26GA _IBblwOn9EemFBtgp5W26GA _IBgeQOn9EemFBtgp5W26GA" version="14.1.0.201810161215">
4 <semanticResources>yakindu_simplified.ecore</semanticResources>
5 <semanticResources>yakindu_simplified.genmodel</semanticResources>
6 <ownedViews xmi:type="viewpoint:DView" uid="_IBOxcOn9EemFBtgp5W26GA">
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="_JMbZQOn9EemFBtgp5W26GA" name="yakindumm class diagram" repPath="#_JKuwIOn9EemFBtgp5W26GA">
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="yakindu_simplified.ecore#/"/>
11 </ownedRepresentationDescriptors>
12 </ownedViews>
13 <ownedViews xmi:type="viewpoint:DView" uid="_IBa-sOn9EemFBtgp5W26GA">
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="_IBblwOn9EemFBtgp5W26GA">
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="_IBgeQOn9EemFBtgp5W26GA">
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="_JKuwIOn9EemFBtgp5W26GA" name="yakindumm class diagram">
24 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_JMS2YOn9EemFBtgp5W26GA" source="DANNOTATION_CUSTOMIZATION_KEY">
25 <data xmi:type="diagram:ComputedStyleDescriptionRegistry" uid="_JMTdcOn9EemFBtgp5W26GA">
26 <computedStyleDescriptions xmi:type="style:BundledImageDescription" xmi:id="_J83XsOn9EemFBtgp5W26GA" labelExpression="service:render" labelAlignment="LEFT" tooltipExpression="service:renderTooltip" sizeComputationExpression="1">
27 <borderColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
28 <labelFormat>bold</labelFormat>
29 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
30 <color xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
31 </computedStyleDescriptions>
32 <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_J9Dk8On9EemFBtgp5W26GA" sourceArrow="FillDiamond" routingStyle="manhattan">
33 <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
34 <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_J9Dk8en9EemFBtgp5W26GA" showIcon="false" labelExpression="service:render">
35 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
36 </centerLabelStyleDescription>
37 <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_J9Dk8un9EemFBtgp5W26GA" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
38 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
39 </endLabelStyleDescription>
40 </computedStyleDescriptions>
41 <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_J9UqsOn9EemFBtgp5W26GA" sourceArrow="FillDiamond" routingStyle="manhattan">
42 <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
43 <beginLabelStyleDescription xmi:type="style:BeginLabelStyleDescription" xmi:id="_J9Uqsen9EemFBtgp5W26GA" showIcon="false" labelExpression="service:renderEOpposite">
44 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
45 </beginLabelStyleDescription>
46 <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_J9Uqsun9EemFBtgp5W26GA" showIcon="false" labelExpression="service:render">
47 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
48 </endLabelStyleDescription>
49 </computedStyleDescriptions>
50 </data>
51 </ownedAnnotationEntries>
52 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_JNGHoOn9EemFBtgp5W26GA" source="GMF_DIAGRAMS">
53 <data xmi:type="notation:Diagram" xmi:id="_JNGHoen9EemFBtgp5W26GA" type="Sirius" element="_JKuwIOn9EemFBtgp5W26GA" measurementUnit="Pixel">
54 <children xmi:type="notation:Node" xmi:id="_J9aKQOn9EemFBtgp5W26GA" type="2003" element="_J8MpUOn9EemFBtgp5W26GA">
55 <children xmi:type="notation:Node" xmi:id="_J9bYYOn9EemFBtgp5W26GA" type="5007"/>
56 <children xmi:type="notation:Node" xmi:id="_J9d0oOn9EemFBtgp5W26GA" type="7004">
57 <styles xmi:type="notation:SortingStyle" xmi:id="_J9d0oen9EemFBtgp5W26GA"/>
58 <styles xmi:type="notation:FilteringStyle" xmi:id="_J9d0oun9EemFBtgp5W26GA"/>
59 </children>
60 <styles xmi:type="notation:ShapeStyle" xmi:id="_J9aKQen9EemFBtgp5W26GA" fontName="Segoe UI" fontHeight="8" italic="true"/>
61 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J9aKQun9EemFBtgp5W26GA" x="480" y="324"/>
62 </children>
63 <children xmi:type="notation:Node" xmi:id="_J9ebsOn9EemFBtgp5W26GA" type="2003" element="_J8TXAOn9EemFBtgp5W26GA">
64 <children xmi:type="notation:Node" xmi:id="_J9fCwOn9EemFBtgp5W26GA" type="5007"/>
65 <children xmi:type="notation:Node" xmi:id="_J9fCwen9EemFBtgp5W26GA" type="7004">
66 <styles xmi:type="notation:SortingStyle" xmi:id="_J9fCwun9EemFBtgp5W26GA"/>
67 <styles xmi:type="notation:FilteringStyle" xmi:id="_J9fCw-n9EemFBtgp5W26GA"/>
68 </children>
69 <styles xmi:type="notation:ShapeStyle" xmi:id="_J9ebsen9EemFBtgp5W26GA" fontName="Segoe UI" fontHeight="8" italic="true"/>
70 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J9ebsun9EemFBtgp5W26GA" x="696" y="156"/>
71 </children>
72 <children xmi:type="notation:Node" xmi:id="_J9fp0On9EemFBtgp5W26GA" type="2003" element="_J8VMMOn9EemFBtgp5W26GA">
73 <children xmi:type="notation:Node" xmi:id="_J9fp0-n9EemFBtgp5W26GA" type="5007"/>
74 <children xmi:type="notation:Node" xmi:id="_J9fp1On9EemFBtgp5W26GA" type="7004">
75 <styles xmi:type="notation:SortingStyle" xmi:id="_J9fp1en9EemFBtgp5W26GA"/>
76 <styles xmi:type="notation:FilteringStyle" xmi:id="_J9fp1un9EemFBtgp5W26GA"/>
77 </children>
78 <styles xmi:type="notation:ShapeStyle" xmi:id="_J9fp0en9EemFBtgp5W26GA" fontName="Segoe UI" fontHeight="8"/>
79 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J9fp0un9EemFBtgp5W26GA" x="876" y="324"/>
80 </children>
81 <children xmi:type="notation:Node" xmi:id="_J9gQ4On9EemFBtgp5W26GA" type="2003" element="_J8WaUOn9EemFBtgp5W26GA">
82 <children xmi:type="notation:Node" xmi:id="_J9gQ4-n9EemFBtgp5W26GA" type="5007"/>
83 <children xmi:type="notation:Node" xmi:id="_J9gQ5On9EemFBtgp5W26GA" type="7004">
84 <styles xmi:type="notation:SortingStyle" xmi:id="_J9gQ5en9EemFBtgp5W26GA"/>
85 <styles xmi:type="notation:FilteringStyle" xmi:id="_J9gQ5un9EemFBtgp5W26GA"/>
86 </children>
87 <styles xmi:type="notation:ShapeStyle" xmi:id="_J9gQ4en9EemFBtgp5W26GA" fontName="Segoe UI" fontHeight="8"/>
88 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J9gQ4un9EemFBtgp5W26GA" x="696"/>
89 </children>
90 <children xmi:type="notation:Node" xmi:id="_J9g38On9EemFBtgp5W26GA" type="2003" element="_J8XBYun9EemFBtgp5W26GA">
91 <children xmi:type="notation:Node" xmi:id="_J9g38-n9EemFBtgp5W26GA" type="5007"/>
92 <children xmi:type="notation:Node" xmi:id="_J9g39On9EemFBtgp5W26GA" type="7004">
93 <styles xmi:type="notation:SortingStyle" xmi:id="_J9g39en9EemFBtgp5W26GA"/>
94 <styles xmi:type="notation:FilteringStyle" xmi:id="_J9g39un9EemFBtgp5W26GA"/>
95 </children>
96 <styles xmi:type="notation:ShapeStyle" xmi:id="_J9g38en9EemFBtgp5W26GA" fontName="Segoe UI" fontHeight="8"/>
97 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J9g38un9EemFBtgp5W26GA" x="984" y="636"/>
98 </children>
99 <children xmi:type="notation:Node" xmi:id="_J9g39-n9EemFBtgp5W26GA" type="2003" element="_J8YPgen9EemFBtgp5W26GA">
100 <children xmi:type="notation:Node" xmi:id="_J9hfAOn9EemFBtgp5W26GA" type="5007"/>
101 <children xmi:type="notation:Node" xmi:id="_J9hfAen9EemFBtgp5W26GA" type="7004">
102 <children xmi:type="notation:Node" xmi:id="_J9oMsOn9EemFBtgp5W26GA" type="3010" element="_J82JkOn9EemFBtgp5W26GA">
103 <styles xmi:type="notation:FontStyle" xmi:id="_J9oMsen9EemFBtgp5W26GA" fontName="Segoe UI" fontHeight="8" bold="true"/>
104 <layoutConstraint xmi:type="notation:Location" xmi:id="_J9oMsun9EemFBtgp5W26GA"/>
105 </children>
106 <styles xmi:type="notation:SortingStyle" xmi:id="_J9hfAun9EemFBtgp5W26GA"/>
107 <styles xmi:type="notation:FilteringStyle" xmi:id="_J9hfA-n9EemFBtgp5W26GA"/>
108 </children>
109 <styles xmi:type="notation:ShapeStyle" xmi:id="_J9g3-On9EemFBtgp5W26GA" fontName="Segoe UI" fontHeight="8"/>
110 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J9g3-en9EemFBtgp5W26GA" x="144" y="480"/>
111 </children>
112 <children xmi:type="notation:Node" xmi:id="_J9hfBOn9EemFBtgp5W26GA" type="2003" element="_J8ZdoOn9EemFBtgp5W26GA">
113 <children xmi:type="notation:Node" xmi:id="_J9iGEOn9EemFBtgp5W26GA" type="5007"/>
114 <children xmi:type="notation:Node" xmi:id="_J9itIOn9EemFBtgp5W26GA" type="7004">
115 <styles xmi:type="notation:SortingStyle" xmi:id="_J9itIen9EemFBtgp5W26GA"/>
116 <styles xmi:type="notation:FilteringStyle" xmi:id="_J9itIun9EemFBtgp5W26GA"/>
117 </children>
118 <styles xmi:type="notation:ShapeStyle" xmi:id="_J9hfBen9EemFBtgp5W26GA" fontName="Segoe UI" fontHeight="8"/>
119 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J9hfBun9EemFBtgp5W26GA" x="696" y="636"/>
120 </children>
121 <children xmi:type="notation:Node" xmi:id="_J9jUMOn9EemFBtgp5W26GA" type="2003" element="_J8arwOn9EemFBtgp5W26GA">
122 <children xmi:type="notation:Node" xmi:id="_J9j7QOn9EemFBtgp5W26GA" type="5007"/>
123 <children xmi:type="notation:Node" xmi:id="_J9j7Qen9EemFBtgp5W26GA" type="7004">
124 <styles xmi:type="notation:SortingStyle" xmi:id="_J9j7Qun9EemFBtgp5W26GA"/>
125 <styles xmi:type="notation:FilteringStyle" xmi:id="_J9j7Q-n9EemFBtgp5W26GA"/>
126 </children>
127 <styles xmi:type="notation:ShapeStyle" xmi:id="_J9jUMen9EemFBtgp5W26GA" fontName="Segoe UI" fontHeight="8" italic="true"/>
128 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J9jUMun9EemFBtgp5W26GA" x="696" y="324"/>
129 </children>
130 <children xmi:type="notation:Node" xmi:id="_J9j7ROn9EemFBtgp5W26GA" type="2003" element="_J8b54On9EemFBtgp5W26GA">
131 <children xmi:type="notation:Node" xmi:id="_J9j7R-n9EemFBtgp5W26GA" type="5007"/>
132 <children xmi:type="notation:Node" xmi:id="_J9kiUOn9EemFBtgp5W26GA" type="7004">
133 <styles xmi:type="notation:SortingStyle" xmi:id="_J9kiUen9EemFBtgp5W26GA"/>
134 <styles xmi:type="notation:FilteringStyle" xmi:id="_J9kiUun9EemFBtgp5W26GA"/>
135 </children>
136 <styles xmi:type="notation:ShapeStyle" xmi:id="_J9j7Ren9EemFBtgp5W26GA" fontName="Segoe UI" fontHeight="8" italic="true"/>
137 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J9j7Run9EemFBtgp5W26GA" x="984" y="480"/>
138 </children>
139 <children xmi:type="notation:Node" xmi:id="_J9kiU-n9EemFBtgp5W26GA" type="2003" element="_J8dvEOn9EemFBtgp5W26GA">
140 <children xmi:type="notation:Node" xmi:id="_J9lJYOn9EemFBtgp5W26GA" type="5007"/>
141 <children xmi:type="notation:Node" xmi:id="_J9lJYen9EemFBtgp5W26GA" type="7004">
142 <styles xmi:type="notation:SortingStyle" xmi:id="_J9lJYun9EemFBtgp5W26GA"/>
143 <styles xmi:type="notation:FilteringStyle" xmi:id="_J9lJY-n9EemFBtgp5W26GA"/>
144 </children>
145 <styles xmi:type="notation:ShapeStyle" xmi:id="_J9kiVOn9EemFBtgp5W26GA" fontName="Segoe UI" fontHeight="8"/>
146 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J9kiVen9EemFBtgp5W26GA" x="408" y="480"/>
147 </children>
148 <children xmi:type="notation:Node" xmi:id="_J9lJZOn9EemFBtgp5W26GA" type="2003" element="_J8fkQOn9EemFBtgp5W26GA">
149 <children xmi:type="notation:Node" xmi:id="_J9lwcOn9EemFBtgp5W26GA" type="5007"/>
150 <children xmi:type="notation:Node" xmi:id="_J9lwcen9EemFBtgp5W26GA" type="7004">
151 <styles xmi:type="notation:SortingStyle" xmi:id="_J9lwcun9EemFBtgp5W26GA"/>
152 <styles xmi:type="notation:FilteringStyle" xmi:id="_J9lwc-n9EemFBtgp5W26GA"/>
153 </children>
154 <styles xmi:type="notation:ShapeStyle" xmi:id="_J9lJZen9EemFBtgp5W26GA" fontName="Segoe UI" fontHeight="8"/>
155 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J9lJZun9EemFBtgp5W26GA" x="588" y="480"/>
156 </children>
157 <children xmi:type="notation:Node" xmi:id="_J9mXgOn9EemFBtgp5W26GA" type="2003" element="_J8gyYOn9EemFBtgp5W26GA">
158 <children xmi:type="notation:Node" xmi:id="_J9mXg-n9EemFBtgp5W26GA" type="5007"/>
159 <children xmi:type="notation:Node" xmi:id="_J9m-kOn9EemFBtgp5W26GA" type="7004">
160 <styles xmi:type="notation:SortingStyle" xmi:id="_J9m-ken9EemFBtgp5W26GA"/>
161 <styles xmi:type="notation:FilteringStyle" xmi:id="_J9m-kun9EemFBtgp5W26GA"/>
162 </children>
163 <styles xmi:type="notation:ShapeStyle" xmi:id="_J9mXgen9EemFBtgp5W26GA" fontName="Segoe UI" fontHeight="8"/>
164 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J9mXgun9EemFBtgp5W26GA" x="804" y="480"/>
165 </children>
166 <children xmi:type="notation:Node" xmi:id="_J9m-k-n9EemFBtgp5W26GA" type="2003" element="_J8iAgOn9EemFBtgp5W26GA">
167 <children xmi:type="notation:Node" xmi:id="_J9m-lun9EemFBtgp5W26GA" type="5007"/>
168 <children xmi:type="notation:Node" xmi:id="_J9nloOn9EemFBtgp5W26GA" type="7004">
169 <children xmi:type="notation:Node" xmi:id="_J9ozwOn9EemFBtgp5W26GA" type="3010" element="_J883QOn9EemFBtgp5W26GA">
170 <styles xmi:type="notation:FontStyle" xmi:id="_J9ozwen9EemFBtgp5W26GA" fontName="Segoe UI" fontHeight="8"/>
171 <layoutConstraint xmi:type="notation:Location" xmi:id="_J9ozwun9EemFBtgp5W26GA"/>
172 </children>
173 <children xmi:type="notation:Node" xmi:id="_J9ozw-n9EemFBtgp5W26GA" type="3010" element="_J883Qun9EemFBtgp5W26GA">
174 <styles xmi:type="notation:FontStyle" xmi:id="_J9ozxOn9EemFBtgp5W26GA" fontName="Segoe UI" fontHeight="8"/>
175 <layoutConstraint xmi:type="notation:Location" xmi:id="_J9ozxen9EemFBtgp5W26GA"/>
176 </children>
177 <children xmi:type="notation:Node" xmi:id="_J9pa0On9EemFBtgp5W26GA" type="3010" element="_J89eUOn9EemFBtgp5W26GA">
178 <styles xmi:type="notation:FontStyle" xmi:id="_J9pa0en9EemFBtgp5W26GA" fontName="Segoe UI" fontHeight="8"/>
179 <layoutConstraint xmi:type="notation:Location" xmi:id="_J9pa0un9EemFBtgp5W26GA"/>
180 </children>
181 <styles xmi:type="notation:SortingStyle" xmi:id="_J9nloen9EemFBtgp5W26GA"/>
182 <styles xmi:type="notation:FilteringStyle" xmi:id="_J9nloun9EemFBtgp5W26GA"/>
183 </children>
184 <styles xmi:type="notation:ShapeStyle" xmi:id="_J9m-lOn9EemFBtgp5W26GA" fontName="Segoe UI" fontHeight="8"/>
185 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J9m-len9EemFBtgp5W26GA" x="363" y="168"/>
186 </children>
187 <styles xmi:type="notation:DiagramStyle" xmi:id="_JNGHoun9EemFBtgp5W26GA"/>
188 <edges xmi:type="notation:Edge" xmi:id="_J9ykwOn9EemFBtgp5W26GA" type="4001" element="_J9BvwOn9EemFBtgp5W26GA" source="_J9fp0On9EemFBtgp5W26GA" target="_J9ebsOn9EemFBtgp5W26GA">
189 <children xmi:type="notation:Node" xmi:id="_J9zL0On9EemFBtgp5W26GA" type="6001">
190 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J9zL0en9EemFBtgp5W26GA" y="-10"/>
191 </children>
192 <children xmi:type="notation:Node" xmi:id="_J9zy4On9EemFBtgp5W26GA" type="6002">
193 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J9zy4en9EemFBtgp5W26GA" y="10"/>
194 </children>
195 <children xmi:type="notation:Node" xmi:id="_J90Z8On9EemFBtgp5W26GA" type="6003">
196 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J90Z8en9EemFBtgp5W26GA" y="10"/>
197 </children>
198 <styles xmi:type="notation:ConnectorStyle" xmi:id="_J9ykwen9EemFBtgp5W26GA" routing="Rectilinear"/>
199 <styles xmi:type="notation:FontStyle" xmi:id="_J9ykwun9EemFBtgp5W26GA" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
200 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_J9ykw-n9EemFBtgp5W26GA" points="[0, 0, 180, 60]$[-180, -60, 0, 0]"/>
201 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-AnMOn9EemFBtgp5W26GA" id="(0.5,0.0)"/>
202 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-AnMen9EemFBtgp5W26GA" id="(0.5,1.0)"/>
203 </edges>
204 <edges xmi:type="notation:Edge" xmi:id="_J-BOQOn9EemFBtgp5W26GA" type="4001" element="_J9H2YOn9EemFBtgp5W26GA" source="_J9j7ROn9EemFBtgp5W26GA" target="_J9fp0On9EemFBtgp5W26GA">
205 <children xmi:type="notation:Node" xmi:id="_J-BOROn9EemFBtgp5W26GA" type="6001">
206 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-BORen9EemFBtgp5W26GA" y="-10"/>
207 </children>
208 <children xmi:type="notation:Node" xmi:id="_J-B1UOn9EemFBtgp5W26GA" type="6002">
209 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-B1Uen9EemFBtgp5W26GA" y="10"/>
210 </children>
211 <children xmi:type="notation:Node" xmi:id="_J-B1Uun9EemFBtgp5W26GA" type="6003">
212 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-B1U-n9EemFBtgp5W26GA" y="10"/>
213 </children>
214 <styles xmi:type="notation:ConnectorStyle" xmi:id="_J-BOQen9EemFBtgp5W26GA" routing="Rectilinear"/>
215 <styles xmi:type="notation:FontStyle" xmi:id="_J-BOQun9EemFBtgp5W26GA" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
216 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_J-BOQ-n9EemFBtgp5W26GA" points="[0, 0, 106, 60]$[-106, -60, 0, 0]"/>
217 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-B1VOn9EemFBtgp5W26GA" id="(0.5,0.0)"/>
218 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-B1Ven9EemFBtgp5W26GA" id="(0.5,1.0)"/>
219 </edges>
220 <edges xmi:type="notation:Edge" xmi:id="_J-B1Vun9EemFBtgp5W26GA" type="4001" element="_J9JrkOn9EemFBtgp5W26GA" source="_J9g38On9EemFBtgp5W26GA" target="_J9j7ROn9EemFBtgp5W26GA">
221 <children xmi:type="notation:Node" xmi:id="_J-CcYOn9EemFBtgp5W26GA" type="6001">
222 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-CcYen9EemFBtgp5W26GA" y="-10"/>
223 </children>
224 <children xmi:type="notation:Node" xmi:id="_J-CcYun9EemFBtgp5W26GA" type="6002">
225 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-CcY-n9EemFBtgp5W26GA" y="10"/>
226 </children>
227 <children xmi:type="notation:Node" xmi:id="_J-CcZOn9EemFBtgp5W26GA" type="6003">
228 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-CcZen9EemFBtgp5W26GA" y="10"/>
229 </children>
230 <styles xmi:type="notation:ConnectorStyle" xmi:id="_J-B1V-n9EemFBtgp5W26GA" routing="Tree"/>
231 <styles xmi:type="notation:FontStyle" xmi:id="_J-B1WOn9EemFBtgp5W26GA" fontName="Segoe UI" fontHeight="8"/>
232 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_J-B1Wen9EemFBtgp5W26GA" points="[37, 0, 37, 58]$[37, -24, 37, 34]$[1, -24, 1, 34]$[1, -58, 1, 0]"/>
233 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-DDcOn9EemFBtgp5W26GA" id="(0.5,0.0)"/>
234 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-DDcen9EemFBtgp5W26GA" id="(0.5,1.0)"/>
235 </edges>
236 <edges xmi:type="notation:Edge" xmi:id="_J-DDcun9EemFBtgp5W26GA" type="4001" element="_J9NV8-n9EemFBtgp5W26GA" source="_J9mXgOn9EemFBtgp5W26GA" target="_J9jUMOn9EemFBtgp5W26GA">
237 <children xmi:type="notation:Node" xmi:id="_J-DDdun9EemFBtgp5W26GA" type="6001">
238 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-DDd-n9EemFBtgp5W26GA" y="-10"/>
239 </children>
240 <children xmi:type="notation:Node" xmi:id="_J-DqgOn9EemFBtgp5W26GA" type="6002">
241 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-Dqgen9EemFBtgp5W26GA" y="10"/>
242 </children>
243 <children xmi:type="notation:Node" xmi:id="_J-Dqgun9EemFBtgp5W26GA" type="6003">
244 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-Dqg-n9EemFBtgp5W26GA" y="10"/>
245 </children>
246 <styles xmi:type="notation:ConnectorStyle" xmi:id="_J-DDc-n9EemFBtgp5W26GA" routing="Tree"/>
247 <styles xmi:type="notation:FontStyle" xmi:id="_J-DDdOn9EemFBtgp5W26GA" fontName="Segoe UI" fontHeight="8"/>
248 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_J-DDden9EemFBtgp5W26GA" points="[0, 0, 108, 58]$[0, -24, 108, 34]$[-107, -24, 1, 34]$[-107, -58, 1, 0]"/>
249 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-ERkOn9EemFBtgp5W26GA" id="(0.5,0.0)"/>
250 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-ERken9EemFBtgp5W26GA" id="(0.5,1.0)"/>
251 </edges>
252 <edges xmi:type="notation:Edge" xmi:id="_J-ERkun9EemFBtgp5W26GA" type="4001" element="_J9OkEOn9EemFBtgp5W26GA" source="_J9g39-n9EemFBtgp5W26GA" target="_J9aKQOn9EemFBtgp5W26GA">
253 <children xmi:type="notation:Node" xmi:id="_J-ERlun9EemFBtgp5W26GA" type="6001">
254 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-ERl-n9EemFBtgp5W26GA" y="-10"/>
255 </children>
256 <children xmi:type="notation:Node" xmi:id="_J-ERmOn9EemFBtgp5W26GA" type="6002">
257 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-ERmen9EemFBtgp5W26GA" y="10"/>
258 </children>
259 <children xmi:type="notation:Node" xmi:id="_J-ERmun9EemFBtgp5W26GA" type="6003">
260 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-ERm-n9EemFBtgp5W26GA" y="10"/>
261 </children>
262 <styles xmi:type="notation:ConnectorStyle" xmi:id="_J-ERk-n9EemFBtgp5W26GA" routing="Tree"/>
263 <styles xmi:type="notation:FontStyle" xmi:id="_J-ERlOn9EemFBtgp5W26GA" fontName="Segoe UI" fontHeight="8"/>
264 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_J-ERlen9EemFBtgp5W26GA" points="[0, 0, -270, 60]$[270, -60, 0, 0]"/>
265 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-E4oOn9EemFBtgp5W26GA" id="(0.5,0.0)"/>
266 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-E4oen9EemFBtgp5W26GA" id="(0.5,1.0)"/>
267 </edges>
268 <edges xmi:type="notation:Edge" xmi:id="_J-E4oun9EemFBtgp5W26GA" type="4001" element="_J9PLIOn9EemFBtgp5W26GA" source="_J9lJZOn9EemFBtgp5W26GA" target="_J9aKQOn9EemFBtgp5W26GA">
269 <children xmi:type="notation:Node" xmi:id="_J-E4pun9EemFBtgp5W26GA" type="6001">
270 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-E4p-n9EemFBtgp5W26GA" y="-10"/>
271 </children>
272 <children xmi:type="notation:Node" xmi:id="_J-E4qOn9EemFBtgp5W26GA" type="6002">
273 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-E4qen9EemFBtgp5W26GA" y="10"/>
274 </children>
275 <children xmi:type="notation:Node" xmi:id="_J-E4qun9EemFBtgp5W26GA" type="6003">
276 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-E4q-n9EemFBtgp5W26GA" y="10"/>
277 </children>
278 <styles xmi:type="notation:ConnectorStyle" xmi:id="_J-E4o-n9EemFBtgp5W26GA" routing="Tree"/>
279 <styles xmi:type="notation:FontStyle" xmi:id="_J-E4pOn9EemFBtgp5W26GA" fontName="Segoe UI" fontHeight="8"/>
280 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_J-E4pen9EemFBtgp5W26GA" points="[0, 0, 115, 60]$[-115, -60, 0, 0]"/>
281 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-FfsOn9EemFBtgp5W26GA" id="(0.5,0.0)"/>
282 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-Ffsen9EemFBtgp5W26GA" id="(0.5,1.0)"/>
283 </edges>
284 <edges xmi:type="notation:Edge" xmi:id="_J-Ffsun9EemFBtgp5W26GA" type="4001" element="_J9PyMOn9EemFBtgp5W26GA" source="_J9hfBOn9EemFBtgp5W26GA" target="_J9jUMOn9EemFBtgp5W26GA">
285 <children xmi:type="notation:Node" xmi:id="_J-Fftun9EemFBtgp5W26GA" type="6001">
286 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-Fft-n9EemFBtgp5W26GA" y="-10"/>
287 </children>
288 <children xmi:type="notation:Node" xmi:id="_J-GGwOn9EemFBtgp5W26GA" type="6002">
289 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-GGwen9EemFBtgp5W26GA" y="10"/>
290 </children>
291 <children xmi:type="notation:Node" xmi:id="_J-GGwun9EemFBtgp5W26GA" type="6003">
292 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-GGw-n9EemFBtgp5W26GA" y="10"/>
293 </children>
294 <styles xmi:type="notation:ConnectorStyle" xmi:id="_J-Ffs-n9EemFBtgp5W26GA" routing="Tree"/>
295 <styles xmi:type="notation:FontStyle" xmi:id="_J-FftOn9EemFBtgp5W26GA" fontName="Segoe UI" fontHeight="8"/>
296 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_J-Fften9EemFBtgp5W26GA" points="[-35, 0, -35, 214]$[-35, -180, -35, 34]$[1, -180, 1, 34]$[1, -214, 1, 0]"/>
297 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-GGxOn9EemFBtgp5W26GA" id="(0.5,0.0)"/>
298 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-GGxen9EemFBtgp5W26GA" id="(0.5,1.0)"/>
299 </edges>
300 <edges xmi:type="notation:Edge" xmi:id="_J-GGxun9EemFBtgp5W26GA" type="4001" element="_J9QZQOn9EemFBtgp5W26GA" source="_J9hfBOn9EemFBtgp5W26GA" target="_J9j7ROn9EemFBtgp5W26GA">
301 <children xmi:type="notation:Node" xmi:id="_J-Gt0On9EemFBtgp5W26GA" type="6001">
302 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-Gt0en9EemFBtgp5W26GA" y="-10"/>
303 </children>
304 <children xmi:type="notation:Node" xmi:id="_J-Gt0un9EemFBtgp5W26GA" type="6002">
305 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-Gt0-n9EemFBtgp5W26GA" y="10"/>
306 </children>
307 <children xmi:type="notation:Node" xmi:id="_J-Gt1On9EemFBtgp5W26GA" type="6003">
308 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-Gt1en9EemFBtgp5W26GA" y="10"/>
309 </children>
310 <styles xmi:type="notation:ConnectorStyle" xmi:id="_J-GGx-n9EemFBtgp5W26GA" routing="Tree"/>
311 <styles xmi:type="notation:FontStyle" xmi:id="_J-GGyOn9EemFBtgp5W26GA" fontName="Segoe UI" fontHeight="8"/>
312 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_J-GGyen9EemFBtgp5W26GA" points="[0, 0, -288, 58]$[0, -24, -288, 34]$[289, -24, 1, 34]$[289, -58, 1, 0]"/>
313 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-Gt1un9EemFBtgp5W26GA" id="(0.5,0.0)"/>
314 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-Gt1-n9EemFBtgp5W26GA" id="(0.5,1.0)"/>
315 </edges>
316 <edges xmi:type="notation:Edge" xmi:id="_J-Gt2On9EemFBtgp5W26GA" type="4001" element="_J9RAU-n9EemFBtgp5W26GA" source="_J9kiU-n9EemFBtgp5W26GA" target="_J9aKQOn9EemFBtgp5W26GA">
317 <children xmi:type="notation:Node" xmi:id="_J-HU4On9EemFBtgp5W26GA" type="6001">
318 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-HU4en9EemFBtgp5W26GA" y="-10"/>
319 </children>
320 <children xmi:type="notation:Node" xmi:id="_J-HU4un9EemFBtgp5W26GA" type="6002">
321 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-HU4-n9EemFBtgp5W26GA" y="10"/>
322 </children>
323 <children xmi:type="notation:Node" xmi:id="_J-HU5On9EemFBtgp5W26GA" type="6003">
324 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-HU5en9EemFBtgp5W26GA" y="10"/>
325 </children>
326 <styles xmi:type="notation:ConnectorStyle" xmi:id="_J-Gt2en9EemFBtgp5W26GA" routing="Tree"/>
327 <styles xmi:type="notation:FontStyle" xmi:id="_J-Gt2un9EemFBtgp5W26GA" fontName="Segoe UI" fontHeight="8"/>
328 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_J-Gt2-n9EemFBtgp5W26GA" points="[0, 0, -65, 60]$[65, -60, 0, 0]"/>
329 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-H78On9EemFBtgp5W26GA" id="(0.5,0.0)"/>
330 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-H78en9EemFBtgp5W26GA" id="(0.5,1.0)"/>
331 </edges>
332 <edges xmi:type="notation:Edge" xmi:id="_J-H78un9EemFBtgp5W26GA" type="4001" element="_J9RnZun9EemFBtgp5W26GA" source="_J9aKQOn9EemFBtgp5W26GA" target="_J9ebsOn9EemFBtgp5W26GA">
333 <children xmi:type="notation:Node" xmi:id="_J-H79un9EemFBtgp5W26GA" type="6001">
334 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-H79-n9EemFBtgp5W26GA" y="-10"/>
335 </children>
336 <children xmi:type="notation:Node" xmi:id="_J-H7-On9EemFBtgp5W26GA" type="6002">
337 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-H7-en9EemFBtgp5W26GA" y="10"/>
338 </children>
339 <children xmi:type="notation:Node" xmi:id="_J-IjAOn9EemFBtgp5W26GA" type="6003">
340 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-IjAen9EemFBtgp5W26GA" y="10"/>
341 </children>
342 <styles xmi:type="notation:ConnectorStyle" xmi:id="_J-H78-n9EemFBtgp5W26GA" routing="Tree"/>
343 <styles xmi:type="notation:FontStyle" xmi:id="_J-H79On9EemFBtgp5W26GA" fontName="Segoe UI" fontHeight="8"/>
344 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_J-H79en9EemFBtgp5W26GA" points="[0, 0, -220, 60]$[220, -60, 0, 0]"/>
345 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-IjAun9EemFBtgp5W26GA" id="(0.5,0.0)"/>
346 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-IjA-n9EemFBtgp5W26GA" id="(0.5,1.0)"/>
347 </edges>
348 <edges xmi:type="notation:Edge" xmi:id="_J-IjBOn9EemFBtgp5W26GA" type="4001" element="_J9SOdun9EemFBtgp5W26GA" source="_J9jUMOn9EemFBtgp5W26GA" target="_J9ebsOn9EemFBtgp5W26GA">
349 <children xmi:type="notation:Node" xmi:id="_J-JKEOn9EemFBtgp5W26GA" type="6001">
350 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-JKEen9EemFBtgp5W26GA" y="-10"/>
351 </children>
352 <children xmi:type="notation:Node" xmi:id="_J-JKEun9EemFBtgp5W26GA" type="6002">
353 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-JKE-n9EemFBtgp5W26GA" y="10"/>
354 </children>
355 <children xmi:type="notation:Node" xmi:id="_J-JKFOn9EemFBtgp5W26GA" type="6003">
356 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-JKFen9EemFBtgp5W26GA" y="10"/>
357 </children>
358 <styles xmi:type="notation:ConnectorStyle" xmi:id="_J-IjBen9EemFBtgp5W26GA" routing="Tree"/>
359 <styles xmi:type="notation:FontStyle" xmi:id="_J-IjBun9EemFBtgp5W26GA" fontName="Segoe UI" fontHeight="8"/>
360 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_J-IjB-n9EemFBtgp5W26GA" points="[0, 0, 0, 60]$[0, -60, 0, 0]"/>
361 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-JKFun9EemFBtgp5W26GA" id="(0.5,0.0)"/>
362 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-JKF-n9EemFBtgp5W26GA" id="(0.5,1.0)"/>
363 </edges>
364 <edges xmi:type="notation:Edge" xmi:id="_J-JxIOn9EemFBtgp5W26GA" type="4001" element="_J9Tck-n9EemFBtgp5W26GA" source="_J9ebsOn9EemFBtgp5W26GA" target="_J9gQ4On9EemFBtgp5W26GA">
365 <children xmi:type="notation:Node" xmi:id="_J-JxJOn9EemFBtgp5W26GA" type="6001">
366 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-JxJen9EemFBtgp5W26GA" x="1" y="-10"/>
367 </children>
368 <children xmi:type="notation:Node" xmi:id="_J-JxJun9EemFBtgp5W26GA" type="6002">
369 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-JxJ-n9EemFBtgp5W26GA" y="-10"/>
370 </children>
371 <children xmi:type="notation:Node" xmi:id="_J-JxKOn9EemFBtgp5W26GA" type="6003">
372 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-JxKen9EemFBtgp5W26GA" y="10"/>
373 </children>
374 <styles xmi:type="notation:ConnectorStyle" xmi:id="_J-JxIen9EemFBtgp5W26GA" routing="Rectilinear"/>
375 <styles xmi:type="notation:FontStyle" xmi:id="_J-JxIun9EemFBtgp5W26GA" fontName="Segoe UI" fontHeight="8"/>
376 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_J-JxI-n9EemFBtgp5W26GA" points="[-59, 50, -59, 108]$[-143, 50, -143, 108]$[-143, -106, -143, -48]$[-59, -106, -59, -48]"/>
377 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-JxKun9EemFBtgp5W26GA" id="(0.5,0.0)"/>
378 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-JxK-n9EemFBtgp5W26GA" id="(0.5,1.0)"/>
379 </edges>
380 <edges xmi:type="notation:Edge" xmi:id="_J-KYMOn9EemFBtgp5W26GA" type="4001" element="_J9VRw-n9EemFBtgp5W26GA" source="_J9ebsOn9EemFBtgp5W26GA" target="_J9gQ4On9EemFBtgp5W26GA">
381 <children xmi:type="notation:Node" xmi:id="_J-KYNOn9EemFBtgp5W26GA" type="6001">
382 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-KYNen9EemFBtgp5W26GA" x="1" y="-10"/>
383 </children>
384 <children xmi:type="notation:Node" xmi:id="_J-KYNun9EemFBtgp5W26GA" type="6002">
385 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-KYN-n9EemFBtgp5W26GA" y="10"/>
386 </children>
387 <children xmi:type="notation:Node" xmi:id="_J-KYOOn9EemFBtgp5W26GA" type="6003">
388 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-KYOen9EemFBtgp5W26GA" y="-10"/>
389 </children>
390 <styles xmi:type="notation:ConnectorStyle" xmi:id="_J-KYMen9EemFBtgp5W26GA" routing="Rectilinear"/>
391 <styles xmi:type="notation:FontStyle" xmi:id="_J-KYMun9EemFBtgp5W26GA" fontName="Segoe UI" fontHeight="8"/>
392 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_J-KYM-n9EemFBtgp5W26GA" points="[59, 50, 59, 108]$[145, 50, 145, 108]$[145, -106, 145, -48]$[59, -106, 59, -48]"/>
393 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-K_QOn9EemFBtgp5W26GA" id="(0.5,0.0)"/>
394 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-K_Qen9EemFBtgp5W26GA" id="(0.5,1.0)"/>
395 </edges>
396 </data>
397 </ownedAnnotationEntries>
398 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_J8MpUOn9EemFBtgp5W26GA" name="Pseudostate" tooltipText="" outgoingEdges="_J9RnZun9EemFBtgp5W26GA" incomingEdges="_J9OkEOn9EemFBtgp5W26GA _J9PLIOn9EemFBtgp5W26GA _J9RAU-n9EemFBtgp5W26GA" width="12" height="10">
399 <target xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//Pseudostate"/>
400 <semanticElements xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//Pseudostate"/>
401 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_J8Q6wOn9EemFBtgp5W26GA" 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">
402 <labelFormat>italic</labelFormat>
403 <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"/>
404 </ownedStyle>
405 <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']"/>
406 </ownedDiagramElements>
407 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_J8TXAOn9EemFBtgp5W26GA" name="Vertex" tooltipText="" outgoingEdges="_J9Tck-n9EemFBtgp5W26GA _J9VRw-n9EemFBtgp5W26GA" incomingEdges="_J9BvwOn9EemFBtgp5W26GA _J9RnZun9EemFBtgp5W26GA _J9SOdun9EemFBtgp5W26GA" width="12" height="10">
408 <target xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//Vertex"/>
409 <semanticElements xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//Vertex"/>
410 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_J8T-EOn9EemFBtgp5W26GA" 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">
411 <labelFormat>italic</labelFormat>
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"/>
413 </ownedStyle>
414 <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']"/>
415 </ownedDiagramElements>
416 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_J8VMMOn9EemFBtgp5W26GA" name="Region" tooltipText="" outgoingEdges="_J9BvwOn9EemFBtgp5W26GA" incomingEdges="_J9H2YOn9EemFBtgp5W26GA" width="12" height="10">
417 <target xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//Region"/>
418 <semanticElements xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//Region"/>
419 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_J8VMMen9EemFBtgp5W26GA" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
420 <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"/>
421 </ownedStyle>
422 <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']"/>
423 </ownedDiagramElements>
424 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_J8WaUOn9EemFBtgp5W26GA" name="Transition" tooltipText="" incomingEdges="_J9Tck-n9EemFBtgp5W26GA _J9VRw-n9EemFBtgp5W26GA" width="12" height="10">
425 <target xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//Transition"/>
426 <semanticElements xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//Transition"/>
427 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_J8XBYOn9EemFBtgp5W26GA" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
428 <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"/>
429 </ownedStyle>
430 <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']"/>
431 </ownedDiagramElements>
432 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_J8XBYun9EemFBtgp5W26GA" name="Statechart" tooltipText="" outgoingEdges="_J9JrkOn9EemFBtgp5W26GA" width="12" height="10">
433 <target xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//Statechart"/>
434 <semanticElements xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//Statechart"/>
435 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_J8XocOn9EemFBtgp5W26GA" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
436 <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"/>
437 </ownedStyle>
438 <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']"/>
439 </ownedDiagramElements>
440 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_J8YPgen9EemFBtgp5W26GA" name="Entry" tooltipText="" outgoingEdges="_J9OkEOn9EemFBtgp5W26GA" width="12" height="10">
441 <target xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//Entry"/>
442 <semanticElements xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//Entry"/>
443 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_J8Y2kOn9EemFBtgp5W26GA" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
444 <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 </ownedStyle>
446 <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']"/>
447 <ownedElements xmi:type="diagram:DNodeListElement" uid="_J82JkOn9EemFBtgp5W26GA" name="Type : EntryType = Normal" tooltipText="">
448 <target xmi:type="ecore:EAttribute" href="yakindu_simplified.ecore#//Entry/Type"/>
449 <semanticElements xmi:type="ecore:EAttribute" href="yakindu_simplified.ecore#//Entry/Type"/>
450 <ownedStyle xmi:type="diagram:BundledImage" uid="_J85M4On9EemFBtgp5W26GA" labelAlignment="LEFT" description="_J83XsOn9EemFBtgp5W26GA">
451 <labelFormat>bold</labelFormat>
452 </ownedStyle>
453 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
454 </ownedElements>
455 </ownedDiagramElements>
456 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_J8ZdoOn9EemFBtgp5W26GA" name="State" tooltipText="" outgoingEdges="_J9PyMOn9EemFBtgp5W26GA _J9QZQOn9EemFBtgp5W26GA" width="12" height="10">
457 <target xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//State"/>
458 <semanticElements xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//State"/>
459 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_J8aEsOn9EemFBtgp5W26GA" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
460 <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"/>
461 </ownedStyle>
462 <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']"/>
463 </ownedDiagramElements>
464 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_J8arwOn9EemFBtgp5W26GA" name="RegularState" tooltipText="" outgoingEdges="_J9SOdun9EemFBtgp5W26GA" incomingEdges="_J9NV8-n9EemFBtgp5W26GA _J9PyMOn9EemFBtgp5W26GA" width="12" height="10">
465 <target xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//RegularState"/>
466 <semanticElements xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//RegularState"/>
467 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_J8arwen9EemFBtgp5W26GA" 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">
468 <labelFormat>italic</labelFormat>
469 <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"/>
470 </ownedStyle>
471 <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']"/>
472 </ownedDiagramElements>
473 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_J8b54On9EemFBtgp5W26GA" name="CompositeElement" tooltipText="" outgoingEdges="_J9H2YOn9EemFBtgp5W26GA" incomingEdges="_J9JrkOn9EemFBtgp5W26GA _J9QZQOn9EemFBtgp5W26GA" width="12" height="10">
474 <target xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//CompositeElement"/>
475 <semanticElements xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//CompositeElement"/>
476 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_J8cg8On9EemFBtgp5W26GA" 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">
477 <labelFormat>italic</labelFormat>
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']/@conditionnalStyles.1/@style"/>
479 </ownedStyle>
480 <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']"/>
481 </ownedDiagramElements>
482 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_J8dvEOn9EemFBtgp5W26GA" name="Choice" tooltipText="" outgoingEdges="_J9RAU-n9EemFBtgp5W26GA" width="12" height="10">
483 <target xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//Choice"/>
484 <semanticElements xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//Choice"/>
485 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_J8eWIOn9EemFBtgp5W26GA" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
486 <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"/>
487 </ownedStyle>
488 <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']"/>
489 </ownedDiagramElements>
490 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_J8fkQOn9EemFBtgp5W26GA" name="Exit" tooltipText="" outgoingEdges="_J9PLIOn9EemFBtgp5W26GA" width="12" height="10">
491 <target xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//Exit"/>
492 <semanticElements xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//Exit"/>
493 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_J8gLUOn9EemFBtgp5W26GA" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
494 <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"/>
495 </ownedStyle>
496 <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']"/>
497 </ownedDiagramElements>
498 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_J8gyYOn9EemFBtgp5W26GA" name="FinalState" tooltipText="" outgoingEdges="_J9NV8-n9EemFBtgp5W26GA" width="12" height="10">
499 <target xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//FinalState"/>
500 <semanticElements xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//FinalState"/>
501 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_J8gyYen9EemFBtgp5W26GA" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
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']/@style"/>
503 </ownedStyle>
504 <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']"/>
505 </ownedDiagramElements>
506 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_J8iAgOn9EemFBtgp5W26GA" name="EntryType" tooltipText="" width="12" height="10">
507 <target xmi:type="ecore:EEnum" href="yakindu_simplified.ecore#//EntryType"/>
508 <semanticElements xmi:type="ecore:EEnum" href="yakindu_simplified.ecore#//EntryType"/>
509 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
510 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
511 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
512 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_J8iAgen9EemFBtgp5W26GA" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="221,236,202">
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%20EEnum']/@style"/>
514 </ownedStyle>
515 <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%20EEnum']"/>
516 <ownedElements xmi:type="diagram:DNodeListElement" uid="_J883QOn9EemFBtgp5W26GA" name="Normal" tooltipText="">
517 <target xmi:type="ecore:EEnumLiteral" href="yakindu_simplified.ecore#//EntryType/Normal"/>
518 <semanticElements xmi:type="ecore:EEnumLiteral" href="yakindu_simplified.ecore#//EntryType/Normal"/>
519 <ownedStyle xmi:type="diagram:BundledImage" uid="_J883Qen9EemFBtgp5W26GA" labelAlignment="LEFT">
520 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
521 </ownedStyle>
522 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
523 </ownedElements>
524 <ownedElements xmi:type="diagram:DNodeListElement" uid="_J883Qun9EemFBtgp5W26GA" name="History" tooltipText="">
525 <target xmi:type="ecore:EEnumLiteral" href="yakindu_simplified.ecore#//EntryType/History"/>
526 <semanticElements xmi:type="ecore:EEnumLiteral" href="yakindu_simplified.ecore#//EntryType/History"/>
527 <ownedStyle xmi:type="diagram:BundledImage" uid="_J883Q-n9EemFBtgp5W26GA" labelAlignment="LEFT">
528 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
529 </ownedStyle>
530 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
531 </ownedElements>
532 <ownedElements xmi:type="diagram:DNodeListElement" uid="_J89eUOn9EemFBtgp5W26GA" name="DeepHistory" tooltipText="">
533 <target xmi:type="ecore:EEnumLiteral" href="yakindu_simplified.ecore#//EntryType/DeepHistory"/>
534 <semanticElements xmi:type="ecore:EEnumLiteral" href="yakindu_simplified.ecore#//EntryType/DeepHistory"/>
535 <ownedStyle xmi:type="diagram:BundledImage" uid="_J89eUen9EemFBtgp5W26GA" labelAlignment="LEFT">
536 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
537 </ownedStyle>
538 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
539 </ownedElements>
540 </ownedDiagramElements>
541 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_J9BvwOn9EemFBtgp5W26GA" name="[0..*] vertices" sourceNode="_J8VMMOn9EemFBtgp5W26GA" targetNode="_J8TXAOn9EemFBtgp5W26GA">
542 <target xmi:type="ecore:EReference" href="yakindu_simplified.ecore#//Region/vertices"/>
543 <semanticElements xmi:type="ecore:EReference" href="yakindu_simplified.ecore#//Region/vertices"/>
544 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_J9EzEOn9EemFBtgp5W26GA" description="_J9Dk8On9EemFBtgp5W26GA" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
545 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_J9FaIen9EemFBtgp5W26GA" showIcon="false">
546 <customFeatures>labelSize</customFeatures>
547 </centerLabelStyle>
548 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_J9FaIOn9EemFBtgp5W26GA" showIcon="false" labelColor="39,76,114">
549 <customFeatures>labelSize</customFeatures>
550 </endLabelStyle>
551 </ownedStyle>
552 <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']"/>
553 </ownedDiagramElements>
554 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_J9H2YOn9EemFBtgp5W26GA" name="[0..*] regions" sourceNode="_J8b54On9EemFBtgp5W26GA" targetNode="_J8VMMOn9EemFBtgp5W26GA">
555 <target xmi:type="ecore:EReference" href="yakindu_simplified.ecore#//CompositeElement/regions"/>
556 <semanticElements xmi:type="ecore:EReference" href="yakindu_simplified.ecore#//CompositeElement/regions"/>
557 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_J9IdcOn9EemFBtgp5W26GA" description="_J9Dk8On9EemFBtgp5W26GA" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
558 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_J9Idcun9EemFBtgp5W26GA" showIcon="false">
559 <customFeatures>labelSize</customFeatures>
560 </centerLabelStyle>
561 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_J9Idcen9EemFBtgp5W26GA" showIcon="false" labelColor="39,76,114">
562 <customFeatures>labelSize</customFeatures>
563 </endLabelStyle>
564 </ownedStyle>
565 <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']"/>
566 </ownedDiagramElements>
567 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_J9JrkOn9EemFBtgp5W26GA" sourceNode="_J8XBYun9EemFBtgp5W26GA" targetNode="_J8b54On9EemFBtgp5W26GA">
568 <target xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//Statechart"/>
569 <semanticElements xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//Statechart"/>
570 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_J9MH0On9EemFBtgp5W26GA" targetArrow="InputClosedArrow" routingStyle="tree">
571 <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"/>
572 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_J9Mu4On9EemFBtgp5W26GA" showIcon="false">
573 <labelFormat>italic</labelFormat>
574 </beginLabelStyle>
575 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_J9Mu4en9EemFBtgp5W26GA" showIcon="false"/>
576 </ownedStyle>
577 <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']"/>
578 </ownedDiagramElements>
579 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_J9NV8-n9EemFBtgp5W26GA" sourceNode="_J8gyYOn9EemFBtgp5W26GA" targetNode="_J8arwOn9EemFBtgp5W26GA">
580 <target xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//FinalState"/>
581 <semanticElements xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//FinalState"/>
582 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_J9N9AOn9EemFBtgp5W26GA" targetArrow="InputClosedArrow" routingStyle="tree">
583 <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"/>
584 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_J9N9Aen9EemFBtgp5W26GA" showIcon="false">
585 <labelFormat>italic</labelFormat>
586 </beginLabelStyle>
587 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_J9N9Aun9EemFBtgp5W26GA" showIcon="false"/>
588 </ownedStyle>
589 <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']"/>
590 </ownedDiagramElements>
591 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_J9OkEOn9EemFBtgp5W26GA" sourceNode="_J8YPgen9EemFBtgp5W26GA" targetNode="_J8MpUOn9EemFBtgp5W26GA">
592 <target xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//Entry"/>
593 <semanticElements xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//Entry"/>
594 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_J9OkEen9EemFBtgp5W26GA" targetArrow="InputClosedArrow" routingStyle="tree">
595 <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"/>
596 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_J9OkEun9EemFBtgp5W26GA" showIcon="false">
597 <labelFormat>italic</labelFormat>
598 </beginLabelStyle>
599 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_J9OkE-n9EemFBtgp5W26GA" showIcon="false"/>
600 </ownedStyle>
601 <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']"/>
602 </ownedDiagramElements>
603 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_J9PLIOn9EemFBtgp5W26GA" sourceNode="_J8fkQOn9EemFBtgp5W26GA" targetNode="_J8MpUOn9EemFBtgp5W26GA">
604 <target xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//Exit"/>
605 <semanticElements xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//Exit"/>
606 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_J9PLIen9EemFBtgp5W26GA" targetArrow="InputClosedArrow" routingStyle="tree">
607 <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"/>
608 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_J9PLIun9EemFBtgp5W26GA" showIcon="false">
609 <labelFormat>italic</labelFormat>
610 </beginLabelStyle>
611 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_J9PLI-n9EemFBtgp5W26GA" showIcon="false"/>
612 </ownedStyle>
613 <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']"/>
614 </ownedDiagramElements>
615 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_J9PyMOn9EemFBtgp5W26GA" sourceNode="_J8ZdoOn9EemFBtgp5W26GA" targetNode="_J8arwOn9EemFBtgp5W26GA">
616 <target xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//State"/>
617 <semanticElements xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//State"/>
618 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_J9PyMen9EemFBtgp5W26GA" targetArrow="InputClosedArrow" routingStyle="tree">
619 <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"/>
620 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_J9PyMun9EemFBtgp5W26GA" showIcon="false">
621 <labelFormat>italic</labelFormat>
622 </beginLabelStyle>
623 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_J9PyM-n9EemFBtgp5W26GA" showIcon="false"/>
624 </ownedStyle>
625 <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']"/>
626 </ownedDiagramElements>
627 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_J9QZQOn9EemFBtgp5W26GA" sourceNode="_J8ZdoOn9EemFBtgp5W26GA" targetNode="_J8b54On9EemFBtgp5W26GA">
628 <target xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//State"/>
629 <semanticElements xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//State"/>
630 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_J9QZQen9EemFBtgp5W26GA" targetArrow="InputClosedArrow" routingStyle="tree">
631 <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"/>
632 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_J9QZQun9EemFBtgp5W26GA" showIcon="false">
633 <labelFormat>italic</labelFormat>
634 </beginLabelStyle>
635 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_J9QZQ-n9EemFBtgp5W26GA" showIcon="false"/>
636 </ownedStyle>
637 <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']"/>
638 </ownedDiagramElements>
639 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_J9RAU-n9EemFBtgp5W26GA" sourceNode="_J8dvEOn9EemFBtgp5W26GA" targetNode="_J8MpUOn9EemFBtgp5W26GA">
640 <target xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//Choice"/>
641 <semanticElements xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//Choice"/>
642 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_J9RnYOn9EemFBtgp5W26GA" targetArrow="InputClosedArrow" routingStyle="tree">
643 <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"/>
644 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_J9RnYen9EemFBtgp5W26GA" showIcon="false">
645 <labelFormat>italic</labelFormat>
646 </beginLabelStyle>
647 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_J9RnYun9EemFBtgp5W26GA" showIcon="false"/>
648 </ownedStyle>
649 <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']"/>
650 </ownedDiagramElements>
651 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_J9RnZun9EemFBtgp5W26GA" sourceNode="_J8MpUOn9EemFBtgp5W26GA" targetNode="_J8TXAOn9EemFBtgp5W26GA">
652 <target xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//Pseudostate"/>
653 <semanticElements xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//Pseudostate"/>
654 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_J9SOcOn9EemFBtgp5W26GA" targetArrow="InputClosedArrow" routingStyle="tree">
655 <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"/>
656 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_J9SOcen9EemFBtgp5W26GA" showIcon="false">
657 <labelFormat>italic</labelFormat>
658 </beginLabelStyle>
659 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_J9SOcun9EemFBtgp5W26GA" showIcon="false"/>
660 </ownedStyle>
661 <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']"/>
662 </ownedDiagramElements>
663 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_J9SOdun9EemFBtgp5W26GA" sourceNode="_J8arwOn9EemFBtgp5W26GA" targetNode="_J8TXAOn9EemFBtgp5W26GA">
664 <target xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//RegularState"/>
665 <semanticElements xmi:type="ecore:EClass" href="yakindu_simplified.ecore#//RegularState"/>
666 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_J9S1gOn9EemFBtgp5W26GA" targetArrow="InputClosedArrow" routingStyle="tree">
667 <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"/>
668 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_J9S1gen9EemFBtgp5W26GA" showIcon="false">
669 <labelFormat>italic</labelFormat>
670 </beginLabelStyle>
671 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_J9S1gun9EemFBtgp5W26GA" showIcon="false"/>
672 </ownedStyle>
673 <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']"/>
674 </ownedDiagramElements>
675 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_J9Tck-n9EemFBtgp5W26GA" sourceNode="_J8TXAOn9EemFBtgp5W26GA" targetNode="_J8WaUOn9EemFBtgp5W26GA" beginLabel="[0..1] source" endLabel="[0..*] outgoingTransitions">
676 <target xmi:type="ecore:EReference" href="yakindu_simplified.ecore#//Vertex/outgoingTransitions"/>
677 <semanticElements xmi:type="ecore:EReference" href="yakindu_simplified.ecore#//Vertex/outgoingTransitions"/>
678 <semanticElements xmi:type="ecore:EReference" href="yakindu_simplified.ecore#//Transition/source"/>
679 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_J9Uqs-n9EemFBtgp5W26GA" description="_J9UqsOn9EemFBtgp5W26GA" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
680 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_J9UqtOn9EemFBtgp5W26GA" showIcon="false"/>
681 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_J9Uqten9EemFBtgp5W26GA" showIcon="false"/>
682 </ownedStyle>
683 <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']"/>
684 </ownedDiagramElements>
685 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_J9VRw-n9EemFBtgp5W26GA" sourceNode="_J8TXAOn9EemFBtgp5W26GA" targetNode="_J8WaUOn9EemFBtgp5W26GA" beginLabel="[1..1] target" endLabel="[0..*] incomingTransitions">
686 <target xmi:type="ecore:EReference" href="yakindu_simplified.ecore#//Vertex/incomingTransitions"/>
687 <semanticElements xmi:type="ecore:EReference" href="yakindu_simplified.ecore#//Vertex/incomingTransitions"/>
688 <semanticElements xmi:type="ecore:EReference" href="yakindu_simplified.ecore#//Transition/target"/>
689 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_J9V40On9EemFBtgp5W26GA" sourceArrow="InputArrow" routingStyle="manhattan" strokeColor="0,0,0">
690 <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='Bi-directional%20EC_EReference%20']/@style"/>
691 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_J9V40en9EemFBtgp5W26GA" showIcon="false"/>
692 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_J9V40un9EemFBtgp5W26GA" showIcon="false"/>
693 </ownedStyle>
694 <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']"/>
695 </ownedDiagramElements>
696 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
697 <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_JLMDIOn9EemFBtgp5W26GA"/>
698 <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
699 <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']"/>
700 <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']"/>
701 <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']"/>
702 <target xmi:type="ecore:EPackage" href="yakindu_simplified.ecore#/"/>
703 </diagram:DSemanticDiagram>
704</xmi:XMI>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/yakindu/yakindu_simplified.ecore b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/yakindu/yakindu_simplified.ecore
new file mode 100644
index 00000000..02b57252
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/yakindu/yakindu_simplified.ecore
@@ -0,0 +1,39 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="yakindumm" nsURI="hu.bme.mit.inf.yakindumm" nsPrefix="ca.mcgill.ecse.yakindumm">
4 <eClassifiers xsi:type="ecore:EClass" name="Pseudostate" abstract="true" eSuperTypes="#//Vertex"/>
5 <eClassifiers xsi:type="ecore:EClass" name="Vertex" abstract="true">
6 <eStructuralFeatures xsi:type="ecore:EReference" name="incomingTransitions" ordered="false"
7 upperBound="-1" eType="#//Transition" eOpposite="#//Transition/target"/>
8 <eStructuralFeatures xsi:type="ecore:EReference" name="outgoingTransitions" ordered="false"
9 upperBound="-1" eType="#//Transition" containment="true" eOpposite="#//Transition/source"/>
10 </eClassifiers>
11 <eClassifiers xsi:type="ecore:EClass" name="Region">
12 <eStructuralFeatures xsi:type="ecore:EReference" name="vertices" ordered="false"
13 upperBound="-1" eType="#//Vertex" containment="true"/>
14 </eClassifiers>
15 <eClassifiers xsi:type="ecore:EClass" name="Transition">
16 <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
17 lowerBound="1" eType="#//Vertex" eOpposite="#//Vertex/incomingTransitions"/>
18 <eStructuralFeatures xsi:type="ecore:EReference" name="source" ordered="false"
19 eType="#//Vertex" eOpposite="#//Vertex/outgoingTransitions"/>
20 </eClassifiers>
21 <eClassifiers xsi:type="ecore:EClass" name="Statechart" eSuperTypes="#//CompositeElement"/>
22 <eClassifiers xsi:type="ecore:EClass" name="Entry" eSuperTypes="#//Pseudostate">
23 <eStructuralFeatures xsi:type="ecore:EAttribute" name="Type" lowerBound="1" eType="#//EntryType"/>
24 </eClassifiers>
25 <eClassifiers xsi:type="ecore:EClass" name="State" eSuperTypes="#//RegularState #//CompositeElement"/>
26 <eClassifiers xsi:type="ecore:EClass" name="RegularState" abstract="true" eSuperTypes="#//Vertex"/>
27 <eClassifiers xsi:type="ecore:EClass" name="CompositeElement" abstract="true">
28 <eStructuralFeatures xsi:type="ecore:EReference" name="regions" upperBound="-1"
29 eType="#//Region" containment="true"/>
30 </eClassifiers>
31 <eClassifiers xsi:type="ecore:EClass" name="Choice" eSuperTypes="#//Pseudostate"/>
32 <eClassifiers xsi:type="ecore:EClass" name="Exit" eSuperTypes="#//Pseudostate"/>
33 <eClassifiers xsi:type="ecore:EClass" name="FinalState" eSuperTypes="#//RegularState"/>
34 <eClassifiers xsi:type="ecore:EEnum" name="EntryType">
35 <eLiterals name="Normal"/>
36 <eLiterals name="History"/>
37 <eLiterals name="DeepHistory"/>
38 </eClassifiers>
39</ecore:EPackage>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/yakindu/yakindu_simplified.genmodel b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/yakindu/yakindu_simplified.genmodel
new file mode 100644
index 00000000..cfbafce6
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/yakindu/yakindu_simplified.genmodel
@@ -0,0 +1,40 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
3 xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/ca.mcgill.ecse.dslreasoner.vampire.test/src" modelPluginID="ca.mcgill.ecse.dslreasoner.vampire.test"
4 modelName="yakindu_simplified" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
5 importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" copyrightFields="false"
6 operationReflection="true" importOrganizing="true">
7 <foreignModel>yakindu_simplified.ecore</foreignModel>
8 <genPackages prefix="Yakindumm" basePackage="ca.mcgill.ecse.dslreasoner.vampire"
9 disposableProviderFactory="true" ecorePackage="yakindu_simplified.ecore#/">
10 <genEnums typeSafeEnumCompatible="false" ecoreEnum="yakindu_simplified.ecore#//EntryType">
11 <genEnumLiterals ecoreEnumLiteral="yakindu_simplified.ecore#//EntryType/Normal"/>
12 <genEnumLiterals ecoreEnumLiteral="yakindu_simplified.ecore#//EntryType/History"/>
13 <genEnumLiterals ecoreEnumLiteral="yakindu_simplified.ecore#//EntryType/DeepHistory"/>
14 </genEnums>
15 <genClasses image="false" ecoreClass="yakindu_simplified.ecore#//Pseudostate"/>
16 <genClasses image="false" ecoreClass="yakindu_simplified.ecore#//Vertex">
17 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference yakindu_simplified.ecore#//Vertex/incomingTransitions"/>
18 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference yakindu_simplified.ecore#//Vertex/outgoingTransitions"/>
19 </genClasses>
20 <genClasses ecoreClass="yakindu_simplified.ecore#//Region">
21 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference yakindu_simplified.ecore#//Region/vertices"/>
22 </genClasses>
23 <genClasses ecoreClass="yakindu_simplified.ecore#//Transition">
24 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference yakindu_simplified.ecore#//Transition/target"/>
25 <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference yakindu_simplified.ecore#//Transition/source"/>
26 </genClasses>
27 <genClasses ecoreClass="yakindu_simplified.ecore#//Statechart"/>
28 <genClasses ecoreClass="yakindu_simplified.ecore#//Entry">
29 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute yakindu_simplified.ecore#//Entry/Type"/>
30 </genClasses>
31 <genClasses ecoreClass="yakindu_simplified.ecore#//State"/>
32 <genClasses image="false" ecoreClass="yakindu_simplified.ecore#//RegularState"/>
33 <genClasses image="false" ecoreClass="yakindu_simplified.ecore#//CompositeElement">
34 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference yakindu_simplified.ecore#//CompositeElement/regions"/>
35 </genClasses>
36 <genClasses ecoreClass="yakindu_simplified.ecore#//Choice"/>
37 <genClasses ecoreClass="yakindu_simplified.ecore#//Exit"/>
38 <genClasses ecoreClass="yakindu_simplified.ecore#//FinalState"/>
39 </genPackages>
40</genmodel:GenModel>
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
index 3109ccc2..5c3ef527 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/vampireProblem.tptp
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/vampireProblem.tptp
@@ -5,13 +5,13 @@ fof ( enumScope_FunctionType_Intermediate , axiom , ! [ A ] : ( A = eo2 <=> e_In
5fof ( enumScope_FunctionType_Leaf , axiom , ! [ A ] : ( A = eo3 <=> e_Leaf_FunctionType ( A ) ) ) . 5fof ( enumScope_FunctionType_Leaf , axiom , ! [ A ] : ( A = eo3 <=> e_Leaf_FunctionType ( A ) ) ) .
6fof ( inheritanceHierarchyHandler , axiom , ! [ A ] : ( object ( A ) <=> ( ( t_FAMTerminator ( A ) & ( ~ t_FunctionalData ( A ) & ( ~ t_FunctionalInterface ( A ) & ( ~ t_Function ( A ) & ( ~ t_InformationLink ( A ) & ( ~ t_FunctionalElement ( A ) & ( ~ t_FunctionalArchitectureModel ( A ) & ( ~ t_FunctionType ( A ) & ( ~ t_FunctionalInput ( A ) & ~ t_FunctionalOutput ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ t_FAMTerminator ( A ) & ( ~ t_FunctionalData ( A ) & ( t_FunctionalInterface ( A ) & ( ~ t_Function ( A ) & ( ~ t_InformationLink ( A ) & ( ~ t_FunctionalElement ( A ) & ( ~ t_FunctionalArchitectureModel ( A ) & ( ~ t_FunctionType ( A ) & ( ~ t_FunctionalInput ( A ) & ~ t_FunctionalOutput ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ t_FAMTerminator ( A ) & ( ~ t_FunctionalData ( A ) & ( ~ t_FunctionalInterface ( A ) & ( t_Function ( A ) & ( ~ t_InformationLink ( A ) & ( t_FunctionalElement ( A ) & ( ~ t_FunctionalArchitectureModel ( A ) & ( ~ t_FunctionType ( A ) & ( ~ t_FunctionalInput ( A ) & ~ t_FunctionalOutput ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ t_FAMTerminator ( A ) & ( ~ t_FunctionalData ( A ) & ( ~ t_FunctionalInterface ( A ) & ( ~ t_Function ( A ) & ( t_InformationLink ( A ) & ( ~ t_FunctionalElement ( A ) & ( ~ t_FunctionalArchitectureModel ( A ) & ( ~ t_FunctionType ( A ) & ( ~ t_FunctionalInput ( A ) & ~ t_FunctionalOutput ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ t_FAMTerminator ( A ) & ( ~ t_FunctionalData ( A ) & ( ~ t_FunctionalInterface ( A ) & ( ~ t_Function ( A ) & ( ~ t_InformationLink ( A ) & ( ~ t_FunctionalElement ( A ) & ( t_FunctionalArchitectureModel ( A ) & ( ~ t_FunctionType ( A ) & ( ~ t_FunctionalInput ( A ) & ~ t_FunctionalOutput ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ t_FAMTerminator ( A ) & ( ~ t_FunctionalData ( A ) & ( ~ t_FunctionalInterface ( A ) & ( ~ t_Function ( A ) & ( ~ t_InformationLink ( A ) & ( ~ t_FunctionalElement ( A ) & ( ~ t_FunctionalArchitectureModel ( A ) & ( t_FunctionType ( A ) & ( ~ t_FunctionalInput ( A ) & ~ t_FunctionalOutput ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ t_FAMTerminator ( A ) & ( t_FunctionalData ( A ) & ( ~ t_FunctionalInterface ( A ) & ( ~ t_Function ( A ) & ( ~ t_InformationLink ( A ) & ( ~ t_FunctionalElement ( A ) & ( ~ t_FunctionalArchitectureModel ( A ) & ( ~ t_FunctionType ( A ) & ( t_FunctionalInput ( A ) & ~ t_FunctionalOutput ( A ) ) ) ) ) ) ) ) ) ) | ( ~ t_FAMTerminator ( A ) & ( t_FunctionalData ( A ) & ( ~ t_FunctionalInterface ( A ) & ( ~ t_Function ( A ) & ( ~ t_InformationLink ( A ) & ( ~ t_FunctionalElement ( A ) & ( ~ t_FunctionalArchitectureModel ( A ) & ( ~ t_FunctionType ( A ) & ( ~ t_FunctionalInput ( A ) & t_FunctionalOutput ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) . 6fof ( inheritanceHierarchyHandler , axiom , ! [ A ] : ( object ( A ) <=> ( ( t_FAMTerminator ( A ) & ( ~ t_FunctionalData ( A ) & ( ~ t_FunctionalInterface ( A ) & ( ~ t_Function ( A ) & ( ~ t_InformationLink ( A ) & ( ~ t_FunctionalElement ( A ) & ( ~ t_FunctionalArchitectureModel ( A ) & ( ~ t_FunctionType ( A ) & ( ~ t_FunctionalInput ( A ) & ~ t_FunctionalOutput ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ t_FAMTerminator ( A ) & ( ~ t_FunctionalData ( A ) & ( t_FunctionalInterface ( A ) & ( ~ t_Function ( A ) & ( ~ t_InformationLink ( A ) & ( ~ t_FunctionalElement ( A ) & ( ~ t_FunctionalArchitectureModel ( A ) & ( ~ t_FunctionType ( A ) & ( ~ t_FunctionalInput ( A ) & ~ t_FunctionalOutput ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ t_FAMTerminator ( A ) & ( ~ t_FunctionalData ( A ) & ( ~ t_FunctionalInterface ( A ) & ( t_Function ( A ) & ( ~ t_InformationLink ( A ) & ( t_FunctionalElement ( A ) & ( ~ t_FunctionalArchitectureModel ( A ) & ( ~ t_FunctionType ( A ) & ( ~ t_FunctionalInput ( A ) & ~ t_FunctionalOutput ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ t_FAMTerminator ( A ) & ( ~ t_FunctionalData ( A ) & ( ~ t_FunctionalInterface ( A ) & ( ~ t_Function ( A ) & ( t_InformationLink ( A ) & ( ~ t_FunctionalElement ( A ) & ( ~ t_FunctionalArchitectureModel ( A ) & ( ~ t_FunctionType ( A ) & ( ~ t_FunctionalInput ( A ) & ~ t_FunctionalOutput ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ t_FAMTerminator ( A ) & ( ~ t_FunctionalData ( A ) & ( ~ t_FunctionalInterface ( A ) & ( ~ t_Function ( A ) & ( ~ t_InformationLink ( A ) & ( ~ t_FunctionalElement ( A ) & ( t_FunctionalArchitectureModel ( A ) & ( ~ t_FunctionType ( A ) & ( ~ t_FunctionalInput ( A ) & ~ t_FunctionalOutput ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ t_FAMTerminator ( A ) & ( ~ t_FunctionalData ( A ) & ( ~ t_FunctionalInterface ( A ) & ( ~ t_Function ( A ) & ( ~ t_InformationLink ( A ) & ( ~ t_FunctionalElement ( A ) & ( ~ t_FunctionalArchitectureModel ( A ) & ( t_FunctionType ( A ) & ( ~ t_FunctionalInput ( A ) & ~ t_FunctionalOutput ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ t_FAMTerminator ( A ) & ( t_FunctionalData ( A ) & ( ~ t_FunctionalInterface ( A ) & ( ~ t_Function ( A ) & ( ~ t_InformationLink ( A ) & ( ~ t_FunctionalElement ( A ) & ( ~ t_FunctionalArchitectureModel ( A ) & ( ~ t_FunctionType ( A ) & ( t_FunctionalInput ( A ) & ~ t_FunctionalOutput ( A ) ) ) ) ) ) ) ) ) ) | ( ~ t_FAMTerminator ( A ) & ( t_FunctionalData ( A ) & ( ~ t_FunctionalInterface ( A ) & ( ~ t_Function ( A ) & ( ~ t_InformationLink ( A ) & ( ~ t_FunctionalElement ( A ) & ( ~ t_FunctionalArchitectureModel ( A ) & ( ~ t_FunctionType ( A ) & ( ~ t_FunctionalInput ( A ) & t_FunctionalOutput ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) .
7fof ( typeScope_min_object , axiom , ! [ A ] : ( ( A = o1 | ( A = o2 | ( A = o3 | ( A = o4 | ( A = o5 | ( A = o6 | ( A = eo1 | ( A = eo2 | A = eo3 ) ) ) ) ) ) ) ) => object ( A ) ) ) . 7fof ( typeScope_min_object , axiom , ! [ A ] : ( ( A = o1 | ( A = o2 | ( A = o3 | ( A = o4 | ( A = o5 | ( A = o6 | ( A = eo1 | ( A = eo2 | A = eo3 ) ) ) ) ) ) ) ) => object ( A ) ) ) .
8fof ( typeScope_max_object , axiom , ! [ A ] : ( object ( A ) => ( A = eo1 | ( A = eo2 | ( A = eo3 | ( A = o1 | ( A = o2 | ( A = o3 | ( A = o4 | ( A = o5 | ( A = o6 | ( A = o7 | A = o8 ) ) ) ) ) ) ) ) ) ) ) ) . 8fof ( typeScope_max_object , axiom , ! [ A ] : ( object ( A ) => ( A = eo1 | ( A = eo2 | ( A = eo3 | ( A = o1 | ( A = o2 | ( A = o3 | ( A = o4 | ( A = o5 | ( A = o6 | ( A = o7 | ( A = o8 | ( A = o9 | ( A = o10 | ( A = o11 | ( A = o12 | ( A = o13 | ( A = o14 | ( A = o15 | ( A = o16 | ( A = o17 | ( A = o18 | ( A = o19 | ( A = o20 | ( A = o21 | ( A = o22 | ( A = o23 | ( A = o24 | ( A = o25 | ( A = o26 | ( A = o27 | ( A = o28 | ( A = o29 | ( A = o30 | ( A = o31 | ( A = o32 | ( A = o33 | ( A = o34 | ( A = o35 | ( A = o36 | ( A = o37 | ( A = o38 | ( A = o39 | A = o40 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) .
9fof ( typeScope_min_t_FunctionalInterface , axiom , ! [ A ] : ( ( A = o2 | A = o3 ) => ( t_FunctionalInterface ( A ) & object ( A ) ) ) ) . 9fof ( typeScope_min_t_FunctionalInterface , axiom , ! [ A ] : ( ( A = o2 | A = o3 ) => ( t_FunctionalInterface ( A ) & object ( A ) ) ) ) .
10fof ( typeScope_min_t_Function , axiom , ! [ A ] : ( A = o4 => ( t_Function ( A ) & object ( A ) ) ) ) . 10fof ( typeScope_min_t_Function , axiom , ! [ A ] : ( A = o4 => ( t_Function ( A ) & object ( A ) ) ) ) .
11fof ( typeScope_min_t_FunctionalOutput , axiom , ! [ A ] : ( ( A = o5 | ( A = o6 | A = o7 ) ) => ( t_FunctionalOutput ( A ) & object ( A ) ) ) ) . 11fof ( typeScope_min_t_FunctionalOutput , axiom , ! [ A ] : ( ( A = o5 | ( A = o6 | A = o7 ) ) => ( t_FunctionalOutput ( A ) & object ( A ) ) ) ) .
12fof ( typeScope_max_t_Function , axiom , ! [ A ] : ( ( t_Function ( A ) & object ( A ) ) => ( A = o4 | A = o8 ) ) ) . 12fof ( typeScope_max_t_Function , axiom , ! [ A ] : ( ( t_Function ( A ) & object ( A ) ) => ( A = o4 | ( A = o8 | ( A = o9 | ( A = o10 | A = o11 ) ) ) ) ) ) .
13fof ( typeScope_max_t_FunctionalOutput , axiom , ! [ A ] : ( ( t_FunctionalOutput ( A ) & object ( A ) ) => ( A = o5 | ( A = o6 | ( A = o7 | A = o8 ) ) ) ) ) . 13fof ( typeScope_max_t_FunctionalOutput , axiom , ! [ A ] : ( ( t_FunctionalOutput ( A ) & object ( A ) ) => ( A = o5 | ( A = o6 | ( A = o7 | A = o8 ) ) ) ) ) .
14fof ( typeUniqueness , axiom , eo1 != eo2 & ( eo1 != eo3 & ( eo2 != eo3 & ( eo1 != o1 & ( eo2 != o1 & ( eo3 != o1 & ( eo1 != o2 & ( eo2 != o2 & ( eo3 != o2 & ( o1 != o2 & ( eo1 != o3 & ( eo2 != o3 & ( eo3 != o3 & ( o1 != o3 & ( o2 != o3 & ( eo1 != o4 & ( eo2 != o4 & ( eo3 != o4 & ( o1 != o4 & ( o2 != o4 & ( o3 != o4 & ( eo1 != o5 & ( eo2 != o5 & ( eo3 != o5 & ( o1 != o5 & ( o2 != o5 & ( o3 != o5 & ( o4 != o5 & ( eo1 != o6 & ( eo2 != o6 & ( eo3 != o6 & ( o1 != o6 & ( o2 != o6 & ( o3 != o6 & ( o4 != o6 & ( o5 != o6 & ( eo1 != o7 & ( eo2 != o7 & ( eo3 != o7 & ( o1 != o7 & ( o2 != o7 & ( o3 != o7 & ( o4 != o7 & ( o5 != o7 & ( o6 != o7 & ( eo1 != o8 & ( eo2 != o8 & ( eo3 != o8 & ( o1 != o8 & ( o2 != o8 & ( o3 != o8 & ( o4 != o8 & ( o5 != o8 & ( o6 != o8 & o7 != o8 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) . 14fof ( typeUniqueness , axiom , eo1 != eo2 & ( eo1 != eo3 & ( eo2 != eo3 & ( eo1 != o1 & ( eo2 != o1 & ( eo3 != o1 & ( eo1 != o2 & ( eo2 != o2 & ( eo3 != o2 & ( o1 != o2 & ( eo1 != o3 & ( eo2 != o3 & ( eo3 != o3 & ( o1 != o3 & ( o2 != o3 & ( eo1 != o4 & ( eo2 != o4 & ( eo3 != o4 & ( o1 != o4 & ( o2 != o4 & ( o3 != o4 & ( eo1 != o5 & ( eo2 != o5 & ( eo3 != o5 & ( o1 != o5 & ( o2 != o5 & ( o3 != o5 & ( o4 != o5 & ( eo1 != o6 & ( eo2 != o6 & ( eo3 != o6 & ( o1 != o6 & ( o2 != o6 & ( o3 != o6 & ( o4 != o6 & ( o5 != o6 & ( eo1 != o7 & ( eo2 != o7 & ( eo3 != o7 & ( o1 != o7 & ( o2 != o7 & ( o3 != o7 & ( o4 != o7 & ( o5 != o7 & ( o6 != o7 & ( eo1 != o8 & ( eo2 != o8 & ( eo3 != o8 & ( o1 != o8 & ( o2 != o8 & ( o3 != o8 & ( o4 != o8 & ( o5 != o8 & ( o6 != o8 & ( o7 != o8 & ( eo1 != o9 & ( eo2 != o9 & ( eo3 != o9 & ( o1 != o9 & ( o2 != o9 & ( o3 != o9 & ( o4 != o9 & ( o5 != o9 & ( o6 != o9 & ( o7 != o9 & ( o8 != o9 & ( eo1 != o10 & ( eo2 != o10 & ( eo3 != o10 & ( o1 != o10 & ( o2 != o10 & ( o3 != o10 & ( o4 != o10 & ( o5 != o10 & ( o6 != o10 & ( o7 != o10 & ( o8 != o10 & ( o9 != o10 & ( eo1 != o11 & ( eo2 != o11 & ( eo3 != o11 & ( o1 != o11 & ( o2 != o11 & ( o3 != o11 & ( o4 != o11 & ( o5 != o11 & ( o6 != o11 & ( o7 != o11 & ( o8 != o11 & ( o9 != o11 & ( o10 != o11 & ( eo1 != o12 & ( eo2 != o12 & ( eo3 != o12 & ( o1 != o12 & ( o2 != o12 & ( o3 != o12 & ( o4 != o12 & ( o5 != o12 & ( o6 != o12 & ( o7 != o12 & ( o8 != o12 & ( o9 != o12 & ( o10 != o12 & ( o11 != o12 & ( eo1 != o13 & ( eo2 != o13 & ( eo3 != o13 & ( o1 != o13 & ( o2 != o13 & ( o3 != o13 & ( o4 != o13 & ( o5 != o13 & ( o6 != o13 & ( o7 != o13 & ( o8 != o13 & ( o9 != o13 & ( o10 != o13 & ( o11 != o13 & ( o12 != o13 & ( eo1 != o14 & ( eo2 != o14 & ( eo3 != o14 & ( o1 != o14 & ( o2 != o14 & ( o3 != o14 & ( o4 != o14 & ( o5 != o14 & ( o6 != o14 & ( o7 != o14 & ( o8 != o14 & ( o9 != o14 & ( o10 != o14 & ( o11 != o14 & ( o12 != o14 & ( o13 != o14 & ( eo1 != o15 & ( eo2 != o15 & ( eo3 != o15 & ( o1 != o15 & ( o2 != o15 & ( o3 != o15 & ( o4 != o15 & ( o5 != o15 & ( o6 != o15 & ( o7 != o15 & ( o8 != o15 & ( o9 != o15 & ( o10 != o15 & ( o11 != o15 & ( o12 != o15 & ( o13 != o15 & ( o14 != o15 & ( eo1 != o16 & ( eo2 != o16 & ( eo3 != o16 & ( o1 != o16 & ( o2 != o16 & ( o3 != o16 & ( o4 != o16 & ( o5 != o16 & ( o6 != o16 & ( o7 != o16 & ( o8 != o16 & ( o9 != o16 & ( o10 != o16 & ( o11 != o16 & ( o12 != o16 & ( o13 != o16 & ( o14 != o16 & ( o15 != o16 & ( eo1 != o17 & ( eo2 != o17 & ( eo3 != o17 & ( o1 != o17 & ( o2 != o17 & ( o3 != o17 & ( o4 != o17 & ( o5 != o17 & ( o6 != o17 & ( o7 != o17 & ( o8 != o17 & ( o9 != o17 & ( o10 != o17 & ( o11 != o17 & ( o12 != o17 & ( o13 != o17 & ( o14 != o17 & ( o15 != o17 & ( o16 != o17 & ( eo1 != o18 & ( eo2 != o18 & ( eo3 != o18 & ( o1 != o18 & ( o2 != o18 & ( o3 != o18 & ( o4 != o18 & ( o5 != o18 & ( o6 != o18 & ( o7 != o18 & ( o8 != o18 & ( o9 != o18 & ( o10 != o18 & ( o11 != o18 & ( o12 != o18 & ( o13 != o18 & ( o14 != o18 & ( o15 != o18 & ( o16 != o18 & ( o17 != o18 & ( eo1 != o19 & ( eo2 != o19 & ( eo3 != o19 & ( o1 != o19 & ( o2 != o19 & ( o3 != o19 & ( o4 != o19 & ( o5 != o19 & ( o6 != o19 & ( o7 != o19 & ( o8 != o19 & ( o9 != o19 & ( o10 != o19 & ( o11 != o19 & ( o12 != o19 & ( o13 != o19 & ( o14 != o19 & ( o15 != o19 & ( o16 != o19 & ( o17 != o19 & ( o18 != o19 & ( eo1 != o20 & ( eo2 != o20 & ( eo3 != o20 & ( o1 != o20 & ( o2 != o20 & ( o3 != o20 & ( o4 != o20 & ( o5 != o20 & ( o6 != o20 & ( o7 != o20 & ( o8 != o20 & ( o9 != o20 & ( o10 != o20 & ( o11 != o20 & ( o12 != o20 & ( o13 != o20 & ( o14 != o20 & ( o15 != o20 & ( o16 != o20 & ( o17 != o20 & ( o18 != o20 & ( o19 != o20 & ( eo1 != o21 & ( eo2 != o21 & ( eo3 != o21 & ( o1 != o21 & ( o2 != o21 & ( o3 != o21 & ( o4 != o21 & ( o5 != o21 & ( o6 != o21 & ( o7 != o21 & ( o8 != o21 & ( o9 != o21 & ( o10 != o21 & ( o11 != o21 & ( o12 != o21 & ( o13 != o21 & ( o14 != o21 & ( o15 != o21 & ( o16 != o21 & ( o17 != o21 & ( o18 != o21 & ( o19 != o21 & ( o20 != o21 & ( eo1 != o22 & ( eo2 != o22 & ( eo3 != o22 & ( o1 != o22 & ( o2 != o22 & ( o3 != o22 & ( o4 != o22 & ( o5 != o22 & ( o6 != o22 & ( o7 != o22 & ( o8 != o22 & ( o9 != o22 & ( o10 != o22 & ( o11 != o22 & ( o12 != o22 & ( o13 != o22 & ( o14 != o22 & ( o15 != o22 & ( o16 != o22 & ( o17 != o22 & ( o18 != o22 & ( o19 != o22 & ( o20 != o22 & ( o21 != o22 & ( eo1 != o23 & ( eo2 != o23 & ( eo3 != o23 & ( o1 != o23 & ( o2 != o23 & ( o3 != o23 & ( o4 != o23 & ( o5 != o23 & ( o6 != o23 & ( o7 != o23 & ( o8 != o23 & ( o9 != o23 & ( o10 != o23 & ( o11 != o23 & ( o12 != o23 & ( o13 != o23 & ( o14 != o23 & ( o15 != o23 & ( o16 != o23 & ( o17 != o23 & ( o18 != o23 & ( o19 != o23 & ( o20 != o23 & ( o21 != o23 & ( o22 != o23 & ( eo1 != o24 & ( eo2 != o24 & ( eo3 != o24 & ( o1 != o24 & ( o2 != o24 & ( o3 != o24 & ( o4 != o24 & ( o5 != o24 & ( o6 != o24 & ( o7 != o24 & ( o8 != o24 & ( o9 != o24 & ( o10 != o24 & ( o11 != o24 & ( o12 != o24 & ( o13 != o24 & ( o14 != o24 & ( o15 != o24 & ( o16 != o24 & ( o17 != o24 & ( o18 != o24 & ( o19 != o24 & ( o20 != o24 & ( o21 != o24 & ( o22 != o24 & ( o23 != o24 & ( eo1 != o25 & ( eo2 != o25 & ( eo3 != o25 & ( o1 != o25 & ( o2 != o25 & ( o3 != o25 & ( o4 != o25 & ( o5 != o25 & ( o6 != o25 & ( o7 != o25 & ( o8 != o25 & ( o9 != o25 & ( o10 != o25 & ( o11 != o25 & ( o12 != o25 & ( o13 != o25 & ( o14 != o25 & ( o15 != o25 & ( o16 != o25 & ( o17 != o25 & ( o18 != o25 & ( o19 != o25 & ( o20 != o25 & ( o21 != o25 & ( o22 != o25 & ( o23 != o25 & ( o24 != o25 & ( eo1 != o26 & ( eo2 != o26 & ( eo3 != o26 & ( o1 != o26 & ( o2 != o26 & ( o3 != o26 & ( o4 != o26 & ( o5 != o26 & ( o6 != o26 & ( o7 != o26 & ( o8 != o26 & ( o9 != o26 & ( o10 != o26 & ( o11 != o26 & ( o12 != o26 & ( o13 != o26 & ( o14 != o26 & ( o15 != o26 & ( o16 != o26 & ( o17 != o26 & ( o18 != o26 & ( o19 != o26 & ( o20 != o26 & ( o21 != o26 & ( o22 != o26 & ( o23 != o26 & ( o24 != o26 & ( o25 != o26 & ( eo1 != o27 & ( eo2 != o27 & ( eo3 != o27 & ( o1 != o27 & ( o2 != o27 & ( o3 != o27 & ( o4 != o27 & ( o5 != o27 & ( o6 != o27 & ( o7 != o27 & ( o8 != o27 & ( o9 != o27 & ( o10 != o27 & ( o11 != o27 & ( o12 != o27 & ( o13 != o27 & ( o14 != o27 & ( o15 != o27 & ( o16 != o27 & ( o17 != o27 & ( o18 != o27 & ( o19 != o27 & ( o20 != o27 & ( o21 != o27 & ( o22 != o27 & ( o23 != o27 & ( o24 != o27 & ( o25 != o27 & ( o26 != o27 & ( eo1 != o28 & ( eo2 != o28 & ( eo3 != o28 & ( o1 != o28 & ( o2 != o28 & ( o3 != o28 & ( o4 != o28 & ( o5 != o28 & ( o6 != o28 & ( o7 != o28 & ( o8 != o28 & ( o9 != o28 & ( o10 != o28 & ( o11 != o28 & ( o12 != o28 & ( o13 != o28 & ( o14 != o28 & ( o15 != o28 & ( o16 != o28 & ( o17 != o28 & ( o18 != o28 & ( o19 != o28 & ( o20 != o28 & ( o21 != o28 & ( o22 != o28 & ( o23 != o28 & ( o24 != o28 & ( o25 != o28 & ( o26 != o28 & ( o27 != o28 & ( eo1 != o29 & ( eo2 != o29 & ( eo3 != o29 & ( o1 != o29 & ( o2 != o29 & ( o3 != o29 & ( o4 != o29 & ( o5 != o29 & ( o6 != o29 & ( o7 != o29 & ( o8 != o29 & ( o9 != o29 & ( o10 != o29 & ( o11 != o29 & ( o12 != o29 & ( o13 != o29 & ( o14 != o29 & ( o15 != o29 & ( o16 != o29 & ( o17 != o29 & ( o18 != o29 & ( o19 != o29 & ( o20 != o29 & ( o21 != o29 & ( o22 != o29 & ( o23 != o29 & ( o24 != o29 & ( o25 != o29 & ( o26 != o29 & ( o27 != o29 & ( o28 != o29 & ( eo1 != o30 & ( eo2 != o30 & ( eo3 != o30 & ( o1 != o30 & ( o2 != o30 & ( o3 != o30 & ( o4 != o30 & ( o5 != o30 & ( o6 != o30 & ( o7 != o30 & ( o8 != o30 & ( o9 != o30 & ( o10 != o30 & ( o11 != o30 & ( o12 != o30 & ( o13 != o30 & ( o14 != o30 & ( o15 != o30 & ( o16 != o30 & ( o17 != o30 & ( o18 != o30 & ( o19 != o30 & ( o20 != o30 & ( o21 != o30 & ( o22 != o30 & ( o23 != o30 & ( o24 != o30 & ( o25 != o30 & ( o26 != o30 & ( o27 != o30 & ( o28 != o30 & ( o29 != o30 & ( eo1 != o31 & ( eo2 != o31 & ( eo3 != o31 & ( o1 != o31 & ( o2 != o31 & ( o3 != o31 & ( o4 != o31 & ( o5 != o31 & ( o6 != o31 & ( o7 != o31 & ( o8 != o31 & ( o9 != o31 & ( o10 != o31 & ( o11 != o31 & ( o12 != o31 & ( o13 != o31 & ( o14 != o31 & ( o15 != o31 & ( o16 != o31 & ( o17 != o31 & ( o18 != o31 & ( o19 != o31 & ( o20 != o31 & ( o21 != o31 & ( o22 != o31 & ( o23 != o31 & ( o24 != o31 & ( o25 != o31 & ( o26 != o31 & ( o27 != o31 & ( o28 != o31 & ( o29 != o31 & ( o30 != o31 & ( eo1 != o32 & ( eo2 != o32 & ( eo3 != o32 & ( o1 != o32 & ( o2 != o32 & ( o3 != o32 & ( o4 != o32 & ( o5 != o32 & ( o6 != o32 & ( o7 != o32 & ( o8 != o32 & ( o9 != o32 & ( o10 != o32 & ( o11 != o32 & ( o12 != o32 & ( o13 != o32 & ( o14 != o32 & ( o15 != o32 & ( o16 != o32 & ( o17 != o32 & ( o18 != o32 & ( o19 != o32 & ( o20 != o32 & ( o21 != o32 & ( o22 != o32 & ( o23 != o32 & ( o24 != o32 & ( o25 != o32 & ( o26 != o32 & ( o27 != o32 & ( o28 != o32 & ( o29 != o32 & ( o30 != o32 & ( o31 != o32 & ( eo1 != o33 & ( eo2 != o33 & ( eo3 != o33 & ( o1 != o33 & ( o2 != o33 & ( o3 != o33 & ( o4 != o33 & ( o5 != o33 & ( o6 != o33 & ( o7 != o33 & ( o8 != o33 & ( o9 != o33 & ( o10 != o33 & ( o11 != o33 & ( o12 != o33 & ( o13 != o33 & ( o14 != o33 & ( o15 != o33 & ( o16 != o33 & ( o17 != o33 & ( o18 != o33 & ( o19 != o33 & ( o20 != o33 & ( o21 != o33 & ( o22 != o33 & ( o23 != o33 & ( o24 != o33 & ( o25 != o33 & ( o26 != o33 & ( o27 != o33 & ( o28 != o33 & ( o29 != o33 & ( o30 != o33 & ( o31 != o33 & ( o32 != o33 & ( eo1 != o34 & ( eo2 != o34 & ( eo3 != o34 & ( o1 != o34 & ( o2 != o34 & ( o3 != o34 & ( o4 != o34 & ( o5 != o34 & ( o6 != o34 & ( o7 != o34 & ( o8 != o34 & ( o9 != o34 & ( o10 != o34 & ( o11 != o34 & ( o12 != o34 & ( o13 != o34 & ( o14 != o34 & ( o15 != o34 & ( o16 != o34 & ( o17 != o34 & ( o18 != o34 & ( o19 != o34 & ( o20 != o34 & ( o21 != o34 & ( o22 != o34 & ( o23 != o34 & ( o24 != o34 & ( o25 != o34 & ( o26 != o34 & ( o27 != o34 & ( o28 != o34 & ( o29 != o34 & ( o30 != o34 & ( o31 != o34 & ( o32 != o34 & ( o33 != o34 & ( eo1 != o35 & ( eo2 != o35 & ( eo3 != o35 & ( o1 != o35 & ( o2 != o35 & ( o3 != o35 & ( o4 != o35 & ( o5 != o35 & ( o6 != o35 & ( o7 != o35 & ( o8 != o35 & ( o9 != o35 & ( o10 != o35 & ( o11 != o35 & ( o12 != o35 & ( o13 != o35 & ( o14 != o35 & ( o15 != o35 & ( o16 != o35 & ( o17 != o35 & ( o18 != o35 & ( o19 != o35 & ( o20 != o35 & ( o21 != o35 & ( o22 != o35 & ( o23 != o35 & ( o24 != o35 & ( o25 != o35 & ( o26 != o35 & ( o27 != o35 & ( o28 != o35 & ( o29 != o35 & ( o30 != o35 & ( o31 != o35 & ( o32 != o35 & ( o33 != o35 & ( o34 != o35 & ( eo1 != o36 & ( eo2 != o36 & ( eo3 != o36 & ( o1 != o36 & ( o2 != o36 & ( o3 != o36 & ( o4 != o36 & ( o5 != o36 & ( o6 != o36 & ( o7 != o36 & ( o8 != o36 & ( o9 != o36 & ( o10 != o36 & ( o11 != o36 & ( o12 != o36 & ( o13 != o36 & ( o14 != o36 & ( o15 != o36 & ( o16 != o36 & ( o17 != o36 & ( o18 != o36 & ( o19 != o36 & ( o20 != o36 & ( o21 != o36 & ( o22 != o36 & ( o23 != o36 & ( o24 != o36 & ( o25 != o36 & ( o26 != o36 & ( o27 != o36 & ( o28 != o36 & ( o29 != o36 & ( o30 != o36 & ( o31 != o36 & ( o32 != o36 & ( o33 != o36 & ( o34 != o36 & ( o35 != o36 & ( eo1 != o37 & ( eo2 != o37 & ( eo3 != o37 & ( o1 != o37 & ( o2 != o37 & ( o3 != o37 & ( o4 != o37 & ( o5 != o37 & ( o6 != o37 & ( o7 != o37 & ( o8 != o37 & ( o9 != o37 & ( o10 != o37 & ( o11 != o37 & ( o12 != o37 & ( o13 != o37 & ( o14 != o37 & ( o15 != o37 & ( o16 != o37 & ( o17 != o37 & ( o18 != o37 & ( o19 != o37 & ( o20 != o37 & ( o21 != o37 & ( o22 != o37 & ( o23 != o37 & ( o24 != o37 & ( o25 != o37 & ( o26 != o37 & ( o27 != o37 & ( o28 != o37 & ( o29 != o37 & ( o30 != o37 & ( o31 != o37 & ( o32 != o37 & ( o33 != o37 & ( o34 != o37 & ( o35 != o37 & ( o36 != o37 & ( eo1 != o38 & ( eo2 != o38 & ( eo3 != o38 & ( o1 != o38 & ( o2 != o38 & ( o3 != o38 & ( o4 != o38 & ( o5 != o38 & ( o6 != o38 & ( o7 != o38 & ( o8 != o38 & ( o9 != o38 & ( o10 != o38 & ( o11 != o38 & ( o12 != o38 & ( o13 != o38 & ( o14 != o38 & ( o15 != o38 & ( o16 != o38 & ( o17 != o38 & ( o18 != o38 & ( o19 != o38 & ( o20 != o38 & ( o21 != o38 & ( o22 != o38 & ( o23 != o38 & ( o24 != o38 & ( o25 != o38 & ( o26 != o38 & ( o27 != o38 & ( o28 != o38 & ( o29 != o38 & ( o30 != o38 & ( o31 != o38 & ( o32 != o38 & ( o33 != o38 & ( o34 != o38 & ( o35 != o38 & ( o36 != o38 & ( o37 != o38 & ( eo1 != o39 & ( eo2 != o39 & ( eo3 != o39 & ( o1 != o39 & ( o2 != o39 & ( o3 != o39 & ( o4 != o39 & ( o5 != o39 & ( o6 != o39 & ( o7 != o39 & ( o8 != o39 & ( o9 != o39 & ( o10 != o39 & ( o11 != o39 & ( o12 != o39 & ( o13 != o39 & ( o14 != o39 & ( o15 != o39 & ( o16 != o39 & ( o17 != o39 & ( o18 != o39 & ( o19 != o39 & ( o20 != o39 & ( o21 != o39 & ( o22 != o39 & ( o23 != o39 & ( o24 != o39 & ( o25 != o39 & ( o26 != o39 & ( o27 != o39 & ( o28 != o39 & ( o29 != o39 & ( o30 != o39 & ( o31 != o39 & ( o32 != o39 & ( o33 != o39 & ( o34 != o39 & ( o35 != o39 & ( o36 != o39 & ( o37 != o39 & ( o38 != o39 & ( eo1 != o40 & ( eo2 != o40 & ( eo3 != o40 & ( o1 != o40 & ( o2 != o40 & ( o3 != o40 & ( o4 != o40 & ( o5 != o40 & ( o6 != o40 & ( o7 != o40 & ( o8 != o40 & ( o9 != o40 & ( o10 != o40 & ( o11 != o40 & ( o12 != o40 & ( o13 != o40 & ( o14 != o40 & ( o15 != o40 & ( o16 != o40 & ( o17 != o40 & ( o18 != o40 & ( o19 != o40 & ( o20 != o40 & ( o21 != o40 & ( o22 != o40 & ( o23 != o40 & ( o24 != o40 & ( o25 != o40 & ( o26 != o40 & ( o27 != o40 & ( o28 != o40 & ( o29 != o40 & ( o30 != o40 & ( o31 != o40 & ( o32 != o40 & ( o33 != o40 & ( o34 != o40 & ( o35 != o40 & ( o36 != o40 & ( o37 != o40 & ( o38 != o40 & o39 != o40 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) .
15fof ( compliance_interface_FunctionalElement , axiom , ! [ V_0 , V_1 ] : ( r_interface_FunctionalElement ( V_0 , V_1 ) => ( t_FunctionalElement ( V_0 ) & t_FunctionalInterface ( V_1 ) ) ) ) . 15fof ( compliance_interface_FunctionalElement , axiom , ! [ V_0 , V_1 ] : ( r_interface_FunctionalElement ( V_0 , V_1 ) => ( t_FunctionalElement ( V_0 ) & t_FunctionalInterface ( V_1 ) ) ) ) .
16fof ( compliance_model_FunctionalElement , axiom , ! [ V_0 , V_1 ] : ( r_model_FunctionalElement ( V_0 , V_1 ) => ( t_FunctionalElement ( V_0 ) & t_FunctionalArchitectureModel ( V_1 ) ) ) ) . 16fof ( compliance_model_FunctionalElement , axiom , ! [ V_0 , V_1 ] : ( r_model_FunctionalElement ( V_0 , V_1 ) => ( t_FunctionalElement ( V_0 ) & t_FunctionalArchitectureModel ( V_1 ) ) ) ) .
17fof ( compliance_parent_FunctionalElement , axiom , ! [ V_0 , V_1 ] : ( r_parent_FunctionalElement ( V_0 , V_1 ) => ( t_FunctionalElement ( V_0 ) & t_Function ( V_1 ) ) ) ) . 17fof ( compliance_parent_FunctionalElement , axiom , ! [ V_0 , V_1 ] : ( r_parent_FunctionalElement ( V_0 , V_1 ) => ( t_FunctionalElement ( V_0 ) & t_Function ( V_1 ) ) ) ) .
@@ -28,12 +28,16 @@ fof ( compliance_terminator_FunctionalData , axiom , ! [ V_0 , V_1 ] : ( r_termi
28fof ( compliance_interface_FunctionalData , axiom , ! [ V_0 , V_1 ] : ( r_interface_FunctionalData ( V_0 , V_1 ) => ( t_FunctionalData ( V_0 ) & t_FunctionalInterface ( V_1 ) ) ) ) . 28fof ( compliance_interface_FunctionalData , axiom , ! [ V_0 , V_1 ] : ( r_interface_FunctionalData ( V_0 , V_1 ) => ( t_FunctionalData ( V_0 ) & t_FunctionalInterface ( V_1 ) ) ) ) .
29fof ( compliance_type_Function , axiom , ! [ V_0 , V_1 ] : ( r_type_Function ( V_0 , V_1 ) => ( t_Function ( V_0 ) & t_FunctionType ( V_1 ) ) ) ) . 29fof ( compliance_type_Function , axiom , ! [ V_0 , V_1 ] : ( r_type_Function ( V_0 , V_1 ) => ( t_Function ( V_0 ) & t_FunctionType ( V_1 ) ) ) ) .
30fof ( containment_topLevel_t_FunctionalArchitectureModel , axiom , ! [ A ] : ( t_FunctionalArchitectureModel ( A ) <=> A = o1 ) ) . 30fof ( containment_topLevel_t_FunctionalArchitectureModel , axiom , ! [ A ] : ( t_FunctionalArchitectureModel ( A ) <=> A = o1 ) ) .
31fof ( containment_r_interface_FunctionalElement , axiom , ! [ A ] : ( t_FunctionalInterface ( A ) => ? [ B ] : ( t_FunctionalElement ( B ) & r_interface_FunctionalElement ( B , A ) ) ) ) . 31
32fof ( containment_r_rootElements_FunctionalArchitectureModel , axiom , ! [ A ] : ( t_FunctionalElement ( A ) => ? [ B ] : ( t_FunctionalArchitectureModel ( B ) & r_rootElements_FunctionalArchitectureModel ( B , A ) ) ) ) . 32
33fof ( containment_r_subElements_Function , axiom , ! [ A ] : ( t_FunctionalElement ( A ) => ? [ B ] : ( t_Function ( B ) & r_subElements_Function ( B , A ) ) ) ) . 33fof ( containment_r_interface_FunctionalElement , axiom , ! [ A ] : ( t_FunctionalInterface ( A ) => ? [ B ] : r_interface_FunctionalElement ( B , A ) ) ) .
34fof ( containment_r_data_FunctionalInterface , axiom , ! [ A ] : ( t_FunctionalData ( A ) => ? [ B ] : ( t_FunctionalInterface ( B ) & r_data_FunctionalInterface ( B , A ) ) ) ) . 34fof ( containment_r_rootElements_FunctionalArchitectureModel , axiom , ! [ A ] : ( t_FunctionalElement ( A ) => ? [ B ] : r_rootElements_FunctionalArchitectureModel ( B , A ) ) ) .
35fof ( containment_r_outgoingLinks_FunctionalOutput , axiom , ! [ A ] : ( t_InformationLink ( A ) => ? [ B ] : ( t_FunctionalOutput ( B ) & r_outgoingLinks_FunctionalOutput ( B , A ) ) ) ) . 35fof ( containment_r_subElements_Function , axiom , ! [ A ] : ( t_FunctionalElement ( A ) => ? [ B ] : r_subElements_Function ( B , A ) ) ) .
36fof ( containment_r_terminator_FunctionalData , axiom , ! [ A ] : ( t_FAMTerminator ( A ) => ? [ B ] : ( t_FunctionalData ( B ) & r_terminator_FunctionalData ( B , A ) ) ) ) . 36fof ( containment_r_data_FunctionalInterface , axiom , ! [ A ] : ( t_FunctionalData ( A ) => ? [ B ] : r_data_FunctionalInterface ( B , A ) ) ) .
37fof ( containment_r_outgoingLinks_FunctionalOutput , axiom , ! [ A ] : ( t_InformationLink ( A ) => ? [ B ] : r_outgoingLinks_FunctionalOutput ( B , A ) ) ) .
38fof ( containment_r_terminator_FunctionalData , axiom , ! [ A ] : ( t_FAMTerminator ( A ) => ? [ B ] : r_terminator_FunctionalData ( B , A ) ) ) .
39
40
37fof ( 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 ) ) ) . 41fof ( 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 ) ) ) .
38fof ( 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 ) ) ) ) . 42fof ( 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 ) ) ) ) .
39fof ( 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 ) ) ) . 43fof ( 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 ) ) ) .
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/VampireTest/vampireProblem.tptp b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/VampireTest/vampireProblem.tptp
deleted file mode 100644
index 4c368859..00000000
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/VampireTest/vampireProblem.tptp
+++ /dev/null
@@ -1,7 +0,0 @@
1% This is an initial Test Comment
2fof ( typeDef_oldRPS , axiom , ! [ A ] : ( t_oldRPS ( A ) <=> ( e_Rock_oldRPS ( A ) | ( e_Paper_oldRPS ( A ) | e_Scissor_oldRPS ( A ) ) ) ) ) .
3fof ( hierarchyHandler , axiom , ! [ A ] : ( object ( A ) <=> t_oldRPS ( A ) ) ) .
4fof ( typeScope , axiom , ! [ A ] : ( object ( A ) <=> ( A = o1 | ( A = o2 | ( A = o3 | A = o4 ) ) ) ) ) .
5fof ( typeUniqueness , axiom , o1 != o2 & ( o1 != o3 & ( o2 != o3 & ( o1 != o4 & ( o2 != o4 & o3 != o4 ) ) ) ) ) .
6fof ( compliance_beats2 , axiom , ! [ Var_0 , Var_1 ] : ( rel_beats2 ( Var_0 , Var_1 ) => ( t_oldRPS ( Var_0 ) & t_oldRPS ( Var_1 ) ) ) ) .
7fof ( assertion1 , axiom , ! [ Var_x ] : ( t_oldRPS ( Var_x ) => ? [ Var_y ] : ( t_oldRPS ( Var_y ) & ( rel_beats2 ( Var_x , Var_y ) & ( Var_x != Var_y & ~ rel_beats2 ( Var_y , Var_x ) ) ) ) ) ) .
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.xtend
index 86c9092a..1559ee3f 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.xtend
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.xtend
@@ -4,11 +4,11 @@ import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver
4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration 4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration
5import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory 5import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory
6import functionalarchitecture.Function 6import functionalarchitecture.Function
7import functionalarchitecture.FunctionalInterface
8import functionalarchitecture.FunctionalOutput
7import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic 9import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic
8import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration 10import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration
9import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace
10import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor 11import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor
11import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel
12import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner 12import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner
13import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type 13import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type
14import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult 14import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult
@@ -30,8 +30,7 @@ import org.eclipse.emf.ecore.EReference
30import org.eclipse.emf.ecore.resource.Resource 30import org.eclipse.emf.ecore.resource.Resource
31import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl 31import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
32import org.eclipse.viatra.query.runtime.api.IQueryGroup 32import org.eclipse.viatra.query.runtime.api.IQueryGroup
33import org.eclipse.emf.ecore.EClassifier 33import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel
34import functionalarchitecture.FunctionalOutput
35 34
36class GeneralTest { 35class GeneralTest {
37 def static String createAndSolveProblem(EcoreMetamodelDescriptor metamodel, List<EObject> partialModel, 36 def static String createAndSolveProblem(EcoreMetamodelDescriptor metamodel, List<EObject> partialModel,
@@ -67,7 +66,7 @@ class GeneralTest {
67 list2MapMin.get(Function.simpleName) 66 list2MapMin.get(Function.simpleName)
68 ), 1) 67 ), 1)
69 typeMapMin.put(ecore2Logic.TypeofEClass(modelGenerationProblem.trace, 68 typeMapMin.put(ecore2Logic.TypeofEClass(modelGenerationProblem.trace,
70 list2MapMin.get(functionalarchitecture.FunctionalInterface.simpleName) 69 list2MapMin.get(FunctionalInterface.simpleName)
71 ), 2) 70 ), 2)
72 typeMapMin.put(ecore2Logic.TypeofEClass(modelGenerationProblem.trace, 71 typeMapMin.put(ecore2Logic.TypeofEClass(modelGenerationProblem.trace,
73 list2MapMin.get(FunctionalOutput.simpleName) 72 list2MapMin.get(FunctionalOutput.simpleName)
@@ -80,7 +79,7 @@ class GeneralTest {
80 ), 5) 79 ), 5)
81 typeMapMax.put(ecore2Logic.TypeofEClass( 80 typeMapMax.put(ecore2Logic.TypeofEClass(
82 modelGenerationProblem.trace, 81 modelGenerationProblem.trace,
83 list2MapMax.get(functionalarchitecture.FunctionalInterface.simpleName) 82 list2MapMax.get(FunctionalInterface.simpleName)
84 ), 2) 83 ), 2)
85 typeMapMax.put(ecore2Logic.TypeofEClass( 84 typeMapMax.put(ecore2Logic.TypeofEClass(
86 modelGenerationProblem.trace, 85 modelGenerationProblem.trace,
@@ -92,7 +91,7 @@ class GeneralTest {
92 // add configuration things, in config file first 91 // add configuration things, in config file first
93 it.documentationLevel = DocumentationLevel::FULL 92 it.documentationLevel = DocumentationLevel::FULL
94 it.typeScopes.minNewElements = 6 93 it.typeScopes.minNewElements = 6
95 it.typeScopes.maxNewElements = 8 94 it.typeScopes.maxNewElements = 40
96 it.typeScopes.minNewElementsByType = typeMapMin 95 it.typeScopes.minNewElementsByType = typeMapMin
97 it.typeScopes.maxNewElementsByType = typeMapMax 96 it.typeScopes.maxNewElementsByType = typeMapMax
98 ] 97 ]
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTestAlloy.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTestAlloy.xtend
new file mode 100644
index 00000000..b0af3f64
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTestAlloy.xtend
@@ -0,0 +1,190 @@
1package ca.mcgill.ecse.dslreasoner.vampire.icse
2
3import ca.mcgill.ecse.dslreasoner.vampire.queries.Patterns
4import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage
5import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolver
6import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolverConfiguration
7import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic
8import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration
9import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel
10import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.IntStatisticEntry
11import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult
12import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.StringStatisticEntry
13import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore
14import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic
15import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicConfiguration
16import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic
17import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace
18import java.io.PrintWriter
19import java.text.SimpleDateFormat
20import java.util.Date
21import org.eclipse.emf.ecore.resource.Resource
22import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
23import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.impl.ModelResultImpl
24
25class YakinduTestAlloy {
26 def static void main(String[] args) {
27 val Ecore2Logic ecore2Logic = new Ecore2Logic
28 val Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic)
29 val Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic)
30 val InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic
31
32 // Workspace setup
33 val Date date = new Date(System.currentTimeMillis)
34 val SimpleDateFormat format = new SimpleDateFormat("dd-HHmm");
35 val formattedDate = format.format(date)
36
37 val inputs = new FileSystemWorkspace('''initialModels/''', "")
38 val dataWorkspace = new FileSystemWorkspace('''output/YakinduTest/''', "")
39 val workspace = new FileSystemWorkspace('''output/YakinduTest/''' + formattedDate + '''/''', "")
40 workspace.initAndClear
41
42 // Logicproblem writing setup
43 val reg = Resource.Factory.Registry.INSTANCE
44 val map = reg.extensionToFactoryMap
45 map.put("logicproblem", new XMIResourceFactoryImpl)
46
47 println("Input and output workspaces are created")
48
49 val metamodel = GeneralTest.loadMetamodel(YakindummPackage.eINSTANCE)
50 val partialModel = GeneralTest.loadPartialModel(inputs, "yakindu/Yakindu.xmi")
51 val queries = GeneralTest.loadQueries(metamodel, Patterns.instance)
52// val metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE)
53// val partialModel = GeneralTest.loadPartialModel(inputs, "FAM/FaModel.xmi")
54// val queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance)
55// val queries = null
56 println("DSL loaded")
57
58 var SZ_TOP = 100
59 var SZ_BOT = 100
60 var INC = 20
61 var REPS = 25
62
63 val RUNTIME = 300
64
65 var solverTimes = newArrayList
66 var transformationTimes = newArrayList
67 var LogicResult solution = null
68 var solver = "Alloy"
69
70 for (var k = 0; k < 1; k++) {
71
72 for (var i = SZ_BOT; i <= SZ_TOP; i += INC) {
73 var writer = new PrintWriter(
74 dataWorkspace.workspaceURI + "//_alloy" + i + "x" + REPS + "-" + formattedDate + ".csv")
75 writer.append("solver,size,TransformatonTime,sat?,kodkodTime,model?,modelTime\n")
76
77 val num = (i - SZ_BOT) / INC
78 println()
79 println("SOLVER: " + solver + ", SIZE=" + i)
80 println()
81
82 solverTimes.clear
83 transformationTimes.clear
84 for (var j = 0; j < REPS; j++) {
85 val Date date2 = new Date(System.currentTimeMillis)
86 val formattedDate2 = format.format(date2)
87 println(formattedDate2)
88 println("<<Run number " + j + ">> :")
89
90 val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel,
91 new Ecore2LogicConfiguration())
92 var modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem, partialModel)
93 var validModelExtensionProblem = viatra2Logic.transformQueries(queries, modelExtensionProblem,
94 new Viatra2LogicConfiguration)
95
96 var problem = modelGenerationProblem.output
97// workspace.writeModel(problem, "Yakindu.logicproblem")
98// println("Problem created")
99// Start Time
100 var startTime = System.currentTimeMillis
101
102 var AlloySolver reasoner
103 // *
104 reasoner = new AlloySolver
105
106 // /////////////////////////////////////////////////////
107 // Define Config File
108 val size = i
109 val inc = INC
110 val iter = j
111 val solverConfig = new AlloySolverConfiguration => [
112 // add configuration things, in config file first
113 it.documentationLevel = DocumentationLevel::FULL
114// it.iteration = iter
115 it.runtimeLimit = RUNTIME
116// it.typeScopes.maxNewElements = size
117 it.typeScopes.minNewElements = size
118 it.typeScopes.maxNewElements = size
119 ]
120 solution = reasoner.solve(problem, solverConfig, workspace)
121// print((solution as ModelResult).representation.get(0))
122// val soln = ((solution as ModelResult).representation.get(0) as VampireModel)
123// println(soln.confirmations)
124// println((solution as ModelResult).representation)
125// modelFound = !soln.confirmations.filter [
126// class == VLSFiniteModelImpl
127// ].isEmpty
128// ADD TO CSV
129 writer.append(solver + ",")
130 writer.append(size + ",")
131 writer.append(solution.statistics.transformationTime / 1000.0 + ",")
132
133// val satOut = (solution.statistics.entries.filter[name == "satOut"].get(0) as StringStatisticEntry).
134// value
135 val kodKodTime = (solution.statistics.entries.filter[name == "Alloy2KodKodTransformationTime"].
136 get(0) as IntStatisticEntry).value
137// print(solution.class)
138 val modOut = if(solution.class == ModelResultImpl) "FiniteModel" else "no"
139 val mod = solution.statistics.entries.filter[name == "Answer0Time"]
140 var modTime = 0.0
141 if (!mod.isEmpty) {
142 modTime = (mod.get(0) as IntStatisticEntry).value / 1000.0
143
144 }
145 writer.append("-,")
146 writer.append(kodKodTime.toString + ",")
147 writer.append(modOut + ",")
148 writer.append(modTime.toString + "")
149 writer.append("\n")
150
151 println("->" + modOut + " ... " + modTime)
152
153 // Run Garbage Collector
154 val Runtime r = Runtime.getRuntime();
155 r.gc();
156 r.gc();
157 r.gc();
158 Thread.sleep(3000)
159
160// print("(" + tTime + "/" + sTime + "s)..")
161// solverTimes.add(sTime)
162// transformationTimes.add(tTime)
163// } else {
164// writer.append("MNF" + ",")
165//// print("MNF")
166// }
167 // println("Problem solved")
168 // visualisation, see
169// var interpretations = reasoner.getInterpretations(solution as ModelResult)
170// for (interpretation : interpretations) {
171// val model = logic2Ecore.transformInterpretation(interpretation, modelGenerationProblem.trace)
172// workspace.writeModel(model, "model.xmi")
173// }
174// var totalTimeMin = (System.currentTimeMillis - startTime) / 60000
175// var totalTimeSec = ((System.currentTimeMillis - startTime) / 1000) % 60
176// println("Problem solved")
177// println("Time was: " + totalTimeMin + ":" + totalTimeSec)
178 }
179// println()
180// var solverMed = solverTimes.sort.get(REPS / 2)
181// var transformationMed = transformationTimes.sort.get(REPS / 2)
182// writer.append(solverMed.toString + "," + transformationMed.toString)
183 writer.close
184 }
185
186 }
187
188 }
189
190}
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTestViatra.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTestViatra.xtend
new file mode 100644
index 00000000..dbc90e97
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTestViatra.xtend
@@ -0,0 +1,182 @@
1package ca.mcgill.ecse.dslreasoner.vampire.icse
2
3import ca.mcgill.ecse.dslreasoner.vampire.queries.Patterns
4import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage
5import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolver
6import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolverConfiguration
7import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic
8import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration
9import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel
10import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.IntStatisticEntry
11import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult
12import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.StringStatisticEntry
13import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore
14import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic
15import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicConfiguration
16import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic
17import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace
18import java.io.PrintWriter
19import java.text.SimpleDateFormat
20import java.util.Date
21import org.eclipse.emf.ecore.resource.Resource
22import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
23import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.impl.ModelResultImpl
24import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasoner
25import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasonerConfiguration
26
27class YakinduTestViatra {
28 def static void main(String[] args) {
29 val Ecore2Logic ecore2Logic = new Ecore2Logic
30 val Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic)
31 val Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic)
32 val InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic
33
34 // Workspace setup
35 val Date date = new Date(System.currentTimeMillis)
36 val SimpleDateFormat format = new SimpleDateFormat("dd-HHmm");
37 val formattedDate = format.format(date)
38
39 val inputs = new FileSystemWorkspace('''initialModels/''', "")
40 val dataWorkspace = new FileSystemWorkspace('''output/YakinduTest/''', "")
41 val workspace = new FileSystemWorkspace('''output/YakinduTest/''' + formattedDate + '''/''', "")
42 workspace.initAndClear
43
44 // Logicproblem writing setup
45 val reg = Resource.Factory.Registry.INSTANCE
46 val map = reg.extensionToFactoryMap
47 map.put("logicproblem", new XMIResourceFactoryImpl)
48
49 println("Input and output workspaces are created")
50
51 val metamodel = GeneralTest.loadMetamodel(YakindummPackage.eINSTANCE)
52 val partialModel = GeneralTest.loadPartialModel(inputs, "yakindu/Yakindu.xmi")
53 val queries = GeneralTest.loadQueries(metamodel, Patterns.instance)
54// val metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE)
55// val partialModel = GeneralTest.loadPartialModel(inputs, "FAM/FaModel.xmi")
56// val queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance)
57// val queries = null
58 println("DSL loaded")
59
60 var SZ_TOP = 20
61 var SZ_BOT = 20
62 var INC = 20
63 var REPS = 5
64
65 val RUNTIME = 300
66
67 var solverTimes = newArrayList
68 var transformationTimes = newArrayList
69 var LogicResult solution = null
70 var solver = "Viatra"
71 var index = 2
72
73 for (var i = SZ_BOT; i <= SZ_TOP; i += INC*index) {
74 index*=2
75 var writer = new PrintWriter(
76 dataWorkspace.workspaceURI + "//_viatra" + i + "x" + REPS + "-" + formattedDate + ".csv")
77 writer.append("solver,size,TransformatonTime,sat?,kodkodTime,model?,modelTime\n")
78
79 val num = (i - SZ_BOT) / INC
80 println()
81 println("SOLVER: " + solver + ", SIZE=" + i)
82 println()
83
84 solverTimes.clear
85 transformationTimes.clear
86 for (var j = 0; j < REPS; j++) {
87
88 println("<<Run number " + j + ">> :")
89
90 val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, new Ecore2LogicConfiguration())
91 var modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem, partialModel)
92 var validModelExtensionProblem = viatra2Logic.transformQueries(queries, modelExtensionProblem,
93 new Viatra2LogicConfiguration)
94
95 var problem = modelGenerationProblem.output
96 workspace.writeModel(problem, "Yakindu.logicproblem")
97// println("Problem created")
98// Start Time
99 var startTime = System.currentTimeMillis
100
101 var ViatraReasoner reasoner
102 // *
103 reasoner = new ViatraReasoner
104
105 // /////////////////////////////////////////////////////
106 // Define Config File
107 val size = i
108 val inc = INC
109 val iter = j
110 val solverConfig = new ViatraReasonerConfiguration => [
111 // add configuration things, in config file first
112// it.documentationLevel = DocumentationLevel::FULL
113// it.iteration = iter
114 it.runtimeLimit = RUNTIME
115 it.typeScopes.maxNewElements = size
116 it.typeScopes.minNewElements = size
117 ]
118
119 solution = reasoner.solve(problem, solverConfig, workspace)
120// print((solution as ModelResult).representation.get(0))
121// val soln = ((solution as ModelResult).representation.get(0) as VampireModel)
122// println(soln.confirmations)
123// println((solution as ModelResult).representation)
124// modelFound = !soln.confirmations.filter [
125// class == VLSFiniteModelImpl
126// ].isEmpty
127// ADD TO CSV
128 writer.append(solver + ",")
129 writer.append(size + ",")
130 writer.append(solution.statistics.transformationTime / 1000.0 + ",")
131
132// val satOut = (solution.statistics.entries.filter[name == "satOut"].get(0) as StringStatisticEntry).
133// value
134 val modOut = if(solution.class == ModelResultImpl) "FiniteModel" else "no"
135// val modTime = (solution.statistics.entries.filter[name.contains("Answer")].
136// get(0) as StringStatisticEntry).value
137 val modTime = solution.statistics.solverTime / 1000.0
138
139 writer.append("-,")
140 writer.append("-,")
141 writer.append(modOut + ",")
142 writer.append(modTime.toString + "")
143 writer.append("\n")
144
145 println("->" + modOut + " ... " + modTime)
146
147 // Run Garbage Collector
148 val Runtime r = Runtime.getRuntime();
149 r.gc();
150 r.gc();
151 r.gc();
152 Thread.sleep(3000)
153
154// print("(" + tTime + "/" + sTime + "s)..")
155// solverTimes.add(sTime)
156// transformationTimes.add(tTime)
157// } else {
158// writer.append("MNF" + ",")
159//// print("MNF")
160// }
161 // println("Problem solved")
162 // visualisation, see
163// var interpretations = reasoner.getInterpretations(solution as ModelResult)
164// for (interpretation : interpretations) {
165// val model = logic2Ecore.transformInterpretation(interpretation, modelGenerationProblem.trace)
166// workspace.writeModel(model, "model.xmi")
167// }
168// var totalTimeMin = (System.currentTimeMillis - startTime) / 60000
169// var totalTimeSec = ((System.currentTimeMillis - startTime) / 1000) % 60
170// println("Problem solved")
171// println("Time was: " + totalTimeMin + ":" + totalTimeSec)
172 }
173// println()
174// var solverMed = solverTimes.sort.get(REPS / 2)
175// var transformationMed = transformationTimes.sort.get(REPS / 2)
176// writer.append(solverMed.toString + "," + transformationMed.toString)
177 writer.close
178 }
179
180 }
181
182}
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/tester.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/tester.xtend
new file mode 100644
index 00000000..2bf0c4cc
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/tester.xtend
@@ -0,0 +1,35 @@
1package ca.mcgill.ecse.dslreasoner.vampire.icse
2
3import java.io.BufferedReader
4import java.io.FileInputStream
5import java.io.InputStream
6import java.io.InputStreamReader
7
8class tester {
9 def static void main(String[] args) {
10 val InputStream is = new FileInputStream("C://Users//Aren Babikian//git//VIATRA-Generator//Tests//ca.mcgill.ecse.dslreasoner.vampire.test//src//ca//mcgill//ecse//dslreasoner//vampire//icse//90-110Z3.txt");
11 val BufferedReader buf = new BufferedReader(new InputStreamReader(is));
12 var String line = buf.readLine();
13 val StringBuilder sb = new StringBuilder();
14 while (line != null) {
15 sb.append(line);
16 line = buf.readLine();
17 }
18 val String str = sb.toString();
19
20 val satArray = str.split("Model")
21
22 val satTimes = newArrayList
23
24 for(sat : satArray.subList(1, satArray.length)) {
25 satTimes.add(sat.substring(2, 8))
26 }
27
28 for(t : satTimes) {
29 println(t)
30 }
31
32
33
34 }
35}
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icseTests/FAMTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icseTests/FAMTest.xtend
deleted file mode 100644
index a8b4dcfb..00000000
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icseTests/FAMTest.xtend
+++ /dev/null
@@ -1,103 +0,0 @@
1package ca.mcgill.ecse.dslreasoner.vampire.test
2
3import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver
4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration
5import functionalarchitecture.FunctionalarchitecturePackage
6import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic
7import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration
8import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor
9import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner
10import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult
11import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore
12import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic
13import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic
14import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace
15import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace
16import java.util.List
17import org.eclipse.emf.ecore.EAttribute
18import org.eclipse.emf.ecore.EClass
19import org.eclipse.emf.ecore.EEnum
20import org.eclipse.emf.ecore.EEnumLiteral
21import org.eclipse.emf.ecore.EObject
22import org.eclipse.emf.ecore.EReference
23import org.eclipse.emf.ecore.resource.Resource
24import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
25
26class DslTest {
27 def static void main(String[] args) {
28 val inputs = new FileSystemWorkspace('''initialModels/''', "")
29 val workspace = new FileSystemWorkspace('''outputDslModels/''', "")
30 workspace.initAndClear
31
32 println("Input and output workspaces are created")
33
34 val metamodel = loadMetamodel()
35 val partialModel = loadPartialModel(inputs)
36// val queries = loadQueries(metamodel)
37
38 println("DSL loaded")
39
40 val Ecore2Logic ecore2Logic = new Ecore2Logic
41 val Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic)
42 val Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic)
43 val InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic
44
45 val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel,new Ecore2LogicConfiguration())
46// val modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem,partialModel)
47// val validModelExtensionProblem = viatra2Logic.transformQueries(queries,modelGenerationProblem,new Viatra2LogicConfiguration)
48
49 val logicProblem = modelGenerationProblem.output
50// val logicProblem = modelExtensionProblem.output
51// val logicProblem = validModelExtensionProblem.output
52
53
54 println("Problem created")
55
56 var LogicResult solution
57 var LogicReasoner reasoner
58 //*
59 reasoner = new VampireSolver
60 val vampireConfig = new VampireSolverConfiguration => [
61 //add configuration things, in config file first
62 it.writeToFile = false
63 ]
64
65 solution = reasoner.solve(logicProblem, vampireConfig, workspace)
66
67 println("Problem solved")
68
69
70 }
71
72 def private static loadMetamodel() {
73 //FAM
74 val pckg = FunctionalarchitecturePackage.eINSTANCE
75 val List<EClass> classes = pckg.EClassifiers.filter(EClass).toList
76 val List<EEnum> enums = pckg.EClassifiers.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
83 def private static loadPartialModel(ReasonerWorkspace inputs) {
84 Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl());
85 inputs.readModel(EObject,"FunctionalArchitectureModel.xmi").eResource.allContents.toList
86// inputs.readModel(EObject,"FAM.xmi").eResource.allContents.toList
87 }
88
89// def private static loadQueries(EcoreMetamodelDescriptor metamodel) {
90// val i = hu.bme.mit.inf.dslreasoner.domains.transima.fam.patterns.Pattern.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// }
103}
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/queries/YakinduPatterns.txt b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/queries/YakinduPatterns.txt
new file mode 100644
index 00000000..8c2b9033
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/queries/YakinduPatterns.txt
@@ -0,0 +1,227 @@
1package ca.mcgill.ecse.dslreasoner.vampire.queries
2
3import epackage
4
5/////////
6// Entry
7/////////
8
9pattern entryInRegion(r1 : Region, e1 : Entry) {
10 Region.vertices(r1, e1);
11}
12
13@Constraint(severity="error", message="error", key = {r1})
14pattern noEntryInRegion(r1 : Region) {
15 neg find entryInRegion(r1, _);
16}
17
18@Constraint(severity="error", message="error", key = {r})
19pattern multipleEntryInRegion(r : Region) {
20 find entryInRegion(r, e1);
21 find entryInRegion(r, e2);
22 e1 != e2;
23}
24
25pattern transition(t : Transition, src : Vertex, trg : Vertex) {
26 Transition.source(t, src);
27 Transition.target(t, trg);
28}
29
30@Constraint(severity="error", message="error", key = {e})
31pattern incomingToEntry(t : Transition, e : Entry) {
32 find transition(t, _, e);
33}
34
35@Constraint(severity="error", message="error", key = {e})
36pattern noOutgoingTransitionFromEntry(e : Entry) {
37 neg find transition(_, e, _);
38}
39
40@Constraint(severity="error", message="error", key = {e})
41pattern multipleTransitionFromEntry(e : Entry, t1 : Transition, t2: Transition) {
42 Entry.outgoingTransitions(e,t1);
43 Entry.outgoingTransitions(e,t2);
44 t1!=t2;
45}
46
47/////////
48// Exit
49/////////
50
51@Constraint(severity="error", message="error", key = {e})
52pattern outgoingFromExit(t : Transition, e : Exit) {
53 Exit.outgoingTransitions(e,t);
54}
55
56/////////
57// Final
58/////////
59
60@Constraint(severity="error", message="error", key = {f})
61pattern outgoingFromFinal(t : Transition, f : FinalState) {
62 FinalState.outgoingTransitions(f,t);
63}
64
65/////////
66// State vs Region
67/////////
68
69@Constraint(severity="error", message="error", key = {region})
70pattern noStateInRegion(region: Region) {
71 neg find StateInRegion(region,_);
72}
73pattern StateInRegion(region: Region, state: State) {
74 Region.vertices(region,state);
75}
76
77/////////
78// Choice
79/////////
80
81@Constraint(severity="error", message="error", key = {c})
82pattern choiceHasNoOutgoing(c : Choice) {
83 neg find transition(_, c, _);
84}
85
86@Constraint(severity="error", message="error", key = {c})
87pattern choiceHasNoIncoming(c: Choice) {
88 neg find transition(_, _, c);
89}
90
91///////////
92//// Synchronization
93///////////
94//
95//@Constraint(severity="error", message="error", key = {s})
96//pattern synchHasNoOutgoing(s : Synchronization) {
97// neg find transition(_, s, _);
98//}
99//
100//@Constraint(severity="error", message="error", key = {s})
101//pattern synchHasNoIncoming(s : Synchronization) {
102// neg find transition(_, _, s);
103//}
104//
105//@Constraint(severity="error", message="error", key = {s})
106//pattern SynchronizedIncomingInSameRegion(s : Synchronization, v1 : Vertex, v2 : Vertex) {
107// find transition(t1, v1, s);
108// find transition(t2, v2, s);
109// t1!=t2;
110// Region.vertices(r, v1);
111// Region.vertices(r, v2);
112//} or {
113// find transition(t1, s, v1);
114// find transition(t2, s, v2);
115// t1!=t2;
116// Region.vertices(r, v1);
117// Region.vertices(r, v2);
118//}
119//
120//@Constraint(severity="error", message="error", key = {s})
121//pattern notSynchronizingStates(s : Synchronization) {
122// neg find hasMultipleOutgoingTrainsition(s);
123// neg find hasMultipleIncomingTrainsition(s);
124//}
125//
126//pattern hasMultipleOutgoingTrainsition(v : Synchronization) {
127// find transition(_, v, trg1);
128// find transition(_, v, trg2);
129// trg1 != trg2;
130//}
131//
132//pattern hasMultipleIncomingTrainsition(v : Synchronization) {
133// find transition(_, src1, v);
134// find transition(_, src2, v);
135// src1 != src2;
136//}
137//
138//@Constraint(severity="error", message="error", key = {s})
139//pattern SynchronizedRegionsAreNotSiblings(s : Synchronization, v1 : Vertex, v2 : Vertex) {
140// find transition(_, v1, s);
141// find transition(_, v2, s);
142// CompositeElement.regions.vertices(r1, v1);
143// CompositeElement.regions.vertices(r2, v2);
144// r1 != r2;
145//} or {
146// find transition(_, s, v1);
147// find transition(_, s, v2);
148// CompositeElement.regions.vertices(r1, v1);
149// CompositeElement.regions.vertices(r2, v2);
150// r1 != r2;
151//}
152
153///////////////////////////////
154// Extra
155//
156//@Constraint(severity="error", message="error", key = {s})
157//pattern SynchronizedRegionDoesNotHaveParent(s : Synchronization, v : Vertex) {
158// find transition(_, v, s);
159// neg find child(_,v);
160//} or {
161// find transition(_, s, v);
162// neg find child(_,v);
163//}
164
165pattern child(parent: CompositeElement, child: Vertex) {
166 CompositeElement.regions.vertices(parent, child);
167}
168
169@Constraint(severity="error", message="error", key = {s})
170pattern SynchronizedRegionDoesNotHaveMultipleRegions(s : Synchronization, v : Vertex) {
171 find transition(_, v, s);
172 find child(c,v);
173 neg find hasMultipleRegions(c);
174} or {
175 find transition(_, s, v);
176 find child(c,v);
177 neg find hasMultipleRegions(c);
178}
179
180
181pattern hasMultipleRegions(composite: CompositeElement) {
182 CompositeElement.regions(composite,region1);
183 CompositeElement.regions(composite,region2);
184 region1 != region2;
185}
186
187/**
188 * Simplifying model generation
189 */
190@Constraint(severity="error", message="error", key = {s})
191pattern synchThree(s: Synchronization) {
192 Transition.target(t1,s);
193 Transition.target(t2,s);
194 Transition.target(t3,s);
195 t1!=t2;
196 t2!=t3;
197 t1!=t3;
198} or {
199 Transition.source(t1,s);
200 Transition.source(t2,s);
201 Transition.source(t3,s);
202 t1!=t2;
203 t2!=t3;
204 t1!=t3;
205}
206
207/**
208 * Simplifying model generation
209 */
210@Constraint(severity="error", message="error", key = {s1,s2})
211pattern twoSynch(s1 : Synchronization, s2 : Synchronization) {
212 Synchronization(s1);
213 Synchronization(s2);
214 s1 != s2;
215}
216
217/**
218 * Model generation task: at least one synch
219 */
220//@Constraint(severity="error", message="error", key = {s})
221//pattern noSynch(s:Statechart) {
222// Statechart(s);
223// neg find synch(_);
224//}
225//pattern synch(s:Synchronization) {
226// Synchronization(s);
227//} \ No newline at end of file
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Choice.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Choice.java
new file mode 100644
index 00000000..8cd339c5
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Choice.java
@@ -0,0 +1,17 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Choice</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage#getChoice()
13 * @model
14 * @generated
15 */
16public interface Choice extends Pseudostate {
17} // Choice
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/CompositeElement.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/CompositeElement.java
new file mode 100644
index 00000000..cf2949d8
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/CompositeElement.java
@@ -0,0 +1,42 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm;
4
5import org.eclipse.emf.common.util.EList;
6
7import org.eclipse.emf.ecore.EObject;
8
9/**
10 * <!-- begin-user-doc -->
11 * A representation of the model object '<em><b>Composite Element</b></em>'.
12 * <!-- end-user-doc -->
13 *
14 * <p>
15 * The following features are supported:
16 * </p>
17 * <ul>
18 * <li>{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.CompositeElement#getRegions <em>Regions</em>}</li>
19 * </ul>
20 *
21 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage#getCompositeElement()
22 * @model abstract="true"
23 * @generated
24 */
25public interface CompositeElement extends EObject {
26 /**
27 * Returns the value of the '<em><b>Regions</b></em>' containment reference list.
28 * The list contents are of type {@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Region}.
29 * <!-- begin-user-doc -->
30 * <p>
31 * If the meaning of the '<em>Regions</em>' containment reference list isn't clear,
32 * there really should be more of a description here...
33 * </p>
34 * <!-- end-user-doc -->
35 * @return the value of the '<em>Regions</em>' containment reference list.
36 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage#getCompositeElement_Regions()
37 * @model containment="true"
38 * @generated
39 */
40 EList<Region> getRegions();
41
42} // CompositeElement
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Entry.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Entry.java
new file mode 100644
index 00000000..57ecb460
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Entry.java
@@ -0,0 +1,52 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Entry</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 * <p>
12 * The following features are supported:
13 * </p>
14 * <ul>
15 * <li>{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Entry#getType <em>Type</em>}</li>
16 * </ul>
17 *
18 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage#getEntry()
19 * @model
20 * @generated
21 */
22public interface Entry extends Pseudostate {
23 /**
24 * Returns the value of the '<em><b>Type</b></em>' attribute.
25 * The literals are from the enumeration {@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.EntryType}.
26 * <!-- begin-user-doc -->
27 * <p>
28 * If the meaning of the '<em>Type</em>' attribute isn't clear,
29 * there really should be more of a description here...
30 * </p>
31 * <!-- end-user-doc -->
32 * @return the value of the '<em>Type</em>' attribute.
33 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.EntryType
34 * @see #setType(EntryType)
35 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage#getEntry_Type()
36 * @model required="true"
37 * @generated
38 */
39 EntryType getType();
40
41 /**
42 * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Entry#getType <em>Type</em>}' attribute.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @param value the new value of the '<em>Type</em>' attribute.
46 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.EntryType
47 * @see #getType()
48 * @generated
49 */
50 void setType(EntryType value);
51
52} // Entry
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/EntryType.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/EntryType.java
new file mode 100644
index 00000000..40072da6
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/EntryType.java
@@ -0,0 +1,239 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm;
4
5import java.util.Arrays;
6import java.util.Collections;
7import java.util.List;
8
9import org.eclipse.emf.common.util.Enumerator;
10
11/**
12 * <!-- begin-user-doc -->
13 * A representation of the literals of the enumeration '<em><b>Entry Type</b></em>',
14 * and utility methods for working with them.
15 * <!-- end-user-doc -->
16 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage#getEntryType()
17 * @model
18 * @generated
19 */
20public enum EntryType implements Enumerator {
21 /**
22 * The '<em><b>Normal</b></em>' literal object.
23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc -->
25 * @see #NORMAL_VALUE
26 * @generated
27 * @ordered
28 */
29 NORMAL(0, "Normal", "Normal"),
30
31 /**
32 * The '<em><b>History</b></em>' literal object.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @see #HISTORY_VALUE
36 * @generated
37 * @ordered
38 */
39 HISTORY(0, "History", "History"),
40
41 /**
42 * The '<em><b>Deep History</b></em>' literal object.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #DEEP_HISTORY_VALUE
46 * @generated
47 * @ordered
48 */
49 DEEP_HISTORY(0, "DeepHistory", "DeepHistory");
50
51 /**
52 * The '<em><b>Normal</b></em>' literal value.
53 * <!-- begin-user-doc -->
54 * <p>
55 * If the meaning of '<em><b>Normal</b></em>' literal object isn't clear,
56 * there really should be more of a description here...
57 * </p>
58 * <!-- end-user-doc -->
59 * @see #NORMAL
60 * @model name="Normal"
61 * @generated
62 * @ordered
63 */
64 public static final int NORMAL_VALUE = 0;
65
66 /**
67 * The '<em><b>History</b></em>' literal value.
68 * <!-- begin-user-doc -->
69 * <p>
70 * If the meaning of '<em><b>History</b></em>' literal object isn't clear,
71 * there really should be more of a description here...
72 * </p>
73 * <!-- end-user-doc -->
74 * @see #HISTORY
75 * @model name="History"
76 * @generated
77 * @ordered
78 */
79 public static final int HISTORY_VALUE = 0;
80
81 /**
82 * The '<em><b>Deep History</b></em>' literal value.
83 * <!-- begin-user-doc -->
84 * <p>
85 * If the meaning of '<em><b>Deep History</b></em>' literal object isn't clear,
86 * there really should be more of a description here...
87 * </p>
88 * <!-- end-user-doc -->
89 * @see #DEEP_HISTORY
90 * @model name="DeepHistory"
91 * @generated
92 * @ordered
93 */
94 public static final int DEEP_HISTORY_VALUE = 0;
95
96 /**
97 * An array of all the '<em><b>Entry Type</b></em>' enumerators.
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @generated
101 */
102 private static final EntryType[] VALUES_ARRAY =
103 new EntryType[] {
104 NORMAL,
105 HISTORY,
106 DEEP_HISTORY,
107 };
108
109 /**
110 * A public read-only list of all the '<em><b>Entry Type</b></em>' enumerators.
111 * <!-- begin-user-doc -->
112 * <!-- end-user-doc -->
113 * @generated
114 */
115 public static final List<EntryType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
116
117 /**
118 * Returns the '<em><b>Entry Type</b></em>' literal with the specified literal value.
119 * <!-- begin-user-doc -->
120 * <!-- end-user-doc -->
121 * @param literal the literal.
122 * @return the matching enumerator or <code>null</code>.
123 * @generated
124 */
125 public static EntryType get(String literal) {
126 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
127 EntryType result = VALUES_ARRAY[i];
128 if (result.toString().equals(literal)) {
129 return result;
130 }
131 }
132 return null;
133 }
134
135 /**
136 * Returns the '<em><b>Entry Type</b></em>' literal with the specified name.
137 * <!-- begin-user-doc -->
138 * <!-- end-user-doc -->
139 * @param name the name.
140 * @return the matching enumerator or <code>null</code>.
141 * @generated
142 */
143 public static EntryType getByName(String name) {
144 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
145 EntryType result = VALUES_ARRAY[i];
146 if (result.getName().equals(name)) {
147 return result;
148 }
149 }
150 return null;
151 }
152
153 /**
154 * Returns the '<em><b>Entry Type</b></em>' literal with the specified integer value.
155 * <!-- begin-user-doc -->
156 * <!-- end-user-doc -->
157 * @param value the integer value.
158 * @return the matching enumerator or <code>null</code>.
159 * @generated
160 */
161 public static EntryType get(int value) {
162 switch (value) {
163 case NORMAL_VALUE: return NORMAL;
164 }
165 return null;
166 }
167
168 /**
169 * <!-- begin-user-doc -->
170 * <!-- end-user-doc -->
171 * @generated
172 */
173 private final int value;
174
175 /**
176 * <!-- begin-user-doc -->
177 * <!-- end-user-doc -->
178 * @generated
179 */
180 private final String name;
181
182 /**
183 * <!-- begin-user-doc -->
184 * <!-- end-user-doc -->
185 * @generated
186 */
187 private final String literal;
188
189 /**
190 * Only this class can construct instances.
191 * <!-- begin-user-doc -->
192 * <!-- end-user-doc -->
193 * @generated
194 */
195 private EntryType(int value, String name, String literal) {
196 this.value = value;
197 this.name = name;
198 this.literal = literal;
199 }
200
201 /**
202 * <!-- begin-user-doc -->
203 * <!-- end-user-doc -->
204 * @generated
205 */
206 public int getValue() {
207 return value;
208 }
209
210 /**
211 * <!-- begin-user-doc -->
212 * <!-- end-user-doc -->
213 * @generated
214 */
215 public String getName() {
216 return name;
217 }
218
219 /**
220 * <!-- begin-user-doc -->
221 * <!-- end-user-doc -->
222 * @generated
223 */
224 public String getLiteral() {
225 return literal;
226 }
227
228 /**
229 * Returns the literal value of the enumerator, which is its string representation.
230 * <!-- begin-user-doc -->
231 * <!-- end-user-doc -->
232 * @generated
233 */
234 @Override
235 public String toString() {
236 return literal;
237 }
238
239} //EntryType
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Exit.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Exit.java
new file mode 100644
index 00000000..961a2aec
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Exit.java
@@ -0,0 +1,17 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Exit</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage#getExit()
13 * @model
14 * @generated
15 */
16public interface Exit extends Pseudostate {
17} // Exit
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/FinalState.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/FinalState.java
new file mode 100644
index 00000000..bcc20dfd
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/FinalState.java
@@ -0,0 +1,17 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Final State</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage#getFinalState()
13 * @model
14 * @generated
15 */
16public interface FinalState extends RegularState {
17} // FinalState
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Pseudostate.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Pseudostate.java
new file mode 100644
index 00000000..f938d5b3
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Pseudostate.java
@@ -0,0 +1,17 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Pseudostate</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage#getPseudostate()
13 * @model abstract="true"
14 * @generated
15 */
16public interface Pseudostate extends Vertex {
17} // Pseudostate
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Region.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Region.java
new file mode 100644
index 00000000..ce361dce
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Region.java
@@ -0,0 +1,42 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm;
4
5import org.eclipse.emf.common.util.EList;
6
7import org.eclipse.emf.ecore.EObject;
8
9/**
10 * <!-- begin-user-doc -->
11 * A representation of the model object '<em><b>Region</b></em>'.
12 * <!-- end-user-doc -->
13 *
14 * <p>
15 * The following features are supported:
16 * </p>
17 * <ul>
18 * <li>{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Region#getVertices <em>Vertices</em>}</li>
19 * </ul>
20 *
21 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage#getRegion()
22 * @model
23 * @generated
24 */
25public interface Region extends EObject {
26 /**
27 * Returns the value of the '<em><b>Vertices</b></em>' containment reference list.
28 * The list contents are of type {@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Vertex}.
29 * <!-- begin-user-doc -->
30 * <p>
31 * If the meaning of the '<em>Vertices</em>' containment reference list isn't clear,
32 * there really should be more of a description here...
33 * </p>
34 * <!-- end-user-doc -->
35 * @return the value of the '<em>Vertices</em>' containment reference list.
36 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage#getRegion_Vertices()
37 * @model containment="true" ordered="false"
38 * @generated
39 */
40 EList<Vertex> getVertices();
41
42} // Region
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/RegularState.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/RegularState.java
new file mode 100644
index 00000000..e5b552cd
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/RegularState.java
@@ -0,0 +1,17 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Regular State</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage#getRegularState()
13 * @model abstract="true"
14 * @generated
15 */
16public interface RegularState extends Vertex {
17} // RegularState
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/State.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/State.java
new file mode 100644
index 00000000..2cee971c
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/State.java
@@ -0,0 +1,17 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>State</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage#getState()
13 * @model
14 * @generated
15 */
16public interface State extends RegularState, CompositeElement {
17} // State
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Statechart.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Statechart.java
new file mode 100644
index 00000000..4d32fd53
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Statechart.java
@@ -0,0 +1,17 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Statechart</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 *
12 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage#getStatechart()
13 * @model
14 * @generated
15 */
16public interface Statechart extends CompositeElement {
17} // Statechart
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Transition.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Transition.java
new file mode 100644
index 00000000..0518bfdb
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Transition.java
@@ -0,0 +1,81 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Transition</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Transition#getTarget <em>Target</em>}</li>
17 * <li>{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Transition#getSource <em>Source</em>}</li>
18 * </ul>
19 *
20 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage#getTransition()
21 * @model
22 * @generated
23 */
24public interface Transition extends EObject {
25 /**
26 * Returns the value of the '<em><b>Target</b></em>' reference.
27 * It is bidirectional and its opposite is '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Vertex#getIncomingTransitions <em>Incoming Transitions</em>}'.
28 * <!-- begin-user-doc -->
29 * <p>
30 * If the meaning of the '<em>Target</em>' reference isn't clear,
31 * there really should be more of a description here...
32 * </p>
33 * <!-- end-user-doc -->
34 * @return the value of the '<em>Target</em>' reference.
35 * @see #setTarget(Vertex)
36 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage#getTransition_Target()
37 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Vertex#getIncomingTransitions
38 * @model opposite="incomingTransitions" required="true" ordered="false"
39 * @generated
40 */
41 Vertex getTarget();
42
43 /**
44 * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Transition#getTarget <em>Target</em>}' reference.
45 * <!-- begin-user-doc -->
46 * <!-- end-user-doc -->
47 * @param value the new value of the '<em>Target</em>' reference.
48 * @see #getTarget()
49 * @generated
50 */
51 void setTarget(Vertex value);
52
53 /**
54 * Returns the value of the '<em><b>Source</b></em>' container reference.
55 * It is bidirectional and its opposite is '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Vertex#getOutgoingTransitions <em>Outgoing Transitions</em>}'.
56 * <!-- begin-user-doc -->
57 * <p>
58 * If the meaning of the '<em>Source</em>' container reference isn't clear,
59 * there really should be more of a description here...
60 * </p>
61 * <!-- end-user-doc -->
62 * @return the value of the '<em>Source</em>' container reference.
63 * @see #setSource(Vertex)
64 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage#getTransition_Source()
65 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Vertex#getOutgoingTransitions
66 * @model opposite="outgoingTransitions" transient="false" ordered="false"
67 * @generated
68 */
69 Vertex getSource();
70
71 /**
72 * Sets the value of the '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Transition#getSource <em>Source</em>}' container reference.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @param value the new value of the '<em>Source</em>' container reference.
76 * @see #getSource()
77 * @generated
78 */
79 void setSource(Vertex value);
80
81} // Transition
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Vertex.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Vertex.java
new file mode 100644
index 00000000..43db469b
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/Vertex.java
@@ -0,0 +1,63 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm;
4
5import org.eclipse.emf.common.util.EList;
6
7import org.eclipse.emf.ecore.EObject;
8
9/**
10 * <!-- begin-user-doc -->
11 * A representation of the model object '<em><b>Vertex</b></em>'.
12 * <!-- end-user-doc -->
13 *
14 * <p>
15 * The following features are supported:
16 * </p>
17 * <ul>
18 * <li>{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Vertex#getIncomingTransitions <em>Incoming Transitions</em>}</li>
19 * <li>{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Vertex#getOutgoingTransitions <em>Outgoing Transitions</em>}</li>
20 * </ul>
21 *
22 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage#getVertex()
23 * @model abstract="true"
24 * @generated
25 */
26public interface Vertex extends EObject {
27 /**
28 * Returns the value of the '<em><b>Incoming Transitions</b></em>' reference list.
29 * The list contents are of type {@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Transition}.
30 * It is bidirectional and its opposite is '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Transition#getTarget <em>Target</em>}'.
31 * <!-- begin-user-doc -->
32 * <p>
33 * If the meaning of the '<em>Incoming Transitions</em>' reference list isn't clear,
34 * there really should be more of a description here...
35 * </p>
36 * <!-- end-user-doc -->
37 * @return the value of the '<em>Incoming Transitions</em>' reference list.
38 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage#getVertex_IncomingTransitions()
39 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Transition#getTarget
40 * @model opposite="target" ordered="false"
41 * @generated
42 */
43 EList<Transition> getIncomingTransitions();
44
45 /**
46 * Returns the value of the '<em><b>Outgoing Transitions</b></em>' containment reference list.
47 * The list contents are of type {@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Transition}.
48 * It is bidirectional and its opposite is '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Transition#getSource <em>Source</em>}'.
49 * <!-- begin-user-doc -->
50 * <p>
51 * If the meaning of the '<em>Outgoing Transitions</em>' containment reference list isn't clear,
52 * there really should be more of a description here...
53 * </p>
54 * <!-- end-user-doc -->
55 * @return the value of the '<em>Outgoing Transitions</em>' containment reference list.
56 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage#getVertex_OutgoingTransitions()
57 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Transition#getSource
58 * @model opposite="source" containment="true" ordered="false"
59 * @generated
60 */
61 EList<Transition> getOutgoingTransitions();
62
63} // Vertex
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/YakindummFactory.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/YakindummFactory.java
new file mode 100644
index 00000000..a530e71f
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/YakindummFactory.java
@@ -0,0 +1,105 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm;
4
5import org.eclipse.emf.ecore.EFactory;
6
7/**
8 * <!-- begin-user-doc -->
9 * The <b>Factory</b> for the model.
10 * It provides a create method for each non-abstract class of the model.
11 * <!-- end-user-doc -->
12 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage
13 * @generated
14 */
15public interface YakindummFactory extends EFactory {
16 /**
17 * The singleton instance of the factory.
18 * <!-- begin-user-doc -->
19 * <!-- end-user-doc -->
20 * @generated
21 */
22 YakindummFactory eINSTANCE = ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.YakindummFactoryImpl.init();
23
24 /**
25 * Returns a new object of class '<em>Region</em>'.
26 * <!-- begin-user-doc -->
27 * <!-- end-user-doc -->
28 * @return a new object of class '<em>Region</em>'.
29 * @generated
30 */
31 Region createRegion();
32
33 /**
34 * Returns a new object of class '<em>Transition</em>'.
35 * <!-- begin-user-doc -->
36 * <!-- end-user-doc -->
37 * @return a new object of class '<em>Transition</em>'.
38 * @generated
39 */
40 Transition createTransition();
41
42 /**
43 * Returns a new object of class '<em>Statechart</em>'.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @return a new object of class '<em>Statechart</em>'.
47 * @generated
48 */
49 Statechart createStatechart();
50
51 /**
52 * Returns a new object of class '<em>Entry</em>'.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @return a new object of class '<em>Entry</em>'.
56 * @generated
57 */
58 Entry createEntry();
59
60 /**
61 * Returns a new object of class '<em>State</em>'.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @return a new object of class '<em>State</em>'.
65 * @generated
66 */
67 State createState();
68
69 /**
70 * Returns a new object of class '<em>Choice</em>'.
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @return a new object of class '<em>Choice</em>'.
74 * @generated
75 */
76 Choice createChoice();
77
78 /**
79 * Returns a new object of class '<em>Exit</em>'.
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @return a new object of class '<em>Exit</em>'.
83 * @generated
84 */
85 Exit createExit();
86
87 /**
88 * Returns a new object of class '<em>Final State</em>'.
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @return a new object of class '<em>Final State</em>'.
92 * @generated
93 */
94 FinalState createFinalState();
95
96 /**
97 * Returns the package supported by this factory.
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @return the package supported by this factory.
101 * @generated
102 */
103 YakindummPackage getYakindummPackage();
104
105} //YakindummFactory
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/YakindummPackage.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/YakindummPackage.java
new file mode 100644
index 00000000..f70e851a
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/YakindummPackage.java
@@ -0,0 +1,1032 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm;
4
5import org.eclipse.emf.ecore.EAttribute;
6import org.eclipse.emf.ecore.EClass;
7import org.eclipse.emf.ecore.EEnum;
8import org.eclipse.emf.ecore.EPackage;
9import org.eclipse.emf.ecore.EReference;
10
11/**
12 * <!-- begin-user-doc -->
13 * The <b>Package</b> for the model.
14 * It contains accessors for the meta objects to represent
15 * <ul>
16 * <li>each class,</li>
17 * <li>each feature of each class,</li>
18 * <li>each operation of each class,</li>
19 * <li>each enum,</li>
20 * <li>and each data type</li>
21 * </ul>
22 * <!-- end-user-doc -->
23 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummFactory
24 * @model kind="package"
25 * @generated
26 */
27public interface YakindummPackage extends EPackage {
28 /**
29 * The package name.
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @generated
33 */
34 String eNAME = "yakindumm";
35
36 /**
37 * The package namespace URI.
38 * <!-- begin-user-doc -->
39 * <!-- end-user-doc -->
40 * @generated
41 */
42 String eNS_URI = "hu.bme.mit.inf.yakindumm";
43
44 /**
45 * The package namespace name.
46 * <!-- begin-user-doc -->
47 * <!-- end-user-doc -->
48 * @generated
49 */
50 String eNS_PREFIX = "ca.mcgill.ecse.yakindumm";
51
52 /**
53 * The singleton instance of the package.
54 * <!-- begin-user-doc -->
55 * <!-- end-user-doc -->
56 * @generated
57 */
58 YakindummPackage eINSTANCE = ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.YakindummPackageImpl.init();
59
60 /**
61 * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.VertexImpl <em>Vertex</em>}' class.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.VertexImpl
65 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.YakindummPackageImpl#getVertex()
66 * @generated
67 */
68 int VERTEX = 1;
69
70 /**
71 * The feature id for the '<em><b>Incoming Transitions</b></em>' reference list.
72 * <!-- begin-user-doc -->
73 * <!-- end-user-doc -->
74 * @generated
75 * @ordered
76 */
77 int VERTEX__INCOMING_TRANSITIONS = 0;
78
79 /**
80 * The feature id for the '<em><b>Outgoing Transitions</b></em>' containment reference list.
81 * <!-- begin-user-doc -->
82 * <!-- end-user-doc -->
83 * @generated
84 * @ordered
85 */
86 int VERTEX__OUTGOING_TRANSITIONS = 1;
87
88 /**
89 * The number of structural features of the '<em>Vertex</em>' class.
90 * <!-- begin-user-doc -->
91 * <!-- end-user-doc -->
92 * @generated
93 * @ordered
94 */
95 int VERTEX_FEATURE_COUNT = 2;
96
97 /**
98 * The number of operations of the '<em>Vertex</em>' class.
99 * <!-- begin-user-doc -->
100 * <!-- end-user-doc -->
101 * @generated
102 * @ordered
103 */
104 int VERTEX_OPERATION_COUNT = 0;
105
106 /**
107 * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.PseudostateImpl <em>Pseudostate</em>}' class.
108 * <!-- begin-user-doc -->
109 * <!-- end-user-doc -->
110 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.PseudostateImpl
111 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.YakindummPackageImpl#getPseudostate()
112 * @generated
113 */
114 int PSEUDOSTATE = 0;
115
116 /**
117 * The feature id for the '<em><b>Incoming Transitions</b></em>' reference list.
118 * <!-- begin-user-doc -->
119 * <!-- end-user-doc -->
120 * @generated
121 * @ordered
122 */
123 int PSEUDOSTATE__INCOMING_TRANSITIONS = VERTEX__INCOMING_TRANSITIONS;
124
125 /**
126 * The feature id for the '<em><b>Outgoing Transitions</b></em>' containment reference list.
127 * <!-- begin-user-doc -->
128 * <!-- end-user-doc -->
129 * @generated
130 * @ordered
131 */
132 int PSEUDOSTATE__OUTGOING_TRANSITIONS = VERTEX__OUTGOING_TRANSITIONS;
133
134 /**
135 * The number of structural features of the '<em>Pseudostate</em>' class.
136 * <!-- begin-user-doc -->
137 * <!-- end-user-doc -->
138 * @generated
139 * @ordered
140 */
141 int PSEUDOSTATE_FEATURE_COUNT = VERTEX_FEATURE_COUNT + 0;
142
143 /**
144 * The number of operations of the '<em>Pseudostate</em>' class.
145 * <!-- begin-user-doc -->
146 * <!-- end-user-doc -->
147 * @generated
148 * @ordered
149 */
150 int PSEUDOSTATE_OPERATION_COUNT = VERTEX_OPERATION_COUNT + 0;
151
152 /**
153 * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.RegionImpl <em>Region</em>}' class.
154 * <!-- begin-user-doc -->
155 * <!-- end-user-doc -->
156 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.RegionImpl
157 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.YakindummPackageImpl#getRegion()
158 * @generated
159 */
160 int REGION = 2;
161
162 /**
163 * The feature id for the '<em><b>Vertices</b></em>' containment reference list.
164 * <!-- begin-user-doc -->
165 * <!-- end-user-doc -->
166 * @generated
167 * @ordered
168 */
169 int REGION__VERTICES = 0;
170
171 /**
172 * The number of structural features of the '<em>Region</em>' class.
173 * <!-- begin-user-doc -->
174 * <!-- end-user-doc -->
175 * @generated
176 * @ordered
177 */
178 int REGION_FEATURE_COUNT = 1;
179
180 /**
181 * The number of operations of the '<em>Region</em>' class.
182 * <!-- begin-user-doc -->
183 * <!-- end-user-doc -->
184 * @generated
185 * @ordered
186 */
187 int REGION_OPERATION_COUNT = 0;
188
189 /**
190 * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.TransitionImpl <em>Transition</em>}' class.
191 * <!-- begin-user-doc -->
192 * <!-- end-user-doc -->
193 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.TransitionImpl
194 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.YakindummPackageImpl#getTransition()
195 * @generated
196 */
197 int TRANSITION = 3;
198
199 /**
200 * The feature id for the '<em><b>Target</b></em>' reference.
201 * <!-- begin-user-doc -->
202 * <!-- end-user-doc -->
203 * @generated
204 * @ordered
205 */
206 int TRANSITION__TARGET = 0;
207
208 /**
209 * The feature id for the '<em><b>Source</b></em>' container reference.
210 * <!-- begin-user-doc -->
211 * <!-- end-user-doc -->
212 * @generated
213 * @ordered
214 */
215 int TRANSITION__SOURCE = 1;
216
217 /**
218 * The number of structural features of the '<em>Transition</em>' class.
219 * <!-- begin-user-doc -->
220 * <!-- end-user-doc -->
221 * @generated
222 * @ordered
223 */
224 int TRANSITION_FEATURE_COUNT = 2;
225
226 /**
227 * The number of operations of the '<em>Transition</em>' class.
228 * <!-- begin-user-doc -->
229 * <!-- end-user-doc -->
230 * @generated
231 * @ordered
232 */
233 int TRANSITION_OPERATION_COUNT = 0;
234
235 /**
236 * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.CompositeElementImpl <em>Composite Element</em>}' class.
237 * <!-- begin-user-doc -->
238 * <!-- end-user-doc -->
239 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.CompositeElementImpl
240 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.YakindummPackageImpl#getCompositeElement()
241 * @generated
242 */
243 int COMPOSITE_ELEMENT = 8;
244
245 /**
246 * The feature id for the '<em><b>Regions</b></em>' containment reference list.
247 * <!-- begin-user-doc -->
248 * <!-- end-user-doc -->
249 * @generated
250 * @ordered
251 */
252 int COMPOSITE_ELEMENT__REGIONS = 0;
253
254 /**
255 * The number of structural features of the '<em>Composite Element</em>' class.
256 * <!-- begin-user-doc -->
257 * <!-- end-user-doc -->
258 * @generated
259 * @ordered
260 */
261 int COMPOSITE_ELEMENT_FEATURE_COUNT = 1;
262
263 /**
264 * The number of operations of the '<em>Composite Element</em>' class.
265 * <!-- begin-user-doc -->
266 * <!-- end-user-doc -->
267 * @generated
268 * @ordered
269 */
270 int COMPOSITE_ELEMENT_OPERATION_COUNT = 0;
271
272 /**
273 * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.StatechartImpl <em>Statechart</em>}' class.
274 * <!-- begin-user-doc -->
275 * <!-- end-user-doc -->
276 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.StatechartImpl
277 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.YakindummPackageImpl#getStatechart()
278 * @generated
279 */
280 int STATECHART = 4;
281
282 /**
283 * The feature id for the '<em><b>Regions</b></em>' containment reference list.
284 * <!-- begin-user-doc -->
285 * <!-- end-user-doc -->
286 * @generated
287 * @ordered
288 */
289 int STATECHART__REGIONS = COMPOSITE_ELEMENT__REGIONS;
290
291 /**
292 * The number of structural features of the '<em>Statechart</em>' class.
293 * <!-- begin-user-doc -->
294 * <!-- end-user-doc -->
295 * @generated
296 * @ordered
297 */
298 int STATECHART_FEATURE_COUNT = COMPOSITE_ELEMENT_FEATURE_COUNT + 0;
299
300 /**
301 * The number of operations of the '<em>Statechart</em>' class.
302 * <!-- begin-user-doc -->
303 * <!-- end-user-doc -->
304 * @generated
305 * @ordered
306 */
307 int STATECHART_OPERATION_COUNT = COMPOSITE_ELEMENT_OPERATION_COUNT + 0;
308
309 /**
310 * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.EntryImpl <em>Entry</em>}' class.
311 * <!-- begin-user-doc -->
312 * <!-- end-user-doc -->
313 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.EntryImpl
314 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.YakindummPackageImpl#getEntry()
315 * @generated
316 */
317 int ENTRY = 5;
318
319 /**
320 * The feature id for the '<em><b>Incoming Transitions</b></em>' reference list.
321 * <!-- begin-user-doc -->
322 * <!-- end-user-doc -->
323 * @generated
324 * @ordered
325 */
326 int ENTRY__INCOMING_TRANSITIONS = PSEUDOSTATE__INCOMING_TRANSITIONS;
327
328 /**
329 * The feature id for the '<em><b>Outgoing Transitions</b></em>' containment reference list.
330 * <!-- begin-user-doc -->
331 * <!-- end-user-doc -->
332 * @generated
333 * @ordered
334 */
335 int ENTRY__OUTGOING_TRANSITIONS = PSEUDOSTATE__OUTGOING_TRANSITIONS;
336
337 /**
338 * The feature id for the '<em><b>Type</b></em>' attribute.
339 * <!-- begin-user-doc -->
340 * <!-- end-user-doc -->
341 * @generated
342 * @ordered
343 */
344 int ENTRY__TYPE = PSEUDOSTATE_FEATURE_COUNT + 0;
345
346 /**
347 * The number of structural features of the '<em>Entry</em>' class.
348 * <!-- begin-user-doc -->
349 * <!-- end-user-doc -->
350 * @generated
351 * @ordered
352 */
353 int ENTRY_FEATURE_COUNT = PSEUDOSTATE_FEATURE_COUNT + 1;
354
355 /**
356 * The number of operations of the '<em>Entry</em>' class.
357 * <!-- begin-user-doc -->
358 * <!-- end-user-doc -->
359 * @generated
360 * @ordered
361 */
362 int ENTRY_OPERATION_COUNT = PSEUDOSTATE_OPERATION_COUNT + 0;
363
364 /**
365 * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.RegularStateImpl <em>Regular State</em>}' class.
366 * <!-- begin-user-doc -->
367 * <!-- end-user-doc -->
368 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.RegularStateImpl
369 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.YakindummPackageImpl#getRegularState()
370 * @generated
371 */
372 int REGULAR_STATE = 7;
373
374 /**
375 * The feature id for the '<em><b>Incoming Transitions</b></em>' reference list.
376 * <!-- begin-user-doc -->
377 * <!-- end-user-doc -->
378 * @generated
379 * @ordered
380 */
381 int REGULAR_STATE__INCOMING_TRANSITIONS = VERTEX__INCOMING_TRANSITIONS;
382
383 /**
384 * The feature id for the '<em><b>Outgoing Transitions</b></em>' containment reference list.
385 * <!-- begin-user-doc -->
386 * <!-- end-user-doc -->
387 * @generated
388 * @ordered
389 */
390 int REGULAR_STATE__OUTGOING_TRANSITIONS = VERTEX__OUTGOING_TRANSITIONS;
391
392 /**
393 * The number of structural features of the '<em>Regular State</em>' class.
394 * <!-- begin-user-doc -->
395 * <!-- end-user-doc -->
396 * @generated
397 * @ordered
398 */
399 int REGULAR_STATE_FEATURE_COUNT = VERTEX_FEATURE_COUNT + 0;
400
401 /**
402 * The number of operations of the '<em>Regular State</em>' class.
403 * <!-- begin-user-doc -->
404 * <!-- end-user-doc -->
405 * @generated
406 * @ordered
407 */
408 int REGULAR_STATE_OPERATION_COUNT = VERTEX_OPERATION_COUNT + 0;
409
410 /**
411 * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.StateImpl <em>State</em>}' class.
412 * <!-- begin-user-doc -->
413 * <!-- end-user-doc -->
414 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.StateImpl
415 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.YakindummPackageImpl#getState()
416 * @generated
417 */
418 int STATE = 6;
419
420 /**
421 * The feature id for the '<em><b>Incoming Transitions</b></em>' reference list.
422 * <!-- begin-user-doc -->
423 * <!-- end-user-doc -->
424 * @generated
425 * @ordered
426 */
427 int STATE__INCOMING_TRANSITIONS = REGULAR_STATE__INCOMING_TRANSITIONS;
428
429 /**
430 * The feature id for the '<em><b>Outgoing Transitions</b></em>' containment reference list.
431 * <!-- begin-user-doc -->
432 * <!-- end-user-doc -->
433 * @generated
434 * @ordered
435 */
436 int STATE__OUTGOING_TRANSITIONS = REGULAR_STATE__OUTGOING_TRANSITIONS;
437
438 /**
439 * The feature id for the '<em><b>Regions</b></em>' containment reference list.
440 * <!-- begin-user-doc -->
441 * <!-- end-user-doc -->
442 * @generated
443 * @ordered
444 */
445 int STATE__REGIONS = REGULAR_STATE_FEATURE_COUNT + 0;
446
447 /**
448 * The number of structural features of the '<em>State</em>' class.
449 * <!-- begin-user-doc -->
450 * <!-- end-user-doc -->
451 * @generated
452 * @ordered
453 */
454 int STATE_FEATURE_COUNT = REGULAR_STATE_FEATURE_COUNT + 1;
455
456 /**
457 * The number of operations of the '<em>State</em>' class.
458 * <!-- begin-user-doc -->
459 * <!-- end-user-doc -->
460 * @generated
461 * @ordered
462 */
463 int STATE_OPERATION_COUNT = REGULAR_STATE_OPERATION_COUNT + 0;
464
465 /**
466 * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.ChoiceImpl <em>Choice</em>}' class.
467 * <!-- begin-user-doc -->
468 * <!-- end-user-doc -->
469 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.ChoiceImpl
470 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.YakindummPackageImpl#getChoice()
471 * @generated
472 */
473 int CHOICE = 9;
474
475 /**
476 * The feature id for the '<em><b>Incoming Transitions</b></em>' reference list.
477 * <!-- begin-user-doc -->
478 * <!-- end-user-doc -->
479 * @generated
480 * @ordered
481 */
482 int CHOICE__INCOMING_TRANSITIONS = PSEUDOSTATE__INCOMING_TRANSITIONS;
483
484 /**
485 * The feature id for the '<em><b>Outgoing Transitions</b></em>' containment reference list.
486 * <!-- begin-user-doc -->
487 * <!-- end-user-doc -->
488 * @generated
489 * @ordered
490 */
491 int CHOICE__OUTGOING_TRANSITIONS = PSEUDOSTATE__OUTGOING_TRANSITIONS;
492
493 /**
494 * The number of structural features of the '<em>Choice</em>' class.
495 * <!-- begin-user-doc -->
496 * <!-- end-user-doc -->
497 * @generated
498 * @ordered
499 */
500 int CHOICE_FEATURE_COUNT = PSEUDOSTATE_FEATURE_COUNT + 0;
501
502 /**
503 * The number of operations of the '<em>Choice</em>' class.
504 * <!-- begin-user-doc -->
505 * <!-- end-user-doc -->
506 * @generated
507 * @ordered
508 */
509 int CHOICE_OPERATION_COUNT = PSEUDOSTATE_OPERATION_COUNT + 0;
510
511 /**
512 * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.ExitImpl <em>Exit</em>}' class.
513 * <!-- begin-user-doc -->
514 * <!-- end-user-doc -->
515 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.ExitImpl
516 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.YakindummPackageImpl#getExit()
517 * @generated
518 */
519 int EXIT = 10;
520
521 /**
522 * The feature id for the '<em><b>Incoming Transitions</b></em>' reference list.
523 * <!-- begin-user-doc -->
524 * <!-- end-user-doc -->
525 * @generated
526 * @ordered
527 */
528 int EXIT__INCOMING_TRANSITIONS = PSEUDOSTATE__INCOMING_TRANSITIONS;
529
530 /**
531 * The feature id for the '<em><b>Outgoing Transitions</b></em>' containment reference list.
532 * <!-- begin-user-doc -->
533 * <!-- end-user-doc -->
534 * @generated
535 * @ordered
536 */
537 int EXIT__OUTGOING_TRANSITIONS = PSEUDOSTATE__OUTGOING_TRANSITIONS;
538
539 /**
540 * The number of structural features of the '<em>Exit</em>' class.
541 * <!-- begin-user-doc -->
542 * <!-- end-user-doc -->
543 * @generated
544 * @ordered
545 */
546 int EXIT_FEATURE_COUNT = PSEUDOSTATE_FEATURE_COUNT + 0;
547
548 /**
549 * The number of operations of the '<em>Exit</em>' class.
550 * <!-- begin-user-doc -->
551 * <!-- end-user-doc -->
552 * @generated
553 * @ordered
554 */
555 int EXIT_OPERATION_COUNT = PSEUDOSTATE_OPERATION_COUNT + 0;
556
557 /**
558 * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.FinalStateImpl <em>Final State</em>}' class.
559 * <!-- begin-user-doc -->
560 * <!-- end-user-doc -->
561 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.FinalStateImpl
562 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.YakindummPackageImpl#getFinalState()
563 * @generated
564 */
565 int FINAL_STATE = 11;
566
567 /**
568 * The feature id for the '<em><b>Incoming Transitions</b></em>' reference list.
569 * <!-- begin-user-doc -->
570 * <!-- end-user-doc -->
571 * @generated
572 * @ordered
573 */
574 int FINAL_STATE__INCOMING_TRANSITIONS = REGULAR_STATE__INCOMING_TRANSITIONS;
575
576 /**
577 * The feature id for the '<em><b>Outgoing Transitions</b></em>' containment reference list.
578 * <!-- begin-user-doc -->
579 * <!-- end-user-doc -->
580 * @generated
581 * @ordered
582 */
583 int FINAL_STATE__OUTGOING_TRANSITIONS = REGULAR_STATE__OUTGOING_TRANSITIONS;
584
585 /**
586 * The number of structural features of the '<em>Final State</em>' class.
587 * <!-- begin-user-doc -->
588 * <!-- end-user-doc -->
589 * @generated
590 * @ordered
591 */
592 int FINAL_STATE_FEATURE_COUNT = REGULAR_STATE_FEATURE_COUNT + 0;
593
594 /**
595 * The number of operations of the '<em>Final State</em>' class.
596 * <!-- begin-user-doc -->
597 * <!-- end-user-doc -->
598 * @generated
599 * @ordered
600 */
601 int FINAL_STATE_OPERATION_COUNT = REGULAR_STATE_OPERATION_COUNT + 0;
602
603 /**
604 * The meta object id for the '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.EntryType <em>Entry Type</em>}' enum.
605 * <!-- begin-user-doc -->
606 * <!-- end-user-doc -->
607 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.EntryType
608 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.YakindummPackageImpl#getEntryType()
609 * @generated
610 */
611 int ENTRY_TYPE = 12;
612
613
614 /**
615 * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Pseudostate <em>Pseudostate</em>}'.
616 * <!-- begin-user-doc -->
617 * <!-- end-user-doc -->
618 * @return the meta object for class '<em>Pseudostate</em>'.
619 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Pseudostate
620 * @generated
621 */
622 EClass getPseudostate();
623
624 /**
625 * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Vertex <em>Vertex</em>}'.
626 * <!-- begin-user-doc -->
627 * <!-- end-user-doc -->
628 * @return the meta object for class '<em>Vertex</em>'.
629 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Vertex
630 * @generated
631 */
632 EClass getVertex();
633
634 /**
635 * Returns the meta object for the reference list '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Vertex#getIncomingTransitions <em>Incoming Transitions</em>}'.
636 * <!-- begin-user-doc -->
637 * <!-- end-user-doc -->
638 * @return the meta object for the reference list '<em>Incoming Transitions</em>'.
639 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Vertex#getIncomingTransitions()
640 * @see #getVertex()
641 * @generated
642 */
643 EReference getVertex_IncomingTransitions();
644
645 /**
646 * Returns the meta object for the containment reference list '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Vertex#getOutgoingTransitions <em>Outgoing Transitions</em>}'.
647 * <!-- begin-user-doc -->
648 * <!-- end-user-doc -->
649 * @return the meta object for the containment reference list '<em>Outgoing Transitions</em>'.
650 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Vertex#getOutgoingTransitions()
651 * @see #getVertex()
652 * @generated
653 */
654 EReference getVertex_OutgoingTransitions();
655
656 /**
657 * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Region <em>Region</em>}'.
658 * <!-- begin-user-doc -->
659 * <!-- end-user-doc -->
660 * @return the meta object for class '<em>Region</em>'.
661 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Region
662 * @generated
663 */
664 EClass getRegion();
665
666 /**
667 * Returns the meta object for the containment reference list '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Region#getVertices <em>Vertices</em>}'.
668 * <!-- begin-user-doc -->
669 * <!-- end-user-doc -->
670 * @return the meta object for the containment reference list '<em>Vertices</em>'.
671 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Region#getVertices()
672 * @see #getRegion()
673 * @generated
674 */
675 EReference getRegion_Vertices();
676
677 /**
678 * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Transition <em>Transition</em>}'.
679 * <!-- begin-user-doc -->
680 * <!-- end-user-doc -->
681 * @return the meta object for class '<em>Transition</em>'.
682 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Transition
683 * @generated
684 */
685 EClass getTransition();
686
687 /**
688 * Returns the meta object for the reference '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Transition#getTarget <em>Target</em>}'.
689 * <!-- begin-user-doc -->
690 * <!-- end-user-doc -->
691 * @return the meta object for the reference '<em>Target</em>'.
692 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Transition#getTarget()
693 * @see #getTransition()
694 * @generated
695 */
696 EReference getTransition_Target();
697
698 /**
699 * Returns the meta object for the container reference '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Transition#getSource <em>Source</em>}'.
700 * <!-- begin-user-doc -->
701 * <!-- end-user-doc -->
702 * @return the meta object for the container reference '<em>Source</em>'.
703 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Transition#getSource()
704 * @see #getTransition()
705 * @generated
706 */
707 EReference getTransition_Source();
708
709 /**
710 * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Statechart <em>Statechart</em>}'.
711 * <!-- begin-user-doc -->
712 * <!-- end-user-doc -->
713 * @return the meta object for class '<em>Statechart</em>'.
714 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Statechart
715 * @generated
716 */
717 EClass getStatechart();
718
719 /**
720 * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Entry <em>Entry</em>}'.
721 * <!-- begin-user-doc -->
722 * <!-- end-user-doc -->
723 * @return the meta object for class '<em>Entry</em>'.
724 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Entry
725 * @generated
726 */
727 EClass getEntry();
728
729 /**
730 * Returns the meta object for the attribute '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Entry#getType <em>Type</em>}'.
731 * <!-- begin-user-doc -->
732 * <!-- end-user-doc -->
733 * @return the meta object for the attribute '<em>Type</em>'.
734 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Entry#getType()
735 * @see #getEntry()
736 * @generated
737 */
738 EAttribute getEntry_Type();
739
740 /**
741 * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.State <em>State</em>}'.
742 * <!-- begin-user-doc -->
743 * <!-- end-user-doc -->
744 * @return the meta object for class '<em>State</em>'.
745 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.State
746 * @generated
747 */
748 EClass getState();
749
750 /**
751 * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.RegularState <em>Regular State</em>}'.
752 * <!-- begin-user-doc -->
753 * <!-- end-user-doc -->
754 * @return the meta object for class '<em>Regular State</em>'.
755 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.RegularState
756 * @generated
757 */
758 EClass getRegularState();
759
760 /**
761 * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.CompositeElement <em>Composite Element</em>}'.
762 * <!-- begin-user-doc -->
763 * <!-- end-user-doc -->
764 * @return the meta object for class '<em>Composite Element</em>'.
765 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.CompositeElement
766 * @generated
767 */
768 EClass getCompositeElement();
769
770 /**
771 * Returns the meta object for the containment reference list '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.CompositeElement#getRegions <em>Regions</em>}'.
772 * <!-- begin-user-doc -->
773 * <!-- end-user-doc -->
774 * @return the meta object for the containment reference list '<em>Regions</em>'.
775 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.CompositeElement#getRegions()
776 * @see #getCompositeElement()
777 * @generated
778 */
779 EReference getCompositeElement_Regions();
780
781 /**
782 * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Choice <em>Choice</em>}'.
783 * <!-- begin-user-doc -->
784 * <!-- end-user-doc -->
785 * @return the meta object for class '<em>Choice</em>'.
786 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Choice
787 * @generated
788 */
789 EClass getChoice();
790
791 /**
792 * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Exit <em>Exit</em>}'.
793 * <!-- begin-user-doc -->
794 * <!-- end-user-doc -->
795 * @return the meta object for class '<em>Exit</em>'.
796 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Exit
797 * @generated
798 */
799 EClass getExit();
800
801 /**
802 * Returns the meta object for class '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.FinalState <em>Final State</em>}'.
803 * <!-- begin-user-doc -->
804 * <!-- end-user-doc -->
805 * @return the meta object for class '<em>Final State</em>'.
806 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.FinalState
807 * @generated
808 */
809 EClass getFinalState();
810
811 /**
812 * Returns the meta object for enum '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.EntryType <em>Entry Type</em>}'.
813 * <!-- begin-user-doc -->
814 * <!-- end-user-doc -->
815 * @return the meta object for enum '<em>Entry Type</em>'.
816 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.EntryType
817 * @generated
818 */
819 EEnum getEntryType();
820
821 /**
822 * Returns the factory that creates the instances of the model.
823 * <!-- begin-user-doc -->
824 * <!-- end-user-doc -->
825 * @return the factory that creates the instances of the model.
826 * @generated
827 */
828 YakindummFactory getYakindummFactory();
829
830 /**
831 * <!-- begin-user-doc -->
832 * Defines literals for the meta objects that represent
833 * <ul>
834 * <li>each class,</li>
835 * <li>each feature of each class,</li>
836 * <li>each operation of each class,</li>
837 * <li>each enum,</li>
838 * <li>and each data type</li>
839 * </ul>
840 * <!-- end-user-doc -->
841 * @generated
842 */
843 interface Literals {
844 /**
845 * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.PseudostateImpl <em>Pseudostate</em>}' class.
846 * <!-- begin-user-doc -->
847 * <!-- end-user-doc -->
848 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.PseudostateImpl
849 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.YakindummPackageImpl#getPseudostate()
850 * @generated
851 */
852 EClass PSEUDOSTATE = eINSTANCE.getPseudostate();
853
854 /**
855 * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.VertexImpl <em>Vertex</em>}' class.
856 * <!-- begin-user-doc -->
857 * <!-- end-user-doc -->
858 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.VertexImpl
859 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.YakindummPackageImpl#getVertex()
860 * @generated
861 */
862 EClass VERTEX = eINSTANCE.getVertex();
863
864 /**
865 * The meta object literal for the '<em><b>Incoming Transitions</b></em>' reference list feature.
866 * <!-- begin-user-doc -->
867 * <!-- end-user-doc -->
868 * @generated
869 */
870 EReference VERTEX__INCOMING_TRANSITIONS = eINSTANCE.getVertex_IncomingTransitions();
871
872 /**
873 * The meta object literal for the '<em><b>Outgoing Transitions</b></em>' containment reference list feature.
874 * <!-- begin-user-doc -->
875 * <!-- end-user-doc -->
876 * @generated
877 */
878 EReference VERTEX__OUTGOING_TRANSITIONS = eINSTANCE.getVertex_OutgoingTransitions();
879
880 /**
881 * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.RegionImpl <em>Region</em>}' class.
882 * <!-- begin-user-doc -->
883 * <!-- end-user-doc -->
884 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.RegionImpl
885 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.YakindummPackageImpl#getRegion()
886 * @generated
887 */
888 EClass REGION = eINSTANCE.getRegion();
889
890 /**
891 * The meta object literal for the '<em><b>Vertices</b></em>' containment reference list feature.
892 * <!-- begin-user-doc -->
893 * <!-- end-user-doc -->
894 * @generated
895 */
896 EReference REGION__VERTICES = eINSTANCE.getRegion_Vertices();
897
898 /**
899 * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.TransitionImpl <em>Transition</em>}' class.
900 * <!-- begin-user-doc -->
901 * <!-- end-user-doc -->
902 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.TransitionImpl
903 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.YakindummPackageImpl#getTransition()
904 * @generated
905 */
906 EClass TRANSITION = eINSTANCE.getTransition();
907
908 /**
909 * The meta object literal for the '<em><b>Target</b></em>' reference feature.
910 * <!-- begin-user-doc -->
911 * <!-- end-user-doc -->
912 * @generated
913 */
914 EReference TRANSITION__TARGET = eINSTANCE.getTransition_Target();
915
916 /**
917 * The meta object literal for the '<em><b>Source</b></em>' container reference feature.
918 * <!-- begin-user-doc -->
919 * <!-- end-user-doc -->
920 * @generated
921 */
922 EReference TRANSITION__SOURCE = eINSTANCE.getTransition_Source();
923
924 /**
925 * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.StatechartImpl <em>Statechart</em>}' class.
926 * <!-- begin-user-doc -->
927 * <!-- end-user-doc -->
928 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.StatechartImpl
929 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.YakindummPackageImpl#getStatechart()
930 * @generated
931 */
932 EClass STATECHART = eINSTANCE.getStatechart();
933
934 /**
935 * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.EntryImpl <em>Entry</em>}' class.
936 * <!-- begin-user-doc -->
937 * <!-- end-user-doc -->
938 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.EntryImpl
939 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.YakindummPackageImpl#getEntry()
940 * @generated
941 */
942 EClass ENTRY = eINSTANCE.getEntry();
943
944 /**
945 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
946 * <!-- begin-user-doc -->
947 * <!-- end-user-doc -->
948 * @generated
949 */
950 EAttribute ENTRY__TYPE = eINSTANCE.getEntry_Type();
951
952 /**
953 * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.StateImpl <em>State</em>}' class.
954 * <!-- begin-user-doc -->
955 * <!-- end-user-doc -->
956 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.StateImpl
957 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.YakindummPackageImpl#getState()
958 * @generated
959 */
960 EClass STATE = eINSTANCE.getState();
961
962 /**
963 * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.RegularStateImpl <em>Regular State</em>}' class.
964 * <!-- begin-user-doc -->
965 * <!-- end-user-doc -->
966 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.RegularStateImpl
967 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.YakindummPackageImpl#getRegularState()
968 * @generated
969 */
970 EClass REGULAR_STATE = eINSTANCE.getRegularState();
971
972 /**
973 * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.CompositeElementImpl <em>Composite Element</em>}' class.
974 * <!-- begin-user-doc -->
975 * <!-- end-user-doc -->
976 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.CompositeElementImpl
977 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.YakindummPackageImpl#getCompositeElement()
978 * @generated
979 */
980 EClass COMPOSITE_ELEMENT = eINSTANCE.getCompositeElement();
981
982 /**
983 * The meta object literal for the '<em><b>Regions</b></em>' containment reference list feature.
984 * <!-- begin-user-doc -->
985 * <!-- end-user-doc -->
986 * @generated
987 */
988 EReference COMPOSITE_ELEMENT__REGIONS = eINSTANCE.getCompositeElement_Regions();
989
990 /**
991 * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.ChoiceImpl <em>Choice</em>}' class.
992 * <!-- begin-user-doc -->
993 * <!-- end-user-doc -->
994 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.ChoiceImpl
995 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.YakindummPackageImpl#getChoice()
996 * @generated
997 */
998 EClass CHOICE = eINSTANCE.getChoice();
999
1000 /**
1001 * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.ExitImpl <em>Exit</em>}' class.
1002 * <!-- begin-user-doc -->
1003 * <!-- end-user-doc -->
1004 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.ExitImpl
1005 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.YakindummPackageImpl#getExit()
1006 * @generated
1007 */
1008 EClass EXIT = eINSTANCE.getExit();
1009
1010 /**
1011 * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.FinalStateImpl <em>Final State</em>}' class.
1012 * <!-- begin-user-doc -->
1013 * <!-- end-user-doc -->
1014 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.FinalStateImpl
1015 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.YakindummPackageImpl#getFinalState()
1016 * @generated
1017 */
1018 EClass FINAL_STATE = eINSTANCE.getFinalState();
1019
1020 /**
1021 * The meta object literal for the '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.EntryType <em>Entry Type</em>}' enum.
1022 * <!-- begin-user-doc -->
1023 * <!-- end-user-doc -->
1024 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.EntryType
1025 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.YakindummPackageImpl#getEntryType()
1026 * @generated
1027 */
1028 EEnum ENTRY_TYPE = eINSTANCE.getEntryType();
1029
1030 }
1031
1032} //YakindummPackage
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/ChoiceImpl.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/ChoiceImpl.java
new file mode 100644
index 00000000..379d4a29
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/ChoiceImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl;
4
5import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Choice;
6import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Choice</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class ChoiceImpl extends PseudostateImpl implements Choice {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected ChoiceImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return YakindummPackage.Literals.CHOICE;
35 }
36
37} //ChoiceImpl
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/CompositeElementImpl.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/CompositeElementImpl.java
new file mode 100644
index 00000000..067a5ee3
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/CompositeElementImpl.java
@@ -0,0 +1,152 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl;
4
5import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.CompositeElement;
6import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Region;
7import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage;
8
9import java.util.Collection;
10
11import org.eclipse.emf.common.notify.NotificationChain;
12
13import org.eclipse.emf.common.util.EList;
14
15import org.eclipse.emf.ecore.EClass;
16import org.eclipse.emf.ecore.InternalEObject;
17
18import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
19
20import org.eclipse.emf.ecore.util.EObjectContainmentEList;
21import org.eclipse.emf.ecore.util.InternalEList;
22
23/**
24 * <!-- begin-user-doc -->
25 * An implementation of the model object '<em><b>Composite Element</b></em>'.
26 * <!-- end-user-doc -->
27 * <p>
28 * The following features are implemented:
29 * </p>
30 * <ul>
31 * <li>{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.CompositeElementImpl#getRegions <em>Regions</em>}</li>
32 * </ul>
33 *
34 * @generated
35 */
36public abstract class CompositeElementImpl extends MinimalEObjectImpl.Container implements CompositeElement {
37 /**
38 * The cached value of the '{@link #getRegions() <em>Regions</em>}' containment reference list.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @see #getRegions()
42 * @generated
43 * @ordered
44 */
45 protected EList<Region> regions;
46
47 /**
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @generated
51 */
52 protected CompositeElementImpl() {
53 super();
54 }
55
56 /**
57 * <!-- begin-user-doc -->
58 * <!-- end-user-doc -->
59 * @generated
60 */
61 @Override
62 protected EClass eStaticClass() {
63 return YakindummPackage.Literals.COMPOSITE_ELEMENT;
64 }
65
66 /**
67 * <!-- begin-user-doc -->
68 * <!-- end-user-doc -->
69 * @generated
70 */
71 public EList<Region> getRegions() {
72 if (regions == null) {
73 regions = new EObjectContainmentEList<Region>(Region.class, this, YakindummPackage.COMPOSITE_ELEMENT__REGIONS);
74 }
75 return regions;
76 }
77
78 /**
79 * <!-- begin-user-doc -->
80 * <!-- end-user-doc -->
81 * @generated
82 */
83 @Override
84 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
85 switch (featureID) {
86 case YakindummPackage.COMPOSITE_ELEMENT__REGIONS:
87 return ((InternalEList<?>)getRegions()).basicRemove(otherEnd, msgs);
88 }
89 return super.eInverseRemove(otherEnd, featureID, msgs);
90 }
91
92 /**
93 * <!-- begin-user-doc -->
94 * <!-- end-user-doc -->
95 * @generated
96 */
97 @Override
98 public Object eGet(int featureID, boolean resolve, boolean coreType) {
99 switch (featureID) {
100 case YakindummPackage.COMPOSITE_ELEMENT__REGIONS:
101 return getRegions();
102 }
103 return super.eGet(featureID, resolve, coreType);
104 }
105
106 /**
107 * <!-- begin-user-doc -->
108 * <!-- end-user-doc -->
109 * @generated
110 */
111 @SuppressWarnings("unchecked")
112 @Override
113 public void eSet(int featureID, Object newValue) {
114 switch (featureID) {
115 case YakindummPackage.COMPOSITE_ELEMENT__REGIONS:
116 getRegions().clear();
117 getRegions().addAll((Collection<? extends Region>)newValue);
118 return;
119 }
120 super.eSet(featureID, newValue);
121 }
122
123 /**
124 * <!-- begin-user-doc -->
125 * <!-- end-user-doc -->
126 * @generated
127 */
128 @Override
129 public void eUnset(int featureID) {
130 switch (featureID) {
131 case YakindummPackage.COMPOSITE_ELEMENT__REGIONS:
132 getRegions().clear();
133 return;
134 }
135 super.eUnset(featureID);
136 }
137
138 /**
139 * <!-- begin-user-doc -->
140 * <!-- end-user-doc -->
141 * @generated
142 */
143 @Override
144 public boolean eIsSet(int featureID) {
145 switch (featureID) {
146 case YakindummPackage.COMPOSITE_ELEMENT__REGIONS:
147 return regions != null && !regions.isEmpty();
148 }
149 return super.eIsSet(featureID);
150 }
151
152} //CompositeElementImpl
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/EntryImpl.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/EntryImpl.java
new file mode 100644
index 00000000..0ad87100
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/EntryImpl.java
@@ -0,0 +1,163 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl;
4
5import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Entry;
6import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.EntryType;
7import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage;
8
9import org.eclipse.emf.common.notify.Notification;
10
11import org.eclipse.emf.ecore.EClass;
12
13import org.eclipse.emf.ecore.impl.ENotificationImpl;
14
15/**
16 * <!-- begin-user-doc -->
17 * An implementation of the model object '<em><b>Entry</b></em>'.
18 * <!-- end-user-doc -->
19 * <p>
20 * The following features are implemented:
21 * </p>
22 * <ul>
23 * <li>{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.EntryImpl#getType <em>Type</em>}</li>
24 * </ul>
25 *
26 * @generated
27 */
28public class EntryImpl extends PseudostateImpl implements Entry {
29 /**
30 * The default value of the '{@link #getType() <em>Type</em>}' attribute.
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @see #getType()
34 * @generated
35 * @ordered
36 */
37 protected static final EntryType TYPE_EDEFAULT = EntryType.NORMAL;
38
39 /**
40 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @see #getType()
44 * @generated
45 * @ordered
46 */
47 protected EntryType type = TYPE_EDEFAULT;
48
49 /**
50 * <!-- begin-user-doc -->
51 * <!-- end-user-doc -->
52 * @generated
53 */
54 protected EntryImpl() {
55 super();
56 }
57
58 /**
59 * <!-- begin-user-doc -->
60 * <!-- end-user-doc -->
61 * @generated
62 */
63 @Override
64 protected EClass eStaticClass() {
65 return YakindummPackage.Literals.ENTRY;
66 }
67
68 /**
69 * <!-- begin-user-doc -->
70 * <!-- end-user-doc -->
71 * @generated
72 */
73 public EntryType getType() {
74 return type;
75 }
76
77 /**
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @generated
81 */
82 public void setType(EntryType newType) {
83 EntryType oldType = type;
84 type = newType == null ? TYPE_EDEFAULT : newType;
85 if (eNotificationRequired())
86 eNotify(new ENotificationImpl(this, Notification.SET, YakindummPackage.ENTRY__TYPE, oldType, type));
87 }
88
89 /**
90 * <!-- begin-user-doc -->
91 * <!-- end-user-doc -->
92 * @generated
93 */
94 @Override
95 public Object eGet(int featureID, boolean resolve, boolean coreType) {
96 switch (featureID) {
97 case YakindummPackage.ENTRY__TYPE:
98 return getType();
99 }
100 return super.eGet(featureID, resolve, coreType);
101 }
102
103 /**
104 * <!-- begin-user-doc -->
105 * <!-- end-user-doc -->
106 * @generated
107 */
108 @Override
109 public void eSet(int featureID, Object newValue) {
110 switch (featureID) {
111 case YakindummPackage.ENTRY__TYPE:
112 setType((EntryType)newValue);
113 return;
114 }
115 super.eSet(featureID, newValue);
116 }
117
118 /**
119 * <!-- begin-user-doc -->
120 * <!-- end-user-doc -->
121 * @generated
122 */
123 @Override
124 public void eUnset(int featureID) {
125 switch (featureID) {
126 case YakindummPackage.ENTRY__TYPE:
127 setType(TYPE_EDEFAULT);
128 return;
129 }
130 super.eUnset(featureID);
131 }
132
133 /**
134 * <!-- begin-user-doc -->
135 * <!-- end-user-doc -->
136 * @generated
137 */
138 @Override
139 public boolean eIsSet(int featureID) {
140 switch (featureID) {
141 case YakindummPackage.ENTRY__TYPE:
142 return type != TYPE_EDEFAULT;
143 }
144 return super.eIsSet(featureID);
145 }
146
147 /**
148 * <!-- begin-user-doc -->
149 * <!-- end-user-doc -->
150 * @generated
151 */
152 @Override
153 public String toString() {
154 if (eIsProxy()) return super.toString();
155
156 StringBuilder result = new StringBuilder(super.toString());
157 result.append(" (Type: ");
158 result.append(type);
159 result.append(')');
160 return result.toString();
161 }
162
163} //EntryImpl
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/ExitImpl.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/ExitImpl.java
new file mode 100644
index 00000000..ae360e68
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/ExitImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl;
4
5import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Exit;
6import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Exit</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class ExitImpl extends PseudostateImpl implements Exit {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected ExitImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return YakindummPackage.Literals.EXIT;
35 }
36
37} //ExitImpl
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/FinalStateImpl.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/FinalStateImpl.java
new file mode 100644
index 00000000..ccb19763
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/FinalStateImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl;
4
5import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.FinalState;
6import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Final State</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class FinalStateImpl extends RegularStateImpl implements FinalState {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected FinalStateImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return YakindummPackage.Literals.FINAL_STATE;
35 }
36
37} //FinalStateImpl
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/PseudostateImpl.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/PseudostateImpl.java
new file mode 100644
index 00000000..b8c76c27
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/PseudostateImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl;
4
5import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Pseudostate;
6import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Pseudostate</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public abstract class PseudostateImpl extends VertexImpl implements Pseudostate {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected PseudostateImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return YakindummPackage.Literals.PSEUDOSTATE;
35 }
36
37} //PseudostateImpl
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/RegionImpl.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/RegionImpl.java
new file mode 100644
index 00000000..440c389c
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/RegionImpl.java
@@ -0,0 +1,152 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl;
4
5import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Region;
6import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Vertex;
7import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage;
8
9import java.util.Collection;
10
11import org.eclipse.emf.common.notify.NotificationChain;
12
13import org.eclipse.emf.common.util.EList;
14
15import org.eclipse.emf.ecore.EClass;
16import org.eclipse.emf.ecore.InternalEObject;
17
18import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
19
20import org.eclipse.emf.ecore.util.EObjectContainmentEList;
21import org.eclipse.emf.ecore.util.InternalEList;
22
23/**
24 * <!-- begin-user-doc -->
25 * An implementation of the model object '<em><b>Region</b></em>'.
26 * <!-- end-user-doc -->
27 * <p>
28 * The following features are implemented:
29 * </p>
30 * <ul>
31 * <li>{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.RegionImpl#getVertices <em>Vertices</em>}</li>
32 * </ul>
33 *
34 * @generated
35 */
36public class RegionImpl extends MinimalEObjectImpl.Container implements Region {
37 /**
38 * The cached value of the '{@link #getVertices() <em>Vertices</em>}' containment reference list.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @see #getVertices()
42 * @generated
43 * @ordered
44 */
45 protected EList<Vertex> vertices;
46
47 /**
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @generated
51 */
52 protected RegionImpl() {
53 super();
54 }
55
56 /**
57 * <!-- begin-user-doc -->
58 * <!-- end-user-doc -->
59 * @generated
60 */
61 @Override
62 protected EClass eStaticClass() {
63 return YakindummPackage.Literals.REGION;
64 }
65
66 /**
67 * <!-- begin-user-doc -->
68 * <!-- end-user-doc -->
69 * @generated
70 */
71 public EList<Vertex> getVertices() {
72 if (vertices == null) {
73 vertices = new EObjectContainmentEList<Vertex>(Vertex.class, this, YakindummPackage.REGION__VERTICES);
74 }
75 return vertices;
76 }
77
78 /**
79 * <!-- begin-user-doc -->
80 * <!-- end-user-doc -->
81 * @generated
82 */
83 @Override
84 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
85 switch (featureID) {
86 case YakindummPackage.REGION__VERTICES:
87 return ((InternalEList<?>)getVertices()).basicRemove(otherEnd, msgs);
88 }
89 return super.eInverseRemove(otherEnd, featureID, msgs);
90 }
91
92 /**
93 * <!-- begin-user-doc -->
94 * <!-- end-user-doc -->
95 * @generated
96 */
97 @Override
98 public Object eGet(int featureID, boolean resolve, boolean coreType) {
99 switch (featureID) {
100 case YakindummPackage.REGION__VERTICES:
101 return getVertices();
102 }
103 return super.eGet(featureID, resolve, coreType);
104 }
105
106 /**
107 * <!-- begin-user-doc -->
108 * <!-- end-user-doc -->
109 * @generated
110 */
111 @SuppressWarnings("unchecked")
112 @Override
113 public void eSet(int featureID, Object newValue) {
114 switch (featureID) {
115 case YakindummPackage.REGION__VERTICES:
116 getVertices().clear();
117 getVertices().addAll((Collection<? extends Vertex>)newValue);
118 return;
119 }
120 super.eSet(featureID, newValue);
121 }
122
123 /**
124 * <!-- begin-user-doc -->
125 * <!-- end-user-doc -->
126 * @generated
127 */
128 @Override
129 public void eUnset(int featureID) {
130 switch (featureID) {
131 case YakindummPackage.REGION__VERTICES:
132 getVertices().clear();
133 return;
134 }
135 super.eUnset(featureID);
136 }
137
138 /**
139 * <!-- begin-user-doc -->
140 * <!-- end-user-doc -->
141 * @generated
142 */
143 @Override
144 public boolean eIsSet(int featureID) {
145 switch (featureID) {
146 case YakindummPackage.REGION__VERTICES:
147 return vertices != null && !vertices.isEmpty();
148 }
149 return super.eIsSet(featureID);
150 }
151
152} //RegionImpl
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/RegularStateImpl.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/RegularStateImpl.java
new file mode 100644
index 00000000..2ada6da9
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/RegularStateImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl;
4
5import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.RegularState;
6import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Regular State</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public abstract class RegularStateImpl extends VertexImpl implements RegularState {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected RegularStateImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return YakindummPackage.Literals.REGULAR_STATE;
35 }
36
37} //RegularStateImpl
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/StateImpl.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/StateImpl.java
new file mode 100644
index 00000000..080bed16
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/StateImpl.java
@@ -0,0 +1,183 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl;
4
5import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.CompositeElement;
6import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Region;
7import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.State;
8import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage;
9
10import java.util.Collection;
11
12import org.eclipse.emf.common.notify.NotificationChain;
13
14import org.eclipse.emf.common.util.EList;
15
16import org.eclipse.emf.ecore.EClass;
17import org.eclipse.emf.ecore.InternalEObject;
18
19import org.eclipse.emf.ecore.util.EObjectContainmentEList;
20import org.eclipse.emf.ecore.util.InternalEList;
21
22/**
23 * <!-- begin-user-doc -->
24 * An implementation of the model object '<em><b>State</b></em>'.
25 * <!-- end-user-doc -->
26 * <p>
27 * The following features are implemented:
28 * </p>
29 * <ul>
30 * <li>{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.StateImpl#getRegions <em>Regions</em>}</li>
31 * </ul>
32 *
33 * @generated
34 */
35public class StateImpl extends RegularStateImpl implements State {
36 /**
37 * The cached value of the '{@link #getRegions() <em>Regions</em>}' containment reference list.
38 * <!-- begin-user-doc -->
39 * <!-- end-user-doc -->
40 * @see #getRegions()
41 * @generated
42 * @ordered
43 */
44 protected EList<Region> regions;
45
46 /**
47 * <!-- begin-user-doc -->
48 * <!-- end-user-doc -->
49 * @generated
50 */
51 protected StateImpl() {
52 super();
53 }
54
55 /**
56 * <!-- begin-user-doc -->
57 * <!-- end-user-doc -->
58 * @generated
59 */
60 @Override
61 protected EClass eStaticClass() {
62 return YakindummPackage.Literals.STATE;
63 }
64
65 /**
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @generated
69 */
70 public EList<Region> getRegions() {
71 if (regions == null) {
72 regions = new EObjectContainmentEList<Region>(Region.class, this, YakindummPackage.STATE__REGIONS);
73 }
74 return regions;
75 }
76
77 /**
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @generated
81 */
82 @Override
83 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
84 switch (featureID) {
85 case YakindummPackage.STATE__REGIONS:
86 return ((InternalEList<?>)getRegions()).basicRemove(otherEnd, msgs);
87 }
88 return super.eInverseRemove(otherEnd, featureID, msgs);
89 }
90
91 /**
92 * <!-- begin-user-doc -->
93 * <!-- end-user-doc -->
94 * @generated
95 */
96 @Override
97 public Object eGet(int featureID, boolean resolve, boolean coreType) {
98 switch (featureID) {
99 case YakindummPackage.STATE__REGIONS:
100 return getRegions();
101 }
102 return super.eGet(featureID, resolve, coreType);
103 }
104
105 /**
106 * <!-- begin-user-doc -->
107 * <!-- end-user-doc -->
108 * @generated
109 */
110 @SuppressWarnings("unchecked")
111 @Override
112 public void eSet(int featureID, Object newValue) {
113 switch (featureID) {
114 case YakindummPackage.STATE__REGIONS:
115 getRegions().clear();
116 getRegions().addAll((Collection<? extends Region>)newValue);
117 return;
118 }
119 super.eSet(featureID, newValue);
120 }
121
122 /**
123 * <!-- begin-user-doc -->
124 * <!-- end-user-doc -->
125 * @generated
126 */
127 @Override
128 public void eUnset(int featureID) {
129 switch (featureID) {
130 case YakindummPackage.STATE__REGIONS:
131 getRegions().clear();
132 return;
133 }
134 super.eUnset(featureID);
135 }
136
137 /**
138 * <!-- begin-user-doc -->
139 * <!-- end-user-doc -->
140 * @generated
141 */
142 @Override
143 public boolean eIsSet(int featureID) {
144 switch (featureID) {
145 case YakindummPackage.STATE__REGIONS:
146 return regions != null && !regions.isEmpty();
147 }
148 return super.eIsSet(featureID);
149 }
150
151 /**
152 * <!-- begin-user-doc -->
153 * <!-- end-user-doc -->
154 * @generated
155 */
156 @Override
157 public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
158 if (baseClass == CompositeElement.class) {
159 switch (derivedFeatureID) {
160 case YakindummPackage.STATE__REGIONS: return YakindummPackage.COMPOSITE_ELEMENT__REGIONS;
161 default: return -1;
162 }
163 }
164 return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
165 }
166
167 /**
168 * <!-- begin-user-doc -->
169 * <!-- end-user-doc -->
170 * @generated
171 */
172 @Override
173 public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
174 if (baseClass == CompositeElement.class) {
175 switch (baseFeatureID) {
176 case YakindummPackage.COMPOSITE_ELEMENT__REGIONS: return YakindummPackage.STATE__REGIONS;
177 default: return -1;
178 }
179 }
180 return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
181 }
182
183} //StateImpl
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/StatechartImpl.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/StatechartImpl.java
new file mode 100644
index 00000000..0b48e8d8
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/StatechartImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl;
4
5import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Statechart;
6import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage;
7
8import org.eclipse.emf.ecore.EClass;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Statechart</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class StatechartImpl extends CompositeElementImpl implements Statechart {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected StatechartImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return YakindummPackage.Literals.STATECHART;
35 }
36
37} //StatechartImpl
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/TransitionImpl.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/TransitionImpl.java
new file mode 100644
index 00000000..875964a2
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/TransitionImpl.java
@@ -0,0 +1,284 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl;
4
5import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Transition;
6import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Vertex;
7import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage;
8
9import org.eclipse.emf.common.notify.Notification;
10import org.eclipse.emf.common.notify.NotificationChain;
11
12import org.eclipse.emf.ecore.EClass;
13import org.eclipse.emf.ecore.InternalEObject;
14
15import org.eclipse.emf.ecore.impl.ENotificationImpl;
16import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
17
18import org.eclipse.emf.ecore.util.EcoreUtil;
19
20/**
21 * <!-- begin-user-doc -->
22 * An implementation of the model object '<em><b>Transition</b></em>'.
23 * <!-- end-user-doc -->
24 * <p>
25 * The following features are implemented:
26 * </p>
27 * <ul>
28 * <li>{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.TransitionImpl#getTarget <em>Target</em>}</li>
29 * <li>{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.TransitionImpl#getSource <em>Source</em>}</li>
30 * </ul>
31 *
32 * @generated
33 */
34public class TransitionImpl extends MinimalEObjectImpl.Container implements Transition {
35 /**
36 * The cached value of the '{@link #getTarget() <em>Target</em>}' reference.
37 * <!-- begin-user-doc -->
38 * <!-- end-user-doc -->
39 * @see #getTarget()
40 * @generated
41 * @ordered
42 */
43 protected Vertex target;
44
45 /**
46 * <!-- begin-user-doc -->
47 * <!-- end-user-doc -->
48 * @generated
49 */
50 protected TransitionImpl() {
51 super();
52 }
53
54 /**
55 * <!-- begin-user-doc -->
56 * <!-- end-user-doc -->
57 * @generated
58 */
59 @Override
60 protected EClass eStaticClass() {
61 return YakindummPackage.Literals.TRANSITION;
62 }
63
64 /**
65 * <!-- begin-user-doc -->
66 * <!-- end-user-doc -->
67 * @generated
68 */
69 public Vertex getTarget() {
70 if (target != null && target.eIsProxy()) {
71 InternalEObject oldTarget = (InternalEObject)target;
72 target = (Vertex)eResolveProxy(oldTarget);
73 if (target != oldTarget) {
74 if (eNotificationRequired())
75 eNotify(new ENotificationImpl(this, Notification.RESOLVE, YakindummPackage.TRANSITION__TARGET, oldTarget, target));
76 }
77 }
78 return target;
79 }
80
81 /**
82 * <!-- begin-user-doc -->
83 * <!-- end-user-doc -->
84 * @generated
85 */
86 public Vertex basicGetTarget() {
87 return target;
88 }
89
90 /**
91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc -->
93 * @generated
94 */
95 public NotificationChain basicSetTarget(Vertex newTarget, NotificationChain msgs) {
96 Vertex oldTarget = target;
97 target = newTarget;
98 if (eNotificationRequired()) {
99 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, YakindummPackage.TRANSITION__TARGET, oldTarget, newTarget);
100 if (msgs == null) msgs = notification; else msgs.add(notification);
101 }
102 return msgs;
103 }
104
105 /**
106 * <!-- begin-user-doc -->
107 * <!-- end-user-doc -->
108 * @generated
109 */
110 public void setTarget(Vertex newTarget) {
111 if (newTarget != target) {
112 NotificationChain msgs = null;
113 if (target != null)
114 msgs = ((InternalEObject)target).eInverseRemove(this, YakindummPackage.VERTEX__INCOMING_TRANSITIONS, Vertex.class, msgs);
115 if (newTarget != null)
116 msgs = ((InternalEObject)newTarget).eInverseAdd(this, YakindummPackage.VERTEX__INCOMING_TRANSITIONS, Vertex.class, msgs);
117 msgs = basicSetTarget(newTarget, msgs);
118 if (msgs != null) msgs.dispatch();
119 }
120 else if (eNotificationRequired())
121 eNotify(new ENotificationImpl(this, Notification.SET, YakindummPackage.TRANSITION__TARGET, newTarget, newTarget));
122 }
123
124 /**
125 * <!-- begin-user-doc -->
126 * <!-- end-user-doc -->
127 * @generated
128 */
129 public Vertex getSource() {
130 if (eContainerFeatureID() != YakindummPackage.TRANSITION__SOURCE) return null;
131 return (Vertex)eInternalContainer();
132 }
133
134 /**
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @generated
138 */
139 public NotificationChain basicSetSource(Vertex newSource, NotificationChain msgs) {
140 msgs = eBasicSetContainer((InternalEObject)newSource, YakindummPackage.TRANSITION__SOURCE, msgs);
141 return msgs;
142 }
143
144 /**
145 * <!-- begin-user-doc -->
146 * <!-- end-user-doc -->
147 * @generated
148 */
149 public void setSource(Vertex newSource) {
150 if (newSource != eInternalContainer() || (eContainerFeatureID() != YakindummPackage.TRANSITION__SOURCE && newSource != null)) {
151 if (EcoreUtil.isAncestor(this, newSource))
152 throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
153 NotificationChain msgs = null;
154 if (eInternalContainer() != null)
155 msgs = eBasicRemoveFromContainer(msgs);
156 if (newSource != null)
157 msgs = ((InternalEObject)newSource).eInverseAdd(this, YakindummPackage.VERTEX__OUTGOING_TRANSITIONS, Vertex.class, msgs);
158 msgs = basicSetSource(newSource, msgs);
159 if (msgs != null) msgs.dispatch();
160 }
161 else if (eNotificationRequired())
162 eNotify(new ENotificationImpl(this, Notification.SET, YakindummPackage.TRANSITION__SOURCE, newSource, newSource));
163 }
164
165 /**
166 * <!-- begin-user-doc -->
167 * <!-- end-user-doc -->
168 * @generated
169 */
170 @Override
171 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
172 switch (featureID) {
173 case YakindummPackage.TRANSITION__TARGET:
174 if (target != null)
175 msgs = ((InternalEObject)target).eInverseRemove(this, YakindummPackage.VERTEX__INCOMING_TRANSITIONS, Vertex.class, msgs);
176 return basicSetTarget((Vertex)otherEnd, msgs);
177 case YakindummPackage.TRANSITION__SOURCE:
178 if (eInternalContainer() != null)
179 msgs = eBasicRemoveFromContainer(msgs);
180 return basicSetSource((Vertex)otherEnd, msgs);
181 }
182 return super.eInverseAdd(otherEnd, featureID, msgs);
183 }
184
185 /**
186 * <!-- begin-user-doc -->
187 * <!-- end-user-doc -->
188 * @generated
189 */
190 @Override
191 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
192 switch (featureID) {
193 case YakindummPackage.TRANSITION__TARGET:
194 return basicSetTarget(null, msgs);
195 case YakindummPackage.TRANSITION__SOURCE:
196 return basicSetSource(null, msgs);
197 }
198 return super.eInverseRemove(otherEnd, featureID, msgs);
199 }
200
201 /**
202 * <!-- begin-user-doc -->
203 * <!-- end-user-doc -->
204 * @generated
205 */
206 @Override
207 public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
208 switch (eContainerFeatureID()) {
209 case YakindummPackage.TRANSITION__SOURCE:
210 return eInternalContainer().eInverseRemove(this, YakindummPackage.VERTEX__OUTGOING_TRANSITIONS, Vertex.class, msgs);
211 }
212 return super.eBasicRemoveFromContainerFeature(msgs);
213 }
214
215 /**
216 * <!-- begin-user-doc -->
217 * <!-- end-user-doc -->
218 * @generated
219 */
220 @Override
221 public Object eGet(int featureID, boolean resolve, boolean coreType) {
222 switch (featureID) {
223 case YakindummPackage.TRANSITION__TARGET:
224 if (resolve) return getTarget();
225 return basicGetTarget();
226 case YakindummPackage.TRANSITION__SOURCE:
227 return getSource();
228 }
229 return super.eGet(featureID, resolve, coreType);
230 }
231
232 /**
233 * <!-- begin-user-doc -->
234 * <!-- end-user-doc -->
235 * @generated
236 */
237 @Override
238 public void eSet(int featureID, Object newValue) {
239 switch (featureID) {
240 case YakindummPackage.TRANSITION__TARGET:
241 setTarget((Vertex)newValue);
242 return;
243 case YakindummPackage.TRANSITION__SOURCE:
244 setSource((Vertex)newValue);
245 return;
246 }
247 super.eSet(featureID, newValue);
248 }
249
250 /**
251 * <!-- begin-user-doc -->
252 * <!-- end-user-doc -->
253 * @generated
254 */
255 @Override
256 public void eUnset(int featureID) {
257 switch (featureID) {
258 case YakindummPackage.TRANSITION__TARGET:
259 setTarget((Vertex)null);
260 return;
261 case YakindummPackage.TRANSITION__SOURCE:
262 setSource((Vertex)null);
263 return;
264 }
265 super.eUnset(featureID);
266 }
267
268 /**
269 * <!-- begin-user-doc -->
270 * <!-- end-user-doc -->
271 * @generated
272 */
273 @Override
274 public boolean eIsSet(int featureID) {
275 switch (featureID) {
276 case YakindummPackage.TRANSITION__TARGET:
277 return target != null;
278 case YakindummPackage.TRANSITION__SOURCE:
279 return getSource() != null;
280 }
281 return super.eIsSet(featureID);
282 }
283
284} //TransitionImpl
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/VertexImpl.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/VertexImpl.java
new file mode 100644
index 00000000..66871f3f
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/VertexImpl.java
@@ -0,0 +1,206 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl;
4
5import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Transition;
6import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Vertex;
7import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage;
8
9import java.util.Collection;
10
11import org.eclipse.emf.common.notify.NotificationChain;
12
13import org.eclipse.emf.common.util.EList;
14
15import org.eclipse.emf.ecore.EClass;
16import org.eclipse.emf.ecore.InternalEObject;
17
18import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
19
20import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
21import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
22import org.eclipse.emf.ecore.util.InternalEList;
23
24/**
25 * <!-- begin-user-doc -->
26 * An implementation of the model object '<em><b>Vertex</b></em>'.
27 * <!-- end-user-doc -->
28 * <p>
29 * The following features are implemented:
30 * </p>
31 * <ul>
32 * <li>{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.VertexImpl#getIncomingTransitions <em>Incoming Transitions</em>}</li>
33 * <li>{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl.VertexImpl#getOutgoingTransitions <em>Outgoing Transitions</em>}</li>
34 * </ul>
35 *
36 * @generated
37 */
38public abstract class VertexImpl extends MinimalEObjectImpl.Container implements Vertex {
39 /**
40 * The cached value of the '{@link #getIncomingTransitions() <em>Incoming Transitions</em>}' reference list.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @see #getIncomingTransitions()
44 * @generated
45 * @ordered
46 */
47 protected EList<Transition> incomingTransitions;
48
49 /**
50 * The cached value of the '{@link #getOutgoingTransitions() <em>Outgoing Transitions</em>}' containment reference list.
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @see #getOutgoingTransitions()
54 * @generated
55 * @ordered
56 */
57 protected EList<Transition> outgoingTransitions;
58
59 /**
60 * <!-- begin-user-doc -->
61 * <!-- end-user-doc -->
62 * @generated
63 */
64 protected VertexImpl() {
65 super();
66 }
67
68 /**
69 * <!-- begin-user-doc -->
70 * <!-- end-user-doc -->
71 * @generated
72 */
73 @Override
74 protected EClass eStaticClass() {
75 return YakindummPackage.Literals.VERTEX;
76 }
77
78 /**
79 * <!-- begin-user-doc -->
80 * <!-- end-user-doc -->
81 * @generated
82 */
83 public EList<Transition> getIncomingTransitions() {
84 if (incomingTransitions == null) {
85 incomingTransitions = new EObjectWithInverseResolvingEList<Transition>(Transition.class, this, YakindummPackage.VERTEX__INCOMING_TRANSITIONS, YakindummPackage.TRANSITION__TARGET);
86 }
87 return incomingTransitions;
88 }
89
90 /**
91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc -->
93 * @generated
94 */
95 public EList<Transition> getOutgoingTransitions() {
96 if (outgoingTransitions == null) {
97 outgoingTransitions = new EObjectContainmentWithInverseEList<Transition>(Transition.class, this, YakindummPackage.VERTEX__OUTGOING_TRANSITIONS, YakindummPackage.TRANSITION__SOURCE);
98 }
99 return outgoingTransitions;
100 }
101
102 /**
103 * <!-- begin-user-doc -->
104 * <!-- end-user-doc -->
105 * @generated
106 */
107 @SuppressWarnings("unchecked")
108 @Override
109 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
110 switch (featureID) {
111 case YakindummPackage.VERTEX__INCOMING_TRANSITIONS:
112 return ((InternalEList<InternalEObject>)(InternalEList<?>)getIncomingTransitions()).basicAdd(otherEnd, msgs);
113 case YakindummPackage.VERTEX__OUTGOING_TRANSITIONS:
114 return ((InternalEList<InternalEObject>)(InternalEList<?>)getOutgoingTransitions()).basicAdd(otherEnd, msgs);
115 }
116 return super.eInverseAdd(otherEnd, featureID, msgs);
117 }
118
119 /**
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @generated
123 */
124 @Override
125 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
126 switch (featureID) {
127 case YakindummPackage.VERTEX__INCOMING_TRANSITIONS:
128 return ((InternalEList<?>)getIncomingTransitions()).basicRemove(otherEnd, msgs);
129 case YakindummPackage.VERTEX__OUTGOING_TRANSITIONS:
130 return ((InternalEList<?>)getOutgoingTransitions()).basicRemove(otherEnd, msgs);
131 }
132 return super.eInverseRemove(otherEnd, featureID, msgs);
133 }
134
135 /**
136 * <!-- begin-user-doc -->
137 * <!-- end-user-doc -->
138 * @generated
139 */
140 @Override
141 public Object eGet(int featureID, boolean resolve, boolean coreType) {
142 switch (featureID) {
143 case YakindummPackage.VERTEX__INCOMING_TRANSITIONS:
144 return getIncomingTransitions();
145 case YakindummPackage.VERTEX__OUTGOING_TRANSITIONS:
146 return getOutgoingTransitions();
147 }
148 return super.eGet(featureID, resolve, coreType);
149 }
150
151 /**
152 * <!-- begin-user-doc -->
153 * <!-- end-user-doc -->
154 * @generated
155 */
156 @SuppressWarnings("unchecked")
157 @Override
158 public void eSet(int featureID, Object newValue) {
159 switch (featureID) {
160 case YakindummPackage.VERTEX__INCOMING_TRANSITIONS:
161 getIncomingTransitions().clear();
162 getIncomingTransitions().addAll((Collection<? extends Transition>)newValue);
163 return;
164 case YakindummPackage.VERTEX__OUTGOING_TRANSITIONS:
165 getOutgoingTransitions().clear();
166 getOutgoingTransitions().addAll((Collection<? extends Transition>)newValue);
167 return;
168 }
169 super.eSet(featureID, newValue);
170 }
171
172 /**
173 * <!-- begin-user-doc -->
174 * <!-- end-user-doc -->
175 * @generated
176 */
177 @Override
178 public void eUnset(int featureID) {
179 switch (featureID) {
180 case YakindummPackage.VERTEX__INCOMING_TRANSITIONS:
181 getIncomingTransitions().clear();
182 return;
183 case YakindummPackage.VERTEX__OUTGOING_TRANSITIONS:
184 getOutgoingTransitions().clear();
185 return;
186 }
187 super.eUnset(featureID);
188 }
189
190 /**
191 * <!-- begin-user-doc -->
192 * <!-- end-user-doc -->
193 * @generated
194 */
195 @Override
196 public boolean eIsSet(int featureID) {
197 switch (featureID) {
198 case YakindummPackage.VERTEX__INCOMING_TRANSITIONS:
199 return incomingTransitions != null && !incomingTransitions.isEmpty();
200 case YakindummPackage.VERTEX__OUTGOING_TRANSITIONS:
201 return outgoingTransitions != null && !outgoingTransitions.isEmpty();
202 }
203 return super.eIsSet(featureID);
204 }
205
206} //VertexImpl
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/YakindummFactoryImpl.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/YakindummFactoryImpl.java
new file mode 100644
index 00000000..d4be344f
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/YakindummFactoryImpl.java
@@ -0,0 +1,223 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl;
4
5import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.*;
6
7import org.eclipse.emf.ecore.EClass;
8import org.eclipse.emf.ecore.EDataType;
9import org.eclipse.emf.ecore.EObject;
10import org.eclipse.emf.ecore.EPackage;
11
12import org.eclipse.emf.ecore.impl.EFactoryImpl;
13
14import org.eclipse.emf.ecore.plugin.EcorePlugin;
15
16/**
17 * <!-- begin-user-doc -->
18 * An implementation of the model <b>Factory</b>.
19 * <!-- end-user-doc -->
20 * @generated
21 */
22public class YakindummFactoryImpl extends EFactoryImpl implements YakindummFactory {
23 /**
24 * Creates the default factory implementation.
25 * <!-- begin-user-doc -->
26 * <!-- end-user-doc -->
27 * @generated
28 */
29 public static YakindummFactory init() {
30 try {
31 YakindummFactory theYakindummFactory = (YakindummFactory)EPackage.Registry.INSTANCE.getEFactory(YakindummPackage.eNS_URI);
32 if (theYakindummFactory != null) {
33 return theYakindummFactory;
34 }
35 }
36 catch (Exception exception) {
37 EcorePlugin.INSTANCE.log(exception);
38 }
39 return new YakindummFactoryImpl();
40 }
41
42 /**
43 * Creates an instance of the factory.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @generated
47 */
48 public YakindummFactoryImpl() {
49 super();
50 }
51
52 /**
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @generated
56 */
57 @Override
58 public EObject create(EClass eClass) {
59 switch (eClass.getClassifierID()) {
60 case YakindummPackage.REGION: return createRegion();
61 case YakindummPackage.TRANSITION: return createTransition();
62 case YakindummPackage.STATECHART: return createStatechart();
63 case YakindummPackage.ENTRY: return createEntry();
64 case YakindummPackage.STATE: return createState();
65 case YakindummPackage.CHOICE: return createChoice();
66 case YakindummPackage.EXIT: return createExit();
67 case YakindummPackage.FINAL_STATE: return createFinalState();
68 default:
69 throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
70 }
71 }
72
73 /**
74 * <!-- begin-user-doc -->
75 * <!-- end-user-doc -->
76 * @generated
77 */
78 @Override
79 public Object createFromString(EDataType eDataType, String initialValue) {
80 switch (eDataType.getClassifierID()) {
81 case YakindummPackage.ENTRY_TYPE:
82 return createEntryTypeFromString(eDataType, initialValue);
83 default:
84 throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
85 }
86 }
87
88 /**
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @generated
92 */
93 @Override
94 public String convertToString(EDataType eDataType, Object instanceValue) {
95 switch (eDataType.getClassifierID()) {
96 case YakindummPackage.ENTRY_TYPE:
97 return convertEntryTypeToString(eDataType, instanceValue);
98 default:
99 throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
100 }
101 }
102
103 /**
104 * <!-- begin-user-doc -->
105 * <!-- end-user-doc -->
106 * @generated
107 */
108 public Region createRegion() {
109 RegionImpl region = new RegionImpl();
110 return region;
111 }
112
113 /**
114 * <!-- begin-user-doc -->
115 * <!-- end-user-doc -->
116 * @generated
117 */
118 public Transition createTransition() {
119 TransitionImpl transition = new TransitionImpl();
120 return transition;
121 }
122
123 /**
124 * <!-- begin-user-doc -->
125 * <!-- end-user-doc -->
126 * @generated
127 */
128 public Statechart createStatechart() {
129 StatechartImpl statechart = new StatechartImpl();
130 return statechart;
131 }
132
133 /**
134 * <!-- begin-user-doc -->
135 * <!-- end-user-doc -->
136 * @generated
137 */
138 public Entry createEntry() {
139 EntryImpl entry = new EntryImpl();
140 return entry;
141 }
142
143 /**
144 * <!-- begin-user-doc -->
145 * <!-- end-user-doc -->
146 * @generated
147 */
148 public State createState() {
149 StateImpl state = new StateImpl();
150 return state;
151 }
152
153 /**
154 * <!-- begin-user-doc -->
155 * <!-- end-user-doc -->
156 * @generated
157 */
158 public Choice createChoice() {
159 ChoiceImpl choice = new ChoiceImpl();
160 return choice;
161 }
162
163 /**
164 * <!-- begin-user-doc -->
165 * <!-- end-user-doc -->
166 * @generated
167 */
168 public Exit createExit() {
169 ExitImpl exit = new ExitImpl();
170 return exit;
171 }
172
173 /**
174 * <!-- begin-user-doc -->
175 * <!-- end-user-doc -->
176 * @generated
177 */
178 public FinalState createFinalState() {
179 FinalStateImpl finalState = new FinalStateImpl();
180 return finalState;
181 }
182
183 /**
184 * <!-- begin-user-doc -->
185 * <!-- end-user-doc -->
186 * @generated
187 */
188 public EntryType createEntryTypeFromString(EDataType eDataType, String initialValue) {
189 EntryType result = EntryType.get(initialValue);
190 if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
191 return result;
192 }
193
194 /**
195 * <!-- begin-user-doc -->
196 * <!-- end-user-doc -->
197 * @generated
198 */
199 public String convertEntryTypeToString(EDataType eDataType, Object instanceValue) {
200 return instanceValue == null ? null : instanceValue.toString();
201 }
202
203 /**
204 * <!-- begin-user-doc -->
205 * <!-- end-user-doc -->
206 * @generated
207 */
208 public YakindummPackage getYakindummPackage() {
209 return (YakindummPackage)getEPackage();
210 }
211
212 /**
213 * <!-- begin-user-doc -->
214 * <!-- end-user-doc -->
215 * @deprecated
216 * @generated
217 */
218 @Deprecated
219 public static YakindummPackage getPackage() {
220 return YakindummPackage.eINSTANCE;
221 }
222
223} //YakindummFactoryImpl
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/YakindummPackageImpl.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/YakindummPackageImpl.java
new file mode 100644
index 00000000..b95dc3ea
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/impl/YakindummPackageImpl.java
@@ -0,0 +1,511 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl;
4
5import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Choice;
6import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.CompositeElement;
7import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Entry;
8import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.EntryType;
9import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Exit;
10import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.FinalState;
11import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Pseudostate;
12import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Region;
13import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.RegularState;
14import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.State;
15import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Statechart;
16import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Transition;
17import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Vertex;
18import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummFactory;
19import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage;
20
21import org.eclipse.emf.ecore.EAttribute;
22import org.eclipse.emf.ecore.EClass;
23import org.eclipse.emf.ecore.EEnum;
24import org.eclipse.emf.ecore.EPackage;
25import org.eclipse.emf.ecore.EReference;
26
27import org.eclipse.emf.ecore.impl.EPackageImpl;
28
29/**
30 * <!-- begin-user-doc -->
31 * An implementation of the model <b>Package</b>.
32 * <!-- end-user-doc -->
33 * @generated
34 */
35public class YakindummPackageImpl extends EPackageImpl implements YakindummPackage {
36 /**
37 * <!-- begin-user-doc -->
38 * <!-- end-user-doc -->
39 * @generated
40 */
41 private EClass pseudostateEClass = null;
42
43 /**
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @generated
47 */
48 private EClass vertexEClass = null;
49
50 /**
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @generated
54 */
55 private EClass regionEClass = null;
56
57 /**
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @generated
61 */
62 private EClass transitionEClass = null;
63
64 /**
65 * <!-- begin-user-doc -->
66 * <!-- end-user-doc -->
67 * @generated
68 */
69 private EClass statechartEClass = null;
70
71 /**
72 * <!-- begin-user-doc -->
73 * <!-- end-user-doc -->
74 * @generated
75 */
76 private EClass entryEClass = null;
77
78 /**
79 * <!-- begin-user-doc -->
80 * <!-- end-user-doc -->
81 * @generated
82 */
83 private EClass stateEClass = null;
84
85 /**
86 * <!-- begin-user-doc -->
87 * <!-- end-user-doc -->
88 * @generated
89 */
90 private EClass regularStateEClass = null;
91
92 /**
93 * <!-- begin-user-doc -->
94 * <!-- end-user-doc -->
95 * @generated
96 */
97 private EClass compositeElementEClass = null;
98
99 /**
100 * <!-- begin-user-doc -->
101 * <!-- end-user-doc -->
102 * @generated
103 */
104 private EClass choiceEClass = null;
105
106 /**
107 * <!-- begin-user-doc -->
108 * <!-- end-user-doc -->
109 * @generated
110 */
111 private EClass exitEClass = null;
112
113 /**
114 * <!-- begin-user-doc -->
115 * <!-- end-user-doc -->
116 * @generated
117 */
118 private EClass finalStateEClass = null;
119
120 /**
121 * <!-- begin-user-doc -->
122 * <!-- end-user-doc -->
123 * @generated
124 */
125 private EEnum entryTypeEEnum = null;
126
127 /**
128 * Creates an instance of the model <b>Package</b>, registered with
129 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
130 * package URI value.
131 * <p>Note: the correct way to create the package is via the static
132 * factory method {@link #init init()}, which also performs
133 * initialization of the package, or returns the registered package,
134 * if one already exists.
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @see org.eclipse.emf.ecore.EPackage.Registry
138 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage#eNS_URI
139 * @see #init()
140 * @generated
141 */
142 private YakindummPackageImpl() {
143 super(eNS_URI, YakindummFactory.eINSTANCE);
144 }
145
146 /**
147 * <!-- begin-user-doc -->
148 * <!-- end-user-doc -->
149 * @generated
150 */
151 private static boolean isInited = false;
152
153 /**
154 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
155 *
156 * <p>This method is used to initialize {@link YakindummPackage#eINSTANCE} when that field is accessed.
157 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
158 * <!-- begin-user-doc -->
159 * <!-- end-user-doc -->
160 * @see #eNS_URI
161 * @see #createPackageContents()
162 * @see #initializePackageContents()
163 * @generated
164 */
165 public static YakindummPackage init() {
166 if (isInited) return (YakindummPackage)EPackage.Registry.INSTANCE.getEPackage(YakindummPackage.eNS_URI);
167
168 // Obtain or create and register package
169 Object registeredYakindummPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
170 YakindummPackageImpl theYakindummPackage = registeredYakindummPackage instanceof YakindummPackageImpl ? (YakindummPackageImpl)registeredYakindummPackage : new YakindummPackageImpl();
171
172 isInited = true;
173
174 // Create package meta-data objects
175 theYakindummPackage.createPackageContents();
176
177 // Initialize created meta-data
178 theYakindummPackage.initializePackageContents();
179
180 // Mark meta-data to indicate it can't be changed
181 theYakindummPackage.freeze();
182
183 // Update the registry and return the package
184 EPackage.Registry.INSTANCE.put(YakindummPackage.eNS_URI, theYakindummPackage);
185 return theYakindummPackage;
186 }
187
188 /**
189 * <!-- begin-user-doc -->
190 * <!-- end-user-doc -->
191 * @generated
192 */
193 public EClass getPseudostate() {
194 return pseudostateEClass;
195 }
196
197 /**
198 * <!-- begin-user-doc -->
199 * <!-- end-user-doc -->
200 * @generated
201 */
202 public EClass getVertex() {
203 return vertexEClass;
204 }
205
206 /**
207 * <!-- begin-user-doc -->
208 * <!-- end-user-doc -->
209 * @generated
210 */
211 public EReference getVertex_IncomingTransitions() {
212 return (EReference)vertexEClass.getEStructuralFeatures().get(0);
213 }
214
215 /**
216 * <!-- begin-user-doc -->
217 * <!-- end-user-doc -->
218 * @generated
219 */
220 public EReference getVertex_OutgoingTransitions() {
221 return (EReference)vertexEClass.getEStructuralFeatures().get(1);
222 }
223
224 /**
225 * <!-- begin-user-doc -->
226 * <!-- end-user-doc -->
227 * @generated
228 */
229 public EClass getRegion() {
230 return regionEClass;
231 }
232
233 /**
234 * <!-- begin-user-doc -->
235 * <!-- end-user-doc -->
236 * @generated
237 */
238 public EReference getRegion_Vertices() {
239 return (EReference)regionEClass.getEStructuralFeatures().get(0);
240 }
241
242 /**
243 * <!-- begin-user-doc -->
244 * <!-- end-user-doc -->
245 * @generated
246 */
247 public EClass getTransition() {
248 return transitionEClass;
249 }
250
251 /**
252 * <!-- begin-user-doc -->
253 * <!-- end-user-doc -->
254 * @generated
255 */
256 public EReference getTransition_Target() {
257 return (EReference)transitionEClass.getEStructuralFeatures().get(0);
258 }
259
260 /**
261 * <!-- begin-user-doc -->
262 * <!-- end-user-doc -->
263 * @generated
264 */
265 public EReference getTransition_Source() {
266 return (EReference)transitionEClass.getEStructuralFeatures().get(1);
267 }
268
269 /**
270 * <!-- begin-user-doc -->
271 * <!-- end-user-doc -->
272 * @generated
273 */
274 public EClass getStatechart() {
275 return statechartEClass;
276 }
277
278 /**
279 * <!-- begin-user-doc -->
280 * <!-- end-user-doc -->
281 * @generated
282 */
283 public EClass getEntry() {
284 return entryEClass;
285 }
286
287 /**
288 * <!-- begin-user-doc -->
289 * <!-- end-user-doc -->
290 * @generated
291 */
292 public EAttribute getEntry_Type() {
293 return (EAttribute)entryEClass.getEStructuralFeatures().get(0);
294 }
295
296 /**
297 * <!-- begin-user-doc -->
298 * <!-- end-user-doc -->
299 * @generated
300 */
301 public EClass getState() {
302 return stateEClass;
303 }
304
305 /**
306 * <!-- begin-user-doc -->
307 * <!-- end-user-doc -->
308 * @generated
309 */
310 public EClass getRegularState() {
311 return regularStateEClass;
312 }
313
314 /**
315 * <!-- begin-user-doc -->
316 * <!-- end-user-doc -->
317 * @generated
318 */
319 public EClass getCompositeElement() {
320 return compositeElementEClass;
321 }
322
323 /**
324 * <!-- begin-user-doc -->
325 * <!-- end-user-doc -->
326 * @generated
327 */
328 public EReference getCompositeElement_Regions() {
329 return (EReference)compositeElementEClass.getEStructuralFeatures().get(0);
330 }
331
332 /**
333 * <!-- begin-user-doc -->
334 * <!-- end-user-doc -->
335 * @generated
336 */
337 public EClass getChoice() {
338 return choiceEClass;
339 }
340
341 /**
342 * <!-- begin-user-doc -->
343 * <!-- end-user-doc -->
344 * @generated
345 */
346 public EClass getExit() {
347 return exitEClass;
348 }
349
350 /**
351 * <!-- begin-user-doc -->
352 * <!-- end-user-doc -->
353 * @generated
354 */
355 public EClass getFinalState() {
356 return finalStateEClass;
357 }
358
359 /**
360 * <!-- begin-user-doc -->
361 * <!-- end-user-doc -->
362 * @generated
363 */
364 public EEnum getEntryType() {
365 return entryTypeEEnum;
366 }
367
368 /**
369 * <!-- begin-user-doc -->
370 * <!-- end-user-doc -->
371 * @generated
372 */
373 public YakindummFactory getYakindummFactory() {
374 return (YakindummFactory)getEFactoryInstance();
375 }
376
377 /**
378 * <!-- begin-user-doc -->
379 * <!-- end-user-doc -->
380 * @generated
381 */
382 private boolean isCreated = false;
383
384 /**
385 * Creates the meta-model objects for the package. This method is
386 * guarded to have no affect on any invocation but its first.
387 * <!-- begin-user-doc -->
388 * <!-- end-user-doc -->
389 * @generated
390 */
391 public void createPackageContents() {
392 if (isCreated) return;
393 isCreated = true;
394
395 // Create classes and their features
396 pseudostateEClass = createEClass(PSEUDOSTATE);
397
398 vertexEClass = createEClass(VERTEX);
399 createEReference(vertexEClass, VERTEX__INCOMING_TRANSITIONS);
400 createEReference(vertexEClass, VERTEX__OUTGOING_TRANSITIONS);
401
402 regionEClass = createEClass(REGION);
403 createEReference(regionEClass, REGION__VERTICES);
404
405 transitionEClass = createEClass(TRANSITION);
406 createEReference(transitionEClass, TRANSITION__TARGET);
407 createEReference(transitionEClass, TRANSITION__SOURCE);
408
409 statechartEClass = createEClass(STATECHART);
410
411 entryEClass = createEClass(ENTRY);
412 createEAttribute(entryEClass, ENTRY__TYPE);
413
414 stateEClass = createEClass(STATE);
415
416 regularStateEClass = createEClass(REGULAR_STATE);
417
418 compositeElementEClass = createEClass(COMPOSITE_ELEMENT);
419 createEReference(compositeElementEClass, COMPOSITE_ELEMENT__REGIONS);
420
421 choiceEClass = createEClass(CHOICE);
422
423 exitEClass = createEClass(EXIT);
424
425 finalStateEClass = createEClass(FINAL_STATE);
426
427 // Create enums
428 entryTypeEEnum = createEEnum(ENTRY_TYPE);
429 }
430
431 /**
432 * <!-- begin-user-doc -->
433 * <!-- end-user-doc -->
434 * @generated
435 */
436 private boolean isInitialized = false;
437
438 /**
439 * Complete the initialization of the package and its meta-model. This
440 * method is guarded to have no affect on any invocation but its first.
441 * <!-- begin-user-doc -->
442 * <!-- end-user-doc -->
443 * @generated
444 */
445 public void initializePackageContents() {
446 if (isInitialized) return;
447 isInitialized = true;
448
449 // Initialize package
450 setName(eNAME);
451 setNsPrefix(eNS_PREFIX);
452 setNsURI(eNS_URI);
453
454 // Create type parameters
455
456 // Set bounds for type parameters
457
458 // Add supertypes to classes
459 pseudostateEClass.getESuperTypes().add(this.getVertex());
460 statechartEClass.getESuperTypes().add(this.getCompositeElement());
461 entryEClass.getESuperTypes().add(this.getPseudostate());
462 stateEClass.getESuperTypes().add(this.getRegularState());
463 stateEClass.getESuperTypes().add(this.getCompositeElement());
464 regularStateEClass.getESuperTypes().add(this.getVertex());
465 choiceEClass.getESuperTypes().add(this.getPseudostate());
466 exitEClass.getESuperTypes().add(this.getPseudostate());
467 finalStateEClass.getESuperTypes().add(this.getRegularState());
468
469 // Initialize classes, features, and operations; add parameters
470 initEClass(pseudostateEClass, Pseudostate.class, "Pseudostate", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
471
472 initEClass(vertexEClass, Vertex.class, "Vertex", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
473 initEReference(getVertex_IncomingTransitions(), this.getTransition(), this.getTransition_Target(), "incomingTransitions", null, 0, -1, Vertex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
474 initEReference(getVertex_OutgoingTransitions(), this.getTransition(), this.getTransition_Source(), "outgoingTransitions", null, 0, -1, Vertex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
475
476 initEClass(regionEClass, Region.class, "Region", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
477 initEReference(getRegion_Vertices(), this.getVertex(), null, "vertices", null, 0, -1, Region.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
478
479 initEClass(transitionEClass, Transition.class, "Transition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
480 initEReference(getTransition_Target(), this.getVertex(), this.getVertex_IncomingTransitions(), "target", null, 1, 1, Transition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
481 initEReference(getTransition_Source(), this.getVertex(), this.getVertex_OutgoingTransitions(), "source", null, 0, 1, Transition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
482
483 initEClass(statechartEClass, Statechart.class, "Statechart", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
484
485 initEClass(entryEClass, Entry.class, "Entry", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
486 initEAttribute(getEntry_Type(), this.getEntryType(), "Type", null, 1, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
487
488 initEClass(stateEClass, State.class, "State", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
489
490 initEClass(regularStateEClass, RegularState.class, "RegularState", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
491
492 initEClass(compositeElementEClass, CompositeElement.class, "CompositeElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
493 initEReference(getCompositeElement_Regions(), this.getRegion(), null, "regions", null, 0, -1, CompositeElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
494
495 initEClass(choiceEClass, Choice.class, "Choice", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
496
497 initEClass(exitEClass, Exit.class, "Exit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
498
499 initEClass(finalStateEClass, FinalState.class, "FinalState", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
500
501 // Initialize enums and add enum literals
502 initEEnum(entryTypeEEnum, EntryType.class, "EntryType");
503 addEEnumLiteral(entryTypeEEnum, EntryType.NORMAL);
504 addEEnumLiteral(entryTypeEEnum, EntryType.HISTORY);
505 addEEnumLiteral(entryTypeEEnum, EntryType.DEEP_HISTORY);
506
507 // Create resource
508 createResource(eNS_URI);
509 }
510
511} //YakindummPackageImpl
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/util/YakindummAdapterFactory.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/util/YakindummAdapterFactory.java
new file mode 100644
index 00000000..b3373dfd
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/util/YakindummAdapterFactory.java
@@ -0,0 +1,318 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.util;
4
5import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.*;
6
7import org.eclipse.emf.common.notify.Adapter;
8import org.eclipse.emf.common.notify.Notifier;
9
10import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
11
12import org.eclipse.emf.ecore.EObject;
13
14/**
15 * <!-- begin-user-doc -->
16 * The <b>Adapter Factory</b> for the model.
17 * It provides an adapter <code>createXXX</code> method for each class of the model.
18 * <!-- end-user-doc -->
19 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage
20 * @generated
21 */
22public class YakindummAdapterFactory extends AdapterFactoryImpl {
23 /**
24 * The cached model package.
25 * <!-- begin-user-doc -->
26 * <!-- end-user-doc -->
27 * @generated
28 */
29 protected static YakindummPackage modelPackage;
30
31 /**
32 * Creates an instance of the adapter factory.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @generated
36 */
37 public YakindummAdapterFactory() {
38 if (modelPackage == null) {
39 modelPackage = YakindummPackage.eINSTANCE;
40 }
41 }
42
43 /**
44 * Returns whether this factory is applicable for the type of the object.
45 * <!-- begin-user-doc -->
46 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
47 * <!-- end-user-doc -->
48 * @return whether this factory is applicable for the type of the object.
49 * @generated
50 */
51 @Override
52 public boolean isFactoryForType(Object object) {
53 if (object == modelPackage) {
54 return true;
55 }
56 if (object instanceof EObject) {
57 return ((EObject)object).eClass().getEPackage() == modelPackage;
58 }
59 return false;
60 }
61
62 /**
63 * The switch that delegates to the <code>createXXX</code> methods.
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @generated
67 */
68 protected YakindummSwitch<Adapter> modelSwitch =
69 new YakindummSwitch<Adapter>() {
70 @Override
71 public Adapter casePseudostate(Pseudostate object) {
72 return createPseudostateAdapter();
73 }
74 @Override
75 public Adapter caseVertex(Vertex object) {
76 return createVertexAdapter();
77 }
78 @Override
79 public Adapter caseRegion(Region object) {
80 return createRegionAdapter();
81 }
82 @Override
83 public Adapter caseTransition(Transition object) {
84 return createTransitionAdapter();
85 }
86 @Override
87 public Adapter caseStatechart(Statechart object) {
88 return createStatechartAdapter();
89 }
90 @Override
91 public Adapter caseEntry(Entry object) {
92 return createEntryAdapter();
93 }
94 @Override
95 public Adapter caseState(State object) {
96 return createStateAdapter();
97 }
98 @Override
99 public Adapter caseRegularState(RegularState object) {
100 return createRegularStateAdapter();
101 }
102 @Override
103 public Adapter caseCompositeElement(CompositeElement object) {
104 return createCompositeElementAdapter();
105 }
106 @Override
107 public Adapter caseChoice(Choice object) {
108 return createChoiceAdapter();
109 }
110 @Override
111 public Adapter caseExit(Exit object) {
112 return createExitAdapter();
113 }
114 @Override
115 public Adapter caseFinalState(FinalState object) {
116 return createFinalStateAdapter();
117 }
118 @Override
119 public Adapter defaultCase(EObject object) {
120 return createEObjectAdapter();
121 }
122 };
123
124 /**
125 * Creates an adapter for the <code>target</code>.
126 * <!-- begin-user-doc -->
127 * <!-- end-user-doc -->
128 * @param target the object to adapt.
129 * @return the adapter for the <code>target</code>.
130 * @generated
131 */
132 @Override
133 public Adapter createAdapter(Notifier target) {
134 return modelSwitch.doSwitch((EObject)target);
135 }
136
137
138 /**
139 * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Pseudostate <em>Pseudostate</em>}'.
140 * <!-- begin-user-doc -->
141 * This default implementation returns null so that we can easily ignore cases;
142 * it's useful to ignore a case when inheritance will catch all the cases anyway.
143 * <!-- end-user-doc -->
144 * @return the new adapter.
145 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Pseudostate
146 * @generated
147 */
148 public Adapter createPseudostateAdapter() {
149 return null;
150 }
151
152 /**
153 * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Vertex <em>Vertex</em>}'.
154 * <!-- begin-user-doc -->
155 * This default implementation returns null so that we can easily ignore cases;
156 * it's useful to ignore a case when inheritance will catch all the cases anyway.
157 * <!-- end-user-doc -->
158 * @return the new adapter.
159 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Vertex
160 * @generated
161 */
162 public Adapter createVertexAdapter() {
163 return null;
164 }
165
166 /**
167 * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Region <em>Region</em>}'.
168 * <!-- begin-user-doc -->
169 * This default implementation returns null so that we can easily ignore cases;
170 * it's useful to ignore a case when inheritance will catch all the cases anyway.
171 * <!-- end-user-doc -->
172 * @return the new adapter.
173 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Region
174 * @generated
175 */
176 public Adapter createRegionAdapter() {
177 return null;
178 }
179
180 /**
181 * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Transition <em>Transition</em>}'.
182 * <!-- begin-user-doc -->
183 * This default implementation returns null so that we can easily ignore cases;
184 * it's useful to ignore a case when inheritance will catch all the cases anyway.
185 * <!-- end-user-doc -->
186 * @return the new adapter.
187 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Transition
188 * @generated
189 */
190 public Adapter createTransitionAdapter() {
191 return null;
192 }
193
194 /**
195 * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Statechart <em>Statechart</em>}'.
196 * <!-- begin-user-doc -->
197 * This default implementation returns null so that we can easily ignore cases;
198 * it's useful to ignore a case when inheritance will catch all the cases anyway.
199 * <!-- end-user-doc -->
200 * @return the new adapter.
201 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Statechart
202 * @generated
203 */
204 public Adapter createStatechartAdapter() {
205 return null;
206 }
207
208 /**
209 * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Entry <em>Entry</em>}'.
210 * <!-- begin-user-doc -->
211 * This default implementation returns null so that we can easily ignore cases;
212 * it's useful to ignore a case when inheritance will catch all the cases anyway.
213 * <!-- end-user-doc -->
214 * @return the new adapter.
215 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Entry
216 * @generated
217 */
218 public Adapter createEntryAdapter() {
219 return null;
220 }
221
222 /**
223 * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.State <em>State</em>}'.
224 * <!-- begin-user-doc -->
225 * This default implementation returns null so that we can easily ignore cases;
226 * it's useful to ignore a case when inheritance will catch all the cases anyway.
227 * <!-- end-user-doc -->
228 * @return the new adapter.
229 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.State
230 * @generated
231 */
232 public Adapter createStateAdapter() {
233 return null;
234 }
235
236 /**
237 * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.RegularState <em>Regular State</em>}'.
238 * <!-- begin-user-doc -->
239 * This default implementation returns null so that we can easily ignore cases;
240 * it's useful to ignore a case when inheritance will catch all the cases anyway.
241 * <!-- end-user-doc -->
242 * @return the new adapter.
243 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.RegularState
244 * @generated
245 */
246 public Adapter createRegularStateAdapter() {
247 return null;
248 }
249
250 /**
251 * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.CompositeElement <em>Composite Element</em>}'.
252 * <!-- begin-user-doc -->
253 * This default implementation returns null so that we can easily ignore cases;
254 * it's useful to ignore a case when inheritance will catch all the cases anyway.
255 * <!-- end-user-doc -->
256 * @return the new adapter.
257 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.CompositeElement
258 * @generated
259 */
260 public Adapter createCompositeElementAdapter() {
261 return null;
262 }
263
264 /**
265 * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Choice <em>Choice</em>}'.
266 * <!-- begin-user-doc -->
267 * This default implementation returns null so that we can easily ignore cases;
268 * it's useful to ignore a case when inheritance will catch all the cases anyway.
269 * <!-- end-user-doc -->
270 * @return the new adapter.
271 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Choice
272 * @generated
273 */
274 public Adapter createChoiceAdapter() {
275 return null;
276 }
277
278 /**
279 * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Exit <em>Exit</em>}'.
280 * <!-- begin-user-doc -->
281 * This default implementation returns null so that we can easily ignore cases;
282 * it's useful to ignore a case when inheritance will catch all the cases anyway.
283 * <!-- end-user-doc -->
284 * @return the new adapter.
285 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Exit
286 * @generated
287 */
288 public Adapter createExitAdapter() {
289 return null;
290 }
291
292 /**
293 * Creates a new adapter for an object of class '{@link ca.mcgill.ecse.dslreasoner.vampire.yakindumm.FinalState <em>Final State</em>}'.
294 * <!-- begin-user-doc -->
295 * This default implementation returns null so that we can easily ignore cases;
296 * it's useful to ignore a case when inheritance will catch all the cases anyway.
297 * <!-- end-user-doc -->
298 * @return the new adapter.
299 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.FinalState
300 * @generated
301 */
302 public Adapter createFinalStateAdapter() {
303 return null;
304 }
305
306 /**
307 * Creates a new adapter for the default case.
308 * <!-- begin-user-doc -->
309 * This default implementation returns null.
310 * <!-- end-user-doc -->
311 * @return the new adapter.
312 * @generated
313 */
314 public Adapter createEObjectAdapter() {
315 return null;
316 }
317
318} //YakindummAdapterFactory
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/util/YakindummSwitch.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/util/YakindummSwitch.java
new file mode 100644
index 00000000..422565c2
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/yakindumm/util/YakindummSwitch.java
@@ -0,0 +1,355 @@
1/**
2 */
3package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.util;
4
5import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.*;
6
7import org.eclipse.emf.ecore.EObject;
8import org.eclipse.emf.ecore.EPackage;
9
10import org.eclipse.emf.ecore.util.Switch;
11
12/**
13 * <!-- begin-user-doc -->
14 * The <b>Switch</b> for the model's inheritance hierarchy.
15 * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
16 * to invoke the <code>caseXXX</code> method for each class of the model,
17 * starting with the actual class of the object
18 * and proceeding up the inheritance hierarchy
19 * until a non-null result is returned,
20 * which is the result of the switch.
21 * <!-- end-user-doc -->
22 * @see ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage
23 * @generated
24 */
25public class YakindummSwitch<T> extends Switch<T> {
26 /**
27 * The cached model package
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 protected static YakindummPackage modelPackage;
33
34 /**
35 * Creates an instance of the switch.
36 * <!-- begin-user-doc -->
37 * <!-- end-user-doc -->
38 * @generated
39 */
40 public YakindummSwitch() {
41 if (modelPackage == null) {
42 modelPackage = YakindummPackage.eINSTANCE;
43 }
44 }
45
46 /**
47 * Checks whether this is a switch for the given package.
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @param ePackage the package in question.
51 * @return whether this is a switch for the given package.
52 * @generated
53 */
54 @Override
55 protected boolean isSwitchFor(EPackage ePackage) {
56 return ePackage == modelPackage;
57 }
58
59 /**
60 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @return the first non-null result returned by a <code>caseXXX</code> call.
64 * @generated
65 */
66 @Override
67 protected T doSwitch(int classifierID, EObject theEObject) {
68 switch (classifierID) {
69 case YakindummPackage.PSEUDOSTATE: {
70 Pseudostate pseudostate = (Pseudostate)theEObject;
71 T result = casePseudostate(pseudostate);
72 if (result == null) result = caseVertex(pseudostate);
73 if (result == null) result = defaultCase(theEObject);
74 return result;
75 }
76 case YakindummPackage.VERTEX: {
77 Vertex vertex = (Vertex)theEObject;
78 T result = caseVertex(vertex);
79 if (result == null) result = defaultCase(theEObject);
80 return result;
81 }
82 case YakindummPackage.REGION: {
83 Region region = (Region)theEObject;
84 T result = caseRegion(region);
85 if (result == null) result = defaultCase(theEObject);
86 return result;
87 }
88 case YakindummPackage.TRANSITION: {
89 Transition transition = (Transition)theEObject;
90 T result = caseTransition(transition);
91 if (result == null) result = defaultCase(theEObject);
92 return result;
93 }
94 case YakindummPackage.STATECHART: {
95 Statechart statechart = (Statechart)theEObject;
96 T result = caseStatechart(statechart);
97 if (result == null) result = caseCompositeElement(statechart);
98 if (result == null) result = defaultCase(theEObject);
99 return result;
100 }
101 case YakindummPackage.ENTRY: {
102 Entry entry = (Entry)theEObject;
103 T result = caseEntry(entry);
104 if (result == null) result = casePseudostate(entry);
105 if (result == null) result = caseVertex(entry);
106 if (result == null) result = defaultCase(theEObject);
107 return result;
108 }
109 case YakindummPackage.STATE: {
110 State state = (State)theEObject;
111 T result = caseState(state);
112 if (result == null) result = caseRegularState(state);
113 if (result == null) result = caseCompositeElement(state);
114 if (result == null) result = caseVertex(state);
115 if (result == null) result = defaultCase(theEObject);
116 return result;
117 }
118 case YakindummPackage.REGULAR_STATE: {
119 RegularState regularState = (RegularState)theEObject;
120 T result = caseRegularState(regularState);
121 if (result == null) result = caseVertex(regularState);
122 if (result == null) result = defaultCase(theEObject);
123 return result;
124 }
125 case YakindummPackage.COMPOSITE_ELEMENT: {
126 CompositeElement compositeElement = (CompositeElement)theEObject;
127 T result = caseCompositeElement(compositeElement);
128 if (result == null) result = defaultCase(theEObject);
129 return result;
130 }
131 case YakindummPackage.CHOICE: {
132 Choice choice = (Choice)theEObject;
133 T result = caseChoice(choice);
134 if (result == null) result = casePseudostate(choice);
135 if (result == null) result = caseVertex(choice);
136 if (result == null) result = defaultCase(theEObject);
137 return result;
138 }
139 case YakindummPackage.EXIT: {
140 Exit exit = (Exit)theEObject;
141 T result = caseExit(exit);
142 if (result == null) result = casePseudostate(exit);
143 if (result == null) result = caseVertex(exit);
144 if (result == null) result = defaultCase(theEObject);
145 return result;
146 }
147 case YakindummPackage.FINAL_STATE: {
148 FinalState finalState = (FinalState)theEObject;
149 T result = caseFinalState(finalState);
150 if (result == null) result = caseRegularState(finalState);
151 if (result == null) result = caseVertex(finalState);
152 if (result == null) result = defaultCase(theEObject);
153 return result;
154 }
155 default: return defaultCase(theEObject);
156 }
157 }
158
159 /**
160 * Returns the result of interpreting the object as an instance of '<em>Pseudostate</em>'.
161 * <!-- begin-user-doc -->
162 * This implementation returns null;
163 * returning a non-null result will terminate the switch.
164 * <!-- end-user-doc -->
165 * @param object the target of the switch.
166 * @return the result of interpreting the object as an instance of '<em>Pseudostate</em>'.
167 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
168 * @generated
169 */
170 public T casePseudostate(Pseudostate object) {
171 return null;
172 }
173
174 /**
175 * Returns the result of interpreting the object as an instance of '<em>Vertex</em>'.
176 * <!-- begin-user-doc -->
177 * This implementation returns null;
178 * returning a non-null result will terminate the switch.
179 * <!-- end-user-doc -->
180 * @param object the target of the switch.
181 * @return the result of interpreting the object as an instance of '<em>Vertex</em>'.
182 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
183 * @generated
184 */
185 public T caseVertex(Vertex object) {
186 return null;
187 }
188
189 /**
190 * Returns the result of interpreting the object as an instance of '<em>Region</em>'.
191 * <!-- begin-user-doc -->
192 * This implementation returns null;
193 * returning a non-null result will terminate the switch.
194 * <!-- end-user-doc -->
195 * @param object the target of the switch.
196 * @return the result of interpreting the object as an instance of '<em>Region</em>'.
197 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
198 * @generated
199 */
200 public T caseRegion(Region object) {
201 return null;
202 }
203
204 /**
205 * Returns the result of interpreting the object as an instance of '<em>Transition</em>'.
206 * <!-- begin-user-doc -->
207 * This implementation returns null;
208 * returning a non-null result will terminate the switch.
209 * <!-- end-user-doc -->
210 * @param object the target of the switch.
211 * @return the result of interpreting the object as an instance of '<em>Transition</em>'.
212 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
213 * @generated
214 */
215 public T caseTransition(Transition object) {
216 return null;
217 }
218
219 /**
220 * Returns the result of interpreting the object as an instance of '<em>Statechart</em>'.
221 * <!-- begin-user-doc -->
222 * This implementation returns null;
223 * returning a non-null result will terminate the switch.
224 * <!-- end-user-doc -->
225 * @param object the target of the switch.
226 * @return the result of interpreting the object as an instance of '<em>Statechart</em>'.
227 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
228 * @generated
229 */
230 public T caseStatechart(Statechart object) {
231 return null;
232 }
233
234 /**
235 * Returns the result of interpreting the object as an instance of '<em>Entry</em>'.
236 * <!-- begin-user-doc -->
237 * This implementation returns null;
238 * returning a non-null result will terminate the switch.
239 * <!-- end-user-doc -->
240 * @param object the target of the switch.
241 * @return the result of interpreting the object as an instance of '<em>Entry</em>'.
242 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
243 * @generated
244 */
245 public T caseEntry(Entry object) {
246 return null;
247 }
248
249 /**
250 * Returns the result of interpreting the object as an instance of '<em>State</em>'.
251 * <!-- begin-user-doc -->
252 * This implementation returns null;
253 * returning a non-null result will terminate the switch.
254 * <!-- end-user-doc -->
255 * @param object the target of the switch.
256 * @return the result of interpreting the object as an instance of '<em>State</em>'.
257 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
258 * @generated
259 */
260 public T caseState(State object) {
261 return null;
262 }
263
264 /**
265 * Returns the result of interpreting the object as an instance of '<em>Regular State</em>'.
266 * <!-- begin-user-doc -->
267 * This implementation returns null;
268 * returning a non-null result will terminate the switch.
269 * <!-- end-user-doc -->
270 * @param object the target of the switch.
271 * @return the result of interpreting the object as an instance of '<em>Regular State</em>'.
272 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
273 * @generated
274 */
275 public T caseRegularState(RegularState object) {
276 return null;
277 }
278
279 /**
280 * Returns the result of interpreting the object as an instance of '<em>Composite Element</em>'.
281 * <!-- begin-user-doc -->
282 * This implementation returns null;
283 * returning a non-null result will terminate the switch.
284 * <!-- end-user-doc -->
285 * @param object the target of the switch.
286 * @return the result of interpreting the object as an instance of '<em>Composite Element</em>'.
287 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
288 * @generated
289 */
290 public T caseCompositeElement(CompositeElement object) {
291 return null;
292 }
293
294 /**
295 * Returns the result of interpreting the object as an instance of '<em>Choice</em>'.
296 * <!-- begin-user-doc -->
297 * This implementation returns null;
298 * returning a non-null result will terminate the switch.
299 * <!-- end-user-doc -->
300 * @param object the target of the switch.
301 * @return the result of interpreting the object as an instance of '<em>Choice</em>'.
302 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
303 * @generated
304 */
305 public T caseChoice(Choice object) {
306 return null;
307 }
308
309 /**
310 * Returns the result of interpreting the object as an instance of '<em>Exit</em>'.
311 * <!-- begin-user-doc -->
312 * This implementation returns null;
313 * returning a non-null result will terminate the switch.
314 * <!-- end-user-doc -->
315 * @param object the target of the switch.
316 * @return the result of interpreting the object as an instance of '<em>Exit</em>'.
317 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
318 * @generated
319 */
320 public T caseExit(Exit object) {
321 return null;
322 }
323
324 /**
325 * Returns the result of interpreting the object as an instance of '<em>Final State</em>'.
326 * <!-- begin-user-doc -->
327 * This implementation returns null;
328 * returning a non-null result will terminate the switch.
329 * <!-- end-user-doc -->
330 * @param object the target of the switch.
331 * @return the result of interpreting the object as an instance of '<em>Final State</em>'.
332 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
333 * @generated
334 */
335 public T caseFinalState(FinalState object) {
336 return null;
337 }
338
339 /**
340 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
341 * <!-- begin-user-doc -->
342 * This implementation returns null;
343 * returning a non-null result will terminate the switch, but this is the last case anyway.
344 * <!-- end-user-doc -->
345 * @param object the target of the switch.
346 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
347 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
348 * @generated
349 */
350 @Override
351 public T defaultCase(EObject object) {
352 return null;
353 }
354
355} //YakindummSwitch
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 57fe8c2d..99a457d4 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 41284af1..e8451eb9 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 36f2c6e1..73c6ab49 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 ce6042ea..b6cabaa6 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 270ac043..ae6fb160 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/GeneralTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.java
index 13a0e74a..80cec4b9 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.java
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.java
@@ -108,7 +108,7 @@ public class GeneralTest {
108 final Procedure1<VampireSolverConfiguration> _function_2 = (VampireSolverConfiguration it) -> { 108 final Procedure1<VampireSolverConfiguration> _function_2 = (VampireSolverConfiguration it) -> {
109 it.documentationLevel = DocumentationLevel.FULL; 109 it.documentationLevel = DocumentationLevel.FULL;
110 it.typeScopes.minNewElements = 6; 110 it.typeScopes.minNewElements = 6;
111 it.typeScopes.maxNewElements = 8; 111 it.typeScopes.maxNewElements = 40;
112 it.typeScopes.minNewElementsByType = typeMapMin; 112 it.typeScopes.minNewElementsByType = typeMapMin;
113 it.typeScopes.maxNewElementsByType = typeMapMax; 113 it.typeScopes.maxNewElementsByType = typeMapMax;
114 }; 114 };
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icseTest/.gitignore b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icseTest/.gitignore
deleted file mode 100644
index f3e21798..00000000
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icseTest/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
1/.FAMTest.java._trace
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.DslTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.DslTest.xtendbin
deleted file mode 100644
index 59f57d8b..00000000
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.DslTest.xtendbin
+++ /dev/null
Binary files differ
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 693ee01d..6cae3219 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 7e61c0ef..22dda149 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 8a554a42..857ee2e7 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
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/FAMTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/FAMTest.java
deleted file mode 100644
index 7b4849e1..00000000
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/FAMTest.java
+++ /dev/null
@@ -1,111 +0,0 @@
1package ca.mcgill.ecse.dslreasoner.vampire.test;
2
3import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver;
4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration;
5import com.google.common.collect.Iterables;
6import functionalarchitecture.FunctionalarchitecturePackage;
7import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic;
8import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration;
9import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace;
10import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor;
11import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner;
12import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput;
13import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem;
14import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult;
15import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore;
16import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic;
17import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic;
18import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace;
19import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace;
20import java.util.Collections;
21import java.util.List;
22import java.util.Map;
23import org.eclipse.emf.common.util.EList;
24import org.eclipse.emf.ecore.EAttribute;
25import org.eclipse.emf.ecore.EClass;
26import org.eclipse.emf.ecore.EEnum;
27import org.eclipse.emf.ecore.EEnumLiteral;
28import org.eclipse.emf.ecore.EObject;
29import org.eclipse.emf.ecore.EReference;
30import org.eclipse.emf.ecore.resource.Resource;
31import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
32import org.eclipse.xtend2.lib.StringConcatenation;
33import org.eclipse.xtext.xbase.lib.CollectionLiterals;
34import org.eclipse.xtext.xbase.lib.Exceptions;
35import org.eclipse.xtext.xbase.lib.Functions.Function1;
36import org.eclipse.xtext.xbase.lib.InputOutput;
37import org.eclipse.xtext.xbase.lib.IterableExtensions;
38import org.eclipse.xtext.xbase.lib.IteratorExtensions;
39import org.eclipse.xtext.xbase.lib.ListExtensions;
40import org.eclipse.xtext.xbase.lib.ObjectExtensions;
41import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
42
43@SuppressWarnings("all")
44public class DslTest {
45 public static void main(final String[] args) {
46 try {
47 StringConcatenation _builder = new StringConcatenation();
48 _builder.append("initialModels/");
49 final FileSystemWorkspace inputs = new FileSystemWorkspace(_builder.toString(), "");
50 StringConcatenation _builder_1 = new StringConcatenation();
51 _builder_1.append("outputDslModels/");
52 final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder_1.toString(), "");
53 workspace.initAndClear();
54 InputOutput.<String>println("Input and output workspaces are created");
55 final EcoreMetamodelDescriptor metamodel = DslTest.loadMetamodel();
56 final List<EObject> partialModel = DslTest.loadPartialModel(inputs);
57 InputOutput.<String>println("DSL loaded");
58 final Ecore2Logic ecore2Logic = new Ecore2Logic();
59 final Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic);
60 final Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic);
61 final InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic();
62 Ecore2LogicConfiguration _ecore2LogicConfiguration = new Ecore2LogicConfiguration();
63 final TracedOutput<LogicProblem, Ecore2Logic_Trace> modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, _ecore2LogicConfiguration);
64 final LogicProblem logicProblem = modelGenerationProblem.getOutput();
65 InputOutput.<String>println("Problem created");
66 LogicResult solution = null;
67 LogicReasoner reasoner = null;
68 VampireSolver _vampireSolver = new VampireSolver();
69 reasoner = _vampireSolver;
70 VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration();
71 final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> {
72 it.writeToFile = false;
73 };
74 final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function);
75 solution = reasoner.solve(logicProblem, vampireConfig, workspace);
76 InputOutput.<String>println("Problem solved");
77 } catch (Throwable _e) {
78 throw Exceptions.sneakyThrow(_e);
79 }
80 }
81
82 private static EcoreMetamodelDescriptor loadMetamodel() {
83 final FunctionalarchitecturePackage pckg = FunctionalarchitecturePackage.eINSTANCE;
84 final List<EClass> classes = IterableExtensions.<EClass>toList(Iterables.<EClass>filter(pckg.getEClassifiers(), EClass.class));
85 final List<EEnum> enums = IterableExtensions.<EEnum>toList(Iterables.<EEnum>filter(pckg.getEClassifiers(), EEnum.class));
86 final Function1<EEnum, EList<EEnumLiteral>> _function = (EEnum it) -> {
87 return it.getELiterals();
88 };
89 final List<EEnumLiteral> literals = IterableExtensions.<EEnumLiteral>toList(Iterables.<EEnumLiteral>concat(ListExtensions.<EEnum, EList<EEnumLiteral>>map(enums, _function)));
90 final Function1<EClass, EList<EReference>> _function_1 = (EClass it) -> {
91 return it.getEReferences();
92 };
93 final List<EReference> references = IterableExtensions.<EReference>toList(Iterables.<EReference>concat(ListExtensions.<EClass, EList<EReference>>map(classes, _function_1)));
94 final Function1<EClass, EList<EAttribute>> _function_2 = (EClass it) -> {
95 return it.getEAttributes();
96 };
97 final List<EAttribute> attributes = IterableExtensions.<EAttribute>toList(Iterables.<EAttribute>concat(ListExtensions.<EClass, EList<EAttribute>>map(classes, _function_2)));
98 return new EcoreMetamodelDescriptor(classes, Collections.<EClass>unmodifiableSet(CollectionLiterals.<EClass>newHashSet()), false, enums, literals, references, attributes);
99 }
100
101 private static List<EObject> loadPartialModel(final ReasonerWorkspace inputs) {
102 List<EObject> _xblockexpression = null;
103 {
104 Map<String, Object> _extensionToFactoryMap = Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap();
105 XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl();
106 _extensionToFactoryMap.put("*", _xMIResourceFactoryImpl);
107 _xblockexpression = IteratorExtensions.<EObject>toList(inputs.<EObject>readModel(EObject.class, "FunctionalArchitectureModel.xmi").eResource().getAllContents());
108 }
109 return _xblockexpression;
110 }
111}
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/hu/bme/mit/inf/dslreasoner/run/.gitignore b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/hu/bme/mit/inf/dslreasoner/run/.gitignore
deleted file mode 100644
index 2c8a0d43..00000000
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/hu/bme/mit/inf/dslreasoner/run/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
1/.SimpleRun.java._trace
2/.MedicalSystem.java._trace
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/.project b/Tests/ca.mcgill.ecse.dslreasoner.yakindu.test/.project
index 85d1308e..1701c3ba 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.trace.logic2vampire/.project
+++ b/Tests/ca.mcgill.ecse.dslreasoner.yakindu.test/.project
@@ -1,29 +1,40 @@
1<?xml version="1.0" encoding="UTF-8"?> 1<?xml version="1.0" encoding="UTF-8"?>
2<projectDescription> 2<projectDescription>
3 <name>ca.mcgill.ecse.dslreasoner.trace.logic2vampire</name> 3 <name>ca.mcgill.ecse.dslreasoner.yakindu.test</name>
4 <comment></comment> 4 <comment></comment>
5 <projects> 5 <projects>
6 </projects> 6 </projects>
7 <buildSpec> 7 <buildSpec>
8 <buildCommand> 8 <buildCommand>
9 <name>org.eclipse.jdt.core.javabuilder</name> 9 <name>org.eclipse.viatra.query.tooling.ui.projectbuilder</name>
10 <arguments> 10 <arguments>
11 </arguments> 11 </arguments>
12 </buildCommand> 12 </buildCommand>
13 <buildCommand> 13 <buildCommand>
14 <name>org.eclipse.pde.ManifestBuilder</name> 14 <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
15 <arguments> 15 <arguments>
16 </arguments> 16 </arguments>
17 </buildCommand> 17 </buildCommand>
18 <buildCommand> 18 <buildCommand>
19 <name>org.eclipse.pde.SchemaBuilder</name> 19 <name>org.eclipse.jdt.core.javabuilder</name>
20 <arguments> 20 <arguments>
21 </arguments> 21 </arguments>
22 </buildCommand> 22 </buildCommand>
23 </buildSpec> 23 <buildCommand>
24 <natures> 24 <name>org.eclipse.pde.ManifestBuilder</name>
25 <nature>org.eclipse.sirius.nature.modelingproject</nature> 25 <arguments>
26 <nature>org.eclipse.jdt.core.javanature</nature> 26 </arguments>
27 <nature>org.eclipse.pde.PluginNature</nature> 27 </buildCommand>
28 </natures> 28 <buildCommand>
29</projectDescription> 29 <name>org.eclipse.pde.SchemaBuilder</name>
30 <arguments>
31 </arguments>
32 </buildCommand>
33 </buildSpec>
34 <natures>
35 <nature>org.eclipse.pde.PluginNature</nature>
36 <nature>org.eclipse.jdt.core.javanature</nature>
37 <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
38 <nature>org.eclipse.viatra.query.projectnature</nature>
39 </natures>
40</projectDescription>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.yakindu.test/bin/ca/mcgill/ecse/dslreasoner/yakindu/test/.YakinduTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.yakindu.test/bin/ca/mcgill/ecse/dslreasoner/yakindu/test/.YakinduTest.xtendbin
new file mode 100644
index 00000000..d0f61cf1
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.yakindu.test/bin/ca/mcgill/ecse/dslreasoner/yakindu/test/.YakinduTest.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.yakindu.test/bin/ca/mcgill/ecse/dslreasoner/yakindu/test/.gitignore b/Tests/ca.mcgill.ecse.dslreasoner.yakindu.test/bin/ca/mcgill/ecse/dslreasoner/yakindu/test/.gitignore
new file mode 100644
index 00000000..5d3de4ba
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.yakindu.test/bin/ca/mcgill/ecse/dslreasoner/yakindu/test/.gitignore
@@ -0,0 +1 @@
/.YakinduTest.java._trace
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.yakindu.test/bin/ca/mcgill/ecse/dslreasoner/yakindu/test/YakinduTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.yakindu.test/bin/ca/mcgill/ecse/dslreasoner/yakindu/test/YakinduTest.xtend
new file mode 100644
index 00000000..b6aae6ab
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.yakindu.test/bin/ca/mcgill/ecse/dslreasoner/yakindu/test/YakinduTest.xtend
@@ -0,0 +1,178 @@
1package ca.mcgill.ecse.dslreasoner.yakindu.test
2
3import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.YakindummPackage
4import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic
5import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration
6import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor
7import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder
8import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder
9import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult
10import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult
11import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore
12import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic
13import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic
14import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation
15import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretation2Gml
16import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasoner
17import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasonerConfiguration
18import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace
19import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace
20import java.util.LinkedList
21import java.util.List
22import org.eclipse.emf.ecore.EAttribute
23import org.eclipse.emf.ecore.EClass
24import org.eclipse.emf.ecore.EEnum
25import org.eclipse.emf.ecore.EEnumLiteral
26import org.eclipse.emf.ecore.EObject
27import org.eclipse.emf.ecore.EPackage
28import org.eclipse.emf.ecore.EReference
29import org.eclipse.emf.ecore.resource.Resource
30import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
31import hu.bme.mit.inf.dslreasoner.logic.model.builder.SolutionScope
32
33class YakinduTest {
34
35 static String inWS = "input"
36 static String outWS = "output"
37 static String imName = "Yakindu.xmi"
38
39 def static void main(String[] args) {
40 val Ecore2Logic ecore2Logic = new Ecore2Logic
41 val Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic)
42 val Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic)
43 val InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic
44
45 // Workspace setup
46 val inputs = new FileSystemWorkspace(inWS + '''/''', "")
47 val workspace = new FileSystemWorkspace(outWS + '''/''', "")
48 workspace.initAndClear
49
50 // Logicproblem writing setup
51 val reg = Resource.Factory.Registry.INSTANCE
52 val map = reg.extensionToFactoryMap
53 map.put("logicproblem", new XMIResourceFactoryImpl)
54
55 println("Input and output workspaces are created")
56
57 //loading the modeling environment
58 val metamodel = loadMetamodel(YakindummPackage.eINSTANCE) // TODO
59 val partialModel = loadPartialModel(inputs, imName)
60// val queries = loadQueries(metamodel, Patterns.instance)
61 val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, new Ecore2LogicConfiguration())
62 var modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem, partialModel)
63// var validModelExtensionProblem = viatra2Logic.transformQueries(queries, modelExtensionProblem, new Viatra2LogicConfiguration)
64 var problem = modelExtensionProblem.output
65
66 println("Modelling environment Loaded")
67
68
69 val ss = new SolutionScope()
70 ss.numberOfRequiredSolution = 5
71
72 var reasoner = new ViatraReasoner
73 val vampireConfig = new ViatraReasonerConfiguration => [
74 // add configuration things, in config file first
75// it.documentationLevel = DocumentationLevel::FULL
76 it.solutionScope = ss
77 it.typeScopes.maxNewElements = 10
78 it.typeScopes.minNewElements = 5
79 ]
80
81 println("Problem Ready")
82
83 var LogicResult solution = reasoner.solve(problem, vampireConfig, workspace)
84
85 println("Problem solved")
86
87 val interpretations = reasoner.getInterpretations(solution as ModelResult)
88 val models = new LinkedList
89 for (interpretation : interpretations) {
90// val extension b = new LogicStructureBuilder
91// val extension a = new LogicProblemBuilder
92
93 val instanceModel = logic2Ecore.transformInterpretation(interpretation, modelGenerationProblem.trace)
94 models += instanceModel
95 }
96
97 solution.writeSolution(workspace, models)
98// print((solution as ModelResult).representation.get(0))
99// val soln = ((solution as ModelResult).representation.get(0) as VampireModel)
100// println(soln.confirmations)
101// println((solution as ModelResult).representation)
102// modelFound = !soln.confirmations.filter [
103// class == VLSFiniteModelImpl
104// ].isEmpty
105 }
106
107// def static Map<Type, Integer> getTypeMap(Map<Class, Integer> classMap, EcoreMetamodelDescriptor metamodel,
108// Ecore2Logic e2l, Ecore2Logic_Trace trace) {
109// val typeMap = new HashMap<Type, Integer>
110// val listMap = metamodel.classes.toMap[s|s.name]
111//
112// for (Class elem : classMap.keySet) {
113// typeMap.put(e2l.TypeofEClass(
114// trace,
115// listMap.get(elem.simpleName)
116// ), classMap.get(elem))
117// }
118// return typeMap
119// }
120 def static loadMetamodel(EPackage pckg) {
121 val List<EClass> classes = pckg.getEClassifiers.filter(EClass).toList
122 val List<EEnum> enums = pckg.getEClassifiers.filter(EEnum).toList
123 val List<EEnumLiteral> literals = enums.map[getELiterals].flatten.toList
124 val List<EReference> references = classes.map[getEReferences].flatten.toList
125 val List<EAttribute> attributes = classes.map[getEAttributes].flatten.toList
126 return new EcoreMetamodelDescriptor(classes, #{}, false, enums, literals, references, attributes)
127 }
128
129 def static loadPartialModel(ReasonerWorkspace inputs, String path) {
130 Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl())
131 inputs.readModel(EObject, path).eResource.contents
132// inputs.readModel(EObject,"FamInstance.xmi").eResource.allContents.toList
133 }
134
135// def static loadQueries(EcoreMetamodelDescriptor metamodel, IQueryGroup i) {
136// val patterns = i.specifications.toList
137// val wfPatterns = patterns.filter[it.allAnnotations.exists[it.name == "Constraint"]].toSet
138// val derivedFeatures = emptyMap
139// // NO DERIVED FEATURES
140//// val derivedFeatures = new LinkedHashMap
141//// derivedFeatures.put(i.type,metamodel.attributes.filter[it.name == "type"].head)
142//// derivedFeatures.put(i.model,metamodel.references.filter[it.name == "model"].head)
143// val res = new ViatraQuerySetDescriptor(
144// patterns,
145// wfPatterns,
146// derivedFeatures
147// )
148// return res
149// }
150
151def static writeSolution(LogicResult solution, ReasonerWorkspace workspace, List<EObject> models) {
152 if(solution instanceof ModelResult) {
153 val representations = solution.representation
154
155 for(representationIndex : 0..<representations.size) {
156 val representation = representations.get(representationIndex)
157 val representationNumber = representationIndex + 1
158 if(representation instanceof PartialInterpretation) {
159// workspace.writeModel(representation, '''solution«representationNumber».partialinterpretation''')
160 val partialInterpretation2GML = new PartialInterpretation2Gml
161 val gml = partialInterpretation2GML.transform(representation)
162 //ecore2GML.transform(root)
163 workspace.writeText('''solution«representationNumber»Visualisation.gml''',gml)
164
165 } else {
166 workspace.writeText('''solution«representationNumber».txt''',representation.toString)
167 }
168 }
169
170 for(modelIndex : 0..<models.size) {
171 val model = models.get(modelIndex)
172 val representationNumber = modelIndex + 1
173 workspace.writeModel(model,'''model«representationNumber».xmi''')
174 }
175 println("Solution saved and visualised")
176 }
177 }
178}
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.yakindu.test/xtend-gen/ca/mcgill/ecse/dslreasoner/yakindu/test/.YakinduTest.java._trace b/Tests/ca.mcgill.ecse.dslreasoner.yakindu.test/xtend-gen/ca/mcgill/ecse/dslreasoner/yakindu/test/.YakinduTest.java._trace
new file mode 100644
index 00000000..c90daf88
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.yakindu.test/xtend-gen/ca/mcgill/ecse/dslreasoner/yakindu/test/.YakinduTest.java._trace
Binary files differ
diff --git a/Tests/hu.bme.mit.inf.dslreasoner.application.FAMTest/.classpath b/Tests/hu.bme.mit.inf.dslreasoner.application.FAMTest/.classpath
index 1c96fe2f..2b46fc9b 100644
--- a/Tests/hu.bme.mit.inf.dslreasoner.application.FAMTest/.classpath
+++ b/Tests/hu.bme.mit.inf.dslreasoner.application.FAMTest/.classpath
@@ -4,5 +4,6 @@
4 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> 4 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
5 <classpathentry kind="src" path="src"/> 5 <classpathentry kind="src" path="src"/>
6 <classpathentry kind="src" path="xtend-gen"/> 6 <classpathentry kind="src" path="xtend-gen"/>
7 <classpathentry kind="src" path="src-gen/"/>
7 <classpathentry kind="output" path="bin"/> 8 <classpathentry kind="output" path="bin"/>
8</classpath> 9</classpath>
diff --git a/Tests/hu.bme.mit.inf.dslreasoner.application.FAMTest/META-INF/MANIFEST.MF b/Tests/hu.bme.mit.inf.dslreasoner.application.FAMTest/META-INF/MANIFEST.MF
index 4e3222f9..d32b92ce 100644
--- a/Tests/hu.bme.mit.inf.dslreasoner.application.FAMTest/META-INF/MANIFEST.MF
+++ b/Tests/hu.bme.mit.inf.dslreasoner.application.FAMTest/META-INF/MANIFEST.MF
@@ -1,15 +1,14 @@
1Manifest-Version: 1.0 1Manifest-Version: 1.0
2Bundle-ManifestVersion: 2 2Bundle-ManifestVersion: 2
3Bundle-Name: FAMTest 3Bundle-Name: FAMTest
4Bundle-SymbolicName: hu.bme.mit.inf.dslreasoner.application.FAMTest;singleton:=true 4Bundle-SymbolicName: hu.bme.mit.inf.dslreasoner.application.FAMTest;singleton:=true
5Bundle-Version: 1.0.0.qualifier 5Bundle-Version: 1.0.0.qualifier
6Automatic-Module-Name: hu.bme.mit.inf.dslreasoner.application.FAMTest 6Require-Bundle: com.google.guava,
7Bundle-RequiredExecutionEnvironment: JavaSE-1.8 7 org.eclipse.xtext.xbase.lib,
8Require-Bundle: com.google.guava, 8 org.eclipse.xtend.lib,
9 org.eclipse.xtext.xbase.lib, 9 org.eclipse.xtend.lib.macro,
10 org.eclipse.xtend.lib, 10 hu.bme.mit.inf.dslreasoner.application;bundle-version="1.0.0",
11 org.eclipse.xtend.lib.macro, 11 org.junit;bundle-version="4.12.0",
12 hu.bme.mit.inf.dslreasoner.application;bundle-version="1.0.0", 12 org.eclipse.collections;bundle-version="7.1.1"
13 org.junit;bundle-version="4.12.0", 13Automatic-Module-Name: hu.bme.mit.inf.dslreasoner.application.FAMTest
14 org.eclipse.collections;bundle-version="7.1.1" 14Bundle-RequiredExecutionEnvironment: JavaSE-1.8
15
diff --git a/Tests/hu.bme.mit.inf.dslreasoner.application.FAMTest/build.properties b/Tests/hu.bme.mit.inf.dslreasoner.application.FAMTest/build.properties
index 41eb6ade..aed85a48 100644
--- a/Tests/hu.bme.mit.inf.dslreasoner.application.FAMTest/build.properties
+++ b/Tests/hu.bme.mit.inf.dslreasoner.application.FAMTest/build.properties
@@ -1,4 +1,5 @@
1source.. = src/
2output.. = bin/
3bin.includes = META-INF/,\ 1bin.includes = META-INF/,\
4 . 2 .
3source.. = src/,\
4 src-gen/
5output.. = bin/