diff options
Diffstat (limited to 'Domains/Examples')
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) = { | 15 | pattern 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 | 28 | pattern 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 | // | 32 | pattern 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 | 37 | pattern 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 | //} |