aboutsummaryrefslogtreecommitdiffstats
path: root/Domains/Examples
diff options
context:
space:
mode:
authorLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-09-11 15:34:03 -0400
committerLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-09-11 15:34:03 -0400
commitce5aafc07151275363735013c261cacf3d7b6431 (patch)
tree96e13919940dba3d2cb5b81000579a5613615a73 /Domains/Examples
parentVAMPIRE: Implement wf constraint handling (diff)
downloadVIATRA-Generator-ce5aafc07151275363735013c261cacf3d7b6431.tar.gz
VIATRA-Generator-ce5aafc07151275363735013c261cacf3d7b6431.tar.zst
VIATRA-Generator-ce5aafc07151275363735013c261cacf3d7b6431.zip
VAMPIRE: fix model generation
Diffstat (limited to 'Domains/Examples')
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/model/FamMetamodel.ecore12
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/plugin.xml10
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/src/hu/bme/mit/inf/dslreasoner/domains/transima/fam/FamPatterns.vql57
3 files changed, 48 insertions, 31 deletions
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/model/FamMetamodel.ecore b/Domains/Examples/ModelGenExampleFAM_plugin/model/FamMetamodel.ecore
index 81b2078f..d8331ba8 100644
--- a/Domains/Examples/ModelGenExampleFAM_plugin/model/FamMetamodel.ecore
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/model/FamMetamodel.ecore
@@ -9,7 +9,11 @@
9 <eStructuralFeatures xsi:type="ecore:EReference" name="interface" eType="#//FunctionalInterface" 9 <eStructuralFeatures xsi:type="ecore:EReference" name="interface" eType="#//FunctionalInterface"
10 containment="true" eOpposite="#//FunctionalInterface/element"/> 10 containment="true" eOpposite="#//FunctionalInterface/element"/>
11 <eStructuralFeatures xsi:type="ecore:EReference" name="model" lowerBound="1" eType="#//FunctionalArchitectureModel" 11 <eStructuralFeatures xsi:type="ecore:EReference" name="model" lowerBound="1" eType="#//FunctionalArchitectureModel"
12 volatile="true" transient="true" derived="true"/> 12 volatile="true" transient="true" derived="true">
13 <eAnnotations source="org.eclipse.viatra.query.querybasedfeature">
14 <details key="patternFQN" value="hu.bme.mit.inf.dslreasoner.domains.transima.fam.model"/>
15 </eAnnotations>
16 </eStructuralFeatures>
13 <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//Function" 17 <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//Function"
14 eOpposite="#//Function/subElements"/> 18 eOpposite="#//Function/subElements"/>
15 </eClassifiers> 19 </eClassifiers>
@@ -21,7 +25,11 @@
21 <eStructuralFeatures xsi:type="ecore:EReference" name="subElements" upperBound="-1" 25 <eStructuralFeatures xsi:type="ecore:EReference" name="subElements" upperBound="-1"
22 eType="#//FunctionalElement" containment="true" eOpposite="#//FunctionalElement/parent"/> 26 eType="#//FunctionalElement" containment="true" eOpposite="#//FunctionalElement/parent"/>
23 <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" lowerBound="1" eType="#//FunctionType" 27 <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" lowerBound="1" eType="#//FunctionType"
24 changeable="false" volatile="true" transient="true" derived="true"/> 28 changeable="false" volatile="true" transient="true" derived="true">
29 <eAnnotations source="org.eclipse.viatra.query.querybasedfeature">
30 <details key="patternFQN" value="hu.bme.mit.inf.dslreasoner.domains.transima.fam.type"/>
31 </eAnnotations>
32 </eStructuralFeatures>
25 </eClassifiers> 33 </eClassifiers>
26 <eClassifiers xsi:type="ecore:EClass" name="FAMTerminator"> 34 <eClassifiers xsi:type="ecore:EClass" name="FAMTerminator">
27 <eStructuralFeatures xsi:type="ecore:EReference" name="data" eType="#//FunctionalData" 35 <eStructuralFeatures xsi:type="ecore:EReference" name="data" eType="#//FunctionalData"
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/plugin.xml b/Domains/Examples/ModelGenExampleFAM_plugin/plugin.xml
index b8de244d..d6f22c95 100644
--- a/Domains/Examples/ModelGenExampleFAM_plugin/plugin.xml
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/plugin.xml
@@ -3,9 +3,19 @@
3 <!-- @generated FamMetamodel --> 3 <!-- @generated FamMetamodel -->
4 <package class="functionalarchitecture.FunctionalarchitecturePackage" genModel="model/FamMetamodel.genmodel" uri="http://www.inf.mit.bme.hu/viatrasolver/example/fam"/> 4 <package class="functionalarchitecture.FunctionalarchitecturePackage" genModel="model/FamMetamodel.genmodel" uri="http://www.inf.mit.bme.hu/viatrasolver/example/fam"/>
5 </extension> 5 </extension>
6 <extension id="extension.derived.hu.bme.mit.inf.dslreasoner.domains.transima.fam.model" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features">
7 <wellbehaving-derived-feature classifier-name="FunctionalElement" feature-name="model" package-nsUri="http://www.inf.mit.bme.hu/viatrasolver/example/fam"/>
8 </extension>
9 <extension id="extension.derived.hu.bme.mit.inf.dslreasoner.domains.transima.fam.type" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features">
10 <wellbehaving-derived-feature classifier-name="Function" feature-name="type" package-nsUri="http://www.inf.mit.bme.hu/viatrasolver/example/fam"/>
11 </extension>
6 <extension id="hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> 12 <extension id="hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns" point="org.eclipse.viatra.query.runtime.queryspecification">
7 <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns" id="hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns"> 13 <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns" id="hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns">
8 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.terminatorAndInformation"/> 14 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.terminatorAndInformation"/>
15 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.type"/>
16 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.rootElements"/>
17 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.parent"/>
18 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.transima.fam.model"/>
9 </group> 19 </group>
10 </extension> 20 </extension>
11</plugin> 21</plugin>
diff --git a/Domains/Examples/ModelGenExampleFAM_plugin/src/hu/bme/mit/inf/dslreasoner/domains/transima/fam/FamPatterns.vql b/Domains/Examples/ModelGenExampleFAM_plugin/src/hu/bme/mit/inf/dslreasoner/domains/transima/fam/FamPatterns.vql
index 15f70963..24348eb0 100644
--- a/Domains/Examples/ModelGenExampleFAM_plugin/src/hu/bme/mit/inf/dslreasoner/domains/transima/fam/FamPatterns.vql
+++ b/Domains/Examples/ModelGenExampleFAM_plugin/src/hu/bme/mit/inf/dslreasoner/domains/transima/fam/FamPatterns.vql
@@ -11,35 +11,34 @@ pattern terminatorAndInformation(T : FAMTerminator, I : InformationLink) = {
11 FunctionalInput.terminator(In,T); 11 FunctionalInput.terminator(In,T);
12} 12}
13 13
14//@QueryBasedFeature 14@QueryBasedFeature
15//pattern type(This : Function, Target : FunctionType) = { 15pattern type(This : Function, Target : FunctionType) = {
16// find rootElements(_Model, This); 16 find rootElements(_Model, This);
17// Target == FunctionType::Root; 17 Target == FunctionType::Root;
18//} or { 18} or {
19// neg find parent(_Child, This); 19 neg find parent(_Child, This);
20// neg find rootElements(_Model, This); 20 neg find rootElements(_Model, This);
21// Target == FunctionType::Leaf; 21 Target == FunctionType::Leaf;
22//} or { 22} or {
23// find parent(This, _Par); 23 find parent(This, _Par);
24// find parent(_Child, This); 24 find parent(_Child, This);
25// Target == FunctionType::Intermediate; 25 Target == FunctionType::Intermediate;
26//} 26}
27// 27
28////@Constraint 28pattern rootElements(Model: FunctionalArchitectureModel, Root : Function) = {
29//pattern rootElements(Model: FunctionalArchitectureModel, Root : Function) = { 29 FunctionalArchitectureModel.rootElements(Model, Root);
30// FunctionalArchitectureModel.rootElements(Model, Root); 30}
31//} 31
32// 32pattern parent(Func : Function, Par : Function) = {
33//pattern parent(Func : Function, Par : Function) = { 33 Function.parent(Func, Par);
34// Function.parent(Func, Par); 34}
35//} 35
36// 36@QueryBasedFeature
37//@QueryBasedFeature 37pattern model(This:FunctionalElement, Target: FunctionalArchitectureModel) {
38//pattern model(This:FunctionalElement, Target: FunctionalArchitectureModel) { 38 FunctionalElement(This);
39// FunctionalElement(This); 39 FunctionalArchitectureModel(Target);
40// FunctionalArchitectureModel(Target); 40}
41//} 41
42//
43//pattern hasRoot(F : Function) { 42//pattern hasRoot(F : Function) {
44// find rootElements(_Model, F); 43// find rootElements(_Model, F);
45//} 44//}