diff options
author | ArenBabikian <aren.babikian@mail.mcgill.ca> | 2019-03-20 20:39:28 -0400 |
---|---|---|
committer | ArenBabikian <aren.babikian@mail.mcgill.ca> | 2020-06-07 19:33:22 -0400 |
commit | 513a5afe3a8663ad30112f7e3c0e66137938e635 (patch) | |
tree | e9ae81f529712a372bd203cb0ef2a19b9b224c95 | |
parent | Implement Containment mapping (partially) and revisit enum mapping (diff) | |
download | VIATRA-Generator-513a5afe3a8663ad30112f7e3c0e66137938e635.tar.gz VIATRA-Generator-513a5afe3a8663ad30112f7e3c0e66137938e635.tar.zst VIATRA-Generator-513a5afe3a8663ad30112f7e3c0e66137938e635.zip |
Add gitignore, commit everything
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 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.domains.fam | 1 | package hu.bme.mit.inf.dslreasoner.domains.fam |
2 | 2 | ||
3 | import 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"; | 4 | import 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}) |
7 | pattern terminatorAndInformation(T : FAMTerminator, I : InformationLink) = { | 7 | pattern 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 @@ | |||
1 | package hu.bme.mit.inf.yakinduModelExtractor; | 1 | package hu.bme.mit.inf.yakinduModelExtractor; |
2 | 2 | ||
3 | import java.io.BufferedWriter; | 3 | import java.io.BufferedWriter; |
4 | import java.io.File; | 4 | import java.io.File; |
5 | import java.io.FileOutputStream; | 5 | import java.io.FileOutputStream; |
6 | import java.io.IOException; | 6 | import java.io.IOException; |
7 | import java.io.OutputStreamWriter; | 7 | import java.io.OutputStreamWriter; |
8 | import java.io.Writer; | 8 | import java.io.Writer; |
9 | import java.util.LinkedList; | 9 | import java.util.LinkedList; |
10 | import java.util.List; | 10 | import java.util.List; |
11 | 11 | ||
12 | import org.eclipse.emf.common.util.URI; | 12 | import org.eclipse.emf.common.util.URI; |
13 | import org.eclipse.emf.ecore.EObject; | 13 | import org.eclipse.emf.ecore.EObject; |
14 | import org.eclipse.emf.ecore.resource.Resource; | 14 | import org.eclipse.emf.ecore.resource.Resource; |
15 | import org.eclipse.emf.ecore.resource.ResourceSet; | 15 | import org.eclipse.emf.ecore.resource.ResourceSet; |
16 | import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; | 16 | import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; |
17 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; | 17 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; |
18 | import org.eclipse.gmf.runtime.notation.NotationPackage; | 18 | import org.eclipse.gmf.runtime.notation.NotationPackage; |
19 | import org.yakindu.sct.model.sgraph.SGraphPackage; | 19 | import org.yakindu.sct.model.sgraph.SGraphPackage; |
20 | 20 | ||
21 | public class ModelManager { | 21 | public 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 | |||
3 | Bundle-Name: %pluginName | 3 | Bundle-Name: %pluginName |
4 | Bundle-SymbolicName: hu.bme.mit.inf.dslreasoner.logic.model;singleton:=true | 4 | Bundle-SymbolicName: hu.bme.mit.inf.dslreasoner.logic.model;singleton:=true |
5 | Bundle-Version: 1.0.0.qualifier | 5 | Bundle-Version: 1.0.0.qualifier |
6 | Bundle-ClassPath: . | ||
7 | Bundle-Vendor: %providerName | 6 | Bundle-Vendor: %providerName |
8 | Bundle-Localization: plugin | 7 | Bundle-Localization: plugin |
9 | Export-Package: hu.bme.mit.inf.dslreasoner.logic.model.builder, | 8 | Export-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 |
24 | Require-Bundle: org.eclipse.core.runtime, | 23 | Require-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" | ||
42 | Bundle-RequiredExecutionEnvironment: JavaSE-1.8 | ||
43 | Bundle-ActivationPolicy: lazy | ||
44 | >>>>>>> b42fb751... Add gitignore, commit everything | ||
33 | Import-Package: org.apache.log4j | 45 | Import-Package: org.apache.log4j |
34 | Automatic-Module-Name: hu.bme.mit.inf.dslreasoner.logic.model | 46 | Automatic-Module-Name: hu.bme.mit.inf.dslreasoner.logic.model |
35 | Bundle-ActivationPolicy: lazy | ||
36 | Bundle-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/ | ||
12 | output.. = bin/ | 13 | output.. = 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 = . | |||
6 | source.. = src/,\ | 6 | source.. = src/,\ |
7 | queries/,\ | 7 | queries/,\ |
8 | xtend-gen/,\ | 8 | xtend-gen/,\ |
9 | vql-gen/ | 9 | vql-gen/,\ |
10 | src-gen/ | ||
10 | output.. = bin/ | 11 | output.. = 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 @@ | |||
1 | Manifest-Version: 1.0 | ||
2 | Bundle-ManifestVersion: 2 | ||
3 | Bundle-Name: ca.mcgill.ecse.dslreasoner.trace.logic2vampire | ||
4 | Bundle-SymbolicName: ca.mcgill.ecse.dslreasoner.trace.logic2vampire; singleton:=true | ||
5 | Bundle-Version: 0.1.0.qualifier | ||
6 | Require-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 | */ | ||
4 | package ca.mcgill.ecse.dslreasoner.vampireLanguage; | ||
5 | |||
6 | import 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 | */ | ||
18 | public 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 | */ | ||
4 | package ca.mcgill.ecse.dslreasoner.vampireLanguage; | ||
5 | |||
6 | import 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 | */ | ||
25 | public 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 | */ | ||
4 | package ca.mcgill.ecse.dslreasoner.vampireLanguage; | ||
5 | |||
6 | import 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 | */ | ||
24 | public 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 | */ | ||
4 | package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; | ||
5 | |||
6 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFiniteModel; | ||
7 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; | ||
8 | |||
9 | import org.eclipse.emf.ecore.EClass; | ||
10 | |||
11 | import 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 | */ | ||
20 | public 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 | */ | ||
4 | package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; | ||
5 | |||
6 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionFof; | ||
7 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; | ||
8 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; | ||
9 | |||
10 | import java.util.Collection; | ||
11 | |||
12 | import org.eclipse.emf.common.notify.Notification; | ||
13 | import org.eclipse.emf.common.notify.NotificationChain; | ||
14 | |||
15 | import org.eclipse.emf.common.util.EList; | ||
16 | |||
17 | import org.eclipse.emf.ecore.EClass; | ||
18 | import org.eclipse.emf.ecore.InternalEObject; | ||
19 | |||
20 | import org.eclipse.emf.ecore.impl.ENotificationImpl; | ||
21 | |||
22 | import org.eclipse.emf.ecore.util.EObjectContainmentEList; | ||
23 | import 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 | */ | ||
39 | public 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 | */ | ||
4 | package ca.mcgill.ecse.dslreasoner.vampireLanguage.impl; | ||
5 | |||
6 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTrying; | ||
7 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; | ||
8 | |||
9 | import org.eclipse.emf.common.notify.Notification; | ||
10 | |||
11 | import org.eclipse.emf.ecore.EClass; | ||
12 | |||
13 | import org.eclipse.emf.ecore.impl.ENotificationImpl; | ||
14 | import 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 | */ | ||
29 | public 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 | */ | ||
4 | package ca.mcgill.ecse.dslreasoner.vampire.queries; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.Collection; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Objects; | ||
11 | import java.util.Optional; | ||
12 | import java.util.Set; | ||
13 | import java.util.function.Consumer; | ||
14 | import java.util.stream.Collectors; | ||
15 | import java.util.stream.Stream; | ||
16 | import org.apache.log4j.Logger; | ||
17 | import org.eclipse.emf.ecore.EClass; | ||
18 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
19 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
20 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
21 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
22 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
25 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
36 | import 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") | ||
53 | public 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 | */ | ||
4 | package ca.mcgill.ecse.dslreasoner.vampire.queries; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.Collection; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Objects; | ||
11 | import java.util.Optional; | ||
12 | import java.util.Set; | ||
13 | import java.util.function.Consumer; | ||
14 | import java.util.stream.Collectors; | ||
15 | import java.util.stream.Stream; | ||
16 | import org.apache.log4j.Logger; | ||
17 | import org.eclipse.emf.ecore.EClass; | ||
18 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
19 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
20 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
21 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
22 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
25 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
36 | import 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") | ||
53 | public 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 | */ | ||
4 | package ca.mcgill.ecse.dslreasoner.vampire.queries; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.Collection; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Objects; | ||
11 | import java.util.Optional; | ||
12 | import java.util.Set; | ||
13 | import java.util.function.Consumer; | ||
14 | import java.util.stream.Collectors; | ||
15 | import java.util.stream.Stream; | ||
16 | import org.apache.log4j.Logger; | ||
17 | import org.eclipse.emf.ecore.EClass; | ||
18 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
19 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
20 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
21 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
22 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
25 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
36 | import 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") | ||
53 | public 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 | */ | ||
4 | package ca.mcgill.ecse.dslreasoner.vampire.queries; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.Collection; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Objects; | ||
11 | import java.util.Optional; | ||
12 | import java.util.Set; | ||
13 | import java.util.function.Consumer; | ||
14 | import java.util.stream.Collectors; | ||
15 | import java.util.stream.Stream; | ||
16 | import org.apache.log4j.Logger; | ||
17 | import org.eclipse.emf.ecore.EClass; | ||
18 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
19 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
20 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
21 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
22 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
25 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
36 | import 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") | ||
53 | public 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 | */ | ||
4 | package ca.mcgill.ecse.dslreasoner.vampire.queries; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.Collection; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Objects; | ||
11 | import java.util.Optional; | ||
12 | import java.util.Set; | ||
13 | import java.util.function.Consumer; | ||
14 | import java.util.stream.Collectors; | ||
15 | import java.util.stream.Stream; | ||
16 | import org.apache.log4j.Logger; | ||
17 | import org.eclipse.emf.ecore.EClass; | ||
18 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
19 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
20 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
21 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
22 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
25 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
36 | import 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") | ||
53 | public 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 | */ | ||
4 | package ca.mcgill.ecse.dslreasoner.vampire.queries; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.Collection; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Objects; | ||
11 | import java.util.Optional; | ||
12 | import java.util.Set; | ||
13 | import java.util.function.Consumer; | ||
14 | import java.util.stream.Collectors; | ||
15 | import java.util.stream.Stream; | ||
16 | import org.apache.log4j.Logger; | ||
17 | import org.eclipse.emf.ecore.EClass; | ||
18 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
19 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
20 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
21 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
22 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
25 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
36 | import 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") | ||
53 | public 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 | */ | ||
4 | package ca.mcgill.ecse.dslreasoner.vampire.queries; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.Collection; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Objects; | ||
11 | import java.util.Optional; | ||
12 | import java.util.Set; | ||
13 | import java.util.function.Consumer; | ||
14 | import java.util.stream.Collectors; | ||
15 | import java.util.stream.Stream; | ||
16 | import org.apache.log4j.Logger; | ||
17 | import org.eclipse.emf.ecore.EClass; | ||
18 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
19 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
20 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
21 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
22 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
25 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
36 | import 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") | ||
53 | public 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 | */ | ||
4 | package ca.mcgill.ecse.dslreasoner.vampire.queries; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.Collection; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Objects; | ||
11 | import java.util.Optional; | ||
12 | import java.util.Set; | ||
13 | import java.util.function.Consumer; | ||
14 | import java.util.stream.Collectors; | ||
15 | import java.util.stream.Stream; | ||
16 | import org.apache.log4j.Logger; | ||
17 | import org.eclipse.emf.ecore.EClass; | ||
18 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
19 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
20 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
21 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
22 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
25 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
36 | import 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") | ||
53 | public 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 | */ | ||
4 | package ca.mcgill.ecse.dslreasoner.vampire.queries; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.Collection; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Objects; | ||
11 | import java.util.Optional; | ||
12 | import java.util.Set; | ||
13 | import java.util.function.Consumer; | ||
14 | import java.util.stream.Collectors; | ||
15 | import java.util.stream.Stream; | ||
16 | import org.apache.log4j.Logger; | ||
17 | import org.eclipse.emf.ecore.EClass; | ||
18 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
19 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
20 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
21 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
22 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
25 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
36 | import 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") | ||
53 | public 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 | */ | ||
4 | package ca.mcgill.ecse.dslreasoner.vampire.queries; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.Collection; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Objects; | ||
11 | import java.util.Optional; | ||
12 | import java.util.Set; | ||
13 | import java.util.function.Consumer; | ||
14 | import java.util.stream.Collectors; | ||
15 | import java.util.stream.Stream; | ||
16 | import org.apache.log4j.Logger; | ||
17 | import org.eclipse.emf.ecore.EClass; | ||
18 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
19 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
20 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
21 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
22 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
25 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
36 | import 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") | ||
54 | public 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 | */ | ||
4 | package ca.mcgill.ecse.dslreasoner.vampire.queries; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.Collection; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Objects; | ||
11 | import java.util.Optional; | ||
12 | import java.util.Set; | ||
13 | import java.util.function.Consumer; | ||
14 | import java.util.stream.Collectors; | ||
15 | import java.util.stream.Stream; | ||
16 | import org.apache.log4j.Logger; | ||
17 | import org.eclipse.emf.ecore.EClass; | ||
18 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
19 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
20 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
21 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
22 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
25 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
36 | import 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") | ||
53 | public 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 | */ | ||
4 | package ca.mcgill.ecse.dslreasoner.vampire.queries; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.Collection; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Objects; | ||
11 | import java.util.Optional; | ||
12 | import java.util.Set; | ||
13 | import java.util.function.Consumer; | ||
14 | import java.util.stream.Collectors; | ||
15 | import java.util.stream.Stream; | ||
16 | import org.apache.log4j.Logger; | ||
17 | import org.eclipse.emf.ecore.EClass; | ||
18 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
19 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
20 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
21 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
22 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
25 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
36 | import 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") | ||
53 | public 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 | */ | ||
4 | package ca.mcgill.ecse.dslreasoner.vampire.queries; | ||
5 | |||
6 | import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnd; | ||
7 | import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSAnnotation; | ||
8 | import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSComment; | ||
9 | import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSEquivalent; | ||
10 | import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSExistentialQuantifier; | ||
11 | import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFofFormula; | ||
12 | import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunction; | ||
13 | import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSFunctionFof; | ||
14 | import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSInequality; | ||
15 | import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSOr; | ||
16 | import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUnaryNegation; | ||
17 | import ca.mcgill.ecse.dslreasoner.vampire.queries.VLSUniversalQuantifier; | ||
18 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
19 | import 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") | ||
47 | public 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 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction | ||
4 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm | ||
5 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement | ||
6 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type | ||
7 | import java.util.HashMap | ||
8 | import java.util.Map | ||
9 | |||
10 | class 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; | |||
3 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper; | 3 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper; |
4 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapperTrace; | 4 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapperTrace; |
5 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper_Support; | 5 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper_Support; |
6 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd; | ||
7 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSConstant; | 6 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSConstant; |
8 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquality; | 7 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquality; |
9 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSEquivalent; | 8 | import 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 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper_TypeMapperTrace; | ||
4 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction; | ||
5 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; | ||
6 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement; | ||
7 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type; | ||
8 | import java.util.HashMap; | ||
9 | import java.util.Map; | ||
10 | |||
11 | @SuppressWarnings("all") | ||
12 | public 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 | */ | |
29 | pattern rootElements(Model: FunctionalArchitectureModel, Root : Function) = { | 29 | pattern 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) = { | |||
33 | pattern parent(Func : Function, Par : Function) = { | 33 | pattern parent(Func : Function, Par : Function) = { |
34 | Function.parent(Func, Par); | 34 | Function.parent(Func, Par); |
35 | } | 35 | } |
36 | 36 | /* | |
37 | @QueryBasedFeature | 37 | @QueryBasedFeature |
38 | pattern model(This:FunctionalElement, Target: FunctionalArchitectureModel) { | 38 | pattern 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 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries | ||
2 | |||
3 | //import epackage "http://www.inf.mit.bme.hu/viatrasolver/example/fam" | ||
4 | import epackage "FamMetamodel" | ||
5 | |||
6 | @Constraint(message="terminatorAndInformation", severity="error", key={T}) | ||
7 | pattern 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 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.yakindu.queries | ||
2 | |||
3 | import epackage "hu.bme.mit.inf.yakindumm" | ||
4 | |||
5 | ///////// | ||
6 | // Entry | ||
7 | ///////// | ||
8 | |||
9 | pattern entryInRegion(r1 : Region, e1 : Entry) { | ||
10 | Region.vertices(r1, e1); | ||
11 | } | ||
12 | |||
13 | @Constraint(severity="error", message="error", key = {r1}) | ||
14 | pattern noEntryInRegion(r1 : Region) { | ||
15 | neg find entryInRegion(r1, _); | ||
16 | } | ||
17 | |||
18 | @Constraint(severity="error", message="error", key = {r}) | ||
19 | pattern multipleEntryInRegion(r : Region) { | ||
20 | find entryInRegion(r, e1); | ||
21 | find entryInRegion(r, e2); | ||
22 | e1 != e2; | ||
23 | } | ||
24 | |||
25 | pattern 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}) | ||
31 | pattern incomingToEntry(t : Transition, e : Entry) { | ||
32 | find transition(t, _, e); | ||
33 | } | ||
34 | |||
35 | @Constraint(severity="error", message="error", key = {e}) | ||
36 | pattern noOutgoingTransitionFromEntry(e : Entry) { | ||
37 | neg find transition(_, e, _); | ||
38 | } | ||
39 | |||
40 | @Constraint(severity="error", message="error", key = {e}) | ||
41 | pattern 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}) | ||
52 | pattern 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}) | ||
61 | pattern 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}) | ||
70 | pattern noStateInRegion(region: Region) { | ||
71 | neg find StateInRegion(region,_); | ||
72 | } | ||
73 | pattern 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}) | ||
82 | pattern choiceHasNoOutgoing(c : Choice) { | ||
83 | neg find transition(_, c, _); | ||
84 | } | ||
85 | |||
86 | @Constraint(severity="error", message="error", key = {c}) | ||
87 | pattern 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 | |||
165 | pattern child(parent: CompositeElement, child: Vertex) { | ||
166 | CompositeElement.regions.vertices(parent, child); | ||
167 | } | ||
168 | |||
169 | @Constraint(severity="error", message="error", key = {s}) | ||
170 | pattern 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 | |||
181 | pattern 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}) | ||
191 | pattern 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}) | ||
211 | pattern 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/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 | |||
5 | fof ( enumScope_FunctionType_Leaf , axiom , ! [ A ] : ( A = eo3 <=> e_Leaf_FunctionType ( A ) ) ) . | 5 | fof ( enumScope_FunctionType_Leaf , axiom , ! [ A ] : ( A = eo3 <=> e_Leaf_FunctionType ( A ) ) ) . |
6 | fof ( 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 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) . | 6 | fof ( 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 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) . |
7 | fof ( 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 ) ) ) . | 7 | fof ( 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 ) ) ) . |
8 | fof ( 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 ) ) ) ) ) ) ) ) ) ) ) ) . | 8 | fof ( 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 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) . |
9 | fof ( typeScope_min_t_FunctionalInterface , axiom , ! [ A ] : ( ( A = o2 | A = o3 ) => ( t_FunctionalInterface ( A ) & object ( A ) ) ) ) . | 9 | fof ( typeScope_min_t_FunctionalInterface , axiom , ! [ A ] : ( ( A = o2 | A = o3 ) => ( t_FunctionalInterface ( A ) & object ( A ) ) ) ) . |
10 | fof ( typeScope_min_t_Function , axiom , ! [ A ] : ( A = o4 => ( t_Function ( A ) & object ( A ) ) ) ) . | 10 | fof ( typeScope_min_t_Function , axiom , ! [ A ] : ( A = o4 => ( t_Function ( A ) & object ( A ) ) ) ) . |
11 | fof ( typeScope_min_t_FunctionalOutput , axiom , ! [ A ] : ( ( A = o5 | ( A = o6 | A = o7 ) ) => ( t_FunctionalOutput ( A ) & object ( A ) ) ) ) . | 11 | fof ( typeScope_min_t_FunctionalOutput , axiom , ! [ A ] : ( ( A = o5 | ( A = o6 | A = o7 ) ) => ( t_FunctionalOutput ( A ) & object ( A ) ) ) ) . |
12 | fof ( typeScope_max_t_Function , axiom , ! [ A ] : ( ( t_Function ( A ) & object ( A ) ) => ( A = o4 | A = o8 ) ) ) . | 12 | fof ( typeScope_max_t_Function , axiom , ! [ A ] : ( ( t_Function ( A ) & object ( A ) ) => ( A = o4 | ( A = o8 | ( A = o9 | ( A = o10 | A = o11 ) ) ) ) ) ) . |
13 | fof ( typeScope_max_t_FunctionalOutput , axiom , ! [ A ] : ( ( t_FunctionalOutput ( A ) & object ( A ) ) => ( A = o5 | ( A = o6 | ( A = o7 | A = o8 ) ) ) ) ) . | 13 | fof ( typeScope_max_t_FunctionalOutput , axiom , ! [ A ] : ( ( t_FunctionalOutput ( A ) & object ( A ) ) => ( A = o5 | ( A = o6 | ( A = o7 | A = o8 ) ) ) ) ) . |
14 | fof ( 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 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) . | 14 | fof ( 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 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) . |
15 | fof ( compliance_interface_FunctionalElement , axiom , ! [ V_0 , V_1 ] : ( r_interface_FunctionalElement ( V_0 , V_1 ) => ( t_FunctionalElement ( V_0 ) & t_FunctionalInterface ( V_1 ) ) ) ) . | 15 | fof ( compliance_interface_FunctionalElement , axiom , ! [ V_0 , V_1 ] : ( r_interface_FunctionalElement ( V_0 , V_1 ) => ( t_FunctionalElement ( V_0 ) & t_FunctionalInterface ( V_1 ) ) ) ) . |
16 | fof ( compliance_model_FunctionalElement , axiom , ! [ V_0 , V_1 ] : ( r_model_FunctionalElement ( V_0 , V_1 ) => ( t_FunctionalElement ( V_0 ) & t_FunctionalArchitectureModel ( V_1 ) ) ) ) . | 16 | fof ( compliance_model_FunctionalElement , axiom , ! [ V_0 , V_1 ] : ( r_model_FunctionalElement ( V_0 , V_1 ) => ( t_FunctionalElement ( V_0 ) & t_FunctionalArchitectureModel ( V_1 ) ) ) ) . |
17 | fof ( compliance_parent_FunctionalElement , axiom , ! [ V_0 , V_1 ] : ( r_parent_FunctionalElement ( V_0 , V_1 ) => ( t_FunctionalElement ( V_0 ) & t_Function ( V_1 ) ) ) ) . | 17 | fof ( 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 | |||
28 | fof ( compliance_interface_FunctionalData , axiom , ! [ V_0 , V_1 ] : ( r_interface_FunctionalData ( V_0 , V_1 ) => ( t_FunctionalData ( V_0 ) & t_FunctionalInterface ( V_1 ) ) ) ) . | 28 | fof ( compliance_interface_FunctionalData , axiom , ! [ V_0 , V_1 ] : ( r_interface_FunctionalData ( V_0 , V_1 ) => ( t_FunctionalData ( V_0 ) & t_FunctionalInterface ( V_1 ) ) ) ) . |
29 | fof ( compliance_type_Function , axiom , ! [ V_0 , V_1 ] : ( r_type_Function ( V_0 , V_1 ) => ( t_Function ( V_0 ) & t_FunctionType ( V_1 ) ) ) ) . | 29 | fof ( compliance_type_Function , axiom , ! [ V_0 , V_1 ] : ( r_type_Function ( V_0 , V_1 ) => ( t_Function ( V_0 ) & t_FunctionType ( V_1 ) ) ) ) . |
30 | fof ( containment_topLevel_t_FunctionalArchitectureModel , axiom , ! [ A ] : ( t_FunctionalArchitectureModel ( A ) <=> A = o1 ) ) . | 30 | fof ( containment_topLevel_t_FunctionalArchitectureModel , axiom , ! [ A ] : ( t_FunctionalArchitectureModel ( A ) <=> A = o1 ) ) . |
31 | fof ( containment_r_interface_FunctionalElement , axiom , ! [ A ] : ( t_FunctionalInterface ( A ) => ? [ B ] : ( t_FunctionalElement ( B ) & r_interface_FunctionalElement ( B , A ) ) ) ) . | 31 | |
32 | fof ( containment_r_rootElements_FunctionalArchitectureModel , axiom , ! [ A ] : ( t_FunctionalElement ( A ) => ? [ B ] : ( t_FunctionalArchitectureModel ( B ) & r_rootElements_FunctionalArchitectureModel ( B , A ) ) ) ) . | 32 | |
33 | fof ( containment_r_subElements_Function , axiom , ! [ A ] : ( t_FunctionalElement ( A ) => ? [ B ] : ( t_Function ( B ) & r_subElements_Function ( B , A ) ) ) ) . | 33 | fof ( containment_r_interface_FunctionalElement , axiom , ! [ A ] : ( t_FunctionalInterface ( A ) => ? [ B ] : r_interface_FunctionalElement ( B , A ) ) ) . |
34 | fof ( containment_r_data_FunctionalInterface , axiom , ! [ A ] : ( t_FunctionalData ( A ) => ? [ B ] : ( t_FunctionalInterface ( B ) & r_data_FunctionalInterface ( B , A ) ) ) ) . | 34 | fof ( containment_r_rootElements_FunctionalArchitectureModel , axiom , ! [ A ] : ( t_FunctionalElement ( A ) => ? [ B ] : r_rootElements_FunctionalArchitectureModel ( B , A ) ) ) . |
35 | fof ( containment_r_outgoingLinks_FunctionalOutput , axiom , ! [ A ] : ( t_InformationLink ( A ) => ? [ B ] : ( t_FunctionalOutput ( B ) & r_outgoingLinks_FunctionalOutput ( B , A ) ) ) ) . | 35 | fof ( containment_r_subElements_Function , axiom , ! [ A ] : ( t_FunctionalElement ( A ) => ? [ B ] : r_subElements_Function ( B , A ) ) ) . |
36 | fof ( containment_r_terminator_FunctionalData , axiom , ! [ A ] : ( t_FAMTerminator ( A ) => ? [ B ] : ( t_FunctionalData ( B ) & r_terminator_FunctionalData ( B , A ) ) ) ) . | 36 | fof ( containment_r_data_FunctionalInterface , axiom , ! [ A ] : ( t_FunctionalData ( A ) => ? [ B ] : r_data_FunctionalInterface ( B , A ) ) ) . |
37 | fof ( containment_r_outgoingLinks_FunctionalOutput , axiom , ! [ A ] : ( t_InformationLink ( A ) => ? [ B ] : r_outgoingLinks_FunctionalOutput ( B , A ) ) ) . | ||
38 | fof ( containment_r_terminator_FunctionalData , axiom , ! [ A ] : ( t_FAMTerminator ( A ) => ? [ B ] : r_terminator_FunctionalData ( B , A ) ) ) . | ||
39 | |||
40 | |||
37 | fof ( upperMultiplicity_interface_FunctionalElement , axiom , ! [ V_src , V_trg_1 , V_trg_2 ] : ( ( t_FunctionalElement ( V_src ) & ( t_FunctionalInterface ( V_trg_1 ) & t_FunctionalInterface ( V_trg_2 ) ) ) => ( ( r_interface_FunctionalElement ( V_src , V_trg_1 ) & r_interface_FunctionalElement ( V_src , V_trg_2 ) ) => ~ V_trg_1 != V_trg_2 ) ) ) . | 41 | fof ( upperMultiplicity_interface_FunctionalElement , axiom , ! [ V_src , V_trg_1 , V_trg_2 ] : ( ( t_FunctionalElement ( V_src ) & ( t_FunctionalInterface ( V_trg_1 ) & t_FunctionalInterface ( V_trg_2 ) ) ) => ( ( r_interface_FunctionalElement ( V_src , V_trg_1 ) & r_interface_FunctionalElement ( V_src , V_trg_2 ) ) => ~ V_trg_1 != V_trg_2 ) ) ) . |
38 | fof ( lowerMultiplicity_model_FunctionalElement , axiom , ! [ V_src ] : ( t_FunctionalElement ( V_src ) => ? [ V_trg_1 ] : ( t_FunctionalArchitectureModel ( V_trg_1 ) & r_model_FunctionalElement ( V_src , V_trg_1 ) ) ) ) . | 42 | fof ( lowerMultiplicity_model_FunctionalElement , axiom , ! [ V_src ] : ( t_FunctionalElement ( V_src ) => ? [ V_trg_1 ] : ( t_FunctionalArchitectureModel ( V_trg_1 ) & r_model_FunctionalElement ( V_src , V_trg_1 ) ) ) ) . |
39 | fof ( upperMultiplicity_model_FunctionalElement , axiom , ! [ V_src , V_trg_1 , V_trg_2 ] : ( ( t_FunctionalElement ( V_src ) & ( t_FunctionalArchitectureModel ( V_trg_1 ) & t_FunctionalArchitectureModel ( V_trg_2 ) ) ) => ( ( r_model_FunctionalElement ( V_src , V_trg_1 ) & r_model_FunctionalElement ( V_src , V_trg_2 ) ) => ~ V_trg_1 != V_trg_2 ) ) ) . | 43 | fof ( upperMultiplicity_model_FunctionalElement , axiom , ! [ V_src , V_trg_1 , V_trg_2 ] : ( ( t_FunctionalElement ( V_src ) & ( t_FunctionalArchitectureModel ( V_trg_1 ) & t_FunctionalArchitectureModel ( V_trg_2 ) ) ) => ( ( r_model_FunctionalElement ( V_src , V_trg_1 ) & r_model_FunctionalElement ( V_src , V_trg_2 ) ) => ~ V_trg_1 != V_trg_2 ) ) ) . |
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 | ||
2 | fof ( typeDef_oldRPS , axiom , ! [ A ] : ( t_oldRPS ( A ) <=> ( e_Rock_oldRPS ( A ) | ( e_Paper_oldRPS ( A ) | e_Scissor_oldRPS ( A ) ) ) ) ) . | ||
3 | fof ( hierarchyHandler , axiom , ! [ A ] : ( object ( A ) <=> t_oldRPS ( A ) ) ) . | ||
4 | fof ( typeScope , axiom , ! [ A ] : ( object ( A ) <=> ( A = o1 | ( A = o2 | ( A = o3 | A = o4 ) ) ) ) ) . | ||
5 | fof ( typeUniqueness , axiom , o1 != o2 & ( o1 != o3 & ( o2 != o3 & ( o1 != o4 & ( o2 != o4 & o3 != o4 ) ) ) ) ) . | ||
6 | fof ( compliance_beats2 , axiom , ! [ Var_0 , Var_1 ] : ( rel_beats2 ( Var_0 , Var_1 ) => ( t_oldRPS ( Var_0 ) & t_oldRPS ( Var_1 ) ) ) ) . | ||
7 | fof ( 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 | |||
4 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration | 4 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration |
5 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory | 5 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory |
6 | import functionalarchitecture.Function | 6 | import functionalarchitecture.Function |
7 | import functionalarchitecture.FunctionalInterface | ||
8 | import functionalarchitecture.FunctionalOutput | ||
7 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic | 9 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic |
8 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration | 10 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration |
9 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace | ||
10 | import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor | 11 | import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor |
11 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel | ||
12 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner | 12 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner |
13 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type | 13 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type |
14 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult | 14 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult |
@@ -30,8 +30,7 @@ import org.eclipse.emf.ecore.EReference | |||
30 | import org.eclipse.emf.ecore.resource.Resource | 30 | import org.eclipse.emf.ecore.resource.Resource |
31 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl | 31 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl |
32 | import org.eclipse.viatra.query.runtime.api.IQueryGroup | 32 | import org.eclipse.viatra.query.runtime.api.IQueryGroup |
33 | import org.eclipse.emf.ecore.EClassifier | 33 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel |
34 | import functionalarchitecture.FunctionalOutput | ||
35 | 34 | ||
36 | class GeneralTest { | 35 | class 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 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.icse | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.vampire.queries.Patterns | ||
4 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage | ||
5 | import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolver | ||
6 | import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolverConfiguration | ||
7 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic | ||
8 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration | ||
9 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel | ||
10 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.IntStatisticEntry | ||
11 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult | ||
12 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.StringStatisticEntry | ||
13 | import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore | ||
14 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic | ||
15 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicConfiguration | ||
16 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic | ||
17 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace | ||
18 | import java.io.PrintWriter | ||
19 | import java.text.SimpleDateFormat | ||
20 | import java.util.Date | ||
21 | import org.eclipse.emf.ecore.resource.Resource | ||
22 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl | ||
23 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.impl.ModelResultImpl | ||
24 | |||
25 | class 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 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.icse | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.vampire.queries.Patterns | ||
4 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage | ||
5 | import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolver | ||
6 | import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolverConfiguration | ||
7 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic | ||
8 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration | ||
9 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel | ||
10 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.IntStatisticEntry | ||
11 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult | ||
12 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.StringStatisticEntry | ||
13 | import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore | ||
14 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic | ||
15 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicConfiguration | ||
16 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic | ||
17 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace | ||
18 | import java.io.PrintWriter | ||
19 | import java.text.SimpleDateFormat | ||
20 | import java.util.Date | ||
21 | import org.eclipse.emf.ecore.resource.Resource | ||
22 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl | ||
23 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.impl.ModelResultImpl | ||
24 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasoner | ||
25 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasonerConfiguration | ||
26 | |||
27 | class 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 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.icse | ||
2 | |||
3 | import java.io.BufferedReader | ||
4 | import java.io.FileInputStream | ||
5 | import java.io.InputStream | ||
6 | import java.io.InputStreamReader | ||
7 | |||
8 | class 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 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.test | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver | ||
4 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration | ||
5 | import functionalarchitecture.FunctionalarchitecturePackage | ||
6 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic | ||
7 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration | ||
8 | import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor | ||
9 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner | ||
10 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult | ||
11 | import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore | ||
12 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic | ||
13 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic | ||
14 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace | ||
15 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace | ||
16 | import java.util.List | ||
17 | import org.eclipse.emf.ecore.EAttribute | ||
18 | import org.eclipse.emf.ecore.EClass | ||
19 | import org.eclipse.emf.ecore.EEnum | ||
20 | import org.eclipse.emf.ecore.EEnumLiteral | ||
21 | import org.eclipse.emf.ecore.EObject | ||
22 | import org.eclipse.emf.ecore.EReference | ||
23 | import org.eclipse.emf.ecore.resource.Resource | ||
24 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl | ||
25 | |||
26 | class 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 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.queries | ||
2 | |||
3 | import epackage | ||
4 | |||
5 | ///////// | ||
6 | // Entry | ||
7 | ///////// | ||
8 | |||
9 | pattern entryInRegion(r1 : Region, e1 : Entry) { | ||
10 | Region.vertices(r1, e1); | ||
11 | } | ||
12 | |||
13 | @Constraint(severity="error", message="error", key = {r1}) | ||
14 | pattern noEntryInRegion(r1 : Region) { | ||
15 | neg find entryInRegion(r1, _); | ||
16 | } | ||
17 | |||
18 | @Constraint(severity="error", message="error", key = {r}) | ||
19 | pattern multipleEntryInRegion(r : Region) { | ||
20 | find entryInRegion(r, e1); | ||
21 | find entryInRegion(r, e2); | ||
22 | e1 != e2; | ||
23 | } | ||
24 | |||
25 | pattern 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}) | ||
31 | pattern incomingToEntry(t : Transition, e : Entry) { | ||
32 | find transition(t, _, e); | ||
33 | } | ||
34 | |||
35 | @Constraint(severity="error", message="error", key = {e}) | ||
36 | pattern noOutgoingTransitionFromEntry(e : Entry) { | ||
37 | neg find transition(_, e, _); | ||
38 | } | ||
39 | |||
40 | @Constraint(severity="error", message="error", key = {e}) | ||
41 | pattern 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}) | ||
52 | pattern 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}) | ||
61 | pattern 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}) | ||
70 | pattern noStateInRegion(region: Region) { | ||
71 | neg find StateInRegion(region,_); | ||
72 | } | ||
73 | pattern 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}) | ||
82 | pattern choiceHasNoOutgoing(c : Choice) { | ||
83 | neg find transition(_, c, _); | ||
84 | } | ||
85 | |||
86 | @Constraint(severity="error", message="error", key = {c}) | ||
87 | pattern 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 | |||
165 | pattern child(parent: CompositeElement, child: Vertex) { | ||
166 | CompositeElement.regions.vertices(parent, child); | ||
167 | } | ||
168 | |||
169 | @Constraint(severity="error", message="error", key = {s}) | ||
170 | pattern 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 | |||
181 | pattern 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}) | ||
191 | pattern 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}) | ||
211 | pattern 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 | */ | ||
3 | package 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 | */ | ||
16 | public 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 | */ | ||
3 | package ca.mcgill.ecse.dslreasoner.vampire.yakindumm; | ||
4 | |||
5 | import org.eclipse.emf.common.util.EList; | ||
6 | |||
7 | import 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 | */ | ||
25 | public 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 | */ | ||
3 | package 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 | */ | ||
22 | public 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 | */ | ||
3 | package ca.mcgill.ecse.dslreasoner.vampire.yakindumm; | ||
4 | |||
5 | import java.util.Arrays; | ||
6 | import java.util.Collections; | ||
7 | import java.util.List; | ||
8 | |||
9 | import 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 | */ | ||
20 | public 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 | */ | ||
3 | package 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 | */ | ||
16 | public 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 | */ | ||
3 | package 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 | */ | ||
16 | public 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 | */ | ||
3 | package 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 | */ | ||
16 | public 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 | */ | ||
3 | package ca.mcgill.ecse.dslreasoner.vampire.yakindumm; | ||
4 | |||
5 | import org.eclipse.emf.common.util.EList; | ||
6 | |||
7 | import 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 | */ | ||
25 | public 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 | */ | ||
3 | package 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 | */ | ||
16 | public 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 | */ | ||
3 | package 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 | */ | ||
16 | public 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 | */ | ||
3 | package 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 | */ | ||
16 | public 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 | */ | ||
3 | package ca.mcgill.ecse.dslreasoner.vampire.yakindumm; | ||
4 | |||
5 | import 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 | */ | ||
24 | public 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 | */ | ||
3 | package ca.mcgill.ecse.dslreasoner.vampire.yakindumm; | ||
4 | |||
5 | import org.eclipse.emf.common.util.EList; | ||
6 | |||
7 | import 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 | */ | ||
26 | public 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 | */ | ||
3 | package ca.mcgill.ecse.dslreasoner.vampire.yakindumm; | ||
4 | |||
5 | import 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 | */ | ||
15 | public 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 | */ | ||
3 | package ca.mcgill.ecse.dslreasoner.vampire.yakindumm; | ||
4 | |||
5 | import org.eclipse.emf.ecore.EAttribute; | ||
6 | import org.eclipse.emf.ecore.EClass; | ||
7 | import org.eclipse.emf.ecore.EEnum; | ||
8 | import org.eclipse.emf.ecore.EPackage; | ||
9 | import 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 | */ | ||
27 | public 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 | */ | ||
3 | package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl; | ||
4 | |||
5 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Choice; | ||
6 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage; | ||
7 | |||
8 | import 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 | */ | ||
17 | public 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 | */ | ||
3 | package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl; | ||
4 | |||
5 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.CompositeElement; | ||
6 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Region; | ||
7 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage; | ||
8 | |||
9 | import java.util.Collection; | ||
10 | |||
11 | import org.eclipse.emf.common.notify.NotificationChain; | ||
12 | |||
13 | import org.eclipse.emf.common.util.EList; | ||
14 | |||
15 | import org.eclipse.emf.ecore.EClass; | ||
16 | import org.eclipse.emf.ecore.InternalEObject; | ||
17 | |||
18 | import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; | ||
19 | |||
20 | import org.eclipse.emf.ecore.util.EObjectContainmentEList; | ||
21 | import 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 | */ | ||
36 | public 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 | */ | ||
3 | package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl; | ||
4 | |||
5 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Entry; | ||
6 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.EntryType; | ||
7 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage; | ||
8 | |||
9 | import org.eclipse.emf.common.notify.Notification; | ||
10 | |||
11 | import org.eclipse.emf.ecore.EClass; | ||
12 | |||
13 | import 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 | */ | ||
28 | public 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 | */ | ||
3 | package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl; | ||
4 | |||
5 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Exit; | ||
6 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage; | ||
7 | |||
8 | import 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 | */ | ||
17 | public 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 | */ | ||
3 | package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl; | ||
4 | |||
5 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.FinalState; | ||
6 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage; | ||
7 | |||
8 | import 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 | */ | ||
17 | public 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 | */ | ||
3 | package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl; | ||
4 | |||
5 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Pseudostate; | ||
6 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage; | ||
7 | |||
8 | import 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 | */ | ||
17 | public 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 | */ | ||
3 | package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl; | ||
4 | |||
5 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Region; | ||
6 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Vertex; | ||
7 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage; | ||
8 | |||
9 | import java.util.Collection; | ||
10 | |||
11 | import org.eclipse.emf.common.notify.NotificationChain; | ||
12 | |||
13 | import org.eclipse.emf.common.util.EList; | ||
14 | |||
15 | import org.eclipse.emf.ecore.EClass; | ||
16 | import org.eclipse.emf.ecore.InternalEObject; | ||
17 | |||
18 | import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; | ||
19 | |||
20 | import org.eclipse.emf.ecore.util.EObjectContainmentEList; | ||
21 | import 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 | */ | ||
36 | public 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 | */ | ||
3 | package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl; | ||
4 | |||
5 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.RegularState; | ||
6 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage; | ||
7 | |||
8 | import 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 | */ | ||
17 | public 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 | */ | ||
3 | package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl; | ||
4 | |||
5 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.CompositeElement; | ||
6 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Region; | ||
7 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.State; | ||
8 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage; | ||
9 | |||
10 | import java.util.Collection; | ||
11 | |||
12 | import org.eclipse.emf.common.notify.NotificationChain; | ||
13 | |||
14 | import org.eclipse.emf.common.util.EList; | ||
15 | |||
16 | import org.eclipse.emf.ecore.EClass; | ||
17 | import org.eclipse.emf.ecore.InternalEObject; | ||
18 | |||
19 | import org.eclipse.emf.ecore.util.EObjectContainmentEList; | ||
20 | import 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 | */ | ||
35 | public 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 | */ | ||
3 | package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl; | ||
4 | |||
5 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Statechart; | ||
6 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage; | ||
7 | |||
8 | import 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 | */ | ||
17 | public 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 | */ | ||
3 | package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl; | ||
4 | |||
5 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Transition; | ||
6 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Vertex; | ||
7 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage; | ||
8 | |||
9 | import org.eclipse.emf.common.notify.Notification; | ||
10 | import org.eclipse.emf.common.notify.NotificationChain; | ||
11 | |||
12 | import org.eclipse.emf.ecore.EClass; | ||
13 | import org.eclipse.emf.ecore.InternalEObject; | ||
14 | |||
15 | import org.eclipse.emf.ecore.impl.ENotificationImpl; | ||
16 | import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; | ||
17 | |||
18 | import 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 | */ | ||
34 | public 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 | */ | ||
3 | package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl; | ||
4 | |||
5 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Transition; | ||
6 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Vertex; | ||
7 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage; | ||
8 | |||
9 | import java.util.Collection; | ||
10 | |||
11 | import org.eclipse.emf.common.notify.NotificationChain; | ||
12 | |||
13 | import org.eclipse.emf.common.util.EList; | ||
14 | |||
15 | import org.eclipse.emf.ecore.EClass; | ||
16 | import org.eclipse.emf.ecore.InternalEObject; | ||
17 | |||
18 | import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; | ||
19 | |||
20 | import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; | ||
21 | import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; | ||
22 | import 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 | */ | ||
38 | public 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 | */ | ||
3 | package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl; | ||
4 | |||
5 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.*; | ||
6 | |||
7 | import org.eclipse.emf.ecore.EClass; | ||
8 | import org.eclipse.emf.ecore.EDataType; | ||
9 | import org.eclipse.emf.ecore.EObject; | ||
10 | import org.eclipse.emf.ecore.EPackage; | ||
11 | |||
12 | import org.eclipse.emf.ecore.impl.EFactoryImpl; | ||
13 | |||
14 | import 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 | */ | ||
22 | public 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 | */ | ||
3 | package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl; | ||
4 | |||
5 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Choice; | ||
6 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.CompositeElement; | ||
7 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Entry; | ||
8 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.EntryType; | ||
9 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Exit; | ||
10 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.FinalState; | ||
11 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Pseudostate; | ||
12 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Region; | ||
13 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.RegularState; | ||
14 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.State; | ||
15 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Statechart; | ||
16 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Transition; | ||
17 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.Vertex; | ||
18 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummFactory; | ||
19 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage; | ||
20 | |||
21 | import org.eclipse.emf.ecore.EAttribute; | ||
22 | import org.eclipse.emf.ecore.EClass; | ||
23 | import org.eclipse.emf.ecore.EEnum; | ||
24 | import org.eclipse.emf.ecore.EPackage; | ||
25 | import org.eclipse.emf.ecore.EReference; | ||
26 | |||
27 | import 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 | */ | ||
35 | public 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 | */ | ||
3 | package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.util; | ||
4 | |||
5 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.*; | ||
6 | |||
7 | import org.eclipse.emf.common.notify.Adapter; | ||
8 | import org.eclipse.emf.common.notify.Notifier; | ||
9 | |||
10 | import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; | ||
11 | |||
12 | import 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 | */ | ||
22 | public 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 | */ | ||
3 | package ca.mcgill.ecse.dslreasoner.vampire.yakindumm.util; | ||
4 | |||
5 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.*; | ||
6 | |||
7 | import org.eclipse.emf.ecore.EObject; | ||
8 | import org.eclipse.emf.ecore.EPackage; | ||
9 | |||
10 | import 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 | */ | ||
25 | public 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 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.test; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver; | ||
4 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; | ||
5 | import com.google.common.collect.Iterables; | ||
6 | import functionalarchitecture.FunctionalarchitecturePackage; | ||
7 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic; | ||
8 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration; | ||
9 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace; | ||
10 | import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor; | ||
11 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner; | ||
12 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput; | ||
13 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; | ||
14 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; | ||
15 | import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore; | ||
16 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic; | ||
17 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic; | ||
18 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; | ||
19 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace; | ||
20 | import java.util.Collections; | ||
21 | import java.util.List; | ||
22 | import java.util.Map; | ||
23 | import org.eclipse.emf.common.util.EList; | ||
24 | import org.eclipse.emf.ecore.EAttribute; | ||
25 | import org.eclipse.emf.ecore.EClass; | ||
26 | import org.eclipse.emf.ecore.EEnum; | ||
27 | import org.eclipse.emf.ecore.EEnumLiteral; | ||
28 | import org.eclipse.emf.ecore.EObject; | ||
29 | import org.eclipse.emf.ecore.EReference; | ||
30 | import org.eclipse.emf.ecore.resource.Resource; | ||
31 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; | ||
32 | import org.eclipse.xtend2.lib.StringConcatenation; | ||
33 | import org.eclipse.xtext.xbase.lib.CollectionLiterals; | ||
34 | import org.eclipse.xtext.xbase.lib.Exceptions; | ||
35 | import org.eclipse.xtext.xbase.lib.Functions.Function1; | ||
36 | import org.eclipse.xtext.xbase.lib.InputOutput; | ||
37 | import org.eclipse.xtext.xbase.lib.IterableExtensions; | ||
38 | import org.eclipse.xtext.xbase.lib.IteratorExtensions; | ||
39 | import org.eclipse.xtext.xbase.lib.ListExtensions; | ||
40 | import org.eclipse.xtext.xbase.lib.ObjectExtensions; | ||
41 | import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; | ||
42 | |||
43 | @SuppressWarnings("all") | ||
44 | public 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 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.yakindu.test | ||
2 | |||
3 | import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.YakindummPackage | ||
4 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic | ||
5 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration | ||
6 | import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor | ||
7 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder | ||
8 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder | ||
9 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult | ||
10 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult | ||
11 | import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore | ||
12 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic | ||
13 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic | ||
14 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation | ||
15 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretation2Gml | ||
16 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasoner | ||
17 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasonerConfiguration | ||
18 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace | ||
19 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace | ||
20 | import java.util.LinkedList | ||
21 | import java.util.List | ||
22 | import org.eclipse.emf.ecore.EAttribute | ||
23 | import org.eclipse.emf.ecore.EClass | ||
24 | import org.eclipse.emf.ecore.EEnum | ||
25 | import org.eclipse.emf.ecore.EEnumLiteral | ||
26 | import org.eclipse.emf.ecore.EObject | ||
27 | import org.eclipse.emf.ecore.EPackage | ||
28 | import org.eclipse.emf.ecore.EReference | ||
29 | import org.eclipse.emf.ecore.resource.Resource | ||
30 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl | ||
31 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.SolutionScope | ||
32 | |||
33 | class 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 | |||
151 | def 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 @@ | |||
1 | Manifest-Version: 1.0 | 1 | Manifest-Version: 1.0 |
2 | Bundle-ManifestVersion: 2 | 2 | Bundle-ManifestVersion: 2 |
3 | Bundle-Name: FAMTest | 3 | Bundle-Name: FAMTest |
4 | Bundle-SymbolicName: hu.bme.mit.inf.dslreasoner.application.FAMTest;singleton:=true | 4 | Bundle-SymbolicName: hu.bme.mit.inf.dslreasoner.application.FAMTest;singleton:=true |
5 | Bundle-Version: 1.0.0.qualifier | 5 | Bundle-Version: 1.0.0.qualifier |
6 | Automatic-Module-Name: hu.bme.mit.inf.dslreasoner.application.FAMTest | 6 | Require-Bundle: com.google.guava, |
7 | Bundle-RequiredExecutionEnvironment: JavaSE-1.8 | 7 | org.eclipse.xtext.xbase.lib, |
8 | Require-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", | 13 | Automatic-Module-Name: hu.bme.mit.inf.dslreasoner.application.FAMTest |
14 | org.eclipse.collections;bundle-version="7.1.1" | 14 | Bundle-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 @@ | |||
1 | source.. = src/ | ||
2 | output.. = bin/ | ||
3 | bin.includes = META-INF/,\ | 1 | bin.includes = META-INF/,\ |
4 | . | 2 | . |
3 | source.. = src/,\ | ||
4 | src-gen/ | ||
5 | output.. = bin/ | ||