aboutsummaryrefslogtreecommitdiffstats
path: root/Domains
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kris7topher@gmail.com>2019-08-14 18:26:33 +0200
committerLibravatar Kristóf Marussy <kris7topher@gmail.com>2019-08-14 18:26:33 +0200
commitfc84d3fe670331bc89fb1e4c44104bc1fc811438 (patch)
tree466da8333151c51d2e17075600f9452ed35835da /Domains
parentBe more lenient with rounding IP solver results (diff)
downloadVIATRA-Generator-fc84d3fe670331bc89fb1e4c44104bc1fc811438.tar.gz
VIATRA-Generator-fc84d3fe670331bc89fb1e4c44104bc1fc811438.tar.zst
VIATRA-Generator-fc84d3fe670331bc89fb1e4c44104bc1fc811438.zip
Measurements WIP
Diffstat (limited to 'Domains')
-rw-r--r--Domains/Examples/ModelGenExampleFAM_plugin/src/hu/bme/mit/inf/dslreasoner/domains/transima/fam/FamPatterns.vql2
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/dse/RuleBasedCpsSolver.xtend6
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.classpath7
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.project1
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.settings/org.eclipse.core.resources.prefs3
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/META-INF/MANIFEST.MF16
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/configs/generation.vsconfig2
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CommSubsystem.java20
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/ConstellationMission.java2
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/InterferometryMission.java28
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SatellitePackage.java88
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CommSubsystemImpl.java115
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/InterferometryMissionImpl.java130
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SatellitePackageImpl.java37
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/inputs/SatelliteInstance.xmi9
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore12
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.genmodel5
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.henshin61
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.henshin_diagram131
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite_fixup.henshin61
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/plugin.xml1
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/representations.aird2
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/CostObjective.xtend13
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/LocalSearchEngineManager.xtend31
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/MetricBasedGuidanceFunction.xtend47
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/PatternMatchConstraint.xtend29
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/SatelliteMdeOptimiserMain.xtend51
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/satellite.mopt36
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql11
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/META-INF/MANIFEST.MF3
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/plugin.xml74
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/queries/hu/bme/mit/inf/dslreasoner/partialsnapshot_mavo/yakindu/mutated/mutated.vql270
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/queries/hu/bme/mit/inf/dslreasoner/partialsnapshot_mavo/yakindu/patterns.vql64
33 files changed, 90 insertions, 1278 deletions
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 f0e48d42..1d9a6b6d 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
@@ -10,7 +10,7 @@ pattern terminatorAndInformation(T : FAMTerminator, I : InformationLink) = {
10 InformationLink.to(I,In); 10 InformationLink.to(I,In);
11 FunctionalInput.terminator(In,T); 11 FunctionalInput.terminator(In,T);
12} 12}
13 13/*
14@QueryBasedFeature 14@QueryBasedFeature
15pattern type(This : Function, Target : FunctionType) = { 15pattern type(This : Function, Target : FunctionType) = {
16 find rootElements(_Model, This); 16 find rootElements(_Model, This);
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/dse/RuleBasedCpsSolver.xtend b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/dse/RuleBasedCpsSolver.xtend
index e4c758f0..503c06ea 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/dse/RuleBasedCpsSolver.xtend
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/dse/RuleBasedCpsSolver.xtend
@@ -35,18 +35,18 @@ class RuleBasedCpsSolver {
35 val dse = new DesignSpaceExplorer 35 val dse = new DesignSpaceExplorer
36 dse.addMetaModelPackage(CpsPackage.eINSTANCE) 36 dse.addMetaModelPackage(CpsPackage.eINSTANCE)
37 dse.initialModel = problem.eResource.resourceSet 37 dse.initialModel = problem.eResource.resourceSet
38 dse.addTransformationRule(createRule(RequirementNotSatisfied.instance).action [ 38 dse.addTransformationRule(createRule.precondition(RequirementNotSatisfied.instance).action [
39 val app = createApplicationInstance 39 val app = createApplicationInstance
40 req.type.instances += app 40 req.type.instances += app
41 req.instances += app 41 req.instances += app
42 ].build) 42 ].build)
43 dse.addTransformationRule(createRule(Allocate.instance).action [ 43 dse.addTransformationRule(createRule.precondition(Allocate.instance).action [
44 app.allocatedTo = host 44 app.allocatedTo = host
45 ].build) 45 ].build)
46// dse.addTransformationRule(createRule(UnallocateAppInstance.instance).action [ 46// dse.addTransformationRule(createRule(UnallocateAppInstance.instance).action [
47// app.allocatedTo = null 47// app.allocatedTo = null
48// ].build) 48// ].build)
49 dse.addTransformationRule(createRule(CreateHostInstance.instance).action [ 49 dse.addTransformationRule(createRule.precondition(CreateHostInstance.instance).action [
50 hostType.instances += createHostInstance 50 hostType.instances += createHostInstance
51 ].build) 51 ].build)
52// dse.addTransformationRule(createRule(RemoveHostInstance.instance).action [ 52// dse.addTransformationRule(createRule(RemoveHostInstance.instance).action [
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.classpath b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.classpath
index e5e58475..6781ea8f 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.classpath
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.classpath
@@ -3,9 +3,12 @@
3 <classpathentry kind="src" path="ecore-gen"/> 3 <classpathentry kind="src" path="ecore-gen"/>
4 <classpathentry kind="src" path="src"/> 4 <classpathentry kind="src" path="src"/>
5 <classpathentry kind="src" path="xtend-gen"/> 5 <classpathentry kind="src" path="xtend-gen"/>
6 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/> 6 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
7 <attributes>
8 <attribute name="module" value="true"/>
9 </attributes>
10 </classpathentry>
7 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> 11 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
8 <classpathentry kind="src" path="src-gen"/> 12 <classpathentry kind="src" path="src-gen"/>
9 <classpathentry kind="con" path="uk.ac.kcl.inf.mdeoptimiser.languages.ui.Mopt.MDEO_CONTAINER/dsl"/>
10 <classpathentry kind="output" path="bin"/> 13 <classpathentry kind="output" path="bin"/>
11</classpath> 14</classpath>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.project b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.project
index 16db5fc5..e594a173 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.project
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.project
@@ -32,6 +32,7 @@
32 </buildCommand> 32 </buildCommand>
33 </buildSpec> 33 </buildSpec>
34 <natures> 34 <natures>
35 <nature>org.eclipse.sirius.nature.modelingproject</nature>
35 <nature>org.eclipse.jdt.core.javanature</nature> 36 <nature>org.eclipse.jdt.core.javanature</nature>
36 <nature>org.eclipse.pde.PluginNature</nature> 37 <nature>org.eclipse.pde.PluginNature</nature>
37 <nature>org.eclipse.viatra.query.projectnature</nature> 38 <nature>org.eclipse.viatra.query.projectnature</nature>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.settings/org.eclipse.core.resources.prefs b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 4a3e59e4..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
1eclipse.preferences.version=1
2encoding//model/satellite.henshin=UTF-8
3encoding//model/satellite.henshin_diagram=UTF-8
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/META-INF/MANIFEST.MF b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/META-INF/MANIFEST.MF
index 36d729b4..966fc660 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/META-INF/MANIFEST.MF
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/META-INF/MANIFEST.MF
@@ -7,6 +7,7 @@ Bundle-ClassPath: .
7Bundle-Vendor: %providerName 7Bundle-Vendor: %providerName
8Bundle-Localization: plugin 8Bundle-Localization: plugin
9Export-Package: hu.bme.mit.inf.dslreasoner.domains.satellite.queries, 9Export-Package: hu.bme.mit.inf.dslreasoner.domains.satellite.queries,
10 hu.bme.mit.inf.dslreasoner.domains.satellite.queries.internal,
10 satellite, 11 satellite,
11 satellite.impl, 12 satellite.impl,
12 satellite.util 13 satellite.util
@@ -22,20 +23,7 @@ Require-Bundle: org.eclipse.viatra.addon.querybasedfeatures.runtime,
22 org.eclipse.viatra.dse.genetic, 23 org.eclipse.viatra.dse.genetic,
23 hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner;bundle-version="1.0.0", 24 hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner;bundle-version="1.0.0",
24 org.eclipse.emf.ecore.xmi;bundle-version="2.15.0", 25 org.eclipse.emf.ecore.xmi;bundle-version="2.15.0",
25 uk.ac.kcl.inf.mdeoptimiser.libraries.core;bundle-version="1.0.0", 26 org.eclipse.viatra.query.runtime.rete;bundle-version="2.0.0"
26 uk.ac.kcl.inf.mdeoptimiser.interfaces.cli;bundle-version="1.0.0",
27 org.eclipse.emf.henshin.interpreter;bundle-version="1.5.0",
28 uk.ac.kcl.inf.mdeoptimiser.libraries.rulegen;bundle-version="1.0.0",
29 org.sidiff.common;bundle-version="1.0.0",
30 org.sidiff.common.emf;bundle-version="1.0.0",
31 org.sidiff.common.emf.extensions;bundle-version="1.0.0",
32 org.moeaframework;bundle-version="2.13.0",
33 org.apache.commons.math3;bundle-version="3.6.1",
34 org.apache.commons.lang3;bundle-version="3.8.1",
35 com.google.inject;bundle-version="3.0.0",
36 org.sidiff.common.henshin;bundle-version="1.0.0",
37 org.sidiff.serge;bundle-version="1.0.0",
38 org.eclipse.viatra.query.runtime.rete;bundle-version="2.2.0"
39Import-Package: org.apache.log4j 27Import-Package: org.apache.log4j
40Automatic-Module-Name: hu.bme.mit.inf.dslreasoner.domains.satellite 28Automatic-Module-Name: hu.bme.mit.inf.dslreasoner.domains.satellite
41Bundle-ActivationPolicy: lazy 29Bundle-ActivationPolicy: lazy
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/configs/generation.vsconfig b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/configs/generation.vsconfig
index 66c468d0..2fb246c9 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/configs/generation.vsconfig
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/configs/generation.vsconfig
@@ -2,7 +2,7 @@ import epackage "model/satellite.ecore"
2import viatra "src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql" 2import viatra "src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql"
3 3
4generate { 4generate {
5 metamodel = { package satellite excluding { InterferometryMission.observationTime } } 5 metamodel = { package satellite }
6 constraints = { package hu.bme.mit.inf.dslreasoner.domains.satellite.queries } 6 constraints = { package hu.bme.mit.inf.dslreasoner.domains.satellite.queries }
7 partial-model = { "inputs/SatelliteInstance.xmi"} 7 partial-model = { "inputs/SatelliteInstance.xmi"}
8 solver = ViatraSolver 8 solver = ViatraSolver
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CommSubsystem.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CommSubsystem.java
index 90bca78c..3b9d7ecf 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CommSubsystem.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/CommSubsystem.java
@@ -2,7 +2,6 @@
2 */ 2 */
3package satellite; 3package satellite;
4 4
5import org.eclipse.emf.common.util.EList;
6import org.eclipse.emf.ecore.EObject; 5import org.eclipse.emf.ecore.EObject;
7 6
8/** 7/**
@@ -15,7 +14,6 @@ import org.eclipse.emf.ecore.EObject;
15 * </p> 14 * </p>
16 * <ul> 15 * <ul>
17 * <li>{@link satellite.CommSubsystem#getTarget <em>Target</em>}</li> 16 * <li>{@link satellite.CommSubsystem#getTarget <em>Target</em>}</li>
18 * <li>{@link satellite.CommSubsystem#getSource <em>Source</em>}</li>
19 * </ul> 17 * </ul>
20 * 18 *
21 * @see satellite.SatellitePackage#getCommSubsystem() 19 * @see satellite.SatellitePackage#getCommSubsystem()
@@ -26,14 +24,12 @@ public interface CommSubsystem extends EObject {
26 24
27 /** 25 /**
28 * Returns the value of the '<em><b>Target</b></em>' reference. 26 * Returns the value of the '<em><b>Target</b></em>' reference.
29 * It is bidirectional and its opposite is '{@link satellite.CommSubsystem#getSource <em>Source</em>}'.
30 * <!-- begin-user-doc --> 27 * <!-- begin-user-doc -->
31 * <!-- end-user-doc --> 28 * <!-- end-user-doc -->
32 * @return the value of the '<em>Target</em>' reference. 29 * @return the value of the '<em>Target</em>' reference.
33 * @see #setTarget(CommSubsystem) 30 * @see #setTarget(CommSubsystem)
34 * @see satellite.SatellitePackage#getCommSubsystem_Target() 31 * @see satellite.SatellitePackage#getCommSubsystem_Target()
35 * @see satellite.CommSubsystem#getSource 32 * @model
36 * @model opposite="source"
37 * @generated 33 * @generated
38 */ 34 */
39 CommSubsystem getTarget(); 35 CommSubsystem getTarget();
@@ -48,18 +44,4 @@ public interface CommSubsystem extends EObject {
48 */ 44 */
49 void setTarget(CommSubsystem value); 45 void setTarget(CommSubsystem value);
50 46
51 /**
52 * Returns the value of the '<em><b>Source</b></em>' reference list.
53 * The list contents are of type {@link satellite.CommSubsystem}.
54 * It is bidirectional and its opposite is '{@link satellite.CommSubsystem#getTarget <em>Target</em>}'.
55 * <!-- begin-user-doc -->
56 * <!-- end-user-doc -->
57 * @return the value of the '<em>Source</em>' reference list.
58 * @see satellite.SatellitePackage#getCommSubsystem_Source()
59 * @see satellite.CommSubsystem#getTarget
60 * @model opposite="target"
61 * @generated
62 */
63 EList<CommSubsystem> getSource();
64
65} // CommSubsystem 47} // CommSubsystem
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/ConstellationMission.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/ConstellationMission.java
index 6182d7ad..8ff69955 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/ConstellationMission.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/ConstellationMission.java
@@ -53,7 +53,7 @@ public interface ConstellationMission extends EObject {
53 * <!-- end-user-doc --> 53 * <!-- end-user-doc -->
54 * @return the value of the '<em>Spacecraft</em>' containment reference list. 54 * @return the value of the '<em>Spacecraft</em>' containment reference list.
55 * @see satellite.SatellitePackage#getConstellationMission_Spacecraft() 55 * @see satellite.SatellitePackage#getConstellationMission_Spacecraft()
56 * @model containment="true" lower="2" upper="50" 56 * @model containment="true" lower="2"
57 * @generated 57 * @generated
58 */ 58 */
59 EList<Spacecraft> getSpacecraft(); 59 EList<Spacecraft> getSpacecraft();
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/InterferometryMission.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/InterferometryMission.java
index eb4ea064..4e28df38 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/InterferometryMission.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/InterferometryMission.java
@@ -7,39 +7,11 @@ package satellite;
7 * A representation of the model object '<em><b>Interferometry Mission</b></em>'. 7 * A representation of the model object '<em><b>Interferometry Mission</b></em>'.
8 * <!-- end-user-doc --> 8 * <!-- end-user-doc -->
9 * 9 *
10 * <p>
11 * The following features are supported:
12 * </p>
13 * <ul>
14 * <li>{@link satellite.InterferometryMission#getObservationTime <em>Observation Time</em>}</li>
15 * </ul>
16 * 10 *
17 * @see satellite.SatellitePackage#getInterferometryMission() 11 * @see satellite.SatellitePackage#getInterferometryMission()
18 * @model 12 * @model
19 * @generated 13 * @generated
20 */ 14 */
21public interface InterferometryMission extends ConstellationMission { 15public interface InterferometryMission extends ConstellationMission {
22 /**
23 * Returns the value of the '<em><b>Observation Time</b></em>' attribute.
24 * The default value is <code>"2.0"</code>.
25 * <!-- begin-user-doc -->
26 * <!-- end-user-doc -->
27 * @return the value of the '<em>Observation Time</em>' attribute.
28 * @see #setObservationTime(float)
29 * @see satellite.SatellitePackage#getInterferometryMission_ObservationTime()
30 * @model default="2.0" required="true"
31 * @generated
32 */
33 float getObservationTime();
34
35 /**
36 * Sets the value of the '{@link satellite.InterferometryMission#getObservationTime <em>Observation Time</em>}' attribute.
37 * <!-- begin-user-doc -->
38 * <!-- end-user-doc -->
39 * @param value the new value of the '<em>Observation Time</em>' attribute.
40 * @see #getObservationTime()
41 * @generated
42 */
43 void setObservationTime(float value);
44 16
45} // InterferometryMission 17} // InterferometryMission
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SatellitePackage.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SatellitePackage.java
index 7be4ef84..9ca99311 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SatellitePackage.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/SatellitePackage.java
@@ -2,7 +2,6 @@
2 */ 2 */
3package satellite; 3package satellite;
4 4
5import org.eclipse.emf.ecore.EAttribute;
6import org.eclipse.emf.ecore.EClass; 5import org.eclipse.emf.ecore.EClass;
7import org.eclipse.emf.ecore.EPackage; 6import org.eclipse.emf.ecore.EPackage;
8import org.eclipse.emf.ecore.EReference; 7import org.eclipse.emf.ecore.EReference;
@@ -131,22 +130,13 @@ public interface SatellitePackage extends EPackage {
131 int INTERFEROMETRY_MISSION__SPACECRAFT = CONSTELLATION_MISSION__SPACECRAFT; 130 int INTERFEROMETRY_MISSION__SPACECRAFT = CONSTELLATION_MISSION__SPACECRAFT;
132 131
133 /** 132 /**
134 * The feature id for the '<em><b>Observation Time</b></em>' attribute.
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @generated
138 * @ordered
139 */
140 int INTERFEROMETRY_MISSION__OBSERVATION_TIME = CONSTELLATION_MISSION_FEATURE_COUNT + 0;
141
142 /**
143 * The number of structural features of the '<em>Interferometry Mission</em>' class. 133 * The number of structural features of the '<em>Interferometry Mission</em>' class.
144 * <!-- begin-user-doc --> 134 * <!-- begin-user-doc -->
145 * <!-- end-user-doc --> 135 * <!-- end-user-doc -->
146 * @generated 136 * @generated
147 * @ordered 137 * @ordered
148 */ 138 */
149 int INTERFEROMETRY_MISSION_FEATURE_COUNT = CONSTELLATION_MISSION_FEATURE_COUNT + 1; 139 int INTERFEROMETRY_MISSION_FEATURE_COUNT = CONSTELLATION_MISSION_FEATURE_COUNT + 0;
150 140
151 /** 141 /**
152 * The number of operations of the '<em>Interferometry Mission</em>' class. 142 * The number of operations of the '<em>Interferometry Mission</em>' class.
@@ -297,22 +287,13 @@ public interface SatellitePackage extends EPackage {
297 int COMM_SUBSYSTEM__TARGET = 0; 287 int COMM_SUBSYSTEM__TARGET = 0;
298 288
299 /** 289 /**
300 * The feature id for the '<em><b>Source</b></em>' reference list.
301 * <!-- begin-user-doc -->
302 * <!-- end-user-doc -->
303 * @generated
304 * @ordered
305 */
306 int COMM_SUBSYSTEM__SOURCE = 1;
307
308 /**
309 * The number of structural features of the '<em>Comm Subsystem</em>' class. 290 * The number of structural features of the '<em>Comm Subsystem</em>' class.
310 * <!-- begin-user-doc --> 291 * <!-- begin-user-doc -->
311 * <!-- end-user-doc --> 292 * <!-- end-user-doc -->
312 * @generated 293 * @generated
313 * @ordered 294 * @ordered
314 */ 295 */
315 int COMM_SUBSYSTEM_FEATURE_COUNT = 2; 296 int COMM_SUBSYSTEM_FEATURE_COUNT = 1;
316 297
317 /** 298 /**
318 * The number of operations of the '<em>Comm Subsystem</em>' class. 299 * The number of operations of the '<em>Comm Subsystem</em>' class.
@@ -583,15 +564,6 @@ public interface SatellitePackage extends EPackage {
583 int UHF_COMM_SUBSYSTEM__TARGET = COMM_SUBSYSTEM__TARGET; 564 int UHF_COMM_SUBSYSTEM__TARGET = COMM_SUBSYSTEM__TARGET;
584 565
585 /** 566 /**
586 * The feature id for the '<em><b>Source</b></em>' reference list.
587 * <!-- begin-user-doc -->
588 * <!-- end-user-doc -->
589 * @generated
590 * @ordered
591 */
592 int UHF_COMM_SUBSYSTEM__SOURCE = COMM_SUBSYSTEM__SOURCE;
593
594 /**
595 * The number of structural features of the '<em>UHF Comm Subsystem</em>' class. 567 * The number of structural features of the '<em>UHF Comm Subsystem</em>' class.
596 * <!-- begin-user-doc --> 568 * <!-- begin-user-doc -->
597 * <!-- end-user-doc --> 569 * <!-- end-user-doc -->
@@ -629,15 +601,6 @@ public interface SatellitePackage extends EPackage {
629 int XCOMM_SUBSYSTEM__TARGET = COMM_SUBSYSTEM__TARGET; 601 int XCOMM_SUBSYSTEM__TARGET = COMM_SUBSYSTEM__TARGET;
630 602
631 /** 603 /**
632 * The feature id for the '<em><b>Source</b></em>' reference list.
633 * <!-- begin-user-doc -->
634 * <!-- end-user-doc -->
635 * @generated
636 * @ordered
637 */
638 int XCOMM_SUBSYSTEM__SOURCE = COMM_SUBSYSTEM__SOURCE;
639
640 /**
641 * The number of structural features of the '<em>XComm Subsystem</em>' class. 604 * The number of structural features of the '<em>XComm Subsystem</em>' class.
642 * <!-- begin-user-doc --> 605 * <!-- begin-user-doc -->
643 * <!-- end-user-doc --> 606 * <!-- end-user-doc -->
@@ -675,15 +638,6 @@ public interface SatellitePackage extends EPackage {
675 int KA_COMM_SUBSYSTEM__TARGET = COMM_SUBSYSTEM__TARGET; 638 int KA_COMM_SUBSYSTEM__TARGET = COMM_SUBSYSTEM__TARGET;
676 639
677 /** 640 /**
678 * The feature id for the '<em><b>Source</b></em>' reference list.
679 * <!-- begin-user-doc -->
680 * <!-- end-user-doc -->
681 * @generated
682 * @ordered
683 */
684 int KA_COMM_SUBSYSTEM__SOURCE = COMM_SUBSYSTEM__SOURCE;
685
686 /**
687 * The number of structural features of the '<em>Ka Comm Subsystem</em>' class. 641 * The number of structural features of the '<em>Ka Comm Subsystem</em>' class.
688 * <!-- begin-user-doc --> 642 * <!-- begin-user-doc -->
689 * <!-- end-user-doc --> 643 * <!-- end-user-doc -->
@@ -744,17 +698,6 @@ public interface SatellitePackage extends EPackage {
744 EClass getInterferometryMission(); 698 EClass getInterferometryMission();
745 699
746 /** 700 /**
747 * Returns the meta object for the attribute '{@link satellite.InterferometryMission#getObservationTime <em>Observation Time</em>}'.
748 * <!-- begin-user-doc -->
749 * <!-- end-user-doc -->
750 * @return the meta object for the attribute '<em>Observation Time</em>'.
751 * @see satellite.InterferometryMission#getObservationTime()
752 * @see #getInterferometryMission()
753 * @generated
754 */
755 EAttribute getInterferometryMission_ObservationTime();
756
757 /**
758 * Returns the meta object for class '{@link satellite.CommunicatingElement <em>Communicating Element</em>}'. 701 * Returns the meta object for class '{@link satellite.CommunicatingElement <em>Communicating Element</em>}'.
759 * <!-- begin-user-doc --> 702 * <!-- begin-user-doc -->
760 * <!-- end-user-doc --> 703 * <!-- end-user-doc -->
@@ -828,17 +771,6 @@ public interface SatellitePackage extends EPackage {
828 EReference getCommSubsystem_Target(); 771 EReference getCommSubsystem_Target();
829 772
830 /** 773 /**
831 * Returns the meta object for the reference list '{@link satellite.CommSubsystem#getSource <em>Source</em>}'.
832 * <!-- begin-user-doc -->
833 * <!-- end-user-doc -->
834 * @return the meta object for the reference list '<em>Source</em>'.
835 * @see satellite.CommSubsystem#getSource()
836 * @see #getCommSubsystem()
837 * @generated
838 */
839 EReference getCommSubsystem_Source();
840
841 /**
842 * Returns the meta object for class '{@link satellite.Payload <em>Payload</em>}'. 774 * Returns the meta object for class '{@link satellite.Payload <em>Payload</em>}'.
843 * <!-- begin-user-doc --> 775 * <!-- begin-user-doc -->
844 * <!-- end-user-doc --> 776 * <!-- end-user-doc -->
@@ -989,14 +921,6 @@ public interface SatellitePackage extends EPackage {
989 EClass INTERFEROMETRY_MISSION = eINSTANCE.getInterferometryMission(); 921 EClass INTERFEROMETRY_MISSION = eINSTANCE.getInterferometryMission();
990 922
991 /** 923 /**
992 * The meta object literal for the '<em><b>Observation Time</b></em>' attribute feature.
993 * <!-- begin-user-doc -->
994 * <!-- end-user-doc -->
995 * @generated
996 */
997 EAttribute INTERFEROMETRY_MISSION__OBSERVATION_TIME = eINSTANCE.getInterferometryMission_ObservationTime();
998
999 /**
1000 * The meta object literal for the '{@link satellite.impl.CommunicatingElementImpl <em>Communicating Element</em>}' class. 924 * The meta object literal for the '{@link satellite.impl.CommunicatingElementImpl <em>Communicating Element</em>}' class.
1001 * <!-- begin-user-doc --> 925 * <!-- begin-user-doc -->
1002 * <!-- end-user-doc --> 926 * <!-- end-user-doc -->
@@ -1061,14 +985,6 @@ public interface SatellitePackage extends EPackage {
1061 EReference COMM_SUBSYSTEM__TARGET = eINSTANCE.getCommSubsystem_Target(); 985 EReference COMM_SUBSYSTEM__TARGET = eINSTANCE.getCommSubsystem_Target();
1062 986
1063 /** 987 /**
1064 * The meta object literal for the '<em><b>Source</b></em>' reference list feature.
1065 * <!-- begin-user-doc -->
1066 * <!-- end-user-doc -->
1067 * @generated
1068 */
1069 EReference COMM_SUBSYSTEM__SOURCE = eINSTANCE.getCommSubsystem_Source();
1070
1071 /**
1072 * The meta object literal for the '{@link satellite.impl.PayloadImpl <em>Payload</em>}' class. 988 * The meta object literal for the '{@link satellite.impl.PayloadImpl <em>Payload</em>}' class.
1073 * <!-- begin-user-doc --> 989 * <!-- begin-user-doc -->
1074 * <!-- end-user-doc --> 990 * <!-- end-user-doc -->
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CommSubsystemImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CommSubsystemImpl.java
index 21e385a8..d39abd4d 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CommSubsystemImpl.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/CommSubsystemImpl.java
@@ -2,16 +2,11 @@
2 */ 2 */
3package satellite.impl; 3package satellite.impl;
4 4
5import java.util.Collection;
6import org.eclipse.emf.common.notify.Notification; 5import org.eclipse.emf.common.notify.Notification;
7import org.eclipse.emf.common.notify.NotificationChain;
8import org.eclipse.emf.common.util.EList;
9import org.eclipse.emf.ecore.EClass; 6import org.eclipse.emf.ecore.EClass;
10import org.eclipse.emf.ecore.InternalEObject; 7import org.eclipse.emf.ecore.InternalEObject;
11import org.eclipse.emf.ecore.impl.ENotificationImpl; 8import org.eclipse.emf.ecore.impl.ENotificationImpl;
12import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; 9import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
13import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
14import org.eclipse.emf.ecore.util.InternalEList;
15import satellite.CommSubsystem; 10import satellite.CommSubsystem;
16import satellite.SatellitePackage; 11import satellite.SatellitePackage;
17 12
@@ -24,7 +19,6 @@ import satellite.SatellitePackage;
24 * </p> 19 * </p>
25 * <ul> 20 * <ul>
26 * <li>{@link satellite.impl.CommSubsystemImpl#getTarget <em>Target</em>}</li> 21 * <li>{@link satellite.impl.CommSubsystemImpl#getTarget <em>Target</em>}</li>
27 * <li>{@link satellite.impl.CommSubsystemImpl#getSource <em>Source</em>}</li>
28 * </ul> 22 * </ul>
29 * 23 *
30 * @generated 24 * @generated
@@ -41,16 +35,6 @@ public abstract class CommSubsystemImpl extends MinimalEObjectImpl.Container imp
41 protected CommSubsystem target; 35 protected CommSubsystem target;
42 36
43 /** 37 /**
44 * The cached value of the '{@link #getSource() <em>Source</em>}' reference list.
45 * <!-- begin-user-doc -->
46 * <!-- end-user-doc -->
47 * @see #getSource()
48 * @generated
49 * @ordered
50 */
51 protected EList<CommSubsystem> source;
52
53 /**
54 * <!-- begin-user-doc --> 38 * <!-- begin-user-doc -->
55 * <!-- end-user-doc --> 39 * <!-- end-user-doc -->
56 * @generated 40 * @generated
@@ -102,91 +86,13 @@ public abstract class CommSubsystemImpl extends MinimalEObjectImpl.Container imp
102 * <!-- end-user-doc --> 86 * <!-- end-user-doc -->
103 * @generated 87 * @generated
104 */ 88 */
105 public NotificationChain basicSetTarget(CommSubsystem newTarget, NotificationChain msgs) {
106 CommSubsystem oldTarget = target;
107 target = newTarget;
108 if (eNotificationRequired()) {
109 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
110 SatellitePackage.COMM_SUBSYSTEM__TARGET, oldTarget, newTarget);
111 if (msgs == null)
112 msgs = notification;
113 else
114 msgs.add(notification);
115 }
116 return msgs;
117 }
118
119 /**
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @generated
123 */
124 @Override 89 @Override
125 public void setTarget(CommSubsystem newTarget) { 90 public void setTarget(CommSubsystem newTarget) {
126 if (newTarget != target) { 91 CommSubsystem oldTarget = target;
127 NotificationChain msgs = null; 92 target = newTarget;
128 if (target != null) 93 if (eNotificationRequired())
129 msgs = ((InternalEObject) target).eInverseRemove(this, SatellitePackage.COMM_SUBSYSTEM__SOURCE, 94 eNotify(new ENotificationImpl(this, Notification.SET, SatellitePackage.COMM_SUBSYSTEM__TARGET, oldTarget,
130 CommSubsystem.class, msgs); 95 target));
131 if (newTarget != null)
132 msgs = ((InternalEObject) newTarget).eInverseAdd(this, SatellitePackage.COMM_SUBSYSTEM__SOURCE,
133 CommSubsystem.class, msgs);
134 msgs = basicSetTarget(newTarget, msgs);
135 if (msgs != null)
136 msgs.dispatch();
137 } else if (eNotificationRequired())
138 eNotify(new ENotificationImpl(this, Notification.SET, SatellitePackage.COMM_SUBSYSTEM__TARGET, newTarget,
139 newTarget));
140 }
141
142 /**
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @generated
146 */
147 @Override
148 public EList<CommSubsystem> getSource() {
149 if (source == null) {
150 source = new EObjectWithInverseResolvingEList<CommSubsystem>(CommSubsystem.class, this,
151 SatellitePackage.COMM_SUBSYSTEM__SOURCE, SatellitePackage.COMM_SUBSYSTEM__TARGET);
152 }
153 return source;
154 }
155
156 /**
157 * <!-- begin-user-doc -->
158 * <!-- end-user-doc -->
159 * @generated
160 */
161 @SuppressWarnings("unchecked")
162 @Override
163 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
164 switch (featureID) {
165 case SatellitePackage.COMM_SUBSYSTEM__TARGET:
166 if (target != null)
167 msgs = ((InternalEObject) target).eInverseRemove(this, SatellitePackage.COMM_SUBSYSTEM__SOURCE,
168 CommSubsystem.class, msgs);
169 return basicSetTarget((CommSubsystem) otherEnd, msgs);
170 case SatellitePackage.COMM_SUBSYSTEM__SOURCE:
171 return ((InternalEList<InternalEObject>) (InternalEList<?>) getSource()).basicAdd(otherEnd, msgs);
172 }
173 return super.eInverseAdd(otherEnd, featureID, msgs);
174 }
175
176 /**
177 * <!-- begin-user-doc -->
178 * <!-- end-user-doc -->
179 * @generated
180 */
181 @Override
182 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
183 switch (featureID) {
184 case SatellitePackage.COMM_SUBSYSTEM__TARGET:
185 return basicSetTarget(null, msgs);
186 case SatellitePackage.COMM_SUBSYSTEM__SOURCE:
187 return ((InternalEList<?>) getSource()).basicRemove(otherEnd, msgs);
188 }
189 return super.eInverseRemove(otherEnd, featureID, msgs);
190 } 96 }
191 97
192 /** 98 /**
@@ -201,8 +107,6 @@ public abstract class CommSubsystemImpl extends MinimalEObjectImpl.Container imp
201 if (resolve) 107 if (resolve)
202 return getTarget(); 108 return getTarget();
203 return basicGetTarget(); 109 return basicGetTarget();
204 case SatellitePackage.COMM_SUBSYSTEM__SOURCE:
205 return getSource();
206 } 110 }
207 return super.eGet(featureID, resolve, coreType); 111 return super.eGet(featureID, resolve, coreType);
208 } 112 }
@@ -219,10 +123,6 @@ public abstract class CommSubsystemImpl extends MinimalEObjectImpl.Container imp
219 case SatellitePackage.COMM_SUBSYSTEM__TARGET: 123 case SatellitePackage.COMM_SUBSYSTEM__TARGET:
220 setTarget((CommSubsystem) newValue); 124 setTarget((CommSubsystem) newValue);
221 return; 125 return;
222 case SatellitePackage.COMM_SUBSYSTEM__SOURCE:
223 getSource().clear();
224 getSource().addAll((Collection<? extends CommSubsystem>) newValue);
225 return;
226 } 126 }
227 super.eSet(featureID, newValue); 127 super.eSet(featureID, newValue);
228 } 128 }
@@ -238,9 +138,6 @@ public abstract class CommSubsystemImpl extends MinimalEObjectImpl.Container imp
238 case SatellitePackage.COMM_SUBSYSTEM__TARGET: 138 case SatellitePackage.COMM_SUBSYSTEM__TARGET:
239 setTarget((CommSubsystem) null); 139 setTarget((CommSubsystem) null);
240 return; 140 return;
241 case SatellitePackage.COMM_SUBSYSTEM__SOURCE:
242 getSource().clear();
243 return;
244 } 141 }
245 super.eUnset(featureID); 142 super.eUnset(featureID);
246 } 143 }
@@ -255,8 +152,6 @@ public abstract class CommSubsystemImpl extends MinimalEObjectImpl.Container imp
255 switch (featureID) { 152 switch (featureID) {
256 case SatellitePackage.COMM_SUBSYSTEM__TARGET: 153 case SatellitePackage.COMM_SUBSYSTEM__TARGET:
257 return target != null; 154 return target != null;
258 case SatellitePackage.COMM_SUBSYSTEM__SOURCE:
259 return source != null && !source.isEmpty();
260 } 155 }
261 return super.eIsSet(featureID); 156 return super.eIsSet(featureID);
262 } 157 }
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/InterferometryMissionImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/InterferometryMissionImpl.java
index 3401ad51..450f8a9a 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/InterferometryMissionImpl.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/InterferometryMissionImpl.java
@@ -2,12 +2,7 @@
2 */ 2 */
3package satellite.impl; 3package satellite.impl;
4 4
5import org.eclipse.emf.common.notify.Notification;
6
7import org.eclipse.emf.ecore.EClass; 5import org.eclipse.emf.ecore.EClass;
8
9import org.eclipse.emf.ecore.impl.ENotificationImpl;
10
11import satellite.InterferometryMission; 6import satellite.InterferometryMission;
12import satellite.SatellitePackage; 7import satellite.SatellitePackage;
13 8
@@ -15,37 +10,11 @@ import satellite.SatellitePackage;
15 * <!-- begin-user-doc --> 10 * <!-- begin-user-doc -->
16 * An implementation of the model object '<em><b>Interferometry Mission</b></em>'. 11 * An implementation of the model object '<em><b>Interferometry Mission</b></em>'.
17 * <!-- end-user-doc --> 12 * <!-- end-user-doc -->
18 * <p>
19 * The following features are implemented:
20 * </p>
21 * <ul>
22 * <li>{@link satellite.impl.InterferometryMissionImpl#getObservationTime <em>Observation Time</em>}</li>
23 * </ul>
24 * 13 *
25 * @generated 14 * @generated
26 */ 15 */
27public class InterferometryMissionImpl extends ConstellationMissionImpl implements InterferometryMission { 16public class InterferometryMissionImpl extends ConstellationMissionImpl implements InterferometryMission {
28 /** 17 /**
29 * The default value of the '{@link #getObservationTime() <em>Observation Time</em>}' attribute.
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @see #getObservationTime()
33 * @generated
34 * @ordered
35 */
36 protected static final float OBSERVATION_TIME_EDEFAULT = 2.0F;
37
38 /**
39 * The cached value of the '{@link #getObservationTime() <em>Observation Time</em>}' attribute.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @see #getObservationTime()
43 * @generated
44 * @ordered
45 */
46 protected float observationTime = OBSERVATION_TIME_EDEFAULT;
47
48 /**
49 * <!-- begin-user-doc --> 18 * <!-- begin-user-doc -->
50 * <!-- end-user-doc --> 19 * <!-- end-user-doc -->
51 * @generated 20 * @generated
@@ -64,103 +33,4 @@ public class InterferometryMissionImpl extends ConstellationMissionImpl implemen
64 return SatellitePackage.Literals.INTERFEROMETRY_MISSION; 33 return SatellitePackage.Literals.INTERFEROMETRY_MISSION;
65 } 34 }
66 35
67 /**
68 * <!-- begin-user-doc -->
69 * <!-- end-user-doc -->
70 * @generated
71 */
72 @Override
73 public float getObservationTime() {
74 return observationTime;
75 }
76
77 /**
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @generated
81 */
82 @Override
83 public void setObservationTime(float newObservationTime) {
84 float oldObservationTime = observationTime;
85 observationTime = newObservationTime;
86 if (eNotificationRequired())
87 eNotify(new ENotificationImpl(this, Notification.SET,
88 SatellitePackage.INTERFEROMETRY_MISSION__OBSERVATION_TIME, oldObservationTime, observationTime));
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 SatellitePackage.INTERFEROMETRY_MISSION__OBSERVATION_TIME:
100 return getObservationTime();
101 }
102 return super.eGet(featureID, resolve, coreType);
103 }
104
105 /**
106 * <!-- begin-user-doc -->
107 * <!-- end-user-doc -->
108 * @generated
109 */
110 @Override
111 public void eSet(int featureID, Object newValue) {
112 switch (featureID) {
113 case SatellitePackage.INTERFEROMETRY_MISSION__OBSERVATION_TIME:
114 setObservationTime((Float) newValue);
115 return;
116 }
117 super.eSet(featureID, newValue);
118 }
119
120 /**
121 * <!-- begin-user-doc -->
122 * <!-- end-user-doc -->
123 * @generated
124 */
125 @Override
126 public void eUnset(int featureID) {
127 switch (featureID) {
128 case SatellitePackage.INTERFEROMETRY_MISSION__OBSERVATION_TIME:
129 setObservationTime(OBSERVATION_TIME_EDEFAULT);
130 return;
131 }
132 super.eUnset(featureID);
133 }
134
135 /**
136 * <!-- begin-user-doc -->
137 * <!-- end-user-doc -->
138 * @generated
139 */
140 @Override
141 public boolean eIsSet(int featureID) {
142 switch (featureID) {
143 case SatellitePackage.INTERFEROMETRY_MISSION__OBSERVATION_TIME:
144 return observationTime != OBSERVATION_TIME_EDEFAULT;
145 }
146 return super.eIsSet(featureID);
147 }
148
149 /**
150 * <!-- begin-user-doc -->
151 * <!-- end-user-doc -->
152 * @generated
153 */
154 @Override
155 public String toString() {
156 if (eIsProxy())
157 return super.toString();
158
159 StringBuilder result = new StringBuilder(super.toString());
160 result.append(" (observationTime: ");
161 result.append(observationTime);
162 result.append(')');
163 return result.toString();
164 }
165
166} //InterferometryMissionImpl 36} //InterferometryMissionImpl
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SatellitePackageImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SatellitePackageImpl.java
index 17212a96..f6dc1e30 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SatellitePackageImpl.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/ecore-gen/satellite/impl/SatellitePackageImpl.java
@@ -2,7 +2,6 @@
2 */ 2 */
3package satellite.impl; 3package satellite.impl;
4 4
5import org.eclipse.emf.ecore.EAttribute;
6import org.eclipse.emf.ecore.EClass; 5import org.eclipse.emf.ecore.EClass;
7import org.eclipse.emf.ecore.EPackage; 6import org.eclipse.emf.ecore.EPackage;
8import org.eclipse.emf.ecore.EReference; 7import org.eclipse.emf.ecore.EReference;
@@ -248,16 +247,6 @@ public class SatellitePackageImpl extends EPackageImpl implements SatellitePacka
248 * @generated 247 * @generated
249 */ 248 */
250 @Override 249 @Override
251 public EAttribute getInterferometryMission_ObservationTime() {
252 return (EAttribute) interferometryMissionEClass.getEStructuralFeatures().get(0);
253 }
254
255 /**
256 * <!-- begin-user-doc -->
257 * <!-- end-user-doc -->
258 * @generated
259 */
260 @Override
261 public EClass getCommunicatingElement() { 250 public EClass getCommunicatingElement() {
262 return communicatingElementEClass; 251 return communicatingElementEClass;
263 } 252 }
@@ -328,16 +317,6 @@ public class SatellitePackageImpl extends EPackageImpl implements SatellitePacka
328 * @generated 317 * @generated
329 */ 318 */
330 @Override 319 @Override
331 public EReference getCommSubsystem_Source() {
332 return (EReference) commSubsystemEClass.getEStructuralFeatures().get(1);
333 }
334
335 /**
336 * <!-- begin-user-doc -->
337 * <!-- end-user-doc -->
338 * @generated
339 */
340 @Override
341 public EClass getPayload() { 320 public EClass getPayload() {
342 return payloadEClass; 321 return payloadEClass;
343 } 322 }
@@ -457,7 +436,6 @@ public class SatellitePackageImpl extends EPackageImpl implements SatellitePacka
457 createEReference(constellationMissionEClass, CONSTELLATION_MISSION__SPACECRAFT); 436 createEReference(constellationMissionEClass, CONSTELLATION_MISSION__SPACECRAFT);
458 437
459 interferometryMissionEClass = createEClass(INTERFEROMETRY_MISSION); 438 interferometryMissionEClass = createEClass(INTERFEROMETRY_MISSION);
460 createEAttribute(interferometryMissionEClass, INTERFEROMETRY_MISSION__OBSERVATION_TIME);
461 439
462 communicatingElementEClass = createEClass(COMMUNICATING_ELEMENT); 440 communicatingElementEClass = createEClass(COMMUNICATING_ELEMENT);
463 createEReference(communicatingElementEClass, COMMUNICATING_ELEMENT__COMM_SUBSYSTEM); 441 createEReference(communicatingElementEClass, COMMUNICATING_ELEMENT__COMM_SUBSYSTEM);
@@ -469,7 +447,6 @@ public class SatellitePackageImpl extends EPackageImpl implements SatellitePacka
469 447
470 commSubsystemEClass = createEClass(COMM_SUBSYSTEM); 448 commSubsystemEClass = createEClass(COMM_SUBSYSTEM);
471 createEReference(commSubsystemEClass, COMM_SUBSYSTEM__TARGET); 449 createEReference(commSubsystemEClass, COMM_SUBSYSTEM__TARGET);
472 createEReference(commSubsystemEClass, COMM_SUBSYSTEM__SOURCE);
473 450
474 payloadEClass = createEClass(PAYLOAD); 451 payloadEClass = createEClass(PAYLOAD);
475 452
@@ -537,15 +514,12 @@ public class SatellitePackageImpl extends EPackageImpl implements SatellitePacka
537 initEReference(getConstellationMission_GroundStationNetwork(), this.getGroundStationNetwork(), null, 514 initEReference(getConstellationMission_GroundStationNetwork(), this.getGroundStationNetwork(), null,
538 "groundStationNetwork", null, 1, 1, ConstellationMission.class, !IS_TRANSIENT, !IS_VOLATILE, 515 "groundStationNetwork", null, 1, 1, ConstellationMission.class, !IS_TRANSIENT, !IS_VOLATILE,
539 IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 516 IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
540 initEReference(getConstellationMission_Spacecraft(), this.getSpacecraft(), null, "spacecraft", null, 2, 50, 517 initEReference(getConstellationMission_Spacecraft(), this.getSpacecraft(), null, "spacecraft", null, 2, -1,
541 ConstellationMission.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, 518 ConstellationMission.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
542 !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 519 !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
543 520
544 initEClass(interferometryMissionEClass, InterferometryMission.class, "InterferometryMission", !IS_ABSTRACT, 521 initEClass(interferometryMissionEClass, InterferometryMission.class, "InterferometryMission", !IS_ABSTRACT,
545 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 522 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
546 initEAttribute(getInterferometryMission_ObservationTime(), ecorePackage.getEFloat(), "observationTime", "2.0",
547 1, 1, InterferometryMission.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
548 IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
549 523
550 initEClass(communicatingElementEClass, CommunicatingElement.class, "CommunicatingElement", IS_ABSTRACT, 524 initEClass(communicatingElementEClass, CommunicatingElement.class, "CommunicatingElement", IS_ABSTRACT,
551 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 525 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -564,12 +538,9 @@ public class SatellitePackageImpl extends EPackageImpl implements SatellitePacka
564 538
565 initEClass(commSubsystemEClass, CommSubsystem.class, "CommSubsystem", IS_ABSTRACT, !IS_INTERFACE, 539 initEClass(commSubsystemEClass, CommSubsystem.class, "CommSubsystem", IS_ABSTRACT, !IS_INTERFACE,
566 IS_GENERATED_INSTANCE_CLASS); 540 IS_GENERATED_INSTANCE_CLASS);
567 initEReference(getCommSubsystem_Target(), this.getCommSubsystem(), this.getCommSubsystem_Source(), "target", 541 initEReference(getCommSubsystem_Target(), this.getCommSubsystem(), null, "target", null, 0, 1,
568 null, 0, 1, CommSubsystem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, 542 CommSubsystem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
569 IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 543 !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
570 initEReference(getCommSubsystem_Source(), this.getCommSubsystem(), this.getCommSubsystem_Target(), "source",
571 null, 0, -1, CommSubsystem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
572 IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
573 544
574 initEClass(payloadEClass, Payload.class, "Payload", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 545 initEClass(payloadEClass, Payload.class, "Payload", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
575 546
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/inputs/SatelliteInstance.xmi b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/inputs/SatelliteInstance.xmi
index 7b8e355a..3d07a199 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/inputs/SatelliteInstance.xmi
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/inputs/SatelliteInstance.xmi
@@ -4,11 +4,4 @@
4 xmlns:xmi="http://www.omg.org/XMI" 4 xmlns:xmi="http://www.omg.org/XMI"
5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6 xmlns:satellite="http://www.example.org/satellite" 6 xmlns:satellite="http://www.example.org/satellite"
7 xsi:schemaLocation="http://www.example.org/satellite ../model/satellite.ecore"> 7 xsi:schemaLocation="http://www.example.org/satellite ../model/satellite.ecore"/>
8 <groundStationNetwork>
9 <commSubsystem
10 xsi:type="satellite:XCommSubsystem"/>
11 <commSubsystem
12 xsi:type="satellite:KaCommSubsystem"/>
13 </groundStationNetwork>
14</satellite:InterferometryMission>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore
index 1685c756..9f17d43c 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.ecore
@@ -5,12 +5,9 @@
5 <eStructuralFeatures xsi:type="ecore:EReference" name="groundStationNetwork" lowerBound="1" 5 <eStructuralFeatures xsi:type="ecore:EReference" name="groundStationNetwork" lowerBound="1"
6 eType="#//GroundStationNetwork" containment="true"/> 6 eType="#//GroundStationNetwork" containment="true"/>
7 <eStructuralFeatures xsi:type="ecore:EReference" name="spacecraft" lowerBound="2" 7 <eStructuralFeatures xsi:type="ecore:EReference" name="spacecraft" lowerBound="2"
8 upperBound="50" eType="#//Spacecraft" containment="true"/> 8 upperBound="-1" eType="#//Spacecraft" containment="true"/>
9 </eClassifiers>
10 <eClassifiers xsi:type="ecore:EClass" name="InterferometryMission" eSuperTypes="#//ConstellationMission">
11 <eStructuralFeatures xsi:type="ecore:EAttribute" name="observationTime" lowerBound="1"
12 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat" defaultValueLiteral="2.0"/>
13 </eClassifiers> 9 </eClassifiers>
10 <eClassifiers xsi:type="ecore:EClass" name="InterferometryMission" eSuperTypes="#//ConstellationMission"/>
14 <eClassifiers xsi:type="ecore:EClass" name="CommunicatingElement" abstract="true"> 11 <eClassifiers xsi:type="ecore:EClass" name="CommunicatingElement" abstract="true">
15 <eStructuralFeatures xsi:type="ecore:EReference" name="commSubsystem" lowerBound="1" 12 <eStructuralFeatures xsi:type="ecore:EReference" name="commSubsystem" lowerBound="1"
16 upperBound="2" eType="#//CommSubsystem" containment="true"/> 13 upperBound="2" eType="#//CommSubsystem" containment="true"/>
@@ -21,10 +18,7 @@
21 containment="true"/> 18 containment="true"/>
22 </eClassifiers> 19 </eClassifiers>
23 <eClassifiers xsi:type="ecore:EClass" name="CommSubsystem" abstract="true"> 20 <eClassifiers xsi:type="ecore:EClass" name="CommSubsystem" abstract="true">
24 <eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="#//CommSubsystem" 21 <eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="#//CommSubsystem"/>
25 eOpposite="#//CommSubsystem/source"/>
26 <eStructuralFeatures xsi:type="ecore:EReference" name="source" upperBound="-1"
27 eType="#//CommSubsystem" eOpposite="#//CommSubsystem/target"/>
28 </eClassifiers> 22 </eClassifiers>
29 <eClassifiers xsi:type="ecore:EClass" name="Payload" abstract="true"/> 23 <eClassifiers xsi:type="ecore:EClass" name="Payload" abstract="true"/>
30 <eClassifiers xsi:type="ecore:EClass" name="InterferometryPayload" eSuperTypes="#//Payload"/> 24 <eClassifiers xsi:type="ecore:EClass" name="InterferometryPayload" eSuperTypes="#//Payload"/>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.genmodel b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.genmodel
index 09b5f64c..bc98abd6 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.genmodel
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.genmodel
@@ -15,9 +15,7 @@
15 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//ConstellationMission/groundStationNetwork"/> 15 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//ConstellationMission/groundStationNetwork"/>
16 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//ConstellationMission/spacecraft"/> 16 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//ConstellationMission/spacecraft"/>
17 </genClasses> 17 </genClasses>
18 <genClasses ecoreClass="satellite.ecore#//InterferometryMission"> 18 <genClasses ecoreClass="satellite.ecore#//InterferometryMission"/>
19 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute satellite.ecore#//InterferometryMission/observationTime"/>
20 </genClasses>
21 <genClasses image="false" ecoreClass="satellite.ecore#//CommunicatingElement"> 19 <genClasses image="false" ecoreClass="satellite.ecore#//CommunicatingElement">
22 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//CommunicatingElement/commSubsystem"/> 20 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference satellite.ecore#//CommunicatingElement/commSubsystem"/>
23 </genClasses> 21 </genClasses>
@@ -27,7 +25,6 @@
27 </genClasses> 25 </genClasses>
28 <genClasses ecoreClass="satellite.ecore#//CommSubsystem"> 26 <genClasses ecoreClass="satellite.ecore#//CommSubsystem">
29 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference satellite.ecore#//CommSubsystem/target"/> 27 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference satellite.ecore#//CommSubsystem/target"/>
30 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference satellite.ecore#//CommSubsystem/source"/>
31 </genClasses> 28 </genClasses>
32 <genClasses image="false" ecoreClass="satellite.ecore#//Payload"/> 29 <genClasses image="false" ecoreClass="satellite.ecore#//Payload"/>
33 <genClasses ecoreClass="satellite.ecore#//InterferometryPayload"/> 30 <genClasses ecoreClass="satellite.ecore#//InterferometryPayload"/>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.henshin b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.henshin
deleted file mode 100644
index 33059424..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.henshin
+++ /dev/null
@@ -1,61 +0,0 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<henshin:Module xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmi:id="_4hnG4H9CEemiUoPdWqOlQg">
3 <imports href="satellite.ecore#/"/>
4 <units xsi:type="henshin:Rule" xmi:id="_I7PyUH9EEemiUoPdWqOlQg" name="addCubeSat3U">
5 <lhs xmi:id="_I7YVMH9EEemiUoPdWqOlQg" name="Lhs">
6 <nodes xmi:id="_Qn3fwH9EEemiUoPdWqOlQg">
7 <type href="satellite.ecore#//InterferometryMission"/>
8 </nodes>
9 </lhs>
10 <rhs xmi:id="_I9zXEH9EEemiUoPdWqOlQg" name="Rhs">
11 <nodes xmi:id="_Qn4G0H9EEemiUoPdWqOlQg" outgoing="_W5hEAH9EEemiUoPdWqOlQg">
12 <type href="satellite.ecore#//InterferometryMission"/>
13 </nodes>
14 <nodes xmi:id="_TD7SgH9EEemiUoPdWqOlQg" incoming="_W5hEAH9EEemiUoPdWqOlQg">
15 <type href="satellite.ecore#//CubeSat3U"/>
16 </nodes>
17 <edges xmi:id="_W5hEAH9EEemiUoPdWqOlQg" source="_Qn4G0H9EEemiUoPdWqOlQg" target="_TD7SgH9EEemiUoPdWqOlQg">
18 <type href="satellite.ecore#//ConstellationMission/spacecraft"/>
19 </edges>
20 </rhs>
21 <mappings xmi:id="_Qn4G0X9EEemiUoPdWqOlQg" origin="_Qn3fwH9EEemiUoPdWqOlQg" image="_Qn4G0H9EEemiUoPdWqOlQg"/>
22 </units>
23 <units xsi:type="henshin:Rule" xmi:id="_kgBHMH9KEemiUoPdWqOlQg" name="addCubeSat6U">
24 <lhs xmi:id="_kgHN0H9KEemiUoPdWqOlQg" name="Lhs">
25 <nodes xmi:id="_obHq0H9KEemiUoPdWqOlQg">
26 <type href="satellite.ecore#//InterferometryMission"/>
27 </nodes>
28 </lhs>
29 <rhs xmi:id="_kgIb8H9KEemiUoPdWqOlQg" name="Rhs">
30 <nodes xmi:id="_obIR4H9KEemiUoPdWqOlQg" outgoing="_skabcH9KEemiUoPdWqOlQg">
31 <type href="satellite.ecore#//InterferometryMission"/>
32 </nodes>
33 <nodes xmi:id="_qHno4H9KEemiUoPdWqOlQg" incoming="_skabcH9KEemiUoPdWqOlQg">
34 <type href="satellite.ecore#//CubeSat6U"/>
35 </nodes>
36 <edges xmi:id="_skabcH9KEemiUoPdWqOlQg" source="_obIR4H9KEemiUoPdWqOlQg" target="_qHno4H9KEemiUoPdWqOlQg">
37 <type href="satellite.ecore#//ConstellationMission/spacecraft"/>
38 </edges>
39 </rhs>
40 <mappings xmi:id="_obIR4X9KEemiUoPdWqOlQg" origin="_obHq0H9KEemiUoPdWqOlQg" image="_obIR4H9KEemiUoPdWqOlQg"/>
41 </units>
42 <units xsi:type="henshin:Rule" xmi:id="_xFdIQH9LEemiUoPdWqOlQg" name="addSmallSat">
43 <lhs xmi:id="_xFiAwH9LEemiUoPdWqOlQg" name="Lhs">
44 <nodes xmi:id="_a7r_UH9MEemiUoPdWqOlQg">
45 <type href="satellite.ecore#//InterferometryMission"/>
46 </nodes>
47 </lhs>
48 <rhs xmi:id="_xFjO4H9LEemiUoPdWqOlQg" name="Rhs">
49 <nodes xmi:id="_a7w30H9MEemiUoPdWqOlQg" outgoing="_hORXsH9MEemiUoPdWqOlQg">
50 <type href="satellite.ecore#//InterferometryMission"/>
51 </nodes>
52 <nodes xmi:id="_dt0vwH9MEemiUoPdWqOlQg" incoming="_hORXsH9MEemiUoPdWqOlQg">
53 <type href="satellite.ecore#//SmallSat"/>
54 </nodes>
55 <edges xmi:id="_hORXsH9MEemiUoPdWqOlQg" source="_a7w30H9MEemiUoPdWqOlQg" target="_dt0vwH9MEemiUoPdWqOlQg">
56 <type href="satellite.ecore#//ConstellationMission/spacecraft"/>
57 </edges>
58 </rhs>
59 <mappings xmi:id="_a7xe4H9MEemiUoPdWqOlQg" origin="_a7r_UH9MEemiUoPdWqOlQg" image="_a7w30H9MEemiUoPdWqOlQg"/>
60 </units>
61</henshin:Module>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.henshin_diagram b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.henshin_diagram
deleted file mode 100644
index a5c675d8..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite.henshin_diagram
+++ /dev/null
@@ -1,131 +0,0 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_4huboH9CEemiUoPdWqOlQg" type="Henshin" name="satellite.henshin_diagram" measurementUnit="Pixel">
3 <children xmi:type="notation:Shape" xmi:id="_I7V48H9EEemiUoPdWqOlQg" type="2001" fontName="Noto Sans" italic="true" lineColor="0">
4 <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qn4G0n9EEemiUoPdWqOlQg" source="defaultAction">
5 <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qn4G039EEemiUoPdWqOlQg" key="value" value="preserve"/>
6 </eAnnotations>
7 <children xmi:type="notation:DecorationNode" xmi:id="_I7WgAH9EEemiUoPdWqOlQg" type="5001"/>
8 <children xmi:type="notation:DecorationNode" xmi:id="_I7WgAX9EEemiUoPdWqOlQg" type="7001">
9 <children xmi:type="notation:Shape" xmi:id="_Qn5U8H9EEemiUoPdWqOlQg" type="3001" fontName="Noto Sans">
10 <children xmi:type="notation:DecorationNode" xmi:id="_Qn58AH9EEemiUoPdWqOlQg" type="5002"/>
11 <children xmi:type="notation:DecorationNode" xmi:id="_Qn58AX9EEemiUoPdWqOlQg" type="5003"/>
12 <children xmi:type="notation:DecorationNode" xmi:id="_Qn58An9EEemiUoPdWqOlQg" type="7002">
13 <styles xmi:type="notation:SortingStyle" xmi:id="_Qn58A39EEemiUoPdWqOlQg"/>
14 <styles xmi:type="notation:FilteringStyle" xmi:id="_Qn58BH9EEemiUoPdWqOlQg"/>
15 </children>
16 <element xmi:type="henshin:Node" href="satellite.henshin#_Qn3fwH9EEemiUoPdWqOlQg"/>
17 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qn5U8X9EEemiUoPdWqOlQg" x="11" y="6"/>
18 </children>
19 <children xmi:type="notation:Shape" xmi:id="_TD9HsH9EEemiUoPdWqOlQg" type="3001" fontName="Noto Sans">
20 <children xmi:type="notation:DecorationNode" xmi:id="_TD9Hsn9EEemiUoPdWqOlQg" type="5002"/>
21 <children xmi:type="notation:DecorationNode" xmi:id="_TD9Hs39EEemiUoPdWqOlQg" type="5003"/>
22 <children xmi:type="notation:DecorationNode" xmi:id="_TD9HtH9EEemiUoPdWqOlQg" type="7002">
23 <styles xmi:type="notation:SortingStyle" xmi:id="_TD9HtX9EEemiUoPdWqOlQg"/>
24 <styles xmi:type="notation:FilteringStyle" xmi:id="_TD9Htn9EEemiUoPdWqOlQg"/>
25 </children>
26 <element xmi:type="henshin:Node" href="satellite.henshin#_TD7SgH9EEemiUoPdWqOlQg"/>
27 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TD9HsX9EEemiUoPdWqOlQg" x="43" y="113"/>
28 </children>
29 </children>
30 <element xmi:type="henshin:Rule" href="satellite.henshin#_I7PyUH9EEemiUoPdWqOlQg"/>
31 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I7V48X9EEemiUoPdWqOlQg" x="35" y="18" width="171"/>
32 </children>
33 <children xmi:type="notation:Shape" xmi:id="_kgGmwH9KEemiUoPdWqOlQg" type="2001" fontName="Noto Sans" italic="true" lineColor="0">
34 <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_obIR4n9KEemiUoPdWqOlQg" source="defaultAction">
35 <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_obI48H9KEemiUoPdWqOlQg" key="value" value="preserve"/>
36 </eAnnotations>
37 <children xmi:type="notation:DecorationNode" xmi:id="_kgGmwn9KEemiUoPdWqOlQg" type="5001"/>
38 <children xmi:type="notation:DecorationNode" xmi:id="_kgGmw39KEemiUoPdWqOlQg" type="7001">
39 <children xmi:type="notation:Shape" xmi:id="_obKuIH9KEemiUoPdWqOlQg" type="3001" fontName="Noto Sans">
40 <children xmi:type="notation:DecorationNode" xmi:id="_obLVMH9KEemiUoPdWqOlQg" type="5002"/>
41 <children xmi:type="notation:DecorationNode" xmi:id="_obLVMX9KEemiUoPdWqOlQg" type="5003"/>
42 <children xmi:type="notation:DecorationNode" xmi:id="_obLVMn9KEemiUoPdWqOlQg" type="7002">
43 <styles xmi:type="notation:SortingStyle" xmi:id="_obLVM39KEemiUoPdWqOlQg"/>
44 <styles xmi:type="notation:FilteringStyle" xmi:id="_obLVNH9KEemiUoPdWqOlQg"/>
45 </children>
46 <element xmi:type="henshin:Node" href="satellite.henshin#_obHq0H9KEemiUoPdWqOlQg"/>
47 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_obKuIX9KEemiUoPdWqOlQg" x="15" y="8"/>
48 </children>
49 <children xmi:type="notation:Shape" xmi:id="_qHpeEH9KEemiUoPdWqOlQg" type="3001" fontName="Noto Sans">
50 <children xmi:type="notation:DecorationNode" xmi:id="_qHpeEn9KEemiUoPdWqOlQg" type="5002"/>
51 <children xmi:type="notation:DecorationNode" xmi:id="_qHpeE39KEemiUoPdWqOlQg" type="5003"/>
52 <children xmi:type="notation:DecorationNode" xmi:id="_qHpeFH9KEemiUoPdWqOlQg" type="7002">
53 <styles xmi:type="notation:SortingStyle" xmi:id="_qHpeFX9KEemiUoPdWqOlQg"/>
54 <styles xmi:type="notation:FilteringStyle" xmi:id="_qHpeFn9KEemiUoPdWqOlQg"/>
55 </children>
56 <element xmi:type="henshin:Node" href="satellite.henshin#_qHno4H9KEemiUoPdWqOlQg"/>
57 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qHpeEX9KEemiUoPdWqOlQg" x="42" y="109"/>
58 </children>
59 </children>
60 <element xmi:type="henshin:Rule" href="satellite.henshin#_kgBHMH9KEemiUoPdWqOlQg"/>
61 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kgGmwX9KEemiUoPdWqOlQg" x="225" y="18" width="174"/>
62 </children>
63 <children xmi:type="notation:Shape" xmi:id="_xFhZsH9LEemiUoPdWqOlQg" type="2001" fontName="Noto Sans" italic="true" lineColor="0">
64 <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a7xe4X9MEemiUoPdWqOlQg" source="defaultAction">
65 <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a7xe4n9MEemiUoPdWqOlQg" key="value" value="preserve"/>
66 </eAnnotations>
67 <children xmi:type="notation:DecorationNode" xmi:id="_xFhZsn9LEemiUoPdWqOlQg" type="5001"/>
68 <children xmi:type="notation:DecorationNode" xmi:id="_xFhZs39LEemiUoPdWqOlQg" type="7001">
69 <children xmi:type="notation:Shape" xmi:id="_a7z7IH9MEemiUoPdWqOlQg" type="3001" fontName="Noto Sans">
70 <children xmi:type="notation:DecorationNode" xmi:id="_a7z7In9MEemiUoPdWqOlQg" type="5002"/>
71 <children xmi:type="notation:DecorationNode" xmi:id="_a7z7I39MEemiUoPdWqOlQg" type="5003"/>
72 <children xmi:type="notation:DecorationNode" xmi:id="_a7z7JH9MEemiUoPdWqOlQg" type="7002">
73 <styles xmi:type="notation:SortingStyle" xmi:id="_a7z7JX9MEemiUoPdWqOlQg"/>
74 <styles xmi:type="notation:FilteringStyle" xmi:id="_a7z7Jn9MEemiUoPdWqOlQg"/>
75 </children>
76 <element xmi:type="henshin:Node" href="satellite.henshin#_a7r_UH9MEemiUoPdWqOlQg"/>
77 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_a7z7IX9MEemiUoPdWqOlQg" x="12" y="8"/>
78 </children>
79 <children xmi:type="notation:Shape" xmi:id="_dt194H9MEemiUoPdWqOlQg" type="3001" fontName="Noto Sans">
80 <children xmi:type="notation:DecorationNode" xmi:id="_dt194n9MEemiUoPdWqOlQg" type="5002"/>
81 <children xmi:type="notation:DecorationNode" xmi:id="_dt19439MEemiUoPdWqOlQg" type="5003"/>
82 <children xmi:type="notation:DecorationNode" xmi:id="_dt195H9MEemiUoPdWqOlQg" type="7002">
83 <styles xmi:type="notation:SortingStyle" xmi:id="_dt195X9MEemiUoPdWqOlQg"/>
84 <styles xmi:type="notation:FilteringStyle" xmi:id="_dt195n9MEemiUoPdWqOlQg"/>
85 </children>
86 <element xmi:type="henshin:Node" href="satellite.henshin#_dt0vwH9MEemiUoPdWqOlQg"/>
87 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dt194X9MEemiUoPdWqOlQg" x="37" y="111"/>
88 </children>
89 </children>
90 <element xmi:type="henshin:Rule" href="satellite.henshin#_xFdIQH9LEemiUoPdWqOlQg"/>
91 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xFhZsX9LEemiUoPdWqOlQg" x="418" y="18" width="172"/>
92 </children>
93 <styles xmi:type="notation:DiagramStyle" xmi:id="_4huboX9CEemiUoPdWqOlQg"/>
94 <element xmi:type="henshin:Module" href="satellite.henshin#_4hnG4H9CEemiUoPdWqOlQg"/>
95 <edges xmi:type="notation:Connector" xmi:id="_W5i5MH9EEemiUoPdWqOlQg" type="4001" source="_Qn5U8H9EEemiUoPdWqOlQg" target="_TD9HsH9EEemiUoPdWqOlQg">
96 <children xmi:type="notation:DecorationNode" xmi:id="_W5i5M39EEemiUoPdWqOlQg" type="6001">
97 <layoutConstraint xmi:type="notation:Location" xmi:id="_W5jgQH9EEemiUoPdWqOlQg" y="40"/>
98 </children>
99 <children xmi:type="notation:DecorationNode" xmi:id="_W5jgQX9EEemiUoPdWqOlQg" type="6002">
100 <layoutConstraint xmi:type="notation:Location" xmi:id="_W5jgQn9EEemiUoPdWqOlQg" y="60"/>
101 </children>
102 <styles xmi:type="notation:FontStyle" xmi:id="_W5i5MX9EEemiUoPdWqOlQg" fontName="Noto Sans"/>
103 <element xmi:type="henshin:Edge" href="satellite.henshin#_W5hEAH9EEemiUoPdWqOlQg"/>
104 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_W5i5Mn9EEemiUoPdWqOlQg" points="[2, 35, -1, -84]$[10, 96, 7, -23]"/>
105 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_W5nKoH9EEemiUoPdWqOlQg" id="(0.48120300751879697,0.2391304347826087)"/>
106 </edges>
107 <edges xmi:type="notation:Connector" xmi:id="_skbpkH9KEemiUoPdWqOlQg" type="4001" source="_obKuIH9KEemiUoPdWqOlQg" target="_qHpeEH9KEemiUoPdWqOlQg">
108 <children xmi:type="notation:DecorationNode" xmi:id="_skbpk39KEemiUoPdWqOlQg" type="6001">
109 <layoutConstraint xmi:type="notation:Location" xmi:id="_skbplH9KEemiUoPdWqOlQg" y="40"/>
110 </children>
111 <children xmi:type="notation:DecorationNode" xmi:id="_skbplX9KEemiUoPdWqOlQg" type="6002">
112 <layoutConstraint xmi:type="notation:Location" xmi:id="_skbpln9KEemiUoPdWqOlQg" y="60"/>
113 </children>
114 <styles xmi:type="notation:FontStyle" xmi:id="_skbpkX9KEemiUoPdWqOlQg" fontName="Noto Sans"/>
115 <element xmi:type="henshin:Edge" href="satellite.henshin#_skabcH9KEemiUoPdWqOlQg"/>
116 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_skbpkn9KEemiUoPdWqOlQg" points="[-4, 23, 0, -66]$[-4, 78, 0, -11]"/>
117 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_skc3sH9KEemiUoPdWqOlQg" id="(0.5,0.2391304347826087)"/>
118 </edges>
119 <edges xmi:type="notation:Connector" xmi:id="_hOR-wH9MEemiUoPdWqOlQg" type="4001" source="_a7z7IH9MEemiUoPdWqOlQg" target="_dt194H9MEemiUoPdWqOlQg">
120 <children xmi:type="notation:DecorationNode" xmi:id="_hOSl0H9MEemiUoPdWqOlQg" type="6001">
121 <layoutConstraint xmi:type="notation:Location" xmi:id="_hOSl0X9MEemiUoPdWqOlQg" y="40"/>
122 </children>
123 <children xmi:type="notation:DecorationNode" xmi:id="_hOSl0n9MEemiUoPdWqOlQg" type="6002">
124 <layoutConstraint xmi:type="notation:Location" xmi:id="_hOSl039MEemiUoPdWqOlQg" y="60"/>
125 </children>
126 <styles xmi:type="notation:FontStyle" xmi:id="_hOR-wX9MEemiUoPdWqOlQg" fontName="Noto Sans"/>
127 <element xmi:type="henshin:Edge" href="satellite.henshin#_hORXsH9MEemiUoPdWqOlQg"/>
128 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hOR-wn9MEemiUoPdWqOlQg" points="[-5, 23, 0, -96]$[-4, 126, 1, 7]"/>
129 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hOVCEH9MEemiUoPdWqOlQg" id="(0.5454545454545454,0.8478260869565217)"/>
130 </edges>
131</notation:Diagram>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite_fixup.henshin b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite_fixup.henshin
deleted file mode 100644
index 224ced8f..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/model/satellite_fixup.henshin
+++ /dev/null
@@ -1,61 +0,0 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<henshin:Module xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmi:id="_4hnG4H9CEemiUoPdWqOlQg">
3 <imports href="http://www.example.org/satellite#/"/>
4 <units xsi:type="henshin:Rule" xmi:id="_I7PyUH9EEemiUoPdWqOlQg" name="addCubeSat3U">
5 <lhs xmi:id="_I7YVMH9EEemiUoPdWqOlQg" name="Lhs">
6 <nodes xmi:id="_Qn3fwH9EEemiUoPdWqOlQg">
7 <type href="http://www.example.org/satellite#//InterferometryMission"/>
8 </nodes>
9 </lhs>
10 <rhs xmi:id="_I9zXEH9EEemiUoPdWqOlQg" name="Rhs">
11 <nodes xmi:id="_Qn4G0H9EEemiUoPdWqOlQg" outgoing="_W5hEAH9EEemiUoPdWqOlQg">
12 <type href="http://www.example.org/satellite#//InterferometryMission"/>
13 </nodes>
14 <nodes xmi:id="_TD7SgH9EEemiUoPdWqOlQg" incoming="_W5hEAH9EEemiUoPdWqOlQg">
15 <type href="http://www.example.org/satellite#//CubeSat3U"/>
16 </nodes>
17 <edges xmi:id="_W5hEAH9EEemiUoPdWqOlQg" source="_Qn4G0H9EEemiUoPdWqOlQg" target="_TD7SgH9EEemiUoPdWqOlQg">
18 <type href="http://www.example.org/satellite#//ConstellationMission/spacecraft"/>
19 </edges>
20 </rhs>
21 <mappings xmi:id="_Qn4G0X9EEemiUoPdWqOlQg" origin="_Qn3fwH9EEemiUoPdWqOlQg" image="_Qn4G0H9EEemiUoPdWqOlQg"/>
22 </units>
23 <units xsi:type="henshin:Rule" xmi:id="_kgBHMH9KEemiUoPdWqOlQg" name="addCubeSat6U">
24 <lhs xmi:id="_kgHN0H9KEemiUoPdWqOlQg" name="Lhs">
25 <nodes xmi:id="_obHq0H9KEemiUoPdWqOlQg">
26 <type href="http://www.example.org/satellite#//InterferometryMission"/>
27 </nodes>
28 </lhs>
29 <rhs xmi:id="_kgIb8H9KEemiUoPdWqOlQg" name="Rhs">
30 <nodes xmi:id="_obIR4H9KEemiUoPdWqOlQg" outgoing="_skabcH9KEemiUoPdWqOlQg">
31 <type href="http://www.example.org/satellite#//InterferometryMission"/>
32 </nodes>
33 <nodes xmi:id="_qHno4H9KEemiUoPdWqOlQg" incoming="_skabcH9KEemiUoPdWqOlQg">
34 <type href="http://www.example.org/satellite#//CubeSat6U"/>
35 </nodes>
36 <edges xmi:id="_skabcH9KEemiUoPdWqOlQg" source="_obIR4H9KEemiUoPdWqOlQg" target="_qHno4H9KEemiUoPdWqOlQg">
37 <type href="http://www.example.org/satellite#//ConstellationMission/spacecraft"/>
38 </edges>
39 </rhs>
40 <mappings xmi:id="_obIR4X9KEemiUoPdWqOlQg" origin="_obHq0H9KEemiUoPdWqOlQg" image="_obIR4H9KEemiUoPdWqOlQg"/>
41 </units>
42 <units xsi:type="henshin:Rule" xmi:id="_xFdIQH9LEemiUoPdWqOlQg" name="addSmallSat">
43 <lhs xmi:id="_xFiAwH9LEemiUoPdWqOlQg" name="Lhs">
44 <nodes xmi:id="_a7r_UH9MEemiUoPdWqOlQg">
45 <type href="http://www.example.org/satellite#//InterferometryMission"/>
46 </nodes>
47 </lhs>
48 <rhs xmi:id="_xFjO4H9LEemiUoPdWqOlQg" name="Rhs">
49 <nodes xmi:id="_a7w30H9MEemiUoPdWqOlQg" outgoing="_hORXsH9MEemiUoPdWqOlQg">
50 <type href="http://www.example.org/satellite#//InterferometryMission"/>
51 </nodes>
52 <nodes xmi:id="_dt0vwH9MEemiUoPdWqOlQg" incoming="_hORXsH9MEemiUoPdWqOlQg">
53 <type href="http://www.example.org/satellite#//SmallSat"/>
54 </nodes>
55 <edges xmi:id="_hORXsH9MEemiUoPdWqOlQg" source="_a7w30H9MEemiUoPdWqOlQg" target="_dt0vwH9MEemiUoPdWqOlQg">
56 <type href="http://www.example.org/satellite#//ConstellationMission/spacecraft"/>
57 </edges>
58 </rhs>
59 <mappings xmi:id="_a7xe4H9MEemiUoPdWqOlQg" origin="_a7r_UH9MEemiUoPdWqOlQg" image="_a7w30H9MEemiUoPdWqOlQg"/>
60 </units>
61</henshin:Module>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/plugin.xml b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/plugin.xml
index a07867dc..b0b77996 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/plugin.xml
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/plugin.xml
@@ -8,6 +8,7 @@
8 <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SatelliteQueries" id="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SatelliteQueries"> 8 <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SatelliteQueries" id="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SatelliteQueries">
9 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLinkDoesNotStartAtContainingElement"/> 9 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.communicationLinkDoesNotStartAtContainingElement"/>
10 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.transmittingGroundStationNetwork"/> 10 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.transmittingGroundStationNetwork"/>
11 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.roundStationNetworkUHF"/>
11 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.notEnoughInterferometryPayloads"/> 12 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.notEnoughInterferometryPayloads"/>
12 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noLinkToGroundStation"/> 13 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noLinkToGroundStation"/>
13 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noPotentialLinkToGroundStation"/> 14 <query-specification fqn="hu.bme.mit.inf.dslreasoner.domains.satellite.queries.noPotentialLinkToGroundStation"/>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/representations.aird b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/representations.aird
new file mode 100644
index 00000000..efa8e366
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/representations.aird
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<viewpoint:DAnalysis xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" uid="_HbzhML6wEemt9IEpCgcgZA" version="14.1.0.201810161215"/>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/CostObjective.xtend b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/CostObjective.xtend
deleted file mode 100644
index 43b2902f..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/CostObjective.xtend
+++ /dev/null
@@ -1,13 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.domains.satellite.mdeo
2
3//import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CostMetric
4//
5//class CostObjective extends MetricBasedGuidanceFunction {
6// new() {
7// super(CostMetric.instance)
8// }
9//
10// override getName() {
11// "Cost"
12// }
13//}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/LocalSearchEngineManager.xtend b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/LocalSearchEngineManager.xtend
deleted file mode 100644
index ee7f0060..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/LocalSearchEngineManager.xtend
+++ /dev/null
@@ -1,31 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.domains.satellite.mdeo
2
3import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SatelliteQueries
4import java.util.WeakHashMap
5import org.eclipse.emf.ecore.EObject
6import org.eclipse.viatra.query.runtime.api.AdvancedViatraQueryEngine
7import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine
8import org.eclipse.viatra.query.runtime.api.ViatraQueryEngineOptions
9import org.eclipse.viatra.query.runtime.emf.EMFScope
10import org.eclipse.viatra.query.runtime.localsearch.matcher.integration.LocalSearchHints
11
12class LocalSearchEngineManager {
13 public static val INSTANCE = new LocalSearchEngineManager
14
15 val WeakHashMap<EObject, ViatraQueryEngine> engineMap = new WeakHashMap
16
17 private new() {
18 }
19
20 def getEngine(EObject eObject) {
21 engineMap.computeIfAbsent(eObject) [
22 val scope = new EMFScope(it)
23 val localSearchHints = LocalSearchHints.^default.build
24 val options = ViatraQueryEngineOptions.defineOptions.withDefaultHint(localSearchHints).withDefaultBackend(
25 localSearchHints.queryBackendFactory).build
26 val engine = AdvancedViatraQueryEngine.on(scope, options)
27 SatelliteQueries.instance.prepare(engine)
28 engine
29 ]
30 }
31}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/MetricBasedGuidanceFunction.xtend b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/MetricBasedGuidanceFunction.xtend
deleted file mode 100644
index 1529794f..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/MetricBasedGuidanceFunction.xtend
+++ /dev/null
@@ -1,47 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.domains.satellite.mdeo
2
3import org.eclipse.viatra.query.runtime.api.IPatternMatch
4import org.eclipse.viatra.query.runtime.api.IQuerySpecification
5import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher
6import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction
7import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution
8
9abstract class MetricBasedGuidanceFunction implements IGuidanceFunction {
10 val IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>> querySpecification
11
12 protected new(IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>> querySpecification) {
13 this.querySpecification = querySpecification
14 if (querySpecification.parameters.size != 1) {
15 throw new IllegalArgumentException("Metric must have a single parameter")
16 }
17 }
18
19 override computeFitness(Solution model) {
20 val value = getMetricValue(model)
21 computeFitness(value)
22 }
23
24 protected def double computeFitness(double metricValue) {
25 metricValue
26 }
27
28 private def getMetricValue(Solution solution) {
29 val model = solution.model
30 val queryEngine = LocalSearchEngineManager.INSTANCE.getEngine(model)
31 val matcher = querySpecification.getMatcher(queryEngine)
32 val iterator = matcher.allMatches.iterator
33 if (!iterator.hasNext) {
34 throw new IllegalStateException("Too few matches")
35 }
36 val objectValue = iterator.next.get(0)
37 if (objectValue instanceof Number) {
38 val doubleValue = objectValue.doubleValue
39 if (iterator.hasNext) {
40 throw new IllegalStateException("Too many matches")
41 }
42 doubleValue
43 } else {
44 throw new IllegalStateException("Metric value must be a number")
45 }
46 }
47}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/PatternMatchConstraint.xtend b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/PatternMatchConstraint.xtend
deleted file mode 100644
index b238e64f..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/PatternMatchConstraint.xtend
+++ /dev/null
@@ -1,29 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.domains.satellite.mdeo
2
3import com.google.common.collect.ImmutableList
4import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.SatelliteQueries
5import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.IGuidanceFunction
6import uk.ac.kcl.inf.mdeoptimiser.libraries.core.optimisation.interpreter.guidance.Solution
7
8class PatternMatchConstraint implements IGuidanceFunction {
9 static val CONSTRAINT_ANNOTATION_NAME = "Constraint"
10
11 val queries = ImmutableList.copyOf(SatelliteQueries.instance.specifications.filter [
12 allAnnotations.exists[name == CONSTRAINT_ANNOTATION_NAME]
13 ])
14
15 override getName() {
16 "PatternMatch"
17 }
18
19 override computeFitness(Solution solution) {
20 val model = solution.model
21 val queryEngine = LocalSearchEngineManager.INSTANCE.getEngine(model)
22 var int matchCount = 0
23 for (query : queries) {
24 val matcher = query.getMatcher(queryEngine)
25 matchCount += matcher.countMatches
26 }
27 matchCount
28 }
29}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/SatelliteMdeOptimiserMain.xtend b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/SatelliteMdeOptimiserMain.xtend
deleted file mode 100644
index 58034c43..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/SatelliteMdeOptimiserMain.xtend
+++ /dev/null
@@ -1,51 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.domains.satellite.mdeo
2
3import java.io.BufferedReader
4import java.io.BufferedWriter
5import java.io.FileReader
6import java.io.FileWriter
7import java.util.Map
8import org.eclipse.emf.ecore.EPackage
9import org.eclipse.emf.ecore.resource.Resource
10import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
11import satellite.SatellitePackage
12import uk.ac.kcl.inf.mdeoptimiser.interfaces.cli.Run
13
14class SatelliteMdeOptimiserMain {
15 static val PROJECT_PATH = "."
16 static val MOPT_PATH = "src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/satellite.mopt"
17
18 private new() {
19 new IllegalStateException("This is a static utility class and should not be instantiated directly.")
20 }
21
22 public static def void main(String[] args) {
23 Resource.Factory.Registry.INSTANCE.extensionToFactoryMap.put(Resource.Factory.Registry.DEFAULT_EXTENSION,
24 new XMIResourceFactoryImpl)
25 EPackage.Registry.INSTANCE.put(SatellitePackage.eNS_URI, SatellitePackage.eINSTANCE)
26 fixupHenshinModel("model/satellite.henshin", "model/satellite_fixup.henshin",
27 #{"satellite.ecore" -> SatellitePackage.eNS_URI})
28 Run.main(#["-p", PROJECT_PATH, "-m", MOPT_PATH])
29 }
30
31 private def static void fixupHenshinModel(String originalPath, String outputPath, Map<String, String> remapMap) {
32 val reader = new BufferedReader(new FileReader(originalPath))
33 try {
34 val writer = new BufferedWriter(new FileWriter(outputPath))
35 try {
36 var String line
37 while ((line = reader.readLine) !== null) {
38 for (entry : remapMap.entrySet) {
39 line = line.replace(entry.key, entry.value)
40 }
41 writer.write(line)
42 writer.write("\n")
43 }
44 } finally {
45 writer.close
46 }
47 } finally {
48 reader.close
49 }
50 }
51}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/satellite.mopt b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/satellite.mopt
deleted file mode 100644
index e9bd1a64..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/satellite.mopt
+++ /dev/null
@@ -1,36 +0,0 @@
1problem {
2 basepath <model>
3 metamodel <satellite.SatellitePackage>
4 model <../inputs/SatelliteInstance.xmi>
5}
6
7goal {
8 objective Cost minimise java { "hu.bme.mit.inf.dslreasoner.domains.satellite.mdeo.CostObjective" }
9 constraint PatternMatch java { "hu.bme.mit.inf.dslreasoner.domains.satellite.mdeo.PatternMatchConstraint" }
10}
11
12search {
13// mutate using <satellite_fixup.henshin> unit "addCubeSat3U"
14 mutate { "CubeSat3U" }
15 mutate { "CubeSat6U" }
16 mutate { "SmallSat" }
17 mutate { "InterferometryPayload" }
18 mutate { "UHFCommSubsystem" }
19 mutate { "XCommSubsystem" }
20 mutate { "KaCommSubsystem" }
21}
22
23solver {
24 optimisation provider moea algorithm NSGAII {
25 variation: mutation
26 population: 25
27 mutation.step: 3
28 mutation.strategy: random
29 }
30
31 termination {
32 time: 120
33 }
34
35 batches 1
36} \ No newline at end of file
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
index c1d3f7d3..1f83a3b0 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
@@ -21,6 +21,13 @@ pattern transmittingGroundStationNetwork(Station : GroundStationNetwork) {
21 find transmittingCommSubsystem(Station, _); 21 find transmittingCommSubsystem(Station, _);
22} 22}
23 23
24@Constraint(severity = "error", key = {Station},
25 message = "The ground station network may not have UHF communication subsystems.")
26pattern roundStationNetworkUHF(Station : GroundStationNetwork) {
27 CommunicatingElement.commSubsystem(Station, Comm);
28 UHFCommSubsystem(Comm);
29}
30
24// At least two spacecraft must have the interferometry payload configured 31// At least two spacecraft must have the interferometry payload configured
25 32
26@Constraint(severity = "error", key = {Mission}, 33@Constraint(severity = "error", key = {Mission},
@@ -97,10 +104,6 @@ private pattern cubeSat3U(Sat : CubeSat3U) {
97 CubeSat3U(Sat); 104 CubeSat3U(Sat);
98} 105}
99 106
100private pattern cubeSat6U(Sat : CubeSat6U) {
101 CubeSat6U(Sat);
102}
103
104// No communication loops may exist 107// No communication loops may exist
105// No spacecraft may directly communicate with itself 108// No spacecraft may directly communicate with itself
106 109
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/META-INF/MANIFEST.MF b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/META-INF/MANIFEST.MF
index 81ee8677..2666dc5e 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/META-INF/MANIFEST.MF
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/META-INF/MANIFEST.MF
@@ -9,8 +9,7 @@ Bundle-Localization: plugin
9Export-Package: hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm, 9Export-Package: hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm,
10 hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.impl, 10 hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.impl,
11 hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.util, 11 hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.util,
12 hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu, 12 hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu
13 hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated
14Require-Bundle: org.eclipse.viatra.query.runtime, 13Require-Bundle: org.eclipse.viatra.query.runtime,
15 org.eclipse.core.runtime, 14 org.eclipse.core.runtime,
16 org.eclipse.emf.ecore;visibility:=reexport, 15 org.eclipse.emf.ecore;visibility:=reexport,
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/plugin.xml b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/plugin.xml
index 993ec75d..7bf4a20b 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/plugin.xml
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/plugin.xml
@@ -9,6 +9,8 @@
9 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.noEntryInRegion"/> 9 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.noEntryInRegion"/>
10 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.multipleEntryInRegion"/> 10 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.multipleEntryInRegion"/>
11 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.transition"/> 11 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.transition"/>
12 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.transitionFrom"/>
13 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.transitionTo"/>
12 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.incomingToEntry"/> 14 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.incomingToEntry"/>
13 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.noOutgoingTransitionFromEntry"/> 15 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.noOutgoingTransitionFromEntry"/>
14 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.multipleTransitionFromEntry"/> 16 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.multipleTransitionFromEntry"/>
@@ -21,10 +23,14 @@
21 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.synchHasNoOutgoing"/> 23 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.synchHasNoOutgoing"/>
22 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.synchHasNoIncoming"/> 24 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.synchHasNoIncoming"/>
23 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.SynchronizedIncomingInSameRegion"/> 25 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.SynchronizedIncomingInSameRegion"/>
26 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.SynchronizedIncomingInSameRegionHelper1"/>
27 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.SynchronizedIncomingInSameRegionHelper2"/>
24 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.notSynchronizingStates"/> 28 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.notSynchronizingStates"/>
25 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.hasMultipleOutgoingTrainsition"/> 29 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.hasMultipleOutgoingTrainsition"/>
26 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.hasMultipleIncomingTrainsition"/> 30 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.hasMultipleIncomingTrainsition"/>
27 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.SynchronizedRegionsAreNotSiblings"/> 31 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.SynchronizedRegionsAreNotSiblings"/>
32 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.SynchronizedRegionsAreNotSiblingsHelper1"/>
33 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.SynchronizedRegionsAreNotSiblingsHelper2"/>
28 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.child"/> 34 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.child"/>
29 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.SynchronizedRegionDoesNotHaveMultipleRegions"/> 35 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.SynchronizedRegionDoesNotHaveMultipleRegions"/>
30 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.hasMultipleRegions"/> 36 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.hasMultipleRegions"/>
@@ -32,72 +38,4 @@
32 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.twoSynch"/> 38 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.twoSynch"/>
33 </group> 39 </group>
34 </extension> 40 </extension>
35 <extension id="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.Mutated" point="org.eclipse.viatra.query.runtime.queryspecification">
36 <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.Mutated" id="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.Mutated">
37 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.entryInRegion_M0"/>
38 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.entryInRegion_M1"/>
39 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.entryInRegion_M2"/>
40 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noEntryInRegion_M0"/>
41 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noEntryInRegion_M1"/>
42 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noEntryInRegion_M2"/>
43 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noEntryInRegion_M3"/>
44 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noEntryInRegion_M4"/>
45 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noEntryInRegion_M5"/>
46 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleEntryInRegion_M0"/>
47 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleEntryInRegion_M1"/>
48 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleEntryInRegion_M2"/>
49 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleEntryInRegion_M3"/>
50 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleEntryInRegion_M4"/>
51 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleEntryInRegion_M5"/>
52 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.transition_M0"/>
53 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.transition_M1"/>
54 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.transition_M2"/>
55 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.transition_M3"/>
56 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.transition_M4"/>
57 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.incomingToEntry_M0"/>
58 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.incomingToEntry_1"/>
59 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.incomingToEntry_2"/>
60 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.incomingToEntry_3"/>
61 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.incomingToEntry_4"/>
62 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.incomingToEntry_5"/>
63 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noOutgoingTransitionFromEntry_M0"/>
64 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noOutgoingTransitionFromEntry_M1"/>
65 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noOutgoingTransitionFromEntry_M2"/>
66 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noOutgoingTransitionFromEntry_M3"/>
67 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noOutgoingTransitionFromEntry_M4"/>
68 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noOutgoingTransitionFromEntry_M5"/>
69 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleTransitionFromEntry_M0"/>
70 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleTransitionFromEntry_M1"/>
71 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleTransitionFromEntry_M2"/>
72 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleTransitionFromEntry_M3"/>
73 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.multipleTransitionFromEntry_M4"/>
74 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.outgoingFromExit_M0"/>
75 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.outgoingFromExit_M1"/>
76 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.outgoingFromExit_M2"/>
77 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.outgoingFromFinal_M0"/>
78 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.outgoingFromFinal_M1"/>
79 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.outgoingFromFinal_M2"/>
80 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noStateInRegion_M0"/>
81 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noStateInRegion_M1"/>
82 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noStateInRegion_M2"/>
83 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.noStateInRegion_M3"/>
84 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.StateInRegion_M0"/>
85 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.StateInRegion_M1"/>
86 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.StateInRegion_M2"/>
87 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoOutgoing_M0"/>
88 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoOutgoing_M1"/>
89 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoOutgoing_M2"/>
90 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoOutgoing_M3"/>
91 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoOutgoing_M4"/>
92 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoOutgoing_M5"/>
93 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoOutgoing_M6"/>
94 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoIncoming_M0"/>
95 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoIncoming_M1"/>
96 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoIncoming_M2"/>
97 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoIncoming_M3"/>
98 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoIncoming_M4"/>
99 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoIncoming_M5"/>
100 <query-specification fqn="hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated.choiceHasNoIncoming_M6"/>
101 </group>
102 </extension>
103</plugin> 41</plugin>
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/queries/hu/bme/mit/inf/dslreasoner/partialsnapshot_mavo/yakindu/mutated/mutated.vql b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/queries/hu/bme/mit/inf/dslreasoner/partialsnapshot_mavo/yakindu/mutated/mutated.vql
deleted file mode 100644
index 58f66fe2..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/queries/hu/bme/mit/inf/dslreasoner/partialsnapshot_mavo/yakindu/mutated/mutated.vql
+++ /dev/null
@@ -1,270 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.mutated
2
3import epackage "hu.bme.mit.inf.yakindumm"
4
5/////////
6// Entry
7/////////
8
9pattern entryInRegion_M0(r1 : Region, e1 : Entry) {
10 Region.vertices(r1, e1);
11}
12pattern entryInRegion_M1(r1 : Region, e1) {
13 Region.vertices(r1, e1);
14}
15pattern entryInRegion_M2(r1 : Region, e1: Entry) {
16 // For positive constraint
17 Region(r1);Entry(e1);
18}
19
20
21//@Constraint(severity="error", message="error", key = {r1})
22pattern noEntryInRegion_M0(r1 : Region) {
23 neg find entryInRegion_M0(r1, _);
24}
25pattern noEntryInRegion_M1(r1 : Region) {
26 neg find entryInRegion_M1(r1, _);
27}
28pattern noEntryInRegion_M2(r1 : Region) {
29 neg find entryInRegion_M2(r1, _);
30}
31pattern noEntryInRegion_M3(r1 : Region) {
32 find entryInRegion_M0(r1, _);
33}
34pattern noEntryInRegion_M4(r1 : Region) {
35 find entryInRegion_M1(r1, _);
36}
37pattern noEntryInRegion_M5(r1 : Region) {
38 find entryInRegion_M2(r1, _);
39}
40
41//@Constraint(severity="error", message="error", key = {r})
42pattern multipleEntryInRegion_M0(r : Region) {
43 find entryInRegion_M0(r, e1);
44 find entryInRegion_M0(r, e2);
45 e1 != e2;
46}
47pattern multipleEntryInRegion_M1(r : Region) {
48 find entryInRegion_M1(r, e1);
49 find entryInRegion_M0(r, e2);
50 e1 != e2;
51}
52pattern multipleEntryInRegion_M2(r : Region) {
53 find entryInRegion_M2(r, e1);
54 find entryInRegion_M0(r, e2);
55 e1 != e2;
56}
57pattern multipleEntryInRegion_M3(r : Region) {
58 find entryInRegion_M0(r, e1);
59 find entryInRegion_M1(r, e2);
60 e1 != e2;
61}
62pattern multipleEntryInRegion_M4(r : Region) {
63 find entryInRegion_M2(r, e1);
64 find entryInRegion_M2(r, e2);
65 e1 != e2;
66}
67pattern multipleEntryInRegion_M5(r : Region) {
68 find entryInRegion_M0(r, e1);
69 find entryInRegion_M0(r, e2);
70}
71
72
73pattern transition_M0(t : Transition, src : Vertex, trg : Vertex) {
74 Transition.source(t, src);
75 Transition.target(t, trg);
76}
77pattern transition_M1(t : Transition, src : Vertex, trg : Vertex) {
78 Transition.source(t, src);
79 Vertex(trg);
80}
81pattern transition_M2(t : Transition, src : Vertex, trg : Vertex) {
82 Vertex(src);
83 Transition.target(t, trg);
84}
85pattern transition_M3(t : Transition, src : Vertex, trg : Vertex) {
86 Transition.source(t_x, src);
87 Transition.target(t, trg);
88}
89pattern transition_M4(t : Transition, src : Vertex, trg : Vertex) {
90 Transition.source(t, src);
91 Transition.target(t_x, trg);
92}
93
94//@Constraint(severity="error", message="error", key = {e})
95pattern incomingToEntry_M0(t : Transition, e : Entry) {
96 find transition_M0(t, _, e);
97}
98pattern incomingToEntry_1(t : Transition, e) {
99 find transition_M0(t, _, e);
100}
101pattern incomingToEntry_2(t : Transition, e : Entry) {
102 find transition_M1(t, _, e);
103}
104pattern incomingToEntry_3(t : Transition, e : Entry) {
105 find transition_M2(t, _, e);
106}
107pattern incomingToEntry_4(t : Transition, e : Entry) {
108 find transition_M3(t, _, e);
109}
110pattern incomingToEntry_5(t : Transition, e : Entry) {
111 find transition_M4(t, _, e);
112}
113
114pattern noOutgoingTransitionFromEntry_M0(e : Entry) {
115 neg find transition_M0(_, e, _);
116}
117
118pattern noOutgoingTransitionFromEntry_M1(e) {
119 Vertex(e);
120 neg find transition_M0(_, e, _);
121}
122pattern noOutgoingTransitionFromEntry_M2(e : Entry) {
123 neg find transition_M1(_, e, _);
124}
125pattern noOutgoingTransitionFromEntry_M3(e : Entry) {
126 neg find transition_M2(_, e, _);
127}
128pattern noOutgoingTransitionFromEntry_M4(e : Entry) {
129 neg find transition_M3(_, e, _);
130}
131pattern noOutgoingTransitionFromEntry_M5(e : Entry) {
132 neg find transition_M4(_, e, _);
133}
134
135
136//@Constraint(severity="error", message="error", key = {e})
137pattern multipleTransitionFromEntry_M0(e : Entry, t1 : Transition, t2: Transition) {
138 Entry.outgoingTransitions(e,t1);
139 Entry.outgoingTransitions(e,t2);
140 t1!=t2;
141}
142pattern multipleTransitionFromEntry_M1(e, t1 : Transition, t2: Transition) {
143 Entry.outgoingTransitions(e,t1);
144 Entry.outgoingTransitions(e,t2);
145 t1!=t2;
146}
147pattern multipleTransitionFromEntry_M2(e : Entry, t1 : Transition, t2: Transition) {
148 Transition(t1);
149 Entry.outgoingTransitions(e,t2);
150 t1!=t2;
151}
152pattern multipleTransitionFromEntry_M3(e : Entry, t1 : Transition, t2: Transition) {
153 Entry.outgoingTransitions(e,t1);
154 Transition(t2);
155 t1!=t2;
156}
157pattern multipleTransitionFromEntry_M4(e : Entry, t1 : Transition, t2: Transition) {
158 Entry.outgoingTransitions(e,t1);
159 Entry.outgoingTransitions(e,t2);
160}
161
162/////////
163// Exit
164/////////
165
166//@Constraint(severity="error", message="error", key = {e})
167pattern outgoingFromExit_M0(t : Transition, e : Exit) {
168 Exit.outgoingTransitions(e,t);
169}
170pattern outgoingFromExit_M1(t : Transition, e) {
171 Vertex.outgoingTransitions(e,t);
172}
173pattern outgoingFromExit_M2(t : Transition, e : Exit) {
174 Transition(t);
175 Exit(e);
176}
177
178/////////
179// Final
180/////////
181
182//@Constraint(severity="error", message="error", key = {f})
183pattern outgoingFromFinal_M0(t : Transition, f : FinalState) {
184 FinalState.outgoingTransitions(f,t);
185}
186pattern outgoingFromFinal_M1(t : Transition, f) {
187 Vertex.outgoingTransitions(f,t);
188}
189pattern outgoingFromFinal_M2(t : Transition, f : FinalState) {
190 Transition(t);
191 FinalState(f);
192}
193
194/////////
195// State vs Region
196/////////
197
198//@Constraint(severity="error", message="error", key = {region})
199pattern noStateInRegion_M0(region: Region) {
200 neg find StateInRegion_M0(region,_);
201}
202pattern noStateInRegion_M1(region: Region) {
203 neg find StateInRegion_M1(region,_);
204}
205pattern noStateInRegion_M2(region: Region) {
206 neg find StateInRegion_M2(region,_);
207}
208pattern noStateInRegion_M3(region: Region) {
209 find StateInRegion_M0(region,_);
210}
211
212pattern StateInRegion_M0(region: Region, state: State) {
213 Region.vertices(region,state);
214}
215pattern StateInRegion_M1(region: Region, state) {
216 Region.vertices(region,state);
217}
218pattern StateInRegion_M2(region: Region, state:State) {
219 Region(region);State(state);
220}
221
222/////////
223// Choice
224/////////
225
226@Constraint(severity="error", message="error", key = {c})
227pattern choiceHasNoOutgoing_M0(c : Choice) {
228 neg find transition_M0(_, c, _);
229}
230pattern choiceHasNoOutgoing_M1(c:Vertex) {
231 neg find transition_M0(_, c, _);
232}
233pattern choiceHasNoOutgoing_M2(c : Choice) {
234 neg find transition_M1(_, c, _);
235}
236pattern choiceHasNoOutgoing_M3(c : Choice) {
237 neg find transition_M2(_, c, _);
238}
239pattern choiceHasNoOutgoing_M4(c : Choice) {
240 neg find transition_M3(_, c, _);
241}
242pattern choiceHasNoOutgoing_M5(c : Choice) {
243 neg find transition_M4(_, c, _);
244}
245pattern choiceHasNoOutgoing_M6(c : Choice) {
246 find transition_M0(_, c, _);
247}
248
249@Constraint(severity="error", message="error", key = {c})
250pattern choiceHasNoIncoming_M0(c: Choice) {
251 neg find transition_M0(_, _, c);
252}
253pattern choiceHasNoIncoming_M1(c:Vertex) {
254 neg find transition_M0(_, _, c);
255}
256pattern choiceHasNoIncoming_M2(c: Choice) {
257 neg find transition_M1(_, _, c);
258}
259pattern choiceHasNoIncoming_M3(c: Choice) {
260 neg find transition_M2(_, _, c);
261}
262pattern choiceHasNoIncoming_M4(c: Choice) {
263 neg find transition_M3(_, _, c);
264}
265pattern choiceHasNoIncoming_M5(c: Choice) {
266 neg find transition_M4(_, _, c);
267}
268pattern choiceHasNoIncoming_M6(c: Choice) {
269 find transition_M0(_, _, c);
270}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/queries/hu/bme/mit/inf/dslreasoner/partialsnapshot_mavo/yakindu/patterns.vql b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/queries/hu/bme/mit/inf/dslreasoner/partialsnapshot_mavo/yakindu/patterns.vql
index f4bfa3c1..98a10cde 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/queries/hu/bme/mit/inf/dslreasoner/partialsnapshot_mavo/yakindu/patterns.vql
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/queries/hu/bme/mit/inf/dslreasoner/partialsnapshot_mavo/yakindu/patterns.vql
@@ -27,14 +27,22 @@ pattern transition(t : Transition, src : Vertex, trg : Vertex) {
27 Transition.target(t, trg); 27 Transition.target(t, trg);
28} 28}
29 29
30pattern transitionFrom(t : Transition, src : Vertex) {
31 Transition.source(t, src);
32}
33
34pattern transitionTo(t : Transition, trg : Vertex) {
35 Transition.target(t, trg);
36}
37
30@Constraint(severity="error", message="error", key = {e}) 38@Constraint(severity="error", message="error", key = {e})
31pattern incomingToEntry(t : Transition, e : Entry) { 39pattern incomingToEntry(t : Transition, e : Entry) {
32 find transition(t, _, e); 40 find transitionTo(t, e);
33} 41}
34 42
35@Constraint(severity="error", message="error", key = {e}) 43@Constraint(severity="error", message="error", key = {e})
36pattern noOutgoingTransitionFromEntry(e : Entry) { 44pattern noOutgoingTransitionFromEntry(e : Entry) {
37 neg find transition(_, e, _); 45 neg find transitionFrom(_, e);
38} 46}
39 47
40@Constraint(severity="error", message="error", key = {e}) 48@Constraint(severity="error", message="error", key = {e})
@@ -80,12 +88,12 @@ pattern StateInRegion(region: Region, state: State) {
80 88
81@Constraint(severity="error", message="error", key = {c}) 89@Constraint(severity="error", message="error", key = {c})
82pattern choiceHasNoOutgoing(c : Choice) { 90pattern choiceHasNoOutgoing(c : Choice) {
83 neg find transition(_, c, _); 91 neg find transitionFrom(_, c);
84} 92}
85 93
86@Constraint(severity="error", message="error", key = {c}) 94@Constraint(severity="error", message="error", key = {c})
87pattern choiceHasNoIncoming(c: Choice) { 95pattern choiceHasNoIncoming(c: Choice) {
88 neg find transition(_, _, c); 96 neg find transitionTo(_, c);
89} 97}
90 98
91///////// 99/////////
@@ -94,27 +102,33 @@ pattern choiceHasNoIncoming(c: Choice) {
94 102
95@Constraint(severity="error", message="error", key = {s}) 103@Constraint(severity="error", message="error", key = {s})
96pattern synchHasNoOutgoing(s : Synchronization) { 104pattern synchHasNoOutgoing(s : Synchronization) {
97 neg find transition(_, s, _); 105 neg find transitionFrom(_, s);
98} 106}
99 107
100@Constraint(severity="error", message="error", key = {s}) 108@Constraint(severity="error", message="error", key = {s})
101pattern synchHasNoIncoming(s : Synchronization) { 109pattern synchHasNoIncoming(s : Synchronization) {
102 neg find transition(_, _, s); 110 neg find transitionTo(_, s);
103} 111}
104 112
105@Constraint(severity="error", message="error", key = {s}) 113@Constraint(severity="error", message="error", key = {s})
106pattern SynchronizedIncomingInSameRegion(s : Synchronization, v1 : Vertex, v2 : Vertex) { 114pattern SynchronizedIncomingInSameRegion(s : Synchronization, t1 : Transition, t2 : Transition) {
107 find transition(t1, v1, s); 115 find SynchronizedIncomingInSameRegionHelper1(r, s, t1);
108 find transition(t2, v2, s); 116 find SynchronizedIncomingInSameRegionHelper1(r, s, t2);
109 t1!=t2; 117 t1!=t2;
110 Region.vertices(r, v1);
111 Region.vertices(r, v2);
112} or { 118} or {
113 find transition(t1, s, v1); 119 find SynchronizedIncomingInSameRegionHelper2(r, s, t1);
114 find transition(t2, s, v2); 120 find SynchronizedIncomingInSameRegionHelper2(r, s, t2);
115 t1!=t2; 121 t1!=t2;
122}
123
124pattern SynchronizedIncomingInSameRegionHelper1(r : Region, s : Synchronization, t1 : Transition) {
125 find transition(t1, v1, s);
126 Region.vertices(r, v1);
127}
128
129pattern SynchronizedIncomingInSameRegionHelper2(r : Region, s : Synchronization, t1 : Transition) {
130 find transition(t1, s, v1);
116 Region.vertices(r, v1); 131 Region.vertices(r, v1);
117 Region.vertices(r, v2);
118} 132}
119 133
120@Constraint(severity="error", message="error", key = {s}) 134@Constraint(severity="error", message="error", key = {s})
@@ -136,18 +150,24 @@ pattern hasMultipleIncomingTrainsition(v : Synchronization) {
136} 150}
137 151
138@Constraint(severity="error", message="error", key = {s}) 152@Constraint(severity="error", message="error", key = {s})
139pattern SynchronizedRegionsAreNotSiblings(s : Synchronization, v1 : Vertex, v2 : Vertex) { 153pattern SynchronizedRegionsAreNotSiblings(s : Synchronization, r1 : CompositeElement, r2 : CompositeElement) {
140 find transition(_, v1, s); 154 find SynchronizedRegionsAreNotSiblingsHelper1(s, r1);
141 find transition(_, v2, s); 155 find SynchronizedRegionsAreNotSiblingsHelper1(s, r2);
142 CompositeElement.regions.vertices(r1, v1);
143 CompositeElement.regions.vertices(r2, v2);
144 r1 != r2; 156 r1 != r2;
145} or { 157} or {
158 find SynchronizedRegionsAreNotSiblingsHelper2(s, r1);
159 find SynchronizedRegionsAreNotSiblingsHelper2(s, r2);
160 r1 != r2;
161}
162
163pattern SynchronizedRegionsAreNotSiblingsHelper1(s : Synchronization, r1 : CompositeElement) {
146 find transition(_, s, v1); 164 find transition(_, s, v1);
147 find transition(_, s, v2);
148 CompositeElement.regions.vertices(r1, v1); 165 CompositeElement.regions.vertices(r1, v1);
149 CompositeElement.regions.vertices(r2, v2); 166}
150 r1 != r2; 167
168pattern SynchronizedRegionsAreNotSiblingsHelper2(s : Synchronization, r1 : CompositeElement) {
169 find transition(_, v1, s);
170 CompositeElement.regions.vertices(r1, v1);
151} 171}
152 172
153/////////////////////////////// 173///////////////////////////////